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

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

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

3.1 单项选择题

1.设 a=3,b=4执厅‘printf(“%d,%d’,(a,b),(b,a));”的输出是( )

①3,4 ②4,3 ③3, 3 ④4,4

「解」在调用格式输出函数的语句中,其中每个格式符对应一个输出项,格式符d要求输出项内容以十进制整数形式输出。第一个输出项(a,b)是一个逗号表达式,该表达式的值是b的值,输出4.接着输出字符逗号。第二个输出项(b,a)的值是a的值,输出3.所以语句执行将输出4,3.正解的选择是③。

2.使用“Scanf(”X=%f,y=%f“,&x,&y)”,要使 X,y均为1.25,正确的输入是( )

①1.25,1.25 ②1.25 1.25 ③x=1.25,y=1.25 ④X=1.25 y=1.25

「解」格式输入函数的格式字符串中的字符可以分成三类:空格类字符、其它普通字符和格式转换说明。其中空格类字符用来跳过一个空格类字符序列,直至下一个非空格类字符。普通字符要求输入字符与其完全相同。格式转换说明对输入字符列按格式转换说明进行转换,得到内部值存储到对应输入项所指定的存储位置中。函数调用scanf(“x=%f,y=%f,&x,&y)以普通字符X=开头,输入时也要先输入X=。接着是一个浮点数输入格式,所有能构成一个浮点数1.25的字符序列都能满足要求。接着是普通字符列”,y=“,在输入的浮点数之后也要有字符列”,y=“。最后又是浮点数输入格式,同样所有能构成一个浮点数1.25的字符序列都能满足要求。问题给出的供选择答案中只有x=1.25,y=1.25是能满足上述要求的。所以正确选择是③。

3.设有int i=010,j=10;则执行“printf(”%d,%d\n“,++i,j――);”的输出是( )

①ll, 10 ② 9,10 ③ 010, 9 ④ 10, 9

「解」变量i和j的初值分别为八进制数010和十进制数 10,函数调用Printf(“%d,%d\n”,++i,j――)中,++i的值是变量 i增1后的值,原来值是八进制数 010,等于十进制数8,输出9.j――的值是变量j减1之前的值,输出10.格式字符申中的逗号是普通字符照原样输出。所以问题给出的格式输出函数调用将输出9,10.正确的解答是②。

4.设a,b为字符型变量,执行“scanf(”a=%c,b=%c“,&a,&b)”后使a为‘A’,b为‘B’,从键盘上的正确输入是( )

①‘A“B’ ②‘A’,‘B’ ③A=A,B=B ④a=A b=B

「解」函数调用scanf(“c=%c,b=%c”,&c,&b)中,普通字符必须按格式字符串要求照原样输入,c格式对紧接的任何字符都输入。所以实现问题的要求,输入字符列应为“a=A,b=B”。另外要特别指出,在程序中,为表示字符常量,字符前后需加单引号。但用字符格式输入字符时,在要输入字符前后不必另键人单引号。若键人单引号,则这个单引号也将作为字符被输入。正确的解答是④。

5.设X、y、Z、t均为int型变量,则执行以下语句后,t的值为( )

x=y=z=1;t=++x||++y&&++z;

①不定值 ②2 ③l ④0

「解」语句序列“x=y=z=l;t=++x||++y&&++z;”使变量x的值为1,变量t是赋一个逻辑表达式的值。在C语言中,由逻辑与和逻辑或构成的逻辑表达式有特别的计算规则,顺序计算各逻辑子表达式,并当一旦能得到逻辑表达式的结果时,就立即结束逻辑表达式的计算,不再计算后继逻辑子表达式。本题的逻辑表达式是两个运算分量的逻辑或,而且左运算分量++X的值为非0,立即得到逻辑或运算的结果为1,并将1赋给变量t,所以变量t的值为1.正确解答为③。

6设x、y、z均为int型变量,则执行以下语句后,x、y, z的值为( )

X=1; y=0; Z=2; y++&&++Z ||++ X;

①2、l、3 ②2、0、3 ③2、l、3 ④2、1、2

「解」语句序列“x=l;y=0;z=2; y++&&++z||++x;”先使变量x的值为 1,变量y的值为0,变量Z的值为2.由逻辑与和逻辑或构成的逻辑表达式的特别计算规则,顺序计算各逻辑子表达式,并当一旦能得到逻辑子表达式的结果时,就立即结束逻辑子表达式的计算,不再计算该逻辑子表达式。计算y++因y的值为0,使y++&&++z的结果为0,立即去计算++X,这次计算使变量y的值变成1,而变量Z的值本改变。接着计算++X,使X的值变为2.所以经上述语句执行后,X、y、Z的值依次为2、1、Z. 确解答为④。

7.假定所有变量均已正确定义,下列程序段运行后X的值是( )

a=b=c=0; x=35;

if(!a)x――; else if(b);if(c)x=3;else x=4;

①34 ② 4 ③ 35 ④ 3

「解」以变量 a,b,c的值均为 0,变量x的值为 35,语句:

if(!a)x――;else if(b);if(c)x=3;else x=4;

由两个证语句组成。首先执行前一个if语句“if(!a)x――;else if(b);”,因变量a的值为0,条件!a成立,执行x――使x的值变为34.接着执行后继的if语句“if(c)x=3; else X=4;”,因变量c的值为0,条件不成立而执行X=4,最终使变量X的值为4.正确解答是②。

注意前一个if语句的else部分的成分语句只有“if(b);”,这是一个单分支if语句,且其成分语句为空语句。