二级C语言机试-136.doc

上传人:scccc 文档编号:14011269 上传时间:2022-01-30 格式:DOC 页数:3 大小:40KB
返回 下载 相关 举报
二级C语言机试-136.doc_第1页
第1页 / 共3页
二级C语言机试-136.doc_第2页
第2页 / 共3页
二级C语言机试-136.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《二级C语言机试-136.doc》由会员分享,可在线阅读,更多相关《二级C语言机试-136.doc(3页珍藏版)》请在三一文库上搜索。

1、二级C语言机试-136(总分:100.00,做题时间:90分钟)一、填空题(总题数:1,分数:33.00)1. 请补充函数fun(),该函数的功能是:按0到9统计一个字符串中的奇数数字字符各自岀现的次 数,结果保存在数组num中。注意:不能使用字符串库函数。例如:输入“ x=112385713.456+0.909*bc ,结果为: 1 =3 , 3=2, 5=2, 7=1, 9=2。注意:部分源程序给岀如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句 试题程序:#include #define N 1000void fun(char*t

2、t , int num)int i , j;int bb10;char *p=tt ;for(i=0 ; i = 0 &*p= 9)【2】;P+;for(i=1 ; j=0 ; i 10; i=i+2 , j+)【3】;main() char strN;int num10, k;clrscr() ;printf(7nPlease enter a char string:);gets(str);printf(/n*The original string*/n);puts(str) ;fun(str, num);printf(/n*The number of letter*/n);for(k=0

3、; k 5 ; k+)printf(/n) ;printf(%d=%d , 2*k+1 , numk); printf(/n)return ; (分数: 33.00 )填空项 1: (正确答案:【 1】 *p 【2】 bb*p-0+【 3】 numj=bbi)解析:解析填空1:通过移动指针p,指向字符串tt中的各个字符,当指针 p所指的字符为,70时, 即指向字符串 tt 的最后一个字符, while 循环结束。填空 2:将字符串中的数字字符 0到 9的个数 都保存在数组bb10中o*p- 0实现将字符0的个数保存在bb0中,将字符1的个数保存在 bb1中,依此类推,直到将字符 9的个数保存在

4、bb9 中。填空 3:由于奇数数字字符的个数存于 bb1 、bb3 、bb5 、bb7 、bb9 中,所以 for 循环的目的是将这些元素分别赋给 num0 、二、改错题 ( 总题数: 1,分数: 33.00)2. 下列给定程序中,函数 fun() 的功能是求出数组中最小数和次最小数,并把最小数和 a0 中的数对调, 次最小数和 a1 中的数对调。请改正程序中的错误,使它能得到正确结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。 试题程序:#include #include #define N 20void fun(int *a , int n)int i , m,

5、 t , k;*found*for(i=O ; i n; i+) m=i; for(k=i ; k n; k+)if(ak am) k=m; t=ai ; ai=am am=t ;*found*main()int x , bN=11 , 5, 12, 0, 3, 6, 9, 7, 10, 8,n=10, i ;clrscr() ;for(i=0 ; i n; i+)printf(%d , bi) ;printf(/n) ;fun(b , n) ;for(i=0 ; i n; i+)printf(%d , bi) ;printf(/n) ;(分数: 33.00 )填空项1: (正确答案: 错误:

6、for(i=0 ; i n; i+) 正确:for(i=0 ; i 2;i+)(2) 错误: k=m; 正确: m=k;)解析: 解析 错误 1:由于题目要求将最小数和次最小数分别与 a0 和 a1 中的数对调,因此这层循环 只需循环两次。错误 2:赋值语句的执行方向是从右向左,即把右边的值赋给左边的变量。三、编程题 (总题数: 1,分数: 34.00)3. m 个人的成绩存放在 score 数组中,请编写函数 fun() ,它的功能是将高于平均分的人数作为函数值返回, 将高于平均分的分数放在叩所指的数组中。例如,当 score 数组中的数据为 24,35,88,76,90,54, 59 ,6

7、6,96 时,函数返回的人数应该是5,up中的数据应为 88, 76 , 90 , 66 , 96。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。试题程序:#include#include#includeint fun(int score, int m , int up)main()int i , n, up9 ;int score9=24, 35, 88, 76, 90, 54,59, 66, 96;clrscr() ;n=fun(score , 9, up) ;printf(/nup to the averag

8、e score are: ) ;for(i=0 ; i n ; i+)printf(%d , upi) ;分数: 34.00 ) 正确答案: (int fun(int score,int m, int up)int i , j=0 ;float av=0.0for(i=0;i m;i+)av=av+scorei/m ;*求平均值 * for(i=0;i av) /*如果分数高于平均分,则将此分数放入up数组中* /upj+=scorei;return j ; *返回高于平均分的人数 * )解析:解析该题第1个循环的作用是求出平均分 av,第2个循环的作用是找出高于平均分的成绩并存 入 up 数组中。

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1