码迷,mamicode.com
首页 > 编程语言 > 详细

告诉我图样图森破的两道简单C++笔试题

时间:2014-09-01 00:32:22      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:c++笔试题

今晚刷了一大堆的笔试题,中规中矩,但是有两道做得很快但是都错了的题目,印象深刻。

(要找工作的大四渣有没有共鸣,在学校明明很努力,但是总是跟不上时代,没有厉害的项目,也没有过人的竞赛成绩,内推屡屡失败,前天阿里巴巴在线笔试也被虐死,真心迷惘,唯独刷题搞笔试了。)

第一道题是关于宏定义的。

#include<iostream>
using namespace std;
#define fun(n)  (n-1)*n
int main()
{
    int x=3;
    cout<<fun(x+3+4)<<endl;
    return 0;

}
/*
A. 90
B. 34
C. 6
D. 编译出错
*/

当时我一看,难度只有一星,瞬间就3+3+4=10 ,9*10=90,果断A。

马上就错了!正确的姿势是:    (3+3+4-1)*3+3+4,这个真心觉得自己无知,无知,无知!也是个最好的错误示范,千万不要乱用宏,括号还是要打的。

另外一道题是运算符的,我还专门写过运算符的文章(虽然写的很挫...)

#include<iostream>
using namespace std;

int main()
{
    int a=0,b=4,c;
    ++a||b++;
    c=a+b;
    cout<<a<<","<<b<<","<<c<<endl;
    return 0;
}
/*
A.1,5,6
B.0,4,4
C.1,4,5
D.编译出错
*/


当时我瞬间就选了A了,马上就X了,瞬间就觉悟到自己的脑残了。

因为 ++a后,a转换为1,为真值,++a||b++为真,不执行b++。最后的结果就是1,4,5。



丧心病狂的题目(我自己加的,如果真实中这么编程,估计被骂死。)

#include<iostream>
using namespace std;
void fun(int a,int b,int c){
    ++a||b++;
    c=a+b;
    cout<<a<<" "<<b<<" "<<c<<endl;

}
int main()
{
    fun(0,4,0);
    fun(-1,4,0);
    fun(-2,4,0);
    fun(1LL<<32,4,0);
    fun(1LL<<32-1,4,0);


}
不要问我答案什么,我不会告诉你答案是

1 4 5
0 5 5
-1 4 3
1 4 5
-2147483647 4 -2147483643

绝不,哼╭(╯^╰)╮。

告诉我图样图森破的两道简单C++笔试题

标签:c++笔试题

原文地址:http://blog.csdn.net/dengyaolongacmblog/article/details/38964793

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!