c语言第二章习题及详解

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

二、第二章

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

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

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

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

1二变量2=。。。

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

(A)

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

D)(i nt)3.0+3.0

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

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

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

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

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

A) 'In ter net ' B)E_3 变量C)02x D)0xfeL

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. mai n()

{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) 6 B) 7 C) 8 D) 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; 后,正确的叙述是

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~32767 D)-256 至 255

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

{ int i=3,j;

j=++i+i++;

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

则表达式

D_。 类型数据

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

14. 执行下列语句后,运行结果为

6;y=1;z=6.000000

mai n()

{

int x=4,y;

float k=4,z;

clrscr();

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

x=4;

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

prin tf("y=%d\n",y);

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

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

x为浮点型:从左向右计算。--i优先于* x为整型:在输出函数中,从左printf("x=%d\n",x);

向右计算;在输出函数外,先连续减, 然后乘积。

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

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

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;

} 输出结果是: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=0 x=0+(-1--1 main())=0

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

{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=3 y=3*3=9 printf( “ y=%d,x=%d\n” ,y,x);

} 输出结果是:y=9 x=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

的输出结果是 4 3

⑷printf( “ %d,%d\r f ,a,a++)

相关文档
最新文档