2011年计算机二级考试C语言十套上机题(10)[1]

上传人:jiups****uk12 文档编号:88917039 上传时间:2019-05-13 格式:DOC 页数:5 大小:38KB
返回 下载 相关 举报
2011年计算机二级考试C语言十套上机题(10)[1]_第1页
第1页 / 共5页
2011年计算机二级考试C语言十套上机题(10)[1]_第2页
第2页 / 共5页
2011年计算机二级考试C语言十套上机题(10)[1]_第3页
第3页 / 共5页
2011年计算机二级考试C语言十套上机题(10)[1]_第4页
第4页 / 共5页
2011年计算机二级考试C语言十套上机题(10)[1]_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《2011年计算机二级考试C语言十套上机题(10)[1]》由会员分享,可在线阅读,更多相关《2011年计算机二级考试C语言十套上机题(10)[1](5页珍藏版)》请在金锄头文库上搜索。

1、2011年计算机二级考试C语言十套上机题(10)1.填空题 请补充main函数,该函数的功能是:从键盘输入一个字符串并保存在字符str1中,把字符串str1中下标为偶数的字符保存在字符串str2中并输出。例如,当str1=“cdefghij”,则str2=“cegi”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #define LEN 80 main() char str1LEN,str2LEN; char *p1=str1,*p2=str2; int i=

2、0,j=0; clrscr(); printf(Enter the string:n); scanf(【1】); printf(*the origial string*n); while(*(p1+j) printf(【2】,*(p1+j); j+; for(i=0;ij;i+=2) *p2+=*(str1+i); *p2=0; printf(nThe new string is:%sn,【3】); 答案及评析:【1】%s,str1 【2】%c 【3】str2 【解析】填空1:本题考查对标准输入函数scanf()的调用格式,当输入字符串时,格式控制字符串为%s,题目要求输入的字符串保存在str

3、1中,所以地址表列应为字符串的首地址,即为str1。填空2:本题考查对标准输出函数printf()的调用格式,当输出为字符型变量时,格式控制字符串为%c。填空3:题目要求将str1中下标为偶数的字符保存在字符串str2中并输出,所以printf()函数的输出表列是str22. 改错题 在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun()的功能是计算数组元素中值为负数的平均值(不包括0)。 例如:数组中元素的值依次为43,-47,-21,53,-8,12,0,则程序的运行结果为-25.333333。 请改正程序中的错误,使它能得到正确结果。 注

4、意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include double fun(int x ) double sum=0.0; int c=0, i=0; /*found*/ while(xi=0) if(xi0) sum=sum+xi; c+; i+; /*found*/ sum=sumc; return sum; main() int x1000; int i=0; clrscr(); printf(nPlease enter some data(end with 0) :); do scanf(%d,&xi); while(xi+!

5、=0); printf(%fn,fun(x); 答案及评析:(1)错误:while(xi=0)正确:while(xi!=0)(2)错误:sum=sumc;正确:sum=sum/c; 【解析】错误1:此处考查的是对循环条件的理解,当被判断的数组元素为0时,说明这是数组的最后一个元素,此时要跳出循环。 错误2:C语言中的除法运算符是/,而不是。3. 编程题 请编写一个函数int fun(int *s,int t,int *k),用来求出数组的最小元素在数组中的下标并存放在k所指的存储单元中。 例如,输入如下整数: 234 345 753 134 436 458 100 321 135 760 则输

6、出结果为6,100。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #include int fun(int *s,int t,int *k) main() int a10=234,345,753,134,436,458,100,321,135,760,k; clrscr(); fun(a, 10, &k); printf(%d, %dn , k, ak); 答案及评析: int fun(int *s,int t,int *k) int i; *k=0; /*k所指的数是数组的下标值*/ for(i=0;isi) *k=i; /*找到数组的最小元素,把该元素的下标赋给k所指的数*/ return s*k; /*返回数组的最小元素*/ 【解析】本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应让*k的值为数组中的某一下标值,即*k=0。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号