软考程序员考前练习试题及答案解析五[2]

程序员 责任编辑:viecen1314 2009-11-12

添加老师微信

备考咨询

加我微信

摘要:64.设有数据定义语句“charstring1[10]="ABCDE",string2[10]="xyz";”,则执行句“printf("%d",strlen(strcpy(string1,string2)));后的输出结果是()A.9B.8C.5D.3【解析】输出语句中的格式控制符是“%d”,即输出结果是一个整数。再来分析输出的表达式:strlen(strcpy(stringl,string2)),这是测试某个字符串长度的。而被测试的字

64.设有数据定义语句“char string1[10]="ABCDE",string2[10]="xyz";”,则执行句“printf("%d",strlen(strcpy(string1,string2)));后的输出结果是( )
A.9
B.8
C.5
D.3

【解析】输出语句中的格式控制符是“% d”,即输出结果是一个整数。再来分析输出的表达式: strlen(strcpy(stringl, string2)),这是测试某个字符串长度的。而被测试的字符串是:strcpy(string1, string2),这是将“string2”冲存放的字符率复制到 string1中,所以最终测试的字符串是复制到string1中的string2中原字符率。该字符率就是"xyz",其长度为3,所以本题答案应选D。
【参考答案】D

65.设有定义语句“int x[]={1,3,5,7,9,11,13},*p=x;”,则不能正确引用组x的合法元素的表达式是( )
A.*(p--)
B.*(--p)
C.*(p++)
D.*(++p)

【解析】分析备选答案A:由于*(p--)中的“--”是后缀运算符,所以“*(p--)”相当于“*p”,然后再对p减1,由于p指向的数组元素是x[0],所以这个表达式正确引用了数组x的合法元素。分析备选答案B:由于*(--p)中的“--”是前缀运算符,所以要先对P进行减1操作,由于P指向的数组元素是x[0],所以p减1后指向的数组元素是x[-1],这个元素不是数组x的合法元素,因此,这个表达式是错误的,本题答案应选B。至于备选答案C:分析方法和备选答案A完全相同,该表达式相当于数组元素X[0]。备选答案D:由于“++”是前缀,需要先对p进行加1,使得p指向数组元素x[1],这个元素也是数组x的合法元素。
【参考答案】B

66.下列程序段的输出是( )
char x=012,y=013;
printf("%d,%d,%d", x&y, x??y, x&&y);
A.1,0,1
B.1,0,0
C.10,1,1
D.1,1,l

【解析】首先要注意字符型变量x的初值是八进制整数,对应的二进制整数是00001010,对应的十进制整数是10;字符型变量y的初值也是八进制整数,对应的二进制整数是00001011,对应的十进制整数是11。再来计算输出语句中的三个输出表达式的值:自右向左,先计算“x&&y”,由于运算符是逻辑运算符,所以按照逻辑值的规则,x和y均为非0,运算结果是逻辑真,其值为"1”;再计算“x??y”,同样道理,x和y均为非0,运算结果是逻辑真,其值为“1”;最后计算“x&y”,注意运算符是位与,由于x值为“00001010”,而y值为。“00001011”,按照位与的运算规则,结果为"00001010",对应的十进制整数是“10”,所以输出的结果是“10,1,1”,本题答案应选C.
【参考答案】C

  返回目录 软考程序员考前练习试题及答案解析

[1]  [2]  [3]  [4]  [5]  

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取