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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

[计算机类试卷]国家二级(C语言)机试模拟试卷49及答案与解析.doc

1、国家二级( C语言)机试模拟试卷 49 及答案与解析 一、选择题 1 算法的时间复杂度是指 ( A)设计该算法所需的工作量 ( B)执行该算法所需要的时间 ( C)执行该算法时所需要的基本运算次数 ( D)算法中指令的条数 2 设循环队列存储空间为 Q( 1:50) ,初始状态为 front=rear=50。经过一系列入队和退队操作后, front=rear=25,则该循环队列中元素个数为 ( A) 26 ( B) 25 ( C) 24 ( D) 0或 50 3 某棵树的度为 4,且度为 4、 3、 2、 1的结点数分别为 1、 2、 3、 4,则该树中的叶子结点数为 ( A) 11 ( B)

2、 9 ( C) 10 ( D) 8 4 设某二叉树的前序序列与中序序列均为 ABCDEFGH,则该二叉树的后序序列为 ( A) HGFEDCBA ( B) EFGHABCD ( C) DCBAHGFE ( D) ABCDEFGH 5 下列叙述中正确的是 ( A)二分查找法适用于任何存储结构的有序线性表 ( B)二分查找法只适用于顺序存储的有序线性表 ( C)二分查找法适用于有序循环链表 ( D)二分查找法适用于有序双向链表 6 下列序列中不满足堆条件的是 ( A)( 98, 95, 93, 96, 89, 85, 76, 64, 55, 49) ( B)( 98, 95, 93, 94, 89

3、, 85, 76, 64, 55, 49) ( C)( 98, 95, 93, 94, 89, 90, 76, 64, 55, 49) ( D)( 98, 95, 93, 94, 89, 90, 76, 80, 55, 49) 7 下面属于面向对象方法中对象基本特点的是 ( A)多态性 ( B)方法唯一性 ( C)可修改性 ( D)灵活性 8 下面可以作为软件需求分析工具的是 ( A)包图 ( B)程序流程图 ( C) PAD图 ( D)数据流程图 (DFD图 ) 9 数据库的数据模型分为 ( A)层次、关系和网状 ( B)网状、环状和链状 ( C)大型、中型和小型 ( D)线性和非线性 10

4、 数据库系统的数据独立性是指 ( A)不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序 ( B)不会因为数据的变化而影响应用程序 ( C)不会因为存储策略的变化而影响存储结构 ( D)不会因为某些存储结构的变化而影响其他的存储结构 11 以下叙述正确的是 ( A) C程序由函数组成,可以不包含 main函数 ( B)每个 C程序文件中的 main函数都应当放在最前面 ( C)每个 C程序文件都应当包含一个 main函数 ( D)每个 C程序都只能有一个 main函数 12 以下叙述错误的是 ( A)计算机可以直接识别由十六进制代码构成的程序 ( B)可以连续执行的指令的集合称为 “程

5、序 “ ( C)程序是人与计算机 “对话 “的语言 ( D)计算机可以直接识别由 0和 1组成的机器语言代码 13 以下与数学表达式 “0 x 5且 x2“ 不等价的 C语言逻辑表达式是 ( A) (0 x 5) else printf(“passn“); ( B) if(math 60) printf(“failn“); else if(engl =60) printf(“passn“); else printf(“failn“); ( C) if (math 60) |(engl 60) printf(“failn“); else printf(“passn“); ( D) f (math

6、 =60) else printf(“failn“); 16 设有以下程序段 main( ) int xMN; . Arrlet(x); . 则作为函数 Arrlet的形参,以下表示形式非法的是 ( A) int xM ( B) int (*x)N ( C) int x N ( D) int xMN 17 有以下程序 #include stdio.h void fun( int n ) if( n/2 ) fun(n/2); printf(“%d“,n%2 ); main() fun( 10 ); printf(“n“); 程序运行后的输出结果是 ( A) 0101 ( B) 1000 ( C

7、) 1100 ( D) 1010 18 有以下程序 #include stdio.h void fun(char *a,char *b) char *s=a; while(*s) s+; s-; while(s =a) *b=*s; s-; b+; *b=0; main() char s1=“abc“,s26; fun(s1,s2); puts(s2); 程序运行后的输出结果是 ( A) cbaabc ( B) abc ( C) cba ( D) abccba 19 有以下程序 #include stdio.h main( ) char b410; int i; for ( i=0; i 4;

8、 i+ ) scanf( “%s“, bi ); for( i=3; i =0; i- ) printf( “%s “, bi ); printf( “n“ ); 执行时若输入 : Peach flower is pink.回车 ,则输出结果是 ( A) Peachflower is pink. ( B) pink. is flower Peach ( C) Peachflowerispink. ( D) Pink is flower peach. 20 有以下程序 #include stdio.h int * f(int *s) s1 +=6; *s=7; s+=2; return s; m

9、ain( ) int a5=1,2,3,4,5, *p=a; p= f(p); printf( “%d,%d,%dn“, a0, a1, *p ); 程序运行后的输出结果是 ( A) 9,8,9 ( B) 7,8,7 ( C) 7,8,3 ( D) 1,2,1 21 设有定义: char s81; int i=0; 以下不能将一行(不超过 80个字符)带有空格的字符串正确读入的语句或语句组是 ( A) scanf(“%s“,s); ( B) while(si+=getchar()!=n);si=0; ( C) gets(s); ( D) do scanf(“%c“, while(si+!=n)

10、; si=0; 22 以下叙述中错误的是 ( )。 ( A) C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 ( B) C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 ( C)用 C语言编写的程序称为源程序,它以 ASCII代码形式存放在一个文本文件中 ( D) C语言源 程序经编译后生成后缀为 .obj的目标程序 23 以下选项中,合法的一组 C语言数值常量是 ( )。 ( A) 12. 0Xa23 4.5e0 ( B) 028 .5e 3 0xf ( C) .177 4e1.5 0abc ( D) 0x8A 10,000 3.e5 24 以下选

11、项中不合法的标识符是 ( )。 ( A) system(”CLS”); printf(”nThe value of functionis:1f n”, fun(n); 四、程序设计题 43 规定输入的宁符串中只包含字母和 *号。编写函数 fun,其功能是:将字符串中的前导 *号全部删除,中间和尾部的 *号不删除。 例如,字符串中的内容为 “*A*BC*DEF*G*”,删除后,字符串中的内容应当是 “A*BC*DEF*G*”。编写函数时,不得使用 C语言提供的字符串函数。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。

12、 试题程序: #include stdio h #include conio h void fun(char*a) void main() char 881; printf(“Enter a string: n”); gets(s); fun(s); printf(“The strLng after deleted: n”); puts(s); 国家二级( C语言)机试模拟试卷 49 答案与解析 一、选择题 1 【正确答案】 C 【试题解析】 算法的时间复杂度是指执行算法所需要的计算工作量。它与算法程序执 行的具体时间并不一致,因为算法执行的具体时间受到所使用的计算机、程序设计语言以及算法实现

13、过程中许多细节的影响。算法的计算工作量是用算法所执行的基本运算次数来度量的。故选 C选项 2 【正确答案】 D 【试题解析】 循环队列是队列的一种顺序存储结构,用队尾指针 rear指向队列中的队尾元素,用排头指针 front指向排头元素的前一个位置。循环队列长度为50,由初始状态为 front=rear=50可知此时循环队列为空。入队运算时,首先队尾指针 rear进 1(即 rear+1),然后在队尾指针 rear指向的位置插 入新元素。特别的,当队尾指针 rear=50+1时,置 rear=1。退队运算时,排头指针 front进 1(即front+1),然后删除 front指针指向的位置上的

14、元素,当排头指针 front=50+1时,置 front=1。 若经过运算, front=rear可知队列空或者队列满,则队列中有 0或者 50个元素。故选 D选项 . 3 【正确答案】 A 【试题解析】 由题目可以知道,若四种度的结点分开成子树,共包含结点(4+1)+2(3+1)+3(2+1)+4(1+1)=30 个,当组合成一棵树时,任选一个度不为 0的结点作为根结点,则新的树结点个数为 30-2-3-4=21个,则该树中叶子结点个数为21-1-2-3-4=11。 故选择 A选项。 4 【正确答案】 A 【试题解析】 二叉树遍历可以分为 3种:前序遍历(访问根结点在访问左子树和访问右子树之

15、前)、中序遍历(访问根结点在访问左子树和访问右子树两者之间)、后序遍历(访问根结点在访问左子树和访问右子树之后)。 二叉树的前序序列与中序序列相同,说明此树结点没有左子树 ,且第一个节点 A为根节点,而后序遍历中根节点应在最后被访问,即节点 A在最后出现,由此推断出后序 遍历为 HGFEDCBA,故 A选项正确 . 5 【正确答案】 B 【试题解析】 二分法查找也称拆半查找,能使用二分法查找的线性表必须满足两个条件:顺序存储结构以及线性表有序。循环链表和双向链表都不是顺序存储结构,故 B 选项正确。 6 【正确答案】 A 【试题解析】 若有个元素的序列,将元素按顺序组成一棵完全二叉树,当且仅当

16、满足下列条件时称为堆:大根堆,所有结点的值大于或等于其左右子结点的值;小根堆,所有结点的值小于或等于其左右子结点的值。 B、 C、 D选项属于大根堆, A选项由于 98 95,判断 属于大根堆,但 95 96,不满足条件,不是堆,故选择 A选项 . 7 【正确答案】 A 【试题解析】 对象的基本特点如下:由上表可知,本题选 A选项 . 8 【正确答案】 D 【试题解析】 需求分析方法可以分为结构化分析方法和面向对象的分析方法,结构化分析工具包括:数据流图( DFD)、数据字典( DD)、结构化英语、判定表和判定树等。 选项 B中的程序流程图和选项 C中的 PAD图是过程设计工具,选项 A中的包

17、图用于 UML 面向对象建模。故选 D选项 . 9 【正确答案】 A 【试题解析】 数据库的数据 模型分为层次、关系和网状三种。其中: 用树形结构表示实体及其之间联系的模型称为层次模型,模型中结点是实体,树枝是联系,从上到下是一对多的关系。 用网状结构表示实体及其之间联系的模型称为网状模型,它是层次模型的扩展,表示多个从属关系的层次结构,呈现一种交叉关系。 关系模型的数据结构非常单一,在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。故本题选 A选项。 10 【正确答案】 A 【试题解析】 数据库系统的数据独立性,是指数据库中数据独立于应用程序且不依赖于应用程序,即数据的逻辑结构

18、、 存储结构与存取方式的改变不会影响应用程序。故选 A选项。 11 【正确答案】 D 【试题解析】 虽然一个 C程序可以包含多个文件,但是有且只有一个文件中包含 main 函数,因此,选项 A,C错误。 main 函数可以放在程序的任意位置。因此,选项 B错误。答案为 D选项。 12 【正确答案】 A 【试题解析】 计算机只能识别机器码,机器码是由二进制构成的,因此只能识别二进制构成的代码程序 ,不可以直接识别由十六进制代码构成的程序,十六进制的代码必须转为二进制才能在计算机上直接执行。因此选项 A错误 13 【正确答案】 A 【试题解析】 0 x 5在 C语言里不能这样直接表达,需要分步骤来

19、实现,一般使用 x 0a0=7;修改 a1,*s=7修改 a0,s+=2;s指向第三个元素,返回 s,并赋给指针 p,则 *p=3。,因此打印7,8,3,答案为 C选项 21 【正确答案】 A 【试题解析】 scanf(“%s“,s);字符串不能整体输入,字符串数组一般采取循环输入,因此选择 A错误。 getchar()每一次读入一个字符, gets()一次读入多个字符,因此 B,C,D正确。答案为 A选项。 22 【正确答案】 A 【试题解析】 C语言中的非执行语句不会被编译,不会生成二进制的机器指令,所以 A)错误。由 C语言构成的指令序列称 C源程序, C源程序经过 C语言编译程序编译之

20、后生成一个后缀为 .OBJ的二进制文件 (称为目标文件 );最后要由 “连接程序 “把此 .OBJ文件与 C语言提供的各种库函数连接起来生成一个后缀为 .EXE的可执行文件。 23 【正确答案】 A 【试题解析】 C语言中八进制整型常量的开头是数字 0,十六进制整型常量的开头数字是 0x。 C语言中的实型常量有两种 表示形式:小数形式,小数形式表示的实型常量必须要有小数点;指数形式,以 “e“或 “E“后跟一个整数来表示以 10为底数的幂数,且规定字母 e或 E 之前必须要有数字,且 e或 E后面的指数必须为整数。 B)选项中 028错误,八进制中没有数字 8。 C)选项中 4e1.5中 e后

21、面的指数不是整数。 D)选项中 3.e5小数点后面缺少数字。 24 【正确答案】 A 【试题解析】 C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。因为 C语言中区分大小写,所以 B)选项中的 “FOR“可以作 为标识符来用。 A)选项中含有非法字符 &,所以选择 A。 25 【正确答案】 A 【试题解析】 B)选项中函数 pow(x, e)错误应该直接使用 exp(x)函数。 C)选项中函数 abs(nx ex)错误,应该使用 fabs()返回浮点数的绝对值。 D)选项中pow(x, n)参数顺序错误。 26 【正确答案】 B 【试题解析】 取模

22、运算符 “%“,二元运算符,具有左结合性,参与运算的量均为整型。选项 B中的 a变量是 double实型,所以 B)不符合规定。 27 【正确答案】 D 【试题解析】 C语言中利用 sizeof()函数判断数据类型长度,在 VC6.0平台中,整型 int占有 4个字节, double型数据占有 8个字节。 28 【正确答案】 D 【试题解析】 按照从键盘输入的数据可以判断字符 1给了变量 a,字符 2给了变量 b,字符 CR即回车给了变量 c,字符 3给了变量 d。所以打印输出的结果为D)选项。 29 【正确答案】 A 【试题解析】 C语言的逻辑运算符比较特别,它的操作数没有明确的数据类型,可

23、以是任意合法的表达式,所以选择 A。 30 【正确答案】 C 【试题解析】 本题中 if(a 1)b 1;与 else d 3; 之间多了语句 c 2;所以会出现 else语句的位置错误的编译失败提示。 31 【正确答案】 B 【试题解析】 case常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行 switch 语句时,根据 switch 的表达式,找到与之匹配的 case语句,就从此case子句执行下去,不在进行判断,直到碰到 break 或函数结束为止。所以执行内层 switch(y)时只执行了 a,此时 a的值为 1。然后执行外层 case 2语句的 a; b; a为 2,

24、b 为 1。所以结果为 B)。 32 【正确答案】 C 【试题解析】 由于内层循环 for( k 1; k 3; k )后面直接跟了空语句“; “所以在循环内部什么操作也不做,跳出外层循环后执行打印语句,所以打印了一个 “*“,选择 C。 33 【正确答案】 D 【试题解析】 case常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行 switch 语句时,根据 switch 的表达式,找到与之匹配的 case语句,就从此case子句执行下去,不再进行判断,直到碰到 break 或函数结束为止。简单的说break 是结束整个循环体,而 continue是结束单次循环。 B)选项中当产

25、生的随机数n 为 4时要执行打印操作。 C)选项中当产生的随机数为 1和 2时分别执行 case3与case4后面语句的内容。由于存在 break 语句所以 for循环不是固定执行 8次,执行次数与产生的随机数 n 有关系。 34 【正确答案】 A 【试题解析】 第一次调用 m f(f(f(1),第二次为 m f(f(2),第三次为 mf(4),即返回值为 8。 35 【正确答案】 A 【试题解析】 不能将一个整数直接赋给指针变量作为地址, 所以 A)是错误的。函数的返回值可以是地址,即指针。函数调用中形参值的变化不会传递给实参。 36 【正确答案】 B 【试题解析】 指针是用来存放地址的变量

26、,用 (类型名 *指针变量名 )的形式定义。赋值时应将某个变量地址即 &x 赋给指针变量,所以选择 B。 37 【正确答案】 D 【试题解析】 D)选项中 x23定义的是一个两行三列的二维数组,而在给数组元素赋值时却赋成了三行,所以错误。 38 【正确答案】 A 【试题解析】 本题中的函数 fun()的功能是将数组 k 中前 5个元素倒 序,所以返回后数组 k中的元素排列是 5,4,3,2,1,6,7,8,9,10。所以打印输出 k2到 k7元素的值,即 321678,所以选择 A。 39 【正确答案】 A 【试题解析】 本题中由 fun 函数可知, b0 a00 a03 1 4 3, b1

27、a11 12 6 7 1, b2 a22 21 11 10 1, b3 a33 31 16 13 3。所以主函数中打印 y数组元素的值为 A)选项。 40 【正确答案】 C 【试题解析】 字符串的输入不能使用 scanf(“%s“, s);而应该使用 gets(s)。 二、程序填空题 41 【正确答案】 (1)M (2) (3)k 【试题解析】 填空 1:题目指出 ss所指字符串数组中共有 M个字符串,所以 for循环语句的循环条件是 i M。 填空 2:要求求长度最短的字符串, *n中存放的是已知宁符串中长度最短的字符串的长度,将当前字符串长度与 *n比较,若小于 *n,则将该长度值赋给 *

28、n,因此 if语句的条件表达式为 len *n。 填空 3:将最 短字符串的行下标作为函数值返回,变量 k存储行下标的值。 三、程序修改题 42 【正确答案】 (1)double fun(int n) (2)s=s+(double)a, b; 【试题解析】 (1)由语句 “return(s); ”和变量 s定义为 double型可知,该函数定义时其类型标识符为 double类型。 (2)注意数据类型 double的书写格式。 四、程序设计题 43 【正确答案】 void fun(char*a) char*p=a; while(*p=*) p+; *指针 p指向字符串第一个字母 * for(; *p!= 0; p+, a+) *a=*p; *从第一个字母开始,其后的字符都放入指针 a所指的字符串中 * *a=0; *在字符串最后加上字符串结束标识 *

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