标签:style blog http color strong os
本文似乎都是问题,意在引起思考,回忆,主题是运算符,另外这些问题是没有特别的逻辑上的关系,只是我想到的就问了,虽然是随便问,但是你能不能随便答呢?。
运算符,我们在每一个程序中都会用到,也是最最基础的基本功,本系列C/C++基础笔试题等,是没有纲要,没有规律的一系列博文。
为什么这样子,因为作者是渣阿,他只能学一点说一点,力求通俗阿,傻瓜但不失主线阿。
1.0写的是字节对齐,没看过有兴趣的朋友可以戳这里。1.1写的是与运算符相关的内容,你最“熟悉”的“朋友”。
首先,我想先问大家几个问题?
1.你脑海中的运算符有哪些,按优先级排个序?
2.malloc/free 和 new/delete的区别?(我没有跑题!)
3.让你来写一个重载函数++i,i++,你怎么写?
来到这里,可能你还是喜欢读程序吧。
4.来看个程序
#include<iostream>
using namespace std;
int main(){
int x=3;
cout<<x+x%2==1<<endl;
return 0;
}
看看这个程序输出结果跟你想的一样不一样?被坑了吗?
5.再来看一个?跟你想的又一样不一样?
#include<iostream>
using namespace std;
int main(){
int x=3;
cout<<((x+x%2)==1)<<endl;
cout<<(x+(x%2==1))<<endl;
return 0;
}
如果你一直错, 或者基本错的话,那么,你就跟我一样悲剧了。另外,这些题目在哪里来的?其实是我在刷ACM的时候犯的一些小错。放这种题目,其实,我只是想引出优先级。
6.来个难一点的,感觉一下逗号和括号的恶心?
#include<iostream>
using namespace std;
void fun0(int x,int y ,int z){
cout<<x<<" "<<y<<" "<<z<<endl;
int a=2,b=3,c=7;
x=a*b,c;
y=(a*b+z,z=c);
cout<<x<<" "<<y<<" "<<z<<endl;
}
void fun1(int x,int y,int z){
cout<<x<<" "<<y<<" "<<z<<endl;
int a=2,b=3,c=7;
y=(x=a+b+z),(z=b+c);
cout<<x<<" "<<y<<" "<<z<<endl;
}
void fun2(int x,int y,int z){
cout<<x<<" "<<y<<" "<<z<<endl;
int a=2,b=3,c=7;
y=((x=a+b+z),(z=b+c));
cout<<x<<" "<<y<<" "<<z<<endl;
}
int main(){
int x,y,z;
fun0(x,y,z);
fun1(x,y,z);
fun2(x,y,z);
}
现在想想,还是做前面几个题目比较和谐。
为了和谐,我还是问一些YES OR NO的问题?
7.我们用%来做余运算,%只能应用于正整数对吗?
8.域运算符::我们常常用到,请问::可以重载吗?
9.运算符重载作为非成员函数重载时必须定义为友元函数?
10. 运算符必须是符号吗?(即只能是+,-,*,/,::之类的吗?)
如果你觉得我问的问题很无理取闹的话,额,的确是的,如果你对细节不追求,是很无理取闹的。(其实是你对基础功不追求)
对于上述十个问题,你有想法可以在评论中提出,好让其他朋友看到一起探究。
至于所谓的解释和标准答案,我会在1.1.2中提到,而1.1.2什么时候出来呢?估计明天或者后天吧?因为我在实习,需求改了,所以很烦呢!哎...暂时确定不下来。
C/C++基础笔试题1.1.1(运算符十问),布布扣,bubuko.com
标签:style blog http color strong os
原文地址:http://blog.csdn.net/dengyaolongacmblog/article/details/37740581