2009年华为软件设计大赛试卷

上传人:F****n 文档编号:97482874 上传时间:2019-09-04 格式:DOC 页数:7 大小:21KB
返回 下载 相关 举报
2009年华为软件设计大赛试卷_第1页
第1页 / 共7页
2009年华为软件设计大赛试卷_第2页
第2页 / 共7页
2009年华为软件设计大赛试卷_第3页
第3页 / 共7页
2009年华为软件设计大赛试卷_第4页
第4页 / 共7页
2009年华为软件设计大赛试卷_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《2009年华为软件设计大赛试卷》由会员分享,可在线阅读,更多相关《2009年华为软件设计大赛试卷(7页珍藏版)》请在金锄头文库上搜索。

1、类别:软件C+ 注意:如对考试题目有任何疑问,请举手与现场监考人员联系,监考人员会协助跟出题人员 澄清疑问) 所有答案写答题纸上,写试卷纸上无效。详见考试说明 第一部分:客观题 客观题部分,共30分,建议这部分答题用40分钟。 一、 单选题 (每题1分,共10题) 1、 下列那种不是任务间通讯的方式_ A)信号量 B)消息队列 C)共享内存 D)中断 2、 以下叙述中不正确的是_ A)在不同的函数中可以使用相同名字的变量 B)函数中的形式参数是局部变量 C)在一个函数内定义的变量只在本函数范围内有效 D)在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对括 号构成的代

2、码) 3、 若整型变量a的值为50,则c语言表达式a2的值为_ A)50 B) 25 C) 12.5 D) 12 4、 下面方法中,哪一个不能很好解决死锁问题?_ A) 给每一个进程不同的优先级,并按照优先级的大小决定在资源队列中的顺序。 B) 让进程开始运行时获得全部的资源,在不能获得全部资源时重新启动。 C) 给资源编号,并要求进程按照编号的顺序申请资源。 D) 提供超时机制,在进程进入资源等待后一段随机时间内重起进程。 5、 下面的程序是对二叉树的前序遍历,请写出下面空格中的语句_ 其中,Visit函数表示访问节点数据。 void PreOrder(BinaryTreeNode *t)

3、/ 对* t进行前序遍历 if (t) (_1_); (_2_); (_3_); A) PreOrder(t-LeftChild) Visit(t) PreOrder(t-RightChild) B) PreOrder(t-LeftChild) PreOrder(t-RightChild) Visit(t) C) Visit(t) PreOrder(t-RightChild) PreOrder(t-LeftChild) D) Visit(t) PreOrder(t-LeftChild) PreOrder(t-RightChild) 6、 已知int a=10,9,8,7,6; int *p =

4、 a;则(*(p+1)*(p+2)2的值是_ A)72 B)80 C)54 D)有语法错误 7、 下面关于new 和delete操作符的说法,哪个是不正确的_ A)使用new操作符,可以动态分配全局堆中的内存资源 B)若p的类型已由A*强制转换为void *,那么执行语句delete p;时,类A的析构函数不会 被调用 C)new和delete通常成对地使用 D)执行语句A * p=new A100;时,类A的构造函数只会被调用1次 8、 如下代码,正确的是_ class CExample public: static void Func( void* pobj ); private: cha

5、r m_cTest; ; A) void CExamle:Func( void* pobj ) m_cTest = ( char )0; B) 在Func内部不能访问类的私有成员m_cTest; C) void CExample:Func( void* pobj ) CExample *pThis; pThis = dynamic_cast( pobj ); ASSERT( NULL != pThis ); pThis-m_cTest = ( char )0; D) void CExample:Func( void* pobj ) CExample:m_cTest = ( char )0; 9

6、、 对于下面的类CA,在32位计算机、4字节对齐的情况下,sizeof(CA) = _ class CA public: CA(); virtual CA(); private: int m_iTime; public: int GetTime(); int SetTime(int iTime); ; A)16 B)12 C)8 D)4 10、 对于下面的代码,描述正确的是_ class A public: virtual void test(); ; class B: public A public: void test(); . ; class C: public B public: vo

7、id test(); . ; A) B类的test函数是虚函数,而C类的也是 B) B类的test函数不是虚函数,C类的是 C) B类的test函数是虚函数,而C类的不是 D) C类的test函数不是虚函数 二、 多选题 (每题2分,共10题,少选可得1分) 11、 关于变量定义,下列说法正确的有_ A)公共变量是增大模块间耦合的原因之一,故应减少没必要的公共变量以降低模块间的耦 合度 B)命名中若使用特殊约定或缩写,则要有注释说明 C)变量名的命名要清晰、明了,有明确含义 D)除非必要,不要用数字或较奇怪的字符来定义标识符 12、 请找出以下程序中的错误,不考虑命名规范和排版的问题_ lon

8、g strlen(char *p ) ASSERT(p); long i = 0; while (*p) i+; p+; return i; ShowErrMsg(char *msg) int nCount = 1; A if (msg = NULL) return; char *pBuf = (char *)malloc(256); B if (pBuf = NULL) return; if ( strlen(msg) 256 ) strncpy(pBuf, msg, 256); pBuf256 = 0; else strcpy( pBuf, msg); C printf( No. %d:

9、This message is: %sn, nCount, pBuf ); nCount+; pBuf = NULL; D 13、 下列代码中对const关键字的使用是正确并有意义的_ class SomeClass private: int m_nValue; char* m_pszName; public: SomeClass(int id); int GetValue() const; /- A void SetValue(const int value); /- B const char* GetName(); /- C void SetName(const char* pszName

10、); /- D void DoSomething(char* const p); /- E 14、 多任务系统中,任务所具有的基本状态有_ A)就绪 B)执行 C)阻塞 D)挂起 15、 下列说明哪些是正确的_ A)一个类必须至少提供一个构造函数 B)缺省构造函数是指不用指定任何实参就能被调用的构造函数,这并不意味着它不能接受 实参 C)父类的构造函数肯定在子类的构造函数之前被调用 D)如果一个类不显式地提供缺省构造函数则编译器会自动生成一个以初始化其数据成员 E)子类的析构函数中要调用父类的析构函数以确保父类的成员被释放 F)构造和析构函数中不应该调用虚函数 16、 在一个老版本代码中已经声

11、明了myfunc函数:int myfunc(int a,double b),小李在 开发新版本时增加了如下几个函数声明,请问哪些不是对老版本函数的重载声明_ A)int myfunc(int c, double d) B)int myfunc(int a,double b=0.5) C)double myfunc(int , double ) D)int myfunc(double b,int a) 17、 类B的析构函数不为virtual,类D是类B的子类,并且是public继承的,B和D都定义了 缺省的构造函数,下面正确代码段有_ A)B* pb = new B;delete pb; B)

12、D* pd = new D;delete pd; C)B* pb = new D;delete pb; D)D d;B* pb = &d; 18、 假定类CA的声明如下, 下面哪些语句声明了a是CA的对象_ class CA public: CA (); CA (int iValue); . . ; A)CA a; B)CA a(); C)CA a(100); D)CA a = 100; 19、 下面关于指针和引用的说法正确的是_ A)指针变量存放的是内存地址,并且可以置为0 B)定义引用变量时,必须同时指明具体被引用的对象或变量 C)使用取地址操作符,可以取得指针变量自身的地址,但取不到引用变量自身的地址 D)类中的数据成员可以是指针变量,但不能是引用变量 20、 下列代码中正确的有_ A)char* p = malloc(100); free(p); B)char* p = malloc(100); delete p; C)char* p = new char100; delete p; D)char* p = new char100; delete p; E)char p100; delete p; F)char p100; delete p100; 三、 编程题(共2题,第1题4

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号