2020年全国计算机等级考试二级c语言上机题库(共45套).docx
《2020年全国计算机等级考试二级c语言上机题库(共45套).docx》由会员分享,可在线阅读,更多相关《2020年全国计算机等级考试二级c语言上机题库(共45套).docx(158页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、2020年全国计算机等级考试二级c语言上机精选题库(共45套)第1套题、 填空题请补充main函数,该函数的功能是:计算每个学生科目的平 均分,并把结果保存在数组bb中。例如,当scoreNM=78.5,84,83,65,63,88,91.5,89,93,95,72.5,65,56,75,77时,三个学生的平均分为:74,7 91.3 69.1 仅在横线上填入所编写的若干表达式或语句,勿改动函数中的 其他任何内容。#include #define N 3#define M 5main()int i, j;static float scoreNM=78.5,84, 83, 65,63,88,91
2、.5,89, 93, 95),72.5,65,56, 75, 77);float bbN;for (i=0; iN; i+)1;for (i=0; iN; i+)for (j=0; jM; j+)bbi /= M;for (i=0; iN; i+)printf(nstudent%dtaverage=%5.1f, i+1, bbi);二、改错题下列给定程序中,函数fun的功能是:根据整型行参m,计算如下公式的值。y=1 1 1+100x100 200 x 200 300 x 300+mxm例如,若m=2000,则应该输出:0.000160。请改正程序中的错误,使它能得出正确的结果。#includ
3、e #include /* *found* */fun(int m)(double y = 0, d;int i;/* * found* */for (i= 100, i=m, i+=100)d = (double)i*(double)i;y += 1.0/d;)return (y);main()(int n = 2000;printf(nThe result is %lfn, fun(n);)三、编程题请编写函数fun,该函数的功能是:统计个年龄段的人数。N 个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函 数把。至9岁年龄段的人数放在d0中,把10至19岁年龄段的人数 放在d
4、l中,把20至29岁年龄段的人数放在d2中,其余依此类推, 把!00岁(含!00)以上年龄的人数都放在d10中。结果在主函数 中输出。请勿改动主函数main和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。#include #define N 50#define M 11void fun(int *a, int *b) double rnd()(static t=29, c=217, m=1024, r=0;r=(r*t+c)%m;return(double)r/m);main()int ageN, i, dM;FILE *out;for(i=0; iN; i+)agei
5、=(int)( 115 *md();printf(The original data :n);for(i=0; iN; i+)printf(i+l)%10=0?%4dn:%4d,agei);printf(nn);fun( age, d);out=fopen (out.dat,w);for(i=0;i 10;i+)(printf(%4d%4d : %4dn,i*10, i*10+9, di);fprintf(out, %4d%4d : %4dn, i*10, i*l0+9, di);printf( Over 100 : %4dn, d10);fprintf(out, Over 100 : %4d
6、n, d10);fclose (out);答案:一、1、bbi=O 或 (bb+i)=O2 bbi+=scoreij 或 bbi=bi+scoreij 或bbi=scoreij+bbi二、1、fun(int m)应改为 double fun(int m)2、for(i=100,i=m,i+=100)应改为 for(i= 100;i=m;i+= 100)三void fun (int *a, int *b)(int i, j;for(j=0;jM;j+)bj=O;for(i=0;i=0&ai= 10&ai=20&ai=30&ai=40&ai=50&ai=60&ai=70&ai=80&ai=90&a
7、i=99) b9+=l;elseb10+=l;第2套:填空题请补充main函数,该函数的功能是:从键盘输入组字符串,以,*, 结束输入,并显示出这个字符串。例如,输入abcdef *,结果显示abcdef。仅在横线上添入所编写的若干表达式或语句,勿改动函数中的其他 任何内容。ttinclude #define N 80main()int i = T, j = 0;char strN;printf (/zn Input a string n);doi+;scanf(_1_); while (_2_);printf (z,n * display the string *;while (j i)pr
8、intf(_3_);j+;答案:“%c,&str(2)stri! = *(3) %c , strj改错题:下列给定程序中,函数fun的功能是:计算并输出high以内最大的 10个素数之和。High由主函数传给fun函数。若high的值为100, 则函数的值为732。#include #include #include int fun(int high)int sum = 0, n = 0, j, yes;while (high = 2) & (n 10)yes = 1;for (j=2; j=high/2; j+)/*found*/if (high%j = 0)yes = 0;breakif
9、(yes)|sum += high;n+;high;)return sum;)main ()(printf(%dn”, fun(100);)答案:break改为break;程序设计:请编写函数fun,该函数的功能是:统计一行字符串中单词的个 数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由 小写字母组成,单词之间由若干个空格隔开,一行的开始和结束都没 有空格。ttinclude ttinclude #define N 80int fun(char *s) main ()char lineN;int num=0;FILE *out;char *test = Hello World!,
10、 This is a test string. , a b , cde f g, sf 1 );printf(Enter a string :n);gets(line);num=fun( line );printf (The number of word is ; %dnn,num);out=fopen(out. dat, w);for (num=0;num4;num+)printf(out, %dn, fun(testnum);fclose(out);第3套第一题:已知学生的记录由学号和学习成绩构成,N名学生的数据已 存入a结构体中,给定程序的功能是找出成绩最低的学生记录,通过 形参返回函数
11、。请勿改动主函数main和其他函数中的任何内容,仅在fun函 数的横线上填入所编写的若干表达式或语句。#include #include #define N 10typedef struct sschar num10;int s; STU;fun(STU a, STU *s)stu h;int i;h = a0;for (i=l; iN; i+)if (ai.s h.s)h = ai;*s =_h;main()STU aN=(AOI, 81, A02, 89, A03, 66, A04, 87,A05, 77, A06, 90, A07, 79, A08, 61,A09, 80, A10,71
12、, m;int i;printf(* The original data *n);for (i=0; iN; i+)printf(No = %s Mark = %dn, ai.num, ai.s);fun(a, &m);print出* THE RESULT *n);printf(The lowest : %s , %dn, m.num, m.s);第二题:下列给定程序中,函数fun的功能是:将字符串p中的所有 字符复制到字符串b中,要求每复制三个字符之后插入一个空格。例 如,在调用fun函数之前给字符串a输入ABCDEFGHIJK,调用函数 之后,字符串之后,字符串b中的内容则为ABCDEFG
13、HI JK。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程 序的结构!#include void fun(char *p, char *b)(int i, k = 0;while (*p) i = 0;/* * fk)und* */while (i3 & *p) bk = *p;k+;P+; i+; )if (*P)b*+l = bk = 、;) main() (char a80, b80;printf(Enter a string:);gets(a);printf(The original string: );puts(a);fun(a,
14、b);printf(nThe string after insert space: ); puts(b);printf(nn);第三题:请编写个函数fun,它的功能是:计算并输出给定整数n的 所有因子(不包括1与自身)之和。规定n的值不大于lOOOo例如,若主函数从键盘给n输入的值为856,则输出为 sum=763。请勿改动主函数main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。#include int fun(int n) main()(int n,sum;FILE *out;printf(Input n:); scanf(%d,&n); sum=fun(n);
15、printf(,sum=%dn,sum); out=fopen (out.dat,w); fprintf(out, %dn, fun(123); fprintf(out, %dn, fun(456); fprintf(out, %dn, fun(789); fprintf(out, %dn, fun(147); fprintf(out, %d, fun(258);fclose (out);)int fun(int n)(int s=0,i;for(i=2;i=n-l;i+) if(n%i=0) s+=i;return s;第4套填空题请补充main函数,该函数的功能是:把字符串str!中的非空
16、格字符拷贝到字符串str2中.例如,若 strl=,nice to meet you!,则 str2=nicetomeetyou!”仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任 何内容.#include #define N 80main()(static char strlN = nice to meet you!;char str2N;int i = 0, j = 0;printf(n* strl *田);puts(strl);while (strl i)(iff一1一)str2j+ = strli;_.2;printf(n* str2 *n );for (i=0; ij;
17、i+)printf(%c, str2i);改错题下列给定程序中,函数fun的功能是:将大写字母转换为对应小写字母 之后的第五个字母;若小写字母为vz,使小写字母的值减21.转换后的 小写字母作为函数值返回.例如,若形参是字母A,则转换字母为小写字 母f;若形参是字母W,则转换为小写字母b.请改正函数fun中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结 构!#include #include char fun(char c)if(c=A & c=a & c=v & c=z)c = c-21;return c;)main()(char cl, c2;
18、printf(nEnter a letter(A-Z):);cl = getchar();if (isupper(c 1)(c2 = fun(cl);printf(nnThe letter %c change to %cn, cl, c2);else(printf(nEnter (A-Z)!n);)编程题请编写函数fun,其功能是:将s所指字符串中ASCH值为奇数的字 符删除,串中剩余字符形成一个新串放在t所指的数组中。例如,若s所指字符串中的内容为ABCDEFG12345,其中字符A的ASCH码值为奇数、字符1的ASCII码值也为奇数、都应当删除,其他依次类推。最 后t所指的叔祖中的内容应是
19、BDF24o请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花 括号中填入所编写的若干语句。#include #include #include void fun( char *s, char t) main()char s100, t100, Msg = Please enter string S:;FILE *out;printf(Msg);scanf(%s, s);fun(s, t);printf(nThe result is :%sn, t);out=fopen (out.dat,w);fun(Msg, t);fprintf(out, %s, t);fclose (out
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2020 全国 计算机等级考试 二级 语言 上机 题库 45
限制150内