【真题1】 下列给定程序中,函数fun()的功能是:将字符串p 中所有字符复制到 字符串b 中,要求每复制3 个字符之后插入一个空格。例如,在调用fun()函数之前 给字符串a 输入ABCDEFGHIJK,调用函数之后,字符串b 中的内容则为ABC DEF GHI JK。 试题程序: #include < stdio.h >void fun(char *p,char *b) { int i, k=0; while(__1__) { i=0; while(__2__&&*p) { b[k]=*p; k++;p++;i++; } if(*p) { b[__3__]= ' ';} } b[k]= '\0'; } main() { char a[80],b[80]; printf("Enter a string: "); gets(a); printf("The original string: "); puts(a); fun(a,b); printf("\nThe string after insert space: "); puts(b); printf("\n\n "); } (2011年2月) 解析: 填空1:根据题目的意思,这里应该是利用wile循环处理字符串,因为 字符串的结束标志\0可以作为循环结束的判断条件,所以C 语言中很多情况都 这样使用,考生要注意。 填空2:根据题目的意思,此处是对于写入的字符个数进行计数,如果到3就 应该结束这个循环插入空格,所以应该和是否到达串结尾为逻辑与的关系。 填空3:由算法可以看出,此处是在输出结果中置入空格字符,注意插入空格后 指针应该后移。 答案:【1】*p 【2】i< 3 【3】k++ 【真题2】 下列给定程序中,函数fun()的功能是逐个比较a,b 两个字符串对应位 置中的字符,把ASCII值小或相等的字符依次存放到c 数组中,形成一个新的字符 串。 例如:a中的字符串为fshADfg,b 中的字符串为sdAEdi,则c 中的字符串应为 fdAADf。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include < stdio.h >#include < string.h >void fun(char *p,char *q,char *c) { int k=0; while(*p||*q) /**********************found***********************/ { if (*p< =*q) c[k]=*q; else c[k]=*p; if(*p) p++; if(*q) q++ ; /**********************found***********************/ k++ } } main() { char a[10]="fshADfg",b[10]="sdAEdi",c[80]={'\0'}; fun(a,b,c); printf("The string a:"); puts(a); printf("The string b:"); puts(b); printf("The result :"); puts(c); } (2011年2月) 解析: (1)错误: { if (*p< =*q) 正确:{ if (*p >=*q) (2)错误:k++ 正确:k++; 错误1:依题意,把ASCII值小或相等的字符存放到c 数组中,故if语句的关 系运算符应为" >="。 错误2:C语言规定,每个语句要用分号结束。 【真题3】 编写函数fun,它的功是计算: s=(In(1)+In(2)+In(3)+……+In(m))^0.5,s作为函数值返回。在C语言中可 调用log(n)函数求In(n)。log 函数的引用说明是:double log(double x)。 例如,若m 的值为:20,fun 函数值为:6.506583。 注意:部分源程序存在文件prog.c 中。 请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入你编 写的若干语句。 #include < conio.h >#include < math.h >#include < stdio.h >double fun( int m) {……} main() { clrscr(); printf("%f\n",fun(20)); } (2011年2月) 解析: 本题的考核点是公式算法。 解题思路:从1 至m累计log(i)的和值,最后求它的平方根。 本评析仅供参考。 double fun( int m) { int i; double s=0; for (i=1;i< =m;i++) /*求In(1)~In(m)的和*/ s=s+log(i); s=sqrt(s); /*求s的平方根*/ return (s); } |