2020年全国计算机等级考试二级c语言上机精选题库(共80套)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020年全国计算机等级考试二级c语言上机精选题库(共80套)
第1套试题
第一题:给定程序中,函数fun的功能是:计算N*N矩阵的主对角元素和反向对角元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。
例如,若N=3,有下列矩阵:
1 2 3
4 5 6
7 8 9
fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
#include
#define N 4
fun(int t[][N], int n)
{
int i, sum;
___1___;
for (i=0; i sum += ___2___; for (i=0; i sum += t[i][n-i-___3___]; return sum; } main() { int i, j, t[][N] = {21, 2, 13, 24, 25, 16, 47, 38, 29, 11, 32, 54, 42, 21, 3, 10}; printf("\nThe original data:\n"); for (i=0; i { for (j=0; j printf("%4d", t[i][j]); printf("\n"); } printf("The result is: %d", fun(t, N)); } 第二题:下列给定程序中,函数fun 的功能是:根据整型参n ,计算如下公式的值。 ,11=A ,1112A +=A ,1123A +=A … ,1 11-A +=A n n 例如,若n=10,则应输出0.617978。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main 函数,不得增行或删行,也不要更改程序的结构! #include #include /********found********/ fun(int n) { double A = 1; int i; /********found********/ for(i=2;i A = 1.0/(1+A); return A; } main() { int n; printf("\nPlease enter n: "); scanf("%d", &n); printf("A%d=%lf\n", n, fun(n)); } 第三题:请编写函数fun ,其功能是:将两个两位数的正整数a 、b 合并形成一个整数在c 中。合并的方式是:将a 数的十位和个位依次放在c 数的百位和个位上,b 数的十位和个位数依次放c 数的千位和十位上。 例如,当a=45,b=12,调用该函数后,c=1425。 请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。 #include #include void fun (int a, int b, long *c) { } main () { int a, b; long c; FILE *out; printf ("Input a, b:"); scanf ("%d%d", &a, &b); fun ( a, b, &c ); printf ("The result is: %ld\n", c); out=fopen ("out.dat", "w"); for (a = 0; a < 10; a++) { fun(a+28, a+82, &c); fprintf(out, "%ld\n", c); } fclose (out ); } 第一题 答案:第1处填空:sum=0; 第2处填空:t[i][i] 第3处填空:1 第二题 答案:第1处:fun(int n) 应改为double fun(int n) 第2处:for(i=2;i 第三题 答案:void fun( int a, int b, long *c) { *c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10; } 第2套试题 第一题:请补充fun函数,函数的功能是:打印出1~1000中满足个位数字的立方等于其本身的所有数。本题的结果为:1 64 125 216 729. 仅在横线上填入所编写的若干表达式或语句,勿改动函数中其他函数任何内容。 #include main() { int i, g; for (i=1; i<1000; i++) { g = ___1___; if (___2___) printf("%4d", i); } } 第二题:下列给定程序中,函数fun的功能是:计算整数n的阶乘。请改正程序中的错误或在横线上填上适当的内容并把横线删除,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结果。 #include double fun(int n) { double result = 1.0; /********found********/ while (n>1 && n<170) result *= --n; /********found********/ ___填空___ } main() { int n; printf("Enter an integer: "); scanf("%d", &n); printf("\n\n%d!=%1g\n\n", n, fun(n)); } 第三题:请编写一个函数fun,它的功能是:计算n门课程的平均数,计算结果作为函数值返回。例如:若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为71.80. 请勿改动主函数main和其他函数中哦的任何内容,仅在函数fun的花括号填入所编写的若干语句。 #include float fun ( float *a, int n ) {