1、二级 C 语言机试-160 及答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:33.00)1.请补充 main 函数,该函数的功能是:从键盘输入一个长整数,如果这个数是负数,则取它的绝对值,并显示出来。例如,输入:-3847652,结果为:3847652。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun()的横线上填入所编写的若干表达式或语句。试题程序:#includestdio.h#includeconio.hmain()long int n;clrscr();printf(“Enter the data;/n“)
2、scanf( 【1】 );printf(“* the absolute value */n“);if(n0)【2】 printf(“/n/n“);printf( 【3】 );(分数:33.00)填空项 1:_二、改错题(总题数:1,分数:33.00)2.下列给定程序中,函数 fun()的功能是:读入一个字符串 (长度20),将该字符串中的所有字符按ASCII 码降序排序后输出。例如:输入 dafhc,则应输出 hfdca。请改正程序中的错误,使它能得到正确结果。注意:不要改动 main 函数,不得增行或删行,敢不得更改程序的结构。试题程序:#include conio.h#include s
3、tdio.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 characterstring:“);gets(s);printf(“/n/nBefore sorting:/n%S“,s);fun(s);printf(“/nAfter sorting decendingly:/n%s“,s);(分数:33.0
4、0)填空项 1:_三、编程题(总题数:1,分数:34.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 stdio.hvoid 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; /*并跳出本层循环,判断下一个数*)解析:解析本题只要掌握了判断非素数和素数的算法即不难完成了,其实程序缺少部分也正是这部分。