国家二级(C语言)机试模拟试卷904
程序填空题
1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun( )的功能是统计形参s所指的字符串中数字字符出现的次数,并将结果存放在形参t所指的变量中,最后在主函数中输出。
例如,若形参s所指的字符串为\\
(1)s[i](2)’9’(3)*t=n
解析:填空1:通过for循环语句遍历字符串s,遍历至字符串结束标志,退出循环。变量i用来存放字符型数组下标,故空1处应该填s[i]。填空2:题目要求判断数字字符在0~9。故空2处应该填’9’。填空3:将数字字符个数n存入变量t中,此处需注意变量t是指针变量。故空3处应该填*t=n。
程序修改题
2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun( )的功能是通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。
例如,变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。
请改正程序中的错误,使它得出正确的结果。
注意:不要改动main( )函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
#include
int fun(int*x,int y)
{
int t;
/*********found*********/
t=x;x=y;
/*********found*********/
return(y);
}
void main( )
{
int a=3,b=8;
system(\\
(1)t= *x;*x=y;(2)return(t);或return t;
解析:本题考查:指针型变量的使用,通过return语句完成函数值的返回。
(1)首先,定义变量t作为中间变量,然后进行数据交换,注意参数x是指针变量,交换时应使用*x。(2)根据代码b=fun(&a,b);,可以知道返回值将赋给变量b,而b中应存放交换前*x中的值,所以函数应返回变量t。
程序设计题
3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun( ),其功能是求出1~1000能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。
注意:部分源程序给出如下。
请勿改动主函数main( )和其他函数中的任何内容,仅在函数fun( )的花括号中填入你编写的若干语句。
试题程序:
#include
#include
#include
void fun(int * a,int*n)
{
}
void main( )
{
int aa[1000],n,k;
system(\\
void fun(int*a,int*n)
{
int i,j=0;
for(i=1;i<=1000;i++)
/*求1~1000能被7或11整除但不能同时被7和11整除的所有整数,并将其放入数组a中*/
if((i%7==0||i%11==0)&&i%77!=0)
a[j++]=i;
*n=j;/*传回满足条件的数的个数*/
}
解析:if语句用来判断能被7整除或者能被11整除,但又不能同时被7和11整除的数。此处需充分理解\\
本文档预览:3600字符,共2078字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载