国家二级(C语言)机试模拟试卷848
程序填空题
1.使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun( )的功能是调用随机函数产生20个互不相同的整数,并将其放在形参a所指数组中(此数组在主函数中已置0)。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:部分源程序在文件blank1.c中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
#define N 20
void fun(int*a)
{int i,x,n=0;
X=rand( )%20;
/*********found*********/
while(n<【1】)
{for(i=0; i<n;i++)
/*********found*********/
if(x==a[i])
【2】;
/*********found*********/
if(i==【3】)
{a[n]=x;n++;}
x=rand( )%20;
}
}
main( )
{int X[N]={0},i;
fun(x);
printf(\\
(1)N或20(2)break(3)n
解析:填空1:变量n为数组a的下标,通过while语句对数组进行赋值,数组的元素个数为20,因此循环条件应为n<20。
填空2:通过一个for循环判断x是否与数组中已存的元素相等,若重复则执行break语句,跳出for循环。
填空3:若for循环是由break语句结束的,则x与数组中的元素重复,此时i必然小于n;若for循环是因为循环变量i递增到n而不再满足循环条件结束的,说明x的值与数组中的元素不重复,则此时i的值等于n。
程序修改题
2.使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun( )的功能是先从键盘上输入一个3行、3列的矩阵的各个元素的值,然后输出主对角线元素之和。
请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件modi1.c中,不要改动main( )函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
void fun( )
{
int a[3][3],sum;
int i,j;
/*********found*********/
sum=1;
for(i=0;i<3;i++)
f for(j=0; j<3;j++)
/*********found*********/
scanf(\\
(1)sum=0;(2)scanf(\\
解析:(1)该题考查对循环语句的掌握和对数组概念的理解。本题的解题思路:先从键盘输入一个3×3的矩阵,然后循环累加,执行循环语句中的sum=sum+a[i][i];。因为变量sum用来存放累加后的结果,所以应将其初始化为0。(2)第2处错误考查标准输入函数scarf的格式,被赋值的变量前要加上取地址运算符\\
程序设计题
3.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写程序,实现矩阵(3行、3列)的转置(行列互换)。
例如,若输入下面的矩阵:
100 200 300
400 500 600
700 800 900
则程序输出:
100 400 700
200 500 800
300 600 900
注意:部分源程序在文件prog1.c中。
请勿改动主函数main( )和其他函数中的任何内容,仅在函数fun( )的花括号中填入你编写的若干语句。
试题程序:
#include
#include
#include
void fun(int array[3][3])
{
}
void main( )
{
FILE*wf;
int i,j;
int array[3][3]={{100,200,300},{400,500,600),{700,800,900}};
system(\\
void fun(int array[3][3])
{
int i,j,t;
for(i=0;i<3;i++)/*将上三角和下三角对换,实现行列互换*/
for(j=i+1; j<3;j++)
{t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}
解析:要实现矩阵转置,即将上三角数组元素和下三角数组元素互换,本题通过数组元素交换方法,完成矩阵转置操作。
因为对矩阵转置后仍然存回其本身,所以只能循环矩阵中的—个角(本程序选择的是上三角)。控制上三角的方法是在内层循环中从i+1或i开始循环变量j。
本文档预览:3600字符,共2971字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载