1、C语言面试笔试题与答案 C语言面试笔试题 (1)算法的时间冗杂度是指_。 A)执行算法程序所需要的时间 B)算法程序的长度 C)算法执行过程中所需要的根本运算次数 D)算法程序中的指令条数 答案:C 评析:所谓算法的时间冗杂度,是指执行算法所需要的计算工作量。 (2)以下表达中正确的选项是_。 A)线性表是线性构造 B)栈与队列是非线性构造 C)线性链表是非线性构造 D)二叉树是线性构造 答案:A 评析:一般将数据构造分为两大类型:线性构造与非线性构造。线性表、栈与队列、线性链表都是线性构造,而二叉树是非线性构造。 (3)下面关于完全二叉树的表达中,错误的选项是_。 A)除了最终一层外,每一层
2、上的结点数均到达最大值 B)可能缺少假设干个左右叶子结点 C)完全二叉树一般不是满二叉树 D)具有结点的完全二叉树的深度为log2n+1 答案:B 评析:满二叉树指除最终一层外每一层上全部结点都有两个子结点的二叉树。完全二叉树指除最终一层外,每一层上的结点数均到达最大值,在最终一层上只缺少右边的假设干子结点(叶子结点)的二叉树。 C语言笔试题答案篇 (1)构造化程序设计主要强调的是_。 A)程序的规模 B)程序的易读性 C)程序的执行效率 D)程序的可移植性 答案:B 评析:构造化程序设计主要强调的是构造化程序清楚易读,可理解性好,程序员能够进展逐步求精、程序证明和测试,以保证程序的正确性。
3、(2)在软件生命周期中,能精确地确定软件系统必需做什么和必需具备哪些功能的阶段是_。 A)概要设计 B)具体设计 C)可行性分析 D)需求分析 答案:D 评析:需求分析是对待开发软件提出的需求进展分析并给出具体定义,即精确地确定软件系统的功能。编写软件规格说明书及初步的用户手册,提交评审。 (3)数据流图用于抽象描述一个软件的规律模型,数据流图由一些特定的图符构成。以下 图符名标识的图符不属于数据流图合法图符的是_。 A)把握流 B)加工 C)数据存储 D)源和潭 答案:A 评析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、
4、数据流、存储文件(数据源)、源和潭。 (4)软件需求分析一般应确定的是用户对软件的_。 A)功能需求 B)非功能需求 C)性能需求 D)功能需求和非功能需求 答案:D 评析:软件需求分析中需要构造一个完全的系统规律模型,理解用户提出的每一功能与性能要求,是用户明确自己的任务。因此,需求分析应确定用户对软件的功能需求和非功能需求。 C语言笔试题答案篇 (1)下述关于数据库系统的表达中正确的选项是_。 A)数据库系统削减了数据冗余 B)数据库系统避开了一切冗余 C)数据库系统中数据的全都性是指数据类型的全都 D)数据库系统比文件系统能管理更多的数据 答案:A 评析:由数据的共享自身又可极大地削减数
5、据冗余性,不仅削减了不必要的存储空间,更为重要的是可以避开数据的不全都性。所谓数据的全都性是指在系统中同一数据的不同毁灭应保持违反的值。 (2)关系表中的每一横行称为一个_。 A)元组 B)字段 C)属性 D)码 答案:A 评析:在关系数据库中,关系模型承受二维表来表示,简称“表”。二维表是由表框架及表元组组成。在表框架中,按行可以存放数据,每行数据称为元组。 (3)数据库设计包括两个方面的设计内容,它们是_。 A)概念设计和规律设计 B)模式设计和内模式设计 C)内模式设计和物理设计 D)构造特性设计和行为特性设计 答案:A 评析:数据库设计可分为概念设计与规律设计。概念设计的目的是分析数据
6、间内在语义关联,在此根底上建立一个数据的抽象模型。规律设计的主要工作是将ER图转换为指定的RDBMS中的关系模型。 (4)请读程序: #include main int a;float b,c; scanf(“%2d%3P%4f,a,b,C); printf(”na=%d,b=%ec。%fn”,a,b,C); 假设运行时从键盘上输入9876543210l,那么上面程序的输出结果是_。 A)a=98,b=765,c=432 1 B)a=1 0,b=432,c=8765 C)a=98,b=765.000000,c=432 1.000000 D)a=98,b=765.0,c=432 1.0 答案:C
7、 评析:scanf把用户从键盘录入的数字的第1、2位存入整型变量a;把第3、4、5位存入单精度实型变量b,把第6、7、8、9位存入单精度实型变量c,用户录入的第10位被scanf遗弃。这时变量a、b、c的值分别为:98、765.000000、4321.000000。 (5)一个良好的算法由下面的根本构造组成,但不包括_。 A)挨次构造 B)选择构造 C)循环构造 D)跳转构造 答案:D 评析:1966年,Bohra和Jacopini提出了以下三种根本构造,用这三种根本构造作为表示一个良好算法的根本单元:1、挨次构造;2、选择构造;3、循环构造。 (6)请选出以下程序的输出结果_。 #inclu
8、de sub(x,y,z) int x,y,星符号z: 星符号z=y-x; main int a,b,c; sub(10,5,a);sub(7,a,b);sub(a,b,C); printf(”%d,%d,%dn”,a,b,C); A)5,2,3 B)-5,-12,-7 C)-5,-12,-17 D)5,-2,-7 答案:B 评析:sub函数的作用是将形参y和x的差赋给了z指向的那个内存地址,所以在sub(10,5,a/I,10和5属于值传递,a是属于地址传递,也就是a与z指向了同一个存储单元,在执行函数后,a的值随星符号z转变,所以此次函数被调用后,a的值为y-x=-5,同理可知,在sub(
9、7,a,b)后,b的值发生转变,其值为-5-7=-12,在sub(a,b,C)后,c的值发生转变,其值为-12-(-5)=-7。 (7)下面程序在屏幕上的输出是_。 main printf(”abbb c”); A)abbb c B)a c C)abc D)ab c 答案:B 评析:c语言中允许使用一种特殊形式的字符常量,、就是以一个“”开头的字符序列,这样的字符称为“转义字符”。常用的转义字符有:n,换行;t,水平制表;b,退格;r,回车。 (8)假设x是整型变量,pb是基类型为整型的指针变量,那么正确的赋值表达式是_。 A)pb=x; B)pb=x; C)星符号pb=x; D)星符号pb=
10、星符号x 答案:A 评析:选项A将变量x的地址赋给指针变量pb,使pb指向x选项B是将x的值当作地址赋给指针pb,Db指向一个地址等于x值的内存单元;选项c将x的地址赋给指针pb指向的地址等于x的内存单元。 (9)设整型数i=5,那么printf(“%d”,i+i);的输出为_。 A)10 B)1l C)12 D)语法错误 答案:D 评析:c语言中有根本的算术运算符(+、-、星符号、/)还包括自增自减运算符(+、),在c语言解析表达式时,它总是进展贪欲咀嚼,这样,该表达式就被解析为i+ + +i,明显该表达式不合c语言语法。 (10)假设要用下面的程序片段使指针变量p指向一个存储整型变量的动态
11、存储单元 int 星符号p; p=_malloc(sizeof(im); 那么应填入_。 A)int B)int C)(星符号int) D)(int星符号) 答案:D 评析:不管p是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型全都,强制类型转换的格式为(数据类型+)。 (11)下面程序输出的结果是_。 main int i=5,J=9,x; x=(I=j?i:(j=7); printf(”n%d,%d”,I,J); A)5,7 B)5,5 C)语法错误 D)7,5 答案:A 评析:条件表达式的一般形式为:表达式I?表达式2:表达式3;先求解表达式1,假设为真那么求解表达式2;假设表达式l的值为假,那么求解表达式3。此题中先推断i=j,不等,执行j=7;然后执行x=7。故此题为A。第 6 页 共 6 页