1.switch语句不能嵌套使用
2.在C++中的结构体是否可以有构造函数?
答案:可以有
在C++中类和结构体的唯一区别是:默认状态下,类中的成员默认是私有的,结构体中的成员默认是公有的
C++中的结构体和C中的结构体的区别
①C++中的结构体引入了成员函数,继承,访问控制等面向对象的特性
②C中的空结构体的大小为0,C++中的空结构体和空类一样,大小是1
C++中空类的大小是1的原因:空类可以实例化成不同的对象,不同的对象在内存中的地址不同,所以隐含地加入一个字节来标识不同的对象
3.不同系统下基本类型的大小
4.下面关于 “EOF” 的叙述,正确的是?
A.EOF的值等于0
B.EOF是在库函数文件中定义的符号常量
C.文本文件和二进制文件都可以用EOF作为文件结束标志
D.对于文本文件,fgetc函数读入最后一个字符时,返回值是EOF
答案:B
A:在文本文件中数据都是以字符的 ASCII 代码值的形式存放。我们知道, ASCII 代码值的范围是 0~255 ,不可能出现 -1 ,因此可以用 EOF 作为文件结束标志
B、C:EOF在C标准函数库中表示文件结束符(end of file),在 while 循环中以 EOF 作为文件结束标志,这种以 EOF 作为文件结束标志的文件,必须是文本文件
D:fgetc函数未读取到字符时返回-1
5.程序进行编译时,不会为形参分配存储空间
6.C语言中保留字就是关键字的意思
7.请问p1+5= 什么?p2+5= 什么?
unsigned char * p1;
unsigned long * p2;
p1 = (unsigned char * )0x801000;
p2 = (unsigned long * )0x810000;
答案:801005 810014
p1指向字符型,一次移动一个字符型,1个字节;p1+5后移5个字节,16进制表示为5,所以为801005
p2指向长整型,一次移动一个长整型,4个字节,p2+5后移20字节,16进制表示为14,所以为810014
注意:char每次移动1个字节,short移动2个字节,int、long、float移动4个字节,double移动8个字节
8.多态类中的虚函数表建立在编译阶段
9.由多个源文件组成的C程序,经过编辑、预处理、编译、链接等阶段会生成最终的可执行程序,哪个阶段可以发现被调用的函数未定义?
答案:链接
①编辑阶段:创建和修改源程序
②预处理阶段:分析宏定义以及替换宏引用
③编译阶段:是把源程序翻译为与之等价的目标程序
④链接阶段:是将各个编译单元中的变量和函数引用与定义进行绑定,保证程序中的变量和函数都有对应的实体,若被调用函数未定义,就在此过程中会发现
10.外部变量可以供其所在的程序文件中的任何函数使用,这句话正确吗?
答案:错误
外部变量也就是全局变量,作用域是从定义的位置开始到到文件结束,而不是整个文件
11…h头文件中的ifndef/define/endif 的作用?
答案:防止重复定义
**12.必须作为类成员重载的运算符:①= :赋值运算符 ②( ):函数调用运算符 ③[ ]:下标运算符 ④->:通过指针访问类成员的运算符 **
13.scanf(“%2d%d%1f”,&x,&y,&z);只能获取x的值,y和z的值都获取不了,但是不会报错,打印出来是一堆随机值*
*14.scanf(“%x%d%o”,&x,&y); * 放在%与格式d(或者s,c等)之间代表 * 是scanf函数中的一种修饰符,表示忽略该输入项