国家二级(C语言)机试模拟试卷984
程序填空题
1.使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blankl.c。在此程序中,函数fun()的功能是将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和并作为函数值返回。
例如,形参s所指的字符串为abs5deft26jkm8,程序执行后的输出结果为22。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:部分源程序在文件blankl.c中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int fun(char *s)
(int sum=0;
while(*s){
/*********found*********/
if(isdigit(*s))
sum+=*s-【1】;
/*********found*********/
【2】;
}
/*********found*********/
return 【3】;
}
main()
{char s[81];int n;
printf(\\
(1)48或’0’ (2)s++ (3)sum
解析:本题把字符串中的数字字符转换成对应的数值并进行累加。
填空1:’0’对应的ASCII值是48,因此数字字符转换成对应数值时只要减去48,即该数字字符对应的数值。故空1处应该填48或者’0’。
填空2:判断完一个字符之后,将字符串指针移到下一个位置,故空2处应该填s++。
填空3:函数fun()返回累加和sum,故空3处应该填sum。
程序修改题
2.使用VC++2010打开考生文件夹下modil中的解决方案。此解决方案的项目中包含一个源程序文件modil.c。在此程序中,函数fun()的功能是计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数的值为4622。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件modil.c中,不要改动main()函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int fun(int k)
{int m=0,mc=0,j;
while((k>=2)&&(mc<10))
{
/*********found*********/
if((k%13=0)∣∣(k%17=0))
{m=m+k;mc++;}
k--;
/*********found*********/
return m;
}
void main()
{system(\\
(1)if((k%13==0)∣∣(k%17==0))
(2)}return m;
解析:(1)C语言中,x能被y整除的表示方法是x%y==0,而不是题目中所表示的x%y=0。所以,if((k%13=0)11(k%17=0))应改为if((k%13==0)‖(k%17==0))。
(2)while循环缺少“}”,此类信息在做题时一定要注意,可以在做题前先运行一下程序,这样明显的错误一般都会有错误信息显示出来。如丢失“}”的错误信息是“Compound statement missing}in function fun”。
程序设计题
3.使用VC++2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件progl.c。在此程序中,编写函数fun(),它的功能是求小于形参n且同时能被3与7整除的所有自然数之和的平方根,并将其作为函数值返回。
例如,若n为1000时,程序输出应为s=153.909064。
注意:部分源程序在文件progl.c中。
请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。
试题程序:
#include <math.h>
#include <stdio.h>
double fun(int n)
{
}
main()/*主函数*/
{void NONO();
printf(\\
double fun(int n)
{
double sum=0.0;
int i;
for(i=21;i<n;i++)
if((i%3==0)&&(i%7==0))
sum+=i:
return sqrt(sum);
}
解析:本题考查算术运算的算法。首先利用一个for循环判断小于n且能同时被3和7整除的整数,并将满足条件的整数累加到sum。之后调用sqrt()函数计算sum的平方根,并将其作为函数的返回值返回。
本文档预览:3600字符,共2718字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载