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.已知以下矩阵: