2019年11月12日C语言测试错题

2019年11月12日 1294点热度 0人点赞 0条评论

下面程序段的运行结果是________。

x=y=0;

while(x<15)y++,x+=++y;

printf("%d,%d",y,x);

【参考答案】 错误

C.8,20

【学生答案】

D.6,12

以下不构成无限循环的语句或语句组是________。

【参考答案】 错误

C.n=0; do{++n;}while(n<=0);

【学生答案】

A.n=10; while(n);{n--;}

以下程序的输出结果是________。

void main()

{ int a=0,i;

for(i=1;i<5;i++)

{ switch(i)

{ case 0:

case 3:a+=2;

case 1:

case 2:a+=3;

default:a+=5;

}

}

printf("%d\n",a);

}

【参考答案】 错误

C.31

【学生答案】

D.13

在循环嵌套中,使用break语句只可以跳出所在循环.

【参考答案】 错误

正确

【学生答案】

错误

已知int k=0;则语句while(k=1)k++;将一次也不执行.

【参考答案】 错误

错误

【学生答案】

正确

程序段int i=0; while(i=0) i=i-1;循环体语句执行_____次.(请用阿拉伯数字作答)

【空 1】 错误 空比例:1

【学生答案】

1

【参考答案】

0

若有int m=1,x=6;则执行下列语句后,变量x=_______。

while(m<1)

m++;

x++;

【空 1】 错误 空比例:1

【学生答案】

5

【参考答案】

7

已知int i,sum=0;执行以下程序段后的sum的值是_____.for(i=7;i>1;i=i-2){sum+=i;}

【空 1】 错误 空比例:1

【学生答案】

16

【参考答案】

15

/*------------------------------------------------

【程序设计】

--------------------------------------------------

题目:编写函数fun,函数的功能是:求一个

四位数的各位数字的立方和

--------------------------------------------------

注意:部分源程序给出如下。请勿改动主函数

main和其它函数中的任何内容,仅在函

数fun的花括号中填入所编写的若干语句。

*********Begin**********和********** End **********不可删除

------------------------------------------------*/

#include "stdio.h"

int fun(int n)

{

/**********Begin**********/

/********** End **********/

}

main()

{

int k,n;

printf("请输入一个4位数:");

scanf("%d",&n);

k=fun(n);

printf("k=%d\n",k);

yzj();

getch();

}

yzj()

{

FILE *IN,*OUT;

int iIN,iOUT,i;

IN=fopen("in.dat","r");

if(IN==NULL)

{printf("Please Verify The Currernt Dir..It May Be Changed");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{printf("Please Verify The Current Dir.. It May Be Changed");

}

for(i=0;i<5;i++)

{fscanf(IN,"%d",&iIN);

iOUT=fun(iIN);

fprintf(OUT,"%d\n",iOUT);

}

fclose(IN);

fclose(OUT);

}

【参考代码】

int d,k,s=0;

while (n>0)

{d=n%10;

s+=d*d*d;

n/=10;

}

return s;

===============

【考生代码】

int g,s,b,q,out;

g=n%10/10;

s=n%100/10;

b=n%100/10;

q=n/1000;

out=g*g*g+s*s*s+b*b*b+q*q*q;

return out;

------------------------------------

代码准确率:40.00%,得分比例:0.10

程序编译检测:编译成功,得分比例:0.40

程序结果检测:结果错误,得分比例:0.00

/*------------------------------------------------

【程序设计】循环 -- Guo S.

--------------------------------------------------

题目:编写函数fun,函数的功能是:求一个整数n的逆序返回值。

比如,当n为1234,则返回4321;当n为13579,则返回97531。

--------------------------------------------------

注意:部分源程序给出如下。请勿改动主函数

main和其它函数中的任何内容,仅在函

数fun的花括号中填入所编写的若干语句。

*********Begin**********和********** End **********不可删除

------------------------------------------------*/

#include "stdio.h"

void bky(void);

// 完成函数fun,返回n的逆序

int fun(int n)

{

/**********Begin**********/

/********** End **********/

}

main()

{

int k,n;

printf("请输入一个整数:");

scanf("%d",&n);

k=fun(n);

printf("逆序后:%d\n",k);

bky();

}

void bky(void)

{

FILE *IN,*OUT;

int iIN,iOUT,i;

IN=fopen("in.txt","r");

if(IN==NULL)

{

printf("Please Verify The Currernt Dir..It May Be Changed");

}

OUT=fopen("out.txt","w");

if(OUT==NULL)

{

printf("Please Verify The Current Dir.. It May Be Changed");

}

for(i=0;i<5;i++)

{

fscanf(IN,"%d",&iIN);

iOUT=fun(iIN);

fprintf(OUT,"%d\n",iOUT);

}

fclose(IN);

fclose(OUT);

return ;

}

【参考代码】

int x=0;

while(n)

{

x *= 10;

x += n%10;

n /= 10;

}

return x;

===============

【考生代码】

int a,out;

for(n;n>0;n)

{

a=n%10;

n=n%10;

}

out+=a*10;

return out;

------------------------------------

代码准确率:75.00%,得分比例:0.40

程序编译检测:编译成功,得分比例:0.40

程序结果检测:结果错误,得分比例:0.00

/*------------------------------------------------

【程序设计】

--------------------------------------------------

题目:求出菲波那契数列的前n项的和。

菲波那契数列为这样的数列:1 1 2 3 5 8 ……

注:菲波那契数列前10项的和为143

注意:部分源程序给出如下。请勿改动主函数main和其

它函数中的任何内容,仅在函数fun的花括号中填

入所编写的若干语句。

*********Begin**********和********** End **********不可删除

------------------------------------------------*/

#include <stdio.h>

void TestFunc();

long fun(int n)

{

/*********Begin**********/

/********** End **********/

}

main()

{

printf("y=%ld\n",fun(10));

TestFunc();

}

void TestFunc()

{

FILE *IN,*OUT;

long fOUT;

int n;

IN=fopen("19.IN","r");

if(IN==NULL)

{

printf("Please Verify The Currernt Dir..it May Be Changed");

}

OUT=fopen("19.out","w");

if(OUT==NULL)

{

printf("Please Verify The Current Dir.. it May Be Changed");

}

for(n=5;n<=8;n++)

{fOUT=fun(n);

fprintf(OUT,"%ld\n",fOUT);}

fclose(IN);

fclose(OUT);

}

【参考代码】

int f1=1,f2=1,i;

long f,s=2;

for(i=3;i<=n;i++)

{ f=f1+f2;

s=s+f;

f1=f2;f2=f;}

return s;

===============

【考生代码】

int i,out;

for(i=1;i<n;i++)

{

i=i+i;

out=i;

i=n;

}

return out;

------------------------------------

代码准确率:50.00%,得分比例:0.10

程序编译检测:编译成功,得分比例:0.10

程序结果检测:结果错误,得分比例:0.00

/*------------------------------------------------

【程序设计】

--------------------------------------------------

题目:求1到w之间的奇数之和。(w是大于等于100小于等

于1000的整数)

*********Begin**********和********** End **********不可删除

------------------------------------------------*/

#include <stdio.h>

#include"conio.h"

void bky();

long fun(int w)

{

/**********Begin**********/

/********** End **********/

}

main()

{

int m;

printf("Enter m: ");

scanf("%d", &m);

printf("\nThe result is %ld\n", fun(m));

bky();

}

void bky()

{

FILE *IN,*OUT;

int c ;

int t;

long o;

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("Read FILE Error");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("Write FILE Error");

}

for(c=1;c<=5;c++)

{

fscanf(IN,"%d",&t);

o=fun(t);

fprintf(OUT,"%ld\n",o);

}

fclose(IN);

fclose(OUT);

}

【参考代码】

long y=0;

int i;

for(i=1;i<=w;i++)

if(i%2==1)y+=i;

return y;

===============

【考生代码】

int i,out;

for(i=1;i<w;)

{

out+=i;

i=i+2;

}

return out;

------------------------------------

代码准确率:66.67%,得分比例:0.11

程序结果检测:结果正确,得分比例:0.53

Howard Wu

这个人很懒,什么都没留下

文章评论