国家二级C语言机试(操作题)模拟试卷322
程序填空题
1.围绕山顶一圈有N个山洞,编号为0、1、2、3、……、N—1,有一只狐狸和一只兔子在洞中居住。狐狸总想找到兔子并吃掉它,它的寻找方法是先到第一个洞(即编号为0的洞)中找;再隔1个洞,即到编号为2的个洞中找;再隔2个洞,即到编号为5的洞中找;下次再隔3个洞;即到编号为9的洞中找;……。若狐狸找一圈,请为兔子指出所有不安全的洞号。程序中用a数组元素模拟一个洞,数组元素的下标即为洞号,数组元素中的值为0时,表示该洞安全,为1时表示该洞不安全。若形参n的值为30时,不安全的洞号是0、2、5、9、14、20、27。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 100
void fun(int*a,int n)
{int i,t;
for(i=0;i<n;i++)
/*********found*********/
a[i]=【1】;
i=0;
/*********found*********/
【2】=1;
while(i<n)
{a[i]=1;
t++;
/*********found*********/
i=【3】;
}
}
main()
{ int a[N],i,n=30;
fun(a,n);
for(i=0;i<n;i++)
if(a[i]==1)
printf(\\
(1)0
(2)t
(3)i+t
解析:首先为数组所有元素赋初值0,利用循环为符合条件的数组赋值为1,并计算下一个数据的下标。设置一个变量存放间隔数,每次循环间隔数加1。本次下标加间隔数加1为下一个下标。
填空1:利用循环为数组所有元素赋值为0。
填空2:变量t为间隔数,在循环过程中每次加1,设定初始值为11。
填空3:下一个数组下标为本次的下标加间隔数加1的值。
程序修改题
2.下列给定程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里”单词”是指由空格隔开的字符串)。例如,若输入\\
void upfst(char*p)
解析:主函数中fun函数的调用方式说明函数fun的参数应为指针类型。
程序设计题
3.请编写函数fun,其功能是:计算并输出下列多项式的值。
double fun(int n)
{
int i;
double s=0.0;
for(i=1;i<=n;i++)
s=s+1.0/(i*(i+1));/*求级数的和*/
return S;
}
解析:本题要求级数的和,由多项式的形式可知,应使用循环语句实现,循环的通项为1/n(n+1)。本程序首先定义了和变量及循环变量,然后运用一个for语句求出级数的和,最后将和变量s返回。
本文档预览:3600字符,共1844字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载