C程序设计习题解答

  • 格式:doc
  • 大小:99.50 KB
  • 文档页数:26

可编辑范本

一、选择题(蓝色加粗为正确选项)

在C语言中,合法的字符常量是( )。

A. '字' B. "A" C. "ABC" D. '\x41'

在C语言中,用户能使用的合法标识符是( )。

A. 姓名 B. _xyz C. 5i D. for

在C语言中,不合法的实型常量是( )。

A. -0.123 B. -.123 C. -1.23e-1 D. -123e-3.0

C语言的下列运算符中,优先级最高的运算符是( )。

A. ++ B. += C. || D. !=

设有说明语句 int k,i=5,j=10;,则表达式 k=(++i)*(j--)的值是( )。

A. 50 B. 60 C. 45 D. 55

设有说明语句 int i,j;,则表达式i>=j||i

A. 视i、j的具体值而定 B. FALSE

C. TRUE D. 1

已知'A'的ASCII码的十进制值为65,'0'的ASCII码的十进制值为48,则以下程序运行结果是( )。

main()

{ char ch1,ch2;

ch1='A'+'5'-'3';

ch2='A'+'6'-'3';

printf("%d,%c\n",ch1,ch2);

}

A. 67,D B. C,D C. C,68 D. 67,68

设有语句 int x=2,y=3;,则表达式x=(y==3)的值是( )。

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

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

main()

{ unsigned a = 0x3ef, b;

b = a << 2;

printf("%x,%x\n", a, b);

}

A. 3ef,fb B. 3ef,fbc C. fbc,3ef D. fbc,fbc

下列语句中,符合C语言语法的赋值语句是( )。

A. a=7+b+c=a+7; B. a=7+b++=a+7;

C. a=7+b,b++,a+7; D. a=7=b,c=a+7; 可编辑范本

为表示x≥y≥z,须用的C语言表达式为( )。

A. (x>=y)&&(y>=z) B. (x>=y)AND(y>=x)

C. x>=y>=z D. (x>=y)&(y>=z)

设int a,b;,用语句scanf('%d%d",&b); 输入a、b值时,不能作为输入数据分隔符的是( )。

A. 空格 B. , C. 回车 D. [Tab]

以下程序运行时,若从键盘输入5,则输出结果是( )。

main()

{ int a;

scanf("%d",&a);

if(a++>5) printf("%d\n", a);

else printf("%d\n",a--);

}

A. 7 B. 4 C. 5 D. 6

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

main()

{ int a, b, c;

a = b = c = 1;

if ( a++ || ++b ) c++;

printf("%d, %d, %d\n", a, b, c);

}

A. 2, 1, 2 B. 1, 2, 1

C. 2, 2, 2 D. 2, 2, 1

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

main()

{ int i=3,j=2,k;

k=i+j;

{

int k=8;

if(i==3) printf("%2d",k);

else printf("%2d",j);

}

printf("%2d%2d\n",i,k);

}

A. 8 3 5 B. 8 3 8

C. 3 8 3 D. 5 8 3

有以下程序:

main()

{ int c; 可编辑范本

while((c=getchar())!= '\n')

{ switch(c-'2')

{ case 0 :

case 1 : putchar(c+4);

case 2 : putchar(c+4); break;

case 3 : putchar(c+3);

default: putchar(c+2); break;

}

}

printf("\n");

}

当输入:247,程序的输出结果是( )。

A. 689 B. 6689 C. 66778 D. 66887

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

main()

{ int a=1,b=0;

switch(a)

{

case 1:

switch(b)

{

case 0: printf("0000\n");

case 1: printf("1111\n");break;

}

case 2:printf("2222\n");break;

}

}

A. 0000

1111

B. 0000

1111

2222

C. 0000

2222

D. 1111

2222

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

void main()

{ int a=1;

switch(a)

{

case 1: printf("aaaa\n"); 可编辑范本

case 2: printf("bbbb\n"); break;

default: printf("cccc\n");

}

}

A. aaaa

B. aaaa

bbbb

cccc

C. aaaa

bbbb

D. aaaa

cccc

以下程序运行后,a的值是( )。

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;

}

}

A. 101 B. 100 C. 8 D. 7

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

main()

{ int i,j;

i=10;

j=20;

for(;j>=0;j-=20)

{

if(i=j) printf("Good! ");

else printf("Not good!");

}

}

A. Good!Good! B. Not good!

C. Good! D. Good! Not good!

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

main()

{ int a,b,c,n=13;

printf(" A B C\n"); 可编辑范本

for(a=1;a<=n;a++)

for(b=1;b<=n;b++)

for(c=b;c<=n;c++)

if(a*a==b*b+c*c)

printf("%3d%3d%3d\n",a,b,c);

}

A. A B C

5 3 4

10 6 8

13 5 12

B. A B C

3 5 4

6 10 8

5 13 12

C. A B C

4 5 3

8 10 6

12 13 5

D. A B C

5 4 3

10 8 6

13 12 5

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

int x=3;

do{

printf("%3d, ", x-=2 );

}while(!(--x));

A. 1 B. 30

C. 死循环 D. 1, -2

设E为表达式,以下与do … while(E);不等价的语句是( )。

A. do … while(!E==0); B. do … while(E>0||E<0);

C. do … while(E==0); D. do … while(E!=0);

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

main()

{ int i,s;

i=0;

s=1;

do{

s/=s+1;

i++;

}while(i<=10); 可编辑范本

printf("%2d%2d\n",i,s);

}

A. 10 2 B. 11 2 C. 10 0 D. 11 0

下列程序段中,非死循环的是( )。

A. int i=100;

while(1)

{ i=i%100+1;

if(i>=100) break;

}

B. int k=0;

do{

++k;

}while(k>=0);

C. int s=10;

while(++s%2+s%2) s++;

D. for(;;)

循环语句循环体中执行continue语句,其作用是( )。

A. 立即终止程序运行

B. 继续执行continue语句之后的循环体各语句

C. 结束本次循环

D. 结束本次循环,跳出循环

下列do...while循环的循环次数是( )。

int i=5;

do{

printf("%d\n",i--);

i--;

}while(i!=0)

A. 0 B. 2 C. 5 D. 死循环

设已定义char s[]="\"Name\\Address\023\n";,则字符串中字符个数是( )。

A. 19 B. 15 C. 18 D. 14

已定义char x[8]; int i;,为了给该数组赋值,下列语句正确的是( )。

A. x[8]="Turbo C"; B. x="Turbo C";

C. x[]="Turbo C"; D. for(i=0;i<7;i++) x[i]=getchar();

设int a[][4]={0,0};,则下列描述错误的是( )。