二级C语言机试12.doc

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

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

1、二级 C 语言机试 12( 总分: 100.00 ,做题时间: 90 分钟 )一、B 填空题 /B( 总题数: 1,分数: 30.00)1. str 为一个字符序列。请补充函数 fun() ,该函数的功能是:查找 str 中值为 x 的元素,返回该字符序列 中值为 x 的元素个数, 并把这些值为 x 的元素下标依次保存在数组bb 中。 例如,在“ abcdefahij ”中查找a,结果为:2个a,下标依次为 0、6。注意:部分源程序给出如下。请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun() 的横线上填入所编写的若干表达式或语句。 试题程序: #include #includ

2、e #define N 20 int bbN; int fun(char *str,char ch) int i=0,n=0; char t=ch; char *p=str; while(*p) if (U【1】 /U) U【2】 /U; p+; i+; returnU 【3】 /U; main() char strN; char ch; int i, j,n; clrscr(); printf(*Input the original string */n); gets(str); printf(*The Original */n); puts(str);printf(*Input chara

3、cter */n); scanf(%c,&ch); n=fun(str,ch); printf(/nThe numbr of character is: %d/n, n); printf*The suffix of character */n); for(i=0;i n;i+) printf(%d ,bbi); (分数: 30.00 )填空项 1: (正确答案: 1 *p=t 2 bbn+=I 3 n)解析: 解析 填空 1:通过指针 p 的移动来依次访问字符串的各个字符,如果指针 p 所指的字符等于待查 找的字符, 即表示找到了满足条件的字符。 填空 2 :将找到的字符在字符数组中的下标值保

4、存在数组 bb 中。 填空 3:变量 n 记录在字符串中找到待查找字符的个数。 由 main 函数的调用可知函数 fun() 的返回值为 n。二、B 改错题 /B( 总题数: 1,分数: 30.00)2. 下列给定程序中,函数fun()的功能是:根据整型形参m的值,计算如下公式的值。t =1-1/(2 X2) -1/(3 X3)-l/(m xm)请改正函数fun()中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include double fun(int m) double y=1.O; int i; /

5、*found*/for(i=2;im;i+) /*found*/y-=1/ (i*i); return(y); main() int n=5; clrscr();printf(/nThe result is %1f/n, fun(n); (分数: 30.00 )填空项 1: (正确答案:错误: for(i=2;i m;i+) 正确: for(i=2;i =m;i+) )解析: (2) 错误: y-=1/(i*i) ;正确: y-=1.0/(i*i);解析 该题是一道简单的计算题, 循环条件 for(i=2;im;i+)中忽略了 i=m时的一种情况,因为题目中i是从2到m的一个计算公式,y-=1

6、/(i*i);的错误很明显,是语法错误,由定义 double y=1.0 可知,应该是 y-=1.0/(i*i); ,而非 y-=1/(i*i);。三、B 编程题 /B( 总题数: 1,分数: 40.00)3. 请编写函数 void fun(int x, int pp, int *n),它的功能是:求出能整除 x 且不是偶数的各整数,并按从小到大的顺序放在即所指的数组中,这些除数的个数通过形参n返回。 例如,若x中的值为30,则有 4个数符合要求,它们是 1, 3, 5, 15。 注意:部分源程序给出如下。 请勿改动主函数 main 和其 他函数中的任何内容,仅在函数 fun 的花括号中填入所

7、编写的若干语句。 试题程序: #include #include void fun (int x, int pp, int *n) main() int x,aa1000, n, i ;clrscr(); printf(/nPlease enter an integer number : /n ) ; scanf (%d, &x) ; fun (x, aa, &n) ; for (i=0 ; i n ; i+) printf (%d , aa i); printf (/n ) ; (分数: 40.00 ) 正确答案: ()解析: void fun (int x, int pp, int *n) int i,j=0; for(i=1;ix;i=i+2) /*i 的初始值为 1,步长为2,确保i为奇数*/ if(x%i=0) /*将能整除x的数存入数组pp中*/ ppj+=i; *n=j; /*传回满足条件的数的个数*/ 解析本题题干信息是:能整除 x且不是偶数的所有整数。循环语句中i从1开始且每次增 2,所以 i 始终是奇数。

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

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


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