logo资料库

C++软件工程师笔试真题.docx

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
C++软件工程师笔试题(答题时长:1h) 姓名: 1. 编写程序一般需经过的几个步骤依次是( ) A. 编辑、调试、编译、连接 B. 编辑、编译、连接、运行 C. 编译、调试、编辑、连接 D. 编译、编辑、连接、运行 2. 在公有派生类的成员函数中不能直接访问基类中继承来的某个成员,则该成员一定是基类中的( ) A. 私有成员 C. 保护成员 B. 公有成员 D. 保护成员或私有成员 3. 一个函数功能不太复杂,但要求被频繁调用,则应把它定义为( ) A. 内联函数 C. 递归函数 B. 重载函数 D. 嵌套函数 4. 假定一个类 A 具有 int 型的成员变量 a 和 b,且它的构造函数为 A(int aa,int bb) {a=aa--;b=a*bb;}, 则执行 A x(4,5);语句后 x.a 和 x.b 的值分别为( ) B. 5 和 4 A. 3 和 15 C. 4 和 20 D. 20 和 5 5. 若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是( ) A. p1=&m; p2=&p1; B. p1=&m; p2=&n; *p1=p2; C. p1=&m; p2=p1; D. p1=&m; *p2=*p1; 6. 已知 a 为 int 类型,以下语句错误的是( ) A. a += (a++); C. (a++) += a; B. a += (++a); D. (++a) += (a++); 7. delete 和 free 作用于空指针时有何后果?( ) A. 将导致未定义行为 C. 与操作系统相关 B. 前者抛出错误,后者导致未定义行为 D. 两者均不会导致任何后果 8. 当一个派生类私有继承一个基类时,基类中的所有私有成员和保护成员成为派生类的( ) A. public 成员 C. protected 成员 B. private 成员 D. 友元 9. 假设 A 为抽象类,下列声明( )是正确的 第 1 页 共 4 页 A. A fun(int); C. int fun(A); B. A *p; D. A Obj; 10. 下列的模板说明中,正确提( ) A. template B. template C. template D. template 11. 在下列选项中( A. cin C. clog )(多选题)是 ostream 类的对象 B. cerr D. cout 12. read 函数的功能是从输入流中读取( ) A. 一个字符 C. 一行字符 B. 当前字符 D. 指定若干个字符 13. 下列选项中,用于设置基数格式以十六进制输出的语句是( ) A. cout << setf(ios::dec, ios::basefield); B. cout << setf(ios::hex, ios::basefield); C. cout << setf(ios::oct, ios::basefield); D. cin >> setf(ios::hex, ios::basefield); 14. 下列格式控制符,在 iostream 头文件中定义的是( )(多选题) A. endl B. setfill C. setw D. oct 15. 在 iomanip 头文件中定义的是( )(多选题) A. endl B. setfill C. setw D. oct 16. 包含类 fstream 定义的头文件是( ) B. ofstream.h A. fstream.h C. ifstream.h D. iostream.h 17. 要求打开文件 d:\file.dat,可写入数据,正确的语句是( ) A. ifstream infile(“d:\file.dat”, ios::in); B. ifstream infile(“d:\\file.dat”, ios::in); C. ofstream infile(“d:\file.dat”, ios::out); D. fstream infile(“d:\\file.dat”, ios::in| ios::out); 18. 假定已定义浮点型变量 data,以二进制方式把 data 的值写入输出文件流对象 outfile 中去,正确的语句是( ) A. outfile.write((float *)&data, sizeof(data)); B. outfile.write((float *)&data, data); C. outfile.write((char *)&data, sizeof(data));
D. outfile.write((char *)&data, data); 19. 对于下面的 4 个函数: 函数 1:void f(int x) (…) 函数 2:int f(int y) (…) 函数 3:int f(int i,int j) (…) 函数 4:float k(int x) (…) 其中( )是重载函数 A. 4 个全部 C. 2 和 3 B. 1 和 4 D. 3 和 4 20. 下列有关重载函数的说法中正确的是( ) A. 重载函数必须具有不同的返回值类型。 B. 重载函数参考个数必须相同 C. 重载函数必须有不同的行参列表 D. 重载函数名可以不同 21. 下列关于构造函数的描述中,错误的是( ) A. 构造函数可以设置默认的参数 C. 构造函数可以是内联函数 B. 构造函数在定义类对象的自动执行 D. 构造函数不可以重载 22. 下列描述中,表达错误的是( ) A. 公有继承的基类中的 public 成员在派生类中仍是 public 的 B. 私有继承的基类中 private 成员在派生类中仍是 private 的 C. 公有继承的基类中的 protected 成员在派生类中仍是 protected 的 D. 私有继承的基类中 public 成员在派生类中是 private 的 23. 应在下列程序画线处填入的正确语句是( ) #include class Base { public: }; void fun() { cout << ”Base.fun” << endl; } class Derived: public Base { void fun () { //显式调用基类的函数 fun() ________ cout << ”Perived::fun” << endl; } }; A. fun(); C. Base::fun(); B. Base.fun(); D. Base→fun(); 24. 下面有关 new 和 delete 操作符的说法,哪个是正确的( ) A. 使用 new 操作符,可以动态分配全局堆中的内存资源 B. 若 P 的类型已由 A 强制转换为 void*,那么执行语句 delete P*时,类 A 的析构函数不会被调用 C. 实现全局函数时,new 和 delete 通常成对地出现在由一对匹配的花括号限定的语句块中 D. 执行语句 A*P=new A[100]时,类 A 的构造函数只会被调用一次。 25. 类 A 有一个实例化的常量对象 a,那么下面说法中不正确的是( ) A. 类 A 中的非静态数据成员一定都是常量成员 B. 通过 a 可以直接调用类 A 的常量成员函数 C. a 不能直接作为右值使用 D. a 可以是静态常量对象 26. 下列哪种函数可以是虚的( ) A. 自定义的构造函数 C. 静态成员函数 B. 拷贝构造函数 D. 析构函数 27. 字符’a’的 ASCII 码是 97,则表达式 sizeof(‘a’+’b’)的值是( ) A. 1 B. 2 C. 97 D. 195 28. 下列程序段的循环次数是( ) int i = 10; do{ ++i; } while( i < 10) A. 0 次 B. 1 次 C. 10 次 D. 9 次 29. 使用操作符 setw 对数据进行格式输出时,需要包含( )文件 A. iostream.h B. fstream.h C. iomanip.h D. stdlib.h 30. 若用数组名作为函数的实参,传递给形参的是( ) A. 数组的首地址 C. 数组的全部元素的值 B. 数组的第一个元素 D. 数组元素的个数 31. C++中,下列哪个运算符是不能被重载的( ) A.“|” C.”?:” B.“=” D. 下标运算符“[]” 32. 假设 class Y: public X,即类 Y 是类 X 的派生类,则定义一个 Y 类的对象时和删除 Y 类对象时,调用构造函 数和析构函数的次序分别为( ) A. X,Y;Y,X C. Y,X;X,Y B. X,Y;X,Y D. Y,X;Y,X 33. 下列不能作为类的成员的是( ) 第 2 页 共 4 页
A. 自身类对象的指针 C. 自身类对象的引用 B. 自身类对象 D. 另一个类的对象 34. 下列类中( )(多选题)不是输入/输出流类 iostream 的派生类 A. fstream C. stringstream B. ofstream D. ostringstream 41. 一个班中有若干学员,每个学员的学号是一个整数,且是唯一的,每个学员在本学期的选修课时,也是一个 整数,现将这两种数据存储到一个 map 中,要求实现一个函数,删除其中选修课时足够的学员对应的元素(不 小于 40 个课时)。 35. 以下 STL 容器属于关联容器的是( )(多选题) C.map A. vector B.list D.set 36. 对多于一个元素的 STL 容器,删除 begin()对应的元素后,其余迭代器不会失效的容器是( )(多选题) 42. 不借助任何 C/C++库,实现在编译期检测数组长度的宏 COUNTOF。 A. vector B.list C.map D.set 37. 对于非空的 STL 容器,插入新元素后(非关联容器插入到末尾),原来 begin()获得的迭代器不会失效的容器 )(多选题) 是( A. vector B.list C.map D.set 38. 以下英文缩写对应的英文原文是什么?含义是什么? FAQ API GUI UML MVC(模型相关) SFINAE(模板相关) TCP IOCP(Windows 网络通信相关) RAII RTTI OCP(面向对象的设计原则之一) 43. 虚析构函数的作用是什么?一般什么时候使用? 44. 在 Linux 下编写无图像界面的多线程应用程序时,如何做到在用户按 Ctrl+C 后,安全的结束应用程序? 39. 想象你在镜子前,请问,为什么镜子中的影像可以颠倒左右,却不能颠倒上下? 45. Wireshark 是用来做什么的软件? 40. 如果你有无穷多的水,一个 3 公斤和一个 5 公斤的提桶,你如何准确称出 4 公斤的水? 第 3 页 共 4 页
46. 以下关键字的作用是什么? static inline explicit mutable 47. 简述以下 GCC 错误或警告信息的含义、造成该问题的原因和解决方法。 error: lvalue required as left operand of assignment error: jump to case label, crosses initialization of ‘int a’ warning: comparison between pointer and integer 48. QT 中宏 Q_OBJECT 的主要作用是? warning: passing argument 1 of 'send' makes pointer from integer without a cast 49. QT 中 moc 是用来做什么的? warning: comparison is always true due to limited range of data type warning: initialization from incompatible pointer type 50. QObject 的 event 函数和 eventFilter 函数是用来做什么的? warning: return makes pointer from integer without a cast 51. 在 QT 中宏 SLOT 和 SIGNAL 起什么作用? warning: 'return' with a value, in function returning void warning: variable ‘a’ set but not used 52. 在 QT 中如何将信号和槽关联起来?一个信号能否关联多个槽?如何引发一个信号? warning: unused parameter ‘x’ warning: suggest parentheses around assignment used as truth value 53. 在 QT 中 qss 文件是什么文件? warning: ‘p’ may be used uninitialized in this function 第 4 页 共 4 页
分享到:
收藏