国家二级C语言机试(操作题)模拟试卷640
程序填空题
1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:计算下式前n项的和,并作为函数值返回。
(1)1
(2)2*i
(3)(-1)
解析:填空1:由fun函数整体结构可以看出k的作用是赋值,并累加各项前边的正负号,由于第一项是正的,因此赋给k的值为1。
填空2:此空下一行的表达式k*(2*i-1)*(2*i+1)/(t*t)累加的通项,k为正负号,由题目中的公式可知t=2*i。
填空3:由于通项前边的正负号每次都要发生变化,因此k=k*(-1)。
程序修改题
2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:求s的值。
(1)float fun(int k)
(2)return s:
解析:(1)此处为函数定义错误,根据返回值的类型可知函数类型标识符应为float。
(2)语法错误。
程序设计题
3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun,其功能是:找出2×M整型二维数组中最大元素的值,并将此值返回调用函数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#define M4
#include<stdio.h>
int fun(int a[][M])
{
}
void main()
{
int arr[2][M]={5,8,3,45,76,-4,12,82};
printf(\\
int fun(int a[][M])
{
int i,j,max=a[0][0];
/*对二维数组进行遍历*/
for(i=0;i<2;i++)
for(j=0;j<M;j++)
if(max<a[i][j])
/*将最大值保存在max中*/
max=a[i][j];
return max;
}
解析:此类求最大值或最小值的问题,可以采用逐个比较的方式,对数组中所有元素遍历一遍,从中找出数组最大值或最小值。首先定义变量max用来存放数组的第一个元素的值,然后利用for循环逐个找出数组中的元素,并与max比较,如果元素值大于max,则将该值赋予max,循环结束后max的值即为数组最大值,最后将该值返回。
该类题目考查较多,需要掌握逐个比较的方法。对于m*n二维数组,如果采用逐个查找方法,代码实现如下:
for(i=0;i<m;i++)
for(j=0;j<n;j++)
本文档预览:3600字符,共1730字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载