当前位置:文档之家› 第三章 数据类型、运算符与表达式 练习与答案

第三章 数据类型、运算符与表达式 练习与答案

第三章 数据类型、运算符与表达式  练习与答案
第三章 数据类型、运算符与表达式  练习与答案

第三章数据类型、运算符与表达式

[试题分类]:

1.{

下列程序执行后的输出结果是________________。

#define MA(x) x*(x-1)

mian()

\{int a=1,b=2;

pirntf(“%d\n”,MA(1+a+b));\}

}

试题编号:E54749

答案:8

题型:填空题

2.C语言中基本数据类型包括整型、实型、字符型。()

试题编号:E57279

答案:正确

题型:判断题

3.{

要得到下列结果:

a, b

A, B

97,98,65,66

请按要求完善程序。

main( )

\{char c1,c2;

c1=’a’;c2=’b’;

printf(“%c,%c ”,c1,c2);

printf(“%c,%c\n”, ___);

printf(“%d,%d,%d,%d\n”,_c1,c2,c1-32,c2-32);

\}

}

试题编号:E55118

答案:c1-32,c2-32

题型:填空题

4.能表示“整型变量x的绝对值小于5”的表达式是___。(注意本题答案中规定不得使用系统函数)。

试题编号:E55113

答案:(x<5)&&(x>-5)

题型:填空题

5.设有定义"int a,b=10;",则执行语句"a=b<<2+1;"后a的值___。试题编号:E55111

答案:80

题型:填空题

6.设有定义"int x=4;",则表达式"x+=x*=x+1"的值是___。

试题编号:E55110

答案:40

题型:填空题

7.有下列运算符:>>、&&、|、!=,优先级别最高的是___。

试题编号:E55109

答案:>>

题型:填空题

8.用十进制来表示无符号短整型数据的数值范围是___。

试题编号:E55108

答案:0~65535

题型:填空题

9.{

设有以下变量说明语句

char w='A';

int x=10;

float y=20;

double z=30;

则执行赋值语句

x=w*x+z-y;

之后x所得值的数据类是___。

}

试题编号:E55106

答案:int型 & 整型

题型:填空题

10.{

设有变量说明语句

double d=5.4;

int a,b;

则执行下述语句组的输出结果是___。

b=((a=2.1)+1.5)/3.6;

d*=b;

printf("%f\n",d);

}

试题编号:E55104

答案:0.000000

题型:填空题

11.在C语言中,___类型变量的所有成员以覆盖方式共享存储单元。

试题编号:E53887

答案:共用型 & union

题型:填空题

[试题分类]:变量

12.{

C语言中,可以用下面的语句定义变量并赋值。

int a=b=c=3;

}

试题编号:E58190

答案:错误

题型:判断题

13.一个变量只能存储一个字符()

试题编号:E57928

答案:错误

题型:判断题

14.程序中的变量代表内存中的一个存储单元,它的值不可以随时修改()试题编号:E57918

答案:错误

题型:判断题

15.程序中的变量代表内存中的一个存储单元,它的值不可以随时修改()试题编号:E57918

答案:错误

题型:判断题

16.一个变量只能存储一个字符()

试题编号:E57928

答案:错误

题型:判断题

17.一个变量只能存储一个字符()

试题编号:E57928

答案:错误

题型:判断题

18.程序中的变量代表内存中的一个存储单元,它的值不可以随时修改()

试题编号:E57918

答案:错误

题型:判断题

19.C语言中,不要求对程序中所用到的变量进行强制定义()

试题编号:E57733

答案:错误

题型:判断题

20.C语言中,不要求对程序中所用到的变量进行强制定义()

试题编号:E57733

答案:错误

题型:判断题

21.{

若a为整型变量,则以下语句的输出是()

a=-2L;

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

}

A.赋值不合法

B.输出值为-2

C.输出为不确定值

D.输出值为2

试题编号:E57120

答案:B

题型:单选题

22.设x,y均为整型变量,且x=10,y=3,则语句printf("%d,%d\n",x--,--y);的输出结果是()

A.10,3

B.9,3

C.9,2

D.10,2

试题编号:E57108

答案:D

题型:单选题

23.在下列变量中,()不是局部变量

A.register类

B.外部static类

C.auto类

D.函数形参

试题编号:E51626

答案:B

题型:单选题

24.{

以下程序运行后的输出结果是________。

main()

\{ int i=10, j=0;

do

\{

j=j+i; i--;

\}

while(i>2);

printf("%d\n",j);

\}

}

试题编号:E54845

答案:17

题型:填空题

[试题分类]:字符型数据

25.{

以下程序的输出结果是___。

main()

\{ char s[]="abcdef";

s[3]='\0';

printf("%s\n",s);

\}

}

试题编号:E57053

答案:abc

题型:填空题

26.C语言中,字符常量可以用单引号或双引号括起来()试题编号:E57732

答案:错误

题型:判断题

27.C语言中,字符常量可以用单引号或双引号括起来()试题编号:E57732

答案:错误

题型:判断题

28.C语言中,字符常量只能包含一个字符()

试题编号:E57731

答案:正确

题型:判断题

29.C语言中,符号常量的值在程序运行过程中可以改变()

试题编号:E57660

答案:错误

题型:判断题

30.在C语言中,字符串常量隐含处理成以'\0'结尾()

试题编号:E57658

答案:正确

题型:判断题

31.{

以下程序的输出结果是___。

main()

\{ char s[]="abcdef";

s[3]=‘\0';

printf("%s\n",s);

\}

}

试题编号:E57033

答案:abc

题型:填空题

32.若有说明语句:char c='\72';则变量c()

A.包含1个字符

B.包含2个字符

C.包含3个字符

D.说明不合法,c的值不确定

试题编号:E57076

答案:A

题型:单选题

33.下述描述中不正确的是()。

A.字符型数组中可以存放字符串

B.可以对字符型数组进行整体输入、输出

C.可以对整型数组进行整体进行输入、输出

D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值试题编号:E54985

答案:C

题型:单选题

34.{

函数sstrcmp()的功能是对两个字符串进行比较。当s 所指字符串和t所指字符相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。

#include

int sstrcmp(char *s,char *t)

\{while(*s&&*t&&*s = =*t)

\{s++;t++; \}

return ______________________;

}

试题编号:E53939

答案:*s-*t 或者 *s-t[0] 或者 s[0]-*t 或者 s[0]-t[0]

题型:填空题

35.{

有以下程序

#include "stdio.h"

main()

\{

char a,b,c;

a='\101';

b='\x41';

c='\0x41';

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

\}编译时出现错误,以下叙述中正确的是()

}

A.程序中只有a='\101';语句不正确

B.b='\x41';语句不正确

C.c='\0x41';语句不正确

D.a='\101';和 c='\0x41';语句都不正确

试题编号:E51490

答案:C

题型:单选题

36.在C语言中,char 型数据在内存中是以()形式存储的。

A.原码

B.补码

C.ASCII码

D.反码

试题编号:E57131

答案:C

题型:单选题

[试题分类]:常量

37.下列符号串中,合法的十进制整型常量是()

A.09876

B.0x9876

C.9876*e4

D.-9876

试题编号:E57126

答案:D

题型:单选题

38.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是()

A.字符A

B.字符a

C.字符e

D.非法的常量

试题编号:E57130

答案:A

题型:单选题

39.{

设有如下的变量定义

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.x%(-3)

C.A=A*3=2

D.y=float(i);

试题编号:E57125

答案:A

题型:单选题

40.在C语言中,变量所分配的内存空间大小()

A.均为一个字节

B.由用户自己定义

C.由变量的类型决定

D.是任意的

试题编号:E57122

答案:C

题型:单选题

41.在C语言中,负整数在内存中以()形式释放。

A.补码

B.BCD码

C.反码

D.十进制数

试题编号:E57117

答案:A

题型:单选题

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

A.1111,1111,1111,1000

B.1000,0000,0000,1000

C.0000,0000,0000,1000

D.1111,1111,1111,0111

试题编号:E57118

答案:A

题型:单选题

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

A.0L

B.4962710

C.0412765

D.0xa34b7fe

试题编号:E57081

答案:A

题型:单选题

44.下面的符号常量定义中,正确的是()

A.#define PI 3.14;

B.#include PI 3.14;

C.#define PI=3.14

D.#define PI 3.14

试题编号:E46598

答案:D

题型:单选题

45.下列属于C语言合法的字符常数是()

A.'\97'

B."A"

C.'\t'

D."\0"

试题编号:E57075

答案:C

题型:单选题

46.以下选项中,不能作为合法常量的是()

A.1.234e04

B.1.234e0.4

C.1.234e+4

D.1.234e0

试题编号:E57078

答案:B

题型:单选题

47.以下符合C语言语法的实型常量是()

A.1.2E0.5

B.3.14.159E

C..5E-3

D.E15

试题编号:E57079

答案:C

题型:单选题

48.以下所列的C语言常量中,错误的是()

A.0xFF

B.1.2e0.5

C.2L

D.'\72'

试题编号:E57077

答案:B

题型:单选题

49.存储以下数据,占用存储字节最少的是()

A.0

B.‘0’

C.“0”

D.0.0

试题编号:E51628

答案:B

题型:单选题

50.{

以下程序运行后的输出结果是____

#define S(x) 4*x*x+1

main()

\{

int i=6,j=8;

printf("%d\n",S(i+j));

\}

试题编号:E54106

答案:81

题型:填空题

51.以下哪个不是C程序合法的常量

A.1,234

B.'\123'

C.'a'

D."x7G"

试题编号:E55504

答案:A

题型:单选题

[试题分类]:整型数据

52.C语言中,一个字符型数据与整型数据可以互相赋值。

试题编号:E57930

答案:正确

题型:判断题

53.C语言中,一个整数如果其值在-323768~32767范围内,认为它是int 型,只能赋值给int型变量()

试题编号:E57734

答案:错误

题型:判断题

54.下列数据类型中不属于构造类型的是()

A.数组型

B.结构型

C.共用型

D.枚举型

试题编号:E57129

答案:D

题型:单选题

55.若有说明:char s1='\067';char s2="1";char s3='1';则s2中()

A.包含1个字符

B.包含2个字符

C.包含3个字符

D.无定值,说明不合法

试题编号:E57123

答案:D

题型:单选题

56.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是()

A.x&&y

B.x<=y

C.x︱︱++y&&y-z

D.!(x

试题编号:E57092

答案:D

题型:单选题

57.下列选项中,可作为C语言合法整数的是()

A.10110B

B.0386

C.0Xffa

D.x2a2

试题编号:E57080

答案:C

题型:单选题

58.C语言中能用八进制表示的数据类型为()

A.字符型、整型

B.整形、实型

C.字符型、实型、双精度型

D.字符型、整型、实型、双精度型

试题编号:E57073

答案:A

题型:单选题

59.{

有以下程序

# include

main( )

\{ unsigned char a,b;

a=4|3;

b=4&3;

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

\}

执行后输出结果是___________________________

}

试题编号:E54122

答案:7 0

题型:填空题

60.sizeof(double)的返回值类型是()

A.双精度型

B.单精度型

C.整型

D.不合法

试题编号:E51858

答案:C

题型:单选题

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

A.均为2个字节

B.由用户自己定义

C.由所用机器的机器字长决定

D.是任意的

试题编号:E57139

答案:C

题型:单选题

62.在32位计算机中,一个字长所占的字节数为()

A.1

B.2

C.4

D.8

试题编号:E57132

答案:C

题型:单选题

63.{

int i=65536;

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

上面程序语句在VC6.0下编译后运行结果为()

}

A.65535

B.0

C.65536

D.1

试题编号:E57185

答案:C

题型:单选题

[试题分类]:标识符

64.语句标号用标识符表示,它的定名规则与变量名相同,即由字母、数字和下划线组成,其第一个字符必须为字母或下划线()

试题编号:E57883

答案:正确

题型:判断题

65.以下各项中非法的语句标号是()

A.flag:

B.INT:

C.3d:

D.h_r_e:

试题编号:E55465

答案:C

题型:单选题

66.以下为合法语句标号的是()

A.flag:

B.tag

C.int:

D.-here:

试题编号:E55464

答案:A

题型:单选题

67.不属于C.语言保留字的是()

A.for

B.goto

C.if

D.loop

试题编号:E57128

答案:D

题型:单选题

68.C语言中,用户所定义的标识符允许使用关键字()试题编号:E57659

答案:错误

题型:判断题

69.以下各选项中,均是C语言保留字的组是()

A.integer、floa、double

B.if、else、switCh

C.struct、union、enum

D.auto、static.、externa

试题编号:E57124

答案:C

题型:单选题

70.C语言认为名为Student和student的变量是不同变量

试题编号:E57342

答案:正确

题型:判断题

71.C语言认为名为Student和student的变量是不同变量

试题编号:E57342

答案:正确

题型:判断题

72.C语言提供的合法的数据类型关键字是()

A.Double

B.float

C.integer

D.Char

试题编号:E57091

答案:B

题型:单选题

73.下列选项中,不能用做标识符的是()

A._1234

B._1_2

C.int_2

D.2_int

试题编号:E57069

答案:D

题型:单选题

74.以下叙述中错误的是()

A.用户所定义的标识符允许使用关键字

B.用户所定义的标识符应尽量做到“见名知意”

C.用户所定义的标识符必须以字母或下划线开头

D.用户定义的标识符中,大小写字母代表不同的标识

试题编号:E57071

答案:A

题型:单选题

75.下列关于C语言用户标识符的叙述中正确的是()

A.用户标识符中可以出现下划线和中划线(减号)

B.用户标识符不可以出现中划线,但可以出现下划线

C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头

D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头试题编号:E57072

题型:单选题

76.以下不能定义为用户标识符的是()

A.Main

B._0

C._int

D.sizeof

试题编号:E57068

答案:D

题型:单选题

77.以下不合法的用户标识符是()

A.j2_KEY

B.Double

C.4d

D._8_

试题编号:E57067

答案:C

题型:单选题

78.C语言运算符中,优先级最低的是___。

试题编号:E55116

答案:, & 逗号运算符

题型:填空题

79.以下选项不能定义为用户标识符的是()

A.scanf

B.Void

C._3com_

D.int

试题编号:E57070

答案:D

题型:单选题

[试题分类]:浮点型数据

80.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是()

A.x=x*100+0.5/100.0;

B.x=(x*100+0.5)/100.0;

C.x=(int)(x*100+0.5)

D.x=(x/100+0.5)*100.0

试题编号:E57106

题型:单选题

81.表达式(int)3.99的值是()

A.4

B.3

C.3.9

D.3.99

试题编号:E57102

答案:B

题型:单选题

82.设一个C系统的float型有效数字是7位,则超过7位数的运算是不准确的()试题编号:E57735

答案:正确

题型:判断题

83.设一个C系统的float型有效数字是7位,则超过7位数的运算是不准确的()试题编号:E57735

答案:正确

题型:判断题

84.设一个C系统的float型有效数字是7位,则超过7位数的运算是不准确的()试题编号:E57735

答案:正确

题型:判断题

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

A.1

B.7.0

C.2.0

D.1.0

试题编号:E57112

答案:B

题型:单选题

86.表达式(double)(10%3)的值是()

A.1

B.3

C.10

D.1.0

试题编号:E57105

答案:D

题型:单选题

87.以下能正确定义且赋初值的语句是()

A.int n1=n2=10;

B.char c=32;

C.float f=f+1.1;

D.double x=12.3E2.5;

试题编号:E57098

答案:B

题型:单选题

88.sizeof(float)是()

A.一个双精度型表达式

B.一个整型表达式

C.一种函数调用

D.一个不合法的表达式

试题编号:E57096

答案:B

题型:单选题

89.以下定义语句中正确的是()

A.char a='A'b='B';

B.float a=b=10.0;

C.int a=10,*b=&a;

D.float *a,b=&a;

试题编号:E57084

答案:C

题型:单选题

90.若有定义:int a=7;float x=2.5,y=4.7;,则表达式x+a%3*(int)(x+y)%2/4的值是()

A.2.500000

B.2.750000

C.3.500000

D.0.000000

试题编号:E57082

答案:A

题型:单选题

91.在C语言中,5种基本数据类型的存储空间长度的排列顺序为()

A.char

B.char=int

C.char

D.char=int=

试题编号:E57074

答案:A

题型:单选题

92.下列语句中错误的是()

A.x=sizeof(int);

B.x=sizeof(3.14);

C.printf(“%d”,a=a+1,b--,c+1);

D.printf(“%d”,++x,x++);

试题编号:E46867

答案:B

题型:单选题

93.要声明一个浮点指针,正确的方法是()

A.float x;

B.float *x;

C.float *x;= 3;

D.以上三项皆错

试题编号:E51725

答案:B

题型:单选题

94.{

下列程序的输出结果是16.00,请填空。main()

\{ int a=9, b=2;

float x= ________, y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n", z );

\}

}

试题编号:E54847

答案:6.6

题型:填空题

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

A.5E2.0

B.E-3

C..2E0

D.1.3E

试题编号:E57140

答案:D

题型:单选题

[试题分类]:算术运算符和算术表达式

96.已知int t=6,s;则执行语句s=(++t)+(t++);后,s的值是()

A.12

B.13

C.14

D.15

试题编号:E57110

答案:C

题型:单选题

97.已知int a=1,b=-1;则语句printf("%d\n",(a--,++b));的输出结果是()

A.-1

B.0

C.1

D.语句错误

试题编号:E57109

答案:B

题型:单选题

98.若已定义x和y为double类型,且x的值为1,则表达式y=x+3/2的值是()

A.1

B.2

C.2.0

D.2.5

试题编号:E57101

答案:C

题型:单选题

99.设k和x均为int型变量,且k=7,x=12,则能使值为3的表达式是()

A.x%=(k%=5)

B.x%=(k-k%5)

C.x%=k-k%5

D.(x%=k)-(k%=5)

试题编号:E57104

答案:D

题型:单选题

100.表达式(double)(1/2)的值为()

A.0.5

B.0.0

C.0

D.1

试题编号:E57103

答案:B

题型:单选题

习题三(运算与表达式)

习题三 一、选择题 1.若有代数式 bc ae 3,则不正确的C 语言表达式是( C )。 A. a/b/c*e*3 B. 3*a*e/b/c C. 3*a*e/b*c D. a*e/c/b*3 2.在C 语言中,要求运算数必须是整型的运算符是( D )。 A. / B. = C. ++ D. % 3.若有定义语句:int a=7;float x=2.5,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值( A )。 A.2. B. 2. C.3. D.0. 4.若有定义int x=5,y=2,则表达式5/2的结果为(B )。 A. 2.5 B. 2 C. 2.0 D. 3 5.判断char 型变量ch 是否为大写字母的正确表达式是( C )。 A. ‘A ’<=ch<=’Z ’ B. (ch>=’A ’)&(ch<=’Z ’) C. (ch>=’A ’)&&(ch<=’Z ’) D. (ch>=’A ’)and(ch<=’Z ’) 6.为表示关系a ≥b ≥c,则正确的C 语言表达式为( C )。 A. a>=b>=c B. (a>=b)&(b>=c) C. (a>=b)&&(b>=c) D. (a>=b)||(b>=c) 7.逻辑运算符两侧运算对象的数据类型(D )。 A.只能是0或1 B.只能是0或非0正数 C.只能是整型或字符型 D.可以是任何数据类型 8.下列运算符中,优先级最高的是( B )。 A. < B. + C. && D. == 9.设x 、y 、z 是int 型变量,且有x=3,y=4,z=5,则下面表达式中值为0的是( D )。 A. ‘x ’&&’y ’ B. x<=y C. x||y+z&&y-z D. !((x=y&&ch<’B ’&&!y )的值为( B )。 A. 0 B. 1 C. “假” D. true 11.下列表达式中,不满足条件“当x 为奇数时值为真,当x 为偶数时值为假”的是( C )。 A. x%2==1 B. !(x%2==0) C. !(x%2) D. x%2 12.设有int a=1,b=2,c=3,d=4,m=2,n=2;则执行表达式(m=a>b )&&(n=c>d)后,n 的值为( C )。 A. 0 B. 1 C. 2 D. 3 13.判断char 型变量c 是否为0到9的数字的正确表达式为( C )。 A. ‘0’<=c<=’9’ B. 0<=c<=9 C. c>=’0’&&c<=’9’ D.c>=0&&c<=9 14.设有int x=3,y=4,z=5,则执行表达式!(x+y )+z-1&&y+z/2的结果是( D )。 A. 6 B. 0 C. 2 D. 1

C语言第三章表达式与运算符笔记

3.1概述 1.C语言表达式:用C语言运算符将常量、变量、函数调用连接起来的有意义的式子。.C语言的表达式为算术表达式、赋值表达式、逗号表达式、条件表达式、关系表达式和逻辑表达式。 2.表达式的值的类型取决于参与运算的数据的类型。 3.关系运算表达式成立,则结果为1,代表“真”,否则结果为0,代表“假”。4.运算符按参与运算的对象个数可以分类:单目运算符、双目运算符和三目运算符。 3.2算术运算符与算术表达式 1.除法运算:当两个操作数都是整型时,除法视为整除,运算结果舍去小数部分,只保留整数部分。 2.取模运算(求余):运算结果为一个整型,这个数是整除运算的余数,符号与被除数符号相同。例如:8%3的结果是3,8%(-5)的结果是3。 3.取负运算(单目运算),即只有一个操作数参与运算。 4.注意:’\%’与’%%’都相同于显示% 5.算术运算符的优先级:括号、函数调用、取负、*/%、+- 6.结合性:从左至右。 3.3其他运算符的应用 3.3.1赋值运算符和赋值表达式 1.一般形式:变量赋值运算符表达式例如:a=5+10 2.赋值表达式的计算过程:首先计算表达式的值,然后将该值赋给左侧的变量。 3.复合的赋值运算:+=,-=,*=,/=,%=等例如:a+=b等价于a=a+b 4.说明:(1)赋值号左边只能是变量,不允许出现常量、函数调用和表达式。 (2)赋值表达式中的“表达式”,又可以是另一个赋值表达式。 (3)当赋值号两边的数据类型不同时,一般由系统自动进行类型转换。

其原则是,赋值号右边的数据类型转换成与左边的变量相同的数据类型。 3.3.2自增自减运算符 1.功能:自增、自减运算符的作用是使变量的值增1或减1。 2.当自增、自减运算符的前置(在变量之前)变量本身先自增(或自减),然后再参与运算; 3.当自增、自减运算符的后置(在变量之后)变量先参与运算,然后变量本身再自增(或自减)。 注:自增、自减运算符只能用于整型变量,不能用于常量或表达式。 4.-i++相当于-(i++) 从右至左的右结合性 5.i+++j相当于(i++)+j 3.3.3条件运算符和条件表达式 1.一般形式:表达式1?表达式2:表达式3 2.条件表达式的执行过程:首先计算表达式1,如果非0(真)则计算表达式2,表达式2的值作为条件表达式的值;如果表达式1的值为0(假),则计算表达式3,表达式3的值作为条件表达式的值。 3.3.4逗号运算符和逗号表达式 1.一般形式:表达式1,表达式2,……,表达式n 2.逗号表达式的计算过程是:先计算表达式1,再计算表达式2,依次计算直到表达式n,表达式n,表达式n的值是整个逗号表达式的值。 3.3.5 sizeof运算符 1.一般形式:sizeof(类型名或变量名) 类型名可以是基本类型名,也可以是其他的构造类型名 2.功能:sizeof运算给出指定类型在内存中所占的字节数。 数学函数 1.fabs(x) 求x的绝对值

运算符与表达式练习题附答案

1. 以下运算符中优先级最高的是()。 A.&&B.+ C.!= D.?: 2.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是()。 A.a>=10 or a<=0 B.a>=10| a<=0 C.a>=10 && a<=0 D.a>=10||a<=0 3. C语言中运算对象必需是整型的运算符是()。(A)+ (B)/ (C)% (D)* 4. 已知int i;float f;正确的表达式是()。 A)(int f)%i B) int(f)%i C) int(f % i) D) (int)f % i 5. 下列程序的输出结果是()。 void main( ) { int a=7,b=5; printf("%d\n",b=b%a); } (A)0 (B)1 (C)5 (D)不确定值6. 若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;

后,c的值为()。 (A)1.4 (B)1 (C)2.0 (D)2 7. 已知x=4.5,y=2.5,求表达式(x+y)/2+(int)y%(int)x的值()。 A) 3 B) 5 C) 3.5 D) 5.5 8. 已知各变量的类型如下 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) 9. 已知int a,b;执行语句a=(b=3*2,b*4),a+6;后变量a的值为()。 A) 6 B) 12 C) 24 D)30 10. 若有以下程序 main() { int k=2,i=2,m; m=(k+=i*=k);

C语言试题:数据类型、运算符与表达式

3 数据类型、运算符与表达式 一、单项选择题 1、以下选项中,不正确的 C 语言浮点型常量是( C )。 A. 160. B. 0.12 C. 2e4.2 D. 0.0 分析:e 后面的指数必须为整数。 2、以下选项中,( D )是不正确的 C 语言字符型常量。 A. 'a' B. '\x41' C. '\101' D. "a" 分析:在C 语言中,’a ’表示字符常量,”a ”表示字符串。 3、 在 C 语言中,字符型数据在计算机内存中,以字符的(C )形式存储。 A.原码 B.反码 C. ASCII 码 D. BCD 码 分析:将一个字符常量放入一个字符变量中,实际上并不是将字符本身放到内存单元中,而是将字符的对应的ASCII 码放到储存单元中。 4、若x 、i 、j 和k 都是int 型变量,则计算下面表达式后,x 的值是( C )。 x=(i=4,j=16,k=32) A. 4 B. 16 C.32 D.52 分析:(i=4,j=16,k=32)的值为最后一个表达式的值,即为32,所以x=32. 5、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B )。 A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算 C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算 分析:算术运算符包括加法运算“+”符减法运算“-”符乘法运算符“*”以及除法运算符“/”,赋值运算符包括“=、+=、-=、*=、/=、……”,关系运算符包括“<、<=、>、>=”。 6、若有代数式bc ae 3 ,则不正确的C 语言表达式是( C )。 A.a/b/c*e*3 B. 3*a*e/b/c C.3*a*e/b*c D. a*e/c/b*3 分析:C 选项表达的是3ace/b 。 7、表达式!x||a==b 等效于( D )。 A. !((x||a)==b) B. !(x||y)==b C. !(x||(a==b)) D. (!x)||(a==b) 分析:由符优先级先后顺序在!x||a==b 中应先算“||”再算“!”,最后算“==”。选项B 不影响运算顺序。 8、设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是( A )。 A. 0,0 B. 0,1 C. 1,0 D. 1,1 分析:先算括号里面的,a 不大于b ,则m=0,c 不大于d ,则n=0. 9、 设有语句 int a=3;,则执行了语句 a+=a-=a*=a;后,变量 a 的值是( B )。 A. 3 B. 0 C. 9 D. -12 分析:从后往前算,a*=a 即a=a*a ,a=9;然后a-=a=9,a=a-9,=0;a+=0,a=a+a=0. 10、在以下一组运算符中,优先级最低的运算符是( D )。

第三章 运算符和表达式

第三章运算符和表达式 3.1 运算符和表达式概述 使用运算符可以对运算对象(包括常量和变量)进行计算以得到计算结果。用运算符将运算对象连接成一个符合C语言语法规则的式称为表达式。另外,C语言中的表达式是可以嵌套的,即简单表达式经过运算符连接后还可以形成更为复杂的表达式。 根据运算符所连接的运算对象(操作数)的个数,可以将C语言中的运算符分为三类: (1) 单目(一元)运算符:只连接一个操作数的运算符。 (2) 双目(二元)运算符:带有两个操作数的运算符。 (3) 三目(三元)运算符:同时对三个操作数进行计算的运算符。 C语言中的表达式可以分为三类: (1) 单个常量或者单个变量是最简单的表达式。 (2) 带有运算符的表达式。 (3) 函数调用。 任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。所以运算对象、运算符和运算结果是运算的三大要素。 3.2 算术运算符和算术表达式 一、基本算术运算符和简单算术表达式 1. 基本算术运算符 C语言为用户提供的基本算术运算符包括:+(加)、-(减)、*(乘),/(除)、%(求余),这些运算符都是双目运算符,也即在生成算术表达式的时,基本算术运算符左右两侧都必须出现运算对象。 2. 简单算术表达式 当用基本算术运算符去连接常量或者变量时,就形成简单算术表达式。简单算术表达式的基本形式:data1 op data2。data1和data2表示某个常量或者变量,op代表上述5个基本算术运算符之一。假设有变量定义:int a=20,b=-5;则a+b、a-b、a*-2、20/-b、20%6、a%b等都是简单算术表达式。 3. 基本算术运算符使用说明 (1) +、-、*,/既可以连接整型数据,也可以连接实型数据。当参与这4个运算符的运算对

(完整word版)C语言运算符与表达式的练习题答案

C语言运算符与表达式的练习题 单项选择题 (1)以下选项中,正确的 C 语言整型常量是(D)。 A. 32L B. 510000 C. -1.00 D. 567 (2)以下选项中,(D)是不正确的 C 语言字符型常量。 A. 'a' B. '\x41' C. '\101' D. "a" (3)字符串的结束标志是(C)。 A. 0 B. '0' C. '\0' D. "0" (4)算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。 A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算 C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算 (5)逻辑运算符中,运算优先级按从高到低依次为(D)。 A. && ! || B. || && ! C. && || ! D. ! && || (6)表达式!x||a==b 等效于(D)。 A. !((x||a)==b) B. !(x||y)==b C. !(x||(a==b)) D. (!x)||(a==b) (7)设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是(A)。 A. 0,0 B. 0,1 C. 1,0 D. 1,1 *(8)设有语句 int a=3;,则执行了语句 a+=a-=a*=a; 后,变量 a 的值是(B)。 A. 3 B. 0 C. 9 D. -12 (9)在以下一组运算符中,优先级最低的运算符是(D)。 A. * B. != C. + D. = (10)设整型变量 i 值为2,表达式(++i)+(++i)+(++i)的结果是(B,上机13)。 A. 6 B. 12 C. 15 D. 表达式出错 (11)若已定义 x 和 y为double 类型,则表达式的值是(D)。

C语言运算符与表达式的练习题

C语言运算符与表达式的练习题 (作业写到纸质作业本上,在规定时间内交给助教批阅,不要 再网上提交) 一、单项选择题 (1) 以下选项中,正确的C 语言整型常量是。 A. 32L B. 510000 C. -1.00 D. 567 (2) 以下选项中,是不正确的C 语言字符型常量。 A. 'a' B. '\x41' C. '\101' D. "a" (3) 在C 语言中,字符型数据在计算机内存中,以字符 的形式存储。 A. 原码 B. 反码 C. ASCII 码 D. BCD码 (4) 字符串的结束标志是。 A. 0 B. '0' C. '\0' D. "0" (5) 算术运算符、赋值运算符和关系运算符的运算优先级按 从高到低依次为。 A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运 算、赋值运算

C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算 (6) 逻辑运算符中,运算优先级按从高到低依次为。 A. &&,!,|| B. ||,&&,! C. &&,||,! D. !,&&,|| (7) 表达式!x||a==b 等效于。 A. !((x||a)==b) B. !(x||y)==b C. !(x||(a==b)) D. (!x)||(a==b) (8) 设整型变量m,n,a,b,c,d 均为1,执行(m=a>b)&&(n=c>d)后, m,n 的值是。 A. 0,0 B. 0,1 C. 1,0 D. 1,1 (9) int b=0,x=1;执行语句if(x++) b=x+1; 后,x,b 的值依次为。 A. 2,3 B. 2,0 C. 3,0 D. 3,2 (10) 设有语句int a=3;,则执行了语句a+=a-=a*=a; 后,变量 a 的值是。 A. 3 B. 0 C. 9 D. -12 (11) 在以下一组运算符中,优先级最低的运算符是。 A. * B. != C. + D. =

作业━━第 1 章(2)━━运算符与表达式

运算符与表达式 【学习要点】 1.掌握运算符的目数、优先级、结合性等概念。 2.掌握算术运算及其应用。 3.掌握自增、自减运算及其应用。 4.掌握关系、逻辑运算及其应用。 5.掌握位运算及其应用。 6.掌握赋值、复合赋值运算及其应用,掌握赋值兼容时的类型转换。 7.掌握表达式求值时类型的自动转换和强制转换。 8.掌握表达式的组成,掌握逻辑表达式的优化及其副作用。 9.掌握逗号运算符、sizeof运算符、条件运算符及其应用。 ------------------------------------------------------------------------------------------------------------------------------------------------- 【例题分析】 1.若int x,y,z;下列表达式中运算结果与x=y=24相同的是______。 A.x=(y=z=8,4*6) B.x=y=(z=8,4*6) C.x=y=z=8,4*6 D.x=(y=z=8),4*6 【答案】B 【解析】 ①C++语言的赋值运算有别于其它高级语言,逗号运算又是其它高级语言所没有的。 ②在赋值表达式中,可以有多个赋值运算符,计算顺序自右向左,运算优先级低,仅高于逗号运算符。 ③逗号既是分隔符,又是运算符,可以用一个逗号运算符或多个逗号运算符将多个表达式连接成逗号表达式,计算顺序自左向右,并将最后一个表达式的值作为整个逗号表达式的值,逗号运算优先级最低。 2.若int i=6,k=0;下列表达式中运算结果使k=7的是______。 A.k=i+++k B.k=k+i++ C.k=++i+k D.k=k+++i 【答案】C 【解析】 ①自增++、自减--运算符是C++语言特有的。 ②运算符++、--出现在变量的前面或后面,其运算结果是不同的。若++、--出现在变量前,则先将变量的值加1(或减1)后,再将变量的值参加运算;反之则先将变量的值参加运算,再将变量的值加1(或减1)。 ③自增、自减运算符的优先级高于算术运算符,因此对于k=i+++k:解释为i++,再加k;对于k=k+++i:解释为k++,再加i。 3.表达式‘A’+’B’+20的值是______。 【答案】151 【解析】不同类型的数据混合运算时,系统可以自动进行类型转换,将表示范围小的数据类型转换成另一操作数的相同类型后再参与运算,则转换为65+66+20=151。 4.若int e=8;double f=6.4,g=8.9;则f+int(e/3*int(f+g)/2)%4的值是______。 【答案】9.4 【解析】 ①不同类型的数据混合运算时,可以使用强制类型转换符,将一种数据类型强制转换成另一种数据类型后再参与运算。 ②表达式中:e/3的值是整型数2,int(f+g)的值是整型数15,int(e/3*int(f+g)/2)的值是整型数15,15%4的值是整型数3,最后加上实型数f,得到最终值是实型数9.4。 1

03填空题(运算符与表达式)

2.2 填空题 (191)&运算符作为单目运算符时表示的是____运算;作为双目运算符时表示的是_____运算。 (192)请计算sizeof的值: char str[] = "Hello" ; char *p = str ; int n = 10; 请计算 sizeof (str ) = ____ sizeof ( p ) = _____ sizeof ( n ) = ______ (193)请计算sizeof的值: void Func ( char str[100]) { // 请计算 sizeof( str ) = _____ } (194)请计算sizeof的值: void *p = malloc( 100 ); // 请计算 sizeof ( p ) = ______ (195)下列程序段的输出是_______。 #define f(a, b, x) a*x+b printf("%d, %d\n", f(3,2,1), f(6, 5, f(3, 2, 1))); (196)下列程序段的输出是_____。 main() { int k; for(k=1; k<5; k++) { if(k % 2) printf("*"); else continue; printf("#"); } } (197)下列程序段的输出是_____。 int *p, *q, k=5, j=6; q=&k; p=q;

q=&j; printf("%d", *p); (198)设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是____。 (199)下面程序的输出是_________。 V oid main(void) { int a = 2; printf("%d %d %d\n", a, ++a, a--); } (200)有int i, j, k; 则表达式i=1,j=2,k=3, i&&j&k 的值为______。 (201)设y是int型变量,请写出判断y为非法的关系表达______。 (202)若已定义:int a[10], i;,以下fun函数的功能是:在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。请填空。 fun(int a[ ]) { int i; for(i=1; i<=10; i++) _____ = i; for(i=0; i<5; i++) ______ = a[i]; } (203)设ch是字符型变量,判断ch为英文字母的表达式是______。 (204)下列程序段的输出结果是______。 printf("%xn", (0x19 <<1) & 0x17); (205)表示x≥y≥z的C表达式是_______。 (206)下列程序段的输出是______。 printf("%on", 010<<1^1); (207)下列程序段的输出是______。 int k; float s; for (k=0, s=0; k<7; k++) { s += k/2; } printf("%d, %fn", k, s); (208)设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为_____________。

实验二 运算符和表达式

实验二运算符和表达式 实验时间:2010年10月8日 【实验目的】 1、掌握C语言各种基本数据类型的定义和表示方法; 2、掌握变量的定义、赋值方法; 3、掌握基本运算符的功能及其应用; 4、掌握基本运算符的优先级和结合性; 5、掌握表达式的概念及运算规则; 6、掌握常用数据类型的转换规则。 【实验内容】 1、常用基本数据类型的存储长度,求字节运算符的使用; 2、运算符及其表达式的应用; 3、数据类型的自动转换与强制转换。 【实验步骤】 一、在E或F盘上建立以自己的学号命名的文件夹。 二、内容与步骤 1、求字节运算符的使用 利用sizeof()函数,了解C语言各种数据类型所占用的存储空间大小,将编写的源程 2、写出下列程序运行的结果 ⑴、/*ex2_2.c*/ #include #define PRICE 12.5 main() { int num=3; float total; char ch1,ch2=…D?; total=num*PRICE; ch1=ch2-…A?+…a?; printf(“total=%f,ch1=%c\n”,total,ch1); } ⑵、/*ex2_3.c*/ # include main()

{ int i, j, k; int m, n, p; i = 8; j = 10; k = 12; /* 自增在操作数之前*/ m = ++i; printf("i = %d\n", i); printf("m = %d\n", m); /* 自减在操作数之后*/ n = j--; printf("j = %d\n", j); printf("n = %d\n", n); /* 自增、自减的混合运算*/ p = (++m)*(n++)+(--k); printf("k = %d\n", k); printf("p = %d\n", p); } 3、运算符的优先级别和结合性:请写出下列程序运行的结果,并进行分析。/*ex2_4.c*/ #include Main() { int x,y,z; x=y=z=-1; ++x&&++y||++z; printf(“x=%d\ty=%d\tz=%d\n”,x,y,z); /*”\t”为按横向跳格格式输出*/ x=y=z=-1; ++x||++y&&++z; printf(“x=%d\ty=%d\tz=%d\n”,x,y,z); x=y=z=-1; ++x&&++y&&++z; printf(“x=%d\ty=%d\tz=%d\n”,x,y,z); } 4、位运算符的使用 位运算符C语言提供了六种位运算符:

数据类型、运算符与表达式练习题

第三章运算符与表达式练习题 一、单项选择题 1.下列数据中属于“字符串常量”的是()。 A.”a” B. {ABC} C. ?abc\0? D. ?a? 2.下列数据中属于“字符串常量”的是()。 A.ABC B. “ABC” C. ?abc? D. ?a? 3. 在PC机中,?\n?在内存占用的字节数是()。 A. 1 B. 2 C. 3 D. 4 4. 在PC机中,”a\xff” 在内存占用的字节数是()。 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 16.sizeof(double)的结果值是( )。 A.8 B. 4 C. 2 D. 出错 17. 表达式“1?(0?3:2):(10?1:0)”的值是()。 A. 3 B. 2 C. 1 D. 0 18.int 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++

运算符和表达式教案

QBASIC语言程序设计之 运算符和表达式 科目:计算机 授课人:赵华 时间:2007年10月

《运算符和表达式》教案 教学目标: 1、识记运算符的分类及表达式的定义。 2、掌握算术运算符的运算规则。 3、掌握QBASIC表达式的书写规则。 4、掌握算术表达式的求值方法。 教学重点: 1、掌握算术运算符的运算规则。 2、掌握算术表达式的求值方法。 教学难点: 1、掌握算术运算符的运算规则。 2、掌握算术表达式的求值方法。 课前巩固: 1、函数SQR(X)的功能是什么?(举例介绍) 2、函数INT(X)的功能是什么?(举例介绍) 教学内容: 一、运算符的分类 运算符表示对数据进行的具体运算。在QBASIC中分为四类:算术运算符、字符串运算符、关系运算符、逻辑运算符本节我们重点学习算术运算符和算术表达式的有关内容。 二、算术运算符 1、种类: 2、运算规则: ①^ 是乘方运算符: 例如:6^2就表示数学上的62,其值等于36。 2^-2就表示数学上的2-2,其值等于0.25。

② \ 是整除运算符: 运算功能是:如果参与运算的两个数是整数,运算结果为商的整数部分;如果参与运算的量含有小数,则系统先将它们按四舍五入转换为整数,然后再进行运算。 例1: 7 \ 2 = 3 10 \ 4 = 2 例2: 8.7 \ 5 = 1 12.37 \ 4.78 = 2 ③ MOD 是求余运算符: 运算功能是:如果参与运算的两个数是整数,运算结果为两数相除后的余数;如果参与运算的量含有小数,则系统先将它们按四舍五入转换为整数,然后相除取它们的余数。 例1: 12 MOD 5 = 2 23 MOD 4 = 3 例2: 11.7 MOD 8 = 4 13.23 MOD 4.76 = 3 三、算术表达式 1、什么叫表达式? 是指用圆括号和运算符将常量、变量和函数连接起来的式子。 2 、表达式分为哪几类? 根据运算性质不同可分为四类: 算术表达式 、 字符表达式 、 关系表达式 、 逻辑表达式 3、什么是算术表达式? 就是用圆括号和算术运算符将数值常量、变量和函数连接起来的式子。 4、怎样把代数式写成QBASIC 的算术表达式 例1: 2X + Y +6 写成QBASIC 表达式为: 2*X +Y + 6 例2:A AC 24B +B -2-写成QBASIC 表达式为: (-B+SQR (B^2-4*A*C ))/(2*A) 例3: B A y x +写成QBASIC 表达式为: (ABS (X )* ABS (Y ))/(A+ B )

C详细答案复习题c

第3章运算符和表达式 丰富的运算符可使表达式方便、简捷。初学者一下掌握这么多操作符会有压力。可通过写或计算表达式的练习,以及各章程序实例中出现的表达式,进一步熟悉运算符。 3.1 表达式的基本概念 对数据进行各种运算的符号为运算符,参与运算的数据为操作数。表达式构成:常量、变量、有返回值的函数调用是表达式,表达式加圆括号、或用运算符作正确连接后也是表达式。 圆括号左、右括号个数要相同,多层括号时内层括号中的运算优先;整个表达式必须写在同一行上。 a·x3+b·x2+c·x+d 写作 a*x*x*x+b*x*x+c*x+d 或 ((a*x+b)*x+c)*x+d; 写作 1/(1+1/(1+x));等等。 C运算符:算术、关系、逻辑、条件、赋值、逗号运算符,等等。 根据参与运算的操作数个数,运算符可分为单目、双目以及三目运算符。两个操作数的运算符是双目运算符,“单目运算符”只有一个操作数。三目运算符是C语言所特有的,它有三个操作数。 不同运算符参与运算时有优先级问题。如先乘除、后加减。 同级运算一般是从左向右进行。特例如赋值“x=y=3”,先计算y=3、再计算x=y。特例将特别指出,一般按缺省。 主要介绍算术(包括自增自减)、关系、逻辑、赋值、逗号运算符,以及由这些运算符构成的各类表达式。 3.2 算术运算符与算术表达式 内容:算术运算符及其功能,算术表达式,优先级、运算时的类型转换规则。 3.2.1 算术运算符 1. 算术运算符 C的算术运算符有:+ - * / %(取余) 其中“-”可作单目运算符,如-5,表达式3*-5值为-15。 各运算符优先级:先乘除、后加减;取余的优先级和乘除相同。 优先级的讨论,应限于同一层括号内,同级运算一般从左到右执行。具体规则如下:

第三章。运算符和表达式2、分支结构

Top 1.运算符和表达式-2 2.分支结构 1. 运算符和表达式-2 1.1. 赋值运算 1.1.1. 使用“=”进行赋值运算 “=”称为赋值运算符,用于对变量赋值。关于赋值运算符,除了将右边的表达式计算出来赋给左边以外还具备如下特点:赋值表达式本身也有值,其本身之值即为所赋之值。示例代码如下所示: 1.int num =18, index; 2.System.out.println(index = num %5);// 结果为:3,赋值表达式本身也有值 3.System.out.println(index);// 结果为:3 4.int a, b, c; 5. a = b = c =100; 6.// c=100 整个表达式的值为100,将其赋值给b,同样b=(c=100)整个表达式 的值也为100,然后有将这个值赋给了a,所以a 的值也是100。 1.1. 2. 使用扩展赋值表达式 在赋值运算符”= ”前加上其它运算符,即为扩展赋值运算符,其效率高于赋值运算符,推荐使用,扩展赋值运算符如下图- 5所示:

图- 5 1.2. 字符连接运算 1.2.1. 使用“+”进行字符串连接 “+”除了可以进行算术运算以外,还可以实现字符串的连接,同时可以实现字符串与其他数据类型的“相连”。 当+ 号作用于两个数字类型变量时,是在进行算术运算。 当+ 号两边的变量有一个是字符串类型,即””括起来的时候,则其进行的是字符串的连接,连接后的结果为字符串类型。示例代码如下所示: 1.int a =100; 2.String msg ="a="+ a; 3.System.out.println(msg);//a=100,字符串拼接 4.msg =""+100+200; 5.System.out.println(msg);//结果为: 100200,””+100,为字符串100再拼 上200为100200 6.msg =100+200+""; 7.System.out.println(msg);//结果为:300,100+200为算术运算结果为300, 再加上””为300 1.3. 条件(三目)运算 1.3.1. 使用条件(三目)运算符

第三章 数据类型、运算符与表达式 练习与答案

第三章数据类型、运算符与表达式 [试题分类]: 1.{ 下列程序执行后的输出结果是________________。 #define MA(x) x*(x-1) mian() \{int a=1,b=2; pirntf(“%d\n”,MA(1+a+b));\} } 试题编号:E54749 答案:8 题型:填空题 2.C语言中基本数据类型包括整型、实型、字符型。() 试题编号:E57279 答案:正确 题型:判断题 3.{ 要得到下列结果: a, b A, B 97,98,65,66 请按要求完善程序。 main( ) \{char c1,c2; c1=’a’;c2=’b’; printf(“%c,%c ”,c1,c2); printf(“%c,%c\n”, ___); printf(“%d,%d,%d,%d\n”,_c1,c2,c1-32,c2-32); \} } 试题编号:E55118 答案:c1-32,c2-32 题型:填空题 4.能表示“整型变量x的绝对值小于5”的表达式是___。(注意本题答案中规定不得使用系统函数)。 试题编号:E55113 答案:(x<5)&&(x>-5) 题型:填空题

5.设有定义"int a,b=10;",则执行语句"a=b<<2+1;"后a的值___。试题编号:E55111 答案:80 题型:填空题 6.设有定义"int x=4;",则表达式"x+=x*=x+1"的值是___。 试题编号:E55110 答案:40 题型:填空题 7.有下列运算符:>>、&&、|、!=,优先级别最高的是___。 试题编号:E55109 答案:>> 题型:填空题 8.用十进制来表示无符号短整型数据的数值范围是___。 试题编号:E55108 答案:0~65535 题型:填空题 9.{ 设有以下变量说明语句 char w='A'; int x=10; float y=20; double z=30; 则执行赋值语句 x=w*x+z-y; 之后x所得值的数据类是___。 } 试题编号:E55106 答案:int型 & 整型 题型:填空题 10.{ 设有变量说明语句 double d=5.4; int a,b; 则执行下述语句组的输出结果是___。 b=((a=2.1)+1.5)/3.6; d*=b; printf("%f\n",d); } 试题编号:E55104

C++习题第02章基本数据类型、运算符与表达式

第02章基本数据类型、运算符与表达式 1. 选择题 (1)在32位机中,int型字宽为()字节。 A) 2 B) 4 C) 6 D) 8 (2)下列十六进制的整型常数表示中,错误的是()。 A) 0xad B) 0X11 C)0xA D) 4ex (3)设n=10,i=4,则执行赋值运算n%=i-1后,n的值是()。 A) 0 B) 1 C) 2 D) 3 (4)若有a=2,b=4,c=5,则条件表达式a>b?a:b>c?a:c的值为()。 A) 0 B) 2 C) 4 D) 5 (5)若有a=1,b=2,则表达式++a==b的值为()。 A) 0 B) 1 C) 2 D) 3 2.简答题 (1)指出下列数据中哪些可作为C++的合法常数? (a) 588918 (b) 0129 (c) 0x88a (d) e-5 (e) ″A″ (f) .55 (g) ’\\’(h) 0XCD (i) 8E7 (j) π (2)指出下列符号中那些可作为C++的合法变量名? (a) ab_c (b) β(c) 3xyz (d) if (e) cin (f) a+b (g) NAME (h) x! (i) _temp (j) main (3)根据要求求解下列各表达式的值或问题。 (a) (int)3.5+2.5 (b) (float)(5/2)>2.4 (c) 21/2+(0xa&15) (d) 设int i=10,则表达式i&&(i=0)&&(++i)的值是多少?该表达式运算结束后变量i的值为多少? (e) 设int a=1,b=2,c=3;,求表达式a

C++运算符和表达式

2.4C++的运算符和表达式 运算符是施加在数据上的重要操作,变量、常量通过操作符组合成C++的表达式,构成了C++程序的基本要素。本节将介绍C++语言中基本运算符和表达式。 2.4.1C++中的基本运算符 运算是对数据的加工过程,而标识不同运算的符号称职运算符,参与运算的数据称为操作数。表2.3列出了C++中的基本运算符、其优先级及对操作数的结合性。 注:优先级相同的运算符,其执行顺序由该运算符在语句中的位置先后决定。 根据参与运算的操作数的类型不同,运算符可以分为单目运算符(1个操作数)、双目运算符(2个操作数)、三目运算符(3个操作数)。有一些运算符既可以是单目的,也可以是双目的,根据赋予该运算符的操作数的不同,运算符具有不同的功能。 例如:*pFile; var1*var2;

运算符的优先级和数学运算中的优先级意义相同,它决定了一个操作符在表达式的运算顺序,优先级越高,运算次序越靠前。而结合性则决定一个操作符对其操作数的运算顺序。如果一个操作符对其操作数的操作运算是自左向右执行的,则称该操作符是右结合的;反之如果一个操作符对其操作数的操作运算是自右向左执行的,则称该操作符是左结合实际的。 根据操作符表示的运算的性质不同,可以将C++中的操作符分为算术运算、关系运算符、逻辑运算符、赋值运算符、条件运算符、自增自减运算符、位运算符和sizeof运算符等。下面分别进行讨论。 1、算术运算符 表2.4列出了C++中的算术运算符。 对于单目运算符-,其返回值的数据类型与操作数的数据类型相同.对于双目运算符+、-、*和/,若其两个操作数的数据类型相同,则返回值的数据类型与操作数的数据类型相同;若两操作数的数据类型不同,则返回值的数据类型与字长较长的操作数的数据类型相同。 注意:两个整数相除的结果仍然是整数。若被除数不能被除数整除,则相除的结果将被取整,其小数部分将被略去。 例如:34/7;12.5%3(非法)35%7 在某些情况下,算术运算表达式会产生某些问题,计算的结果将给出错误或没有定义的数值,这些情况称为运算异常。对不同的运算异常,将产生不同的后果。在C++中,除数为零和实数溢出被视为一个严重的错误而导致程序运行的异常终止。而整数溢出则不被认为是一个错误(尽管其运算结果有可能与预期值不同)。因此,在一些与硬件打交道的低级程序中利用整数溢出查看设备的状态位等。 2、关系运算符 表2.5列出了C++中的关系运算符,它们都是双目运算符。关系运算符的返回值只有逻辑真和逻辑假两种。当两个操作数满足关系运算符所要求的比较关系时,返回整型数1(真);否则返回整型数0(假)。 表2.5 C++中的关系运算符 var3=(var1

(完整word版)C语言运算符与表达式的练习题答案

C 语言运算符与表达式的练习题 单项选择题 (i )以下选项中,正确的C 语言整型常量是( D )。 A. 32L ⑵以下选项中,( A. 'a' B. 510000 D )是不正确的 B. '\x41' C. -1.00 C 语言字符型常量。 C. '\101' (3)字符串的结束标志是( C )。 A. 0 B. '0' C. '\0' (4) 算术运算 符、赋值运算符和关系运算符的运算优先级按从高到低依次为( B )。 A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算 C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算 (5) 逻辑运算符中,运算优先级按从高到低 依次为( D )。 A. && ! || (6)表达式!x||a B. || && ! C. && || ! ==b 等效于( D )。 ! D. ! && || A. !((x||a)==b) B. !(x||y)==b C .!(x||(a= ==b)) D (!x)||(a==b) (7)设整型变 量 m, n,a,b,c,d 均为 1,执行(m=a>b)&&(n=c>d) 后,m,n 的值是( A A. 0,0 B. 0 ,1 C. 1 ,0 D. 1 , 1 *(8)设有语句 i nt a=3 ;,则执行了语句 a+=a-=a*=a; 后, 变量a 的值是( B A. 3 B. 0 C. 9 D. -12 (9) 在以下一组运算符中,优先级最低的运算 符是( D )。 A. * B. != C. + D.= (10) 设 整型变量i 值为2,表达式(++i )+(++i )+(++i ) 的结果是( B,上机13 ) A. 6 B. 12 C. 15 D. 表达式出错 D. 567 D. "a" D. "0"

相关主题
文本预览
相关文档 最新文档