计算机二级C语言上机题库及答案(100套)
时间:2026-01-21
时间:2026-01-21
计算机二级 c 语言上机题库及答案
内部资料,切勿外传!
.第 1 套
填空题
请补充 FUN 函数,FUN 函数的功能是求 10 的阶乘。 注意:部
分源程序给出如下。
请勿改动主函数 main 和其他函数中的任何内容,
仅在 fun 函数的横线上填入所编写的若干表达式或语句。 试题程序:
#include <stdio.h>
long fun(int n)
{
}
main()
{
printf("10!=%ld\n", fun(10)); }
第 1 处填空:n>1 或 1<n
第 2 处填空:n-1
第 3 处填空:1 或 11 或 1L
改错题
下列给定程序的功能是:读入一个整数 K(2〈=K〈=10000),
打印它的所有因子(即所有为素数的因子)。例如,若输入整数 2310,则应输出:2、3、5、7、11。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改程序
的结构!
试题程序:
#include <conio.h>
#include <stdio.h>
/********found********/
IsPrime(int n);
{
int i, m;
m = 1;
/********found********/
for (i=2; i<n; i++)
if !(n%i)
{
m = 0;
break;
}
return(m);
}
main()
{
int j, k;
printf("\nplease enter an integer number between 2 and 10000:");
scanf("%d", &k);
printf("\n\nThe prime factor(s) of %d is(are):", k);
for (j=2; j<k; j++)
if ((!(k%j)) && (IsPrime(j)))
printf(" %4d,", j);
printf("\n");
}
第 1 处:Isprime(int n);应改为 Isprime(int n)
第 2 处:if !(n%i)应该为 if(!(n%i))
编程题
M 个人的成绩存放在 score 数组中,请编写函数 fun,它的 功能是:返回低于平均分的认输,并将低于平均分的分数放在 below 所指的数组中。
例如,当 score 数组中的数据为 10、20、30、40、50、60、 70、80、90 时,函数返回的认输应该是 4,below 中的数据应 我 10、20、30、40。 注意:部分源程
序给出如下。
请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。
试题程序:
#include <conio.h>
#include <stdio.h>
#include <string.h>
int fun(int score[],int m, int below[])
{
}
main()
{
int i,n,below[9];
int score[9]={10,20,30,40,50,60,70,80,90};
FILE *out;
n=fun(score,9,below);
printf("\nBelow the average score are :");
out=fopen("out.dat", "w");
for(i=0;i<n;i++)
{
printf("%d ",below[i]); fprintf(out, "%d\n", below[i]);
}
fclose(out);
}
答案是:
int fun(int score[], int m, int below[]) {
int I, k=0,aver=0;
for(i=0;i<m;i++)
aver+=score[i];
aver/=m;
for(i=0;i<m;i++)
if(score[i]<aver)
{
below[k]=score[i];
k++;
}
return k; } 第 2 套
填空题
请在函数 FUN 的横线上填写若干表达式,使从键盘上输入 一个整数 N,输出斐波纳契数列。斐波纳契数列是一种整数数列, 其中每数等于前面两数之和,如:0 1 1 2 3 5 8 13…..
请勿改动主函数 main 和其他函数中的任何内容,仅在 fun 函数 的横线上填入所编写的若干表达式或语句。
试题程序:
#include <stdio.h>
int fun(int n);
main() {
int i, n = 0;
scanf("%d", &n);
for (i=0; i<n; i++)
printf("%d ", fun(i));
}
int fun(int n) {
)
return 0; else ) return 1;
; }
第 1 处填空:n==0 或 0==n 或!n
第 2 处填空:n==1 或 1==n
第 3 处填空:fun(n-1)+fun(n-2)或 fun(n-2)+fun(n-1)
改错题
下列给定程序中,函数 FUN 的功能是:逐个比较 a、b 两
个字符串对应位置中的字符,把 ASCII 值大或相等的字符依次存 放到 c 数组中,形成一个新的字符串。例如,若 a 中的字符串为 aBCDeFgH,b 中的字符串为:ABcd,则 c 中的字符串应为: aBcdeFgH。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动 main 函数,不得增行或删行,也不得更改
程序的结构!
试题程序: #include <stdio.h>
#include <string.h>
void fun(char *p, char *q, char *c) {
/********found********/
int k = 1;
/********found********/
while (*p != *q)
{
if (*p < *q)
c[k] = *q;
else
c[k] = *p;
if (*p)
p++;
if (*q)
q++;
k++;
}
}
main()
{
char a[10] = "aBCDeFgH", b[10] = "ABcd", c[80] =
{'\0'};
fun(a, b, c);
printf("The string a:");
puts(a);
printf("The string b:");
puts(b);
printf("The result:");
put s(c);
}
第 1 处:int k=1 应改为 int k=0;
第 2 处:while(*p!=*q)应改为 while(*p||*q)
编程题
请编写函数 fun,它的功能是:求出 1 到 1000 之内能被 7 或 11 整除、但不能同时被 7 或 11 整除的所有整数并将它们放 在 a 所指的数组中,通过 n 返回这些数的个数。
注意:部分源程序给出如下。
上一篇:宝洁公司战略分析(1)(1) 3
下一篇:中考诗词赏析答题技巧及考题训练2