ImageVerifierCode 换一换
格式:DOC , 页数:24 ,大小:58.50KB ,
资源ID:498925      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-498925.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级C语言程序设计机试(选择题)模拟试卷4及答案与解析.doc)为本站会员(rimleave225)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

[计算机类试卷]国家二级C语言程序设计机试(选择题)模拟试卷4及答案与解析.doc

1、国家二级 C语言程序设计机试(选择题)模拟试卷 4及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)程序执行的效率与数据的存储结构密切相关 ( B)程序执行的效率只取决于程序的控制结构 ( C)程序执行的效率只取决于所处理的数据量 ( D)以上说法均错误 2 软件按功能可以分为应用软件、系统软件和支撑软件 (或工具软件 )。下列各项中属于应用软件的是 ( )。 ( A)学生成绩管理系统 ( B) C语言编译程序 ( C) UNIX操作系统 ( D)数据库管理系统 3 通常软件测试 实施的步骤是 ( )。 ( A)集成测试、单元测试、确认测试 ( B)单元测试、集成测试、确认测

2、试 ( C)确认测试、集成测试、单元测试 ( D)单元测试、确认测试、集成测试 4 下列叙述中错误的是 ( )。 ( A)系统总体结构图支持软件系统的详细设计 ( B)软件设计是将软件需求转换为软件表示的过程 ( C)数据结构与数据库设计是软件设计的任务之一 ( D) PAD图是软件详细设计的表示工具 5 对长度为 n的线性表作快速排序,在最坏情况下,比较次数为 ( )。 ( A) n ( B) n一 1 ( C) n(n1) ( D) n(n一 1) 2 6 某二叉树共有 7个结点,其中叶子结点只有 1个,则该二叉树的深度为 (假设根结点在第 1层 )( )。 ( A) 3 ( B) 4 (

3、 C) 6 ( D) 7 7 下列关于栈的叙述中,正确的是 ( )。 ( A)栈顶元素最先能被删除 ( B)栈顶元素最后才能被删除 ( C)栈底元素永远不能被删除 ( D)栈底元素最先能被删除 8 在数据库中,数据模型包括数据结构、数据操作和 ( )。 ( A)数据约束 ( B)数据类型 ( C)关系运算 ( D)查 询 9 一名教师可讲授多门课程,一门课程可由多名教师讲授。则实体教师和课程间的联系是 ( )。 ( A) 1: 1联系 ( B) 1: m联系 ( C) m: 1联系 ( D) m: n联系 10 支持子程序调用的数据结构是 ( )。 ( A)栈 ( B)树 ( C)队列 ( D

4、)二叉树 11 以下正确的说法是 ( )。 ( A)用户若需要调用标准库函数,调用前必须重新定义 ( B)用户可以重新定义标准库函数,但若重新定义,该函数将失去原有意义 ( C)用户系统根本不允许用户重新定义库函数 ( D) 用户若需要调用库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统会自动寻找该文件 12 下列叙述中错误的是 ( )。 ( A) C程序可以由一个或多个函数组成 ( B) C程序可以由多个程序文件组成 ( C)一个 C语言程序只能实现一种算法 ( D)一个 C函数可以单独作为一个 C程序文件存在 13 设有定义: int a; float b; 执行

5、scanf(” 2d f , ( C) X41; ( D) OX41 16 有以下程序: #include main() int a=3: a+=a一 =a*a: prinff(“ d n”, a); 程序的输出结果是 ( )。 ( A) 0 ( B) 9 ( C) 3 ( D)一 12 17 设有定义: char s81; int i=0; 以下不能将一行 (不超过 80个字符 )带有空格的字符串正确读入的语句或语句组是( )。 ( A) gets(s); ( B) while(si+=getchar()!= n); si= 0; ( C) scanf(“ s”, s); ( D) dosc

6、anf(“ c”, si); while(si+!= n); si= 0; 18 有以下程序: #include main() char c1, c2, c3, c4, c5, c6; scanf(“ c c c c”, &c1, &c2&c3, &c4); c5=getchar(); c6=getchar(); putchar(e1); putchar(c2); prinff(“ c e n”, c5, c6); 程序运行后,若从键盘输入 (从第 1列开始 ): 123 45678 则输出结果是 ( )。 ( A) 1256 ( B) 1245 ( C) 1278 ( D) 1267 19

7、有以下程序: #include main( ) im a, b; for(a=0; a,则输出结果是 ( )。 ( A) 2 3 3 4 5 6 ( B) 2 3 4 ( C) 2 2 3 4 4 4 ( D) 2 3 4 3 4 4 20 对于 if(表达式 )语句,以下叙述中正确的是 ( )。 ( A) “表达式 ”的值可以是任意合法的数值 ( B)变量不 能出现在 “表达式 ”中 ( C)常量不能出现在 “表达式 ”中 ( D)如果 “表达式 ”的值不是逻辑值,程序会出编译错误 21 若有以下程序: #include main() int c; c=13 115; printf(“ d

8、n”, c); 则程序的输出结果是 ( )。 ( A) 13 ( B) 15 ( C) 18 ( D) 5 22 有以下程序: #include main() int a=1, b=0; if(一一 a)b+; else if(a=0)b+=2; else b+=3; printf(“ d n”, b); 程序运行后的输出结果是 ( )。 ( A) 0 ( B) 1 ( C) 2 ( D) 3 23 有以下程序: #include main( ) int i, array6=1, 5, 0, 4; for(i=0; i main() int a=3: d0 printf(“ d, ”, a一

9、=2); while(!(一一 a); printf(“ n”); 程序运行后的输出结果是 ( )。 ( A) 1,一 3, ( B) 1,一 2, ( C) 3, 0, ( D) 1, 0, 28 若有定义: char s30=0; 运行时输入: This is a string 则以下不能正确读入整个字符串 This is a string到字符数组 s中的语句组是 ( )。 ( A) scanf(“ s”, s); ( B) gets(s); ( C) for(i=0; (c=getchar()!= n; +)si=c; ( D) i=0; while(C=getchar()!= n)j

10、i+=c; 29 有以下程序: #include main() int X; for(X=3; X void fun(int a, int b) int t; t=a; a=b; b=t; main() int c10=1, 2, 3, 4, 5, 6, 7, 8,9, 0, i; for(i=0; i int fun(int n) int a; if(n=1)return 1; a=n+fun(n一 1); return(a); main() printf(“ d n”, fun(5); 程序的输出结果是 ( )。 ( A) 10 ( B) 14 ( C) 15 ( D) 9 32 以下选项

11、中,没有编译错误的是 ( )。 ( A) char str3=d, e, b, u, g, 0; ( B) char strl5=“pass”, str26; str2=strl: ( C) char name10; name=“china”; ( D) char str4; str4=“hello world”; 33 有以下程序: #include int add(int a, int b) return(a+b); main() int k, (*f)(), a=5, b=10; f=add; 则以下函数调用语句中错误的是 ( )。 ( A) k=*f(a, b); ( B) k=add

12、(a, b); ( C) k=(*f)(a, b); ( D) k=f(a, b); 34 以下关于 C语言函数参数传递方式的叙述中正确的是 ( )。 ( A)数据只能从实参单向传递给形参 ( B)数据可以在实参和形参之间双向传递 ( C)数据只能 从形参单向传递给实参 ( D) C语言的函数参数既可以从实参单向传递给形参,也可以在实参和形参之间双向传递,可视情况选择使用 35 设已有定义: float x; 则以下对指针变量 P进行定义且赋初值的语句中正确的是 ( )。 ( A) float*p=&; x; ( B) int*P=(float)x; ( C) float p=&; x; (

13、D) float*P=1024: 36 以下叙述中正确的是 ( )。 ( A)在 C语言中,预处理命令行都以 #开头 ( B)预处理命令行必须位于 C源程序的起始位置 ( C) #include必须放在 C程序的开头 ( D) C语言的预处理不能实现宏定义和条件编译的功能 37 有以下程序: #include int funl(int a, int b) return a+b; int flun2(int a, int b) retum ab; int fun(int(*t)(int, int), int x, int y) return(*t)(x, y); main() int x; x=

14、fun(funl, 9, 3); x+=fun(fun2, 8, 3); printf(“ d n”, x); 程序运行后的输出结果是 ( )。 ( A) 24 ( B) 23 ( C) 17 ( D) 22 38 有以下程序: #include void sp(int*a) int b=2; a= b: *a=*a*2: prinff(“ d, ”, *a); main() int k=3, *p=&k; sp(p); pfinff(“ d, d n”, k, *p); 则程序的输出结果是 ( )。 ( A) 4, 3, 3 ( B) 4, 3, 4 ( C) 6, 3, 6 ( D) 6,

15、 6, 6 39 有以下程序: #include void my() char ch: ch=getchar(); if(ch!=c)my(); putchaur(ch); main() my(); 执行时,输入 abc,则输出结果是 ( )。 ( A) abc ( B) ababc ( C) bca ( D) cba 40 有以下程序: #include mmn() unsigned chaur a=8, c; c=a3: pnnff(“ d n”, c); 程序运行后的输出结果是 ( )。 ( A) 32 ( B) 16 ( C) 1 ( D) 0 国家二级 C语言程序设计机试(选择题)模

16、拟试卷 4答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构以及所处理的数据量等有关。 2 【正确答案】 A 【试题解析】 软件按功能可以分为:应用软件、系统软件、支撑软件。操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件。所以B、 C、 D选项都是系统软件,只有 A选项是应用软件。 3 【正确答案】 B 【试题解析】 软件测试过程一般按 4个步骤进行,即单 元测试、集成测试、验收测试 (确认测试 )和系统测试。故答案应该选 B。 4 【正确答案】 A 【试题解析】 详细设计的任务是为软件结构图而非总体

17、结构图中的每一个模块确定实现算法和局部数据结构、用某种选定的表达工具表示算法和数据结构的细节,因此 A选项描述错误。 5 【正确答案】 D 【试题解析】 快速排序最坏情况就是每次选的基准数都和其他数做过比较,共需比较 (n一 1)+(n一 2)+1=n(n 一 1) 2,故 D选项正确。 6 【正确答案】 D 【试题解析】 根据二叉树的基本性质:在任 意一棵二叉树中,度为 0的叶子结点总比度为 2的结点多一个,因此本题中度为 2的结点为 11=0个,据此可以知道本题中的二叉树的每一个结点都有一个分支,所以共有 7个结点、共 7层,即深度为 7,选择 D。 7 【正确答案】 A 【试题解析】 栈

18、是 “先进后出 ”的数据结构,因此栈顶元素最后入栈却最先被删除,栈底元素最先入栈却最后被删除,答案为 A。 8 【正确答案】 A 【试题解析】 数据模型是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示和操作提供一个抽象的 框架,即描述了数据结构、数据操作及数据约束。故正确答案为 A。 9 【正确答案】 D 【试题解析】 因为一名教师可讲授多门课程,而一门课程又能由多名教师讲授,所以教师和课程之间是多对多的关系,可以表示为 m: n,选择 D。 10 【正确答案】 A 【试题解析】 栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表。在主程序

19、调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,所以 A选项正确。 11 【正确答案】 D 【试题解析】 无论是标准库函数,还是别的函数,都属于函数的范畴,都允许用户重新定义和使用,使用的时候: include命令必须以 “#”号开头,文件名用一对双引号或一对尖括号括起来,系统提供的头文件是以 h作为文件后缀。 12 【正确答案】 C 【试题解析】 一个 C程序可以有一个或多个程序文件,也可以有一个或多个函数,所以一个 C语言程序可以实现多种算法,答案选 C。 13 【正确答案】 A 【试题解

20、析】 scanf()函数的一般形式为: scan(格式控制,地址 表列 )。其中, “格式控制 ”是用双引号括起来的字符串,也称为 “转换控制字符串 ”,它包括两种信息: 格式说明,由 “ ”和格式字符组成; 普通字符,即需要原样输入的字符。 “地址表列 ”是需要接收输入数据的一系列变量的地址。本题中的 “格式控制 ”是 “ 2d f”, “ 2d”的意思是要输入一个整数,但该整数最宽只占 2个字符,而“ 2d”是要输入一个浮点数。题目要求输入的是 876空格 543 0,所以 scanf()函数将 87赋给 a,将 6赋给 b。 14 【正确答案】 B 【试题解析】 取余操作数只能是整数,

21、x+n和 数值 5不能作为赋值的左值,所以 A、 C、 D选项错误。 15 【正确答案】 A 【试题解析】 xhh表示 1到 2位十六进制所代表的字符,故答案为 A。 16 【正确答案】 D 【试题解析】 等号 “=”运算符是从右到左,且与 “+、一、 *”运算符比,优先级较低。首先计算 a*a,结果为 9,执行 a=a一 9后 a的值为一 6,然后执行 a+=a,即a=a+a=一 6+(一 6),所以值为一 12。 17 【正确答案】 C 【试题解析】 函数 scanf()输入字符串时默认空格为间隔符,所以不能输入空格, 答案选 C。 18 【正确答案】 B 【试题解析】 对于字符型数据的输

22、入而言,从键盘上输入的字符,不管是否可以输出,都会被读入字符型变量中。因此, c1=1, c2=2, c3=3, c4=, c5=4,c6=5,输出 c1, c2, c5, c6的结果为 1245,答案选 B。 19 【正确答案】 A 【试题解析】 这是一个循环结构嵌套选择结构,按照外层循环,内层选择一步一步处理即可。本题重点注意, switch语句中并没有出现 break语句,所以内层循环是不会跳出的。 20 【正确答案】 A 【试题解析】 B、 C、 D选项描述比较片面。 21 【正确答案】 B 【试题解析】 本题考查位运算中按位或运算符,或运算只要两个比较的位中有一个为 1,其结果是 1

23、,否则结果为 0。 13用二进制表示为 00001101, 15用二进制表示为 00001111,或运算后结果为 00001111,即 15,故 B选项正确。 22 【正确答案】 C 【试题解析】 “+”和 “一一 ”运算,当以前缀形式出现时,则先进行加 1或减 1操作,再进行其他运算;当以后缀形式出现时,则先进行其他运算,再进行加 1或减 1操作。 a初始 定义为 1, b为 0,执行一一 a, a的值变为 0,即 if判断为假,执行 b+=2,输出 b的值为 2。 23 【正确答案】 B 【试题解析】 本题主要考查一维数组的输出。由于数组中有 6个元素,但初始化数组的时候只给出 4个元素,

24、所以 array5=0, array6=0,前面几位元素依次输出,不够位数补 0,所以选项 B正确。 24 【正确答案】 C 【试题解析】 同类元素的集合称为数组,数组元素在内存中占据连续的存储空间, C选项正确。方括号中可以为整型变量或者常量表达式, A选项错误。在使用逗号运算符 的情况下,一条语句可以定义多个数组, B选项错误。数组元素在数组中的下标为整型常量或者变量构成的整型表达式,不能为浮点数, D选项错误。答案选 C。 25 【正确答案】 C 【试题解析】 考查二维数组的初始化。初始化二维数组的时候,若给数组的全部元素均赋初值,此时第一维的元素个数可以不指定,部分赋值时,最后一行元素

25、不写完整,此时数组第一维元素个数仍然可以不指定。题中为按行给数组 m赋值,最后一行只有部分赋初值,答案选 C。 26 【正确答案】 A 【试题解析】 A选项正确, char c1, c2, *c3, c440表示定义了两个字符变量c1、 c2,一个字符指针 c3,一个字符数组 c4。数组的下限永远为 0,选项 B、 C、D错,答案选 A。 27 【正确答案】 B 【试题解析】 本题重点考查 dowhile 语句,该循环语句的特点是,先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此, dowhile 循环至少要执行一次循环语句。变量 a赋初值为 3,每

26、循环一次需执行语句 a一 =2一次,同时循环条件使变量 a自减 1,所以第一次循环后变量 a变为 1,第 2次循环后变量 a变为一 2。故 B选项正确。 28 【正确答案】 A 【试题解析】 考查基本的字符串输入控制语句。 29 【正确答案】 A 【试题解析】 条件运算符组成条件表达式的一般形式为:表达式 1?表达式 2:表达式 3。其求值规则为:表达式 1值为真,则以表达式 2的值作为条件表达式的值,否则以表达式 3的值作为整个条件表达式的值。本题中语句 printf(x2)?(“* dt): (“# dI, x);含义为变量 x对 2求余,如果结果为真,则按照 “*d”出,否则按照 “#

27、d”出。故 A选项正确。 30 【正确答案 】 A 【试题解析】 函数 fun()属于值传参,形参的变化不会影响实参,所以函数调用结束后,数组 c没有任何变化,输出结果为选项 A。 31 【正确答案】 C 【试题解析】 考查递归函数。函数 fun()的功能是计算 1到 n之间的数字之和,所以计算结果为 15,答案选 C。 32 【正确答案】 A 【试题解析】 B选项中,不能直接将字符数组名直接赋值给另一个字符数组名。C选项赋值错误,不能将一个字符串常量赋值给一个字符指针。 D选项定义 str4时需要定义其长度。故 A选项正确。 33 【正确答 案】 A 【试题解析】 int(*f)()为一个函

28、数指针变量,返回值为整型, f为一个指针变量,指向一个已经定义的函数,在调用该函数的时候需要把参数写在相应的小括号内,即 (*指针名 )(参数或参数列表 ),所以选项 A调用错误,答案选 A。 34 【正确答案】 A 【试题解析】 数据只能由实参单向传递给形参称为 “值传递 ”,而不能由形参传回来给实参, A选项正确;数组名、指针等作参数,实参传递给形参地是地址值,这样形参和实参就指向同一段内存单元,在函数体内对形参数据的改变也将影响到实参。实参和形参之间不可 双向传递, BD选项错误。数据不能从形参传递给实参, C选项错误。 35 【正确答案】 A 【试题解析】 考查指针变量的初始化。只能把

29、对应类型的变量的地址赋值给指针,选项 B错误;定义指针时要加上 “*”标明该变量为一个指针变量,选项 C错误;不能把一个整数直接赋值给指针变量,选项 D错误;所以答案选 A。 36 【正确答案】 A 【试题解析】 c语言中,凡是以 “#”开头的都被称为编译预处理行,选项 A正确;预处理行可以放在 C源程序的任何位置,习惯放在起始位置,选项 B错误;语句 “#include”必须放在使用文件 stdio h中相关方法的语句之前,但是不一定非要放在 C程序开头,选项 C错误;预处理包括宏定义、文件包含和条件编译等,选项 D错误。答案选 A。 37 【正确答案】 C 【试题解析】 本题主要考查函数作

30、为形参时的使用,由 x=fun(funl, 9, 3);可得到 x=9+3=12,而后直接传入函数 flin2, x=x+83=12+5=17。故 C选项正确。 38 【正确答案】 A 【试题解析】 首先在主函数中给整型变量 k赋值为 3,将变量 k的地址赋给指针变量 p,调用 sp函数 ,将实参 p的值传给形参 a,在 sp函数中,指针变量 a又获得变量 b的地址,通过运算后,输出 a的值为 4,返回主函数,输出 k的值和 p的值为 3和 3。故 A选项正确。 39 【正确答案】 D 【试题解析】 my()递归,直到输入了 c开始返回。递归使用的是栈的思想,因此最后输入进去的最先返回并输出。所以结果是 cba。 40 【正确答案】 C 【试题解析】 字符常量与其 ASC 码值一一对应,在计算的时候,可以使用该字符的 ASC 码参与运算,输出时会根据格式控制符输出对应的字符或者 ASC码。右移运算符 “”的运算规则是把左边运算数的各二进制位全部右移 n位, n取决于 “”右边的数值。字符 a的 ASC 码值为 8,对应二进制为 1000,所以a3=1,输出的字符 c的 ASC 码值为 1,答案选 C。

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1