C_摸底考试试题.doc_第1页
C_摸底考试试题.doc_第2页
C_摸底考试试题.doc_第3页
C_摸底考试试题.doc_第4页
C_摸底考试试题.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

考试试题(考试时间 90分钟)一、单项选择题(每题2分,总计40分)1. 用顺序查找法对具有n个结点的线性表进行查找,查找一个结点所需的平均查找时间为( )A. O(n2) B. O(n) C. O(nlog2n) D. O(log2n)2. 在下列选项中,没有构成死循环的程序是_A)int i=100; while(1) i=i1001; if(i100) break;B)for( ;); C) int k=1000; dok-;while(k=1000); D) int s=36;while(s);s-;3. 若要用下面的程序片段使指针变量P指向一个存储整型变量的动态存储单元;int *P; P = _ malloc(sizeof(int)*10); 则上面横线部分应填入:_A int B int * C(*int) D(int*)4. 设有以下宏定义:_#defineN3#define Y(n) (N)*n) 则执行语句:z = 2*(N * Y(4)后,z的值为_A 出错 B 72 C 24 D 365. 以下哪种数据结构适合查找操作( )A,单向链表 B, 双向链表C,二叉树 D,平衡二叉树6. 设有int i;则执行i=1;+i;i+| i+语句后;i的值为_A.1 B. 2 C. 3 D. 47. 设有int a=10,11,12,int *p=&a0;则执行完串p+;*p+ =1;后a0,a1,a2的值依次是_A. 10,11,12 B. 11,12,12 C10, 12, 12 D11,11,128. 设有int i,j,k;则表达式i=1,j=2,k=3,i&j&k的值为_A.1B.2C.3D.59.设有说明int s2=0,1, int *p=s;则下列错误的C语句是_A. s+=1;B. p+=1;C. *p+;D.(*p)+;10.设有程序段int k=10;while (k=0) k=k-1;则下面描述中正确的是_ A)while循环执行10次 B)循环是无限循环C)循环体语句一次也不执行 D)循环体语句执行一次11. 下程序的运行结果为 _int x=0, y=0;void func1(int x, int y) x = 5, y=6;void func2( ) x=12, y=13;void main( void )func1(x, y) ;printf(“%d, %d”, x, y) ;func2( );printf(“%d,%d”, x,y) ;A) 5, 6,12,13 B) 0, 0, 12, 13 C) 5, 6, 0, 0 D) 0, 0, 0, 012. 若某链表最常用的操作时在最后一个元素之后插入一个节点和删除最后一个节点,则采用( )存储方式节省时间。A,单链表B,双链表C,单循环链表 D,带头节点的双循环链表13.若有以下定义和语句struct studentint age;int num;struct student stu3 = 1001,20,1002,19,1003,21;main()struct student *p;p = stu;.则以下不正确的引用是_。A)(p+)-num;B) p+;C) (*p).num;D) p=&stu.age;14、请正确指出下列指针的最确切的含义,int (*ptr)3、int *(*ptr)4、void* (*ptr)(void*)_。A)一个指针数组,数组元素的个数为3个;一个指向4个元素数组的指针、数组的每个元素是一个指针;一个函数的指针,这个函数的返回值还是个指针;B) 一个指向3个元素数组的指针;一个指向4个元素数组的指针、数组的每个元素是一个指针;一个函数的指针,这个函数的返回值还是个指针;C) 一个指针数组,数组元素的个数为3个;一个指针数组、数组的每个元素是一个指针;一个函数的指针,这个函数的返回值还是个指针;D) 一个指向3个元素数组的指针;一个指针数组、数组的每个元素是一个指针;一个函数的指针,这个函数的返回值还是个指针;15. 有下列程序段char a3,b=”China”;a = b;printf(“%s”,a);则_。A) 运行后将输出ChinaB) 运行后将输出Ch;C) 运行后将输出ChiD) 编译出错;16. 请问sizeof(AA_t)是_。typedef struct int a; char b,short c,short d,AA_t;AA_t A;AA_t*pA=&A; 下面访问c域方法那个不正确:A) A.c; B) pA-c; C) pA + sizeof(int) + sizeof(char) D)*pA.c17.已知一个类A有一个成员变量m_iValue,以及一个SetValue函数设置这个值,需要在构造的时候进行赋值。以下几种方式中错误的是:_A) A:A(int iValue) m_iValue = iValue;B) A:A(int iValue):m_iValue(iValue)C) A:A(int iValue)SetValue(iValue);D) A:A(int iValue):SetValue(iValue)18. 如果一个类继承了了另外一个类:class Derived : protected Base那么, Derived 可以访问Base类中的那些成员:_A) 全部 B) 公有的成员变量和成员函数 C) 公有的和保护的成员变量或函数D) 保护的成员变量和函数19. 有一个类,定义如下:class A public:A()m_iMaxValue+;m_iValue = m_iMaxValue;int GetValue()return m_iValue;public:Static int m_iMaxValue 0 ;int m_iValue;在使用的时候,有如下操作A* pObjectList = new A100;int a = pObjectList-GetValue();int b = (pObjectList+10)-GetValue();int c = pObjectList99.GetValue();请选则正确的结果是_:A) a = 0; b = 1; c = 1 B) a = 1, b = 11 c = 100C) a = 0, b = 1 c = 100D) a = 1, b = 1 c = 120.看以下代码:class Base() public:Base()m_pcDataBase = new char100;Base()delete m_pcDataBasechar* pcDataBase;class Derived() : public BaseDerived()m_pcDataDerived = new char100;Derived() delete m_pcDataDerived;char* m_pcDataDrived;有两个操作1 Base* pData1 = new Base; delete pData1;2. Base* pData2 = new Derived; delete pData2;3. Derived* pData3 = new Derived; delete pData3; 4.Derived* pData4 = new Derived100; delete pData4;问题:那几个操作会内存泄漏?_A) 2,3,4 B) 2, 4 C) 2, 3 D) 4二、读程序并完成填空(【1】【8】每空1分,【9】【14】每空2分,总计20分)。答案写在答题纸上。(1)fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回请填空.#define #define N 100int fun(int(*a)N)int row,col,max,min; for(row=O;rowN;row+)for(max=arow0,col=1;colN;col+) if (_【1】_)max = arowcol;if (row =0)min = max;else if (_【2】_) min = max;return min;(2)打印出2至99之间的所有素数(即不能被任何数整除的数)。 #include #include void main() int i,n; for(n=2; _【3】_; n+) int temp=int(sqrt(n); /求出n的平方根并取整 for(i=2; _【4】_; i+) if(n%i=0) _【5】_; if(itemp) printf(“%d ”, n); printf(“n ”); (3)对按从小到大排列的有序数组an进行二分查找x的算法,若查找成功返回该元素下标,否则返回-1。 int BinarySearch(int a,int x) int low=0, high=N-1; /定义并初始化区间下界和上界变量 int mid; /定义保存中点元素下标的变量 while(low=high) mid=_【6】_; if(x=amid) _【7】_; else if(xpPrior-pNext = p; 【9】 ; 【10】 ; pCurNode-pPrior = p;DelNode(strDulNode * p) 【11】 ; 【12】 ; delete p;(5)阅读下列程序,填空,使栈的操作完整,#define MAXSIZE 100typedef struct int stkDataMAXSIZE; int iTop; STKZone;Initialize(STKZone *pStack)pStack- iTop = 0;BOOL Push();BOOL Pop();以下是实现:BOOL Push(int iElement,STKZone *pStack)/iElement 是入栈元素 if(pStack-iTop = MAXSIZE)return FALSE; 【13】 ; return TRUE;BOOL Pop(int* pRet,STKZone *pStack)/假如栈不为空 /pRet 为返回元素的指针 if(EmptyStack() return FALSE; 【14】 ; 三、指出程序或函数的功能(一共4小题,每题5分,总计20分)1函数一。不仅要说明函数的具体功能,还应包括对输入、输出的说明。int func1(const char *s) int i=0; while(*s+)i+; return i; ;函数功能:_2函数二。不仅要说明函数的具体功能,还应包括对输入、输出的说明。char* func2(char* str1, const char* str2) int i=0,j=0;while(str1i) i+;while(str2j) str1i+=str2j+ ; str1i=0; return str1; 函数功能:_3函数三。不仅要说明函数的具体功能,还应包括对输入、输出的说明。void func3 (IntNode *f) int n; coutn; while(n0); if(n=0) *f=NULL; return; *f=new IntNode; IntNode* p=*f; cout”从键盘输入”nnext=new IntNode; cinp-data; p-next =NULL;p=*f; *f = *f-next; delete p; 假定IntNode的类型定义为: struct IntNode int data; /结点值域 IntNode* next; /结点指针域 ;4函数四。不仅要说明函数的具体功能,还应包括对输入、输出的说明。IntNode* func4(IntNode *f) if(NULL=f) return NULL; IntNode *p=f; f=f-next; while(f) if(f-data p-data) p=f; f=f-next; return p; 假定IntNode的类型定义为: struct IntNode int data; /结点值域 IntNode* next; /结点指针域 ;函数功能:_四、编程题(一共2小题,第一小题满分8分,第一小题满分12分,总计20分;有卷面分数,卷面分数包含在每题分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论