国家二级(C语言)机试模拟试卷928
程序填空题
1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:计算
(1)x (2)n (3)t
解析:累加、累乘,算数运算;复合赋值运算; do…while循环条件。
填空1:通过下面的语句可以知道n是从2开始的,而根据题目的要求是从1+x开始的,因而此空应填写x。
填空2:由于本题用的是do…while,先循环后来判断,因此本空应该填写n。
填空3:根据题目要求和复合赋值运算可知此空应填t。
程序修改题
2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:计算n的5次方的值(规定n的值大于2且小于8),通过形参指针传回主函数,并计算该值的个位、十位、百位上数字之和作为函数值返回。例如,7的5次方是16 807, 其后3位数的和值是15。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件modi1.c中。
不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
#include
int fun(int n,int *value)
{
int d,s,i;
/*************found**************/
d=0;
/*************found**************/
s=1;
for(i=1;i<=5;i++)
\\td=d*n;
*value=d;
for(i=1;i<=3;i++)
{
\\ts=s+d%10;
/*************found**************/
\\ts=s/10;
}
return s;
}
void main( )
{
int n,sum,v;
do
{
\\tprintf(\\
(1)d=1;
(2)s=0;
(3)d=d/10;
解析:变量定义;初始化操作。
(1)此处属于逻辑错误,假如d=0,则d=d*n就不能计 算n的5次方,应将d初始化为1。
(2)在for循环中,如果s=1,就改变了d的个位数的值。
(3)s用来求个位、十位、百位的和,d是n的5次方的值,每循环一次d除以10,用来求十位、百位的值。
程序设计题
3.使VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun,其功能是:计算并输出给定数组(长度为9)中每相邻两个元素的平均值的平方根之和。
例如,若给定数组中的9个元素依次为12.0、34.0、 4.0、 23.0、34.0、45.0、18.0、3.0、11.0,则输出应为S=35.951014。
注意:部分源程序在文件prog1.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
double fun(double x[9])
{
}
void main( )
{ double s,a[9]={12.0,34.0,4.0,23.0,34.0,45.0,18.0,3.0,11.0};
void NONO( );
int i;
printf(\\
double fun(double x[9])
{
double sum=0.0;
int i,j=1;
for(i=0;i<9;i++)
if(j<=8)
{
sum+=sqrt((x[i]+x[i+1])/2.0);
j++; /*相邻两个元素之平均值的平方根之和*/
}
return sum; }
解析:本题考查:for循环;sqrt函数(平方根的计算);复合赋值运算。
本文档预览:3600字符,共2380字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载