1、国家二级 C语言程序设计机试(程序设计题)模拟试卷 2及答案与解析 一、程序设计题 1 请编函数 fun,其功能是将一个数字字符串转换成与其面值相同的长整型整数。可调用 strlen函数求字符串的长度。例如,在键盘输入字符串 2345210,函数返回长整型数 2345210。 注意:请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun指定的部位填入所编写的若干语句。 试题程序: #inelude #include void NONO(); long fun(char*s) main() char 810; long r; printf(“请输入一个长度不超过 9个字符的数字字符串:
2、 ”); gets(s); r=fun(s); prinff(“r= ld n”, r); NONO(); void NONO() *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * FILE*fp, *wf; int i; long r; char s10, *P; fp=fopen(“in dat”, ”r”); wf=fopen(“out dat”, “W”); for(i=0; i void fun(char*a, char*P) main() char S81, *t; void NONO(); printf(“Enter a string: n”); gets(S)
3、; t=S; while(*t)t+; t一一; while(*t=*)t一一; fun(s, t); prinff(“The string after deleted: n”); puts(s); NONO(); void NONO() *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * FILE*in, * out; int i; char S81, *t; in=fopen(“in dat”, “r”); out=fopen(“out dat”, “w”); for(i=0; i #include void fun(char*tt, int PP) main() char
4、 aa1000; int bb26, k; void NONO(); prinff(“ nPlease enter a char string: ”); 8c肌 f(“ s”, aa); fun(aa, bb); for(k=0; k #include #include define N 5 void fun(int aN) void main() FILE*wf; int aNN, i, j; int bNN=t 1, 9,7, 2,4, 2, 3, 8, 1, 2,4, 5, 6, 7, 5, 4, 0, 6, 8, 0, 2, 7, 1, 6, 4; system(“CLS”); pri
5、nff(“*The array* n”); for(i=0; i=a&*tt=z) pp*tt一 a+; 【试题解析】 本题考查: for循环语句,注意循环变量取值范围以及循环体语句作用;数组元素初始化和赋值操作; if语句条件表达式,需注意条件表达式的逻辑运算;字符串结束标识 0。 要求统计在 tt所指字符串中 a z共 26个小写母各自出现的次数,并依次放在 pp所指数组中。首先使用 for循环语句初始化 pp数组中分别用来统计 26个字母的个数,再使用循环判断语句对 tt所指字符串中的字符进行逐一比较操作,同时存入相对应的 pp数组中。 4 【正确答案】 void fun(int aN) int i, j; for(i=0; iN; i+) for(j=0; j=i; j+) aij=0; *将数组左下半三角元素中的值全部置 0, * 【试题解析】 本题考查: for循环语句,使用嵌套循环语句遍历二维数组的各个元素;二维数组元素的引用。对于 NN二维数组,如何表示其左下半三角元素,可以通过以下语句实现: for(i=0; in; i+) for(j=0; j=i; j+) 外层循环用来控制矩阵的行下标,内层循环控制矩阵的列下标。注意列下标的取值范围,因为要表示下三角元素,所以 j的范围是 0 i。