文档库 最新最全的文档下载
当前位置:文档库 › c语言程序阅读填空运行结果改错题

c语言程序阅读填空运行结果改错题

c语言程序阅读填空运行结果改错题
c语言程序阅读填空运行结果改错题

三、读程序题

1、float f=3.1415927;

printf(“%f,%5.4f,%3.3f”,f,f,f);

则程序的输出结果是3.141593,3.1416,3.142 .

2、int x=6,y=7;

printf(“%d,”,x++);

printf(“%d\n”,++y);

程序的输出结果是6,8

3、a=3;

a+=(a<1)?a:1;

printf(“%d”,a);

结果是. 4

4、for (a=1,b=1;a<=100;a++)

{ if(b>=20)break;

if(b%3==1)

{b+=3;continue;}

b-=5;}

程序的输出结果a的值为22 .

5、int y=1,x,*p,a[ ]={2,4,6,8,10};

p=&a[1];

for(x=0;x<3;x++)

y + = * (p + x);

printf(“%d\n”,y);

程序的输出结果y的值是19 .

四、程序填空题

1、从键盘上输入10个数,求其平均值。

main()

{int i;

float f,sum;

for(i=1,sum=0.0;i<11;i++)

{ scanf(“%f”,&f);

Sum+=f ;}

printf(“average=%f\n”,sum/10);}

2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。

#include

main()

{ FILE *fp;

char c;

fp= ;

do{

c=getchar();

fputs(c,fp);

}while(c!=EOF)

3、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。

main()

{ float x,amax,amin;

scanf(“%f”,&x);

amax=x;amin=x;

while(x>=0.0 )

{ if(x>amax)amax=x;

if(x<=amin )amin=x;

scanf(“%f”,&x);}

printf(“\namax=%f\namin=%f\n”,amax,amin);}

三、阅读程序题

(1) 3.141593,3.1416,3.142

(2)6,8

(3) 4

(4)22

(5)19

四、程序填空题

1、scanf(“%f”,&f);sum+=f;

2、fopen(“myfile”,w)fclose(fp);

3、x>=0.0 x<=amin

三、阅读程序题

1、int x=6,y=7;

printf(“%d,”,x++);printf(“%d\n”,++y);

程序的输出结果是______.

2、float f=3.1415927;

printf(“%f,%5.4f,%3.3f”,f,f,f);

则程序的输出结果是______.

3、a=3;

a+=(a<1)a:1;printf(“%d”,a);

结果是______.

4、main()

{ int a[5]={2,4,6,8,10},*P,* *k;

p=a;k=&p;

printf(“%d,”,*(p++));

printf(“%d\n”,* *k);

程序的输出结果是______.

5、main()

{int a,b;

for (a=1,b=1;a<=100;a++)

{ if(b>=20)break;

if(b%3==1)

{b+=3;continue;}

b-=5;} }

程序的输出结果a的值为______.

四、程序填空题

1、求主次对角线之和。

main()

{static int a[ ][3]={9,7,5,1,2,4,6,8};

int I,j,s1=0,s2=0;

for(I=0;I<3;I++)

for(j=0;j<3;j++)

{if()

s1=s1+a[I][j];

if()

s2=s2+a[I][j];

}

printf(“%d\n%d\n”,s1,s2);

}

2、从键盘上输入10个数,求其平均值。

main()

{int i;

float f,sum;

for(i=1,sum=0.0;i<11;i++)

{ scanf(“%f”,&f) ;

Sum+=f ;

}

printf(“average=%f\n”,sum/10);

}

3、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。

#include

main()

{

FILE *fp;

char c;

fp= ;

do

{

c=getchar();

fputs(c,fp);

}while(c!=EOF);

}

三、阅读程序题

(1)6,8

(2) 3.141593,3.1416,3.142

(3) 4

(4)2,4

(5)8

四、程序填空题

1、I==j I+j==2

2、scanf(“%f”,&f);sum+=f;

3、fopen(“myfile”,w)fclose(fp);

四、读出程序

1. 改正下列程序中不正确的语句。

main()

{ int a=8 ,b=1;

a=a+b;

b=a*b;

printf(“%d,%d”,a,b);}

2.写出下列程序的运行结果。

fun(int a,int b)

{ if(a>b)return (a);

Else return (b);}

main()

{ int x=3,y=8,z=6,r;

r=fun(fun(x,y),2*z);

printf(“%d\n”,r);}

3. 改正下列程序中不正确的语句。

main()

{ int n ;

float s=1.0;

for(n=10;n>1;n- -)

s=s+1.0/n;

printf(“%6.1f\n”,s);}

4. 写出下列程序的运行结果。

main()

{ int n;

For(n=3;n<=10;n++)

{ if(n%5= =0)break;

Printf(“%d”,n);} }

5.写出下列程序的运行结果。

#include “stdio.h”

main()

{ int a[]={1,2,3,-4,5};

int m,n,*p;

p=&a[0];p=&a[0];

m=*(p+2);

n=*(p+4);

printf(“%d %d %d ”,*p,m,n);}

四、读出程序

1 printf(“%d,%d”,&a,&b);

2 12

3 s=s+1.0/n

4. 3 4

5 1 3 5

四、读程序。

1. 改正下列程序中不正确的语句。

main()

{ int a;

scanf(“%d”,a);if (a = 1)printf(“One\n”);} 2.写出下列程序的运行结果。

fun(int a,int b)

{ if(a>b)return (a);

Else return (b);}

main()

{ int x=3,y=8,z=6,r;

r=fun(fun(x,y),2*z);printf(“%d\n”,r);}

3. 改正下列程序中不正确的语句。

main()

{ int n ;

float s=1.0;

for(n=10;n>1;n- -)

s=s+1/n;

printf(“%6.1f\n”,s);}

4. 写出下列程序的运行结果。

main()

{ int n;

For(n=3;n<=10;n++)

{ if(n%6= =0)break;Printf(“%d”,n);} }

5.写出下列程序的运行结果。

#include “stdio.h”

Main()

{ int a[]={1,2,3,-4,5};

int m,n,*p;p=&a[0];m=*(p+1);n=*(p+4);

printf(“%d %d %d ”,*p,m,n);}

四、读出程序

1 printf(“%d,”,&a);if (a==1)

2 12

3 s=s+1.0/n

4. 3 4 5

5 1 2 5

三、读出下列程序,写出程序的运行结果

1. main()

{ int a=8 ,b=1;

a=a+b;

b=a*b;

printf(“a=%d,b=%d”,a,b);}

该程序的运行结果是___________________________________.

2. main()

{ int i,num[5];

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

num[i]=i*10 - 2;

printf(“%d”,num[3]);}

该程序的运行结果是___________________________________.

3. main()

{ float c,f;

c=30.0;

f=(6*c)/5+32;

printf(“f=%f”,f);}

该程序的运行结果是___________________________________.

4. main()

{ int a=6095 ,b ;

b=a%1000 ;

printf(“%d”,b);}

该程序的运行结果是___________________________________.

5. # include “stdio.h”

main()

{ int a[]={8,2,9,4,1},*p;

p=a;

*(p+2)+=2;

printf(“%d,%d ”,*p,*(p+2));}

该程序的运行结果是___________________________________.

四、将下列程序中不正确的语句改正

1. main()

{ int k ;

k=35555 ;

printf (“%d ”,k);}

2. main ()

{ int a ,b ;

scanf (“input a ,b:”,a ,b );

printf (“a=%d,b=%d”,a,b);}

3. main()

{ int sum ,k ;

sum=0 ;

k= 1 ;

while (k < =100 )

sum = sum+k ;

k + + ;

printf (“ sum=%d\n”,sum);}

4. main()

{ int k ,a(8 );

for(k=0;k<10 ;k++)

scanf(“%d”,&a(k));

……}

5. main()

scanf(“%d”,a);

if (a = 1)

printf(“One\n”);}

三、读出下列程序,写出程序的运行结果

1.a=9,b=9

2. 28

3. f=68

4. 95

5. 8,11

四、将下列程序中不正确的语句改正

1.long int k ;printf (“%ld ”,k);}

2.scanf (“%d,%d”,a , b );

3.while (k < =100 )

{sum = sum+k ;

k + + ;}

4.int k,a[8] ;

scanf(“%d”,&a[k]);

5.if (a = = 1)

二、写出下列程序的运行结果

1. main ()

{ int x=10,y=10;

printf(“%d %d\n”,x——,——y);}

该程序的运行结果是_______________.

2.main()

{ int j ,k ,p,s;

s=0 ;

for (j=1;j<=3;j++)

{ p=1;

for(k=1;k<=j;k++)

p=p*k;

s=s+p;

}

printf(“s=%d\n”,s);}

该程序的运行结果是__________________.

3. # include “stdio.h”

main()

{ int a[]={1,2,3,4,5},*p;

p=a;

*(p+2)+=2;

printf(“%d,%d ”,*p,*(p+2));}

该程序的运行结果是___________________________________.

4.main()

{ int a[]={2,4,6,8,10};

int y=1,x,*p;

p=&a[1];

for(x=0;x<3;x++)

y + =*(p+x);

printf(“%d\n”,y);}

该程序的运行结果是________________.

5.main()

{ int a[5],k;

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

a[k]=10*k ;

printf(“%d”,a[k-1]);}

该程序的运行结果是_________________.

二、写出下列程序的运行结果

1.10 9

2.S=9

3. 1,5

4.19

5.40

四、程序填空题

1.下面是实现输出九九乘法表的程序,在画线的位置填上适当的语句,使该程序完整。

main()

{ int i ,j ,k;

for(i=1;_____________;i++)

{bsp;{

for(__________;j<=i ;j++)

printf(“%d*%d=%d”,_______________);

printf(________________);

}

}

2.设计一个自定义函数,实现如下功能:求两个数的平方和,并且返回该和。

自定义函数如下:

int max(x,y)

{

}

3.设有如下面的结构体,请用C语言的语句定义出正确的结构体形式:

学生信息:包括(姓名,性别,年龄,分数:根据合适情况选择各项类型)

struct student

{

}

4. 根据给出的程序段,请写出正确的结果

x=1 ;p=1 ,sum=0 ;

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

{ p=p*x;

sum=sum+p ;}

上面的程序段实现的功能是计算下面的式子_______________________________ ;

其运行结果为

_________________________________________________________.

五、阅读程序,写出下列程序段的结果

1. int *p,i;

i=100;

p=&i;

i=*p+10;执行完上面的语句段后,i的值是______

2. int A,B,C,m=1,n=0;

A=(——m=n++)?- -m:++n;

B=++m;

C=n——;

执行完上面的语句段后,A的值为B的值为C的值为

3. main()

{ int c1=10,c2=10;

printf(“c1=%d,c2=%d \n c1=%d”,++c1,c2++,c1——);

}

该程序的运行结果是_______________________________________________.

4.main()

{ int i;

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

{ if(i%4==0)

continue;

else

printf(“%d,”,i);

} }

该程序输出的结果是_______________________________________

5. main()

{ int x;

x=3;

do

{ printf(“%d”,x——);

}while(!x);}

该程序运行的结果是

___________________________________________________________

四、程序填空题

1.i<=9 j=1 i ,j ,i*j “\n”

2 2 2.int max(x,y)

int x,y;sp;int x,y;

{ int z;

z=x*x+y*y;

return(z);}

3. struct student

{ char xm [10];

char sex;

int age;

float score;}

4. 1!+2!+3!+4!+5!1+2+6+24+120=153

五、阅读程序,写出下列程序段的结果

1.110

2.–1 0 1

3.c1=10 ,c2=10 ,c1=10

4.3,5,6,7,9

5.3

四、程序填空题

1.下面是实现打印九九乘法表的程序,请在画线的位置填上适当的语句,使程序(段)完整。

main()

{ int i ,j ,k;

for(i=1;_____________;i++)

{ for(j=1;______________;j++)

printf(“%d*%d=%d”,_______________);

printf(________________);

}

}

2.自己设计一个自定义函数,实现求两个数的最大数的功能,自定义函数如下:

int max(x,y)

int x ,y ;

{

}

3.设有如下面的结构体,请用C语言的语句定义出正确的结构体形式:

学生信息:包括(姓名,性别,年龄,分数),并且定义变量stud和数组stud1[30]

struct student

{

}

4. 根据给出的程序段,请写出正确的结果

x=1 ;sum=1 ;

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

sum=sum*x;

上面的程序段实现的功能是:

______________________________________________________ ;

其运行结果为

______________________________________________________________________.

5.设有如下的语句。

int a=43,b,c;

b=23;

c=a++ * ——b;

(1)上面的语句段执行后a= b= c= ;

(2)简述a++和++a的相同点和不同点:

6.设有如下的程序:

main()

{ int i=3,*p1;

int a[3]={15,30,45},*p2;

p1=&i;p2=a;

p1=p2+2;

printf(“%d,%d\n”,*p1,*p2);

}

程序运行结果是:

四、程序填空题

1. i<=9 j<=9

printf(“%d*%d=%d”,i,j,i*j);

printf(“\n”);i ,j ,k;

2. int z;

if (x>=y)z=x;

else z=y;

return z;

3. char name[20];

char sex;

int age;

float score;

4. 实现功能:计算连续数之积,即sum=1*2*3*4*5 ;

运行结果:sum=120

5. 44 22 946

a++:先加1,后使用表达式的值;++a表示先加1,后使用表达式的值,它们最后的结果使a加1.

6.45,15

三、程序填空与算法题

1. 下面程序是计算10个整数中奇数的和及其偶数的和,请填空。

#include

main()

{ int a,b,c,i;

a=c=0;

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

{ scanf(“%d”,&b);canf(“%d”,&b);

}

printf(“偶数的和=%d\n”,a);

printf(“奇数的和=%d\n”,c);}

2.编写一个自定义函数,实现求两个实数的平方和

3. 以下程序运行后的输出结果是 .

main()

{ char s[ ]=“GFEDCBA”;

int p=6;

while(s[p]!=‘D’)

{ printf(“%c ”,p);

p=p-1;} }

4.定义一个反映学生信息的结构体,包括学生的姓名,性别,年龄,成绩等。

5.以下程序输出的结果是 .

int ff(int n)

{ static int f=l;

f=f*n;

return f;}

main()

{ int i;

for(i=1;i<=5;i++)printf(“%d\n”,ff(i));}

6. 设有以下程序:

main()

{ int n1,n2;

scanf(“%d”,&n2);

while(n2!=0)

{ n1=n2%10;

n2=n2/10;

printf(“%d ”,n1);} }

程序运行后,如果从键盘上输入1298;则输出结果为

7.下面程序的功能是:输出100以内(不包含100)能被3整除且个位数为6的所有整数,请填空。

#Include<stdio.h>

main()

{ int i,j;

for(i=1;____________;i++)

if (________________)

printf(“%d”,j);}

8.现有一个单链表Head,如下图所示,如果要在元素B和D之间插入一个字符型元素

C.

所需要的语句为:(如果用到指针,在图中标出指针的位置)

A

B

Head

D

Z

……

三、程序填空与阅读程序题(参考答案)

1. if (b%2==0)a=a+b else c=c+b

2. float sum(float x,float y)

{ return x*x+y*y;}

3. A B C

4. struct student{

char name[10];

char sex;

int age;

float score;}

5. 1 2 6 24 120

6.8 9 2 1

7.i<100 if(i%3==0 && i%10==6)

8.P->NEXT=Q->NEXT;P->NEXT=NEW;

三、读程序(30分)

1. main()

{ int a=10,b=4,c=3;

if (a

if (a

printf(“%d,%d,%d”,a,b,c);}

2. main()

{int y=9;

for (;y>0;y——)

if (y%3= = 0){printf (“%d”,——y);continue;}

3. main()

{ int x,y;

for (y=1,x=1;y<=50;y++)

{ if (x>=10)break;

if (x%2= =1){ x+=5;continue;}

x-=3;}

printf (“%d”,y);}

4. main()

{ static int a[][3]={9,7,5,3,1,2,4,6,8};

int i,j,s1=0,s2=0;i,j,s1=0,s2=0;

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

for (j=0;j<3;j++)

{ if (i= =j )s1=s1+a[i][j];

if (i+j= =2)s2=s2+a[i][j];

}

printf (“%d\n%d\n”,s1,s2);}

5. main()

{static char a[]={‘*’,‘*’,‘*’,‘*’,‘*’};

int i,j,k;

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

{printf (“\n”);

for (j=0;j

for (k=0;k<5;k++)printf (“%c”,a[k]);} }

6. int fac(int n)

{static int f=1;

f=f*n;return(f);}

main()

{int i;

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

printf (“%d!=%d\n”,i,fac(i));}

三、读程序(30分)

1.结果:10,4,3

2.结果:8 5 2

3.6

4.18 10

5.*****

6.5!=120

三、读程序(30分)

1. main()

{int a=2,b=3,c;

c=a;

if (a>b)c=1;

else if (a= =b)c=0;

else c=-1;

printf (“%d\n”,c);} 运行结果:

2.main()

{int a=2,b=7,c=5;

switch (a>0)

{ case 1:swithch (b<0)

{case 1:printf(“@”);break;

case 2:printf(“!”);break;

}

case 0:switch (c= =5)

{ case 0:printf(“*”);break;

case 1:printf(“#”),break;

default:printf(“#”);break;

}

default:printf(“&”);运行结果:

} printf (“\n”);

}

3.#include

main()

{ int i;

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

switch (i%5)

{ case 0:printf(“*”);break;

case 1:printf(“#”);break;

default:printf(“\n”);

case 2:printf (“&”);运行结果:

}

}

4.main()

{ int i,b,k=0;

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

{b=i%2;

while (b——>=0)k++;

} 运行结果:

printf (“%d,%d”,k,b);

}

5.#include

main()

{ char ch[7]={“12ab56”};

int i,s=0;

for (i=0;ch[i]>=‘0’&&ch[i]<=‘9’;i+=2)

s=s*10+ch[i]-‘0’;运行结果:printf (“%d\n”,s);

}

6. main()

{ int a=2,i;

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

printf (“%4d”,f(a));

}

f(int a)

{ int b=0;static int c=3;

b++;c++;

运行结果:

return(a+b+c);

}

三、读程序(30分)

1.-1

2.&

3.#&

4.8,-2

5.1

6.7 8 9

二、读程序(结果写在试卷的右边)

1. 写出下列程序段的输出结果:

main()

{int x=5;int y=10;

printf(“%d\n”,x++);

printf(“%d\n”,++y);}

2. 下面程序的输出结果是什么?

#include “stdio.h”

main()

{ int x=3;

switch(x)

{ case 1:

case 2:printf(“x<3\n”);

case 3:printf(“x=3\n”);

case 4:

case 5:printf(“x>3\n”);

default:printf(“x unknow\n”);} }

16.执行语句“x=(a=3,b=a——)”后,x,a,b的值依次为________

A. 3,3,2

B. 3,2,2

C.3,2,3

D.2,3,2

17.如果X=5,执行语句X*=X+=X*3后,则X的值为_________

A.100

B. 400

C. 450

D. 900

18.下列常量中哪个是不合法的________

A.2e32.6

B. 0.2e-5

C. “basic”

D. 0x4b00

19.下列标识符错误的是_______

A. x1y

B._123

C. 2ab

D. _ab

20. c语言中int型数-8在内存中的存储形式为_____

A.1111111111111000

B.11000

C.01000

D.1111111111110111

二、读程序(结果写在试卷的右边)

1. 写出下列程序段的输出结果:

main()

{int x=5;int y=10;

printf(“%d\n”,x++);

printf(“%d\n”,++y);}

2. 下面程序的输出结果是什么?

#include “stdio.h”

main()

{ int x=3;

switch(x)

{ case 1:

case 2:printf(“x<3\n”);

case 3:printf(“x=3\n”);

case 4:

case 5:printf(“x>3\n”);

default:printf(“x unknow\n”);} }

3.根据源程序,写出相应的数学表达式

#include “stdio.h”

main()

{ int x,y;

scanf(“%d”,&x);

if (x<0)y= -1;

else if (x= = 0)

y=0;

else y=1;

printf(“x=%d,y=%d\n”,x,y);}

4. 读出下列程序的输出结果:

main()

{ int a=1,b=1,c=1;

printf(“%d,%d,%d\n”,a,b,c)

a+=b+=++c;

printf(“%d,%d,%d\n”,a,b,c);

printf(“%d,%d,%d\n”,a++,——b,++c);

printf(“%d,%d,%d\n”,a,b,c);}

三、程序填空:(根据题意,将空缺的语句补上。)

1.下列程序的功能是计算圆的面积,将程序补充完整。

#define PI = 3.14159

main()

{ float r,s;

printf(“Enter a number r:”);

________

s=PI*r*r

_________;}

2.该程序完成的功能是求1+2+3+…+10的累加和,并进行累加和的输出打印。变量sum 是存放累加值的。

#include “stdio.h”

main()

{ ____

i=1,sum=0;

for(;i<=10;)

{ sum+=i;

______ }

printf(“%d\n”,sum);}

四、改错

求Fibonacci数列40个数。这个数列有如下特点:第1,2 两个数为1,1.从第3个数开始,该数是其前面两个数之和。即:

F1=1 (n=1)F2=1 (n=2)Fn=Fn-1+Fn-2 (n≥3)

程序如下,请改正:

main()

{ long int f1,f2

int i;

f1=f2=1;

for (i=1,i<=20 ,i- -);

{ printf(“%12ld %12ld”,f1,f2);

if (i%4=0)printf(“\n”);

f1=f1+f2

f2=f2+f1;} }

二、读程序

1.5

2.X=3

3.1,1,1 11 X>3 4,3,2 X unknow 4,2,3 5,2,3

三、程序填空:(根据题意,将空缺的语句补上。)

1.下列程序的功能是计算圆的面积,将程序补充完整。

#define PI = 3.14159

main()

{float r,s;

printf(“Enter a number r:”);

____scanf(“%f”,&r);________________________

s=PI*r*r

____printf(“s=%f ”,_s);}

2.int I ,sum

I++;

四、改错

main()

{ long int f1,f2;

int i;

f1=f2=1;

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

{ printf(“%12ld %12ld”,f1,f2);

if (i%4=0)printf(“\n”);

f1=f1+f2;

f2=f2+f1;} }

三、将下列程序补充完整(每空2.5分,共30分)

1.输入三角形的三条边a,b,c,求三角形的面积。

#include “math.h”

#include “stdio.h”

main()

{float a,b,c,d,t,s;

printf(“请输入三角形的三条边:”);

scanf(“%f,%f,%f”,&a,&b,&c);

if (1)

printf(“%f%f%f不能构成三角形!”,a,b,c);

else {t=(a+b+c)/2;

s= (2)

printf(“a=%7.2f,b=%7.2f,c=%7.2f,area=%7.2f\n”,a,b,c,s);}}

(1)

(2)

2.输入两个整数,n1,n2(要求n1

#include “stdio.h”

main()

{int n1,n2,j,n=0;

printf(“\n请输入两个数:”);

scanf ((3));

if(n1>n2){ (4)}

for(j=n1;j<=n2,j++)

if (5)n++;

printf(“a=%5d,b=%5d,n=%5d\n”n1,n2,n);}

(3)

(4)

(5)

3.输入两个整数,n1,n2(要求n1

#include “math.h”

#include “stdio.h”

int prime (int x)

{int k;

for (6)

if (x%k==0)return(0);

return(1)}

main()

{int a,b,j,n=0;

printf(“\n请输入两个数:”);

scanf(“%d,%d”,&a,&b);

if(a>b){ (7)}

for(j=a;j<=b,j++)

if((8))n++;

printf(“a=%4d,b=%4d,n=%4d\n”a,b,n);}

(6)

(7)

(8)

4.编写程序,输入n个整数(n由键盘输入),统计其中正数、负数和零的个数。

#include “stdio.h”

main()

{int x,n,k,k1=0,k2=0,k3=0;

printf(“input n=:”);

(9)

for(k=0;k

{scanf(“%d”,&x);

if (x<0)k1++;

(10);

else k3++;

printf(“k1=%4d,k2=%4d,k3=%4d\n”,k1,k2,k3)}}

(9)

(10)

5.设计一个程序完成以下功能:若从键盘输入英文字母,则原样输出;输入其他字符不理会,直到输入Q键结束。]

#include “stdio.h”

main()

{char ch;

do{ch=getchar();

if ((11))break;

else if((12))putchar(ch);

}while(1);}

(11)

(12)

四、按格式写出程序运行结果。每题4分,共16分。

1.格式化输出函数]

main()

{ int a=1,c=65,d=97;

printf(“a10=%d,a8=%o,a16=%x\n”,a,a,a);

printf(“c10=%d,c8=%o,c16=%x,cc=%c\n”c,c,c,c);

d++;

printf(“d10=%d,dc=%c\n”d,d);}

输出结果:

c语言程序改错题

程序改错------------------------------------- 1题目:在一个一维整型数组中找出其中最大的数及其下标。 程序中共有4条错误语句,请改正错误。 -----------------*/ #define N 10 /**********FOUND**********/ float fun(int *a,int *b,int n) { int *c,max=*a; for(c=a+1;cmax) { max=*c; /**********FOUND**********/ b=c-a;} return max; } main() { int a[N],i,max,p=0; printf("please enter 10 integers:\n"); for(i=0;ix[i+1]) { t=x[j];x[j]=x[j+1];x[j+1]=t;} } main() { int i,n,a[100]; printf("please input the length of the array:\n"); scanf("%d",&n); for(i=0;ij;j++) 或 for(j=0;jj;j++) 3 if(x[j]>x[j+1]) 或 if(x[j+1]

C语言程序改错及填空题

下列程序是建立一个包含学生有关数据的单向链表。但该程序有2个错误,错误出现在每个注释行附近,请调试改正。调试改正中,不得改变程序结构,也不得增删语句。 #define NULL 0 struct stud { long num; char name[10]; float score; struct stud *next; }; /* …………… comment …………… */ int n; struct stud create() 序中有两处错误代码,请改正.注意,不得改变程序结构。 #include <> main() { int a[8],*p=a; int i,j; int tempmin,tempcode; printf("\n input the numbers:\n"); for (i=0;i<8;i++) scanf("%d",p+i);

tempmin=*p; for (i=0;i<7;i++) { for (j=i;j<8;j++) if (j==i||*(p+j)

c语言程序改错

【程序改错】 1.功能:利用递归函数调用方式,将所输入的5个字符,以相反顺序 打印出来。 char next; next=getchar(); palin(n-1); 2.功能:求广义菲玻那契级数的第n项。广义菲玻那契级数的前n 项为: 1,1,1,3,5,9,17,31,…… 项值通过函数值返回 main ( )函数。 例如:若 n = 15,则应输出:The value is: 2209。 for (k=4; k<=n; k++) a=b; return d; 3.功能:根据整型形参m,计算如下公式的值: y=1/2+1/8+1/18+...+1/2m*m double y=0.0; 4.功能:编制统计营业员一天的营业额的程序,设程序采用一个循环 实现,每次循环输入一笔交易金额并累计营业额。由于营 业员一天完成的交易次数是不确定的,为此以最后附加输 入一笔0或负数交易额作为交易金额已全部输入结束的标志。 float sale,sigma; scanf("%f",&sale); sigma=sigma+sale; 5.功能:读取7个数(1-50)的整数值,每读取一个值,程序打印出该值个数的*。while(n<8) while(a<1||a>50); for(i=0;i

C语言程序改错2

1、以下程序的功能是求如下表达式: 1 1 1 S = 1 + ——+ ———+ ...... + ——————— 1+2 1+2+3 1+2+3+......+n 『答案』:1 scanf("%d",&n); 2 float fun(int n) 3 for(i=1;i<=n;i++) 4 s+=1.0/t 或s= s + 1.0 /t; 2、题目:函数fun的功能是:根据整型形参m的值,计算如下公式的值。 1 1 1 t = 1- ——- ——- ... - —— 2x2 3x3 mxm 例如,若m=5,则应输出:0.536389 『答案』:1 for(i=2;i<=m;i++)或for(i=2;i 2 float s=0,t=1,p=1; 3 while(fabs(t)>1e-4)或while(fabs(t)>0.0001) 4 printf("pi=%f\n", s * 4 ); 4、功能:计算正整数num的各位上的数字之积。例如,输入252,则输出应该是20。『答案』:1 long k=1; 或long int k=1; 2 num/=10; 或num=num/10; 3 scanf("%ld",&n); 4 printf("\n%ld\n",fun(n)); 5、功能:(与上题略有不同)计算正整数num的各位数字之积。例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。 『答案』:1 {long k=1; 2 num/=10; 或num=num/10; 3 } while(num) ; 或}while(num!=0); 或}while(num>0); 6、题目:判断m是否为素数,若是返回1,否则返回0。 『答案』:1 int fun( int m) 或fun( int m) 2 for(i=2;isqrt(i)) 4 return i; 或return (i);

C语言程序改错题

第12次上机程序改错第1题 【程序改错】 -------------------------------------------------------- 功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。 例如:输入圆的半径值:19.527 输出为:s = 598.950017。 ------------------------------------------------------*/ #include #include /**********FOUND**********/ double fun( r) double fun(double r) { double s; /**********FOUND**********/ s=1/2*3.14159* r * r; s=1.0/2*3.14159*r*r; /**********FOUND**********/ return r; return s; } main() { float x;

printf ( "Enter x: "); scanf ( "%f", &x ); printf (" s = %f\n ", fun ( x ) ); } 第2题【程序改错】 功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。 ------------------------------------------------------*/ #include #include #include void fun (char *s, char *t) { /**********FOUND**********/ int i; int sl,i; sl = strlen(s); for (i=0; i

程序改错完整版---C语言

(一)功能:用选择法对数组中的n个元素按从小到大的顺序进行排序。#include "stdio.h" #define N 20 void fun(int a[], int n) { int i, j, t, k; for (j = 0 ;j < n-1 ;j++) { /**********ERROR**********/ k = j for (i = j+1;i < n; i++) /**********ERROR**********/ if(a[i] >a[k]) /**********ERROR**********/ k=j; t = a[k] ; a[k] = a[j] ; a[j] = t; } } main() { int a[N]={9,6,8,3,-1},i, m = 5; printf("排序前的数据:") ; for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n"); fun(a,m); printf("排序后的数据:") ; for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n"); } 【参考答案】 k = j; 【参考答案】 if(a[i] < a[k]) if(a[k] > a[i])

【参考答案】 k = i; (二)功能:求广义菲玻那契级数的第n项。广义菲玻那契级数的前n 项为: 1,1,1,3,5,9,17,31,…… 项值通过函数值返回 main ( )函数。 例如:若 n = 15,则应输出:The value is: 2209。 #include "conio.h" #include "stdio.h" long fun ( int n ) { long a=1, b=1, c=1, d=1, k; /**********ERROR**********/ for (k=4; k

齐齐哈尔大学C语言题库 程序改错(部分)

1.【程序改错】 题目:在一个一维整型数组中找出其中最大的数及其下标。 程序中共有4条错误语句,请改正错误。 #define N 10 /**********FOUND**********/ float fun(int *a,int *b,int n) int fun(int *a,int *b,int n) { int *c,max=*a; for(c=a+1;cmax) { max=*c; /**********FOUND**********/ b=c-a;} *b=c-a;} return max; } main() { int a[N],i,max,p=0; printf("please enter 10 integers:\n"); for(i=0;i

C语言程序改错题

第1题【程序改错】 功能:先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。 例如:当s中的字符串为:“ABCDE”时,则t中的字符串应为:“EDCBAABCDE”。 ------------------------------------------------------*/ #include #include #include void fun (char *s, char *t) { /**********FOUND**********/ int i; sl = strlen(s); for (i=0; i

C语言改错题

题号:1 题目:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列 /************FOUND***********/ a[i]=a[i-1]; /************FOUND***********/ exit;} 正确答案:a[i+1]=a[i]; break;} 题号:2 题目:以下程序的功能是求如下表达式: /************FOUND***********/ print("%d",n) ; /************FOUND***********/ fun(int n) 正确答案:scanf(“%d”,&n); float fun(int n) 题号:3 题目:函数fun的功能是:根据整型形参m的值,计算如下公式的值。 /**********FOUND**********/ y-=1/(i*i); /**********FOUND**********/ return m; 正确答案:y-=1.0/(i*i); return c; 题号:4 题目:以下程序把一由小到大的有序数列放在a[1]到a[n]中,a[0]用做工作单元,程序把读入的x值插入到a数组中,插入后,数组中的数仍有序。 /************FOUND***********/ { a[i]=a[i+1]; /************FOUND***********/

for(i=0;i<=n;i++) 正确答案:{ a[i+1]=a[i]; for(i=1;i<=n;i++) 题号:5 题目:函数scopy的功能是:将一个字符串前面n个子字符送到一个字符型数组中去 ,然后再加上一个'\0'。不用系统提供的函数strcpy。请改正程序中的2个错误,使它能得出正确的结果。 /**************FOUND**************/ scanf("%d",n); /**************FOUND**************/ scopy(str1,str2); 正确答案:scanf("%d",&n); scopy(str1,str2,n); 题号:6 题目:函数fun的功能是:求n!。主函数的功能是计算: x!+y!+z!的值。请改正程 序中的错误,使它能得出正确的结果。 /**********FOUND**********/ scanf("%d,%d,%d",x,y,z); /**********FOUND**********/ printf("Sum=%d\ n",sum); 正确答案:scanf("%d,%d,%d",&x,&y,&z); printf("Sum=%ld\ n",sum); 题号:7 题目:编写函数fun求整数n以内(不包括n)3的倍数之和,在main函数中由键盘输 入n值,并输出运算结果。 /**********FOUND**********/ scanf("%d",n); /**********FOUND**********/ result=fun( ); 正确答案:scanf("%d",&n); result=fun(n); 题号:8 题目:函数fun的功能是:求1到20的阶乘的和。 /**********FOUND**********/ s+t=s; /**********FOUND**********/ printf("jiecheng=%d\n",s);

C语言程序改错题及答案

程序调试1、 #include #include void fun(char *s,char *t) { int i,sl; sl=strlen(s); for(i=0;i void main() { int n,i; scanf("%d",&n);

/****** 1 ******/ i=1;// i=2; while(n>1) if(n%i==0) { printf("%d\t",i); n/=i; } else /******** 2 *******/ n++;// i++; } 3、 #include #include void main() { int n,s=0; scanf("%d",&n); n=fabs(n); /******** 1 *******/ while(n>1) { // 1}n 2}n!=0 s=s+n%10; /******** 2 ******/ n=n%10;// n=n/10; } printf("%d\n",s); } 4、

C语言程序改错练习题

程序改错练习题 下面每个程序的划线处有语法或逻辑错误,请找出并改正,使程序符合题意。 1.求1?2?3?4? ?n main() { int sum; 正确:int sum=1; int n,i=1; scanf("%d",n); scanf(“%d”,&n); printf(“\n”); while(ia[j]) if(max

main() { float a,b; int c; float c; scanf("%f,%f",&a,&b); c=sum(a,b); printf("\nSum is %f",sum); printf("\nSum is %f",c); } 4. x , y两个数中,让x中存较大的数,y存较小的数 #include main( ){ int x , y=200 , z=0; x=180; if ( x

天津城建大学C语言程序改错

程序改错 功能:编制统计营业员一天的营业额的程序,设程序采用一个循环实现,每次循环输入一笔交易金额并累计营业额。由于营 业员一天完成的交易次数是不确定的,为此以最后附加输 入一笔0或负数交易额作为交易金额已全部输入结束的标志。 有以下统计营业员一天营业额的算法: 统计营业员一天营业额 { 营业额清0; 输入第一笔交易额; while(交易额>0.0) { 累计营业额; 输入下一笔交易额; } 输出营业额; } 记一笔交易额为变量sale,营业额为sigma。 /**********FOUND**********/ float sale,sigma; sigma=0.0; printf("Enter sale data.\n");

/**********FOUND**********/ scanf("%f",&sale); while(sale>0.0) { /**********FOUND**********/ sigma+=sale; 功能:输入两个双精度数,函数返回它们的平方和的平方根值。例如:输入:22.936 和14.121,输出为:y = 26.934415。/**********FOUND**********/ double fun (double *a, double*b) { double c; /**********FOUND**********/ c = sqrt(*a**a + *b**b); /**********FOUND**********/ return c; 【程序改错】 -------------------------------------------------------- 功能:分别统计字符串中大写字母和小写字母的个数。

C语言程序设计实验指导_上交大_课前练习-改错-完善程序-课后练习参考答案

实验一Visual C++集成环境实验内容 (一)程序改错 1. (1)无法运行 (2)将第二个C程序重新存放到另一个工程文件中 (3)同一个工程文件只能有一个main函数 2. (1)/*一个简单的程序*/ (2)void main() (3)} 3. (1)int a,b,c; (2)a=2; (3)c=a*b; (二)完善程序 1. (1)year (2)month (3)day 2. (1)c (2)a*a+b*b (3)c 3. (1)4 (2)4*a (3)s 课后练习 1.D

2.D 3.A 4.C 5.C 6.C 7.stdio.h 8.main函数 实验二数据类型、运算符和表达式课前练习 1. 20 8 70 0 2. Abs3 Class _else sum my_class 、 3block a+b for fun(4) a-b 3.B 4.D 5.A 6.C 7.D 8.B 实验内容 (一)程序改错 1. (1)int x1,x2,x3,x4; (2)scanf("%d,%d",&a,&b); (3)c=x4*1000+x2*100+x3*10+x1; 2. 程序1: ① 2 2 ②error C2065: 'a1' : undeclared identifier 变量a1没有定义 sum=a+b+c ③ 1 error C2146: syntax error : missing ';' before identifier 'printf' printf语句之前缺少分号

sum=a+b+c; ④0 error(s), 0 warning(s) ⑤a=1 b=3 c=2 sum=6 ⑥语句以分号结束;变量要先定义后使用。程序2: ① 2 2 ②error C2065: 'sum' : undeclared identifier 变量sum没有定义 int sum=a+b; 1 error C2086: 'c' : redefinition 变量c重复定义 c=a+b+sum; ③a=1 b=3 sum=8 ④在同一个函数体内,变量要先定义后使用,但不能重复定义 程序3: ① 1 error C2106: '=' : left operand must be l-value 赋值符号左边参数错误 c=a+b; ②c=4 ③赋值符号左边只能是变量,不能是常量或表达式 3. (1)t=a; (2)a=b;; (3)printf("a=%d\tb=%d\n",a,b); (二)完善程序 1. (1) int n (2)”%d”,&n (3)s 2. (1)float s (2)(float)a/b (3)%f 3. (1)#include (2)pow(x,y) (3)“%lf”,s

C语言程序改错基本题

北京石油化工学院12级复习题 程序改错 一、下面每个程序的划线处有语法或逻辑错误,请找出并改正,使其得到符合题意的执行结果。 1.求1?2?3?4? ?n main() { long int sum; int n,i=1; scanf("%d",n); printf(“\n”); while(ia[j]) { max=a[j]; m=j; } printf(“下标:%d\n最大值:%d”, j, max) } *3. 求3+4 int a=3,b=4; main() { int a,c; c=a+b; printf(“c=%d”); } 4.用一个函数求两个数之和。

sum(x,y) { float z; z=x+y; return; } main() { float a,b; int c; scanf("%f,%f",&a,&b); c=sum(a,b); printf("\nSum is %f",sum); } 5.用指针作函数参数,对输入的两个整数按大小顺序输出。 swap(int *p1,*p2) { int *p; *p=*p1;*p1=*p2;*p2=*p; } main() { int a,b; int *q1,*q2; scanf("%d,%d",&a,&b); &q1=a,&q2=b; if(a

c语言程序改错讲解

一、程序改错共44题 第1题(10.0分)题号:380 难度:中第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:输入两个双精度数,函数返回它们的平方和的平方根值。 例如:输入:22.936 和 14.121,输出为:y = 26.934415。 ------------------------------------------------------*/ #include #include #include /**********FOUND**********/ double fun (double *a, *b) // double fun (double *a, double *b) { double c; /**********FOUND**********/ c = sqr(a*a + b*b); // c = sqrt(a*a + b*b); /**********FOUND**********/ return *c; // return c; } main ( ) { double a, b, y; printf ( "Enter a, b : "); scanf ("%lf%lf", &a, &b ); y = fun (&a, &b); printf ("y = %f \n", y ); } 第2题(10.0分)题号:438 难度:中第2章 /*------------------------------------------------ 【程序改错】 -------------------------------------------------- 功能:编写函数fun,求两个整数的最小公倍数,然后用主 函数main()调用这个函数并输出结果,两个整数由 键盘输入。 ------------------------------------------------*/

2013计算机等级考试二级C语言程序改错题

2013计算机等级考试二级C语言程序改错题 1、下列给定程序中,函数fun的功能是:将s所指字符串的郑旭和反序进行连接,形成的新串放在t所指的数组中 2、函数fun的功能是:用下面的公式求π的近似值,知道最后一项的绝对值小于指定的数为止。 3、函数fun的功能是:传入一个整数m,计算如下公式的值。T=1/2-1/m。 4、函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。、从参数1-55,查找能被3整除且有一位上的数值是5的数,把这些数放在b所指的属猪5 中,这些数的个数作为函数值返回。规定函数中a1放个位数,a2放十位数。 6、求出s所指字符串中最后一次出现的t所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;若未能找到,则函数值为null。 7、按以下递归公式求函数的值fun(n)={10 (n=1)。 8、函数fun和funx的功能是:用二分法求方程2x-4x+3x-6=0的一个根,并要求绝对误差不超过0.001。 9、首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的升序字符接在c所指的数组的尾部。 10、计算整数n的阶乘。 11、计算函数F(x,y,z)=(x+y)的值。其中x和y的值不相等,z和y的值不相等。 12、利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。 13、求三个数的最小公倍数。

14、将s所指字符串中最后一次出现的鱼t1所指字符串相同的子串替换成t2所指字符串,所形成的新串放在w所指的数组中。要求t1和t2所指字符串的长度相同。 15、逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符一次存放到c所指的数组中,形成一个新的字符串。 16、根据以下公示求π值,并作为函数值返回。 17、将s所指字符串中出现的与t1所指字符串相同的子串全部替换为t2所指字符串,所形成的新串放在w所指的数组中。要求t1和t2所指字符串的长度相同。 18、从s所指字符串中,找出t所指字符串的个数作为函数值返回。 19、对n名学生的学习成绩,从高到地的顺序找出钱m(<10)名学生来,并将这些学生的数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。 20、根据整形参数m,计算如下公式的值y=1/(100*100)+。 21、从低位开始依次取出长整型变量s中偶数位上的数,构成一个新数放在t 中。高位仍在高位,低位仍在低位。 22、将p所指字符串中的所有字符复制到b中,要求每复制3个字符之后插入一个空格。 23、把从主函数中输入的3个数,最大的数放在a中,中间的数放在b中,最小的数放在c中。 24、用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列1,1,2,3,5,。 25、将一个由八进制数字字符组成的字符串转换成十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。 26、按顺序给s所指数组的元素赋予2开始的偶数,然后再按顺序对每5个元素求平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,则多余部分忽略不计。

C语言程序改错及填空题

C语言程序改错及填空题

gc23.c下列程序是建立一个包含学生有关数据的单向链表。但该程序有2个错误,错误出现在 每个注释行附近,请调试改正。调试改正中,不得改变程序结构,也不得增删语句。 #define NULL 0 struct stud { long num; char name[10]; float score; struct stud *next; }; /* …………… comment …………… */ int n; struct stud create() ////////struct stud *create(void) { struct stud *head,*p1,*p2; n=0; p1=p2=(struct stud *)malloc(sizeof(struct stud)); scanf("%ld,%s,%f",&p1->num,p1->name,& p1->score); /* ……………comment ……………

*/ head=NULL; while(p1!=0) //////////while(p1->num!=0) { n=n+1; if(n==1) head=p1; else p2->next=p1; p1=(struct stud *)malloc(size(struct stud)); scanf("%ld,%s,%f",&p1->num,p1->name,& p1->score); } p2->next=NULL; return(head); } gc57.c的功能是互换给定数组中的最大数和最小数。如将下面8个数:5,3,1,4,2,8,9,6 变成: 5,3,9,4,2,8,1,6 程序中,最大数与最小数的互换操作通过函数调用来实现,让指针max和min分别指向最大数和最小数。程序有二处错误,请改正。注意:不得增行和删行,也不得修改程序的结构。 main() {

C语言程序改错题及答案

C语言程序改错题及答 案 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

程序调试 1、 #include <> #include <> void fun(char *s,char *t) { int i,sl; sl=strlen(s); for(i=0;i #include <> void main() { char a[80]; int n[5]={0},i; gets(a); for(i=0; a[i]!=’\0’; i++) /***** 1 *****/ switch(tolower(a+i)) { // (tolower(a[i])) case 'a': n[0]++; break; case 'e': n[1]++; break; case 'i': n[2]++; break; case 'o': n[3]++; break; /***** 2 *****/ case'U': n[4]++; break; // ‘u’ } for(i=0;i<5;i++) printf("%d\n",n[i]); } 11、在考生目录下,有程序,该程序中"/***** N *****/"的下 一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负) 该程序功能:输入n(0 void main() { int i,j,n; /***** 1 *****/ scanf("%d",n); // &n for(i=1;i<=n;i++) {

相关文档