1. 1-20的两个数把和告诉a,积告诉b,a说不知道是多少,
b也说不知道,这时a说我知道了,b接着说我也知道了,问这两个数是多少?
答案:2和3
2 爸爸,妈妈,妹妹,小强,至少两个人同一生肖的概率是多少?
1-12*11*10*9/12*12*12*12 = 1-55/96 = 41/96
3, 计算 a^b << 2
答案:
运算符优先级:括号,下标,->和.(成员)最高;
单目的比双目的高;
算术双目的比其他双目的高;
位运算 高于 关系运算;
关系运算 高于 按位运算(与,或,异或);
按位运算 高于 逻辑运算;
三目的只有一个 条件运算,低于逻辑运算;
赋值运算仅比 , (顺序运算)高。
在此题中,位左移”<<” 优先级高于按位异或”^”,所以b先左移两位(相当于乘以4),
再与a异或。
例如: 当 a = 6; b = 4 时; 则 a^b<<2 = 22
4 如何输出源文件的标题和目前执行行的行数?
答案: printf(”the file name: %d ”, __file__);
printf(”the current line no:%d ”, __line__);
ansi c标准预定义宏:
__line__
__file__
__date__
__time__
__stdc__ 当要求程序严格遵循ansi c标准时该标识符被赋值为1
__cplusplus__ 当编写c++程序时该标识符被定义
5 a[3][4]哪个不能表示 a[1][1]: *(&a[0][0]+5) *(*(a+1)+1) *(&a[1]+1) *(&a[0][
0]+4)
答案: *(&a[1]+1)
a是数组的首地址,a[1]就表示a[1][0]地址了,不用再取地址了。