C++笔试题和面试题答案(简单版)(二)
(9)下列代码的输出为(C)
[cpp] view plaincopy
int main(void)
{
int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d %d %d\n",x,y,z);
return 0;
}
A、2 3 3 B、2 3 2 C、 2 3 1 D、1 1 1
解析:x和y的值经过自增以后分别为2和3,D可以排除。剩下3个选项选择什么呢?如果是(x++,y++,++y)实际上可以看成(1,1,3)整个逗号表达式的值应该是3,那么选A。 如果是(x++,++y,y++)实际上可以看成(1,2,2)整个逗号表达式的值应该是2,那么选B。 但这是错的,这儿还有赋值运算符。赋值运算符的优先级是14,而逗号表达式的优先级是15,也就是说上面的表达式中应该等价于这样的结合:(z=x++),y++,++y;如果这样写的话,则答案很清晰,为:2,3,1
(10)下列关于不同文档格式的叙述中,错误的是
A).txt是纯文本格式,文档中仅含有文字符号的代码
B).doc是微软公司专用的Word文档格式
C).rtf是Adode公司专用的文档格式
D).html是超文本标记语言格式,Web网页通常采用该格式。
(11)当电子邮件软件从邮件服务器读取邮件时,可以使用下列哪一个(些)协议?
I、 简单邮件传输协议SMTP II、邮局协议POP3
III、交互式邮件存取协议 IMAP
A、仅I B、仅II C、仅II和III D、仅I和III
(12)在下载的普通程序中隐含了一些非法功能的代码,用于窃取用户私密信息或执行其他恶意程序,这种恶意软件的攻击方式称为()
A、特洛伊木马 B、后门陷进 C、逻辑炸弹 D、僵尸网络
13、广义表A = ((x,(a,b)),((x,(a,b)),y)) 的长度和深度为多少?
深度是最大的嵌套括号的层次,因此这样看:
( (x, (a,b) ), ( (x, (a,b) ),y) )
1 2 3 21 2 3 4 3 2 1 0
至于长度嘛,就是第一层的元素个数,因此就是2了
第一个元素是子表(x,(a,b)),第二个元素是子表((x,(a,b)),y)