[计算机类试卷]国家二级C语言机试(操作题)模拟试卷239及答案与解析.doc

上传人:bonesoil321 文档编号:498167 上传时间:2018-11-28 格式:DOC 页数:6 大小:30.50KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷239及答案与解析.doc_第1页
第1页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷239及答案与解析.doc_第2页
第2页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷239及答案与解析.doc_第3页
第3页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷239及答案与解析.doc_第4页
第4页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷239及答案与解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、国家二级 C语言机试(操作题)模拟试卷 239及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是将 a和 b所指的两个字符串分别转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含 9个以下数字字符。 例如,主函数中输入字符串 32486和 12345,在主函数中输出的函数值为44831。 请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:部分源程序在文件 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! 试题程序: 1 #include stdio h 2 #include string h 3 #include ctyp

2、e h 4 #define N 9 5 long ctod(char*s) 6 long d=0; 7 while(*s) 8 if(isdigit(*s) 9 *found* 10 d=d*10+*s-【 1】 ; 11 * found* 12 【 2】 ; 13 14 return d; 15 16 long fun(char*a, char*b) 17 18 * found* 19 return 【 3】 ; 20 21 main() 22 char s1N, s2N; 23 do 24 printf(Input string s1: ); 25 gets(s1); 26 while(s

3、trlen(s1) N); 27 do 28 printf(Input string s2: ); 29 gets(s2); 30 while(strlen(s2) N); 31 printf(The result is: id n, fun(s1, s2); 32 二、程序修改题 2 给定程序 modil c的主函数中,将 a、 b、 c三个结点链成一个单向链表,并给各结点的数据域赋值,函数 fun()的作用是:累加链表结点数据域中的数据作为函数值返回。 请改正函数 fun中指定 部位的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构。 试题程

4、序: 1 #include stdio h 2 typedef struct list; 3 int data ; 4 struct list*next; 5 LIST ; 6 int fun(LIST *h) 7 LIST*P; 8 *found* 9 int t; 10 p=h; 11 *found* 12 while(*P) 13 14 *found* 15 t=t+p data; 16 p=(*p) next; 17 18 return t ; 19 20 main() 21 LTST a, b, c, *h; 22 a data=34 ; b data=51; c data=87 ;

5、 c next= 0; 23 h= a; a next= b; b next= c; 24 printf(总和 = d n, fun(h); 25 三、程序设计题 3 m个人的成绩存放在 score数组中,请编写函数 fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在 below所指的数组中。 例如,当 score数组中的数据为 10、 20、 30、 40、 50、 60、 70、 80、 90时,函数返回的人数应该是 4, below中的数据应为 10、 20、 30、 40。 注意:部分源程序在文件 PROG1 C中。 请勿改动主函数 main和其他函数中的任何

6、内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: 1 #include conio h 2 #include stdio h 3 #include string h 4 #include stdlib h 5 int fun(int score, int m, int below) 6 7 8 9 void main() 10 11 FILE*wf; 12 int i, n, below9; 13 int score9=10, 2 0, 30, 40, 50, 60, 70, 80, 90; 14 system(CLS); 15 n=fun(sCOEe, 9, below);

7、 16 printf( nBelow the average score are: ); 17 for(i=0 ; idata; 【试题解析】 (1)题目中变量 t是用来存放 累加和的,因此必须初始化。 (2)题目中 *p是结构体,不能转化为 hool型。 (3)p是指针,只能用 p-,不能用 p。 三、程序设计题 3 【正确答案】 1 int fun(int score, int m, int be-low) 2 3 int i, j=0 ; 4 float av=0 0; 5 for(i=0 ; im ; i+) 6 av=av+scorei m ; *求平均值 * 7 for(i=0 ; im ; i+) 8 if(scoreiav) *如果分数低于平均分,则将此分数放入 below数组中 * 9 belowj+=scorei; 10 return j; *返回低于平均分的人数 * 11 【试题解析】 要计算低于平均分的人数,首先应该求出平均分,然后通过 for循环语句和 if条件语句找出低于平均分的分数。该题第 1个循环的作用是求出平均分 av,第 2个循环的作用是找出低于平均分的成绩记录并存入 below数组中。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1