全国计算机等级考试二级C语言 笔试+上机 题库(全).doc

上传人:创****公 文档编号:1868362 上传时间:2019-10-29 格式:DOC 页数:10 大小:107.50KB
返回 下载 相关 举报
全国计算机等级考试二级C语言 笔试+上机 题库(全).doc_第1页
第1页 / 共10页
全国计算机等级考试二级C语言 笔试+上机 题库(全).doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《全国计算机等级考试二级C语言 笔试+上机 题库(全).doc》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言 笔试+上机 题库(全).doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、全国计算机等级考试二级全国计算机等级考试二级 C 语言语言 笔试笔试题库(题库(6)一、选择题 在下列各题的 A) 、B) 、C) 、D)四个选项中,只有一个选项是正确的,请将正确的选项涂 写在答题卡相应位置上,答在试卷上不得分。 (1)程序流程图中带有箭头的线段表示的是 A)图元关系 B)数据流 C)控制流 D)调用关 系 (2)结构化程序设计的基本原则不包括 A)多态性 B)自顶向下 C)模块化 D)逐步求精 (3)软件设计中模块划分应遵循的准则是 A)低内聚低耦合 B)高内聚低耦合 C)低内聚高耦合 D)高内 聚高耦合 (4)在软件开发中,需求分析阶段产生的主要文档是 A)可行性分析报告

2、 B)软件需求规格说明书 C)概要设计说明书 D)集成测试计划 (5)算法的有穷性是指 A)算法程序的运行时间是有限的 B)算法程序所处理的数据量是有限的 C) 算法程序的长度是有限的 D)算法只能被有限的用户使用 (6)对长度为 n 的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2 的排序方法是 A)快速排序 B)冒泡排序 C)直接插入排序 D)堆排序 (7)下列关于栈的叙述正确的是 A)栈按“先进先出“组织数据 B)栈按“先进后出“组织数据 C)只能在栈底 插入数据 D)不能删除数据 (8)在数据库设计中,将 E-R 图转换成关系数据模型的过程属于 A)需求分析阶段 B)概念设计

3、阶段 C)逻辑设计阶段 D)物理设 计阶段 (9)有三个关系 R、S 和 T 如下: R BCD a0k1 b1n1S BCD f3h2 a0k1 n2x1T BCD a0k1由关系 R 和 S 通过运算得到关系 T,则所使用的运算为 A)并 B)自然连接 C)笛卡尔积 D)交 (10)设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名), 选课 SC(学号,课号,成绩),则表 SC 的关键字 (键或码)为 A)课号,成绩 B)学号,成绩 C)学号,课号 D)学号,姓名,成绩 (11)以下叙述中正确的是 A)C 程序中的注释只能出现在程序的开始位置和语

4、句的后面 B)C 程序书写格式严 格,要求一行内只能写一个语句 C)C 程序书写格式自由,一个语句可以写在多行上 D)用 C 语言编写的程序只能放在一个程序文件中 (12)以下选项中不合法的标识符是 A)print B)FOR C) B)char A=65+1,b=b; C)float a=1,*b= D)double a=0.0;b=1.1; (16)有以下程序段 char ch; int k; ch=a; k=12; printf(“%c,%d,“,ch,ch,k); printf(“k=%dn“,k); 已知字符 a 的 ASCII 码值为 97,则执行上述程序段后输出结果是 A)因变量

5、类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数 不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=12 (17)已知字母 A 的 ASCII 码值为 65,若变量 kk 为 char 型,以下不能正确判断出 kk 中的值 为大写字母的表达式是 A)kk=A c=a; if(c!=a) c=b; printf(“%d,%d,%dn“,a,b,c); 其输出结果是 A)程序段有语法错 B)3,5,3 C)3,5,5 D)3,5,7 (20)有以下程序 #include main() int x=1,y=0,a=0,b=0; switch(x) case 1

6、: 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)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1 (21)有以下程序 #include main() int x=8; for( ; x0; x-) if(x%3) printf(“%d,“,x-); continue; printf(“%d,“,-x); 程序的运行结果是 A)7,4,2, B)8,7,5,2, C)9,7,

7、6,4, D)8,5,4,2, (22)以下不构成无限循环的语句或语句组是 A) n=0; do+n;while(n main() int a =1,2,3,4,y,*p= -P; y=*p;printf(“y=%dn“,y); 程序的运行结果是 A)y=0 B)y=1 C)y=2 D)y=3 (24)以下错误的定义语句是 A)int x3=0,1,1,2,3; B)int x43=1,2,3,1,2,3,1,2,3,1,2,3; C)int x4=1,2,3,1,2,3,1,2,3,1,2,3; D)int x3=1,2,3,4; (25)设有如下程序段 char s20=“Beijing“

8、,*p; p=s; 则执行 p=s;语句后,以下叙述正确的是 A)可以用*p 表示 s0 B)s 数组中元素的个数和 p 所指字符串长度相等 C)s 和 p 都是指针变量 D)数组 s 中的内容和指针变量 p 中的内容相同 (26)若有定义:int a23;,以下选项中对 a 数组元素正确引用的是 A)a2!1 B)a23 C)a03 D)a12!1 (27)有定义语句:char s10;,若要从终端给 s 输入 5 个字符,错误的输入语句是 A)gets( B)scanf(“%s“,s+1); C)gets(s); D)scanf(“%s“,s1); (28)以下叙述中错误的是 A)在程序中

9、凡是以“#“开始的语句行都是预处理命令行 B)预处理命令行的最后不 能以分号表示结束 C)#define MAX 是合法的宏定义命令行 D)C 程序对预处理命 令行的处理是在程序执行的过程中进行的 (29)以下结构体类型说明和变量定义中正确的是 A)tupedef strctint n; char c;REC;REC t1,t2;B)tupedef strctint n; char c;REC t1,t2;C)tupedef strct REC;int n=0; char c=A;t1,t2;D)strctint n; char c;REC;REC t1,t2; (30)以下叙述中错误的是 A

10、)gets 函数用于从终端读入字符串 B)getchar 函数用于从磁盘文件读入字符 C)fputs 函数用于把字符串输出到文件 D)fwrite 函数用于以二进制形式输出数据到 文件 (31)有以下程序 #include main() int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i; for(i=0;i void fun(int *s,int n1,int n2) int i,j,t; i=n1; j=n2; while(i #include void fun(char *s,int n) char *t; int i,j; for(i=0;istrlen(sj

11、) t=si;si:sj;sj=t; main() char *ss=“bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“; fun(ss,5); printf(“%s,%sn“,ss0,ss4); 程序的运行结果是 A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc (34)有以下程序 #include int f(int x) int y; if(x=0|x=1) return(3); y=x*x-f(x-2); return y; main() int z; z=f(3); printf(“%dn“,z); 程序的运行结果是 A

12、)0 B)9 C)6 D)8 (35)有以下程序 #include void fun(char *a,char*b) while(*a=*)a+; while(*b=*a)b+;a+; main() char *s=“*a*b*“,t80; fun(s,t); puts(t); 程序的运行结果是 A)*a*b B)a*b C)a*b* D)ab (36)有以下程序 #include #include typedef struct char name9; char sex; float score2; STU; void f(STU a) STU b=“Zhao“,m,85.0,90.0; in

13、t i; strcpy(a.name,b.name); a.sex=b.sex; for(i=0;i main() FILE *fp; int a10=1,2,3,i,n; fp=fopen(“d1.dat“,“w“); for(i=0;i main() int x=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,*p4,i; for(i=0;i void swap(int *a, int *b) int *t; t=a; a=b; b=t; main() int i=3,j=5,*p= swap(p,q); printf(“%d %dn“,*p,*q); (11

14、)以下程序的输出结果是 【12】 。 #include main() int a5=2,4,6,8,10,*p; p=a; p+; printf(“%d“,*p); (12)以下程序的输出结果是 【13】 。 #include void fun(int x) if(x/20) fun(x/2); printf(“%d“,x); main() fun(3); printf(“n“); (13)以下程序中函数 fun 的功能是:统计 person 所指结构体数组中所有性别(sex)为 M 的 记录的个数,存入变量 n 中,并作为函数值返回。请填空。 #include #define N 3 typ

15、edef struct int num; char nam10; char sex;SS; int fun(SS person) int I,n=0; for(I=0;I main() FILE *fp; char ch; fp=fopen( 【15】 ); ch=fgetc(fp); while(!feof(fp) putchar(ch); ch=fgetc(fp); putchar(n);fclose(fp); 一、选择题 (1)C 【解析】 程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中, 图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。

16、 带箭头的线段在数据流程图中表示数据流。带箭头的线段在程序流程图中表示控制流。题 中给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线 段表示调用关系。构成程序流程图的基本图符及含义:或 表示控制流;表示加工步骤; 表 示逻辑条件。 (2)A 【解析】 结构化程序设计的原则包括:“自顶而下,逐步求精“的设计思想,“独立功能,单 出、入口“的模块化设计等。多态性是面向对象程序语言的特征。 (3)B 【解析】 模块划分应遵循的准则包括模块之间的耦合和内聚。一般来说,要求模 块之间的耦合尽可能地低,即模块尽可能独立,要求模块的内聚程度尽可能地高,即高内聚、 低耦合的原则。

17、 (4)B 【解析】 需求分析阶段的工作主要包括需求获取、需求分析、编写需求规格说明 书和需求评审等四方面。产生的主要文档为软件需求规格说明书,可以为用户、分析人员和 设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发 进程的依据。 (5)A 【解析】 算法具有 6 个特性: 有穷性:一个算法必须总是(对任何合法的输入值) 在执行有穷步之后结束,且每一步都可在有限时间内完成,即运行时间是有限的; 确定性: 算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。 可行性:一个算法是 可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。

18、输 入:一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合。 输出:一个算法 有一个或多个输出。 (6)D 【解析】 在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都 n(n-1)/2,堆排序需要比较的次数为 nlog2n。 (7)B 【解析】 在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的一端称 为栈底。栈顶元素总是最后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被 插入的元素,从而也是最后才能被删除的元素。即栈是按照“先进后出“或“后进先出“的原则 组织数据的。 (8)C 【解析】 数据库的逻辑设计分为: 将概念模型转换成一般的数据模型; 将

19、一 般的数据模型转换为特定的数据库管理系统所支持的数据模型。把概念模型转换成关系数 据模型就是把 E-R 图转换成一组关系模式。 (9)D 【解析】 在关系运算中,交的定义如下:设 R1 和 R2 为参加运算的两个关系,它们具 有相同的度 n,且相对应的属性值取自同一个域,则 为交运算,结果仍为度等于 n 的关系,其中,交运算的结果既属于 R1 又属于 R2。 (10)C 【解析】 “选课 SC“ 表是 “学生 S“ 表和 “课程 C“ 表的映射表,主键是两个表主 键的组合。 (11)C 【解析】 在 C 语言中,注释可以加在程序中的任何位置,选项 A)错误;C 程序可以 分模块写在不同的文件

20、中,编译时在将其组合在一起,选项 D)错误。C 程序的书写风格很自 由,不但一行可以写多个语句,还可以将一个语句写在多行中。所以正确答案选 C)。 (12)C 【解析】 C 语言合法标识符的命名规则是:标识符只能由字母、数字和下划线组 成,并且第一个字符必须为字母或下划线。因为选项 C)中的标识符的第一个字符为“输出格式控制符%d 表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为 a,97;第二个输 出语句输出的结果为 k=12。所以选项 D)为正确答案。 (17)B 【解析】 C 语言的字符以其 ASCII 码的形式存在,所以要确定某个字符是大写字母,只 要确定它的 AS

21、CII 码在A和Z之间就可以了,选项 A)和 C)符合要求。函数 isalpha 用来确定 一个字符是否字母,大写字母的 ASCII 码值的范围为 65 到 90,所以如果一个字母的 ASCII 码 小于 91,那么就能确定它是大写字母。本题答案选 B)。 (18)B 【解析】 满足表达式(c=2第二维的下标取值为 0、1、2,因而选项 A)、B)、C)都是错误的,选项 D)表示是数 组元素 a00。所以正确答案为 D)。 (27)D 【解析】 在格式输入中,要求给出的是变易的地址,而 D)答案中给出的 s1是一个值的表达式。 (28)D 【解析】 C 语言中的预处理命令以符号#开头,这些命令

22、是在程序编译之前进行处 理的,选项 D)的描述错误。 故答案选 D)。 (29)A 【解析】 本题考查的是 typedef 的用法和结构体变量的定义方法。typedef 可用 于声明结构体类型,其格式为:typedef struct 结构元素定义结构类型; 本题正确答案为 A)。 (30)B 【解析】 getchar 函数的作用是从终端读入一个字符。 (31)C 【解析】 在 for(i=0;i12;i+) csi+中,数组元素 si的值作为数组 c 的下标,当 退出循环时,数组 c 的 4 个元素的值分别为 4、3、3、2。所以输出结果为选项 C)。 (32)C 【解析】 函数 fun(in

23、t *s,int n1,int n2)的功能是对数组 s 中的元素进行首尾互相调 换。所以在主函数中,当 fun(a,0,3)执行完后,数组 a12=4,3,2,1,5,6,7,8,9,0;再执行 fun(a,4,9), 数组 a12=4,3,2,1,0,9,8,7,6,5;再执行 fun(a,0,9)后,数组 a12=5,6,7,8,9,0,1,2,3,4。所以正 确答案为 C)。 (33)A 【解析】 函数 fun(char *s,int n)的功能是对字符串数组的元素按照字符串的长 度从小到大排序。在主函数中执行 fun(ss,5)语句后,*ss=“xy“, “bcc“, “bbcc“,

24、 “aabcc“, “aaaacc“,ss0,ss4的输出结果为 xy,aaaacc。所以选项 A)为正确答案。 (34)C 【解析】 函数 int f(int x)是一个递归函数调用,当 x 的值等于 0 或 1 时,函数值等 于 3,其它情况下 y=x2-f(x-2)。所以在主函数中执行语句 z=f(3)时,y=3*3-f(3-2)=9-f(1)=9- 3=6。所以正确答案为 C)。 (35)C 【解析】 在函数 fun(char *a,char *b)中,while(*a=*)a+的功能是:如果*a 的内容 为*,则 a 指针向后移动,直到遇到非*字符为止,退出循环进入下一个 while

25、 循环,在 while(*b=*a)b+;a+;中,把字符数组 a 逐个字符的赋给字符数组 b。所以在主函数中,执行 fun(s,t)语句后,字符数组 t 中的内容为“a*b*“,所以选项 C)为正确答案。 (36)A 【解析】 本题考查的是函数调用时的参数传递问题。程序在调用函数 f 时,传给 函数 f 的参数只是结构变量 c 在栈中的一个拷贝,函数 f 所做所有操作只是针对这个数据拷 贝进行的修改,这些都不会影响变量 c 的值。 (37)B 【解析】 在函数中首先把整型数组 a10中的每个元素写入文件 d1.dat 中,然后再 次打开这个文件,把文件 d1.dat 中的内容读入到整型变量

26、n 中,最后输出变量 n 的值。所以正 确答案为 B)。 (38)A 【解析】 本题考查的是位运算的知识,对于任何二进制数,和 1 进行异或运算会让 其取反,而和 0 进行异或运算不会产生任何变化,故本题答案选 A)。 (39)A 【解析】 在 C 语言中只有自动变量和寄存器变量在使用时才占用内存单元。所 以正确答案为 A)。 (40)B 【解析】 本题考查的是指向函数的指针。语句 int (* f)(int);是对一个函数的声明,其 中 f 是指向该函数的指针,该函数有一个整型的参数,函数返回值类型为整型。故答案选 B)。二、填空题 (1)【1】 预期输出 【解析】 输入数据是指被测试函数所

27、读取的外部数据及这些数据 的初始值。预期输出是指:返回值及被测试函数所写入的外部数据的结果值。 (2)【2】 16 【解析】 在满二叉树中,叶子结点数目的计算公式为 2n-1,其中 n 为树的深度。(3)【3】 24 【解析】 实现循环队列时,头指针指向第一个元素的前一个空间,尾指针指 向最后一个元素。 因此,此时队列中 6,7,8,.,29 这二十四个空间存有元素,即队列中有 29- 5=24 个元素。 (4)【4】 关系 【解析】 在关系数据库中,用关系(二维表结构)表示实体及其之间联系 的模型称为关系数据模型。 (5)【5】 数据定义语言 【解析】 数据定义语言:负责数据的模式定义与数据

28、的物理存 取构建;数据操纵语言:负责数据的操纵,如查询与增、删、改等;数据控制语言:负责数据完整 性、安全性的定义与检查以及并发控制、故障恢复等。 (6)【6】 1 【解析】 字符空格的 ASCII 码不为 0,所以本题中表达式!c 的值为 0, b= 0 当 i=1 时,p1= 当 i=2 时,p2=当 i=3 时,p3=p+使用指针 p 指向数组 a1,所以输出结 果为 4。 (12)【13】 1 3 【解析】 在主函数中调用 fun(3)时,实参 3 传递给形参 x。在 fun(x)内,执 行第一条语句,输出 1,然后执行第二条语句,输出 3,所以结果为 1 3。 (13)【14】 personI.sex 【解析】 在函数 fun(SS person)对 person的性别进行判断,所 以其正确的调用格式为 personI.sex。 (14)【15】 “filea.dat“,“r“ 【解析】 fopen 函数的调用方式通常为 fopen(文件名,使用文件 方式)。本题中要求程序可以打开 filea.dat 文件,并且是要读取文件中的内容。所以空白处应 当填入 “filea.dat“,“r“。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 教育教学

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁