1、国家二级 C语言程序设计机试(程序设计题)模拟试卷 4及答案与解析 一、程序设计题 1 请编写函数 fun,该函数的功能是:将 M行 N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 例如,若二维数组中的数据为 W W W W S S S S H H H H 则字符串中的内容应是: WSHWSHWSH WSH。 注意:请勿改动 main函数和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。 试题程序: #include #define M 3 #define N 4 void fun(char(*s)N, char*b) void main() FILE*wf
2、; char a100, WMN=w, w, w, w, S, S, S, S, H, H, H, H; int i, j; prinff(“The matrix: n”); for(i=0; i #include #include #include #define N 10 typedef struet ss *定义结构体 * char num10; int s; STU; fun(STU a, STU*s) void main() FILE*wf: STU aN=ttA01”, 81, “A02”, 89, “A03”, 66, “A04”, 87, “A05”, 77, “A06”, 9
3、0, “A07”, 79, “A08”, 61, “A09”, 80, “A10”, 71, m; int i; system(“CLS”); printff“*The original data*”); for(i=0; i void NONO(); int fun(int n) main() int n, place; do printf(“请输入 个 4位以内的正整数: ”); scanf(“ d”, &n); while(n9999); place=fun(n); printf(“输入的数字是 d位 n”, place); NONO(); void NONO() *本函数用于打开文件,
4、输入数据,调用函数,输出数据,关闭文件。 * FILE*fp, *wf; int i, n, place; fp=fopen(“in dat”, “r”); wf=fopen(“out dat”, “w”); for(i=0; i #include double fun(int n) main() int n; double sum; FILE*out: printf(“Input n=”); searlf(“ d”, &n); SHm=fun(n); printf(“ nsum= f n”, sum); * out=fopen(“out dat”, “W”); fprintf(out, “
5、f n”, fun(180); felose(out); * 国家二级 C语言程序设计机试(程序设计题)模拟试卷 4答案与解析 一、程序设计题 1 【正确答案】 void fun(char(*s)N, char*b) int i, j, k=0; for(i=0; isss”等价于 “(*s) s”。 3 【正确答案】 int bits=1; 临时变量统计位数 while(n 10) *判断是否为 0,若不为 0, bits加 1,再将 n除以 10,继续判断 * bits+: n=n 10: retum bits; 【试题解析】 本题考查:对循环跳出的条件的理解,以及理解取数字位数的方法。 通过对指定的多位数每次除以 10,去掉最后一位,直到为 0结束,使用临时变量来统计一个多位数的位数。 4 【正确答案】 double fun(int n) int m, k, i; double s=0 0; for(m=3; m=k+1) s+=sqrt(m); return s: 【试题解析】 本题考查:素数的判定方法及求平方根函数 sqrt的使用。 首先确定 n的范围,然后确定循环条件,最后根据素数的判定方法确定条件语句。