2019年整理年9月计算机二级c语言试题及详细解答答案精品资料_第1页
2019年整理年9月计算机二级c语言试题及详细解答答案精品资料_第2页
2019年整理年9月计算机二级c语言试题及详细解答答案精品资料_第3页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、WORD格式一、选择题在以下各题的 A、 B、 C、 D四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。专业资料整理WORD格式 1以下数据构造中,属于非线性构造的是 A) 循环队列 B) 带链队列 C)二叉树_。D) 带链栈专业资料整理WORD格式 2以下数据构造中,能够按照 A) 循环队列 B) 栈 C)队列 先进后出 原那么存取数据的是D)二叉树_ 。专业资料整理WORD格式 3对于循环队列,以下表达中正确的选项是_。专业资料整理WORD格式A) 队头指针是固定不变的B) 队头指针一定大于队尾指针C) 队头指针一定小于队尾指针D)队头指针可以大于

2、队尾指针,也可以小于队尾指针 4算法的空间复杂度是指_。A) 算法在执行过程中所需要的计算机存储空间B) 算法所处理的数据量D) 算法在执行过程中所需要的临时工作单元数 5软件设计中划分模块的一个准那么是_。A) 低内聚低耦合B) 高内聚低耦合C)低内聚高耦合D) 高内聚高耦合 6以下选项中不属于构造化程序设计原那么的是_。A) 可封装B) 自顶向下C)模块化D) 逐步求精 7软件详细设计产生的图如下:专业资料整理WORD格式该图是A)N-S 图。B)PAD 图C)程序流程图D)E R图专业资料整理WORD格式 8数据库管理系统是_。A) 操作系统的一局部专业资料整理WORD格式B) 在操作系

3、统支持下的系统软件C) 一种编译系统D) 一种操作系统 9在 E R图中,用来表示实体联系的图形是_。A) 椭圆形 B) 矩形C)菱形D) 三角形 10有三个关系 R, S和 T 如下:RABCa12b21c31SABCd32TABCa12b21c31d32其中关系 T 由关系 R和S通过某种操作得到,该操作为_。A) 选择 B) 投影 C)交 D)并 11以下表达中正确的选项是_。A) 程序设计的任务就是编写程序代码并上机调试B) 程序设计的任务就是确定所用数据构造C)程序设计的任务就是确定所用算法D)以上三种说法都不完整 12以下选项中,能用作用户标识符的是_。专业资料整理WORD格式A)

4、voidB)8_8专业资料整理WORD格式C)_0_D)unsigned专业资料整理WORD格式 13阅读以下程序:#includemain() int case; float printF ; printf( 请输入 2个数: ) ;scanf(%d%f , &case,&printF) ;专业资料整理WORD格式printf(% d%fn , case, printF) ;该程序在编译时产生错误,其出错原因是_。A) 定义语句出错, case是关键字,不能用作用户自定义标识符B) 定义语句出错, printF 不能用作用户自定义标识符D) 定义语句无错, printf 不能输出 case的

5、值( 14表达式: (int)(double)9/2) (9)%2 的值是 _。A)0B)3C)4D)5 15假设有定义语句: intx 10;,那么表达式 x x x的值为 _。A) 20B)10C)0D)10 16有以下程序:#includemain() int a 1, b 0;printf(%d , , b a b);printf(%dn , a 2程序运行后的输出结果是_。A)0,0B)1,0C)3,2D)1,2 17设有定义:inta 1 , b 2 , c 3;,以下语句中执行效果与其他三个不同的是_。A)if(ab)c a, a b, b c;B)if(ab)c a, a b,

6、 b c; C)if(ab)c a; a b; bc;D)if(ab)c a; a b; b c; 18有以下程序:#includemain() int c 0, k;for(k 1; kb? (bc? 1:0): 0;功能一样的是_。专业资料整理WORD格式A)if(ab)&(bc)k 1;专业资料整理WORD格式elsek 0;专业资料整理WORD格式B)if(ab) (bc)k1;专业资料整理WORD格式else k 0;C)if(a b)k 0;else if(bb)k 1;专业资料整理WORD格式elseif(bc)k 1;专业资料整理WORD格式elsek 0;专业资料整理WORD

7、格式 20有以下程序:#include main()char s 012xy; int i , n0;for(i 0; si ! 0; i )if (si a&si z) n;printf(%dn , n);_。程序运行后的输出结果是A)0B)2C)3D)5 21有以下程序:#include main() int n2, k 0;while(k &n 2) ;printf(%d%dn , k, n);程序运行后的输出结果是_。A)02B)13C)57D)12 22有以下定义语句,编译时会出现编译错误的选项是_。专业资料整理WORD格式A)charB)charC)chara a;a n;a aa

8、;专业资料整理WORD格式D)chara x2d ; 23有以下程序:#includemain()专业资料整理WORD格式charcl ,c2;cl A 8 4;c2 A 8 5;printf(%c , %dn , cl, c2);字母 A 的ASCIl 码为 65,程序运行后的输出结果是_。A)E,68B)D,69C)E, DD) 输出无定值 24有以下程序:#includevoidfun(int p) int d 2;p d;printf(%d , p); main() int a 1;fun(a) ; printf(%dn , a);程序运行后的输出结果是_。A)32B)12C)21D)

9、22( 25以下函数 findmax 拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。#define MIN 2147483647int findmax(intx , int n) int i, max; for(i 0; in ;i ) max MIN ;if(maxxi)max xi ; returnmax;造成错误的原因是_。A) 定义语句 int i ,max;中 max未赋初值B) 赋值语句 max MIN ;中,不应给 max赋 MIN 值C) 语句 if(maxxi)max xi ;中判断条件设置错误D)赋值语句 maxMIN ;放错了位置 26有以下

10、程序:#includemain() int m 1, n2, *p &m , *q &n , *r ;r p; p q; q r;printf(%d ,%d, %d, %dn ,m,n, *p , *q) ;程序运行后的输出结果是_。A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,2专业资料整理WORD格式 27假设有定义语句:inta410 ,*p , *q4 ;且 0i4,那么错误的赋值是_。专业资料整理WORD格式A)p aC)p aiB)qi aiD)p &a21专业资料整理WORD格式 28有以下程序:#include#includemain() char st

11、r20 Qne*World , one*Dream ! , *p str1 ; printf(%d , ,strlen(p) ; printf(%sn , p);程序运行后的输出结果是_。专业资料整理WORD格式A)9 ,One*WorldC)10,One*Dream!B)9 , One*Dream!D)10 ,One*World专业资料整理WORD格式 29有以下程序:专业资料整理WORD格式#include专业资料整理WORD格式main()专业资料整理WORD格式inta 2,3,5,4, i ;专业资料整理WORD格式for(i 0; i4 ;i )switch(i%2) case 0

12、: switch(ai%2)case 0: ai ; break;case 1: ai ;break ;case 1: ai 0;for(i 0; i4 ;i )printf(%d , ai) ; printf(n) ;程序运行后的输出结果是_。A)3344B)20 5 0C)3040D)03 0 4 30有以下程序:#include#include main() char a10 abcd ;printf(%d , %dn , strlen(a), sizeof(a) ;程序运行后的输出结果是_。A)7,4B)4,10C)8,8D)10,10 31下面是有关 C语言字符数组的描述,其中错误的

13、选项是_。A) 不可以用赋值语句给字符数组名赋字符串专业资料整理WORD格式B) 可以用输入语句把字符串整体输入给字符数组C) 字符数组中的内容不一定是字符串D)字符数组只能存放字符串( 32以下函数的功能是 _。fun(char*a , char*b)while(*b *a)! 0)a ; b; A) 将 a所指字符串赋给 b所指空间B) 使指针 b指向 a所指字符串C)将 a所指字符串和 b所指字符串进展比拟D)检查 a和 b所指字符串中是否有0 33设有以下函数:void fun(int n ,char*s) 那么下面对函数指针的定义和赋值均正确的选项是_。专业资料整理WORD格式A)v

14、oidB)voidC)void(*pf)() ;*pf() ;*pf() ;pf fun ;pf fun;*pf fun ;专业资料整理WORD格式D)void(*pf)(int, char);pf &fun ; 34有以下程序:#include int f(int n) ;main() int a 3,s;s f(a) ;s s f(a) ;printf(%dn , s);int f(int n) static int a 1;n a;return n;程序运行后的输出结果是_。A)7B)8C)9D)10 35有以下程序:#include #define f(x) x*x*xmain() i

15、nt a 3,s,t;s f(a 1); t f(a 1);printf(%d ,%dn , s, t);程序运行后的输出结果是_。A)10,64B)10,10C)64,10D)64,64专业资料整理WORD格式 36下面构造体的定义语句中,错误的选项是_。A)structordintx; inty; intz; ; struct orda;B)structordintx; inty; intz; struct orda;C)structordintx; inty; intz; a ;专业资料整理WORD格式D)structintx; inty;intz; )a;专业资料整理WORD格式 37

16、设有定义:char*c ;,以下选项中能够使字符型指针c正确指向一个字符串的是专业资料整理WORD格式_。专业资料整理WORD格式A)char str string ; c str;B)scanf(%s , c);C)c getchar();D)*c string ; 38有以下程序:#include#includestruct A int a ; char b10 ; double c; ; struct A f(struct A t) ;main() struct A a 1001 , ZhangDa , 1098.0);a f(a); printf(%d , %s, %6.1fn , a

17、.a, a.b, a.c);struct A f(struct A t) t a1002 ; strcpy(t.b, changRong) ; t.c 1202.0; return t; 程序运行后的输出结果是 _。A)1001 , ZhangDa,1098.0B)1002 , ZhangDa,1202.0C)1001, ChangRong,1098.0D)1002 , ChangRong,1202.0 39假设有以下程序段:intr8;printf(%dn , r1) ;输出结果是 _。A)16B)8C)4D)2 40以下关于 C语言文件的表达中正确的选项是_。A) 文件由一系列数据依次排列

18、组成,只能构成二进制文件B) 文件由构造序列组成,可以构成二进制文件或文本文件C)文件由数据序列组成,可以构成二进制文件或文本文件D)文件由字符序列组成,其类型只能是文本文件专业资料整理WORD格式二、填空题请将每一个空的正确答案写在答题卡序号的横线上,答在试卷上不给分。1某二叉树有5个度为 2的结点以及 3个度为 1的结点,那么该二叉树中共有_【 1】 _个结点。专业资料整理WORD格式2程序流程图中的菱形框表示的是_【 2】 _。专业资料整理WORD格式3软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其中_【 3】_阶段专业资料整理WORD格式产生 软件需求规格说明书 。专业资料

19、整理WORD格式4在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么可选课程 的联系为 _【 4】 _。学生 和 专业资料整理WORD格式5人员根本信息一般包括:XX号,XX,性别,年龄等。其中可以作为主关键字是_【 5】 _。( 6假设有定义语句: int a 5;,那么表达式: a的值是 _【 6】 _。( 7假设有语句 double x 17; int y ;,当执行 y (int)(x/5)%2 ;之后 y的值为 _【 7】 _。 8以下程序运行后的输出结果是_【 8】 _。#includemain() int x20; printf(%d , 0x20) ;prin

20、tf(%dn , 0x&x20) ; 9以下程序运行后的输出结果是_【 9】_。#includemain() int a 1,b 7; dob b/2; a b; while(b1) ;printf(%dn , a); 10有以下程序:#includemain() int f , fl ,f2 ,i ;f1 0; f2 1;printf(%d%d ,f1 ,f2) ;for(i 3;i 5; i ) f f1 f2; printf(%d , f) ;f1 f2; f2 f;printf(n) ;程序运行后的输出结果是_【10】 _。专业资料整理WORD格式 11有以下程序:#include i

21、nt a 5;void fun(int b)专业资料整理WORD格式int a 10;专业资料整理WORD格式a b; printf(%d , a);main()int c 20;fun(c) ; a c; printf(%dn , a);程序运行后的输出结果是_【11】_。 12设有定义:struct personint ID ;char name12 ;p ;专业资料整理WORD格式请将 scanf(%d ,_【 12】_);语句补充完整,使其能够为构造体变量p的成员ID 正确读入专业资料整理WORD格式数据。专业资料整理WORD格式 13有以下程序:#includemain() char

22、 a20 How are you ? , b20 ; scanf(%s , b); printf(%s %sn , a, b);程序运行时从键盘输入:How are you ? 那么输出结果为_【 13】 _。 14有以下程序:#include typedef struct int num ; double s;REC ;void funl(REC x)x.num 23; x.s88.5; main() REC a 16,90.0) ;fun1(a);printf(%dn , a.num);程序运行后的输出结果是_【14】 _。 15有以下程序:#include fun(int x) if(x

23、/20) fun(x/2) ;printf(%d., x);专业资料整理WORD格式main()专业资料整理WORD格式fun(6) ,printf(n); 专业资料整理WORD格式程序运行后的输出结果是_【15】 _。一、选择题(1)C【解析】 根据数据构造中各数据元素之间前后关系的复杂程度,一般将数据构造分为两大类型:线性构造与非线性构造。线性构造表示数据元素之间为一对一的关系,非线性构造表示数据元素之间为一对多或者多对一的关系。根据各种构造的定义知二叉树是一种非线性构造。(2)B【解析】 栈是限定只在一端进展插入与删除的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。栈顶元素总是后

24、被插入的元素,也是最先被删除的元素;栈底元素总是最先被插入的元素,也是最后才能被删除的元素。栈是按照 先进后出 或 后进先出 的原那么组织数据的。(3)D专业资料整理WORD格式【解析】 循环队列是将顺序队列首尾相连形成的, 随着插入元素或删除元素的进展,针及队尾指针是在不断变化的,有时可能会出现队头指针大于队尾指针的情况,也可能是队尾指针大于队头指针,故答案为 D) 。其队头指专业资料整理WORD格式(4)A【解析】 算法的空间复杂度是指: 算法执行过程中所需的存储空间。 一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。(5)B

25、【解析】 模块划分应考虑的因素包括模块之间的耦合和内聚。一般来说,要求模块之间的耦合尽可能地低,即模块尽可能独立,要求模块的内聚程度尽可能地高,即遵循高内聚、低耦合的原那么。(6)A【解析】 模块化、自顶向下、逐步求精都是构造化程序设计的原那么;可封装是面向对象程序设计原那么。(7)C【解析】N S图是由假设干根本框图构成的流程图,其特点是没有流程线;PAD图即问题分析图 (Problem Analysis Diagram) ,它是一种由左往右展开的二维树形构造;程序流程图用于描述问题解决的过程和步骤,其中方框表示处理步骤,菱形框表示逻辑判断,箭头表示控制流向;E R图即实体联系图(Entit

26、y Relationship Diagram) ,用来描述现实世界的概念模型,构成元素有实体、属性和联系,分别用矩形、椭圆形和菱形表示。此题答案为C)。(8)B专业资料整理WORD格式【解析】数据库管理系统是指位于用户与操作系统之间的数据管理软件。数据库建立、使用和维护而配置的软件。数据库管理系统是为专业资料整理WORD格式(9)C【解析】 E R图中用矩形表示实体 (等同于表 ),用椭圆形表示实体的属性 (等同于表中字段 ),用菱形表示实体关系 (等同于外键 )。(10)D【解析】两个一样构造关系的并是由属于这两个关系的元组组成的集合。(11)D【解析】程序设计通常分为问题建模、算法设计、编

27、写代码和编译调试四个阶段。所以选项A) 、 B) 、C)说法都不完整。(12)C【解析】C语言的标识符命名规那么为:只能由字母、数值和下划线3种字符组成;第一个字符必须是字母或下划线;不能与C语言中的关键字或保存字一样。(13)A【解析】 标识符不能与 C编译系统已经预定义的、具有特殊用途的保存标识符(即关键字 )同名,否那么程序在编译时会出现错误。题目源程序中使用了已经预定义的关键字case,所以将出现错误。(14)B【解析】(int)(double)9/2) 的值为 4, (9)%2 的值为 1,因此 (int)(double)9/2) (9)%2 的值为 3。(15)B【解析】x x x

28、可化为: x x (x x),由于 x初始值为 10,所以计算后, x 10 2010,因此选 B) 。(16)D【解析】 执行第一个 printf 语句时, b a b1,所以输出 1,执行第二个 printf 语句时, a 2*b=2,所以输出结果为 2。(17)C【解析】逗号表达式的求解过程是:按表达式顺序从左往右依次求解。此题中由于判断条件ab的值为假,所以选项A) 、B) 、 D)中 if 语句后面的语句均未被执行,而C)中的后两条语句 a b和b c被执行,因此选项C)的执行效果与其他三个不同。(18)A【解析】第一次循环时, k1,在 switch 语句中,先执行 default

29、 后面的语句,即 c c k 1,因为没有 break语句,所以不会跳出switch 构造,会接着执行 case2后面的语句,即 c c1 2,然后跳出 switch ;第二次循环时, k 2,直接执行 case2后面的语句, 即 c c1 3,然后跳出 switch 语句,完毕循环,执行输出语句。(19)A【解析】 表达式 kab? (bc? 10) 0表示:如果 (ab)条件为真,那么 k取值 (bc? 1 0),否那么k取值 0;当 ab的情况下,如果 bc,那么 k值为 1,否那么为 0。所以该表达式与选项 A) 功能一样。专业资料整理WORD格式(20)B【解析】 在字符串数组 si

30、 中,只有当下标 i 3和 i 4时,才满足 if 条件,所以 n的值从 0增加两次,结果为 2。(21)D【解析】此题考察逻辑运算符的短路 现象,由于 k的值为 0,表达式首先去求k的值,因为表达式 k的值为 0,系统完全可以确定逻辑表达式的运算结果总是为0,因此将跳过 n2,不再对它进展求值,即 k的值加 1, n的值不变。(22)C【解析】aa是字符串,不用加上单引号。(23)A【解析】c1输出字符的 ASCII 码比字母 A 大4,即字母 E; c2以十进制数字形式输出,因此可以判断此题答案为 A) 。(24)C【解析】程序运行后,首先输出的是 p的值,然后输出 a的值。 p d,得到

31、 p的值为 d的初始值2; a的值不变,仍为 1。(25)D【解析】 对 max赋初值,应该放在循环语句之前,不然每次循环都将是从MIN 开场比拟。(26)B【解析】 m和 n的值不变, 输出结果为 1,2。指针 *p 和 *q 交换了指向的位置, 即*p &n ,*q &m ,输出结果分别为 2,1。(27)A【解析】直接将二维数组a赋给 p不合法,两者类型不匹配。(28)C【解析】可以将二维数组str看成是一个特殊的一维数组,其元素也是一个数组。那么,str0为 One*World , str1 为 One*Dream ! 。(29)C【解析】第一次循环,i 0, i%2 0, a0%2

32、0, a0 a0 1 3;第二次循环,i 1,1%2 1,a1 0;第三次循环, i 2, a2%2 1,a2 a2 1 4;第四次循环, i 3,i%2 1,a3 0。(30)B【解析】 strlen() 用来返回字符串的长度, 而sizeof() 返回的是一个对象或者类型所占的内存字节数,即数组所占的内存。(31)D【解析】字符数组中的内容既可以是字符,也可以是字符串,选项D) 说法不正确。专业资料整理WORD格式(32)A【解析】 表达式 *b *a是将 a所指的字符赋给 b所指的空间,然后,指针 a和 b依次后移,直到到达指针 a所指字符串的结尾。(33)A【解析】函数指针的定义形式是

33、:数据类型标识符(* 指针变量名 )() 。 void(*pf)() 定义了一个没有返回值的函数指针 pf ,在给函数指针变量赋值时,只需给出函数名而不必给出参数。所以给pf赋值时,只把函数名 fun赋给 pf即可。所以正确答案为选项 A) 。(34)C【解析】 sf(a) 表达式第一次调用 f(n) 函数时, f(n) 函数运行结果为 n4, a 2,即 s等于 4;ss f(a) 表达式第二次调用 f(n) 函数时, f(n) 函数运行结果为 n 5,所以得到 s值为 9。(35)A【解析】s=f(a+1)=a+1*a+1*a+1=10;s=f(a+1)=(a+1)*(a+1)*(a+1)

34、=64。(36)B【解析】定义构造体变量有三种方式:先声明构造体类型,再定义变量名,如选项A) 所示;在声明类型的同时定义变量,如选项C)所示;直接定义构造体类型变量,如选项D)所示。(37)A【解析】选项 B)、D)中,没有为字符串分配空间,因此不能用c指向字符串。选项C)中 getchar()函数返回一个字符,不能将字符赋给字符指针c。选项 A) 中首先定义了字符数组str,然后将 str的首地址赋给指针c,这样就使指针c指向了字符串 string 。(38)D【解析】 在主函数中,通过 af(a) 实现函数调用,所以输出的构造体变量相应变为 1002,ChangRong,1202.0。(39)C【解析】8用二进制表示为1000,右移 1位后为 0100,即十进制 4。(40)C【解析】文件由数据序列组成,可以构成二进制文件,也可以构成文本文件。二、填空题(1) 【 1】 14【解析】在二叉树中, 度为 0的结点数是度为2的结点数加 1,故二叉树中结点数的总和为度为0的结点数、度为1的结点数及度为2的结点数三者相加,得出结果为14个结点。(2) 【

温馨提示

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

最新文档

评论

0/150

提交评论