C语言全部章节习题集(本)

4 最简单的C程序设计—顺序程序设计

一、单项选择题

1、printf(\的输出结果是( )。

A. f=3.48% B. f=3.5% C. f=3.48% % D. f=347.8% 2、printf(\;的输出结果是( )。 A. a,97 B. a 97 C. 97,a D. 97 a 3、有以下程序段

char c1,c2,c3,c4,c5,c6;

scanf(\%c%c%c%c\,&c1,&c2,&c3,&c4);

c5=getchar( ); c6=getchar( );putchar(c1);putchar(c2);printf(\%c%c\n\,c5,c6);

程序运行后,若从键盘输入(从第1列开始):123<回车>45678<回车>。则输出结果是:( ) A.1267 B.1256 C.1278 D.1245

4、若一个 int 类型的数据占 2 字节,则程序段:int x= 1;printf(\的输出结果是( )。

A. 65535, 1 B. 1,65535 C. 32767, 32768 D. 32768,32767

5、在TC 中getchar、putchar、printf、scanf 四个函数,均包含在头文件( )中。 A. math.h B. stdio.h C. stbio.h D. stdlib.h 6、复合语句是用( )括起来的语句组。

A. ( ) B. [ ] C. { } D. < >

7、下列格式符中,哪一个可以用于以八进制形式输出整数( )。 A. %d B. ? C. %o D. %ld

8、下列格式符中,哪一个可以用于以十六进制形式输出整数( )。 A. d B. %8x C. ?6 D. %d

9、a 是int类型变量,c是字符变量,下列输入语句中哪一个是错误的( )。 A. scanf(\

C. scanf(\

10、要使double x; long a;的数据能正确的输出,输出语句应是( )。 A. printf(\ B. printf(\C. scanf(\ D. printf(\

二、程序改错题

1、以下程序的功能是,从键盘输入一个字符并鸣笛输出。 # include \ mian( )

- 6 -

{ char c getchar(c);

putchar('007') ; /*鸣笛*/ c=putchar( ); 2、以下程序的功能是,输入长方形的两边长(边长可以取整数和实数),输出它的面积和周长。 main

{ int a,b,s,l;

scanf(\ s=a*b; l=a+b;

printf(\ }

三、写出程序运行结果

1、 main( )

{ int a,b;

scanf(\ printf(\ }

运行时输入:12345678 ,输出结果是 。 2、 main( )

{ int a=3,b=5,x,y;

x=a+1,b+6; y=(a+1,b+6); printf(\ }

输出结果是 __。

四、编程题

1、输入 3 个整数,计算它们的和与平均值,平均值的结果保留 2 位小数。

- 7 -

2、输入两个实数a,b,然后交换它们的值,最后输出(提示:要交换两个数得借助一个中间变量temp。首先让temp存放a的值,然后把b存入a,再把temp存入b就完成了)。

5 选择结构程序

一、单项选择题

1、假定所有变量均已正确定义,下列程序段运行后x 的值是( )。

a=b=c=0, x=35; if(!a) x--; else if(b); if(c) x=3; else x=4; A. 34 B. 4 C. 35 D. 3 2、有以下程序段,其输出结果是:( )

inta,b,c; a=10;b=50;c=30; if(a>b) a=b,b=c; c=a; printf(\b=%d c=%d\\n\

A.a=10 b=50 c=10 B.a=10 b=50 c=30 C.a=10 b=30 c=10 D.a=50 b=30 c=50 3、有以下程序段,其输出结果是:( )

int x=1,y=2,z=3; if(x>y) if(y

printf(\

A.331 B.41 C. 2 D.1

4、程序段int x=5,y=8,max; max=(x>y)?x:y; printf(\的输出结果是( )。 A. 5 B. 3 C. 8 D. 13

5、程序段 int x=3,a=1;switch(x) {case 4: a++;case 3: a++;case 2: a++;case 1: a++;} printf (\的输出结果是( )。

A. 1 B. 2 C. 3 D. 4

6、下列语句应将小写字母转换为大写字母,其中正确的是( )。

A.if(ch>='a'&ch<='z') ch=ch-32; B.if(ch>='a'&&ch<='z')ch=ch-32; C.ch=(ch>='a'&&ch<='z')?ch-32:’’; D.ch=(ch>'a'&&ch<'z')?ch-32:ch; 7、有以下程序段,其输出结果是:( ) 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; case 3:a++;b++;

- 8 -

}

printf(\

A.a=1,b=0 B.a=2,b=2 C. a=2,b=1 D. a=1,b=1

二、填空题

1、当a,b,c的值分别为3,4,5时,以下各语句执行后a,b,c的值为多少? (1)if(a>c) {a=b;b=c;c=a;} else {a=c;c=b;b=a;} 执行后a,b,c的值为___,___,___

(2)if(a

(3)if(a!=c) ; else a=c;c=b;b=a; 执行后a,b,c的值为___,___,___

2、若整数x分别等于95、87、100、43、66、79,则以下程序段运行后屏幕显示是什么? switch(x/10) { case 6:

case 7: printf(\ case 8: printf(\ case 9:

case 10: printf(\ default: printf(\ }

x等于 95时,程序段运行后屏幕上显示 x等于 87时,程序段运行后屏幕上显示 x等于100时,程序段运行后屏幕上显示 x等于 43时,程序段运行后屏幕上显示 x等于 66时,程序段运行后屏幕上显示

x等于 79时,程序段运行后屏幕上显示

三、阅读程序,写出运行结果

1、 void main ( )

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

printf(\}

2、void main ( )

{ int x=100, a=10, b=20, ok1=5, ok2=0 ;

- 9 -

if(a

3、 int k,a=1,b=2; k=(a++==b) ? 2:3; printf(\

4、void main() { int s=1,k=0; switch (s)

{ case 1: k+=1; case 2: k+=2; default: k+=3;

}

printf(“%d”,k); }

5.void main() { int s=1,k=0; switch (s)

{case1: k+=1;break; case 2: k+=2;break; default: k+=3; }

printf(“%d”,k) }

四、选做题

1、输入 3 个整数,按从大到小的顺序输出。

- 10 -

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4