C语言课件:2_第三章数据类型、运算符和表达式

上传人:M****1 文档编号:569395441 上传时间:2024-07-29 格式:PPT 页数:79 大小:862KB
返回 下载 相关 举报
C语言课件:2_第三章数据类型、运算符和表达式_第1页
第1页 / 共79页
C语言课件:2_第三章数据类型、运算符和表达式_第2页
第2页 / 共79页
C语言课件:2_第三章数据类型、运算符和表达式_第3页
第3页 / 共79页
C语言课件:2_第三章数据类型、运算符和表达式_第4页
第4页 / 共79页
C语言课件:2_第三章数据类型、运算符和表达式_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《C语言课件:2_第三章数据类型、运算符和表达式》由会员分享,可在线阅读,更多相关《C语言课件:2_第三章数据类型、运算符和表达式(79页珍藏版)》请在金锄头文库上搜索。

1、1第三章第三章数据类型、运算符和表达式数据类型、运算符和表达式ChapterThreeDataTypes,OperatorSymbolsandArithmeticExpressions程序中使用的各种变量都应预先加以说明,即先说明,后使用。对变量的说明可以包括三个方面:数据类型数据类型存储类型存储类型作用域作用域在本章中,我们只介绍数据类型说明,其它说明在以后各章中陆续介绍。所谓数据类型是按被说明量的性质,表示形式,占据存储空间的多少,构造特点来划分的。在语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。233.1 C3.1 C语言数据类型语言数据类型单精度型floa

2、t(single precision)双精度型(double precision)基本类型Basic Type构造类型conformation指针类型(Pointer)数据类型Data Type整型(integer)字符型(character)实型(浮点型)(Real)枚举类型(enumeration) 数组(Array)结构体类型(Structure)共用体类型(Union)4C字符集Letters字母AZUppercase大写字母azLowercase小写字母Digits数字09All Decimal digits数字Special Characters特殊符号_Under score下划

3、线,comma逗号.period小数点,句号;semicolon分号:colon冒号?Question mark问号apostrophe单引号“”quotation双引号5C字符集(续)*asterisk星号-Minus sign减号+Plus sign加号closing angle bracket(or more than sign)右尖括号(或大于号)(Left parenthesis左圆括号)Right parenthesis右圆括号Left bracket左方括号Right bracket右方括号Left brace左大(花)括号Right brace右大(花)括号#Number si

4、gn井号6C字符集(续)!Exclamation mark感叹号|Vertical bar竖线/slash斜线backslash反斜线tilde波浪线$Dollar sign美元符号%Percent sign百分号&ersand与caret幂次符号73.2.1常量常量(Constant)1.定义定义:在程序执行期间,其值不发生变化的量称为常量2.类型:类型:v直接常量直接常量(Direct)又称字面常量字面常量。分为整型常量:123,-321,0,654321,+78实型常量:2.68,3.14,2.718,1.38e12单字符常量:a,C,z字符串常量:”china”,”student

5、”,”classnumber”3.2 3.2 常量与变量常量与变量(Constant and(Constant and Variable)Variable)83.2 3.2 常量与变量常量与变量(Constant and(Constant and Variable)Variable)v符号常量符号常量 (Symbol) 即用一个符号代表一个常量例如:#definePI3.1415926/预处理命令main()floatr,l,s;r=2;l=2*PI*r;s=PI*r*r;printf(“l=%d,s=%d”,l,s);编译器编译后,程序中的有关代码变成了(.obj文件,不可见)l=2*3.1

6、415926*r;s=3.1415926*r*r;9说明:说明:v符号常量必须先定义后才能用它表示一个数值。v符号常量的值在其作用域内不能改变,也不能被再赋值。v符号常量名习惯用大写字母表示。103.2.2变量变量1.定义:定义:程序执行期间值可以改变的量。2.命名规则命名规则:变量名由标识符表示,只能由字母字母、数字数字和下划线下划线三种字符组成,且第一个字符不得为数字。例如:下列标识符中,不合法不合法的变量名有:M.D.John,12%gf,1add,age&5thclass,lotus-1-2-3,cd*ef,float3.变量要变量要“先定义,后使用先定义,后使用”定义格式:定义格式:

7、类型说明符类型说明符 标识符标识符1, 1, , ,标识符标识符n n;例如:int i,j,k; (每个整型变量分配2字节bytes存储单元)float a,b,c,d;(每个单精度变量分配4字节存储单元)double x, y, z ,u,v,w;(每个双精度变量分配8字节存储单元)3a11在在C语言中,变量之所以要强制定义,其目的:语言中,变量之所以要强制定义,其目的:1、避免在使用时输错:int student; stadent=30;。2、每一个变量被指定为一确定的类型,在编译时就能为 其分配相应的存储单元。3、指定每一个变量为一确定的类型,在编译时据此检查 该变量所进行的运算是否合

8、法。 例如:如果有double x,y ; int z; 对于运算: z=x*y;在编译时系统就会提示该运算类型不匹配:warningC4244:=:conversionfromdoubletoint,possiblelossofdata12l选变量名时,要做到“见名知意”例如:namestudent_nummaxgrade_1suml大小写字母是两种不同的字符,C变量名习惯用小写小写字母表示。l变量名的长度因系统而异。当用TC编译系统时,不要超过8个字符,而用VisualC+编译系统时,几乎无限制。请请 注注 意意133.33.3整型数据整型数据3.3.1整型常量的表示法整型常量的表示法十进

9、制整数十进制整数:由数字(0-9)和正负号表示例如:123、-456、0等八进制整数八进制整数:以0开头,含数字07例如:037,0,0435,0551,0123即(123)8=(83)10(123)8=182+281+380=(83)10十六进制整数十六进制整数:以0x或0X开头,含数字和字符16:09,a,b,c,d,e,f,1010:09,10,11,12,13,14,15,16例如:0X2,0x9F,0Xbcd,0X0x123即(123)16=(291)10-0x12即(-12)16=(-18)10143.3.2 整型变量整型变量1.整型数据在内存中的存放形式(补码表示法:便于加减运算

10、)int i;i=10; 10=(1010)2 余数首位0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 00 0 0 0 0 0 0 0 0 0 0 0 1 0 1 01 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 010的原码取反再加1,得-10的补码10的表示法的表示法,正数的补码等于它的原码正数的补码等于它的原码-10的的表示表示2102522102012102212315计算计算10-10:10-10=10+(-10)0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 00 0 0 0 0

11、0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 00=10-10+162整型变量的分类整型变量的分类 基本型(16位):以 intint 表示(-3276832767 :-215,0,+215-1) 短整型(16位):以short intshort int或shortshort表示 1.类型 长整型(32位):以long intlong int或longlong表示 (-2.11092.1109) 无符号基本型(unsigned intunsigned int) 无符号型 无符号短整型(unsigned shortunsigned sho

12、rt) 无符号长整型(unsigned longunsigned long)一个无符号整型变量中可以存放的正数的范围比一般整型变量中正数的范围扩大一倍。unsigned int b; /* 变量b的数值范围:065535 */整型变量的字长short型2个字节byte(字长16位bit)int 型一般是2个字节long 型4个字节(字长32位)C要求 short型数据长度短于int型,int型短于long型。(short=intint-int=chard-a=100-97=003=vfloat+float=double+double=doubleint/float=float/float=fl

13、oatfloata;a=1/3.0=1.0/3.0=0.333333doublec;c=1.0/3.0=0.3333333333333333intb;b=1/3.0=1.0/3.0=0.333333=0vint/int=intfloata;a=1/3=0.0;intb;b=1/3=0;Decisionloss37例:若有:inti;floatf;doubled;longe;试判断表达式3+b+i*f-d/e的类型intfloatfloatdoubledouble例:如果inta=5,b=2;doublex;x=a/b;printf(“x=%f“,x);输出结果是什么?X=2.00000038

14、C语言使用的基本表达式有:语言使用的基本表达式有: 赋值表达式,如:赋值表达式,如:a=3 算术表达式,如:算术表达式,如:3+4*2 关系表达式,如:关系表达式,如:32, a=b,c!=0 逻辑表达式,如:逻辑表达式,如:35&a=b 条件表达式,如:条件表达式,如:ab?a:b 逗号表达式,如:逗号表达式,如:a=3, b=4, c=5393.83.8算术运算符和算术表达式算术运算符和算术表达式( (Arithmetic Operators and Expressions)Arithmetic Operators and Expressions)1、基本的算术运算符、基本的算术运算符:加

15、(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)整型数运算inta=14,b=4,c;结果(c)c=a-b10c=a+b18c=a*b56c=a/b3(decimalparttruncated)c=a%b 2(reminderofdivision)c=(-14)%3-240l实型数运算floatx,y,z;x=6.0/7.0=0.857143y=1.0/3.0=0.333333z=-2.0/3.0=-0.666667%operatorcannotbeusedherel混合运算15/10.0=1.515/10=1?41说明:()上述运算符均为双目运算符(即有两个操作数twoopera

16、nds)(2)“”运算中,若操作数均为整数,则执行整除运算,舍去小数部分。例如:5/3=1(3)“”要求两侧均为整数,“”运算不能用于float和double型数据例如:2422 2、算术表达式和运算符的优先级与结合性、算术表达式和运算符的优先级与结合性(Priority and CombinationPriority and Combination,附录,附录III III )(1)算术表达式:用算术运算符和括号将操作数连接起来的,符合语法规则的式子。例如:a+b+a*b/c+2.8(2)优先级:优先级:语言中,运算符的运算优先级共分为15级,1级最高,15级最低。在表达式中,优先级较高的先

17、于优先级较低的进行运算。高于而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。(3)结合性结合性:语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z则y应先与“-”号结合,执行x-y运算,然后再执行+z的运算。例如:a/b*c1/3*3=03*1/3=1而自右至左的结合方向称为“右结合性”。最典型的右结合性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z再执行x=(y=z)运算。4344说明:()表达式应用括号括起例如:(int)(x+y);()在强

18、制类型转换时,得到一个所需类型的中间变量,原来变量类型未发生变化。(3)用途:完成某种运算,如(int)5.5%3;在函数调用时使实参与形参一致。3 3、强制类型转换、强制类型转换( (Forced Forced type type transformationtransformation) )形式:(类型名)(表达式)形式:(类型名)(表达式)例如:( double) (a+b)45举例作用x=(int)7.57.5通过截尾转换为整数a=(int)21.3/(int)4.5转换为21/4,结果为5b=(double)sum/n以浮点数(实型数)模式计算除法y=(int)(a+b)将表达式a+

19、b转换为整数z=(int)a+b将a转换为整数然后与b相加p=cos(double)x)在使用x之前,将其转换为实型数4646main( ) float x; int i; x=3.6; i=(int)x; printf(“x=%f, i=%d”,x,i);输出结果: x=3.600000, i=3注意:强制类型转换后并不改变原来变量的类型 请看下面程序段:474、自增、自减运算符(、)、自增、自减运算符(、)作用:作用:使变量的值增或减,如:i+,+i等于i=i+1i-,-i等于i=i-1+i,-i先执行i=i+1(i=i-1),后使用i的值i+,i-先使用i的值,后执行i=i+1(i=i-

20、1)举例:举例: int j,i=3; j=+i; /*j的值为4,i为4*/ j=i+; /*j的值为3,然后i的值变为4 */ j=-i+; /*j的值-3,然后i的值变为4 */ printf(“%d”,i+) /*输出i的值3,然后i的值变为4 */48说明:(1)为单目运算符 (2)+ 、只能用于变量,而不能用于常量或表达式。 例如:,(,(x+y)+x+y)+,+,+a a, b+ , b+ 中合法的为:(3)自增、自减运算符为右结合性(即自右至左)。例如:a+ (a+)错误的结合(-a)+ =()的优先级为1,+为2y*x+ y*(x+)错误的结合 (y*x)+4、自增、自减运算

21、符(、)、自增、自减运算符(、)493.9 3.9 赋值运算符和赋值表达式赋值运算符和赋值表达式AssignmentOperatorandExpressions1、赋值运算符(赋值运算符(=)形式:变量名=常量或表达式作用:将“=”右边常量或表达式的值赋给“=”左边的变量例如:b=c+d;要求要求:如果表达式类型与左边的变量的类型不:如果表达式类型与左边的变量的类型不 匹配,自动进行类型转换。匹配,自动进行类型转换。 50502、类型转换的原则、类型转换的原则(1) 将实型数据赋给整型变量时将实型数据赋给整型变量时,舍弃实数的小数部分。舍弃实数的小数部分。如:若如:若a为为int型变量,型变量

22、, 执行执行a=3.56后,则后,则a=3(2) 将整型数据赋给实型数据时将整型数据赋给实型数据时,数值不变数值不变,但以浮点形但以浮点形式存储到变量中。式存储到变量中。 如:若如:若b为为float型变量,执行型变量,执行b=35后,则后,则b为为35.00000 (3) 整型数据赋给字符型变量时整型数据赋给字符型变量时, 只将低只将低8位原封不动地位原封不动地送到字符变量中(即截断)。送到字符变量中(即截断)。0010 00010000 0001 0010 0001如:i=289=256+33c=33 c=!5151(4) 字符型数据赋给整型变量时字符型数据赋给整型变量时, 将字符数据将字

23、符数据(8位位)放放到整型变量低到整型变量低8位中。高位中。高8位则需要依据位则需要依据“符号扩展符号扩展”来决定。来决定。例1(无符号字符数据赋给整型变量) unsigned char c; int i; c=254; i=c;1111 1110c= 254i=254 0000 0000 1111 1110例2(Turbo C 系统把字符处理为带符号的) char c; int i; c=254; i=c; /* 变量c 以整数形式输出为-2 */1111 1110c= 254i=-2 1111 1111 1111 111052(5) 将带符号数据赋给长度相同的无符号型变量,将带符号数据赋给

24、长度相同的无符号型变量, 原样照赋。原样照赋。(6)double 赋给赋给 float 时,截取前面时,截取前面7位有效数字。位有效数字。5353例3:(带符号int型数据赋给long型变量) int a; long b; a=254; b=a;0000 0000 0000 0000 0000 0000 1111 1110a=254 0000 0000 1111 1110b=254 例4:(带符号int型数据赋给long型变量) int a; long b; a=-2; b=a;1111 1111 1111 1111 1000 0000 1111 1110a=-2 1111 1111 1111

25、 1110b=-2 5454例5: (无符号int型数据赋给long型变量) unsigned int a; long b; a=65534; b=a;0000 0000 0000 0000 1111 1111 1111 1110a=65534 1111 1111 1111 1110b=65534 例6: (有符号数据赋给无符号变量) int a; unsigned int b; a=-2; b=a;1111 1111 1111 1110a=-2 1111 1111 1111 1110b=65534 55P66 (3.11) 写出下面赋值的结果。格中写了数值的是要将它赋给其它类型的变量,将所有

26、空格添上赋值后的数值。int 9 9 100 76 53 68 42 -1char c d L 5 D * X unsigned int 99 100 76 53 68 42 65535float 99.000000 100.000000 76.000000 53.65 68.000000 42.000000 65535.000000long int 99 100 76 53 68 42 6553556v总的结论:低精度的数据赋值给高精度的变量,其精度将保持;高精度的数据赋值给低精度的变量,其精度将降低,有时甚至可能出错。573、复合赋值运算符、复合赋值运算符(Compound assignm

27、ent operators)复合赋值运算符:在赋值符“=”之前加上其它运算符共有10种复合赋值运算符 += ,-=, ,&, =, |= (位运算)(位运算)例如:a+=3 a=a+3 x*=y+3 x=x*(y+3) x/=y -3 x=x/(y-3)58普通赋值运算符简洁赋值运算符a=a+3a+=3a=a-3a-=3a=a*(n+1)a*=n+1a=a/(n+1)a/=n+1a=a%ba%=ba=b=c=6a=(b=4)+(c=6)a=(b=4)*(c=6)复合赋值符这种写法,对初学者可能不习惯,但十分有利于编译处理,能提高编译效率并产生质量较高的目标代码。594、赋值表达式赋值表达式(A

28、ssignmentexpressions)定义:由赋值运算符将一个变量和一个表达式连接起来的式式子子。形式:变量变量=表达式表达式优先级优先级:14级级结合方向:由右向左结合方向:由右向左说明:赋值表达式的值为被赋值的变量的值。其中赋值表达式的值为被赋值的变量的值。其中“表达式表达式”又可以是一个赋值表达式。又可以是一个赋值表达式。例如:a=b=c=6a=(b=4)+(c=6)a=(b=4)*(c=6)x=-b/(2*a)y1=-x+(dt=sqrt(b*b-4*a*c)y2=-x-dt赋值表达式中可以包含复合赋值运算符 例如:若a=12,计算表达式a+=a=a*a运算后a的值 第一步:aa*

29、a a=a-a*a=12-12*12=-132 第二步:a+=-132 a=a+(-132)=-264错误理解:a=a+(a=a*a)=a+a-a*a=-12060v练习:写出顺序执行下列表达式运算后的x值:1.x=a=b=102.x=25%(c=3)X=10X=1613.10 3.10 逗号运算符和逗号表达式逗号运算符和逗号表达式1.逗号运算符逗号运算符:即“,”优先级优先级:为所有运算符中优先级别最低的(15级)。2.逗号表达式逗号表达式形式:表达式表达式1 1,表达式,表达式2 2,表达式,表达式n n求解过程:顺次求解表达式1,表达式2,最后求解表达式n,逗号表达式的值为表达式表达式n

30、 n的值。的值。例如:a=3*5,a*4a=3*5,a*4 a=3*5,a*4,a+5a=3*5,a*4,a+5x=(a=4%3,a+1,a*10)a=2,b=3,c=4;60201062例如:z=(x=10,y=5,x+y);The value of z is 15.应用:1)在for循环中:for(n=1,m=10;n=m;n+,m+)2)在while循环中:while(c=getchar(),c!=0)3)数值交换:t=x,x=y,y=t;程序中使用逗号表达式,通常是要分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值。要牢记v不要使用关键词或者系统库函数的名字作为标识符(变

31、量名或函数名);v不要使用只差一、两个字符的变量名;v每个变量要在程序或函数开始处声明其类型;v在程序中被使用前,所有变量必须赋值;v不要在#define命令的结尾处加“;”;v不要在#和define之间加空格;vC对于数据的溢出不给任何警告或指示,只会给出错误的结果。必须小心定义数据的类型;63要牢记v小心使用自增和自减运算符,在使用前了解前置(如+i)和后置(如i+)的差别;v在计算顺序混乱的地方,小括号的使用可使它们变清晰;v在赋值以前,表达式的类型被转换成与等号左边的变量类型一致。注意转换时可能的数据损失;v所有的数学函数的参数(自变量)和返回值(计算值)均为double类型(例如y=

32、sin(x)中的x和y);v不要对浮点数变量使用自增和自减运算符。6465第三章 作业(所有程序均需上机调试,正确后方能提交)3_1 判断以下程序段有否错误,写出正确的程序段,并上机调试验证你的程序。(提交修改后的源程序)1#include;2void mian3float x=3.1415;4int y ,z,student_num=196;5PRINTF(“Hello!n”);6printf(“the student_number is:d%n”,num);7printf(“the student_number is:%Dn”, student_num);8printf(“x=%dn”,x

33、);9printf(“y=%fn”,y);10z=3/2;11printf(“z=%dn”,z);12/说明:”%d”是输入、输出整形数据的格式, ”%f”是输入、输出实形数据的格式,”n”是换行的格式663_2 在计算机屏幕上输出一段文字:Johnsaidtohisbrother:(换行)(空两格)”Letshavearest!”并在此段文字前后各空两行。 (提交源程序)3_3 求下面算术表达式的值:(1) x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7(2) (float)(a+b)/2+(int)x%(int)y,设=2,b=3,x=3.5,y=2.5先写出运

34、行结果,然后编制程序验证之。 (提交源程序)673_4 先写出下列程序的运行结果,然后编制程序验证之。#includevoid main()int i,j,m,n;i=8;j=10;m=+i;n=j+;printf(“%d,%d,%d,%d”,i,j,m,n); 683_5 写出下列赋值表达式运算后a的值,然后编制程序验证之。设原来a=12(提交源程序,注意计算每小题之前,将a的值复原为12)(1) a+=a(2) a-=a(3) a*=2+3(4)a/=a+a(5)a%=(n%=2),n的值等于5(6)a+=a-=a*=a693_6.判断下列陈述是对还是错?判断下列陈述是对还是错?a)所有运

35、算符具有相同的优先级.b)求模运算符%只能用于整型数c)运算符=和!=具有相同的优先级.d)在C中,如果一个数据项为零,它就被认为是逻辑假.e)表达式!(xy等效f)一个一元表达式由一个没有运算符的操作数组成.g)结合性被用来决定具有几个表达式的运算哪个优先执行.h)表达式语句用句点“.”结尾结尾i)对于混合表达式运算,隐式类型转换是自动进行的j)强制类型转换可以用于改变表达式k)小括号可以用于改变表达式以下为自我测试题,做完之后自己对答案以下为自我测试题,做完之后自己对答案703_7.下列哪些表达式是有效的下列哪些表达式是有效的?如果有效,给出如果有效,给出表达式的值表达式的值;否则说明原因

36、否则说明原因.a)25/3%2b)+9/4+5c)7.5%3d)14%3+7%2e)-14%3f)15.25+-5.0g)(5/3)*3+5%3h)21%(int)4.5713_8.假设有假设有:inta=10,b=20,c;判断下列表达式是对还是错判断下列表达式是对还是错.a)语句a=+10,是有效的;b)表达式a+4/6*6/2的值为11;c)表达式b+3/2*2/3的值为20;d)语句a+=b;将30赋给a,将20赋给b;e)语句+a+;运算的结果为a=12;f)语句a/=b;将值0.5赋给a;3_9.找出下列运算式中不必要的小括号,给出其精炼的表找出下列运算式中不必要的小括号,给出其精

37、炼的表达式达式a)(x-(y/5)+z)%8)+25b)(x-y)*p)+qc)(m*n)+(-x/y)d)x/(3*y)72答案3_1ErrorCorrectSentence1:;(nosemicolonsign)Sentence2:voidmianvoidmain()Sentence5:PRINTFprintfSentence6:d%dSentence7:%D%dSentence8:实型数用整型格式输出%fSentence9:整型数用实型格式输出%dSentence10:两个整数相除得到整数x=3.0/2;Sentence11:实数的小数部分被截尾,精度降低3_6.a)Falseb)Tru

38、ec)Trued)Truee)Truef)Falseg)Trueh)Falsei)Truej)Truek)True733_7.a)0b)7c)无效,实数不能用%运算d)3e)-2f)无效,-5.0应该有小括号g)5h)13_8.a)True b)Falsec)Trued)Falsee)True f)False3_9.a)(x-y/5+z)%8+25b)(x-y)*p+qc)m*n-x/yd)x/(3*y)模拟考试题选择题1.已知:chara;intb;floatc;doubled;执行语句“c=a+b+c+d;”后,变量c的数据类型是。A)intB)charC)floatD)double2.温

39、度华氏和摄氏的关系是:C=5/9(F-32)。已知:floatC,F;由华氏求摄氏的正确的赋值表达式是_。A)C=5/9(F-32)B)C=5*(F-32)/9C)C=5/9*(F-32)D)三个表达式都正确3.逗号表达式(a=3*5,a*4),a+15的值是_。A)15B)60C)30D)不确定4.如果inta=1,b=2,c=3,d=4;则条件表达式ab?a:c5&+x10;vA)1B)2C)3D)4v7.为判断字符变量c的值不是数字也不是字母时,应采用下述表达式_。vA)c=57&c=90&c=122vB)!(c=57&c=90&c=122)vC)c=48&c=65&c=97&c=48&

40、c=65&c=97&c=122)v8.已知inta=3,b=2,c=1;v则表达式“a/b/c的值是_。vA)1.5B)1C)0D)错误的表达式75模拟考试题9.已知intx=1,y=1,z=1;表达式x+y+z+的值是_。A)3B)4C)5D)表达式错误10.已知intx=5,y=5,z=5;执行语句x%=y+z;后,x的值是_。A)0B)1C)5D)611.使用语句scanf(x=%f,y=%f,&x,&y);输入变量x、y的值(代表空格),正确的输入是_。A)1.25,2.4B)1.252.4C)x=1.25,y=2.4D)x=1.25y=2.412.已知intx=(1,2,3,4);变

41、量x的值是_。A)1B)2C)3D)413.与条件表达式(n)?(c+):(c-)中的表达式(n)等价的表达式是_。A)(n=0)B)(n=1)C)(n!=0)D)(n!=1)76模拟考试题v填空题1.若有以下定义:intm=5,y=2;则计算表达式y+=y-=m*=y后的y值是。2.在C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为。3.已知字母a的ASCII码为十进制数97,且设ch为字符型变量则表达式ch=a+8-3的值为。4.假设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值为:5.若s是int型变量,且s6,则表达式s%2+(s+1)%2

42、的值为。6.若a是int型变量,则下面表达式(a=4*5,a*2),a+6的值为。7.若x和a均是int型变量,则计算表达式x=(a=4,6*2)后的x值为,计算表达式x=a=4,6*2后的x值为。8.若a是int型变量,则计算表达式a=25/3%3后a的值为。9.若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n+后x的值为,n的值。77模拟考试题10.若有定义:intx=3,y=2;floata=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为。11.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=a+8-3的值为。

43、12.若有定义:inte=1,f=4,g=2;floatm=10.5n=4.0k;则执行赋值表达式k=(e+f)/g+sqrt(double)n)*1.2/g+m后k的值是.13.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3)值的数据类型为.14.假设m是一个三位数,从左到右用a,b,c表示m各位的数字,则用m表示从左到右的数字是bac的三位数的表达式是78模拟考试题答案v选择题1.C2.B3.C4.A5.C6.B7.D8.B9.A10.C11.C12.D13.Cv填空题1.-162.-32768+327673.f或1024.95.16.267.12,48.29.10,610.111.10212.13.70000013.整型(或int型)14.(m/10)%10*100+m/100*10+m%1079

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号