c语言程序基础练习题500道(附答案) 下载本文

C) d=9+e,e++,d+9 D) d=9+e++=d+7

18以下使i的运算结果为4的表达式是( D )。 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;

(j= =1)?(i=1):(i=3); D) int i=1,j=1; i+=j+=2;

19设Int n=3;则++n的结果是( C )。 A)2 B)3 C)4 D)5

20设Int n=2;则有表达式++n+1= =4,n的结果是( 3 )。 A)1 B)2 C)3 D)4

1下列能正确输入字符数组a 的语句是( ABD ) A)scanf(\ B)scanf(\C)scanf(\ D)循环执行scanf(\

2在输入时,字符变量的值不用空格间隔,其输入函数可为( BD )。 A)scanf(\ B)scanf(\ C)scanf(\ D)循环执行getchar() 1C的字符常量是用双引号括起来的一个字符。 错 2字符串常量是一对单引号括起来的字符序列。 错 3设C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为-32768-+32767。对

4在C语言中的实型变量分为两种类型,它们是float和double。 错

5 若有以下定义:int a=2,b=3;float x=3.5,y=2.5;则下面表达式的值为3.500000。 (float)(a+b)/2+(int)x%(int)y 对 6输入语句的格式为:scanf(\是正确的。 对

7getchar()函数得到的字符可以不赋给任何变量,而作为表达式的一部分。 对 8scanf函数中无精度控制。 错

9a+==a=2; 是一个合法的赋值语句,赋值后a的值为:2。 错 10在TC中,printf()函数输出表列的求值顺序是从右到左。 11在printf函数中,\表示按十进制正整数输出。 错 12printf是C语言的输出语句。 错

13在printf函数中,格式字符c的意义是:输出单个字符。 对 14在printf函数中,不能使用转义字符。 错 15关系运算符的优先级别高于逻辑运算符 对 16C语言中没有逻辑型数据 错

1表达式8/4*(int)2.5/(int(1.25*(3.7+2.3))值的数据类型为( int )。 2若x、i、j和k都是int型变量,则计算下面表达式后,x的值为【 32 】。 x=(i=4,j=16,k=32)

3若a是int型变量,则下面表达式的值为【 26 】。 (a=4*5,a*2),a+6

33

4若k为 int 整型变量且赋值7,x为double型变量且赋值8.4,赋值表达式x = k的运算结果是【 7.0 】。

5若a=1, b=4, c=3, 则表达式 !(a

7在变量说明中给同类变量赋初值时,各变量之间用【 , 】隔开。 8以下程序的运行结果是【 6 5 】。 main()

{int i=5; printf(\ }

9设x,y,z均为int型变量,请写出描述\或y中有一个小于z\的表达式【 x=z||y=z 】

10若a=1,b=4,c=3,则表达式 !(a

11有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为【 1 】 12若a=1,b=2,则表达式a

C语言(分支和循环结构)一 1.以下程序输出结果是( b ) main() { int m=5;

if(m++>5) printf(\else printf(\A)7 B)6 C)5 D)4

2以下程序的输出结果为( b ) # 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 3有如下程序 main()

{ int a=2,b=-1,c=2; if(a

if(b<0) c=0; else c++;

printf(\}

该程序的输出结果是( c)

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

34

4若i为int型,且有程序如下,则输出结果是( c ) i=111; if(i%3==0)

printf(\ printf(\

A) #### B) **** C) ####**** D) 无输出结果

5若运行时x=12,则运行结果为( a ) {int x, y;

scanf(\ y=x>12 ? x+10:x-12; printf(\

A) 0 B) 22 C) 12 D) 10

6以下程序的输出结果是( c ) main()

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

if ((++i>0)||(++j>0)) k++; printf(\}

A) 0, 0, 6 B) 1, 0, 7 C) 1, 1, 7 D) 0, 1, 7

7若变量都已正确说明,则以下程序段输出为( c ) 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

8当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是( b if(a

if(b

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

35

) 9以下不正确的语句为( b ) A)if(x>y);

B)if(x==y)&&(x!=0)x+=y;

C)if(x!=y)scanf(\,&x);else scanf(\,&y); D)if(x

10有以下程序: #include\ main( ) {char i;

for (; (i=getchar ())!='\\n';) {switch (i-'a')

{case 0: putchar (i);

case 1: putchar (i+1);break; case 2: putchar (i+2); case 3: break;

default: putchar (i);break; } }

printf (\ }

输入下列数据后,程序的输出结果是( b ) abcde

A) abcde B) abcee C) abbde D) abccdd

11若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是( a ) A) switch(a+b); B) switch(a*a+b*b) { case 1:y=a+b; break; {case 3:

case 0:y=a-b; break; case 1:y=a+b;break; } case 3:y=b-a,break; }

C) switch a D) switch(a-b) { case 1 :y=a-b; break {

case 2: x=a*d; break case c1:case 4:x=a+b;break; default:x=a+b; case c2:case 11:y=a-b;break; } default:y=a*b;break; }

12写出下面程序输出结果( d ) {int x=1, y=0, a=0, b=0; switch(x) {case 1:

switch(y)

36