收藏 分销(赏)

计算机等级考试二级C语言机考题库.doc

上传人:仙人****88 文档编号:8223035 上传时间:2025-02-08 格式:DOC 页数:16 大小:1.07MB
下载 相关 举报
计算机等级考试二级C语言机考题库.doc_第1页
第1页 / 共16页
计算机等级考试二级C语言机考题库.doc_第2页
第2页 / 共16页
计算机等级考试二级C语言机考题库.doc_第3页
第3页 / 共16页
计算机等级考试二级C语言机考题库.doc_第4页
第4页 / 共16页
计算机等级考试二级C语言机考题库.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、第1套:1.填空题给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:27638496,新的数为:739。 void fun(unsigned long *n) unsigned long x=0, i; int t; i=1; while(*n)/*found*/ t=*n % _1_;/*found*/ if(t%2!= _2_) x=x+t*i; i=i*10; *n =*n /10; /*found*/ *n=_3_;答案:(1)10(2)0(3)x2.改错题给定程序M

2、ODI1.C中函数fun的功能是:计算n!。例如,给n输入5,则输出120.000000。double fun ( int n ) double result = 1.0 ;/*found*/ if n = = 0 return 1.0 ; while( n 1 & n =0 & si=9)/*found*/ sj=si;/*found*/ sj=0;答案:(1)sj+=si;(2)sj=0;3.编程题请编写函数fun,函数的功能是:将m行n列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,二维数组中的数据为:W W W WS S S SH H H H则字符串中的内容应该是:WS

3、HWSHWSH。void fun(char sN, char *b) int i,j,n=0; for(i=0; i N;i+) /* 请填写相应语句完成其功能 */ for(j = 0 ; j next=NULL; for(i=1; idata=rand()%m; s-next=p-next; p-next=s; p=p-next; /*found*/ return p;答案:(1)p=(NODE *)malloc(sizeof(NODE);(2)return h;3.编程题请编写函数fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有的单词由

4、小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。int fun( char *s) int k = 1 ; while(*s) if(*s = ) k+ ; s+ ; return k ;第4套:1.填空题程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中,函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。void fun(char *filename) FILE *fp; int i, j; STU

5、 sN, t;/*found*/ fp = fopen(filename, _1_); fread(s, sizeof(STU), N, fp); fclose(fp); for (i=0; iN-1; i+) for (j=i+1; j (3)fwrite2.改错题给定程序MODI1.C中函数fun的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。注意:字符串的长度最长允许为79。void fun ( char s, int n ) char a80 , *p; int i;/*found*/ s=p; for(i=0; in; i+) ai=*; do ai=*p; i+;

6、/*found*/ while(*p+) ai=0; strcpy(s,a);答案:(1)p=s;(2)while(*p+);3.编程题请编写函数fun,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d0中,把10至19岁年龄段的人数放在d1中,把20至29岁年龄段的人数放在d2中,其余依次类推,把100岁(含100岁)以上年龄的人数放在d10中。结果在主函数中输出。void fun( int *a, int *b) int i, j ; for(i = 0 ; i M ; i+) bi = 0 ; for(i =

7、 0 ; i 10) bM - 1+ ; else bj+ ; 第5套:1.填空题给定程序中,函数fun的功能是将参数给定的字符串、整数浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。void fun(char *s, int a, double f)/*found*/ _1_ fp; char str100, str1100, str2100; int a1; double f1; fp = fopen(file1.txt, w); fprintf(fp, %s %d %fn, s, a, f)

8、;/*found*/ _2_ ; fp = fopen(file1.txt, r);/*found*/ fscanf(_3_,%s%s%s, str, str1, str2); fclose(fp); a1 = atoi(str1); f1 = atof(str2); printf(nThe result :nn%s %d %fn, str, a1, f1);答案:(1)FILE * (2)fclose(fp) (3)fp2.改错题给定程序MODI1.C中函数fun 的功能是:对n名学生的学习成绩,按从高到低的顺序找出前m(m10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此

9、存储区的首地址作为函数值返回。STU *fun(STU a, int m) STU bN, *t; int i,j,k;/*found*/ t=(STU *)calloc(sizeof(STU),m) for(i=0; iN; i+) bi=ai; for(k=0; km; k+) for(i=j=0; i bj.s) j=i;/*found*/ t(k)=b(j); bj.s=0; return t;答案:(1)t=(STU *)calloc(sizeof(STU),m);(2)tk=bj;3.编程题请编写函数fun,函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小

10、到大的排序排列,函数返回删除后数组中数据的个数。例如,一维数组中的数据是:2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。删除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10。int fun(int a, int n) int i, j = 1, k = a0 ; for(i = 1 ; i sl) return t; else return s;答案:(1)char *fun(char *s, char *t)(2) ss+;(3)tt+;3.编程题请编写函数fun,函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符,平移到字符

11、串的最后,把第m+1到最后的字符移动到字符串的前部。例如,字符串中原有的内容为:ABCDEFGHIJK,m的值为3,则移动后,字符串中的内容应该是:DEFGHIJKABC。void fun(char *w, int m) /* 可调用fun1函数左移字符 */ int i; for(i = 0 ; i m ; i+) fun1(w);第7套:1.填空题程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的信息。函数fun的功能是输出这位学生的信息。/*found*/void show(STU _1_) int i; printf(n%d %s %c %d-%d-%d, tt.num, tt

12、.name, tt.sex, tt.birthday.year, tt.birthday.month, tt.birthday.day); for(i=0; i3; i+)/*found*/ printf(%5.1f, _2_); printf(n);main( )STU std= 1,Zhanghua,M,1961,10,8,76.5,78.0,82.0 ; printf(nA student data:n);/*found*/ show(_3_);答案:(1)tt (2)tt.scorei(3)std2.改错题给定程序MODI1.C中函数fun的功能是:求出数组中最大数和次最大数,并把最大

13、数和a0中的数对调、次最大数和a1中的数对调。int fun ( int * a, int n ) int i, m, t, k ; for(i=0;i2;i+) /*found*/ m=0; for(k=i+1;kam) k=m; t=ai;ai=am;am=t; 答案:(1)m=i;(2)if(akam) m=k;3.编程题请编写一个函数unsigned fun(unsigned w),w是一个大于10的无符号整数,若w是n(n2)位的整数,函数求出w的低n-1位的数作为函数值返回。例如:w值为5923,则函数返回923;w值为923则函数返回23。unsigned fun ( unsig

14、ned w ) if(w10000) w %= 10000 ; else if(w1000) w %= 1000 ; else if(w100) w %= 100 ; else if(w10) w %=10 ; return w ;第8套:1.填空题给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的各科成绩都乘以一个系数a。/*found*/void modify(_1_ *ss,float a) int i; for(i=0; i_2_ *=a;main( )STU std= 1,Zhanghua,76.5,78.0,82.0

15、 ; float a; printf(nThe original number and name and scores :n); show(std); printf(nInput a number : ); scanf(%f,&a);/*found*/ modify(_3_,a); printf(nA result of modifying :n); show(std);答案:(1)STU(2)scorei(3)&std2.改错题给定程序MODI1.C中函数fun的功能是:求k!(k 0 return (k*fun(k-1);/*found*/ else if ( k=0 ) return 1

16、L;答案:(1)if (k 0) (2)else if ( k=0 )3.编程题程序定义了nn的二维数组,并在主函数中自动赋值。请编写函数Fun(int aN, int n),函数的功能是:使数组左下三角元素中的值乘以n。例如:若n的值为3,a数组中的值为a=197 3 9 7 2 3 8 则返回主程序后a数组中的值应为 6 9 84 5 6 12 15 18int fun ( int aN, int n ) int i, j; for(i = 0 ; i N ; i+) for(j = 0 ; j data q-data) t = p-data; p-data = q-data; q-dat

17、a = t; q = q-next; /*found*/ p = _3_ ; 答案:(1)p-next (2)q(3)p-next 2.改错题给定程序MODI1.C中函数fun的功能是:将s所指字符串的字母转换为按字母序列的后续字母(但Z转换为A,z转换为a),其它字符不变。void fun (char *s)/*found*/ while(*s!=) if(*s=A & *s=a & *s=z) if(*s=Z) *s=A; else if(*s=z) *s=a; else *s += 1; /*found*/ (*s)+; 答案:(1)while(*s)(1)s+;3.编程题请编写函数fu

18、n,函数的功能是:移动一维数组中的内容;若数组中有n个整数,要求把下标从0到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。void fun(int *w, int p, int n) int i, j = 0, bN ; for(i = p + 1 ; i n ; i+) bj+ = wi ; for(i = 0 ; i = p ; i+) bj+ = wi ; for(i = 0 ; i n ; i+) wi= bi ;第10套

19、:1.填空题给定程序中,函数fun的功能是:判定形参a所指的NN(规定N为奇数)的矩阵是否是“幻方”,若是,函数返回值为1;不是,函数返回值为0。“幻方”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。例如,以下33的矩阵就是一个“幻方”:4 9 23 5 78 1 6int fun(int (*a)N) int i,j,m1,m2,row,colum; m1=m2=0; for(i=0; iN; i+) j=N-i-1; m1+=aii; m2+=aij; if(m1!=m2) return 0; for(i=0; iN; i+) /*found*/ row=colum=

20、_1_; for(j=0; jN; j+) row+=aij; colum+=aji; /*found*/ if( (row!=colum) _2_ (row!=m1) ) return 0; /*found*/ return _3_;答案:(1)0(2)| (3)12.改错题给定程序MODI1.C中fun函数的功能是:根据整型形参m,计算如下公式的值。1 1 1 T=1- - - - - .- - 2 3 m例如,若主函数中输入5,则应输出-0.283333double fun( int m ) double t = 1.0; int i; for( i = 2; i _1_;/*found

21、*/ if (p=_2_) return; q = p-next; p-next = NULL; while (q) r = q-next; q-next = p;/*found*/ p = q; q = _3_; h-next = p;答案:(1)next(2)0(3)r2.改错题给定程序MODI1.C中函数fun的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。int fun(char *s, char *t) int n; char *p , *r; n=0; while ( *s ) p=s;/*found*/ r=p; while(*r) if(*r=*p) r+

22、; p+; else break;/*found*/ if(*r= 0) n+; s+; return n;答案:(1)r=t;(2) if(*r= 0)3.编程题请编写函数fun,函数的功能是:将放在字符串数组中的m个字符串(每串的长度不超过n),按顺序合并组成一个新的字符串。函数fun中给出的语句仅供参考。例如,字符串数组中的M个字符串为AAAABBBBBBBCC则合并后的字符串的内容应是:AAAABBBBBBBCC。void fun(char aMN, char *b) /* 以下代码仅供参考 */ int i; *b=0; for(i = 0 ; i next; p-next = NU

23、LL; while (q) /*found*/ r = q-_2_; q-next = p; p = q;/*found*/ q = _3_ ; return p;答案:(1)NODE(2)next(3)r2.改错题给定程序MODI1.C中函数fun的功能是:将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中(规定第一个字符放在第0位中)。例如,字符串中的数据为:AABBCCDDEEFF,则输出应当是:ABBCDDEFFvoid fun(char *s, char t) int i, j=0; for(i=0; istrlen(s); i+)/*found*/ if(

24、i%2 & si%2=0) tj+=si;/*found*/ ti=0;答案:(1)if(i%2 | si%2=0)(2)tj=0;3.编程题请编写函数fun,函数的功能是:将m行n列的二维数组中的数据,按列的顺序依次放到一维数组中。函数fun中给出的语句仅供参考。例如,二维数组中的数据为:33 33 33 3344 44 44 4455 55 55 55则一维数组中的内容应是:33 44 55 33 44 55 33 44 55 33 44 55。void fun(int (*s)10, int *b, int *n, int mm, int nn) int i,j,np=0; /* np用作b数组下标 */ for(i = 0 ; i nn ; i+) for(j = 0 ; j data _3_ q-data) t = p-data; p-data = q-data; q-data = t; q = q-next; p = p-next; 答案:(1)h-next (2)p-next (3)= 2.改错题给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fu

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服