计算机二级C语言上机题库及答案(100套)

时间: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 返回这些数的个数。

注意:部分源程序给出如下。

请勿改动主函 …… 此处隐藏:4289字,全部文档内容请下载后查看。喜欢就下载吧 ……

计算机二级C语言上机题库及答案(100套).doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:4.9 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:19元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219