C语言笔试题及参考答案.doc_第1页
C语言笔试题及参考答案.doc_第2页
C语言笔试题及参考答案.doc_第3页
C语言笔试题及参考答案.doc_第4页
C语言笔试题及参考答案.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

C语言笔试题及参考答案-东软集团 一、选择题(共30题,每题2分,满分60分)1、(数据结构)对图中的二叉树,按先根次序遍历得到的结点序列为 B A、ABCDHEIFGB、ABDHIECFG C、HDIBEAFCGD、HIDBEFGAC2、(数据结构)设线性表(a1,a2,a3,.,a500)中所有元素的值由小到大排列,对一个给定的值K,用二分法查找表中与K相等的元素,在查找不成功的情况下,至多需要比较 A 次。(本人拿不准)A、8 B、9 C、10 D、113、(数据结构)二叉树的查找有深度优先和广度优先,深度优先包括 AA、前序遍历、后序遍历、中序遍历 B、前序遍历、后序遍历、层次遍历C、前序遍历、中序遍历、层次遍历 D、中序遍历、后序遍历、层次遍历4、(数据结构)已知二叉树的先序序列为ABDECF,中序序列为DBEAFC,则后序序列为 DA、DEBAFC B、DEFBCAC、DEBCFA D、DEBFCA 5、(数据结构)队列是一种常用的数据结构,其元素的入队与出队遵循 A 原则。A、先进先出B、先进后出C、随机进、随机出D、顺序进、随机出6、(数据结构)在数据结构中,结点及结点间的相互关系是数据的逻辑结构,数据结构按逻辑关系的不同,通常可分为 两类A、动态结构和表态结构 B、紧凑结构和非紧凑结构C、线性结构和非线性结构 D、内部结构和外部结构7、(数据结构)队列是一种常用的数据结构,其元素的入队与出队遵循 原则。A、先进先出 B、先进后出 C、随机进、顺序出 D、顺序进、随机出8、(数据结构)与单向链表相比,双向链表的优点之一是 A、更节省存储空间 B、便于进行随机访问C、更容易访问相邻结点 D、可以省略头指针和尾指针9、(操作系统)在文件存储设备管理中,有三类常用字的空闲块管理方法,即位图向量法,空闲块链表法和 A、级目录法 B、多级目录法 C、分区法 D、索引法10、(操作系统)在进程管理中,当 时,进程从阻塞状态变为就绪状态。A、进程被进程调度程序选中 B、等待某一事件C、等待事件发生 D、时间片用完11、(操作系统)若进程P1正在运行,操作系统强行撤下P1进程所占用的CPU,让具有更高优先级的进程P2运行,这种调度方式称为 A、中断方式 B、抢占方式 C、非抢占方式 D、查询方式12、(操作系统)I/O控制方式有多种, 一般用于大型、高效的计算机系统中。A、查询方式 B、中断方式 C、DMA方式 D、PPU方式13、(软件工程)软件设计的主要任务是设计软件的结构、模块和过程,其中软件结构设计的主要任务是要确定 A、模块间的操作细节 B、模块间的相似性C、模块间的组成关系 D、模块的具体功能14、(软件工程)对软件系统进行验收测试(确认测试)的任务是验证软件 A、是否符合用户提出的需求 B、是否采用了先进的实现方法C、界面是否美观 C、是否适合计算机硬件环境15、(软件工程)在软件开发过程中,管理者和技术人员的观念是十分重要的。以下叙述中你认为正确的是 A、如果我们已经落后于计划,可以增加更多的程序员来走上进度B、在程序真正运行之前,没有办法评估其质量C、有了对目标的一般描述就足以开始写程序了,我们以后可以再补充细节D、项目需求总是在不断变化,但这些变化能够很容易地满足,因为软件是灵活的16、(软件工程)系统中模块的 不仅意味着作用于系统的小变动将导致行为上的小变化,也意味着规格说明的小变动将影响到一小部分模块A、可分解性 B、保护性 C、可理解性 D、连续性17、(软件工程)黑盒测试也称为功能测试。黑盒测试不能发现 A、终止性错误 B、输入是否正确接收C、界面是否有错误 D、是否存在冗余代码18、(软件工程)下列选项中, 不是结构化程序设计的基本结构。A、顺序 B、选择 C、循环 D、转移19、(数据库)为了防止合法用户使用数据库时向数据库添加不合语义的数据,应该采取 A、完整性控制 B、安全性控制 C、并发控制 D、访问控制20、(C语言)以下能正确定义一维数组的选项是 A、int a5=0,1,2,3,4,5; B、char a=0,1,2,3,4,5;C、char a=A,B,C; D、int a5=0123;21、(C语言)以下叙述中错误的是 A、对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B、数组名代表的是数组所占存储区的首地址,其值不可改变C、当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息D、可以通过赋初值的方式确定数组元素的个数22、(C语言)假设有如下定义方式int(*ptr)();,则以下叙述中正确的是 A、ptr是指向一维数组的指针变量B、ptr是指向int型数据的指针变量C、ptr是指向函数的指针的指针,该函数返回一个int型数据D、ptr是一个函数名,该函数的返回值是指向int型数据的指针23、(C语言)在头指针为head且表长大于1的单循环链表中,指针p指向表中英雄模范个结点,若p-next-next=head,则 A、p指向头结点 B、p指向尾结点C、*p的直接后继是头结点 D、*p的直接后继是尾结点24、(C语言)数字字符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,5025、(C语言)有以下程序#define P 3void F(int x) return (P*x*x);main()printf(%dn,F(3+5);程序运行后的输出结果是 A、192 B、29 C、25 D、编译出错26、(C语言)有以下程序main()int a=1,b;for(b=1;b=8)break;if(a%2=1) a+=5;continue;a-=3;printf(%dn,b);程序运行的结果是 A、3 B、4 C、5 D、627、(C语言)在C评议中,以下正确的说法是 A、实参和与其对应的形参各占独立的存储单元B、实参和与其对应的形参占用同一个存储单元C、只有当实参和其对应的形参同名时才占用同一个存储单元D、形参是虚拟的,不占用存储单元28、(C语言)一个C程序的执行是从 A、本程序的main函数开始,到main函数结束B、本程序的第一个函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序main函数结束29、(C+语言)在面向对象技术中, 不是对象A、窗口 B、控件 C、菜单项 D、函数30、(C+语言)友元作用是 A、提高程序运行效率 B、加强类的封装性C、实现数据的隐藏性 D、增加成员函数的种类二、编程题(共2题,每题15分,满分30分)1、阅读下列函数说明和C代码,将应填入 处的字句写在答题纸的对应栏内。函数1.1说明函数int factors(int n)的功能是判断整数n(n=2)是否为完全数。如果n是完全数,则函数返回0,否则返回-1。所谓“完全数”是指整数n的所有因子(不包括n)之和等于n自身。例如28的因子为1、2、4、7、14,而28=1+2+4+7+14,因此28是“完全数”。函数1.1int factors(int n)int i,s;for(i=1,s=0;it)?a0:t;1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用 : 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错 4、语句for( ;1 ;)有什么问题?它是什么意思? 答:和while(1)相同。 5、dowhile和whiledo有什么区别? 答:前一个循环一遍再判断,后一个判断以后再循环 6、请写出下列代码的输出内容 #include main() int a,b,c,d; a=10; b=a+; c=+a; d=10*a+; printf( b,c,d:%d,%d,%d ,b,c,d); return 0; 答:10,12,120 7、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。 从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。 static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件 static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用; static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值; static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝 8、程序的局部变量存在于(堆栈)中,全局变量存在于(静态区 )中,动态申请数据存在于( 堆)中。 9、设有以下说明和定义: typedef union long i; int k5; char c; DATE; struct data int cat; DATE cow; double dog; too; DATE max; 则语句 printf( %d ,sizeof(struct date)+sizeof(max);的执行结果是:_52_ 答:DATE是一个union, 变量公用空间. 里面最大的变量类型是int5, 占用20个字节. 所以它的大小是20 data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32. 所以结果是 20 + 32 = 52. 当然.在某些16位编辑器下, int可能是2字节,那么结果是 int2 + DATE10 + double8 = 20 10、队列和栈有什么区别? 队列先进先出,栈后进先出 11、写出下列代码的输出内容 #include int inc(int a) return(+a); int multi(int*a,int*b,int*c) return(*c=*a*b); typedef int(FUNC1)(int in); typedef int(FUNC2) (int*,int*,int*); void show(FUNC2 fun,int arg1, int*arg2) INCp= &inc; int temp =p(arg1); fun( &temp,&arg1, arg2); printf( %dn ,*arg2); main() int a; show(multi,10, &a); return 0; 答:110 11、请找出下面代码中的所以错误 说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba” 1、#include string.h 2、main() 3、 4、 char*src= hello,world ; 5、 char* dest=NULL; 6、 int len=strlen(src); 7、 dest=(char*)malloc(len); 8、 char* d=dest; 9、 char* s=srclen; 10、 while(len-!=0) 11、 d+=s-; 12、 printf( %s ,dest); 13、 return 0; 14、 答: 方法1: int main() char* src = hello,world ; int len = strlen(src); char* dest = (char*)malloc(len+1);/要为0分配一个空间 char* d = dest; char* s = &srclen-1;/指向最后一个字符 while( len- != 0 ) *d+=*s-; *d = 0;/尾部要加0 printf( %sn ,dest); free(dest);/ 使用完,应当释放空间,以免造成内存汇泄露 return 0; 方法2: #include #include main() char str= hello,world ; int len=strlen(str); char t; for(int i=0; i t=stri; stri=strlen-i-1; strlen-i-1=t; printf( %s ,str); re

温馨提示

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

评论

0/150

提交评论