全国计算机等级考试二级C语言机试真题2007年9月
(总分100,考试时间90分钟)
1、程序填空题
1. 下列给定的程序中,函数fun()的功能是:求输入的两个数中较小的数。 例如:输入5 10,结果为rain is 5。 [注意] 部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 [试题源程序]
#include <stdio.h> #include <conio.h> int fun(int x, (1) )
int z;
z=x<y (2) x:y; return(z);
main()
int a, b, c;
scanf(\"%d, %d\\n\ (3) ); c=fun(a, b);
printf(\"min is %d\
2、程序修改
1. 下列给定程序中,函数fun()的功能是求出数组中最小数和次最小数,并把最小数和a[0]中的数对调,次最小数和a[1]中的数对调。
请改正程序中的错误,使它能得到正确结果。
[注意] 不要改动main函数,不得增行或删行,也不得更改程序的结构。 [试题源程序]
#include <stdio.h> #include <conio.h> #define N 20
void fun(int *a, intn) int i, m, t, k;
/***********************found***********************/ for(i=0; i<n; i++) m=i;
for(k=i; k<n; k++) if(a[k]<a[m])
/**********************found**********************/ k=m; t=a[i]; a[i]=a[m]; a[m]=t;
3、编程题
1. 下列程序定义了N×N的二维数组,并在主函数中赋值。请编写一个函数fun(),函数的功能是:求数组周边元素的平方和并作为函数值返回给主函数。例如,若数组a中的值为 0 1 2 7 9 1 11 21 5 5 2 21 6 11 1 9 7 9 10 2 5 4 1 4 1
则返回主程序后s的值应为310。 [注意] 部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
[试题源程序]
#include <stdio.h> #include <conio.h> #include <stdiib.h> #define N 5
int fun(int w[][N])
main()
int a[N][N]=0, 1, 2, 7, 9, 1, 11, 21, 5, 5, 2, 21, 6, 11, 1, 9, 7, 9, 10, 2, 5, 4, 1, 4, 1; int i, j; int s; clrscr()
printf(\"*****The array*****\\n\"); for(i=0; i<N; i++)
for(j=0; j<N; j++)
printf(\"%4d\
printf(\"\\n');
s=fun(a);
printf(\"*****THE RESULT*****\\n\"); printf(\"The sum is: %d\\n\
因篇幅问题不能全部显示,请点此查看更多更全内容