admin 管理员组

文章数量: 887021


2023年12月16日发(作者:unix系统特点有哪些)

第三章 运算符与表达式练习题

一、单项选择题

1.下列数据中属于“字符串常量”的是( )。

A .”a” B. {ABC} C. ’abc0’ D. ’a’

2.下列数据中属于“字符串常量”的是( )。

A .ABC B. “ABC” C. ’abc’ D. ’a’

3. 在 PC 机中, ’n’在内存占用的字节数是( )。

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

4. 在 PC 机中, ”axff” 在内存占用的字节数是( )。

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

5.字符串””ABCD””在内存占用的字节数是( )。

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

6. 在 C 语言中,合法的长整型常数是( )。

A. 0L B. 49627 C. 0.054838743 D. 2.1869e10

7.在 C 语言中,合法的短整型常数是( )。

A. OL B. 0821 C. 40000 D. 0x2a

8.下列数据中不属于“字符常量”的是( )。

A. ‘a’ B. ‘160’ C. ‘070’ D. 070

9 .char 型常量在内存中存放的是( )。

A. ASCII 代码值 B. BCD 代码值 C. 内码值 D. 十进制代码值

10. int a=4,b=3,c=-2,d=2; 逻辑表达式 a>0&&b&&c<0&&d>0 的值是( )。

A. 1 B. 0 C. -1 D. 出错

11.在以下一组运算符中,优先级最高的运算符是( )。

A. <= B. = C. % D. &&

12.设整型变量 i 的值为3,则计算表达式 i---i 后表达式的值为( )。

A. 0 B. 1 C. 2 D. 表达式出错

13.设整型变量 i,j=3; 则计算表达式 i=j+++j 后 i,j 的值为( )。

A. 4,4 B. 6,6 C. 4,6 D. 6,4

14.设整型变量 a,b,c 均为2,表达式 a+++b++c++的结果是( )。

A. 6 B. 9 C. 8 D. 表达式出错

15.设整型变量 i,j 值均为 3,执行了“j=i++,j++,++i”后, i,j 的值是( )。

A. 3,3 B. 5,4 C. 4,5 D. 6,6

(double)的结果值是( )。

A .8 B. 4 C. 2 D. 出错

17. 表达式“1?(0?3:2):(10?1:0)” 的值是( )。

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

a=0; if(a=1) a+=10; 结果的值是( )。

A. 0 B. 11 C. 10 D. 出错

19.下列表达式中符合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

20.下列表达式中,不正确的表达式是( )。

A. a=1,b=1 B. y=int(x) C. a=b=5 D. i++

1

n; float f=13.8; 执行“n=((int)f)%3”后, n 的值是( )。

A. 1 B. 4 C. 4.333333 D. 4.6

22.用十进制数表示表达式“12|012”的运算结果是( )。

A. 1 B. 0 C. 14 D. 12

23.设有整型变量 a=35,表达式“(x&15)&&(x|15)” 的值是( )。

A. 0 B. 1 C. 15 D. 35

24.设 a,b 和 c 都是 int 型变量,且 a=3,b=4,c=5,则下面的表达式中值为0的是( )。

A. ’a’&&’b’ B. a<=b C. a||b+c&&b-c D. !((a

25.设 a 是 char 型变量,其值字符为’1’,则把其值变成整数 1 的表达式是( )。

A. (int)a B. int(a) C. a=a-48 D. a/(int)a

26.设 a 是 int 型变量,其值为 3,则把其值变成字符 ’3’ 的表达式是( )。

A. (char)a B. a=3 C. a=a-48 D. a=a+48

27.以下选项中,不正确的 C 语言常量是 (TC 中)。

A. 32L B. 510000 C. -1.00 D. 0568

28.以下选项中, 是不正确的 C 语言字符型常量。

A. 'a' B. 'x41' C. '101' D. "a"

29. 字符串的结束标志是 。

A. 0 B. '0' C. '0' D. "0"

30. 逻辑运算符中,运算优先级按从高到低挨次为 。

A. &&,!,|| B. || ,&&,! C. &&,||,! D. !,&&,||

31.表达式!x||a==b 等效于 。

A. !((x||a)==b) B. !(x||y)==b C. !(x||(a==b)) D. (!x)||(a==b)

32. int b=0,x=1;执行语句 if(x++) b=x+1; 后, x,b 的值挨次为 。

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

33.设 ch 是 char 型变量,其值为 'A',则下面表达式的值是

ch=(ch>='A'&& ch<='Z')? (ch+32):ch

A. A B. a C. Z D. Z

34.字符串"ABC"在内存占用的字节数是

A. 3 B. 4 C. 6 D. 8

35.要为字符型变量 a 赋初值,下列语句中哪一个是正确的

A. char a=3; B. char a=”3”; C. char a=%; D. char a=*;

36.下列不正确的转义字符是

A. B. ' C. 074 D. 0

37.下面四个选项中均是合法整型常量的选项是( )

A.160 -0xffff 011 B.-0xcdf 01a 0xe

C.-01 986,012 0668 D.-0x48a 2e5 0x

38.下面四个选项中均是不合法整型常量的选项是( )

A.-0f1 -0xffff 0011 B.-0xcdf 017 12,456

C.-018 999 5e2 D.-0x48eg -068 03f

39.下面四个选项中,均是不合法的浮点数的选项是( )

A.160 0.12 e3 B.123 2e4.2 e5

C.-18 123e4 0.0

D.-e3 234 1e3

40.下面四个选项中,均是合法的浮点数的选项是( )

A.+1e+1 5e-9.4 03e2 B.-60. 12e-4 -8e5

2

C.123e 1.2e-4 -8e5 D.-e3 8e-4 5.e-0

41.下面四个选项中,均是合法转义字符的选项是( )

A.'" ‘' ‘n' B.‘' ‘017' ‘"'

C.'018' ‘f' ‘xab' D.'0' ‘101' ‘x1f'

42.下面四个选项中,均是不合法的转义字符的选项是( )

A.'"' ‘' ‘xf' B.'1011' ‘' ‘a'

C.'011' ‘f' ‘}' D.'abc' ‘101' ‘x1f

43.下面正确的字符常量是( )

A.‘c" B.'" C.'w' D."

44.下面四个选项中,均是正确的数值常量或者字符常量的选项的是( )

A.0.0 0f 8.9e ‘&' B."a" 3.9E-2.5 1e1 ‘"'

C.'3' 011 0xFF00 0a D.+001 0xabcd 2e2 50

45.下面不正确的字符串常量是( )

A.'abc' B."12'12" C."0" D." "

46.已知各变量的类型说明如下:int k,a,b; unsigned long w=5; double x=1.42;则以下不符合 C

语言语法的表达式是( )

A.x%(-3) B.w+=-2 C.k=(a=2,b=3,a+b) D.a+=a-=(b=4)*(a=3)

47.已知各变量的类型说明如下:int i=8,k,a,b; unsigned long w=5;double x=1.42,y=5.2;则以下

符合 C 语言合法的表达式是( )

A.a+=a-=(b=4)*(a=3) B.a=a*3=2 C.x%(-3) D.y=float(i)

48.以下不正确的叙述是( )

A.在 C 程序中,逗号运算符的优先级最低

B.在 C 程序中,APH 和aph 是两个不同的变量

C.若 a 和 b 类型相同,在计算了赋值表达式 a=b 后b 中的值将放入 a 中,而 b 中

的值不变

D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数

49.以下正确的叙述是( )

A.在 C 程序中,每行中只能写一条语句

B.若 a 是实型变量,C 程序中允许赋值 a=10,因此实型变量中允许存放整型数

C.在 C 语程序中,无论是整数还是实数,都能被准确无误地表示

D.在 C 程序中,%是只能用于整数运算的运算符

50..以下符合 C 语言语法的赋值表达式是( )

A.d=9+e+f=d+9 B.d=9+e,f=d+9 C.d=9+e,e++,d+9 D.d=9+e++=d+7

51.表达式 18/4*sqrt(4.0)/8 值的数据类型为( )

B char D.不确定

52.若有以下定义,则能使值为 3 的表达式为 3 的表达式是( ) int k=7,x=12;

A.x%=(k%=5) B.x%=(k-k%5) C.x%=k-k%5 D.(x%=k)-(k%=5)

53.设以下变量均为 int 类型,则值不等于 7 的表达式是( )

A.(x=y=6,x+y,x+1) B.(x=y=6,x+y,y+1)

C.(x=6,x+1,y=6,x+y) D.(y=6,y+1,x=y,x+1)

54.C 语言并非非常严格的缩放语言,在以下关于 C 语言的不严格的叙述中,错误的说法

是( )。

A)任何不同数据类型都不可以通用

3

B)有些不同类型的变量可以在一个表达式中运算

C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型

D)同一个运算符号在不同的场合可以有不同的含义

55.在 C 语言中, int、char 和 short 三种类型数据所占的内存( )。

A)均为 2 个字节 B)由用户自己定义

C)由所用机器的字长决定 D)是任意的

56.下列常数中不能作为 C 语言的数据类型是( )。

A)0xa5 B)2.5e-2 C)3e2 D)0582

57.设 int 类型的数据长度为 2 字节,则unsigned int 类型数据的取值范围是( )。

A)0 至 255 B)0 至 65535 C)-256 至 255 D)-32768 至 32767

58.在 C 语言中,数字 029 是一个( )。

A)八进制数 B)十六进制数 C)十进制 D)非法数

59.下列可以正确表示字符型常数的是( )。

A)”a” B)'t’ C)”n” D)297

60.以下错误的转义字符是( )。

A)'’ B)''’ C)'81’ D)'0’

61.C 语言中整数-8 在内存中的存储形式是( )。

A)1111 1111 1111 1000 B)1000 0000 0000 0000

C)0000 0000 0000 1000 D)1111 1111 1111 0111

62.已知 int i; float f; 正确的语句是( )。

A)(int f)%i B)int(f)%i C)int(f%i) D)(int)f%i

63.已知: char a; int b;float c; double d; 执行语句 c=a+b+c+d; 后,变量 c 的数据类型是

( ) 。

A)int B)char C)float D)double

64.已知: int i,a;执行语句“i=(a=2*3,a*5),a+6;后,变量 i 的值是( )。

A)6 B)12 C)30 D)36

65.已知: int i=5;执行语句 i+= ++i;i 的值是( )。

A)10 B)11 C)12 D)A ,B,C 答案都不对

66.字符串” 22a,0n”的长度是( )。

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

67.已知: char c='A' ;int i=1,j;执行语句 j=!c&&i++;则 i 和 j 的值是( )。

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

68.已知: int x=1,y=2,z;则执行 z=x>y?++x:++y;则 z 的值为( )。

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

69.为了求出 s=10!的值,则变量 s 的类型应当为( ) 。(10!=3628800)

A)int B)unsigned C)long D)以上三种类型均可以

70.已知: int x=1,y;则 y=++x* ++x 的结果为( )。

A)y=9 B)y=6 C)y=1 D)表达式是错误的

71.已知“int a=4,b=5,c;”,则执行表达式“c=a=a>b”后变量 a 的值为( )。

A)0 B)1 C)4 D)5

72.选出使变量i 的运行结果为 4 的表达式( )。

A) int i=0,j=0; B) int i=1,j=0;

(i=3,(j++)+i) j=i=((i=3)*2);

C) int i=0,j=1; D) int i=1,j=1;

4

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

73.已知: int x;则使用逗号运算的表达式“(x=4*5,x*5),x+25”的结果为( ),变量 x 的值

为()。

(1) A)20 B)100 C)表达式不合法 D)45

(2) A)20 B)100 C)125 D)45

74.执行下面的语句后x 的值为( )。

int a=14,b=15,x;

char c='A';

x=((a&b)&&(c<'a'));

A)TRUE B)FLASE C)0 D)1

75.若定义了int x;则将 x 强制转化为双精度类型应该写成( )。

A)(double)x B)x(double) C)double(x) D)(x)double

76.要判断 char 型变量 m 是否是数字字符,可以使用下列表达式( )A)0<=m&&m<=9 B)'0'<=m&&m<='9'

C)“0”<=m&&m<=“9” D)前 3 个答案都是错误的

77.以下可用作用户标识符的是: ( )

A) 12_a B) signed C) t-o D) _if

78.以下不是关键字的标识符是: ( )

A) continue B) char C) If D) default

79.C 语言提供的合法的关键字是: ( )

A) swicth B) cher C) Case D) void

80. 以下选项中不合法的 int 整型常数是( )

A) 32768 B) -56 C) 03 D) 0xAF

81. 以下不合法的长整型常量是( )

A) 2L B) 49627 C) 34566666 D) 213

82.以下正确的实型常量是( )

A) 1.2E B) .579899 C) 1.2e0.6 D) 8

83.以下选项中合法的实型常数是( )

A) 5E2.0 B) E-3 C) .2E0 D) 1.3E

84.以下合法的八进制数是( )

A) 0135 B) 068 C) 013.54 D) o7

85. 以下合法的十六进制数是( )

A) 0x B) 0x4de C) 0x1h D) ox77

86.以下选项中非法的数值常量是( )

A) 019 B) 0L C) 0xff D) 1e1

87.若变量已正确定义,以下合法的赋值表达式是( )

A) a=1/b=2 B) ++(a+b)

C) a=a/(b=5) D) y=int(a)+b

88.若变量已正确定义,以下非法的表达式是( )

A) a/=b+c B) a%(4.0)

C) a=1/2*(x=y=20,x*3) D) a=b=c

89.设 x 为 int 类型,其值为 11,则表达式( x++*1/3)的值是:

A) 3 B) 4 C) 11 D) 12

90. 设 a,b 均为 double 型,且 a=5.5;b=2.5;则表达式

5

(int)a+b/b 的值是( )

A) 6.500000 B) 6 C) 5.500000 D) 6.000000

1

91.若 a,b,c 均被定义成整型并已赋大于 1 的值,能正确表示代数式

a b c

的 C 语言表达式

是( )

A) 1/(float)a*b*c B) 1/(a*b*c) C) 1.0/a/b/c D) 1/a/b/(float)c

x

y z

的 C 语言表 92. 以下变量 x,y,z 均为 double 型且已正确赋值,不能正确表示代数式

达式是( )

A) x/y*z B) x*(1/(y*z)) C) x/y*1/z D) x/y/z

93 . 若题中变量已正确定义并赋值,下面符合 C 语法的表达式是( )

A) a%=7.6 B) a++,a=7+b+c C) int(12.3)%4 D) a=c+d=a+7

94. 若 t 已定义为 double 型,则表达式: t=1,t++,t+5 的值为( )

A) 7 B) 7.0 C) 2.0 D) 1.0

95.下面四个选项中,均是不合法的用户标识符的选项的是:( )

A. A p_o do B. float lao _A C. b-a goto int D._123 temp INT

二、填空题

1.符号常量的定义方法是 。

2、双精度实数的表示范围是___________,其有效位数是________。

3、关系表达式的运算结果是________。

4、逻辑运算符!是________运算符,其结合性是由______。

5、表达式的运算对象可以是常量、变量和________。

6、已知 char c;表达式(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)&&c<=98 的值

为 1,则变量 c 的值是_____________。

7、已知: a=15,b=240;则表达式(a&b)&b||b 的结果为______。

8、负数在计算机中是以______形式表示。

9、在内存中存储“A”要占用 个字节,存储‘A’要占用 个字节。

10、设 a,b,c 为整型数,且 a 的值为 2,b 的值为 3, c 的值为 4,表达式: a*=16+(b++)-(++c)

的值为______。

11、已有定义: int x=0,y=0;,则计算表达式: (x+=2,y=x+3/2,y+5)后,表达式的值是___,变

量 x 的值是___,变量 y 的值是____

12、定义变量的完整语句格式是 。

13、设下列运算符: << 、+、++、&&、<=,其中优先级最高的是 ,优先级最低

的是 。

14、已有定义: int x=110,y=017;,则计算表达式: (x++,++y)后,按十进制表示,变量 x 的

值是_____,变量 y 的值是_____。

15、C 语言中运算结果可以当成逻辑值使用的表达式有: 表达式、 表达式、

表达式、 表达式、 表达式和 表达式。

16、若已有定义语句: int k=3,j=4;,运行表达式(k+=j,j/=4.0,++j,j+2)后,表达式的值是_____,

变量 k 的值是_____,变量 j 的值是_____。

17、若 x 和 y 都是 double 型变量,且 x 的初值为 3.0,y 的初值为 2.0,则表达式 pow(y,fabs(x))

6

的值为 。

18、若有定义:int e=1,f=4,g=2;float m=10.5,n=4.0,k;则计算赋值表达式

k=(e+f)/g+sqrt((double)n)*1.2/g+m 后 k 的值是。

19、表达式 8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为20、表达式 pow(2.8,sqrt(double)(x)))值的数据类型为。

21、假设 m 是一个三位数,从左到右用 a、b、c 表示各位的数字,则从左到右各个数字是 bac

的三位数的表达式是 。

22、已有定义: float f=13.8;,则表达式: (int)f%3 的值是______.

23、已有定义: int x=3;, 则表达式: x=x+1.78 的值是______.

24、已有定义: double x=3.5; 则表达式: x=(int)x+1 的值是___.

25、已有定义: int x=10,y=3,z;, 则表达式: z=(x%y,x/y) 的值是_____.

三、操作题

1 .写出以下程序运行的结果:

main()

{ char c1='a',c2='b',c3='c',c4='101',c5='116';

printf("a%c b%ctc%ctabcn",c1,c2,c3);

printf("tb%c %c",c4,c5);

}

2. 分析以下程序能否正常运行。

main()

{ int c1,c2; c1=97; c2=98;

printf("%c %cn",c1,c2);

printf("%d %dn",c1,c2);

}

3. 写出以下四个程序运行的结果:

main()

{

int i=6;

printf("%d,%d,%dn",i,(i++)+(i++)+(i++),i);

}

main()

{

int i=6,j;

j=(i++)+(i++)+(i++);

printf("%d,%dn",i,j);

}

main()

{

int i=6,j;

j=(++i)+(++i)+(++i);

printf("%d,%dn",i,j);

}

7

4. 写出以下程序运行的结果:

(1) main()

{ float f;

int i=4;

f=10/i;

printf("%fn",f);

}

(2) main()

{ float f;

int i=4;

f=10.0/i;

printf("%fn",f);}

5. 分析下面程序执行后的结果 。

main()

{ int a=3,b=7;

printf(“%dn”,a++ + ++b);

printf(“%dn”,b%a);

printf(“%dn”,!a>b);

printf(“%dn”,a+b);

printf(“%dn”,a&&b);

}

四、简答题

(1)用户标识符在命名时,应注意哪几个方面?

(2) C 语言中,怎样区分求负与减法运算?怎样区分取地址运算和按位与运算?

五、求下面算术表达式的值

(1)设 x=2.5, a=7, y=4.7,x+a%3*(int)(x+y)%2/4

设 a=2, b=3, x=3.5, y=2.5, (float)(a+b)/2+(int)x%(int)y

(2)设 int i=1,j=2,k=3;,请写出以下表达式的值及计算后变量 i、j、k 的值。

① ( ++i ) * ( ++j ) * ( ++ k)

③i=i+j,j=j+k,k=k+i

②( i++ ) * ( ++j ) * (k++)

④! ( i = j ) && ( j = k )

六、 编程题:

1. 要将“China”翻译成密码。 密码规律是: 用原来字母的后面第 4 个字母代替原来的字母。

请编写一程序实现。并输出结果。 (Glmre)

2. 设长方形的高为 1.5,宽为 2.3 ,编程求该长方形的周长和面积。

参考答案:

一、选择题

1-5 ABACC 6-10 (AB) DCAA 11-15 CADAB 16-20 ABBCB 21-25 ACBDC

36-40 CADDB 41-45 AACDA 46-50 AAADD

26-30 DDDCD

31-35 DABBA

51-55 CDCAC

76-80BDCDA

56-60 DBDBC

81-85 DBCAB

61-65 ADCCC

86-90 ACBAD

66-70 BBCCA 71-75 AD (DA) DA

91-95 CABBC

8

二、填空题

1 、 #define 标识符 字符串 2、 10-308~10+308

3 、 0 或者 1

4 、 逻辑非、从右向左

5 、 函数 6、 数字字符或者大写字母或者小写字母 a 和 b 7、 1 8、 补码

9 、 2 、1 10、 4、7 、2 11、 unsigned int、double 、char

12、 数据类型 变量名[=表达式 1][,变量名 2[=表达式 2],……];

13、 ++、&& 14、 111 、16 15 、 算术、关系、逻辑、赋值、逗号

16、 4、7 、2 17、 8 .000000 18、 13.700000 19、 int 20、 double

21、 m%10+m/100*10+m%100/10)*100

22、 1 23、 4 24、 4.000000 25、 3 26、 28 27、 2、3

三、操作题

1 、 aa bb cc ab 2 、 a b 3 、 9,21,6 9,18 9,27

A N 97 98 4 、(1)2.000000 (2)2.500000

5 、 11

0

0

12

1

四、 (2)区别是:求负:单目,右结合;减法:双目,左结合;

取地址:单目,右结合;按位与:双目,左结合;

五、 (1) 2.5、 3.5

(2)①24,i=2,j=3,k=4 ②9,i=2,j=3,k=4 ③6,i=3,j=5,k=6④ 0,i=2,j=3,k=3

六、编程题

1 、#include

void main()

{char c1=’c’,c2=’h’,c3=’i’,c4=’n’,c5=’a ’;

c1=c1+4;c2=c2+4; c3=c3+4; c4=c4+4; c5=c5+4;

printf(“ %c%c%c%c%cn”,c1,c2,c3,c4,c5);

}

2 、#include

void main()

{float x=1.5,y=2.3;

printf(“周长是: %6.2f,面积是: %6.2fn”,2*(x+y),x*y);

}

9


本文标签: 表达式 变量 合法 常量