C语言程序设计 - 习题大全(含答案) - C语言-1 下载本文

scanf(\,&x,&y,&o); switch(o)

{case '+':r=x+y;break; case '-':r=x-y;break; case '*':r=x*y;break; case '/':r=x/y;break; }

printf(\}

当运行下面程序时,从键盘键入right?<回车>,则下面程序的运行结果是【 】。 有如下程序 main()

{ float x=2.0,y; if(x<0.0) y=0.0; else if(x<5.0) y=1.0/x; else y=1.0; printf(\}

该程序的输出结果是( )

A) 0.000000 B) 0.250000 C) 0.500000 D) 1.000000 #include main() { char c;

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

下面程序段的运行结果是【 】。 x=2;

do { printf(\

当运行以下程序时,从键盘键入1 2 3 4 5 -1 <回车>,则下面程序的运行结果是【 】。

#include main() { int k=0,n;

do { scanf(\ printf(\ }

下面程序段的运行结果是【 】。 for( a=1,i=-1;-1<=i<1;i++) { a++;

printf(\}

printf(\

以下程序输出结果为【 】。 main() {

int x=-5; do

{ printf(\ while (!(x++)); }

设x和y均为int型变量,则执行下的循环后,y值为【 】。 for(y=1,x=1;y<=50;y++) { if(x>=10)break; if (x%2==1) { x+=5; continue;} x-=3; }

C语言(分支和循环结构)三

若 w = 1, x = 2, y=3, z=4, 则条件表达式 w>x? w : y

C)2 D)1

若i为int型,且有程序如下,则输出结果是( ) i=322;

if(i%2==0) printf(\else printf(\

A) #### B) **** C) ####**** D) 有语法错误, 无输出结果 有程序如下,若由键盘输入70,则输出结果是( ) {int n;

scanf(\ if(n<=90) printf(\ else if(n<=80) printf(\ else if(n>=60) printf(\ else printf(\}

A) A B) B C) C D) D 选择运行结果为4的表达式( ) A) int i=0, j=0; (i=3,(j++)+i); B) int i=1, j=0; j=i=((i=3)*2); C) int i=0, j=1; i=(j==1)?(i=1):(i=3); D) int i=1,j=1; i+=j=2;

以下程序段输出为( ) int a=1,b=2,c=3; if(a>b)a=b, b=c; c=a;

printf(\A)a=1 b=2 c=1 B)a=1 b=2 c=3 C)a=1 b=3 c=1 D)a=2 b=3 c=2

请问读以下程序: main()

{int a=5,b=0,c=0; if(a=b+c)printf(\ else printf(\}

以上程序( )

A)有语法错不能通过编译 B)可以通过编译但不能连接 C)输出&&& D)### 以下程序的输出结果是( ) main()

{ int x=2,y=-1,z=2; if(x

A)0 B)1 C)2 D)3

以下程序的运行结果是( ) main()

{int x,y,z; x=0;y=1;z=3; x=++y<=x||x+y!=z; printf(\,%d\,y); }

A)0,1 B)1,2 C)0,2 D)1,1 有如下程序 main()

{ int x=1,a=0,b=0; switch(x) { case 0: b++; case 1: a++; case 2: a++;b++; }

printf(\}

该程序的输出结果是( )

A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 写出下面程序输出结果( ) {int x=1, y=0, a=0, b=0; switch(x) {case 1: switch(y)

{case 0: a++; break; case 1: b++; break;} case 2: a++; b++; break;} printf(\}

A) a=2, b=1 B) a=1, b=1 C) a=1, b=0 D) a=2, b=2 在下列选项中,没有构成死循环的程序段是( ). A. int i=100 while (1) {i=i0+1; if(i>100)break; } B. for(;;); C. int k=1000; do{--k} while (k)

D. int s=36

While(s>=0);++s;

语句while (!e);中的条件!e等价于( )。 A) e==0;

B) e!=1

C) e!=0

D) ~e

在C语言中( )。

A) 不能使用do_while语句构成的循环

B) do_while语句构成的循环必须用break语句才能退出

C) do_while语句构成的循环,当while语句中的表达式为非0时结束循环 D) do_while语句构成的循环,当while语句中的表达式为0时结束循环 有如下程序 #include main() {

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

当输入\时,程序的执行结果是( )。 A) china B) dijob C) dijob? D) china?

定义如下变量: int n=25;

则下列循环的输出结果是( )。 While(n>22) { n--;

printf(\} A) 22

B) 24

C) 23

D) 1

21 23 22 2 20 22 21 0 下列程序段的运行结果是( ) x=y=0; while(x<10) x++;y++;

printf(\

A. 0,0 B. 10,1 C. 10,10 D. 1,10 下面程序段的运行结果是( )。 int n=0; while(n++<=2); printf(\A) 2

B) 3

C) 4

D) 有语法错

以下描述中正确的是( )。

A) 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。

B) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号

C) 在do-while循环体中,一定要有能使while后面表达式的值变为“假”的操作

D) do-while循环中,根据情况可以省略while 以下程序段的输出结果是( ) main() { int x,i;

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

{ x=i;

if (++x%2==0) if (++x%3==0) if (++x%7=0) printf(\ } }

A. 39 81 B. 42 84 C. 26 68 D. 28 70 以下for循环的执行次数是( )。 for(x=0,y=0;(y=123)&&(x<4);x++); A) 是无限循环

B) 循环次数不定 C) 执行4次 D) 执行3次

下面程序段的运行结果是( )。 for(x=3;x<6;x++)

printf((x%2)?(\A) **3

B) ##3

C) ##3

D) **3##4

##4 **4 **4##5 **5 **5 ##5

下面有关for循环的正确描述是( )

A. for循环只能用于循环次数已经确定的情况。 B. for循环是先执行循环体语句,后判断表达式。 C. 在for循环中,不能用break语句跳出循环体。 D. for循环的循环体语句中,可以包含多条语句。 执行语句for(i=1;i++<4; );后变量i的值是( )。 A) 3 B) 4 C) 5 D) 不定 下面程序段( )。 x=3; do { y=x--;

if (!y) {printf(\printf(\} while (1<=x<=2);

A) 将输出## B) 将输出##* C) 是死循环 D) 含有不合法的控制表达式

以下描述正确的是( )。

A) goto语句只能用于退出多层循环 B) switch语句中不能出现continue语句 C) 只能用continue语句来终止本次循环 D) 在循环中break语句不能独立出现 与下面呈现等价的是( )。 for(n=100;n<=200;n++) { if (n%3==0) continue; printf(\}

A) for(n=100;(n%3)&&n<200;n++) printf(\B) for(n=100;(n%3)||n<200;n++) printf(\C) for(n=100;n<=200;n++) if (n%3!=0) printf(\D) for(n=100;(n%3)&&n<200;n++) {if (n%3) printf(\ else continue; break; }

下列程序段的运行结果是( ) a=2;b=1;c=1;

while (a>b>c) { t=a;a=b;b=t;c--}

printf(\

A)1,2,0 B)2,1,0 C)1,2,1 D. 2,1,1 case后如果有多语句不需要用花括号括住。 case语句后一定要加break语句 continue语句的功能就是结束本层循环。

C语言的while、do-while和for几个循环语句中,for循环语句最灵活、功能最强。

用do-while语句构成循环时,只有在while后的表达式为非0时结束循环。 for(表达式1;表达式2;表达式3)中,表达式1和表达式3可以同时都为逗号表达式。

for后的一对圆括号中,可以出现各种形式的与循环控制无关的表达式。 while循环和do-while循环的while()后一定不能加上一个分号。

若i为整型变量,则以下循环 i=0; while(i=0)i++;一次也不执行。 执行语句 for(i=1;++i<10; )后,i的值是10. 执行语句:for(i=1;i++<4;++i);后;变量i的值是3. 以下程序段的输出结果是987。

int n=10; while (n>7) { n--;printf(\以下程序的运行结果是【 】 main() {int a,b;

int i=5,j=7,k=0; a=k&&j; b=k||j;

printf(\,b); }

阅读下列程序 main() {int t,h,m;

scanf(\,&t); h=(t/100); if(h==0)h=12; printf(\,h); m=t0;

if(m<10)printf(\; printf(\,m); if(t<1200 ||t==2400) printf(\ else printf(\}

若运行时输入:1605<回车>时,程序的运行结果是【 】 以下程序的运行结果是【 】 main()

{int a=2,b=3,c; c=a; if(a>b)c=1; else if(a==b)c=0; printf(\,c); }

以下程序段的运行结果是【 】

int x=1,y=0; switch(x) {case 1: switch (y)

{ case 0:printf(\ case 1:printf(\ case 2:printf(\ }

下面程序的运行结果是【 】。 #include main()

{ int a,s,n,count; a=2;s=0;n=1;count=1;

while(count<=7) { n=n*a; s=s+n; ++count; } printf(\}

下面程序段的运行结果是【 】。 i=1; a=0; s=1;

do { a=a+s*i; s=-s; i++; } while(i<=10); printf(\

下面程序段是找出整数的所有因子,请填空。 scanf(\i=1;

for( ; 【 】; )

{ if (x%i==0) printf(\i++; }

以下程序输出结果为【 】。 #include\ main() { int i;

for(i=0;i<10;i++); printf(\ }

以下程序段中,不是无限循环的是【 】。

A. i=100 B. for(;;) while (1) { i=i0; i++; if (i>100) break; }

C. k=10; D. s=100

do while (s) s-=3; { k++; k++;} while (k>0); 有以下程序 main() { int i, j; for(j=10;j<11;j++)

{ for(i=9;i==j-1;i++)printf(\ }

}

输出结果是【 】。

C语言(数组)一 设有程序: main()

{ int i,a[11];

printf(\给数组赋值:\\n\; for (i=0;i<=10;i++) scanf(\,( ));

... ...

printf(\输出数组:\\n\; for(i=0;i<=10;i++) printf(\;

}

则在程序中的两个园括号中分别应填入: A) &a[i]和&a[i] B) a[i]和&a[i] C) &a[i]和a[i]

D) a[i]和a[i]

设已定义:int a[15]; 则数组a占用的内存单元数是( ). A) 15 B) 16 C) 30 D) 32 阅读程序: main()

{ int a[2]={0},i,j,k=2; for(i=0;i

for(j=0;j

printf(\}

以上程序的输出结果是( ). A) 1 B) 3 C) 2 D) 不确定的值 阅读程序: f(int b[],int n) { int i,r=1;

for(i=0;i<=n;i++) r=r*b[i]; return r; } main()

{ int x,a[]={2,3,4,5,6,7,8,9}; x=f(a,3); printf(\}

以上程序的输出结果是( ). A) 720

B) 6 C)24 D) 120

以下定义语句中,错误的是( ). A) int a[ ] = {6,7,8}; B) int n=5, a[n]; C) char a[ ]= \

D) char a[5 ]={'0','1','2','3','4'}; 以下描述中正确的是( ).

A) 数组名后面的常量表达式用一对圆括弧括起来