77范文网 - 专业文章范例文档资料分享平台

第2章 运算符与表达式

来源:网络收集 时间:2020-02-20 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

第2章 运算符与表达式

1、表达式:(int)((double)9/2)- 9%2 的值是 A) 0B) 3C) 4D) 5 参考答案:B 【解析】先将整型数据9强制转换成double型,然后除以2得到的结果与double型保持一致,即为4.5,然后将4.5强制转换成整型数据4,然后计算9%2的值为1,最后计算4-1的值为3,所以选择B选项?

2、sizeof( double )是 A) 一个整型表达式 B) 一个双精度型表达式 C) 一个不合法的表达式 D) 一种函数调用 参考答案:A

【解析】sizeof是C语言中的一个操作符(operator),不是函数调用,简单的说其作用就是返回一个对象或者类型所占的内存字节数?所以选择A?

3、若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) : (y++)中的条件表达式(x-y) 等价的是( )。 A) (x-y<0||x-y>0) B) (x-y<0) C) (x-y>0) D) (x-y==0) 参考答案:A

【解析】条件表达式:x=表达式1?表达式2:表达式3 的含义是:先求解表达式1,若为非0(真),则求解表达式2,将表达式2的值赋给x。若表达式1的值为0(假),则求解表达式3,将表达式3的值赋给x。在本题中与表达式1:(x-y)等价的是(x-y<0||x-y>0)。

4、若变量已正确定义,在if (W) printf(\,k );中,以下不可替代W的是( )。 A) a<>b+c B) ch=getchar() C) a==b+c D) a++ 参考答案:A

【解析】选项A)是非法的表达式,C语言中没有<>运算符。

5、以下选项中不属于C语言程序运算符的是 A) sizeof B) <> C) ( ) D) &&

参考答案:B

【解析】C语言中的不等于符号用\表示,没有符号\?所以选择B?

6、设有定义:int x=7,y=12;,则以下表达式值为3的是 A) (y%=x)-(x%=5) B) y%=(x%=5) C) y%=x-x%5 D) y%=(x-x%5) 参考答案:A

【解析】a%=b表示a=a%(b),故A选项可改写成y=y%x,x=x%5,再计算y-x计算的结果为3,满足题意,因此答案为A选项。

7、有以下程序

#include main( )

{ int c, d; c = 10^3; d = 10+3;

printf(\ }

程序运行后的输出结果是 A) 103,13 B) 13,13 C) 10,13

D) 9,13 参考答案:D

【解析】c语言中\的意思是按位异或,因此10^3表示先把10和3换算成2进制再进行异或,因此答案为D选项。

8、有以下程序:

#include main()

{ int s,t,A=10; double B=6; s=sizeof(A); t=sizeof(B); printf(\,%d\\n\,s,t); }

在VC6.0平台上编译运行,程序运行后的输出结果是( )。 A) 10,6 B) 4,4 C) 2,4 D) 4,8

参考答案:D

【解析】C语言中利用sizeof()函数判断数据类型长度,在VC6.0平台中,整型int占有4个字节,double型数据占有8个字节。

9、若有定义语句:int x=10;,则表达式x-=x+x的值为( )。 A) 0 B) -20 C) -10 D) 10

参考答案:C

【解析】算术运算符+的优先级高于-=,且-=的结合方向为自右向左,所以表达式x-=x+x可以表示成x=x-(x+x)=10-(10+10)=-10,选择C)。

10、不能正确表示数学式A) a/c*b B) a*b/c C) a/ b* c D) a*(b/c) 参考答案:C ??·????

的表达式是

a*c【解析】/号和*号的优先级处于平级,结合性都是自左至右?所以选择C,C式子表示的是b?

11、有以下程序

#include main() {

int sum, pad, pAd; sum = pad = 5;

pAd = ++sum, pAd++, ++pad; printf(\ }

程序的输出结果是 A) 5 B) 6 C) 7 D) 8

参考答案:B

【解析】C语言区分大小写,pad与pAd是两个不同的变量?首先将5赋值给两个变量,由于赋值运算符的优先级高于逗号运算符,所以计算pAd=++sum,此时pAd为6,sum也为6,然后计算pAd++,pAd的值变为7,++pad,pad的值变为6,所以选择B?

12、有以下程序

#include main()

{ int c,d;

c = 10 | 5; d = 10 + 5; printf(\}

程序的运行结果是 A) 15,15

B) 10,15 C) 5,15 D) 105,15 参考答案:A

【解析】由于按位或\优先级高于赋值\,10=1010B,5=0101B,按位或结果为1111B=15,故c=15,d=15,A选项正确。

13、有以下程序

#include main() {

int a, b, c=241; a = c/100 % 9;

b = ( -1 )&&( -1 );

printf(\}

程序运行后的输出结果是 A) 2,1 B) 6,1 C) 6,0 D) 2,0

参考答案:A

【解析】程序执行过程为:c=241,c/100=2,2%9=2,得a=2;\优先级低于\,非0值为真,0值为假,即(-1)为真,逻辑与表达式(-1)&&(-1)为真,得b=1。A选项正确。

14、已知a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a>b)&&(n=c

参考答案:C

【解析】\优先级低于\。\逻辑与表达式:exp1&&exp2,规则为:对exp1求值,若为0,则表达式为0,且不计算exp2;若exp1非0,则求exp2值,作为表达式值。本题计算过程为:先判断a>b为假,m=0,整个逻辑表达式为假,不计算右表达式,n=2。C选项正确。

15、有如下程序

#include main() {

int a = 8, b;

b = (a >> 2) % 2;

printf(\}

程序运行后的输出结果是 A) 8,0 B) 4,0 C) 4,1 D) 8,1

参考答案:A

【解析】\右移运算符,按位右移运算规则是将一个操作数先转换成二进制数,然后将二进制数各位右移若干位,移出的低位舍弃;并在高位补位,若为无符号数,右移时左边高位移入0。a=8=01000,执行a>>2后,a=00010=2,b=2%2=0,输出a,b为8,0,A选项正确。

16、若有C语言表达式 2+3*4+7/3,以下选项中叙述正确的执行顺序是 A) 先执行3*4得12,再执行7/3得2.5,最后执行2+12+2.5得16.5

B) 先执行3*4得12,再执行2+12得14,再执行7/3得2,最后执行14+2得16 C) 先执行7/3得2,再执行3*4得12,再执行12+2得14,最后执行2+14得16 D) 先执行2+3得5,再执行5*4得20,再执行20+7得27,最后执行27/3得9 参考答案:B

【解析】首先,在C语言中,乘除法优先级要高于加减法,其次,除法运算符\两边参加运算对象都是整数,运算结果要取整,故排除A,D选项;C语言中,因为运算符\和\都满足从左到右的运算规则,故应先计算3*4=12因此C排除,答案为B选项。

17、若想给已定义为int型的变量a、b、c、d赋整数1,以下选项中错误的语句是 A) d=c, c=b, b=a, a=1; B) d=c=b=a=1; C) d=(b=c=(a=1)); D) d=1, c=d, b=c, a=b;

参考答案:A

【解析】赋值是将一个常量的值赋给一个变量,在A选项中,c初始值未定义,相当于一个未知数给变量d赋值,不满足赋值为1的条件,答案选A;B选项中, d=c=b=a=1因为赋值运算符号具有右结合性质,故可理解为d=(b=c=(a=1))。

18、表达式 a+=a -= a=9 的值是 A) 18 B) -9 C) 0 D) 9

参考答案:C

【解析】首先计算a=9,然后计算a-=9,即a=a-9,结果为0,然后计算a+=0,即a=a+0,所以最终结果为0?

19、若变量已正确定义,以下选项中非法的表达式是 A) a!=4||'b'

B) 'a'=1/2*(x=y=20,x*3) C) 'a' % 4 D) 'A' + 32 参考答案:B

【解析】A选项中'a'即表示a为字符常量,再给'a'赋值1/2*(x=y=20,x*3),是不正确的。因此B选项正确。

20、有以下程序

#include main()

{ int a;

a = (int)(-1.53*3); printf(\}

程序的运行结果是 A) -4 B) -3 C) -5

D) 结果不确定 参考答案:A

【解析】-1.53*3=-4.59,执行语句a=(int)(-1.53*3);强制将浮点数-4.59转换成整型为-4,则a=-4,A选项正确。

21、有以下程序

#include main()

{ int a;

a = (int)1.99*3; printf(\}

程序的运行结果是 A) 3 B) 5 C) 6

D) 结果不确定 参考答案:A

【解析】浮点数1.99被强制转换成1,执行语句a=(int)1.99*3;计算得a=1*3=3,A选项正确。

22、有以下程序

#include double fun(double a) { double x;

x = a - (int)a; return x; }

main( )

{ double a = 3.1415;

printf(\}

程序的运行结果是 A) 3.000000 B) 3.141500 C) 0.141500 D) 0.000000 参考答案:B

【解析】这里考查了强制转换的概念,在fun函数中,x=a-(int)a表示x取值为a的小数部分,因此,输入a为3.1415,输出x=0.141500,答案为C选项。

23、有以下程序

#include

int sub(double a, double b) {

return (int)(a - b - 1.3); }

main( ) {

printf(\}

程序运行后的输出结果是 A) -2 B) 1.7 C) -3 D) 2.0

参考答案:A

【解析】sub函数输出(int)(a - b - 1.3)将结果强制转化为整型,因此可以排除B、D选项,sub(3.2,4.1)=-2,故答案为A选项。

24、若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是 A) x+1=y B) ++x,y=x-- C) x=x+10=x+y D) double(x)/10 参考答案:B

【解析】A选项中不能将变量y赋给表达式,C选项中错误与A选项一样,D选项中强制类型转换表达式应写成(double)x/10?

25、设有定义:int x=2;,以下表达式中,值不为6的是( )。 A) 2*x,x+=2 B) x++,2*x C) x*=(1+x) D) x*=x+1

参考答案:A

【解析】A)选项中逗号表达式先计算第一表达式2*x,然后计算第二表达式x+=2的值,即x=x+2即4,整个逗号表达式为第二个表达式的值4,所以选择A)。B)选项中首先计算逗号表达式中第一表达式x++,此时x为3,在执行第二个表达式2*x=2*3=6,所以逗号表达式为第二个表达式的值6。C)选项的赋值表达式可以表示为x=x*(1+x)=2*(1+2)=6。D)选项中的表达式可以表示为x=x*(x+1)=2*3=6。

26、若有以下程序

#include main()

{ int a=0,b=0,c=0;

c= (a -= ++a), (a+=b, b+=4); printf(\}

则程序的输出结果是 A) 0,4,0 B) 0,4,4 C) 1,4,1 D) 1,4,4 参考答案:A 【解析】逗号运算符的结合性从左到右,因此逗号表达式将从左到右进行计算。且逗号运算符的优先级最低,所以先计算c=(a-=++a)这部分。其中,赋值运算符从右往左计算,先执行++a,a自增1后再赋值,所以a的值为1,执行a=a-1,即a=1-1,a的值为0,并将0赋给变量c?第二部分(a+=b,b+=4),先执行a=a+b,a=0+0,即a的值为0,然后执行b+=4,b=0+4,即b的值为4?所以打印结果为0,4,0,选择A选项?

27、若有以下程序

#include main()

{ int a=0,b=0,c=0,d;

c= (a+=b,, b+=a); /*第4行*/ d=c;; /*第5行*/ ; /*第6行*/

;printf(\第7行*/ }

编译时出现错误,你认为出错的是

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库第2章 运算符与表达式在线全文阅读。

第2章 运算符与表达式.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/744173.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: