国家二级(C语言)机试模拟试卷902
程序填空题
1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun( )的功能是计算如下公式。
(1)3.0或(double)3(2)>(3)(t+1)
解析:基本算术运算的类型转换。其转换规则如下。
如果双目运算符两边运算对象的类型一致,则所得结果的类型与运算对象的类型一致。
如果双目运算符两边运算对象的类型不一致,则系统将自动进行类型转换,使运算符两边运算对象的类型达到一致后,再进行运算。其类型转换规则如下表所示。
程序修改题
2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun( )的功能是求出如下分数序列的前n项之和,和值通过函数值返回。
2/1,3/2,5/3,8/5,13/8,21/13,…
例如,若n=5,则应输出8.391667。
请改正程序中的错误,使其得出正确的结果。
注意:不要改动main( )函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
#include
/*********found*********/
void fun(int n)
{
int a=2,b=1,c,k;
double s=0.0;
for(k=1,k<=n.;k++)
{
/*********found*********/
s=s+(Double)a/b;
c=a;a=a+b;b=c;
}
return(s);
}
void main( )
{
int n=5;
system(\\
(1)double fun(int n)(2)s=s+(double)a/b;
解析:本题考查:函数定义。函数定义的一般形式为\\
程序设计题
3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun( ),其功能是找出整型2×M二维数组中最大元素的值,并将此值返回调用函数。
注意:部分源程序给出如下。
请勿改动主函数main( )和其他函数中的任何内容,仅在函数fun( )的花括号中填入你编写的若干语句。
试题程序:
#define M 4
#include
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;
}
解析:本题考查:求数组的最大值,需运用循环语句。
因为数组是二维数组,所以应使用两层for循环嵌套。使用for循环语句时需注意循环变量的取值范围。
此类求最大值或最小值的问题,可以采用逐个比较的方式。遍历数组中所有元素,从中找出数组的最大值或最小值。首先定义变量max来存放数组的第1个元素的值,然后利用for循环逐个找出数组中的元素,并与变量max比较。如果元素值大于max,则将该值赋给max。循环结束后max的值即为数组最大值。最后将该值返回。
该类题目考查较多,需要掌握逐个比较的方法。对于m×n二维数组,采用逐个查找的方法,代码实现如下:
for(i=0; i<m;i++)
for(j=0;j<n;j++)
本文档预览:3600字符,共2487字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载