1、赋值语句:下面程序的输出结果是什么?
#include<iostream>
using namespace std;
int func(int x) {
int count = 0;
while (x) {
count++;
x = x&(x - 1);
}
return count;
}
int main() {
cout << func(9999) << endl;
//使得dos界面不闪屏
int in;
cin >> in;
return 0;
}
解答:本题func函数返回值是形参x转换成二进制后包含1的数量。
输出:8 (9999:10011100001111)
2、编程风格
if ('A' == a) {//写法1
a++;
}
if (a == 'A') {//写法2
a++;
}
for (i = 0; i < 8; i++) {//写法3
x = i + Y + J * 7;
printf("%d",x);
}
S = Y + J * 7;//写法4
for (i = 0; i < 8; i++) {
printf("%d", i+s);
}
解析:
3、运算符的问题
#include<iostream>
using namespace std;
int main() {
unsigned char a = 0xA5;
unsigned char b = ~a >> 4 + 1;
cout << b;
//使得dos界面不闪屏
int in;
cin >> in;
return 0;
}
4、a、b交换与比较
A:找出两个数中间比较大的,不用if、switch
int max = ((a+b)+abs(a-b))/2;
B:找出三个整数a、b、c三个数的中间数,不可以使用sort
#include<iostream>
using namespace std;
inline int max(int a, int b) { return a >= b ? a : b; }
inline int min(int a, int b) { return a <= b ? a : b; }
inline int medium(int a, int b, int c) {
int t1 = max(a, b);
int t2 = max(b, c);
int t3 = max(a, c);
return min(t1, min(t2, t3));
}
int main() {
cout << medium(4,19,10);
//使得dos界面不闪屏
int in;
cin >> in;
return 0;
}
5、C和C++的关系:
A、C++语言支持函数重载,C语言不支持函数重载
B、函数被C++编译后在库中的名字和C语言的不同
C、C++提供了C连接指定符extern “C”,解决名字不匹配的问题