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

上传人:eveningprove235 文档编号:503262 上传时间:2018-11-29 格式:DOC 页数:31 大小:83KB
下载 相关 举报
[计算机类试卷]国家二级(C语言)笔试模拟试卷101及答案与解析.doc_第1页
第1页 / 共31页
[计算机类试卷]国家二级(C语言)笔试模拟试卷101及答案与解析.doc_第2页
第2页 / 共31页
[计算机类试卷]国家二级(C语言)笔试模拟试卷101及答案与解析.doc_第3页
第3页 / 共31页
[计算机类试卷]国家二级(C语言)笔试模拟试卷101及答案与解析.doc_第4页
第4页 / 共31页
[计算机类试卷]国家二级(C语言)笔试模拟试卷101及答案与解析.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、国家二级( C语言)笔试模拟试卷 101及答案与解析 1 在下列选项中, _ 不是一个算法一般应该具有的基本特征。 ( A)确定性 ( B)可行性 ( C)无穷性 ( D)拥有足够的情报 2 希尔排序法属于 _ 类型的排序法。 ( A)交换类排序法 ( B)插入类排序法 ( C)选择类排序法 ( D)建堆排序法 3 下列关于队列的叙述中正确的是 _。 ( A)在队列中只能插入数据 ( B)在队列中只能删除数据 ( C)队列是先进先出的线性表 ( D)队列是先进后出的线性表 4 对长度为 N的线性表进行顺序查找,在最坏情况下所需要的比较次数为 _。 ( A) N+1 ( B) N ( C) (N

2、+1)/2 ( D) N/2 5 信息隐蔽的概念与下述 _ 概念直接相关。 ( A)软件结构定义 ( B)模块独立性 ( C)模块类型划分 ( D)模拟耦合度 6 面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是 _ 。 ( A)模拟现实世界中不同事物之间的联系 ( B)强调模拟现实世界中的算法而不强调概念 ( C)使用现实世界的概念抽象 地思考问题从而自然地解决问题 ( D)鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考 7 在结构化方法中,软件功能分解属于软件开发中的 _ 阶段。 ( A)详细设计 ( B)需求分析 ( C)总体设计 ( D)编程调试 8 软件调

3、试的目的是 _。 ( A)发现错误 ( B)改正错误 ( C)改善软件的性能 ( D)挖掘软件的潜能 9 按条件 f对关系 R进行选择,其关系代数表达式为 _。 ( A) ( B) ( C) ( D) 10 数据库的物理设 计是为一个给定的逻辑结构选取一个适合应用环境的 _ 的过程,包括确定数据库在物理设备上的存储结构和存取方法。 ( A)逻辑结构 ( B)物理结构 ( C)概念结构 ( D)层次结构 11 以下有 4组用户标识符,其中合法的一组是 _。 ( A) FOR ( B) 4d ( C) f2 G3 ( D) WORD -sub DO IF void Case Size abc de

4、fine 12 下列属于 C语言语句的是 _。 ( A) pnntf(“%dn,a) ( B) #include stdio.h ( C) a=b; b=c; c=a; ( D) /*this is a program*/ 13 下列叙述中正确的是 _。 ( A) C程序中注释部分可以出现在程序中任何合适的地方 ( B)花括号 “和 “只能作为函数体的定界符 ( C)构成 C程序的基本单位是函数,所有函数名都 可以由用户命名 ( D)分号是 C语句之间的分隔符,不是语句的一部分 14 以下合法的赋值语句是 _。 ( A) X=Y=100 ( B) D-; ( C) X+Y; ( D) C=in

5、t(A+B) 15 运行下面的程序,其输出结果为 _。 main() pintf(“%d,%d“,5%-3,-5%3); ( A) 2,-2 ( B) -2,2 ( C) -2,-2 ( D) 2,2 16 设 x,y均为 int型变量,且 x=10, y=3,则 printf(“%dn“x-,-y);语句的输出结果是 _。 ( A) 10,3 ( B) 9,3 ( C) 9,2 ( D) 10,2 17 设 x为 int型变量,执行以下语句, x=10; x+=x-x;x; x的值为 _。 ( A) 10 ( B) 20 ( C) 30 ( D) 40 18 X、 Y、 Z被定义为 mt型变

6、量,若从键盘给 X、 Y、 2输入数据,正确的输入语句是 _。 ( A) INPUTX,Y,Z; ( B) scanf(“%d%d%d“, ( D) read(“%d%d%d“, ( A) -6 ( B) 1 ( C) 2 ( D) -12 20 设血型占 2个字节,则 unsigned int所能表示的数据范围是 _。 ( A) 0 65535 ( B) -32769 32767 ( C) 1 65536 ( D) 0 32767 21 能正确表示 逻辑关系 “a10或 a0“的 C语言表达式是 _。 ( A) a =10 or a =0 ( B) a =0|a =10 ( C) a =10

7、i 10; i+) arri=i; for(i=1; i 4; i+) k+=arri+i; printf(“%dn“, k); 57 若 a=10, b=20,则表达式 !(a b) 的值是【 】。 58 有以下程序 : int fa(int x)return x*x; int fb(int x)returnx*x*x; int f(int(*f1)(), int(*f2)(), (int x) return f2(x)-f1(x); main() int i;i=f(fa,fb,2);printf(“%dn“,i); 程序运行后,输出结果是【 】。 59 下面程序的输出是【 】。 main

8、() enum emem1=3,em2=1,em3; char*aa=“AA“, “BB“, “CC“, “DD“; printf(“%s%s%sn“, aaem1,aaem2,aaem3); 60 若想通过以下输入语句使 a=5.0, b=4, c=3,则输入数据的形式应该是【 】。 int b,c; float a; scanf(“%f,%d,c=%d“, strcpy( strcpy( printf(“%sn“, B) ; 63 有以下定义和语句,则 sizeof(A) 的值是 【 】 ,而 sizeof(a.share)的值是 【 】 。 struct date int day; in

9、t mouth; int year; unionint share1; float share2; share; a; 64 下述函数用于统计一行字符 中的单词个数,单词之间用空格分隔。 word_num(str) for(i=0;stri!= 【 】; i+) if( 【 】 =)word=0; 【 】; return(num); 65 观察题目要求,可以知道以下几点: for循环的结束条件应当是: stri已是字符串的最后一个字符; stri代表字符串 str中的第 i+1个字符; 整形变量 num的值是要记录的单词的个数。 C语言中规定字符串的最后一个字符是一个隐含的字符串结束符 “0”

10、,所以在题中第一个空中应填写 “0”;题中第二个空应填写 “stri”,以判断当前位置的字符是否为空格;题中第三个空中应当填写 “num+”,通过变量 num的加 1累加得到字符串中的单词个数。 有一个已排好序的数组,今输入一个数,要求按原来的顺序规律将它插入到数组中。算法是:假设排序顺序是从小到大,对输入的数,检查它在数组中哪个数之后,然后将比这个数大的数顺序后移一个位置,在空出的位置上将该数插入。请在程序中的空白处填上一条语句或一个表达式 。 #define N 100 main() float aN+1,x; int i,p; for(i=0;i N;i+) scanf(“%f, for

11、(i=0,p=N;i N;i+) if(x ai) 【 】 ; for(i=N-1; 【 】 ;i-) ai+1=ai; ap=x; for(i=0; 【 】 ; i+) printf(“%8.2f,ai); if(i%5=0) printf(“n“); 国家二级( C语言)笔试模拟试卷 101答案与解析 1 【正确答案】 C 【试题解析】 一个算法,一般应具有以下几个基本特征: 可行性 确定性 有穷性 拥有足够的情报。 2 【正确答案】 B 【试题解析】 希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排入。所以希尔排序法属于插入类排序,但它对简单插入排序做了很大的 改

12、进。 3 【正确答案】 C 【试题解析】 队列是指允许在一端进行插入、而在另一端进行删除的线性表。它又称为 “先进先出 ”或 “后进后出 ”的线性表,体现了 “先来先服务 ”的原则。 4 【正确答案】 B 【试题解析】 在进行顺序查找过程中,如果被查的元素是线性表中的最后一个,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中所有元素进行比较,这是顺序查找最坏的情况。 5 【正确答案】 B 【试题解析】 信息隐蔽是指在一个模块内包含的信息 (过程或数据 ),对于不需要这些信息的其 他模块来说是不合晰问的。模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且

13、接口简单。衡量软件的模块独立性的度量标准是耦合性和内聚性。一个模块的内聚性越强,则该模块的模块独立性越强。而内聚性是信息隐蔽和局部化概念的自然扩长。 6 【正确答案】 C 【试题解析】 面向对象的设计方法基本原理:使用现实世界的概念抽象地思考问题从而自然地解决问题。强调模拟现实世界中的概念而不强调算法,鼓励开发者在软件开发的绝大部分中都用应用领域的概念去思考。 7 【正确答案】 C 【试 题解析】 总体设计过程通常由两个主要阶段组成:系统设计,确定系统的具体实现方案;结构设计,确定软件结构。为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。 8 【正确答案】 B 【试题解析】 由程序调

14、试的概念可知:程序调试活动由两部分组成,其一是根据错误的迹象确定程序中错误的确切性质、原因和位置。其二,对程序进行修改,排除这个错误。所以程序调试的目的就是诊断和改正程序中的错误。 9 【正确答案】 C 【试题解析】 选择运算是一个一元运算,关系 R通过选择运算 (并由该运算给出所选择的 逻辑条件 )后仍为一个关系。这个关系是由 R中那些满足逻辑条件的元组所组成。如果关系的逻辑条件为 f,则 R满足 f的选择运算可以写成 F(R)。 10 【正确答案】 B 【试题解析】 根据数据库物理设计的概念可知:为一个给定的逻辑数据模型选取一个最合适应用要求的物理结构的过程,就是数据库的物理设计。数据库的

15、物理结构就是指数据库在物理设备上的存储结构与存取方法。 11 【正确答案】 C 【试题解析】 C语言的标识符的定义为:以字母或下划线开头的由字母、数字字符、下戈峨组成的字符串。而且标识符不能与 关键字相同。 12 【正确答案】 C 【试题解析】 在 C语言中,一个完整的 C语句必须在语句末尾出现分号,分号是 C语句的必要组成部分。本题答案为 C。 13 【正确答案】 A 【试题解析】 C程序中注释部分用 “/*”和 “*/”括起来,可以出现在程序中任何合适的地方;花括号 “”和 “”不仅可作为函数体的定界符,也可作为复合语句的定界符;构成 C程序的基本单位是函数;一个语句必须在最后出现分号,分

16、号是 C语句中不可缺少的部分。 14 【正确答案】 B 【试题解析】 本题中的答案 A与 D都 缺少 “; ”,而答案 C中,表达式是不能独立成为语句的,答案 B使用了 C语言的自减运算符它就相当于 D=D-1,所以答案B为一赋值语句。 15 【正确答案】 A 【试题解析】 在 C中,参与 %运算的两个参数都必须为整形,在大多数 C编译器下 (包括 TurboC)都采用了 “向 0靠近 ”的原则,即当两个运算量有一个为负数时,余数的符号由被除数的符号决定。故本题答案为 A。 16 【正确答案】 D 【试题解析】 C语言的自减运算符有前置与后置两种形式。当自减运算符前置时,变量先自减一后再参与表

17、达式运算;而后置 时,变量先参与表达式运算后再自身减一。 17 【正确答案】 B 【试题解析】 本题 x=10,表达式 “x+=x-=x-x; ”的求解步骤如下:先进行 x=x-x的运算,相当于 x=x-(x-x)=x=10;再进行 x+=x的运算,即 x=x+x=200 18 【正确答案】 B 【试题解析】 C语言中没有输入输出语句,它是通过 C语言提供的函数来实现的,本题 C中,应为变量地址。 19 【正确答案】 D 【试题解析】 赋值运算符的结合方向是自右至左,所以表达式 a+=a-=a*a先运算最右边的 a*a得 9,再运算 a=a-9,即 a=3-9,所以此时 a的值由 3变成了 -

18、6,最后运算 a=a+(-6),即 a=(-6)+(-6)=-12。 20 【正确答案】 A 【试题解析】 本题 int型占 2个字节,即 16位, unsigned int所能表示的数据范围是 0-(216-1),即 0-65535。 21 【正确答案】 D 【试题解析】 C语言中的 “或 ”关系用 “|”表示,其他相关逻辑运算符 “与 ”用 “p- next=s; s的 确已插到了链表的末尾,但它的 next却并没有为 NULL,而是指向了它的直接前趋 p;边样它就不是一个单向链表 (单向链表最后一个结点的 next指针一定是一个NULL)。 51 【正确答案】 250 【试题解析】 所谓

19、完全二叉树是指除最后一层外,每 层上的结点数均达到最大值;在最后 层上只缺少右边的若干结点。具有 n个结点的完全二叉树,其父结点数为 int(n/2),而叶子结点数等于总结点数减去父结点数。本题 n=500,故父结点数等于 int(500/2)=250,叶子结点数等于 500-25=250。 52 【正确答案】 n(n-1)/2或 0(n(n-1)/2) 【试题解析】 冒泡排序法是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序。假设线性表的长度为 n,则在最坏的情况下,冒泡排序需要经过 n/2遍的从:前往后的扫描和 n/2遍的从后往前的扫描,需要的比较次数为 n(n

20、-1)/2。 53 【正确答案】 实体 【试题解析】 面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的 个实体,是构成系统的 个基本单位,它由 组表示其静态特征的属性和它可执行的 组操作组成 。 54 【正确答案】 需求获取 【试题解析】 软件的需求分析阶段的工作,可以概括为四个方面:需求获取、需求分析、编写需求规格说明书和需求评审。需求获取的目的是确定对目标系统的各方面需求。涉及到的主要任务是建立获取用户需求的方法框架,并支持和监控需求获取的过程。 55 【正确答案】 数据库设计 【试题解析】 数据库设计是数据库应用的核心。在数据库应用系统中的 个核心问题就是设计 个能满足用户要

21、求,性能良好的数据库,这就是数据库设计。 56 【正确答案】 12 【试题解析】 本题 通过第一个 for循环将数组 arr0-arr9分别赋值为 0-9,通过第二个 for 循环的三次循环累加,求出结果为 12,具体分析如下: i=1:k=0+arr1+1即 k=2; i=2:k=2+arr2+2即 k=6; i=3:k=3+arr3+3即 k=12; 57 【正确答案】 0 【试题解析】 已知 a=10, b=20,所以逻辑表达式 a b的值为 true,即为 1,在这个表达式前面有一个逻辑运算符!,表示反操作,所以整个语句的值应当为false,即为 0。 58 【正确答案】 4 【试题解

22、析】 在主函数中调用函数 f,函数 f有三个参数,形参 f1与 f2分别是两个指向函数的指针。在 f 中执行 f2(x)-f1(x),实际上是执行了 fb(2)-fa(2),故执行i=(fa,fb,2)后 i的值为 23-22=4。 59 【正确答案】 DDBBCC 【试题解析】 C语言对枚举的定义规定:在枚举中声明的各个枚举元素,如果没有明确指出某个枚举元素的值,它的上一个元素存在并有明确值的情况下,这个枚举元素的值为其上一个元素的值 +1。在本题中,没有明确说明枚举元素 em3的值,则 em3=em2+1=1+1=2,进而可知,在 printf()打印函数中,要打印的数组元素是 aa3、

23、aa1、 aa2,因此最后的打印结果应当为 “DDBBCC”。 60 【正确答案】 5.0,4,c=3 【试题解析】 scanf(格式控制,地址表列 ),如果在 “格式控制 ”字符串中除了格式说明以外还有其他字符,则在输入数据的应输入与这些字符相同的字符。所以此题中输入数据的形式是 5.0,4, c=3。 61 【正确答案】 5 6 【试题解析】 本题中 a, b, c, d是实参, x, y, cp, dp是形参。 C语言规定 ,实参变量对形参变量的数据传递是 “值传递 ”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参

24、分配存储单元,并将实参对应的值传递给形参,调用结束后;形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。 62 【正确答案】 GGGH 【试题解析】 由于在函数 main中定义了数组变量 b,其将屏蔽全局变量 b。对于一维数组变量,其值为一常数,等于数组首元素地址。 strcpy(&b0, “GH“),是将字符串, “GH“, 复制到数组 b中从首元数开始的空间中,此是 b中的字符串为 “GH“; strcpy(&b1, “GH“),是将字符串 “GH“复制到数组 b中从第二个元素开始的空间中,此是 b中的字符串为 “GH“。执行第三次 strcpy函数后, b中的字符串为

25、 “GGGH“。 63 【正确答案】 10 4 【试题解析】 结构件变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。 int占 2个字节, float占 4个字节,共用体变量所占的内存长度等于最长的成员的长度。所以, sizeof(a.ahare)的值 是 4, sizeof(a)的值是 2+2+2+4=10。 64 【正确答案】 O或 0或 NULL stri num+或 num=num+1或 num+=1 【试题解析】 观察题目要求,可以知道以下几点: for循环的结束条件应当是: stri已是字符串的最后一个字符; stri代表字符串 str中的第 i+1个字

26、符; 整形变量 num的值是要记录的单词的个数。 C语言中规定字符串的最后一个字符是一个隐含的字符串结束符 “0”,所以在题中第一个空中应填写 “0”;题中第二个空应填写 “stri”,以判断当前位置的字符是否为空格;题中第三个空中应当填写 “num+”,通过变量 num的加 1累加得到字符串中的单词个数。 65 【正确答案】 p=i; i =p i =N 【试题解析】 本题主要考查了插入排序。由于程序中的数组在开始已经按从小到的大顺序排好。在插入时,首先要查到第一个大于待插入数的数组下标,即当待插入元素小于数组中当前元素时,记下数组的当前下标 p,并结束循环。故第一空目的是为了记下数组下标,应填 p=i;插入的第二部是将大于待插入元素的所有元

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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