[计算机类试卷]国家二级(C语言)笔试模拟试卷97及答案与解析.doc
《[计算机类试卷]国家二级(C语言)笔试模拟试卷97及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级(C语言)笔试模拟试卷97及答案与解析.doc(34页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级( C语言)笔试模拟试卷 97及答案与解析 1 下列叙述中,不正确的是 ( A)算法的执行效率与数据的存储结构有关 ( B)算法的空间复杂度是指执行这个算法所需要的内存空间 ( C)算法的有穷性是指算法必须能在执行有限个步骤之后终止 ( D)算法的时间复杂度是指执行这个算法所需要的时间 2 数据的存储结构是指 ( A)数据所占的存储空间量 ( B)数据的逻辑结构在计算机中表示 ( C)数据在计算机中的顺序存储方式 ( D)存储在外存中的数据 3 在深度为 5的满二叉树中,结点的个数为 ( A) 32 ( B) 31 ( C) 16 ( D) 15 4 结构化程序设计的主要任务是确定每个
2、模块的 ( A)程序的规模 ( B)程序的易读性 ( C)程序的执行效率 ( D)程序的可移植性 5 信息隐蔽的概念与下述哪一种概念直接相关 ? ( A)软件结构定义 ( B)模块独立性 ( C)模块类型的划分 ( D)模块耦合度 6 软件详细设计的主要任务是确定每个模块的 ( A)算法和使用的数据结构 ( B)外部接口 ( C)功能 ( D)编程 7 在结构化方法中,软件功能分解属于下列软件开发中 ( A) 详细设计阶段 ( B)需求分析阶段 ( C)总体设计阶段 ( D)编程调试阶段 8 在数据库管理系统提供的数据语言中,负责数据的模式定义与数据的物理存取构建的是 ( A)数据定义语言 (
3、 B)数据转换语言 ( C)数据操纵语言 ( D)数据控制语言 9 关系数据库的概念模型是 ()的集合。 ( A)关系模型 ( B)关系模式 ( C)关系子模式 ( D)存储模式 10 概要设计是软件系统结构的总体设计,不属于概要设计的是 ( A)把软件划分成模块 ( B)确定模块之间的调用关系 ( C)确定各个模 块的功能 ( D)设计每个模块的伪代码 11 以下叙述中正确的是 ( A) C程序中注释部分可以出现在程序中任意合适的地方 ( B)花括号 “”和 “”只能作为函数体的定界符 ( C)构成 C程序的基本单位是函数,所有函数名都可以由用户命名 ( D)分号是 C语句之间的分隔符,不是
4、语句的一部分 12 以下选项中可作为 C语言合法整数的是 ( A) 10110B ( B) 386 ( C) 0Xffa ( D) x2a2 13 以下不能定义为用户标识符的是 ( A) scanf ( B) Void ( C) _3com_ ( D) int 14 有以下程序 main() int a; char c=10; float f=100.0; double x; a=f/=c*(x=6.5); printf(“%d %d %3.1f %3.1fn“,a,c,f,x); 程序运行后的输出结果是 ( A) 1 65 1 6.5 ( B) 1 65 1.5 6.5 ( C) 1 65
5、1.0 6.5 ( D) 2 65 1.5 6.5 15 以下选项中非 法的表达式是 ( A) 0 x 100 ( B) i=j= =0 ( C) (char)(65+3) ( D) x+1=x+1 16 有以下程序 main() int a=1,b=2,m=0,n=0,k; k=(n=b a)(m=a b) ; printf(“%d,%dn“,k,m); 程序运行后的输出结果是 ( A) 0, 0 ( B) 0, 1 ( C) 1, 0 ( D) 1, 1 17 有定义语句: int x, y;若要通过 scanf(“%d,%do, ( C) if(a 3)x=3; if(a 2)x=2;
6、if(a 1)x=1; ( D) if(a b) x=b; if(b c) x=c; if(c a) x=a; 21 已有定义: int x=3, y=4, z=5,则表达式 !(x+y)+z-1 60 设有如下程序: main() int n1,n2; scanf(“%d“, f=f*n; return f; main() int i; for (i=1; i =5; i+)printf(“%dn“, ff(i); 62 以下函数的功能是求 x的 y次方,请填空 double fun(double x,int y) int i; double z; for(i=1,z=x; i y; i+)
7、z=z*【 】 ; return z; 63 下列程序的输出结果是【 】。 main() int a=2, 4, 6, *ptr=y ;y+) z=(*(ptr+y) x?*(ptr+y);x; printf(“%dn“,z); 64 以下程序运行后的输出结果是【 】。 main() char s=“9876“, *p for(p=s; p s+2; p+)printf(“%sn“, p); 65 若有定义语句 char s 100, d100; int j=0, i=0;且 s中已赋字符串,请填空以实现拷贝。 (注:不使用逗号表达式 ) white(si)dj= 【 】 ;j+; dj=0;
8、 66 若有如下结构体说明: structSIRU int a,b; char c: double d; struct STRU *p1, *p2; ; 请填空,以完成对 t数组的定义, t数组的每个元素为该结构体类型。 【 】 t20 67 以下程序段打开文件后,先利用 fseek函数将文件位置指针定位在文件末尾,然后调用 ftell函数返回当前文件的具体位置,从而确定文件长度,请填空。 FILE*myf;long fl; myf=【 】 (“test.t“,“rb”); fseek(myf,() SEEK_END) ; fl+ftell(myf); fclose(myf); printf(
9、“%ldn“,fl); 68 下面的程序可对指定字符串中的字符串进行从大到小排序、请将程序填完整。 (注:程序采用了冒泡排序算法 ) #include stdio.h #include string.h main() char*str=“ABCDabcd“,temp; int n,i; n=strlen(str); while(n- 1) for(i=0; i n;i+ if(stri stri+1) temp=【 】 ; stri=stri+1; 【 】 =temp; printf(【 】 ); 国家二级( C语言)笔试模拟试卷 97答案与解析 1 【正确答案】 D 【试题解析】 算法的时间
10、复杂度是指执行算法所需要的计算工作量。 2 【正确答案】 B 【试题解析】 数据的存储结构是数据元素在计算机存储器内的表示。数据的存储结构是逻辑结构用计算机语言的实现,即建立数据的机内表示 。 3 【正确答案】 B 【试题解析】 二叉树有如下性质:深度为 m的二叉树最多有 2的 m次方再减 1个结点。 4 【正确答案】 B 【试题解析】 按结构化程序设计方法设计出的程序具有明显的优点,即程序易于理解、使用和维护,便于控制、降低程序的复杂性,便于验证程序的正确性,程序清晰易读,可理解性好。 5 【正确答案】 B 【试题解析】 采用信息隐蔽的目的就是为了确保每个模块的独立性。 6 【正确答案】 A
11、 【试题解析】 从软件开发的工程化观点来看,在使用程序设计语言编制程序 以前,需要对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。详细设计的任务就是要决定各个模块的实现算法,并精确表达出这些算法。 7 【正确答案】 C 【试题解析】 详细设计的任务是:在使用程序设计语言编程以前,对所采用算法的逻辑关系进行分析,并给予清晰的表达。需求分析是指用户对目标软件系统在功能、行为、性能、设计约束等方面的希望。编程调试任务是诊断和改正程序中潜在的错误。软件功能分解只能发生在总体设计阶段。 8 【正确答案】 A 【试题解析】 在数据库管理系统提供的数据语言中,数据定义语言负责数据
12、的模式定义与数据的物理存取构建。 9 【正确答案】 B 【试题解析】 数据库的概念模型体现了数据之间的关系,它是各种数据之间相互关系的集合。 10 【正确答案】 D 【试题解析】 概要设计是数据库的总体设计,其目的就是要按照需求规格说明书把软件按照功能划分为多个模块,然后确定每个模块要实现的功能,最后确定模块之间的调用关系,而设计每个模块的伪代码则属于详细设计。 11 【正确答案】 A 【试题解析】 C语言 函数、语句的概念、注释以及 C程序的基本结构, “/*”与“*/”之间的信息称为注释信息,在 C语言中,允许在任何能够插入空格符的位置插入注释,但 C语言的注释不能进行嵌套;在 C语言中,
13、函数体是从花括号 “”开始,到花括号 “”结束。但没有规定花括号 “”和 “”只能作为函数体定界符;选项C中前半句是正确的,在 C程序中由有一个或多个函数所组成,但不是所有的函数都由用户自己命名,有些函数比如库函数,主函数 main()就不能由用户来命名;在 C语言中明确规定每条语句以分号 “; ”结束,分号是语句不可缺少的一部分。 12 【正确答案】 C 【试题解析】 在 C语言中,整数常量可以用十进制、八进制和十六进制来表示,选项 A为二进制表示;选项 B是八进制表示法,但在八进制数中,各个位数只能为数字 0到 7中的一个,而在选项 B中,有一个数字 8;选项 C为十六进制表示法正确;选项
14、 D中也为十六进制表示法,但十六进制数以 0x开头。 13 【正确答案】 D 【试题解析】 在 C语言中,合法的标识符由字母、数字和下划线组成,并且第 1个字符必须为字母或下划线。选项 D中 int为 C语言中的保留字,不能作为用户的标识符。 14 【正确答案 】 B 【试题解析】 主函数中先定义了一个整型变量 a,一个字符变量 c并赋初值 10,一个浮点型变量 f并赋初值 100.00和一个 double型 x,接着执行“a=f/=c*=(x=6.5)”,该语句从右向左计算,先把 6.5赋值给 x(该括号表达式的值也为 6.5),此时 x的值的变为 6.5,然后执行 “c*=(x=6.5)”
15、相当于执行 “c=c*(x=6.5)”,此时 c的值为 65,接着向左执行 “f/=c*=(x=6.5)”,语句相当于执行 “f=f/c”接着向最右边执行 “a=f,由于 a是整型变量,所以 a最后取 f的整数部 分为 1。程序最后输出的 a、 c、 f和 x的值分别为 1、 65、 1.5、 6.5。 15 【正确答案】 D 【试题解析】 选项 D中将表达式的值赋给表达式,在 c语言中是不允许给表达式赋值的。 16 【正确答案】 C 【试题解析】 在 “|”运算中当其左边的表达式为真,右边的表达式将不再执行。主函数中, “|”左边的表达式 k=(n=b A) , “2 1”为真,所以 n被赋
16、值为 1,接着 k被赋值 1,即 “|”运算符左边表达式为真,此时不再计算 “|”右边的表达式,因此 m的值没有被改变仍为 0,最后的输出结果 1, 0。 17 【正确答案】 A 【试题解析】 scanf()函数有两个参数,第一个参数为输入格式字符申;第二个参数为输入变量地址列表,在 scanf()语句中非格式字符可以作为输入时数据的间隔,输入时必须原样输入,在本题中输入格式串为 %d, %d其中 “, ”为非格式字符,所以输入时必须原样输入。 18 【正确答案】 D 【试题解析】 逗号运算符的结合性为从左到右,其一般形式为 “表达式 1,表达式 2”,整个表达式的值为表达式 2的值。 19
17、【正确答案】 C 【试题解析】 实型变量中 小数点的位数,选项 A中 0.5/100.0将保留小数点后六位,不满足题目要求;选项 B和选项 D也将保留小数点后六位,不满足题目要求。 20 【正确答案】 C 【试题解析】 选项 A首先判断 if语句条件中表达式的值 “3 1”为假,然后执行最近的 else后面的语句,该 else后面又为 if-else语句,在这个 if-else语句中首先判断该 if语句条件中表达式的值 “2 1”为假,程序执行其最近的 else后面的语句,将 3赋值给 x。 选项 B中首先判断 if语句条件中表达式的值 “1 3”为真,然后执行最近的 else后面的语句 “x
18、=3”,后面的 else不再执行,最后 x的值为 3。 选项 C中,首先执行第一条 if语句,由于 “1 3”为真,执行此 if后面的语句“x=3”,接着执行第二条 if语句,由于 “1 2”为真,执行此 if后面的语句 “x=2”,接着执行第三条 if语句,由于 “1 1为假,后面的语句不执行,所以最后的 x值为2不为 3。 选项 D中;首先执行第一条 if语句,由于 “a b”为真,执行此 if后面的语句“x=b”;接着执行第二条 if语句,由于 “b c”,为真,执行此 if后面的语句“x=c”,接着执行第三条 if语句,由于 “c a”为假,后面的语句不执行,所以最后的 x值为 c即为
19、 3。 21 【正确答案】 D 【试题解析】 本题中, &左边的表达式 !(x+y)为 !(3+7),结果为假,即为 0。再加上 z,然后减 1,相当于 0+5-1。左边等于 4, &右边的表达式 y+z/2相当于4+5/2为 6,所以整个表达式相当于 4&6为真,即为 1。 22 【正确答案】 C 【试题解析】 首先检查 if与 else的配对,然后再分析各分支实现的功能。选项 A描述的意思是:在 x =0情况下,则 y为 1,否则,在 x=0时, y为 0,剩下的 x 0时, y为 -1,满足本题中函数的要求;选项 B描述的意思时:初始化 y的值为0,在 x 0时,给 y重新赋值为 1,否
20、则,在 x 0时,给 y重新赋值为 -1,满足本题中函数的要求;选项 C描述的意思是:在 x =0情况下,如果 x 0,则 y为1,否则即 “x=0”时, y为 -1;剩下的 x 0时, y为 0。可见答案 C实现的结果不是给定的表达式。选项 D中描述的意思是:在 x = 0的情况下,如果 x =0,就给 y赋值为 1,否则就给 y赋值为 0,在不是 x =0的其他情况下,就给 y赋值为 -1,满足本题中函数的要求。 23 【 正确答案】 A 【试题解析】 在本题中 k=n+,为后缀运算。根据其运算规则,首先 n的值赋给 k值,然后 n的值再加 1,即 k的值没有改变。选项 A中先给 k赋值为
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 笔试 模拟 97 答案 解析 DOC
