




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一. 单选题(每题4分,15题,共60分)1.考虑函数原型void hello(int a,int b=7,char* pszC=*),下面的函数调用钟,属于不合法调用的是:CA hello(5) B.hello(5,8) C.hello(6,#) D.hello(0,0,#)2.下面有关重载函数的说法中正确的是:C A.重载函数必须具有不同的返回值类型 B.重载函数形参个数必须不同 C.重载函数必须有不同的形参列表 D.重载函数名可以不同重载:必须同名函数;必须参数表不同(包含参数个数不同;参数类型不同;或参数个数与类型都不同)3.分析一下程序的运行结果:C#includeclass CBasepublic:CBase()cout”constructing CBase class”endl;CBase()cout”destructing CBase class”endl;class CSub : public CBasepublic:CSub()cout”constructing CSub class”endl;CSub()cout”destructing CSub class”endl;void main() CSub obj;A. constructing CSub class B. constructing CBase class constructing CBase class constructing CSub class destructing CSub class destructing CBase class destructing CBase class destructing CSub classC. constructing CBase class constructing CSub class destructing CSub class destructing CBase class D. constructing CSub class constructing CBase class destructing CBase class destructing CSub class子类对象生成时:先调用父类的构造函数,然后在调用子类的构造函数; 析构时相反4.在一个cpp文件里面,定义了一个static类型的全局变量,下面一个正确的描述是:A.只能在该cpp所在的编译模块中使用该变量B.该变量的值是不可改变的C.该变量不能在类的成员函数中引用D.这种变量只能是基本类型(如int,char)不能是C+类型Static全局变量和普通全局变量:针对:一个工程里有多个cpp文件时相同点:存储方式相同,都是静态存储;不同点:作用域不同。普通全局变量-作用域是整个源程序(含有多个源文件),在各个源文件中都有效Static全局变量-作用域是当前源文件5.观察下面一段代码:class ClassApublic:virtual ClassA();virtual void FunctionA();class ClassBpublic: virtual void FunctionB();class ClassC : public ClassA,public ClassBpublic:; ClassC aObject;ClassA* pA=&aObject;ClassB* pB=&aObject;ClassC* pC=&aObject;关于pA,pB,pC的取值,下面的描述中正确的是:A.pA,pB,pC的取值相同. B.pC=pA+pBC.pA和pB不相同 D.pC不等于pA也不等于pB6.参照1.5的代码,假设定义了ClassA* pA2,下面正确的代码是:A.pA2=static_cast(pB);B.void* pVoid=static_cast(pB); pA2=static_cast(pVoid);C.pA2=pB;D.pA2=static_cast(static_cast(pB);7.参照1.5的代码,下面那一个语句是不安全的: A.delete pA B.delete pB C.delete pC删除那个都有错误,编译是无错误,运行是有错误8.下列程序的运行结果为:#includevoid main()int a=2;int b=+a;couta/6endl; A.0.5 B.0 C0.7 D.0.66666669.有如下一段代码:#define ADD(x,y) x+yint m=3;m+=m*ADD(m,m); /展开后为m=m+m*m+m=3+3*3+3则m的值为: A.15 B.12 C.18 D.5810.如下是一个带权的图,图中结点A到结点D的关键路径的长度是:A.13 B.15 C.28 D.5811.下面的模板声明中,正确的是:A.template /改为templateB.templateC.templateD.template/分号改为逗号12.在Windows编程中下面的说法正确的是:A.两个窗口,他们的窗口句柄可以是相同的 B.两个窗口,他们的处理函数可以是相同的C.两个窗口,他们的窗口句柄和窗口处理函数都不可以相同.13.下面哪种情况下,B不能隐式转换为A?A.class B:public A B.class A:public BC.class Boperator A(); D.class AA(const B&);14.某公司使用包过滤防火墙控制进出公司局域网的数据,在不考虑使用代理服务器的情况下,下面描述错误的是”该防火墙能够( )”.A.使公司员工只能访问Internet上与其业务联系的公司的IP地址.B.仅允许HTTP协议通过,不允许其他协议通过,例如TCP/UDP.C.使员工不能直接访问FTP服务器端口号为21的FTP地址.D.仅允许公司中具有某些特定IP地址的计算机可以访问外部网络15.数字字符0的ASCII值为48,若有以下程序:main() char a=1,b=2;printf(“%c,”,b+);printf(“%dn”,b-a);程序运行之后的输出结果是:A.3,2 B.50,2 C.2,2 D.2,50二. 填空题(共40分)本程序从正文文件text.in读入一篇英文短文,统计该短文中不同单词和它的出现次数,并按词典编辑顺序将单词及它的出现次数输出到正文文件word.out中.程序用一棵有序二叉树存储这些单词及其出现的次数,一边读入一边建立.然后中序遍历该二叉树,将遍历经过的二叉树上的节点的内容输出.程序中的外部函数int getword(FILE* pFile,char* pszWordBuffer,int nBufferLen);从与pFile所对应的文件中读取单词置入pszWordBuffer,并返回1;若单词遇文件尾,已无单词可读时,则返回0.#include #include #include #include #define SOURCE_FILE text.in#define OUTPUT_FILE word.out#define MAX_WORD_LEN 128 typedef struct treenode char szWordMAX_WORD_LEN; int nCount; struct treenode* pLeft; struct treenode* pRight;BNODE; int getword(FILE* pFile,char* pasWordBuffer,int nBufferLen); void binary_tree(BNODE* ppNode,char* pszWord) if(ppNode != NULL & pszWord != NULL) BNODE* pCurrentNode = NULL; BNODE* pMemoNode = NULL; int nStrCmpRes=0; _(1)_;pCurrentNode=*ppNode while(pCurrentNode) /*寻找插入位置*/ nStrCmpRes = strcmp(pszWord, _(2)_ );pCurrentNode-nCount if(!nStrCmpRes) _(3)_; pCurrentNode-nCount+ return; else _(4)_; pMemoNode=pCurrentNode pCurrentNode = nStrCmpRes0? pCurrentNode-pRight : pCurrentNode-pLeft; pCurrent=new BNODE; if(pCurrentNode != NULL) memset(pCurrentNode,0,sizeof(BNODE); strncpy(pCurrentNode-szWord,pszWord,MAX_WORD_LEN-1); pCurrentNode-nCount=1; if(pMemoNode=NULL) _(5)_; *ppNode= pCurrentNode else if(nStrCmpRes0) pMemoNode-pRight=pCurrentNode; else pMemoNode-pLeft=pCurrentNode; void midorder(FILE* pFile,BNODE* pNode) if(_(6)_) return;!pNode|!pFile midorder(pFile,pNode-pLeft); fprintf(pFile,%s %dn,pNode-szWord,pNode-nCount); midorder(pFile,pNode-pRight); void main() FILE* pFile=NULL; BNODE* pRootNode=NULL; char szWordMAX_WORD_LEN=0; pFile=fopen(SOURCE_FILE,r); if(pFile=NULL) printf(Cant open file %sn,SOURCE_FILE); return; while(getword(pFile,szWord,MAX_WORD_LEN)=1) binary_tree(_(7)_);/ pRootNode,szWord fclose(pFile); pFile=fopen(OUTPUT_FILE,w); midorder(pFile,pRootNode); fclose(pFile);三. 附加题(每题30分,2题,共60分)1. 从程序健壮性进行分析,下面的FillUserInfo函数和Main函数分别存在什么问题?#include #include #define MAX_NAME_LEN 20 struct USERINFO int nAge; char szNameMAX_NAME_LEN; void FillUserInfo(USERINFO* parUserInfo) stu:coutnCount; for(int i=0;inCount;i+) std:coutparUserInfoi-nAge; std:string strName; std:coutstrName; strcpy(parUserInfoi.szName,strName.c_str(); int main(int argc,char* argv) USERINFO arUserInfos100=0; FillUserInfo(arUserInfos); printf(The first name is:); printf(arUserInfos0.szName); printf(n); return 0;2. 假设你在编写一个使用多线程技术的程序,当程序中止运行时,需要怎样一个机制来安全有效的中止所有的线程?请描述其具体流程.-一、单项选择1、向单链表插入节点;2、排序的稳定性比较;3、带头节点的单链表的判空条件;4、二叉树的节点总数的计算;5、递归向非递归的转化使用什么?队列,还是栈;6、中断响应时间的定义;7、面向对象程序设计语言不同于其他语言的主要特点;二、填空题1、正弦函数用泰勒展开式来计算: 下面的流程图描述了利用上述展开式计算并打印sinx的近似值的过程,其中e(0)表示误差要求,小于该误差就可以结束计算,打印结果,请填写流程图中的空格部分。图略2、双循环链表的排序问题;应该比较简单,相信你们能够搞定!三、附加题 “背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N个物件,其重量分别为W1,W2, , Wn , 希望从N件物品中选择若干物品,所选择的物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。递归和非递归解法都可以求得“背包问题”的一组解,试写出“背包问题”的非递归解法。1 计算 ab 2 (运算符优先级问题) 2 根据先序中序求后序 3 a34哪个不能表示 a11: *(&a00) *(*(a+1)+1) *(&a1+1) *(&a00+4) 4 for(int i.) for(int j.) printf(i,j); printf(j) 会出现什么问题 5 for(i=0;i -123 main() . if( *string = - ) n = _1_; else n = num(string); . int num(char* string) for(;!(*string=0);string+) int k; k = _2_; j = -sLen; while(_3_) k = k * 10; num = num + k; return num; 附加题: 1 linux下调试core的命令,察看堆栈状态命令 2 写出socks套接字 服务端 客户端 通讯程序 3 填空补全程序,按照我的理解是添入:win32调入dll的函数名查找函数入口的函数名 找到函数的调用形式 把formView加到singledoc的声明 将singledoc加到app的声明 4 有关系 s(sno,sname) c(cno,cname) sc(sno,cno,grade) 1 问上课程 db的学生no 2 成绩最高的学生号 3 每科大于90分的人数-题目:给定一个数,假设其各位数之和能被9整除,证明这个数可以被9整除。令数N表示为A1A2An,已知Sigma(Ai)(i=1,2,n)%9=0为真,证明N%9=0为真。N%9 = (A1*10(n-1)+A2*10(n-2)+.+An*100)%9写到这一步的时候,你会注意到一个非常重要的结论:10i%9=1恒为真。故而 N%9 = Sigma(Ai)%9,又已知Sigma(Ai)%9=0为真,N%9=0得证。1. 1-20的两个数把和告诉A,积告诉B,A说不知道是多少,B也说不知道,这时A说我知道了,B接着说我也知道了,问这两个数是多少?答案:2和32 爸爸,妈妈,妹妹,小强,至少两个人同一生肖的概率是多少?1-12*11*10*9/12*12*12*12 = 1-55/96 = 41/963, 计算 ab 和.(成员)最高;单目的比双目的高;算术双目的比其他双目的高;位运算 高于 关系运算;关系运算 高于 按位运算(与,或,异或);按位运算 高于 逻辑运算;三目的只有一个 条件运算,低于逻辑运算;赋值运算仅比 , (顺序运算)高。在此题中,位左移” 优先级高于按位异或”,所以b先左移两位(相当于乘以4),再与a异或。例如: 当 a = 6; b = 4 时; 则 ab2 = 224 如何输出源文件的标题和目前执行行的行数?答案: printf(”The file name: %dn”, _FILE_);printf(”The current line No:%dn”, _LINE_);ANSI C标准预定义宏:_LINE_FILE_DATE_TIME_STDC_ 当要求程序严格遵循ANSI C标准时该标识符被赋值为1_cplusplus_ 当编写C+程序时该标识符被定义5 a34哪个不能表示 a11: *(&a00+5) *(*(a+1)+1) *(&a1+1) *(&a00+4)答案: *(&a1+1)a是数组的首地址,a1就表示a10地址了,不用再取地址了。6 fun(exp1,exp2),(exp3,exp4,exp5)有几个实参?答案:两个。形式参数:在声明和定义函数时,写在函数名后的括号中的参数。实参是调用参数中的变量,行参是被调用函数中的变量。7. 希尔 冒泡 快速 插入 哪个平均速度最快?答案:快速排序快速排序、归并排序和基数排序在不同情况下都是最快最有用的。8. enum的声明方式答案:enum 枚举类型名 枚举常量1,枚举常量2,枚举常量n;For example:enum weekday sunday, monday, tuesday, wednesday, thursday, friday, saturday;enum weekday week_day;/week_day 就是一个枚举类型变量9. 频繁的插入删除操作使用什么结构比较合适,链表还是数组?答案:链表10. *p=NULL *p=new char100 sizeof(p)各为多少?答案:都为4。因为都是指针类型,所占存储空间必然为4。11. 顺序查找的平均时间答案:(1+2+3+n)/n = (n+1)/212. for(i=0,sum=0; i=0.000001 & x(4) insert into tableQQ values(5555,1234);该信息出自应届毕业生求职网YJBYS.COM:/删除表(5)drop table tableQQ;2. 有关系 s(sno,sname) c(cno,cname) sc(sno,cno,grade)1 问上课程 “db”的学生2 成绩最高的学生号3 每科大于90分的人数答案:(1)select s.sno, amefrom s, c, scwhere s.sno = sc.sno and o = o and ame = db;(2)select sno, max(grade)from sc group by sno;(3)select cno, count(sno) from sc where grade 90 group by cno;*=操作系统 网络=1. 描述实时系统的基本特性答案:在特定时间内完成特定的任务,实时性与可靠性。2. Internet采用哪种网络协议?该协议的主要层次结构?答案:TCP/IP协议。应用层、传输层、网络层、数据链路层和物理层。3. Internet物理地址和IP地址转换采用什么协议?答案:地址解析协议ARP address resolution protocol4. IP地址的编码分为哪俩部分?答案:网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。10 二分查找是 顺序存储 链存储 按value有序中的哪些大题:1 把字符串转换为小写,不成功返回NULL,成功返回新串char* toLower(char* sSrcStr)char* sDest= NULL;if( _1_)int j;sLen = strlen(sSrcStr);sDest = new _2_;if(*sDest = NULL)return NULL;sDestsLen = 0;while(_3_)sDestsLen = toLowerChar(sSrcStrsLen);return sDest;2 把字符串转换为整数 例如:”-123 - -123main().if( *string = - )n = _1_;elsen = num(string);.int num(char* string)for(;!(*string=0);string+)int k;k = _2_;j = sLen;while( _3_)k = k * 10;num = num + k;return num;附加题:1 linux下调试core的命令,察看堆栈状态命令2 写出socks套接字 服务端 客户端 通讯程序3 填空补全程序,按照我的理解是添入:win32调入dll的函数名查找函数入口的函数名 找到函数的调用形式把formView加到singledoc的声明 将singledoc加到app的声明#define Max(a,b) ( a/b)?a:b写一个病毒while (1)int *p = new int10000000;不使用额外空间,将 A,B两链表的元素交叉归并将树序列化 转存在数组或 链表中struct stint i;short s;char c;sizeof(struct st);答案:8char * p1;void * p2;int *p3;char p410;sizeof(p1p4) =?答案:4,4,4,10二分查找快速排序双向链表的删除结点有12个小球,外形相同,其中一个小球的质量与其他11个不同给一个天平,问如何用3次把这个小球找出来并且求出这个小球是比其他的轻还是重该信息出自应届毕业生求职网YJBYS.COM:解答:哈哈,据说这是微软前几年的一个面试题。很经典滴啊!三次一定能求出来,而且能确定是重还是轻。数据结构的知识还没怎么学透,不过这个题我到是自己研究过,可以分析下。将12个球分别编号为a1,a2,a3.a10,a11,a12.第一步:将12球分开3拨,每拨4个,a1a4第一拨,记为b1, a5a6第2拨,记为b2,其余第3拨,记为b3;第二步:将b1和b2放到天平两盘上,记左盘为c1,右为c2;这时候分两中情况:1.c1和c2平衡,此时可以确定从a1到a8都是常球;然后把c2拿空,并从c1上拿下a4,从a9到a12四球里随便取三球,假设为a9到a11,放到c2上。此时c1上是a1到a3,c2上是a9到a11。从这里又分三种情况:A:天平平衡,很简单,说明没有放上去的a12就是异球,而到此步一共称了两次,所以将a12随便跟11个常球再称一次,也就是第三次,马上就可以确定a12是重还是轻;B:若c1上升,则这次称说明异球为a9到a11三球中的一个,而且是比常球重。取下c1所有的球,并将a8放到c1上,将a9取下,比较a8和a11(第三次称),如果平衡则说明从c2上取下的a9是偏重异球,如果不平衡,则偏向哪盘则哪盘里放的就是偏重异球;C:若c1下降,说明a9到a11里有一个是偏轻异球。次种情况和B类似,所以接下来的步骤照搬B就是;2.c1和c2不平衡,这时候又分两种情况,c1上升和c1下降,但是不管哪种情况都能说明a9到a12是常球。这步是解题的关键。也是这个题最妙的地方。A:c1上升,此时不能判断异球在哪盘也不能判断是轻还是重。取下c1中的a2到a4三球放一边,将c2中的a5和a6放到c1上,然后将常球a9放到c2上。至此,c1上是a1,a5和a6,c2上是a7,a8和a9。此时又分三中情况:1)如果平衡,说明天平上所有的球都是常球,异球在从c1上取下a2到a4中。而且可以断定异球轻重。因为a5到a8都是常球,而第2次称的时候c1是上升的,所以a2到a4里必然有一个轻球。那么第三次称就用来从a2到a4中找到轻球。这很简单,随便拿两球放到c1和c2,平衡则剩余的为要找球,不平衡则哪边低则哪个为要找球;2)c1仍然保持上升,则说明要么a1是要找的轻球,要么a7和a8两球中有一个是重球(这步懂吧?好好想想,很简单的。因为a9是常球,而取下的a2到a4肯定也是常球,还可以推出换盘放置的a5和a6也是常球。所以要么a1轻,要么a7或a8重)。至此,还剩一次称的机会。只需把a7和a8放上两盘,平衡则说明a1是要找的偏轻异球,如果不平衡,则哪边高说明哪个是偏重异球;3)如果换球称第2次后天平平衡打破,并且c1降低了,这说明异球肯定在换过来的a5和a6两求中,并且异球偏重,否则天平要么平衡要么保持c1上升。确定要找球是偏重之后,将a5和a6放到两盘上称第3次根据哪边高可以判定a5和a6哪个是重球;B:第1次称后c1是下降的,此时可以将c1看成c2,其实以后的步骤都同A,所以就不必要再重复叙述了。至此,不管情况如何,用且只用三次就能称出12个外观手感一模一样的小球中有质量不同于其他11球的偏常的球。而且在称的过程中可以判定其是偏轻还是偏重。给一个奇数阶N幻方,填入数字1,2,3N*N,使得横竖斜方向上的和都相同答案:#include#include#includeusingnamespace std;int main()int n;cinn;int i;int *Matr=newint*n;/动态分配二维数组for(i=0;iMatr i =newintn;/动态分配二维数组/j=n/2代表首行中间数作为起点,即1所在位置int j=n/2,num=1;/初始值i=0;while(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陕西省汉中市宁强县2024-2025学年八年级下学期7月期末考试数学试卷(含答案)
- 湖北省武汉市东湖高新区2024-2025学年八年级下学期期末考试英语试卷(含答案无听力原文及音频)
- 恶劣天气安全的应急预案范文
- 绿色旅游的市场需求与前景分析
- DB64-T 1919-2023 无线电固定监测站机房及配套设施建设规范
- 2025年城镇公寓购房合同范本
- 永年燃气安全知识培训课件
- 机电设备管道安装方案
- 装配式建筑施工现场电气安全管理方案
- 生殖系统济源医学护理系43课件
- 6G多维度切片QoS保障-洞察及研究
- 2025-2026学年外研版(三起)(2024)小学英语四年级上册教学计划及进度表
- 2025年海南省警务辅助人员招聘考试(公共基础知识)历年参考题库含答案详解(5套)
- 城市道路清扫保洁协议
- 2025年医学检验在编考试题库
- 特色食品卖场建设方案(3篇)
- 高考3500词汇表(完整版)
- 集团公司内部资金调剂管理办法
- 思想道德与法治课件:专题五在实现中国梦的实践中放飞青春梦想
- 新人教A必修一《集合》课件
- 复用器械处理流程
评论
0/150
提交评论