1.【单选题】
int a=450;
int main()
{
int a=100;
{
int a = 999;
std::cout << a;
}
}
A.999 B.100 C.450
解析:这道题考察作用域,本身遵守就近原则,所以选A。
2.【单选题】
int a;
{
int b = 100;
}
a=b<<2;
a=?
A.100 B.400 C.以上都不对
解析:变量的生命周期离开{}大括号内就结束了,所以这段代码运行不起来,选C。
3.【单选题】
int a={0x283f};
int b=1 + a <<1 & 0x00FF | 0xF;
b=?
A 0x28 B 0x3f C 0x8f
解析:这道题考察运算符的优先级和用法,先算1 + a,然后再从左往右依次运算,结果选C。
4.【单选题】
int a=900;
int b=1200;
int c=a^b;
a^=c;
a=?
A . 900 B. 1200 C. 600
解析:a,b和c的关系如图所示,是个三角链的关系,任意两个可以得到第三个,所以a = a ^ c,a 就等于b,结果选B。
5.【单选题】
以下说法正确的是?
A. 全局变量应该多用
B. 全局变量的生命周期从变量声明开始,到程序退出
C. 全局变量不同于其他变量,可以放在使用之后
解析:选项A:全局变量占用全局区的内存,所以应该少用。选项B正确。选项C:任何变量必须在使用之前声明。
6.【单选题】
typedef mInt int;
mInt a{100};
std::cout<<typeid(mInt).name();
屏幕输出什么?
A. int B. mInt C.不能运行
解析:这道题考察typedef的用法,很明显语法错误应该这样写,typedef int mInt,结果选C。
7.【单选题】
struct CAR
{
int wheel{};
int price{};
char str{};
};
CAR carA;
carA 占用内存说法正确的是?
A 8字节 B 9字节 C12字节
解析:struct的本质是按照我们的定义申请了一块内存,一个int占4个字节,两个占8字节,如果再加上一个char类型的1个字节,结果是9字节。但实际上不是,因为内存对齐的存在,char也会占用4个字节,结果为12字节。
8.【单选题】
enum class school
{
a=100,c=102,
b, d=b,
e
};
school sc{school::e};
std::cout<<(int)sc;屏幕输出?
A. 104 B. 101 C. 103
解析:这道题考察enum的用法。枚举中的变量如果不指定具体的值,默认从逗号开始加一,所以b = 103, d = 103, e = 104,答案选A。
9.【单选题】
using std;
int a=100;
a<<=1;
cout << a ;屏幕输出的是?
A. 100 B. 200 C. 以上都不对
解析:using std;语法错误,应该这样写using namespace std; 或者 using std::cout;选C。