C语言基础练习题(1-3) 下载本文

第三部分 循环结构 ·31·

printf(\

}

A.k=3 B.k=4 C.k=2 D.k=0 28.C语言的if语句嵌套时,if与else的配对关系是( )。

A. 每个else总是与它上面的最近的if配对

B. 每个else总是与最外的if配对 C. 每个else与if的配对是任意的 D. 每个else总是与它上面的if配对 29.下列程序的输出为( )。

#include main()

{int i=0,j=0,a=6;

if((++i>0)||(++j>0))a++;

printf(\

}

A.i=0,j=0,a=6 B.i=1,j=1,a=7 C.i=1,j=0,a=7 D.i=0,j=1,a=7 30.下列程序段的输出结果为( )。

main()

{int x=3; do

{ printf(\

while(!(--x));}

A.1 B.3 0 C.1 -2 D.死循环

3.2 填空题:

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

main()

{int a,b,c,max;

printf(\scanf(\max=a;

if(max

printf(\

}

2. 若输入字母C,程序输出结果为【1】;若输入字符*,程序将【2】。

#include

main() {char c1,c2;

c1=getchar();

while(c1<97||c1>122)c1=getchar(); c2=c1-32;

printf(\

第三部分 循环结构 ·32·

}

3. 以下程序运行的结果为________。

main()

{ int a,b,c,x,y,z; a=10;b=2; c=!(a%b);x=!(a/b); y=(a=0);

z=(a=0);

printf(\

}

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

【 3 】. main() { int x,y;

scanf(\if(x<1)

{ y=x;

printf(\}

else if(x<10) { y=2*x-1;

printf(\} else

{ y=3*x-11;

printf(\}

}

5.以下程序运行的结果________。

main()

{int i=1,sum=0; loop:if(i<=10) {sum+=i; i++; goto loop; }

printf(\}

6.以下程序运行的结果________。

main() { int x=2,y,z; x*=3+1;

printf(\x+=y=z=5;

第三部分 循环结构 ·33·

printf(\x=y==z;

printf(\

}

7.以下程序运行的结果________。

#include #include main()

{int i,k,m,n=0;

for(m=1;m<=10;m+=2) { if(n==0)printf(\k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>k)

{printf(\n++; } }

}

8.如果输入‘1’,‘2’,‘3’,‘4’,程序运行输出的是________。

#include

main() {char c; int i,k; k=0;

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

{while(1)

{ c=getchar();if(c>='0'&&c<='9')break;} k=k*10+c-'0'; }

printf(\

}

9.运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为________。

#include main() {int v1=0,v2=0;

char ch;

while ((ch=getchar())!='#') switch(ch) {case 'a': case 'h':

default: v1++; case '0':v2++;

第三部分 循环结构 ·34·

}

printf(\

}

10.程序运行结果是_________。

#include main() {int i;

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

{ if(i>4){printf(\printf(\}

}

11. 以下程序运行的结果是_________。

#include

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; }

printf(\

}

12.以下程序运行的结果是________。

main() {int i=1;

while(i<10)

if(++i%3!=1)continue; else printf(\

}

13.程序运行的结果是________。

main() {int n=0; while(n++<=1) printf(\printf(\

}

14.此程序运行时,输入qwert?程序的运行结果是_________。

#include main() {char c;

第三部分 循环结构 ·35·

while((c=getchar())!='?')putchar(++c); }

15.对以下程序:

当输入65 14时,其运行结果是【 1 】。 当输入14 63时,其运行结果是【 2 】。

当输入25 125时,其运行结果时【 3 】。 #include main() {int m,n;

scanf(\while(m!=n)

{ while(m>n)m-=n; while(n>m)n-=m; }

printf(\} 16.在执行以下程序时,为了使输出结果为t=4,则给a和b输入的值应满足的条件是_______。

main()

{int s,t,a,b;

scanf(〞%d,%d〞,&a,&b); s=1; t=1; if(a>0) s=s+1; if(a>b) t=s+t; else if (a==b) t=5;

else t=2*s; printf(〞t=%d\\n〞,t);

}

17.求出1000以内的“完全数”。(提示:如果一个数恰好等于它的因子之和(因子包括1,

不包括数本身),则称该数为“完全数”。如:6的因子是1,2,3而6=1+2+3,则6是

个“完数”)。 main()

{int i,a,m;

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

{for(m=0,a=1;a<=i/2;a++) if(!(i%a)) 【1 】; if【2】)printf(\

}

}

18.鸡问题:100元钱买100只鸡,公鸡一只5元钱,母鸡一只3元钱,小鸡一元钱三只,

求100元钱能买公鸡、母鸡、小鸡各多少只? #include main()

{int cocks,hens,chicks; cocks=0;