1.对于int *pa[5];的描述,下面叙述正确的是()
A. pa是一个指向数组的指针,所指向的数组是5个int型元素;
B. pa是一个指向某数组中第5个元素的指针,该元素是int型变量;
C. pa是一个具有5个元素的指针数组,每个元素时一个int型指针;
D. pa[5]表示某个数组的第5个元素的值;
2.下面关于数组的初始化正确的是()
A. char str[2] = {“a”, “b”};
B. char str[2][3] = {“a”, “b”};
C. char str[2][3] = {{‘a’, ‘b’}, {‘e’, ‘d’}, {‘e’, ‘f’}};
D. char str[] = {“a”, “b”};
3.下面关于多态性的描述,错误的是()
A. C++语言的多态性分为编译时的多态性和运行时的多态性
B. 编译时的多态性可通过函数重载实现
C. 运行时的多态性可通过模拟和虚函数实现
D. 实现运行时多态性的机制称为动态绑定
4.简单写出二叉树的中序遍历代码。
5.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为()
A. AB operator+(AB &a, AB &b)
B. AB operator+(AB &a)
C. operator+(Ab a)
D. AB &operator+()
6.以下代码有什么问题?如何修改?
void test3(char *str1)
{
char string[10];
if (strlen(str1) <= 10) {
strcpy(string, str1);
}
}
7.列出以下数据类型在32位和64位操作系统的vc中占多少字节。
数据类型 | 32位 | 64位 |
---|---|---|
char | ||
int | ||
long | ||
size_t |
8.假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为____。
9.c语言中操作文件的函数有哪些?何为文本文件和二进制文件?
10.写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
11.以下题目用位运算实现:
(1) 已知变量int a;求a的高2字节的值
(2) 求用位运算实现和a%16一样效果的代码
(3) 判断一个数是否为2的n次方
(4) 把int a的某位值变为0,其余值不变
12.使用递归实现一个函数,计算公式f(n) = 1 + 2 + 3 + … + n的结果。
13.new/delete 和malloc/free 有什么区别?
14.什么是平衡二叉树?什么是红黑树?红黑树的查找操作的时间复杂度是多少?
15.有关内存的思考题
1)请问运行以下Test函数会有什么样的结果?
void GetMemory(char *p)
{
p = (char *)malloc(100);
}
void Test(void)
{
char *str = NULL;
GetMemory(str);
strcpy(str, "hello world");
printf(str);
}
2)请问运行以下Test函数会有什么样的结果?
char *GetMemory(void)
{
char p[] = "hello world";
return p;
}
void Test(void)
{
char *str = NULL;
str = GetMemory();
printf(str);
}
3)请问运行以下Test函数会有什么样的结果?
void GetMemory(char **p, int num)
{
*p = (char *)malloc(num);
}
void Test(void)
{
char *str = NULL;
GetMemory(&str, 100);
strcpy(str, "hello");
printf(str);
}
4)请问运行以下Test函数会有什么样的结果?
void Test(void)
{
char *str = (char *)malloc(100);
strcpy(str, "hello");
free(str);
if (str != NULL) {
strcpy(str, "world");
printf(str);
}
}
16.定义一个链表的节点结构,并实现往一个有序的链表中插入一个元素的代码。