第30套:

程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改b中的学号和姓名,最后输出修改后的数据。例如:a所指变量中的学号、姓名、和三门课的成绩依次是:10001、“ZhangSan”、95、80、88,则修改后输出b中的数据应为:10002、“LiSi”、95、80、88。请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:

#include <stdio.h>
#include <string.h>
struct student {
long sno;
char name[10];
float score[3];
};
void fun(struct student a)
{ struct student b; int i;
b = __1__;
b.sno = 10002;
strcpy(__2__, "LiSi");
printf("\nThe data after modified :\n");
printf("\nNo: %ld Name: %s\nScores: ",b.sno, b.name);
for (i=0; i<3; i++) printf("%6.2f ", b.__3__);
printf("\n");
}
main()
{ struct student s={10001,"ZhangSan", 95, 80, 88};
int i;
printf("\n\nThe original data :\n");
printf("\nNo: %ld Name: %s\nScores: ",s.sno, s.name);
for (i=0; i<3; i++) printf("%6.2f ", s.score[i]);
printf("\n");
fun(s);
}

解题思路:
本题是对结构体变量中的值进行修改。
第一处:要修改的结构体变量是由形参a来传递的,所以应填:a。
第二处:对结构体中的成员name进行替换,所以应填:b.name。
第三处:分别输出结构体中的成绩,所以应填:score[i]。


给定程序MODI1.C中函数fun的功能是:从s所指字符串中删除所有小写字母c。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!
给定源程序:

#include <stdio.h>
void fun( char *s )
{ int i,j;
for(i=j=0; s[i]!='\0'; i++)
if(s[i]!='c')
s[j]=s[i];
s[i]='\0';
}
main()
{ char s[80];
printf("Enter a string: "); gets(s);
printf("The original string: "); puts(s);
fun(s);
printf("The string after deleted : "); puts(s);printf("\n\n");
}

解题思路:
第一处: 新字符串的位置值是由变量j来控制的,但程序中字符赋值后没有对j进行增量的语句,所以应改为:s[j++]=s[i];。
第二处: 对新字符串添加字符串结束符,由于程序中使用变量j对新字符串来控制的,所以应改为:s[j]=0;。
假定输入的字符串中只包含字母和号。请编写函数fun,它的功能是:将字 符串中的前导号全部移到字符串的尾部。函数fun中给出的语句仅供参考。
例如,字符串中的内容为:ABCDEFG,移动后,字符串中的内
容应当是:ABCDEF*G***********。在编写函数时, 不得使用C语言提供的字符串函数。
注意: 部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:

#include <stdio.h>
void fun( char *a )
{
char *p,*q;
int n=0;
p=a;
while(*p=='*') /* 统计串头'*'个数n */
{n++; p++;}
q=a;
/* 向前复制字符串,请填写相应的语句完成其功能 */
for(;n>0;n--) /* 在串尾补n个'*' */
*q++='*';
*q='\0';
}
main()
{ char s[81],*p; int n=0;
printf("Enter a string:\n");gets(s);
fun( s );
printf("The string after moveing:\n");puts(s);
NONO();
}

解题思路:
本题是考察字符串的移动。具体操作请看参考源程序。
参考答案:

void fun( char *a )
{
char *p,*q;
int n=0;
p=a;
while(*p=='*') /* 统计串头'*'个数n */
{n++; p++;}
q=a;
/* 向前复制字符串,请填写相应的语句完成其功能 */
while(*p) {
*q=*p;
p++;q++;
}
for(;n>0;n--) /* 在串尾补n个'*' */
*q++='*';
*q='\0';
}

全国计算机等级考试题库二级C操作题100套(第30套)相关推荐

  1. 全国计算机等级考试题库二级C操作题100套(第88套)

    第88套: 函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着求出a所指数组中的最小值放在a[1]中:再把a所指数组元素中的次大值放在a[2]中,把a数组元素中的次小值放在a[3]中: ...

  2. 全国计算机等级考试题库二级C操作题100套(第99套)

    第99套: 函数fun的功能是:将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换.形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动. 例如:若a所指数组中的数据依次为:1.2. ...

  3. 全国计算机等级考试题库二级C操作题100套(第97套)

    第97套: 函数fun的功能是:逆置数组元素中的值.例如:若a所指数组中的数据依次为:1.2.3.4.5.6.7.8.9,则逆置后依次为:9.8.7.6.5.4.3.2.1.形参n给出数组中数据的个数 ...

  4. 全国计算机等级考试题库二级C操作题100套(第95套)

    第95套: 给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回.注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值.例如,若N=3,有下列 ...

  5. 全国计算机等级考试题库二级C操作题100套(第93套)

    第93套: 给定程序中已建立一个带有头结点的单向链表,在main函数中将多次调用fun 函数,每调用一次fun函数,输出链表尾部结点中的数据,并释放该结点,使链表 缩短. 请在程序的下划线处填入正确的 ...

  6. 全国计算机等级考试题库二级C操作题100套(第78套)

    第78套: 给定程序中,函数fun的功能是:将N×N矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换.例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 交换后为: 3 2 ...

  7. 全国计算机等级考试题库二级C操作题100套(第77套)

    第77套: 给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回. 例如,输入一个整数:27638496,函数返回值为:64 ...

  8. 全国计算机等级考试题库二级C操作题100套(第75套)

    第75套: 给定程序中,函数fun的功能是:对形参ss所指字符串数组中的M个字符串按长度由短到长进行排序.ss所指字符串数组中共有M个字符串,且串长<N.请在程序的下划线处填入正确的内容并把下划 ...

  9. 全国计算机等级考试题库二级C操作题100套(第58套)

    第58套: 给定程序中,函数fun的功能是:把形参s所指字符串中最右边的n个字符复制 到形参t所指字符数组中,形成一个新串.若s所指字符串的长度小于n,则将整个 字符串复制到形参t所指字符数组中.例如 ...

最新文章

  1. 实验管理系统java,大学生创新实验室信息管理系统 java+mysql
  2. 找出1000以内的完数,所谓完数是指该数的各因子之和等于该数,如:6 = 1+2+3。
  3. tomcat 下catalina.out 日志乱码问题处理
  4. SAP Spartacus 成功读取 Cart 之后,如何将 payload 插入全局 state
  5. tensorflow训练神经网络时loss出现nan的问题
  6. 路径还原(求两个点之间最短距离的路径)
  7. SharePoint 2010新特性文档集
  8. 【正在完善】CSS 计数器
  9. google protobuf Linux环境下的安装与使用
  10. Excel函数实战技巧精粹(三)常用函数之INDEX与MATCH组合详解
  11. 使用DroidCam将手机作为PC的摄像头
  12. 使用博图V15和S7-PLCSIM Advanced V2.0以S7-1500PLC仿真Modbus TCP
  13. shell实现简单计算机功能,Shell 实现简单计算器功能(示例代码)
  14. 腾讯开源|TAT Agent-助力轻松完成云服务器运维管理任务
  15. 将java 文件夹里面的.java 文件 拷贝到temp文件夹下,并且修改后缀名为.txt
  16. web -【在线聊天】
  17. 初级软件测试工程师:测试路上披荆斩棘,争做大厂程序员,斩获高薪offer~
  18. 在线转换pdf和虚拟打印机生成pdf文件操作攻略
  19. 求数组所有非空子序列的和
  20. A001 - 基础 - 交换机原理简述

热门文章

  1. 单实例单向rac搭建gg流
  2. 用C/C++实现倒序输出,以12345为例
  3. C++面向对象类的实例题目一
  4. cacti安装FAQ
  5. I2C总线之(二)---时序
  6. 内核kernel以及根文件系统rootfs是如何映射到对应的nand flash的
  7. 嵌入式根文件系统制作
  8. 图像-摄像头驱动流程
  9. 【Python学习】——语言风格(变量赋值、深浅拷贝、for循环陷阱)
  10. 使用Def文件导出dll