C语言第二章习题及详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二、第二章

1、设整型变量a的值为2,下列表达式值为1的是__。(A)

A)a%3B)a/3=0C)--a D)a++

2.设变量a、b、c已定义并赋值,则下列表达式中符合C语言语法规则的是__。(B)

A)a=5++操作数只能是变量B)a=b=c++C)a=%2D)b=a+1=2左边只能是单个变量,即变量1=变量2=。。。

3.下列式中,最终运算结果的数据类型不是单精度的表达式是__。(A)

A)(int)(3+3.0)B)1e-3fen:n必须为整数C)(float)(3)D)(int)3.0+3.0

4.字符串”ab\x41\\34cd\102y”的长度是_A_。\xhh表示ASCII码:例\x41,41是16进制的。字符串含有’\0’。’\102’也表示ASCII码,但102是8进制的,长度为10,储存空间占11个字节。

A)10B)12C)14D)18

5、变量是在程序运行过程中可改变的它的三要素是类型、名称、数值

6.以下选项中合法的常量是?D

A)’Internet’B)E_3变量C)02x D)0xfeL

7.以下选项中合法的赋值表达式是?C

A)d=8+a+f=d+6同2D B)d=(a+8)++同2A

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

8.main()

{int x=5,y=3;

float f;

f=x/y;表示为整形

printf(“f=%f\n”,f);

}

则程序的输出结果是?f=1.000000

9.设整型变量x,y,z均为2,表达式(x++)+(y++)+(z++)的值是_A先使用值再加

加_。

A)6B)7C)8D)9

10.设int a=3,b=5;float x=7.5,y=3.5;则表达式(float)a+b/2+(int)x%(int)y;

的值是6.0__。

*11.执行语句:int a;a=‘1’+1.5;后,正确的叙述是_D_。

A)a的值是字符‘3’B)a的值是浮点型

C)不允许字符型和浮点型相加

D)a的值是字符’1’的ASCII码值加上1

12.设int类型的数据长度为2个字节,则unsigned int类型数据的取

值范围是_B_。

A)均为2个字节TC与VC不一样B)0~65535

C)-32768~32767D)-256至255

13.执行下列语句后,运行结果为C__。先i++再i++最后+

main()

{int i=3,j;

j=++i+i++;

printf(“%d\n”,j);

}

A)6B)7C)8D)9

14.执行下列语句后,运行结果为6;y=1;z=6.000000______。

main()

{

int x=4,y;

float k=4,z;

clrscr();

printf("%d\n",--x*--x*--x);

x=4;

y=--x*--x*--x;

printf("y=%d\n",y);

z=--k*--k*--k;

printf("z=%f\n",z);}

x为浮点型:从左向右计算。--i优先于*

x为整型:在输出函数中,从左向右计算;在输出函数外,先连续减,然后乘积。

15.若a为int类型,且其值为5,则执行表达式a+=a-=a*a后,a的值为_C_。自右至左a=a-a^2=-20a=a+a=-40

A)-5B)-40C)-15D)不确定

16.如果x,y,i和j都是int型变量,则表达式x=(i=1,j=6,y=8)的值为_8_。

17、main()不懂看课件

{int x=0,z,y=z=-1;i--优先于-

x=x---z-y;

printf("x=%d\n",x);

}输出结果是:1

main()

{int x=0,z,y=z=-1;

x=--x-z-y;

printf("x=%d\n",x);

}输出结果是:1

main()

{int x=0,z,y=z=-1;

x=-y-z+--x;

printf("x=%d\n",x);

}输出结果是:1

main()

{int x=0,z,y=z=-1;

x+=--x-z-y;自右向左

printf("x=%d\n",x);

}输出结果是:0

main()

*{int x=0,z,y=z=-1;

x+=z---y;自右向左

printf("x=%d\n",x);

}输出结果是:x=0x=0+(-1--1)=0

main()

{int x=0,z,y=z=-1;/*x*=-y-z---x;*/

x=-y-z---x;/*x+=-y-z---x;*/

printf("x=%d\n",x);

}输出结果是:x=2

18.

main

{int x=3,y=0;

y=++x*--x;/*x=++x*x--;*/自右向左即:--x=2++x=3y=3*3=9 printf(“y=%d,x=%d\n”,y,x);

}输出结果是:y=9x=3

19.若a=3,b=3,c=5;则

⑴c+b++*a*++b的值是53

⑵a++*a+b+c*a*++b的值是73自右至左

⑶a*a+++b*++a的值是28

⑷printf(“%d,%d\n”,a,a++)

的输出结果是43

⑸printf(“%d,%d\n”,a,++a)

的输出结果是44

⑹printf(“%d,%d\n”,++a,a)

的输出结果是43

*⑺printf(“%d,%d\n”,a++,a)

的输出结果是33右结合性

19、main()

{int x=3;

x+=--x+x++;

printf(“x=%i\n”,x);

}x=7

main()

{int a=9;

a+=a-=a+a;

printf(“%d\n”,a);

}此程序执行后的结果是:?-18

相关文档
最新文档