1、全国计算机等级考试二级 C 语言上机题库试卷二 2013 年 3 月及答案解析(总分:3.00,做题时间:90 分钟)1.给定程序中,函数 fun 的功能是将形参给定的字符串、整数、浮点数写到文本 文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也不得更改程序的结构! 给定源程序: #include void fun(char *s, int a, double f) _1_ fp; char ch; fp = fopen(“fil
2、e1.txt“, “w“); fprintf(fp, “%s %d %f/n“, s, a, f); fclose(fp); fp = fopen(“file1.txt“, “r“); printf(“/nThe result :/n/n“); ch = fgetc(fp); while (!feof(_2_) putchar(_3_); ch = fgetc(fp); putchar(/n); fclose(fp); main() char a10=“Hello!“; int b=12345; double c= 98.76; fun(a,b,c); (分数:1.00)_2.给定程序 MOD
3、I1.C 中函数 fun 的功能是: 依次取出字符串中所有数字字符, 形成新的字符串, 并取代原字符串。 请改正函数 fun 中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动 main 函数, 不得增行或删行, 也不得更改程序的结构! 给定源程序: #include void fun(char *s) int i,j; for(i=0,j=0; si!=/0; i+) if(si=0 sj=“/0“; main() char item80; printf(“/nEnter a string : “);gets(item); printf(“/n/nThe string is : /
4、“%s/“/n“,item); fun(item); printf(“/n/nThe string of changing is : /“%s/“/n“,item ); (分数:1.00)_正确答案:()解析:第一处: 要求是取出原字符串中所有数字字符组成一个新的字符串,程序中是使用变量 j 来控制新字符串的位置,所以应改为:sj+=si; 第二处: 置新字符串的结束符,所以应改为:sj=/0;3.请编写函数 fun, 函数的功能是: 将 M 行 N 列的二维数组中的字符数据, 按列的 顺序依次放到一个字符串中。 例如, 二维数组中的数据为: W W W W S S S S H H H H 则
5、字符串中的内容应是: WSHWSHWSH。 注意:部分源程序在文件 PROG1.C 中。 请勿改动主函数 main 和其它函数中的任何内容, 仅在函数 fun 的花括号中填入 你编写的若干语句。 给定源程序: #include #define M 3 #define N 4 void fun(char sN, char *b) int i,j,n=0; for(i=0; i N;i+) /* 请填写相应语句完成其功能 */ bn=/0; main() char a100,wMN=W,W,W,W,S,S,S,S,H,H,H,H; int i,j; printf(“The matrix:/n“); for(i=0; i_正确答案:(void fun(char sN, char *b) int i,j,n=0; for(i=0; i N;i+) /* 请填写相应语句完成其功能 */ for(j = 0 ; j M ; j+) bn = sji ; n = i * M + j + 1; bn=/0; )解析:本题是把二维数组中的字符数据按列存放到一个字符串中。 1. 计算存放到一维数组中的位置。 2. 取出二维数组中的字符存放到一维数组(已计算出的位置)中。