1、二级 C 语言机试 30 及答案解析(总分:100.00,做题时间:90 分钟)一、B填空题/B(总题数:1,分数:30.00)1.请补充 main 函数,该函数的功能是:从键盘输入一个长整数,如果这个数是负数,则取它的绝对值,并显示出来。 例如,输入:-3847652,结果为:3847652。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun()的横线上填入所编写的若干表达式或语句。 试题程序:#includestdio.h #includeconio.h main() long int n; clrscr(); printf(“Enter th
2、e data;/n“); scanf(U 【1】 /U); printf(“* the absolute value */n“); if(n0) U 【2】 /U printf(“/n/n“); printf(U 【3】 /U); (分数:30.00)填空项 1:_二、B改错题/B(总题数:1,分数:30.00)2.下列给定程序中,函数 fun()的功能是:读入一个字符串 (长度20),将该字符串中的所有字符按ASCII 码降序排序后输出。 例如:输入 dafhc,则应输出 hfdca。 请改正程序中的错误,使它能得到正确结果。 注意:不要改动 main 函数,不得增行或删行,敢不得更改程序的
3、结构。 试题程序: #include conio.h #include stdio.h /*found*/ int fun(char t ) char c; int i,j; for(i=0;istrlen(t)-1;i+) for(j=i+1;istrlen(t);j+) if(titj) c=tj; /*found*/ ti=ti+; ti=c; main() char s81;clrscr(); printf(“/nPlease enter a character string:“); gets(s); printf(“/n/nBefore sorting:/n%S“,s); fun(s
4、); printf(“/nAfter sorting decendingly:/n %s“,s); (分数:30.00)填空项 1:_三、B编程题/B(总题数:1,分数:40.00)3.请编写一个函数 void fun(int m, int k, int xx),该函数的功能是将大于整数 m 且紧靠 m 的 k个非素数存入所指的数组中。 例如,若输入 15,5,则应输出 16,18,20,21,22。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。 试题程序: #include conio.h #include
5、stdio.h void fun(int m,int k,int xx) main() int m,n,zz1000; clrscr(); printf(“/nPlease enter two integers:“); scanf(“%d%d“, for(i=m+1,n=0;nk;i+) *找大于 m 的非素数,循环 k 次,即找出紧靠 m 的 k 个非素数*/ for(j=2;ji;j+) /*判断一个数是否为素数* if(i%j=0) xxn+=i; *如果不是素数,放入数组 xx 中* break; /*并跳出本层循环,判断下一个数* 解析本题只要掌握了判断非素数和素数的算法即不难完成了,其实程序缺少部分也正是这部分。