《国二C语言历年真题》由会员分享,可在线阅读,更多相关《国二C语言历年真题(110页珍藏版)》请在金锄头文库上搜索。
1、2008年4月真题1.程序流程图中带有箭头的线段表示的是_。A)图元关系 B)数据流C)控制流 D)调用关系 参考答案:C【解析】程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流,而在程序流程图中表示控制流。在所给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及其含义是:或表示控制流;表示加工步骤;表示逻辑条件。2. 结构化程序设计的基本原则不包括_。A)多态性 B)自顶向下C)模块化 D)逐
2、步求精 参考答案:A【解析】结构化程序设计的原则包括:自顶而下,逐步求精的设计思想,独立功能,单出口、单入口的模块化设计等。多态性是面向对象程序语言的特征。3.软件设计中模块划分应遵循的准则是_。A)低内聚低耦合 B)高内聚低耦合C)低内聚高耦合 D)高内聚高耦合 参考答案:B【解析】模块划分应遵循的准则包括模块之间的耦合和内聚。一般来说,要求模块之间的耦合尽可能地低,即模块尽可能独立,要求模块的内聚程度尽可能地高,即高内聚、低耦合的原则。4.在软件开发中,需求分析阶段产生的主要文档是_。A)可行性分析报告 B)软件需求规格说明书C)概要设计说明书 D)集成测试计划 参考答案:B【解析】需求分
3、析阶段的工作主要包括需求获取、需求分析、编写需求规格说明书和需求评审等四方面。产生的主要文档为软件需求规格说明书,它可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进程的依据。5.算法的有穷性是指_。A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用 参考答案:A【解析】算法具有6个特性。 有穷性:一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有限时间内完成,即运行时间是有限的。 确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生歧义
4、。 可行性:一个算法是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。 输入:一个算法有零个或多个输入,这些输入取自某个特定的对象的集合。 输出:一个算法有一个或多个输出。6.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n1)/2的排序方法是_。A)快速排序 B)冒泡排序C)直接插入排序 D)堆排序 参考答案:D【解析】在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都是n(n1)/2,堆排序需要比较的次数为nlog2n。7.下列关于栈的叙述正确的是_。A)栈按先进先出组织数据B)栈按先进后出组织数据C)只能在栈底插入数据D)不能删除数据 参考答
5、案:B【解析】在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。因而栈是按照先进后出或后进先出的原则组织数据的。8.在数据库设计中,将ER图转换成关系数据模型的过程属于_。A)需求分析阶段 B)概念设计阶段C)逻辑设计阶段 D)物理设计阶段 参考答案:C【解析】数据库的逻辑设计分为: 将概念模型转换成一般的数据模型; 将一般的数据模型转换为特定的数据库管理系统所支持的数据模型。把概念模型转换成关系数据模型就是把ER图转换成一组关系模式。9.有三个关系R、S和
6、T如下:RBCDa0k1b1n1 SBCDf3h2a0k1n2x1 TBCDa0k1由关系R和S通过运算得到关系T,则所使用的运算为_。A)并 B)自然连接C)笛卡尔积 D)交 参考答案:D【解析】在关系运算中,交的定义如下:设R1和R2为参加运算的两个关系,它们具有相同的度n,且相对应的属性值取自同一个域,则R1R2为交运算,结果仍为度等于n的关系,其中,交运算的结果既属于R1又属于R2。10.设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为_。A)课号,成绩B)学号,成绩C)学号,课号D)
7、学号,姓名,成绩 参考答案:C【解析】选课SC 表是 学生S 表和 课程C 表的映射表,主键是两个表主键的组合。11.以下叙述中正确的是A)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用C语言编写的程序只能放在一个程序文件中 参考答案:C【解析】在C语言中,注释可以加在程序中的任何位置,选项A)错误。C程序可以分模块写在不同的文件中,编译时再将其组合在一起,选项D)错误。C程序的书写风格很自由,不但一行可以写多个语句,还可以将一个语句写在多行中。所以正确答案为选项C)。12.以下选项中不合法
8、的标识符是 A)print B)FOR C)& a D)_00 参考答案:C【解析】C语言合法标识符的命名规则是:标识符只能由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。因为选项C)中的标识符的第一个字符为&,所以选项C)为本题的正确答案。13.以下选项中不属于字符常量的是 A)C B)C C)xCC D)072 参考答案:B【解析】在C语言程序中,用单引号把一个字符或反斜线后跟一个特定的字符括起来表示一个字符常量。选项A)、C)和D)为正确的字符常量;而选项B)是用双引号括起来的字符,表示一个字符串常量,所以正确答案为选项B)。14. 设变量已正确定义并赋值,以下正确的表达式是
9、 A)xy*5xz B)int(15.8%5) C)xyz5,y D)x25%5.0 参考答案:C【解析】求余运算符%两边的运算对象必须是整型,而选项B)和D)中 %两边的运算对象有浮点整数据,所以选项B)和D)是错误的表达式;在选项A)中赋值表达式的两边出现相同的变量x,也是错误的;选项C)是一个逗号表达式,所以正确答案为C)。15. 以下定义语句中正确的是 A)intab0; B)charA651,bb; C)float a1,*b&a,*c&b; D)doublea0.0;b1.1; 参考答案:B【解析】本题考查变量的定义方法。如果要一次进行多个变量的定义,则在它们之间要用逗号隔开。因此
10、选项A)和D)错误;在选项C)中,变量c是一个浮点型指针,它只能指向一个浮点型数据,不能指向指针变量b;所以正确答案为B)。16. 有以下程序段:charch;intk;cha;k12;printf(%c,%d,ch,ch,k);printf(k%dn,k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零或不定值C)a,97,12k12D)a,97,k12 参考答案:D【解析】输出格式控制符%c表示将变量以字符的形式输出;输出格式控制符%d表示将变量以带符号的十进制整型数输出。所以第一个输出
11、语句输出的结果为a,97,第二个输出语句输出的结果为k12,所以选项D)为正确答案。17.已知字母A的ASCII码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是A)kkA& kkA|kka&(kk32)ZD)isalpha(kk)&(kk2& c2&c2& c2& cb) ab;ca; if(c!a) cb; printf(%d,%d,%dn,a,b,c);其输出结果是A)程序段有语法错B)3,5,3C)3,5,5D)3,5,7 参考答案:B【解析】两个if语句的判断条件都不满足,程序只执行了ca这条语句,所以变量c的值等于3,变量b的值没能变化,程序输出的结果为3,5,3。所以正确答案为选项B)。20. 有以下程序:#includemain()intx1,y0,a0,b0; switch(x) case 1: switch(y) case 0: a; break; case 1: b; break; case 2:a; b; break; case 3:a; b; printf(a%d,b%dn,a,b);程序的运行结果是A)a1,b0