自考地区
全国 北京 上海 天津 重庆 河北 山西 辽宁 吉林 黑龙江 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 海南 四川 贵州 云南 陕西 甘肃 青海 内蒙古 广西 宁夏 新疆 西藏
您所在的位置 桃李自考网 > 自考模拟题 >

2021年浙江自考《高级语言程序设计》章节试题及答案(5)

2021-01-11 16:15 来源:桃李自考网 成人自考

9.设整型变量m,n,a,b,c,d均为1,执行“( m=a>b)&&(n=a>b)”后m,n的值是( )

①0,0 ②0,l ③1,0 ④1 ,l

「解」表达式(m=a >b)&&(n=a >b)是一个逻辑表达式,它的计算过程是先计算逻辑与的左分量(m=a>b,其中又是先计算a>b.因a>b不成立,结果为0,将0赋给变量m,最后逻辑与的左分量结果为0.由于逻辑运算采用特别的优化计算规则,当逻辑与的左分量结果为0时,不再计算逻辑与的右分量,而直接以0为逻辑与的结果。所以,上述表达式计算使m的值变为0,而n的值没有变,依旧为l.所以解答是②。


10,设有代码“int a=3;”,则执行了语句“a+=a-= a*a;”后,变量a的值是( )

①3 ② 0 ③ 9 ④ -12

「解」由于赋值运算符的结合性自右至左,语句“a+=a-=a*a;”的执行是先计算a*a,得到值 9,再计算 a-=a*a,使 a的值为-6,接着计算 a+=a,使 a的值为-12.所以解答是④。


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

①<= ②= ③% ④&&

「解」常规运算符的优先级自高到低的排列顺序是算术运算符、移位运算符、关系运算符。按位运算符、逻辑运算符、条件运算符、赋值运算符、逗号运算符。所以问题所给的四个运算符按优先级自高到低的排列顺序是%,<=,&&,=。所以解答是③。


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

①0 ②l ③2 ④表达式出错

「解」有些运算符只有一个字符,也有许多运算符由两个字符组成。特别是有些字符既可是单个字符的运算符,又能组成双字符的运算符。编译系统在识别源程序时,通常是尽量多地读八字符,能组成多字符单词的先尽量组成多字符单词。所以表达式i――i,被编译器理解为(i――)-i.另外,当表达式中某变量有后缀自增和自减运算时,先按变量的原值计算表达式,然后再对变量进行自增和自减运算。同样地,当表达式中某变量有前缀自增和自减运算时,先对变量进行自增和自减运算,然后再按变量的新值计算表达式。按这个约定,求表达式(i――)-i是计算i-i的值为0,然后再对i作自减运算。这样,表达式(i――)-i的值为0.所以解答是①。


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

①6 ②9 ③8 ④表达式出错

「解」与上一小题解答的理由相同,表达式a+++b+++c++被系统理解成:((a++)+(b++))+c++)。表达式“变量++”的值是变量的原来值,所以在变量a、b.c均为2的前题下,执行上述表达式,得到结果为6.所以解答是①。


14.若已定义 x和 y为double类型,则表达式: x=l, y=x+3/2结果是( )

①l ②2 ③2.0 ④2.5

「解」由于变量x和y都是double类型,表达式 x=l, y=x+3/2是先计算 x=1,由于 1是整型的,x是double类型的,该计算先将整数1转换成double类型的1.0,并将1.0赋给变量x.计算 y=X+3/2是先求 3/2的值,因是两整数相除,结果是整型值 1,然后在计算 X+1时,也先将 1转换成 1.0,然后求得 X+l的值为2.0,最后将该值赋给变量 y,并得到整个表达式的值为2.0.所以解答是③。


15.设a=1,b=2,c=3,d=4则表达式a< b?a:c< d?a:d的结果为()

①4 ②3 ③2 ④1

「解」条件运算符的优先级比关系运算符的优先级低,并且它的结合性是自右向左的,所以表达式a


16.设a为整型变量,下列C表达式中,不能表达数学关系式:10

①10

③a>10&&a<15 ④!(a<=10)&&!(a>=15)

「解」数学关系式 10

用 C表达式表示这个条件,可写成a>10&& a<15,或!(a<=10)&&!(a>=15),或a==11||a==12 || a==13||a==14等。若写成10


17.下列表达式中,正确的C赋值表达式是( )

①a=7+b+C=a+7 ② C=7+b++=a+7

③a=(7+b, b++, a+7) ④ a= 7+b, c=a+7

「解」赋值运算符是运算符之一,赋值运算也可以出现在一般表达式中。赋值运算时,出现在赋值运算符左边的表达式应该是引用一个存储对象,例如变量。不可以是一个数值计算表达式。如表达式a=7+b+c=a+7因算术运算符比赋值运算符的优先级高,要把a+7的结果赋给7+b+c,这是错误的。同样理由,表达式a= 7+b++=a+7也是错误的。而表达式a=(7+b,b++,a+7)就是正确的赋值表达式,它是先计算赋值号左边的括号内的表达式,括号表达式内是一个逗号表达式,远号表达式要求顺序逐一计算各子表达式,并以最后一个子表达式的值作为远号表达式的结果,最后将该结果赋给变量a.而表达式a=7+b,c=a+7则不是一个赋值表达式,而是一个逗号表达式,它由两个赋值子表达式组成。所以解答是③。