C语言上机练习题 下载本文

C语言上机练习题

IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

1.阅读以下程序,说出其功能和运算结果。

#include<> intmain() { intn;

intfactorial(intn); scanf(\

printf(\return0; }

intfactorial(intn) {

inti,fact=1;

for(i=1;i<=n;i++) fact=fact*i; returnfact; }

若输入5↙

2.改正下列程序中的错误,在屏幕上显示“WelcometoYou!”。

#include<> intmian() {

printf(\WelcometoYou!\\n\return0; }

3.若输入4,程序运行结果为【1】,若输入-4,运行结果为【2】,若输入10,运行结果为【3】。

#include<>

main() { intx,y; scanf(\if(x<1)

{y=x;

printf(\} elseif(x<10)

{y=2*x-1;

printf(\}

else

{y=3*x-11;

printf(\} }

4.当输入19,2,21时下列程序运行的结果是( )。

#include<>

main() {inta,b,c,max;

printf(\scanf(\max=a;

if(max

}

5.运行以下程序时,从键盘键入China#代表回车),则下面程序的运行结

果是 。

#include<> voidmain() { intv1=0,v2=0;charch; for(;(ch=getchar())!=‘#’;) switch(ch) { case‘a’: case‘h’: default:v1++; case‘o’:v2++; } printf(“%d,%d\\n”,v1,v2); }

6.下面程序的运行结果是 。 #include<> voidmain() {inti,j,k=19; while(i=k-1) {k-=3;

if(k%5==0){i++;continue;} elseif(k<5)break; i++;

}

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

7.下列程序的输出为 。 #include<> voidmain()

{inti,j,k=0,m=0; for(i=0;i<2;i++)

{for(j=0;j<3;j++)k++;k-=j;} m=i+j;

printf(\}

8.下面程序的运行结果是 。 #include<> voidmain()

{

intn[3],i,j,k;

for(i=0;i<3;i++)n[i]=0; k=2;

for(i=0;i

printf(“%d\\n”,n[1]); }

9.阅读程序,写出程序运行结果。 #include<> #defineMAX100 voidmain()

{intf[MAX],i,j,k=2,m=5; for(i=0;i<=m;i++)

f[i]=1; f[k-1]=2;

for(i=k;i<=m;i++)

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

f[i]+=f[j];

printf(\}

10.下面程序可求出矩阵a的两条对角线上的元素之和。请填空。

#include<> voidmain() { inta[3][3]={1,3,6,7,9,11,14,15,17},sum1=0,sum2=0,i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) if(i==j)sum1=sum1+a[i][j]; for(i=0;i<3;i++)

}

for(【1】;【2】;j--)

if((i+j)==2)sum2=sum2+a[i][j]; printf(“sum1=%d,sum2=%d\\n”,sum1,sum2);

11.已知以下矩阵: