2020年全国计算机等级考试二级C语言全真模拟试卷及答案(二)

上传人:栀**** 文档编号:56613248 上传时间:2022-02-22 格式:DOC 页数:20 大小:213.50KB
收藏 版权申诉 举报 下载
2020年全国计算机等级考试二级C语言全真模拟试卷及答案(二)_第1页
第1页 / 共20页
2020年全国计算机等级考试二级C语言全真模拟试卷及答案(二)_第2页
第2页 / 共20页
2020年全国计算机等级考试二级C语言全真模拟试卷及答案(二)_第3页
第3页 / 共20页
资源描述:

《2020年全国计算机等级考试二级C语言全真模拟试卷及答案(二)》由会员分享,可在线阅读,更多相关《2020年全国计算机等级考试二级C语言全真模拟试卷及答案(二)(20页珍藏版)》请在装配图网上搜索。

1、2020 年全国计算机等级考试二级C 语言全真模拟试卷及答案(二)一、选择题在下列各题的 A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。(1)程序流程图中带有箭头的线段表示的是A) 图元关系B)数据流C)控制流D)调用关系(2)下面不属于软件设计原则的是A) 抽象B)模块化C)自底向上D)信息隐蔽(3)下列选项中,不属于模块间耦合的是A)数据耦合B)标记耦合C)异构耦合D)公共耦合(4)下列叙述中,不属于软件需求规格说明书的作用的是A) 便于用户、开发人员进行理解和交流 B)反映出用户问题的结构,可以作为软件开发工作的基础和依据

2、C)作为确认测试和验收的依据D)便于开发人员进行需求分析(5)算法的时间复杂度是指A) 执行算法程序所需要的时间B)算法程序的长度C)算法执行过程中所需要的基本运算次数D) 算法程序中的指令条数( 6)已知数据表 A 中每个元素距其最终位置不远,为节省时间,应采用的算法是A) 堆排序B)直接插入排序C)快速排序D)B) 和 C)( 7)栈底至栈顶依次存放元素 A、B、C、D,在第五个元素 E 入栈前,栈中元素可以出栈,则出栈序列可能是A)ABCED B)DCBEA C)DBCEA D)CDABE(8)数据库设计包括两个方面的设计内容,它们是A) 概念设计和逻辑设计B)模式设计和内模式设计C)内

3、模式设计和物理设计D)结构特性设计和行为特性设计(9)关系表中的每一横行称为一个A) 元组B)字段C)属性D)码(10)设有表示学生选课的三张表, 学生 S(学号,姓名,性别,年龄,身份证号 ),课程 C(课号,课名 ),选课 SC(学号,课号,成绩 ),则表 SC 的关键字 (键或码 )为A) 课号,成绩 B) 学号,成绩 C)学号,课号D)学号,姓名,成绩(11)以下不正确的叙述是A) 在 C 程序中,逗号运算符的优先级最低 B)在 C 程序中, APH 和 aph 是两个不同的变量C)若 a 和 b 类型相同,在计算了赋值表达式a=b 后 b 中的值将放入 a 中,而 b 中的值不变D)

4、 当从键盘输入数据时, 对于整型变量只能输入整型数值, 对于实型变量只能输入实型数值(12)请选出可用作 C 语言用户标识符的是A)void,define,WORDB)a3_b3,_123,IFC)FOR,-abc,CaseD)2a,Do,Sizeof(13)以下选项中,不能作为合法常量的是A)1.234e04C)1.234e+4D)1.234e0(14)在C 语言中 ,运算对象必须是整型数的运算符是A)%B)C)%和D)*(15)若变量均已正确定义并赋值,以下合法的C 语言赋值语句是A)x=y=5;B)x=n%2.5;C)x+n=i;D)x=5=4+1;(16)有以下程序段charch;in

5、tk;ch= ak=12;printf(%c,%d,ch,ch,k);printf(k=%d n,k);已知字符 a 的 ASCII 码值为 97,则执行上述程序段后输出结果是A) 因变量类型与格式描述符的类型不匹配输出无定值出项与格式描述符个数不符,输出为零值或不定值B)输C)a,97,12k=12D)a,97,k=12( 17)已知字母 A 的 ASCII 代码值为 65,若变量 kk 为 char 型,以下不能正确判断出 kk 中的值为大写字母的表达式是A)kk= A&kk= A|kk= a &(kk+32)= D)isalpha(kk)&(kk=2&c=2&c=2& c=6)&(c%2

6、!=1)(19)若有条件表达式(exp)?a+:b-,则以下表达式中能完全等价于表达式 (exp)的是A)(exp=0)B)(exp!=0)C)(exp=1)D)(exp!=1)(20)以下不正确的定义语句是A)doublex5=2.0,4.0,6.0,8.0,10.0;B)inty5=0,1,3,5,7,9;C)char c1=1, 2 ,D)char3 c2=,4x10,5, ;x8xa;,( 21)下列程序执行后的输出结果是 main() int a33, *p,i;p=&a00;for(i=1; i2!1(27)有定义语句 :chars10;,若要从终端给 s 输入 5 个字符 ,错误

7、的输入语句是A)gets(&s0);B)scanf(%s,s+1);C)gets(s);D)scanf(%s,s1);(28)有以下程序#include#defineN 5#defineMN+1#definef(x)(x*M)main() int i1,i2; i1=f(2); i2=f(1+1);printf(%d %dn,i1,i2);程序的运行结果是A)1212B)117C)1111D)127(29)若有以下说明和定义union dt int a; char b; double c;data;以下叙述中错误的是A)data 的每个成员起始地址都相同 B)变量 data 所占内存字节数与成

8、员 c 所占字节数相等C) 程 序 段 :data.a=5;printf(%fn,data.c); 输 出 结果 为 5.000000 D)data 可以作为函数的实参(30)有以下程序#includemain()FILE *fp;int k,n,a6=1,2,3,4,5,6;fp=fopen(d2.dat,w);fprintf(fp,%d%d%dn,a0,a1,a2);fprintf(fp,%d%d%dn,a3,a4,a5);fclose(fp);fp=fopen(d2.dat,r);fscanf(fp,%d%d,&k,&n);printf(%d%dn,k,n);fclose(fp);程序运

9、行后的输出结果是A)12B)14C)1234D)123456(31)若已定义int a=0,1,2,3,4,5,6,7,8,9, *p=a,i;其中 则对 a 数组元素不正确的引用是A)ap-aB)*(&ai)C)piD)a10( 32)有以下程序#include int i,j,t; i=n1; j=n2;while(ij)t=si;si=sj;sj=t;i+;j-;main() int a10=1,2,3,4,5,6,7,8,9,0,k; fun(a,0,3); fun(a,4,9); fun(a,0,9);for(k=0;kl0;k+)printf(%d,ak); printf(n);程

10、序的运行结果是A)0987654321 B)4321098765 C)5678901234 D)0987651234(33)阅读下列程序 ,当运行函数时 ,输入 asd af aa z67,则输出为#include #include #include int fun (char *str) int i,j=0;for(i=0;stri!=0;i+)if(stri!= )strj+=stri;strj=0;main()char str81;int n;printf(Input a string : );gets(str);puts(str);fun(str);printf(%sn,str);A)

11、asdafaaz67B)asd af aa z67C)asdD)z67(34)有以下程序int fun(int n)if(n=1)return 1;elsereturn(n+fun(n-1);main()int x;scanf(%d,&x); x=fun(x);printf(%dn,x)执行程序时 ,给变量 x 输入 10,程序的输出结果是A)55B)54C)65D)45( 35)下面程序段中 ,输出 *的个数是 char *s=ta018bc;for(;*s!=0;s+)printf(*);A)9B)5C)6D)7(36)C 语言结构体类型变量在程序运行期间A)TC 环境在内存中仅仅开辟一个

12、存放结构体变量地址的单元B)所有的成员一直驻留在内存中C)只有最开始的成员驻留在内存中D)部分成员驻留在内存中( 37)已知函数的调用形式为 fread(buf,size,count,fp),参数 buf 的含义是A) 一个整型变量 ,代表要读入的数据项总数B)一个文件指针 ,指向要读的文件C)一个指针 ,指向要读入数据的存放地址D)一个存储区 ,存放要读的数据项(38)设有以下语句char x=3,y=6,z;z=xy2;则 z 的二进制值是A)00010100B)00011011C)00011100D)00011000(39)在C 语言中 ,只有在使用时才占用内存单元的变量,其存储类型是A

13、)auto和registerB)extern和registerC)auto 和staticD)static和register(40)设有定义语句A)f 是基类型为int的指针变量则以下叙述正确的是B)f 是指向函数的指针变量,该函数具有一个C)f 是指向int 类型的形参int 类型一维数组的指针变量D)f是函数名,该函数的返回值是基类型为int 类型的地址二、填空题请将每一个空的正确答案写在答题卡序号的横线上, 答在试卷上不给分。( 1)测试用例包括输入值集和【1】 值集。( 2)在树形结构中 ,树根结点没有【2】 。( 3)数据结构分为逻辑结构与存储结构 ,线性链表属于【3】 。( 4)一

14、个项目具有一个项目主管 ,一个项目主管可管理多个项目 ,则实体项目主管 与实体 项目 的联系属于 【4】 的联系。(5)数据库设计分为以下6 个设计阶段 :需求分析阶段、【5】、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。(6)阅读下面程序段 ,则执行后输出的结果是【6】。#include stdio.hmain()char fun(char,int);char a= A ;int b=13;a=fun(a,b);putchar(a);char fun(char a,int b)char k;k=a+b;return k;(7)函数 fun 的返回值是【7】fun(char *a,c

15、har *b) int num=0,n=0; while(*(a+num)!=0)mm+;while(bn)*(a+num)=bn;num+;n+;return num;( 8)以下程序的功能是 :删去一维数组中所有相同的数 ,使之只剩一个。数组中的数已按由小到大的顺序排列 ,函数返回删除后数组中数据的个数。例如 ,若一维数组中的数据是 :2223445666677899101010删除后 ,数组中的内容应该是 :2345678910。请填空。#include #define N 80int fun(int a, int n) int i,j=1; for(i=1;in;i+)if(aj-1【

16、8】ai)aj+=ai;【9】;main() int aN= 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10, i, n=19; printf(The original data : n);for(i=0; in; i+)printf(%3d,ai); n=fun(a,n);printf(nThe data after deleted: n);for(i=0; in; i+)printf(%3d,ai); printf(nn);(9)以下程序的运行结果是【10】。#includemain() int x=1,y=0,a=0,b=0; switch(x) cas

17、e 1: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);(10)以下程序的输出结果是【11】。fun (int x,int y,int z) z =x*x+y*y; main () int a=31; fun (6,3,a) printf (%d, a)(11)函数 my_cmp( )的功能是比较字符串 s 和 t 的大小,当 s 等于 t 时返回 0,否则返回 s 和 t 的第一个不同字符的 ASCII 码差值,即 st 时返回正值,

18、st 时返回负值。请填空。My_cmp(char*s,char*t) while (*s = *t)if (*s =0)return0;+s; +t; return【12】;(12)以下程序的输出结果是【13】。void reverse(int a,int n) int i,t; for(i=0;in/2;i+) t=ai; ai=an-1-i;an-1-i=t;main() int b10=1,2,3,4,5,6,7,8,9,10; int i,s=0; reverse(b,8); for(i=6;i10;i+)s+=bi;printf( %dn,s);(13)以下说明语句中 ,【14】是结

19、构体类型名。typedef struct int n;char ch8; PER;( 14)以下程序的作用是 :从名为 filea.dat 的文本文件中逐个读入字符并显示在屏幕上。请填空。#includemain()fp=fopen(【15】);ch=fgetc(fp);while(!feof(fp) putchar(ch); ch=fgetc(fp); putchar(n);fclose(fp);一、选择题(1)C 【解析】 程序流程图是人们对解决问题的方法、思路或算法的一种图形方式的描述。其中 ,图框表示各种操作的类型 ,图框中的文字和符号表示操作的内容 ;流程线表示操作的先后次序。带箭头

20、的线段在数据流程图中表示数据流 ;带箭头的线段在程序流程图中表示控制流。题中给出的选项中 ,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。(2)C【解析】软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念 , 它们具有抽象、模块化、信息隐蔽和数据独立性。自底向上是集成测试中增量测试的一种。(3)C 【解析】 模块之间的耦合程度反映了模块的独立性 ,也反映了系统分解后的复杂程度。按照耦合程度从强到弱分别是 :内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合和非直接耦合 , 没有异构耦合这种方式。(4)

21、D 【解析】 软件需求规格说明书 (SRS,Software Requirement Specification)是需求分析阶段的最后成果 ,是软件开发中的重要文档之一。它具有以下几个方面的作用 : 便于用户、开发人员进行理解和交流 ; 反映出用户问题的结构 ,可以作为软件开发工作的基础和依据 ; 作为确认测试和验收的依据。(5)C【解析】算法的复杂度主要包括算法的时间复杂度和空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量 , 即算法执行过程中所需要的基本运算的次数 ;算法的空间复杂度一般是指执行这个算法所需要的内存空间。(6)B 【解析】 堆排序的比较次数为 nlog2n;直

22、接插入排序的比较次数为 n(n-1)/2;快速排序的比较次数为 nlog2n。当数据表 A 中每个元素(7)B【解析】栈操作原则上 后进先出 ,栈底至栈顶依次存放元素 A、B、C、D,则表明这 4 个元素中 D 是最后进栈 ,B、C 处于中间 ,A 最早进栈 ,所以出栈时一定是先出 D,再出 C,最后出 A。(8)A 【解析】 数据库设计包括数据库概念设计和数据库逻辑设计两个方面的内容。(9)A【解析】关系表中 ,每一行称为一个元组 ,对应表中的一条记录;每一列称为一个属性 ,对应表中的一个字段 ; 在二维表中凡能唯一标识元组的最小属性集称为该表的键或码。(10)C【解析】 选课 SC 表是

23、学生 S 表和 课程 C 表的映射表 ,主键是两个表主键的组合。(11)D【解析】 在 C 语言所有的运算符中 ,逗号运算符的优先级最低。 C 语言中区分大小写 ,所以 APH 和 aph 是两个不同的变量。赋值表达式 a=b 表示将 b 的值付给 a,而 b 本身的值保持不变 ;通过键盘可以向计算机输入允许的任何类型的数据。选项 D)中当从键盘输入数据时 ,对于整型变量可以输入整型数值和字符 ,对于实型变量可以输入实型数值和整型数值等。(12)B【解析】C 语言规定用户标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线 ,可见选项 C),D)是错误的 ;此外,C 语言不允许用户将

24、关键字作为标识符 ,而选项 A) 中的 void 正是 C语言的关键字。(13)B 【解析】 C 语言的语法规定 ,字母 e(E)之前必须有数字 ,且e(E)后面的指数必须是整数 ,而选项 B)中,e(E)后面的指数是小数 ,所以不合法。(14)A【解析】在 C 语言中 ,% 运算符两侧的运算数必须是整型。(15)A 【解析】 赋值运算符左侧的操作数必须是一个变量 ,而不能是表达式或者常量 ,选项 C)和 D)错误。 % 运算符两侧都应当是整型数据 ,选项 B)错误。(16)D【解析】输出格式控制符 %c 表示将变量以字符的形式输出;输出格式控制符 %d 表示将变量以带符号的十进制整型数输出

25、,所以第一个输出语句输出的结果为 a,97;第二个输出语句输出的结果为k=12。(17)B 【解析】 C 语言的字符以其 ASCII 码的形式存在 ,所以要确定某个字符是大写字母 ,只要确定它的 ASCII 码在 A和Z之间就可以了,选项 A)和 C)符合要求。函数 isalpha用来确定一个字符是否为字母 , 大写字母的 ASCII 码值的范围为 65 到 90,所以如果一个字母的 ASCII 码小于 91,那么就能确定它是大写字母。(18)B 【解析】 满足表达式 (c=2&c=6) 的整型变量 c 的值是2,3,4,5,6。当变量 c 的值不为 2,4,6 时,其值只能为 3 或 5,所

26、以表达式 c!=3 和 c!=5 中至少有一个为真 ,即不论 c 为何值 ,表达式 B)都为 真 。(19)B【解析】条件运算符要求有3 个操作对象 ,称三目 (元)运算符,它是 C 语言中惟一的一个三目运算符。条件表达式的一般形式为 : 表达式 1?表达式 2:表达式 3 其求解顺序是 :先求解表达式 1,若为非0(真)则求解表达式 2,此时表达式 2 的值就作为整个条件表达式的值。若表达式 1 的值为 0(假),则求解表达式 3,表达式 3 的值就是整个条件表达式的值 ,注意 +、-的用法。(20)B【解析】在一维数组中要注意的是作为下标表达式的常量表达式的值必须是大于等于0,选项 B)中

27、定义有 5 个元素 ,但赋值时有6 个元素 ,所以是错误的。(21)B【解析】本题中 ,a12 是二维数组中的第6 个元素 ,对应for 循环中 i 的值为 5,p5=5+1。(22)B【解析】本题中 ,! 表示逻辑非运算符 ,!= 表示不等于运算符 ,逻辑非运算符比不等于运算符的优先级高。(23)C【解析】对于字符串指针 ,其保留的是整个串的首地址,即第一个字符的起始地址 ;当该指针做算术运算时 ,就是该指针根据其类型向后移动相应的存储空间。(24)A 【解析】 数组 c4 表示一个 4 行 4 列数组 ,c22 表示第 3 行第 3 列上的元素 62,*(*(c+1)+1) 表示第 2 行

28、第 2 列上的元素 6,通过十六进制输出为3e,6。(25)C【解析】选项 A)char *a;*a=china 应改为选项 B)应该是 char str6;D)项表述方法有错误。(26)D 【解析】 C 语言中数组下标是从 0 开始的 ,所以二维数组 a23 的第一维下标取值为 0、1;第二维的下标取值为 0、1、2,因而选项 A)、B)、C)都是错误的 ,选项 D)表示数组元素 a00 。(27)D【解析】在格式输入中 ,要求给出的是变易的地址,而 D) 答案中给出的s1 是一个值的表达式。(28)B【解析】根据宏替换的替换规则,我们可知,f(2)=2*N+1=2*5+1=11,f(1+1

29、)=1+1*N+1=1+1*5+1=7 。(29)D【解析】选项 A), 共用体的每个成员的起始地址都相同;选项 B),共用体变量所占的内存长度等于最长的成员的长度 ;选项 C)因为每个成员的起始地址相同, 所以整型数 5 以浮点型输出时为5.000000;选项 D)C 语言规定 ,不能把共用体变量作为函数的参数。(30)D【解析】将有 6 个元素的整型数组分两行输出到一个文件中,因为输出的都是数字并且每行都没有分隔符 ,所以当再对其进行读取操作时 ,每一行都会被认为是一个完整的数 ,而换行符则作为它们的分隔符。(31)D 【解析】 通常 ,引用一个数组元素可以用下标法 ,如 ap-a 形式

30、,或指针法 ,如*(&ai) 的形式。本题中 a9=9,a10 显然超出数组范围,注意 ,数组的下标是从 0 开始的。(32)C【解析】 函数 fun(int *s,int n1,intn2)的功能是对数组 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 。(33)A 【解析】 本题题意要求删除所有空格 ,即除了空格以外的其

31、他所有字符都要留下。由于 C 语言中没有直接删除字符的操作 ,所以我们对于删除字符的操作都是采用 留下 字符的算法 ,以前的题目亦是如此。用 stri 从串头到串尾逐一走动 ,每走到一个字符都判断其是否为空格 ,若不是空格 (注意在 if() 的单引号之间有一个空格 ),则将其保存 strj 中。注意 j 的下标变化、初值及最后加串结束符 0。(34)A 【解析】 本程序考察的是函数的递归调用 ,在调用一个函数的过程中又出现直接或间接地调用该函数本身 ,称为函数的递归调用 , 执行结果为 1+2+3+4+5+6+7+8+9+10=55。(35)C 【解析】 本题中 ,格式符 0 表示的是八进制

32、无符号形式输出整型数 (不带前导 0),字符常量在内存中占一个字节 ,存放的是 ACSII 码代码值。 C 语言规定 ,所有字符常量都作为整型量来处理 ,在计算机内部 ,其对应的整数值就是 ACSII 字符集中该字符的序号 ,即&*s 中有几个字符就输出几个 * 。(36)B 【解析】 结构体类型的变量在程序运行期间要作为一个整体占用连续的内存单元。(37)C 【解析】这是一道考查 fread 函数的题。buf 是一个指针 ,fread 是读入数据的存放地址 ;fwrite 是输出数据的地址 (以上指的是起始地址)。(38)B【解析】本题考查两个位运算符。按位异或运算符 是双目运算符,其功能是

33、参与运算的两数各对应的二进位相异或,当两对应的二进位相异或时,结果为1。左移运算符 是双目运算符 ,其功能把 左边的运算数的各二进位全部左移若干位 ,由 右边的数指定移动的位数 ,高位丢弃 ,低位补 0,并且 t 时,返回正值 ,当 s t 时,返回负值。(12)【13】 22 【解析】 在 main 函数中 ,调用 reverse函数将 b 数组中的前 8 个成员进行互置 , 执行完毕后 ,b 数组 中的 成员为8,7,6,5,4,3,2,1,9,10,然后再执行 for 循环结构 ,将 b6,b7.b9 的值相加 ,结果为 22。(13)【14】 PER 【解析】 本题中 ,typedef 声明新的类型名 PER 来代替已有的类型名 ,PER 代表上面指定的一个结构体类型 ,此时 ,也可以用 PER 来定义变量。(14)【15】 “filea.dat ”, “【r解”析】 fopen 函数的调用方式通常为fopen(文件名 ,使用文件方式 )。本题中要求程序可以打开 filea.dat 文件 , 并且是要读取文件中的内容 ,所以空白处应当填入 filea.dat,r 。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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