C/C++专项练习 (二)
2015-10-25 13:44
357 查看
1.若有以下程序
则程序的输出结果是?
9
1
8
5
答案:A
主要考察函数的递归调用
2.关于函数模板,描述错误的是?
函数模板必须由程序员实例化为可执行的函数模板
函数模板的实例化由编译器实现
一个类定义中,只要有一个函数模板,则这个类是类模板
类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化
答案:A
函数模板是 编译器 按照程序员的要求 实例化为函数
3.下面有关malloc和new,说法错误的是?
new 建立的是一个对象, malloc分配的是一块内存.
new 初始化对象,调用对象的构造函数,对应的delete调用相应的析构函数,malloc仅仅分配内存,free仅仅回收内存
new和malloc都是保留字,不需要头文件支持
new和malloc都可用于申请动态内存,new是一个操作符,malloc是是一个函数
答案: C
new和delete是保留字,而malloc和free需要头文件支持
4.以下程序的结果?
1,2,3
1,3,2
2,1,3
3,2,1
答案:B
经典水题,函数foo()的功能是交换a和b的值
5.两个等价线程并发的执行下列程序,a为全局变量,初始为0,假设printf、++、--操作都是原子性的,则输出肯定不是哪个?
0 1
1 0
1 2
2 2
答案:A
os学的太烂,这个题不会,下去要恶补啊!!
6.以下哪些对象可用于Windows进程间通信?
事件
临界区
互斥量
共享内存
答案: D
进程间通信方法有:文件映射、共享内存、匿名管道、命名管道、邮件槽、剪切板、动态数据交换、对象连接与嵌入、动态连接库、远程过程调用等
7.下面对静态数据成员的描述中,正确的是?
静态数据成员可以在类体内进行初始化
静态数据成员不可以被类的对象调用
静态数据成员不受private控制符的作用
静态数据成员可以直接用类名调用
答案:D
A: const修饰的静态成员可以在类体内初始化 (有些编译器会错误的不允许)
B:可以调用,但要注意的是,所有对象调用的都是同一个静态成员
C:类中所有成员变量都受private、public限制
8.若char是一字节,int是4字节,指针类型是4字节,代码如下:
问:
(1)若按4字节对齐sizeof(CTest)的值是多少?
(2)若按1字节对齐sizeof(CTest)的值是多少?
请选择正确的答案。
16 4
16 10
12 9
10 10
答案:C
碰到过好几次了。。。
9.定义一个函数指针,指向的函数有两个int形参并且返回一个函数指针,返回的指针指向一个有一个int形参且返回int的函数?
int (*(*F)(int, int))(int)
int (*F)(int, int)
int (*(*F)(int, int))
*(*F)(int, int)(int)
答案:A
分2步来做,第1步,“指向的函数有两个int形参并且返回一个函数指针”,可得到 (*F)(int,
int)
第2步,“返回的指针指向一个有一个int形参且返回int的函数”,将(*F)(int,int)作为一个指针,可知 int
(*(*F)(int, int))(int)符合要求
10.如下程序用于输出“Welcome to Huawei Test”,请指出其中的两处错误。
1
2
3
4
答案:A B
A:strlen()函数和sizeof()的区别在于,前者不包含结束符'\0'
B:应该先释放,再退出
#include <stdio.h> int f(int a[ ],int n) { if(n > 1) { int t; t=f(a, n-1); return t > a[ n -1 ] ? t:a[n-1]; } else return a[0]; } main() { int a[ ]= {8,2,9,1,3,6,4,7,5}; printf("%d\n", f(a, 9)); }
则程序的输出结果是?
9
1
8
5
答案:A
主要考察函数的递归调用
2.关于函数模板,描述错误的是?
函数模板必须由程序员实例化为可执行的函数模板
函数模板的实例化由编译器实现
一个类定义中,只要有一个函数模板,则这个类是类模板
类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化
答案:A
函数模板是 编译器 按照程序员的要求 实例化为函数
3.下面有关malloc和new,说法错误的是?
new 建立的是一个对象, malloc分配的是一块内存.
new 初始化对象,调用对象的构造函数,对应的delete调用相应的析构函数,malloc仅仅分配内存,free仅仅回收内存
new和malloc都是保留字,不需要头文件支持
new和malloc都可用于申请动态内存,new是一个操作符,malloc是是一个函数
答案: C
new和delete是保留字,而malloc和free需要头文件支持
4.以下程序的结果?
void foo(int *a, int *b) { *a = *a + *b; *b = *a - *b; *a = *a - *b; } void main() { int a = 1, b = 2, c = 3; foo(&a, &b); foo(&b, &c); foo(&c, &a); printf("%d, %d, %d", a, b, c); }
1,2,3
1,3,2
2,1,3
3,2,1
答案:B
经典水题,函数foo()的功能是交换a和b的值
5.两个等价线程并发的执行下列程序,a为全局变量,初始为0,假设printf、++、--操作都是原子性的,则输出肯定不是哪个?
void foo() { if(a <= 0) { a++; } else { a--; } printf("%d", a); }
0 1
1 0
1 2
2 2
答案:A
os学的太烂,这个题不会,下去要恶补啊!!
6.以下哪些对象可用于Windows进程间通信?
事件
临界区
互斥量
共享内存
答案: D
进程间通信方法有:文件映射、共享内存、匿名管道、命名管道、邮件槽、剪切板、动态数据交换、对象连接与嵌入、动态连接库、远程过程调用等
7.下面对静态数据成员的描述中,正确的是?
静态数据成员可以在类体内进行初始化
静态数据成员不可以被类的对象调用
静态数据成员不受private控制符的作用
静态数据成员可以直接用类名调用
答案:D
A: const修饰的静态成员可以在类体内初始化 (有些编译器会错误的不允许)
B:可以调用,但要注意的是,所有对象调用的都是同一个静态成员
C:类中所有成员变量都受private、public限制
8.若char是一字节,int是4字节,指针类型是4字节,代码如下:
class CTest { public: CTest():m_chData(‘\0’),m_nData(0) { } virtual void mem_fun(){} private: char m_chData; int m_nData; static char s_chData; }; char CTest::s_chData=’\0’;
问:
(1)若按4字节对齐sizeof(CTest)的值是多少?
(2)若按1字节对齐sizeof(CTest)的值是多少?
请选择正确的答案。
16 4
16 10
12 9
10 10
答案:C
碰到过好几次了。。。
9.定义一个函数指针,指向的函数有两个int形参并且返回一个函数指针,返回的指针指向一个有一个int形参且返回int的函数?
int (*(*F)(int, int))(int)
int (*F)(int, int)
int (*(*F)(int, int))
*(*F)(int, int)(int)
答案:A
分2步来做,第1步,“指向的函数有两个int形参并且返回一个函数指针”,可得到 (*F)(int,
int)
第2步,“返回的指针指向一个有一个int形参且返回int的函数”,将(*F)(int,int)作为一个指针,可知 int
(*(*F)(int, int))(int)符合要求
10.如下程序用于输出“Welcome to Huawei Test”,请指出其中的两处错误。
char * GetWelcome(void){ char * pcWelcome; char * pcNewWelcome; pcWelcome="Welcome to Huawei Test"; pcNewWelcome=(char *)malloc(strlen(pcWelcome)); //1 if(NULL==pcNewWelcome){ return NULL; //2 free(pcNewWelcome); } strcpy(pcNewWelcome, pcWelcome); //3 return pcNewWelcome; //4 }
1
2
3
4
答案:A B
A:strlen()函数和sizeof()的区别在于,前者不包含结束符'\0'
B:应该先释放,再退出
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性
- C++ Custom Control控件向父窗体发送对应的消息