国家二级C语言机试(操作题)模拟试卷495
程序填空题
1. 给定程序中,函数fun的功能是:判断形参s所指字符串是否是“回文”(Palindrome),若是,函数返回值为1;不是,函数返回值为0。“回文\\
(1)s
(2)–
(3)return 0
解析:第一空:“rp=s+strlen(s)-1;”可知rp指向最后一个元素,因此,1Ip是指向第一个元素,故第一空应为“s”。
第二空:“1p++;rp【2】;”1p往后移动,rp应该往前移动,故第二空处应为“–”。
第三空:“if(1p<rp)”成立说明1p和rp比较没有比较到字符串的最中间的字符,也就是说s字符串不是回文,因此,第三空处的应为“return 0”。
程序修改题
2. 给定程序MODI1.C中fun函数的功能是:求出以下分数序列的前n项之和。
(1)double fun(int n)
(2)c=a; a+=b; b=c;
解析:(1)fun函数中的语句“double s=0.0;”以及“return(s);”说明fun函数具有double返回值,所以应将“fun(int n)”改为“double fun(int n)”。
(2)根据题干中给出的公式可以推出每一项的特点,知道每一项的b值是前一项的c值,所以第二个标识下“b+=c”改为“b=c;”。
程序设计题
3. 请编写函数fun,函数的功能是:将大于形参m且紧靠m的k个素数存入xx所指的数组中。例如,若输入17,5,则应输出:19,23,29,31,37。
注意:部分源程序在文件PROG1.C文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
void fun (int m, int k, int xx [ ] )
{
}
main ()
{
int m, n, zz[1000] ;voidNONO ();
printf(\\
int r=0, temp,p, sign=1;
for(temp=m+1;temp<m*m;temp++
)
//从temp开始循环,判断紧靠temp
的整数
{for(p=2;p<temp;p++)
{if(temp%p!=0)//判断temp
是否为素数
sign=1;//若是素数,标志设为1
else
{sign=0;//若不是素数,标志
设为0
break;}
}
if(sign==1&&p>=temp)
{if(k>=0) //判断已有的素
数个数是否已经满足sum个
{xx[r++]=temp;//将素数
temp存入数组select
k–;//将题目中要求的素数
个数减1
}
else
break;
}}
解析:进入fun函数,根据前面的分析:
首先,定义、初始化变量sign,作为素数的标志;定义r,初始化为存储素数数组的起始位。然后,每判断一次temp中的值是否为素数后,使temp的值增1,再次对temp中新的值进行判断其是否为素数,不断循环此过程,直到m的值等于指定的个数,即函数中的k个数。
本文档预览:3600字符,共1959字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载