2020年全国计算机等级考试二级c语言上机精选题库(共50套).docx
《2020年全国计算机等级考试二级c语言上机精选题库(共50套).docx》由会员分享,可在线阅读,更多相关《2020年全国计算机等级考试二级c语言上机精选题库(共50套).docx(164页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、 2020 年全国计算机等级考试二级 c 语言上机精选题库(共 50 套)第 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
2、, 65, 63, 88, 91.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+)_2_;bbi /= M;for (i=0; iN; i+)printf(nstudent%dtaverage=%5.1f, i+1, bbi);二、 改错题下列给定程序中,函数 fun 的功能是:根据整型行参 m,计算如下公式的值。1111y=+ +100100 200 200 300300m m例如,若 m=2000,则应该输出:0.000160。请改正程序中
3、的错误,使它能得出正确的结果。#include #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 数组中;要求函 数把 0 至 9 岁年龄段的人数放在 d0中 ,把
4、 10 至 19 岁年龄段的人数放在 d1中 ,把 20 至 29 岁年龄段的人数放在 d2中,其余依此类推,把 100 岁(含 100)以上年龄的人数都放在 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;F
5、ILE *out ;for(i=0; iN; i+)agei=(int)(115*rnd();printf(The original data :n);for(i=0; iN; i+)printf(i+1)%10=0?%4dn:%4d,agei);printf(nn);fun( age, d);out=fopen (out.dat,w);for(i=0;i10;i+)printf(%4d-%4d : %4dn, i*10, i*10+9, di);fprintf(out, %4d-%4d : %4dn, i*10, i*10+9, di);printf( Over 100 : %4dn, d1
6、0);fprintf(out, Over 100 : %4dn, d10);fclose (out );答案: 一、1、bbi=0 或 *(bb+i)=02 、 bbi+=scoreijbbi=scoreij+bbi或bbi=bi+scoreij或二、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=0;for(i=0;i=0&ai=10&ai=20&ai=30&ai=40&ai
7、=50&ai=60&ai=70&ai=80&ai=90&ai=99)b9+=1;elseb10+=1;第 2 套:填空题请补充 main函数,该函数的功能是:从键盘输入一组字符串,以*结束输入,并显示出这个字符串。例如,输入 abcdef *, 结果显示 abcdef。仅在横线上添入所编写的若干表达式或语句,勿改动函数中的其他任何内容。#include #define N 80main()int i = -1, j = 0;char strN;printf(n Input a string n);do i+;scanf(_1_); while (_2_);printf(n * display
8、the string * n);while (j i)printf(_3_);j+;答案: (1)“%c”,&stri(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+)/
9、*found*/if (high%j = 0)yes = 0;breakif (yes)sum += high;n+; high-;return sum;main()printf(%dn, fun(100);答案:break改为 break;程序设计:请编写函数 fun,该 函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始和结束都没有空格。#include #include #define N 80int fun(char *s)main()char lineN;int num=0;FILE *
10、out;char *test = Hello World!, This is astring., a b, cde f g,sf l;testprintf(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=1; iN; i+)if (ai.s h.s)h = ai;*s = h;main()STU aN =A01, 81, A02, 89, A03, 66, A04, 87,A05, 77, A06, 90, A07,
12、79, A08, 61,A09, 80, A10, 71, 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);printf(* THE RESULT *n); printf(The lowest : %s , %dn, m.num, m.s);第二题:下列给定程序中,函数 fun 的功能是:将字符串 p 中的所有字符复制到字符串 b 中,要求每复制三个字符之后插入一个空格。例如,在调用fun 函数之前给字符串 a 输入 ABCDE
13、FGHIJK,调用函数之后,字符串之后,字符串 b 中的内容则为 ABC DEF GHI JK。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构!#include void fun(char *p, char *b)int i, k = 0;while (*p)/*found*/i = 0;/*found*/while (i3 & *p)bk = *p;k+;p+;i+;/*found*/if (*p)bk+ = ;bk = 0;main()char a80, b80;printf(Enter a string:gets(a););p
14、rintf(The original string: );puts(a);fun(a, b);printf(nThe string after insert space: );puts(b); printf(nn);第三题:请编写一个函数 fun,它的功能是:计算并输出给定整数 n 的所有因子(不包括 1 与自身)之和。规定 n 的值不大于 1000。例如,若主函数从键盘给 n 输入的值为 856,则输出为sum=763。请勿改动主函数 main 和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。#include int fun(int n)main()int n,sum
15、;FILE *out ;printf(Input n: );scanf(%d,&n);sum=fun(n);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-1;i+)if(n%i=0)s+=i;r
16、eturn s; 第 4 套填空题请补充 main函数,该函数的功能是:把字符串str1 中的非空格字符拷贝到字符串 str2 中.例如,若 str1=”nice to meet you!”,则 str2=”nicetomeetyou!”仅在横线上填入所编写的若干表达式或语句 ,勿改动函数中的其他任何内容.#include #define N 80main()static char str1N = nice to meet you!;char str2N;int i = 0, j = 0;printf(n* str1 *n );puts(str1);while (str1i)if (_1_)s
17、tr2j+ = str1i;_2_;printf(n* str2 *n );for (i=0; ij; i+)printf(%c, str2i);改错题下列给定程序中,函数 fun 的功能是:将大写字母转换为对应小写字母之后的第五个字母;若小写字母为 vz,使小写字母的值减 21.转换后的小写字母作为函数值返回.例如,若形参是字母 A,则转换字母为小写字母 f;若形参是字母 W ,则转换为小写字母 b.请改正函数 fun 中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!#include #include char fun(char c)/*
18、found*/if (c=A & c=a & c=v & c=z)c = c-21;return c;main()char c1, c2;printf(nEnter a letter(A-Z): );c1 = getchar();if (isupper(c1)c2 = fun(c1);printf(nnThe letter %c change to %cn, c1, c2);elseprintf(nEnter (A-Z)!n);编程题请编写函数 fun,其功能是:将 s 所指字符串中 ASCII 值为奇数的字符删除,串中剩余字符形成一个新串放在 t 所指的数组中。例如,若 s 所指字符串中的内
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2020 全国 计算机等级考试 二级 语言 上机 精选 题库 50
限制150内