当前位置:文档之家› 基本数据类型、运算符和表达式

基本数据类型、运算符和表达式

基本数据类型、运算符和表达式
基本数据类型、运算符和表达式

基本数据类型、运算符和表达式

(总分:56.00,做题时间:90分钟)

一、选择题

(总题数:21,分数:42.00)

1.阅读下面程序

public static void main (String[] args)

System.out.printIn (34+56-6);

System.out.printIn (26*2-3);

System.out.printIn (3*4/2);

System.out.printIn (5/2);

程序运行结果是______。

(分数:2.00)

A.84

49

6

2 √

B.90

25

6

2.5

C.84

23

12

2

D.68

49

14

2.5

解析:[解析] 第一条输出语句中,+、-是同优先级的运算符,按照左结合的原则,表达式34+56-6的值应该是84。第二条输出语句中,*的优先级高于-,先算26*2=52,再进行减法运算:52-3=49。第三条输出语句中,+与/是同优先级的运算符,按照左结合可以得到3*4/2的值为6。第四条输出语句中,两个整型数据做除法运算,其结果也应该为整型数据,所以结果是2,而不是2.5。

2.下列属于合法的Java标识符是______。

(分数:2.00)

A."ABC"

B.&5678

C.+rriwo

D.saler √

解析:[解析] Java中所有的变量、常量、对象和类都用标识符命名,其命名规则为:(1)只能以字母、下画线、美元符($)作为首字符,不能用数字或其他符号(如*)作为标识符的首字符。(2)标识符是区分大小写的。只有D项是正确的。

3.阅读下面程序

public class OperatorsAndExpressions

void equalsMethodl()

String s1=new String("how are you");

String s2=new String("how are you");

System.out.printIn (s1==s2);

public static void main (String args[])

OperatorsAndExpressions OperAndExp=new OperatorsAndExpressions();

//用于复合类型数据的"= ="运算符

OperAndExp.equalsMethodl();

程序运行结果是______。

(分数:2.00)

A.==

B.true

C.false √

D.equal

解析:[解析] 本程序的运行结果应该是表达式s1=s2的结果。字符串对象s1和s2是复合数据类型,因而表达式s1=s2比较的是s1和s2是否是同一个对象。本题中s1和s2虽然有相同的值“how are you”,但它们是两个不同的对象,所以本题的结果是false。若要比较两个对象的值,可以调用equals()方法。4.下列代码中,将引起编译错误的行是______。

1) public class Exercise

2) public static void main (String args[])

3)float f=0.0;

4) f+=1.0;

5)

6)

(分数:2.00)

A.第2行

B.第3行√

C.第4行

D.第6行

解析:[解析] float f=0.0;语句中,想要定义一个float型变量f,并且赋初值为0.0,但是数字后面没有跟任何字母,计算机默认为double类型,而从double类型不能自动转换为float,所以该语句将引起编译错误。

5.阅读下面程序

public class Test2

public static void main (String args[])

int a=10, b=4, C=20, d=6;

System.out .printIn(a++*b+c*--d);

程序运行的结果是______。

(分数:2.00)

A.144

B.160

C.140 √

D.164

解析:[解析] 表达式a++*b+c*--d中,++、一的优先级最高,a++运算返回结果为10,--d运算返回结果为5;然后进行两个*运算,10*b=40,20*5= 100;最后进行加法运算,所以最终结果为140。这里要注意的是:x++与++x是有区别的:x++在使用x后将x加1,整个表达式的值为x;而++x是在使用x之前将x加1,故整个表达式的值为x+1。

6.阅读下列代码

public class Test2005

public static void main (String args[])

System.out.printIn(~(Oxa5) &Oxaa);

其运行结果是______。

(分数:2.00)

A.Oxa5

B.10 √

C.Ox50

D.Oxaa

解析:[解析] 十六进制数0xa5的二进制形式为位10100101,0xaa的二进制形式为10101010。在位运算符中,“~”的优先级高于“&”,所以先计算~10100101,其结果为01011010,然后计算01011010&10101010,其结果是00001010,将其转换为十进制数,即为10。所以正确选项为B。

7.下列代表十六进制整数的是______。

(分数:2.00)

A.0123

B.1900

C.fa00

D.Oxa2 √

解析:[解析] 整型常量分3种书写格式:十进制整数,如139,-3,35;八进制整数,以0开头,如012表示十进制数10;十六进制数,以0x或0X开头,如0x123表示十进制数291。选项A是八进制整数,选项B是十进制整数,选项C不是整数,只有选项D是正确选项。

8.阅读下面程序

import java.io.*;

public class TypeTransition

public static void main (String args[])

char a='h';

int i=100;

int j=97;

int aa=a+i;

System.out.printIn( "aa="+aa);

char bb= (char)j;

System.out.printIn("bb="+bb);

如果输出结果的第二行为bb=a,那么第一行的输出是______。

(分数:2.00)

A.aa=I

B.aa=204 √

C.aa=v

D.aa=156

解析:[解析] Java语言规定,char型数据可以自动转换成int类型,转换的结果就是该字符的ASCⅡ码值。由题目给出的第二行输出为bb=a,知道a的A SCⅡ值为97,则b的ASCⅡ值为98,依次类推得到h的ASCⅡ码值为104,所以aa=104+100,结果自然就是204。所以正确选项为B。

9.下列标识符(名字)命名原则中,正确的是______。

(分数:2.00)

A.类名的首字母小写

B.变量和方法名的首字母大写

C.接口名的首字母小写

D.常量完全大写√

解析:[解析] Java中针对变量、常量、类名、方法名、接口名的命名规则如下:_、$不作为变量名、方法名的开头;变量名、方法名首单词小写,其余单词首个字母大写;接口名、类名首个单词第一个字母大写;常量完全大写。根据以上规则可知选项D是正确的。

10.下列叙述中,正确的是______。

(分数:2.00)

A.声明变量时必须指定一个类型√

B.Java认为变量number与Number相同

C.Java中唯一的注释方式是"//"

D.源文件中public类可以有0或多个

解析:[解析] Java中声明变量时,必须指定类型,否则将出错。Java标识符是区分大小写的。Java中有3种注释方式:文档注释/**...*/,C语言注释风格/*...*/,单行注释//,格式上要求注释符//后必须紧跟一个空格。源文件中public类最多只有1个,所以选项D不正确。

11."++"运算符的操作数个数是______。

(分数:2.00)

A.1个√

B.2个

C.3个

D.4个

解析:[解析] 按运算符的操作数的数目划分,可以分为:一元运算符:++、--、+、-;二元运算符:+、-、>;三元运算符:? : 。所以本题正确答案是A。

12.阅读下面程序

public class Increment

public static void main (String args[]

int c;

c=5;

System.out.printIn(c);

System.out.printIn(c++)j

System.out.printIn (c);

程序运行结果是______。

(分数:2.00)

A.5

6

6

B.5

5

6 √

C.6

7

7

D.6

6

6

解析:[解析] 本程序中,变量c的初值为5,第一条输出语句输出其初值;第二条输出语句先输出c的值,再将c加1,故第二条仍输出5;执行第三条输出语句时,c已经加1变为6,所以输出的结果为6。根据以上分析可知本题正确答案为B。

13.请阅读下面程序

public class OperatorsAndExpressions

void residual()

int i=100.j=30;

float m=563.5f,n=4.0f;

System,out.printIn (i%j);

System, .out.printIn (m%n);

public static void main (String args[])

OperatorsAndExpressions OperAndExp=new OperatorsAndExpressions();

//取模运算在整数和浮点数中的应用

OperAndExp.residual();

程序运算结果是______。

(分数:2.00)

A.10

3.5 √

B.20

2.5

C.10

4.5

D.-20

3.5

解析:[解析] 解析过程同上题。

14.下列布尔变量定义中,正确并且规范的是______。

(分数:2.00)

A.BOOLEAN canceled=false;

B.boolean canceled=false; √

C.boolean CANCELED=false;

D.boolean canceled=FALSE;

解析:[解析] Java中的标识符是区分大小写的,boolean、false都是其中的关键字,大写后不正确,故选项A和C都不正确。Java中的变量名一般为小写,只有常变量才用大写,所以选项C也不正确。正确选项是B。

15.下列运算符不能进行位运算的是______。

(分数:2.00)

A.>>

B.>>>

C.<<

D.<<<√

解析:[解析] 位运算符有:>>、<<、>>>、&、|、^、~。其中>>表示算术右移,<<表示算术左移,>>>表示逻辑右移。没有<<<运算,故选项为D。

16.阅读下面程序

public class Test4

public static void main (String args[])

int i=10, j=3;

float m=213.5f,n=4.0f

System.out.printIn (i%j);

System.out.printIn (m%n);

程序运行的结果是______。

(分数:2.00)

A.1.0和1.5

B.1和1.5 √

C.1.0和2.5

D.1和2.5

解析:[解析] 对于二元算术运算,若两个操作数全为整型,只要其中一个为long型,则表达式结果为long 型;若两个操作数全是byte或short型,表达式结果是int型;两个操作数是浮点型,只要其中一个为double型,则表达式结果为double型,否则为float型。所以第一次输出的结果一定是1,第二次输出的结果是1.5。

import java.io;

public class TypeTransition

pubic static void main (String args[])

char a='a';

int i=100;

long y=456L;

int aa=a+i;

long yy=y-aa;

System.out.print("aa="+aa);

System.out.print("yy ="+yy);

程序运行结果是______。

(分数:2.00)

A.aa=197 yy=259 √

B.aa=177 yy=259

C.aa=543 yy= 288

D.aa=197 yy=333

解析:[解析] 自动转换的优先次序是:byte,short,char→int→long→float→double。字符型变量可以当做整型变量参与算术运算,'a'对应的整数值为97,所以aa=97+100,yy=456L-197L。故正确答案为A。

18.下列运算符属于关系运算符的是______。

(分数:2.00)

A.== √

B.=

C.+=

D.-=

解析:[解析] 关系运算符有:>、<、>=、<=、==、!=、=、+=、-=均属于赋值运算符,故B、C、D均不正确。

19.阅读下列代码

public class Test

public static void main (String args[])

System.out.printIn(89>1);

其运行结果是______。

(分数:2.00)

A.44 √

B.45

C.88

D.90

解析:[解析] “89>>1”是将89的各二进制位右移1位,并且低位舍弃,高位补入原来高位的值。Java 使用补码来表示二进制数,89的补码是01011001,右移1位后变为00101100,对应的十进制数为44。

public class Test2005

public static void main (String args[])

System.out.printIn((3>2) ?4:5);

其运行结果是______。(2006年4月)

(分数:2.00)

A.2

B.3

C.4 √

D.5

解析:[解析] 条件运算符的形式为:expressl?express2:express3。当express1结果值为true,则计算express2,并将结果作为整个表达式的值;如果为false,则计算express3,并将结果作为条件表达式的值。本程序中表达式(3>2)结果为true,故整个表达式的值为4。

21.阅读下面程序

public class Test3

public static void main (String args[])

int x=3,y=4,z=5;

String S="xyz";

System.out.printIn(s+x+y+z);

程序运行的结果是______。

(分数:2.00)

A.xyz12

B.xyz345 √

C.xyzxyz

D.12xyz

解析:[解析] Java中对“+”运算符进行了扩展,使它能够进行字符串连接。如“abc”+“de”得到字符串“abcde”,“abc”+3得到字符串“abc3”。如果“+”运算符的第一个操作数不是字符串,则运算结果由后续的操作数决定,如3+4+5+“abc”的结果是“12abc”,而不是“354abc”。由上述分析可知本题正确选项为B。

二、填空题

(总题数:7,分数:14.00)

22.在Java中,所有数据类型的长度都固定,因此没有保留字 1。

(分数:2.00)

填空项1:__________________ (正确答案:sizeof)

解析:[解析] Java中,所有数据类型的长度都固定,并与平台无关,因此没有sizeof保留字,这也是Java 与C语言的不同之处。

23.在Java中,转义字符/n表示 1。

(分数:2.00)

填空项1:__________________ (正确答案:换行)

解析:[解析] Java中,转义字符以反斜杠(/)开头,下面给出了一些常见的转义字符:/'表示单撇号字符,/n表示换行,//表示反斜杠字符,/r表示回车,/t表示横向跳格。

24.在Java中,3.14156D表示的是 1数。

(分数:2.00)

填空项1:__________________ (正确答案:双精度浮点)

解析:[解析] 浮点型数据分为float和double两种类型。如果数字的末尾加F或f,则是float类型;如果数字末尾加D或d,则是double型。特别地,如果数字后面什么字母也没有,计算机默认为double 型。

25.布尔逻辑运算包括:!、&&和 1。

(分数:2.00)

填空项1:__________________ (正确答案:||)

解析:[解析] 布尔逻辑运算符共有3种:逻辑与(&&)、逻辑或(||)、逻辑非(!)。

26.阅读下列程序段

puiblic class Operatora AndExpressions

Sting condiltionaIExpression (int score)

Sting result;

//如果score超过60分,则结果是passed,否则是does't pass

result=(score>=60)? "passed":"doesn't pass";

System.out.printIn(result);

return result;

public static void main(String args[])

OperatorsAndExpressions OperAndExp=new OperatorsAndExperssions();

//条件表达式

OperAndExp, conditionalExpression(65);

其执行结果是______。

(分数:2.00)

填空项1:__________________ (正确答案:passed)

解析:[解析] 本题中score=65,所以score>60的结果为true,故result=passed,最后输出结果当然也是passed。

27.阅读下列代码

public class Test2

public static voidm cn(String args[])

System.out.printIn (5/2);

其执行结果是______。

(分数:2.00)

填空项1:__________________ (正确答案:2)

解析:[解析] 二元算术运算符适用于所有的数值型数据类型。如果两个操作数均是int型,则表达式结果也是int型。本程序中表达式“5/2”的结果也应该是int型,故输出结果为2。

28.Java语言中,移位运算符包括:>>、<<和 1。

(分数:2.00)

填空项1:__________________ (正确答案:>>>)

解析:[解析] Java中定义了3个移位运算符:算术右移:>>;算术左移:<<;逻辑右移:>>>。

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

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

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

作业━━第 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

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

(完整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、c语言-数据类型与运算符(含答案)详解

一、选择题 1. 可用作C语言用户标识符的一组标识符是( B )。 A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 2. 存储以下数据,占用存储字节最多的是(D )。 A. 0 B. ‘0’ C. “0” D. 0.0 3. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。 A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 4. 设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( C )。 A. 12 B. 144 C. 156 D. 288 5. 假设在程序中a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数 式1/abc的表达式是( A)。 A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c 6. 设”int a=15,b=26;”,则”printf(“%d,%d”,a,b);”的输出结果是(C )。 A. 15 B. 26,15 C. 15,26 D. 26 7. 设x是一个int型的,y的值为10,则表达式x && y的值为(C )。 A. 1 B. 0 C. 与x值相同 D. 与x值相反 8. x>0 && x<=10的相反表达式为( A )。 A. x<=0 || x>10 B. x<=0 && x>10 C. x<=0 || x<=10 D. x>0 && x>10 9. x>0 || y==5的相反表达式为( B )。 A. x<=0 || y!=5 B. x<=0 && y!=5 C. x>0 || y!=5 D. x>0 && y==5 10. 下面的哪个保留字不能作为函数的返回类型?( C ) 。 A. void B. int C. new D. long 11. 假定a为一个整型数组名,则元素a[4]的字节地址为(B) 。 A. a+4 B. a+8 C. a+16 D. a+32 12. 字符串”a+b=12\n”的长度为(B )。 A. 6 B. 7 C. 8 D. 9 13. 假定下列x和y均为int型变量,则不正确的赋值为( B )。 A. x+=y++ B. x++=y++ C. x=++y D. ++x=++y 14. 设有以下定义 int a=0; double b=1.25; char c=’A’; #define d 2 ( D ) A.a++; B. b++ C. c++; D.d++; 15. 设x和y均为bool量,则x&&y为真的条件是( A) 。 A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个 16.以下叙述中正确的是(A) A. C程序中注释部分可以出现在程序中任意合适的地方 B.花括号"{"和"}"只能作为函数体的定界符

实验二 运算符和表达式

实验二运算符和表达式 实验时间: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语言提供了六种位运算符:

基本数据类型和表达式

第一章 基本数据类型和表达式 C++数据类型 为什么要分数据类型 不同的数据类型存储格式不同。 不同的数据类型所实施的操作不同 C++数据类型 1、整形数据 各种整形数据的基本情况 数据类型 占用字节(跟编译器有关) 数据范围 short 2 bytes -32768~32767 unsigned short 2 bytes 0~65535 int 2bytes(16位机) 4 bytes(32位机) -32768~32767 -(231)~231-1 unsigned int 2bytes(16位机) 4bytes(32位机) 0~65535 0~232-1 long 4bytes -( 231)~231 -1 unsigned long 4 bytes 0~2 32 -1 整形常量 在整形常量后可加修饰符 l 或 L 表示长整型 基本类型 实型(浮点型) 双精度型( double)

十进制整数:以非零的数字开始 123//signed int 65000//unsigned int 123u//unsigned int 123L//singed long int 八进制整数:以零开始 0123=83//unsigned int 011L=9//unsigned long int 十六进制整数:以0X或0x开始 0x123=291//signed int 0X123u=291//unsigned int 整型变量 类型修饰符变量名[=表达式][,变量名[=表达式]] int x,y; int i=1,j=0; 2字符型数据 字符型数据的基本情况 字符类型: 在内部实现是个单字节长度的整型,因此常用字符型定义值较小的整数。 单引号括起来的一个字符 如’a’,’D’,’?’,’S’ 字符数据在内存中的存储形式 以ASCII码存储,占1字节,用7位 用于表示字符时存放的是字符的ASCII码值。 数据类型占用字节数据范围 char 1Byte -128~127 unsigned char 1Byte 0~255 转义字符 转义序列对应ASCII码值对应功能或字符转义序列对应ASCII码值对应功能或字符 \b 8 退格\’39 单引号 \f 12 换页\’’34 双引号 \n 10 换行\? 63 问好 \r 13 回车\ccc ccc为八进制值该值对应的字符 \t 9 水平制表\\xhh hh为十六进制值该值对应的字符

运算符和表达式教案

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 )

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

第三章运算符与表达式练习题 一、单项选择题 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++

c++实验2 数据类型与表达式

实验2 数据类型与表达式 实验目的 ●掌握C++语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值 的方法; ●懂得转义字符的使用; ●了解基本数据类型的字节宽度; ●进一步熟悉C++程序的编辑、编译、连接和运行的过程; ●掌握数据的输入输出的方法; ●掌握运算符的优先级和结合性,能够正确书写表达式; ●掌握不同的类型数据之间运算的类型转换规则,理解自动类型转换和会使用强制类型转 换。 实验内容: 1、基本数据类型的长度 验证你的C++编译环境中每个基本数据类型的长度(即在内存空间所占的字节个 数)。用sizeof运算符获取类型或数据的所占字节数。 # include using namespace std; int main() { cout << "字符'a' 所占字节数: " << sizeof('a') << endl; cout << "字符\"a\"所占字节数: " << sizeof("a") << endl; cout << "字符串\"China\" 所占字节数: " << sizeof("China") << endl; cout << "整型常量默认为int,int型所占字节数: " << sizeof(136) << endl; cout << "短整型short类型所占字节数: " << sizeof(short) << endl; cout << "实型常量.23456默认为double类型,double字节数:" << sizeof(1.23456) << endl; cout << "float型数据所占字节数:" << sizeof(float) << endl; cout << "double型数据所占字节数:" << sizeof(double) << endl; cout << "bool型数据所占的字节数:" << sizeof(bool) << endl; return 0; } 1)人工分析程序,写出应得结果,上机后将二者对照。 2)仿照上述程序输出基本数据类型char, short, int, long double, float, double,bool的数据类型长度。 3)为什么字符串长度比总字符个数还要多1? 2、先阅读下列程序,写出执行结果(有些程序可能存在错误,请调试、改正) (1) #include using namespace std; int main()

C语言基本数据类型及运算题库

第二章基本数据类型及运算 一、选择题 1. 若以下选项中的变量已正确定义,则正确的赋值语句是。 A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3; 答案:C 2. 设变量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)/100.0 D) x=(x/100+0.5)*100.0 答案:C 3. 下列C语言中运算对象必须是整型的运算符是。 A) %= B) / C) = D) *= 答案:A 4. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是。 A) 0 B) 0.5 C) 1 D) 2 答案:A 5. 设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是。 A) 把x和y按从大到小排列 B) 把x和y按从小到大排列 C) 无确定结果 D) 交换x和y中的值 答案:D 6. 下列变量定义中合法的是。 A)short_a=1-.le-1; B)double b=1+5e2.5; C)long do=0xfdaL; D)float 2_and=1-e-3; 答案:A 7. 以下4个选项中,不能被看作是一条语句的是。 A) {;} B) a=0,b=0,c=0; C) if (a>0); D) if (b==0)m=1;n=2; 答案:D 8. 设x=1,y=-1,下列表达式中解为8的是。 A)x&y B)~x│x C)x^x D)x<<=3 答案:D 9. 在C语言中不合法的整数是。 A)20 B)0x4001 C)08 D)0x12ed 答案: C 10. 以下选项中不正确的实型常量是 A)2.607E-1 B)0.8103e0.2 C)-77.77 D)456e –2 答案:B) 11.若变量已正确定义并赋值,符合C语言语法的表达式是 A)a=a+7 B)a=7+b+c,a++ C)int(12.3%4) D)a=a+7=c+b 答案:B) 12.以下十六进制数中不合法的是 A)oxff B)0Xabc C)0x11 D)0x19

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

C语言数据类型和运算符及表达式复习题

数据类型、运算符和表达式复习题一.选择题 1. 以下不合法的用户标识符是:() a) f2_G3 b) If c) 4d d) _8 2. 以下选项中合法的用户标识符是:() a) long b) _2Test c) 3Dmax d) A.dat 3. 以下可用作用户标识符的是:() a) 12_a b) signed c) t-o d) _if 4. 以下不是关键字的标识符是:() a) continue b) char c) If d) default 5. C语言提供的合法的关键字是:() a) swicth b) cher c) Case d) void 6. 以下选项中不合法的int整型常数是() a) 32768b) -56 c) 03 d) 0xAF 7. 以下合法的长整型常量是() a) 2L b) 49627 c) 34566666 d) 213& 8. 以下正确的实型常量是() a) 1.2E b) .579899 c) 1.2e0.6 d) 8 9. 以下选项中合法的实型常数是() a) 5E2.0 b) E-3 c) .2E0d) 1.3E 10. 以下合法的八进制数是() a) 0135b) 068 c) 013.54 d) o7

11. 以下合法的十六进制数是() a) 0x b) 0x4de c) 0x1h d) ox77 12. 以下选项中非法的数值常量是() a) 019b) 0L c) 0xff d) 1e1 13. 若变量已正确定义,以下合法的赋值表达式是() a) a=1/b=2 b) ++(a+b) c) a=a/(b=5)d) y=int(a)+b 14. 若变量已正确定义,以下非法的表达式是() a) a/=b+c b) a%(4.0) c) a=1/2*(x=y=20,x*3) d) a=b=c 15. 设x为int类型,其值为11,则表达式(x++*1/3)的值是: a) 3 b) 4 c) 11 d) 12 16.设a,b均为double型,且a=5.5;b=2.5;则表达式 (int)a+b/b的值是() a) 6.500000 b) 6 c) 5.500000 d) 6.000000 17.若a为int型,且其值为3,则执行完表达式: a+=a-=a*a后,a的值是() a) -3 b) 9 c) -12 d) 6 18.设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)

基本数据类型与数值表达式

基本数据类型与数值表达式 一、知识要点 计算机的基本功能是进行数据处理。在C++语言中,数据处理的基本对象是常量和变量。运算是对各种形式的数据进行处理。数据在内存中存放的情况由数据类型所决定。数据的操作要通过运算符实现,而数据和运算符共同组成了表达式。本章是对C++语言中的数据类型、运算符、表达式等内容的全面介绍,要正确理解其特点,并灵活运用,主要掌握以下的知识要点: 1.掌握常量和变量的概念。 2.掌握整型数据和实型数据、字符型数据和字符串型数据的概念和区别。 3.掌握各种类型的变量说明及其初始化。 4.掌握算术运算、关系运算、逻辑运算、赋值运算、逗号运算、条件运算等概念。 5.掌握运算符的优先级、左结合和右结合规则。 6.掌握表达式求值时的自动转换和强制类型转换。 7.掌握自加、自减运算的规则。 8.掌握常用数学函数的功能。 二、例题分析与解答 1.选择题 例题1:运算符+、=、*、>=中,优先级最高的运算符是()。 A.+ B.= C.* D.>= 答案:C 分析:根据C++语言对运算符优先级的规则,以上运算符优先级从低到高的次序为=、>=、+、*。 例题2:下列说法正确的是()。 A.cout<<”\n”是一个语句,它能在屏幕上显示”\n” B.\68代表的是字符D。

C.1E+5的写法正确,它表示余割整型常量。 D.0x10相当于020。 答案:D 分析:分号是语句的已部分,且\n是转义字符;\68代表了八进制的6、8,而八进制中没有数字8;1E+5是实型常量;十六进制的10相当于十进制的16,相当于八进制的20。 例题3:下列不合法的变量名为()。 A.int B.int1 C.name_1 D.name0 答案:A 分析:根据变量名命名要求,变量名只能由大小写字母、数字、下划线组成,且系统关键字不能作为变量名。 例题4:下面正确的为()。 A.4.1/2 B.3.2%3 C.3/2==1 结果为1 D.7/2 结果为3.5 答案:A 分析:%运算符要求式整型;关系运算值为0;两个整数相除,商为为相除后的整数部分。 例题5:已知a=4,b=6,c=8,d=9,则“(a++,b>a++&&c>d)?++d:a

表达式与语句

表达式与语句 前面已经提到过表达式,相信大家对表达式也有了一个初步的认识,它是由常量、变量、运算符组合(到以后讲函数时,函数也可以是组成表达式的元素),计算以后返回一个结果值。表达式的结束标志是分号(;),C语言中所有的语句和声明都是用分号结束,在分号出现之前,语句是不完整的。例如: 1+2; Counter/3+5; Height*Width; 表达式本身什么事情都不做,只是返回结果值。在程序不对返回的结果值做任何操作的情况下,返回的结果值不起任何作用,表达式的作用有两点,一个是放在赋值语句的右边,另一个是作为函数的参数(以后再介绍)。 表达式返回的结果值是有类型的。表达式隐含的数据类型取决于组成表达式的变量和常量的类型。因此,表达式的返回值有可能是某种大小的整型,或者是某精度的浮点型,或者是某种指针类型。 这里面就有类型转化的问题了,在前面说整型运算的时候也提到过。类型转化的原则是从低级向高级自动转化(除非人为的加以控制)。计算的转换顺序基本是这样的:

字符型-->整型-->长整型-->浮点型-->单精度型-->双精度型 就是当字符型和整型在一起运算时,结果为整型,如果整型和浮点型在一起运算,所得的结果就是浮点型,如果有双精度型参与运算,那么答案就是双精度型了。 强制转换是这样的,在类型说明符的两边加上括号,就把后面的变量转换成所要的类型了。如: (int) a; (float) b; 第一个式子是把a转换成整型,如果原先有小数部分,则舍去。 第二个式子是把b转换成浮点型,如果原先是整数,则在后面补0。 每一个表达式的返回值都具有逻辑特性。如果返回值为非0,则该表达式返回值为真,否则为假。这种逻辑特性可以用在程序流程控制语句中。 有时表达式也不参加运算,如: if(a||b) ………… 5>3?a++:b++; 当a为真时,b就不参加运算了,因为不管b如何,条件总是真。 二、语句 (一)、赋值语句

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