文档视界 最新最全的文档下载
当前位置:文档视界 › C程序设计习题解答

C程序设计习题解答

C程序设计习题解答
C程序设计习题解答

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

在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

页脚内容1

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;

页脚内容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;

页脚内容3

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()

页脚内容4

{ 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')

页脚内容5

{ 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)

{

页脚内容6

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

页脚内容7

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

页脚内容8

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()

页脚内容9

{ 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++)

页脚内容10

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

页脚内容11

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

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

页脚内容12

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;

页脚内容13

}

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{

页脚内容14

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};,则下列描述错误的是()。

A. 数组a的每个元素的值为0

B. 二维数组a的第一维大小为1

C. 数组a有4个元素

D. 只有元素a[0][0]和a[0][1]的值为0,其余元素的值不确定

页脚内容15

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

main()

{ int i=4,j;

j=i;

pic(i+2*j-2,'*');

putchar('\n');

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

{ pic(3-j, ' ');

pic(i+2*j, '*');

putchar('\n');

}

}

pic(int len,char C.

{ int k;

for(k=1;k<=len;k++) putchar(C.;

}

A. *

页脚内容16

***

*****

*******

B. **********

**********

**********

**********

C. ****

******

********

**********

D. **********

********

******

****

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

页脚内容17

main()

{ char a[][5]={ "ABCD","1234","abcd","5678","EFGH"};

int i;

for(i=0;i<3;i++) printf("%s",a[i]);

}

A. A1a

B. ABCD1234abcd

C. ABC

D. ABCD1234abcd5678EFGH

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

main()

{ int array[4][4];

int i,j;

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

for(j=0;j<4;j++) array[i][j]=i+j;

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

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

if(i==j||i+j==3) array[0][j]=0;

页脚内容18

for(j=0;j<4;j++) printf("%2d",array[0][j]);

printf("\n");

}

A. 2 0 0 5

B. 1 0 0 4

C. 0 1 2 0

D. 0 4 5 0

设有下列语句,则()是对a数组元素的不正确引用,其中0≤i<10。

int a[1={0,1,2,3,4,5,6,7,8,9}, *p=a;

A. a[p-a]

B. *(&a[i])

C. p[i]

D. *(*(a+i))

若有以下程序:

main

{ char ch[]="I am student! ", *p;

p=ch;

printf("%x\n",p);

printf("%x\n",p+9);

}

页脚内容19

其中第一个printf()运行结果是ffd6,则第二个printf()运行结果是()。

A. ffdf

B. ffe8

C. ffd6

D. ffcf

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

main()

{ int i;

char aa[][3]={'a','b','c','d','e','f'};

char (*p)[3]=aa;

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

if(i==0) aa[i][i]+=**(p++);

printf("%c\n",**p);

}

A. a

B. b

C. c

D. d

设有下列语句:

char str1[]="string",str2[8],*str3,*str4="string";

则()是对库函数strcpy的不正确调用。此函数用来复制字符串。A. strcpy(str3,"HELLO3"); B. strcpy(str2,"HELLO2");

页脚内容20

相关文档