《二级C语言上机100题库.docx》由会员分享,可在线阅读,更多相关《二级C语言上机100题库.docx(106页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1题填空题给定程序中,函数firn的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数 按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:27638496,新的数:为739。请在程序的下划线处填入正确的内容并把 下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKS C 中。不得增行或删行,也不得更改程序的结构!答案:t=*n% 10;/* d */if(t%2!= 0)x=x+t*i; i=i*10; *n =*n /10;/* found*/*n=x;改错题给定程序MOD C中函数fun的功能是:计算n!。例如,给n输
2、入5,则输出120。000000o请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程 答案:/* found * */if(n = 0)return 1.0;while( n 1 & n 170 )/* fQund* */result *= n-;程序编写请编写一个函数fun,它的功能是:将 个数字字符串转换为一个整数(不得调用C语言提 供的将字符串转换为整数的函数)。例如,若输入字符串“-1234”,则函数把它转换为整数 值-1234;函数ftin中给出的语句仅供参考。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它
3、函数中的任何内容,仅在函数fun的花括号中填入你编写的若 干语句。long fun ( char *p)/*以下代码仅供参考*/int i, len, t; /* len为串长,t为正负标识为long x=0;len=strlen(p);inext=NULL;fbr(i=l; idata=rand( )%m; p-next=s;s-next=p-next;p=p-next;/*Cund* */return h;程序编写请编写函数fun,函数的功能是:统计一行字符创中单词的个数,作为函数值返回。一行字 符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的 开始没有空格
4、。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若 干语句。int fun( char *s)int k = 1 ;while(*s) if(*s = *) k+ ;S-H-;return k ;第4题填空题程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据以 二进制方式输出的文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的 数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注
5、意:源程序存放在考生文件夹下的BLANK1。C中。不得增行或删行,也不得更改程序的结构!fp = fbpen(filename, rb);fread(s, sizeof(STU), N, fp);fclose(fp);for (i=0; iN-l; i-H-)for (j=i+l;jsj.sno) t = si; si = sj; sj = t; fp = fbpen(filename, nwbn);/*/fwrite(s, sizeof(STU), N, fp);改错题给定程序MOD。C中函数fbn的功能是:在字符串繁荣最前端加入n个*号,形成新 串。并覆盖原串。注意:字符串的长度最长允许为
6、79。请改正函数fun中指定部位的错误,使它能得出正确的结果。/*Cund* */P=s;fbr(i=O; in; i-H-) ai=*;do ai=*p;i+;/*d */whiIe(*p-H-);程序编写请编写函数fbn,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得, 并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d2中,其余依次类推, 把100岁(含100)以上年龄的人数都放在dl中。结果在主函数中输出。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若 干语句。void f
7、iin( int *a, int *b)int i,j ;fbr(i = 0 ; i M ; i-H-) bi = 0 ;fbr(i = O;i 10) bM - 1+; else bj+ ;第5题填空题给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用 字符串方式从此文本文件中逐个的读入,并调用库函数atoi和atof将字符串转换成相应的 整数、浮点数,然后将其显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意源程序存放在考生文件夹下的BLANK1。C中。不得增行或删行,也不得更改程序的结构!/* */FILE fp;ch
8、ar str100, strl100, str2100;int al; double fl;fprintfiffp, %s %d %fnM, s, a, f);/* Qund * */fclose(fp);fp = fbpen(,filel.txf, V);/*治und*/fscanf(fp,%s%s%s, str, strl, str2);改错题给定程序MOD。C中函数firn的功能是:对N名学生的学习成绩,按从高到低的顺序找 出前m (m (=10)名学生来,并将这些学生数据存放在个动态分配的连续存储区中,此 存储区的首地址作为函数值返回。请改正函数fiin中指定部位的错误,使它能得出正确
9、的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构int ij,k;/* d */t=(STU *)calloc(sizeof(STU),m);fbr(i=0; iN; i+) bi=ai;fbr(k=0; km; k+) for(i=j=0; ibj.s) j=i;tk=bj;程序编写请编写函数fun,函数的功能是:删除一维数组中所有相同的数,使之只剩一个。数组中的 数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如,维数组中的数据是:2223445666677899 10 10 10。删除后,数组中的内容应该是:23456789 100注意:部分源程序存在
10、文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若 干语句。int fun(int a, int n)int i, j = 1, k = a0;fbr(i = 1 ; i n ; i+)if(k != ai) aj+=ai;k = ai;)a|J = 0;return j ;第6题填空题给顶程序中,函数fim的功能是根据形参i的值返回某个函数的值。当调用正确时,程序输 出:x 1=5.000000, x2=3.000000, xl*xl+xl*x2=4.000000请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
11、注意:源程序存在考生文件夹下的BLANK1。C中。不得增行或删行,也不得更改程序的结构!/*治und*/double fun(int i, double x, double y) if(i=l)/* */return fl (x);else/*心un(j*/return f2(x, y);改错题给定程序MODI1。C中函数fim的功能是:比较两个字符串,将长的那个字符串的首地址 作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构 sl+;/*Cund* */SS-H-;)while(*tt) tl+;tt+;
12、程序编写请编写函数fiin,函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m 个字符,平移到字符串的最后,把第m+1到最后的字符移动到字符串的前部。例如,字符串中原有的内容为:ABCDEFGH1JK, m的值为3,则移动后,字符串中的 内容应该是:DEFGHIJKABC,注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若 干语int i; char t;t=wO;fbr(i=O;istrlen(w)-1 ;i+) wi=wi+l;wstrlen(w)-l=t;第7题填空题程序通过定义并赋值的方式,利用
13、结构体变量存储了一名学生的信息。函数fun的功能 是输出这位学生的信息。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存在考生文件夹下的BLANKS C中。不得增行或删行,也不得更改程序的结构!/* */void show(STU tt) int i;printf(Mn%d %s %c %d-%d-%dn, tt.num, tt.name, tt.sex,tt.birthday.year, tt.birthday.month, tt.birthday.day);fbr(i=O; i3; i+)/* */printff%5.1F= tt.scorei); pr
14、intf(MnH);main() STU std= 1 ;ZhanghuaM?M, 1961,10,8,76.5,78.0,82.0 ;printf(MnA student data:n*);/* */show(std);改错题给定程序MOD。C中函数fun的功能是:求出数组中最大数和次最大数,并把最大数 和a0中的数对调、次最大数和al中的数对调。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!fbr(i=0;i2;i+) /*%und* */m=i;fbr(k=i+1 ;kam) m=k;程序编写请编写一个函数unsigned f
15、un (unsigned w), w是一个大于10的无符号整数,若w是n (n=2)位的整数,函数求出w的低n-1位的数作为函数值返回。例如:w值为5923,则函数返回923; w值为923则返回23。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若 干语句。if(w 10000) w %= 10000;else if(w1000) w %= 1000 ;else if(w100) w %= 100 ;else if(w10) w %=10 ;return w;第8题填空题给定程序通过定义并赋初值的方式,利用结构
16、体变量存储了一名学生的学号、姓名和3 门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!/*Cund* */void modify(STU *ss,float a) int i;fbr(i=O; iscorei *=a;main() STU std= l,ZhanghuaH,76.5,78.0,82.0 ;float a;printf(MnThe original number and name and scores :n
17、);show(std);printf(HnInput a number :”); scanff%f&a);modify(&std,a);改错题long fiin (int k)/* */ if (k0)return (k*fiin(k-l);/* fQund * */ else if( k=0)程序编写程序定义了 NXN的二维数组,并在主函数中自动赋值。请编写函数fun (inta口N, intn), 函数的功能是:使数组左下三角元素中的值乘以n。例如:若n的值为3, a数组中的值为则返回主程序后a数组中的值应为o 注意:部分源程序存在文件PROGl.C文件中。请勿改动主函数main和其它函数
18、中的任何内容,仅在函数fun的花括号中填入你编写的若 干语句。int i,j;fbr(i = 0 ; i N ; i-H-)fbr(j = O;jnext;/* und*/while (q) if (p-data q-data) t = p-data; p-data = q-data; q-data = t; q = q-next;p = p-next;改错题给定程序MOD。C中函数fun的功能是:将s所指字符串中的字母转换为按字母序列 的后续字母(但Z转换为A, z转换为a),其它字符不变。请改正函数firn中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,
19、也不得更改程序的结构!/* Qund */while(*s) if(*s-A* & *s-a* & *s-z,) ifi*s=,Z,) *s=A;else if(*s=zf) *s=,a,;else*s += 1;S-H-;程序编写标从。到p (含p, p小于等于n-1)的数组元素平移到数组的最后。 例如,一维数组中的 原始内容为:1,2, 3, 4, 5, 6, 7, 8, 9, 10; p的值为3。移动后,一维数组中的内容应 为:5, 6, 7, 8, 9, 10, 1, 2, 3, 4。注意:部分源程序存在文件PROG1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数f
20、un的花括号中填入你编写的若 干语句。(int i,j = 0, bN;for(i = p + 1 ; i n ; i+) bj+ = wi;fbr(i = 0 ; i = p ; i+)= wi;for(i = 0 ; i n ; i+) wi= bi;第10题填空题给定程序中,函数fun的功能是:判定形参的NXN (规定N为奇数)的矩阵是否是吆J方, 若是,函数返回值为1;不是,函数返回值为0。幻方的判定条件是:矩阵每行、每列、 主对角线及反对角线上的元素之和都相等。例如,以下3X3的矩阵就是个幻方:请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。源程序存在考生文件夹
21、下的BLANK1。C中。不得增行或删行,也不得更改程序的结构!/* */row=colum= 0;fbr(j=O;jN;j+) row+=aij; colum+=aji; /*Cund* */if( (row!=colum) | (row!=ml) return 0;retxim 1;改错题给定程序MODIL C中函数fun的功能是:根据整数形参m,计算如下公式的值。例如,若主函数中输入5,则应输出-0.283333。请改正函数fon中的错误或在横线处境上适当的内容并把横线删除,使它能计算出正确 的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!fbr( i = 2;
22、i next;/*Cund* */if (p=0) return;q = p-next;p-next = NULL;while (q) r = q-next; q-next = p;/*%und* */P = q;q = r;改错题给定程序MODILC中函数fun的功能是:计算s所指字符串中含有t所指字符串的数目, 并作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果;注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。/* fjund * */while(*r)if(*r=*p) 什+; p-H-; else break;/* fbund */if(*r=
23、0)程序编写请编写函数fun,函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超 过N),按顺序合并成一个新的字符串,函数fun中给出的语句仅供参考;例如,字符串数组中的M个字符串为AAAABBBBBBBCC则合并后的字符串的内容是:AAAABBBBBBBCCo提示:strcat(a,b)的功能是将字符串b复制到字符串a的串尾上,成为一个新串。注意:部分源程序存在文件PROG1.C中。请勿改动主函数main和其它汉书中的任何内容,仅在函数firn的花括号中填入你编写 的若干语句。/*以下代码仅供参考*/int i; *b=0;fbr(i = 0 ; i next;p-next = N
24、ULL;while (q)/* *Gund*/r = q-next;q-next = p;p = q;/*Cund* */q = r;改错题给定程序MOD11.C中,函数fbn的功能是:将s所指字符串中位于奇数位置的字符或ASC II码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中);例如:字符串中的数据为:AABBCCDDEEFF,则输出结构应该是:ABBCDDEFF;请改正函数fun中指定部位的错误,是它能得出正确的结果, 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! /*d*/ifU%2 | si%2=0)tU+=si;/* * *Cund* */tm=x
25、r;程序编写请编写函数fun,函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次 放到一维数组中,函数ftm中给出的语句仅供参考。例如:二维数组中的数据为:33 33 33 3344 44 44 4455 55 55 55则一维数组中的内容应该是:33 44 55 33 44 55 33 44 55 33 44 55注意:部分源程序在文件PROGLC中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写 的若干语句。/*以下代码仅供参考*/int ij,np=0; /*np用作b数组下标*/fbr(i = 0 ; i nn ; i-H-)fbr(j = 0
26、 ; j next;while(p) ifp-data%2=0)sum +=p-data;/* Qund* */p=p-next;程序编写请编写函数fun,函数的功能是:判断字符串是否为回文?若是,函数返回1,主函数 中输出:YES,否则返回0,主函数中输出:NO,回文是指顺读和倒读都一样的字符串。例如:字符串LEVEL是回文,而字符串123312就不是回文。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数种的任何内容,仅在函数fun的花括号中填入你编写 的若干语句。int fun(char *str)int i, j = strlen(str);for(i = 0;i
27、j/2;i-H-)if(stri != strj - i - 1) return 0 ;return 1 ;)第15题填空题程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩,所有学生数 据均以二进制方式输出到student.dat文件中,函数fun的功能是从指定文件中找出指定学号 的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数都加三分,修改后 重写文件中该学生的数据,即用该学生的新数据覆盖原数据,其他学生数据不变;若找不到, 则什么都不做。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。
28、不得增行或删行,也不得更改程序的结构!while (!feof(fp) fread(&n, sizeofifSTU), 1, fp);/* found */if (n.sno=sno) break;if(!feofi(fp) for (i=0; i3; i-H-) n.scorei += 3;/* Qund * */fseek(fp, -lL*sizeof(STU), SEEK_CUR);改错题给定程序MODI1.C中函数fun的功能是:利用插入排序法对字符串中的字符按从小到大的 顺序进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序,然后把第三个 字符插入到前两个字符中,插入后前
29、三个字符依然有序;再把第四个字符插入到前三个字符 中,一待排序的字符串已在主函数中赋予。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!/*心un(j*/n=strlen( aa);fbr(i=l;is;STREC *p; p=h-next;while(p) ifip-smax) max=p-s; p=p-next;return max;第16题填空题给定程序中,函数fiin的功呢功能是:求出形参ss所指字符串数组中最长字符串的长 度,将其余字符串右边用字符*补齐,使其马最长的字符串等长。ss所指字符串驻足中共有 M个字符串,且串长N
30、。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中;不得增行或删行,也不得更改程序的结构!/* found*/n=strlen(ssi);for(j=O;jlen-n;j+)/* Qund * */ssin+j=*;/* * */ssin+j+l=W;改错题给定程序MODI1.C中,firn函数的功能是:将p所指字符串中每个单词的最后个字母 改成大写。(这里的单词是指由空格隔开的字符串)。例如,若输入I am a student to take the examination.则应输出 I aM A studenT tO
31、takE thE thE examination.请修改程序中的错误之处,使它能得出正确的结果。注意:不要改动main函数,不得删行,也不得更改程序的结构!/* d */k =0;* (p-1) = toupper( *( p - 1 );程序编写请编写函数fun,对长度为7个字符串的字符串,除首、尾字符外,将其余5个字符按 ASCII码降序排列。例如,原来的字符串为CEAedca,排序后输出为CedeEAa,注意:部分原程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fon的花括号中填入你编写 的若干语句。int fun(char *s,int num)ch
32、ar ch ; int i,j ;fbr(i = 1 ; i 6 ; i+)for(j = i + 1 ;j6;j+) if(*(s + i) *(s+j) ch = *(s + j);*(s + j) = *(s +i);*(s + i) = ch ;第17题填空题程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩,函数 fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!/* */struct student t;int i,j;/*Cund* */fbr (i=0; in-l;i-H-)for (j=i+l;j 0)改错题给定程序MODH.C中fun函数的功能是:在p所指字符串中找出ASCII码值最大的字符, 将其放在第一个位置上;并将该字符的原字符向后顺序移动。例如:调用fun函数之前给字符串输入:ABCDeFGH.调用后字符串中的内容为:eABCDFGH.请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!/*Cund* */q=p+i;)i+;while( q