ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:36.81KB ,
资源ID:9067146      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9067146.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(全国计算机等级考试二级C语言真题库之选择题11.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

全国计算机等级考试二级C语言真题库之选择题11.docx

1、全国计算机等级考试二级C语言真题库之选择题11全国计算机等级考试等级考试真题库之选择题(11)1.下列叙述中正确的是A) 一个算法的空间复杂度大,则其时间复杂度也必定大B) 一个算法的空间复杂度大,则其时间复杂度必定小C) 一个算法的时间复杂度大,则其空间复杂度必定小D) 算法的时间复杂度与空间复杂度没有直接关系 参考答案:D【解析】算法的空间复杂度是指算法在执行过程中所需要的内存空间,算法的时间复杂度,是指执行算法所需要的计算工作量,两者之间并没有直接关系,答案为D。2.下列叙述中正确的是A) 循环队列中的元素个数随队头指针与队尾指针的变化而动态变化B) 循环队列中的元素个数随队头指针的变化

2、而动态变化C) 循环队列中的元素个数随队尾指针的变化而动态变化D) 以上说法都不对 参考答案:A【解析】在循环队列中,用队尾指针指向队列中的队尾元素,用排头指针指向排头元素的前一个位置。因此,从排头指针指向的后一个位置直到队尾指针指向的位置之间所有的元素均为队列中的元素。所以循环队列中的元素个数与队头指针和队尾指针的变化而变化,A正确。3.一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为A) 219B) 229C) 230D) 231 参考答案:B【解析】二叉树中,度为0的节点数等于度为2的节点数加1,即n20-1,叶子节点即度为0,则n2=79,总结点数为n012

3、=80+70+79=229,答案为B。4.对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为A) 9B) 10C) 45D) 90 参考答案:C【解析】冒泡法是在扫描过程中逐次比较相邻两个元素的大小,最坏的情况是每次比较都要将相邻的两个元素互换,需要互换的次数为9+8+7+6+5+4+3+2+1=45,选C。5.构成计算机软件的是A) 源代码B) 程序和数据C) 程序和文档D) 程序、数据与相关文档 参考答案:D【解析】软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和有关的文档,选D。6.软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是A)

4、测试B) 设计C) 可行性研究D) 实现 参考答案:C【解析】开发阶段包括分析、设计和实施两类任务。其中分析、设计包括需求分析、总体设计和详细设计3个阶段,实施则包括编码和测试两个阶段,C不属于开发阶段。7.下面不能作为结构化方法软件需求分析工具的是A) 系统结构图B) 数据字典()C) 数据流程图(图)D) 判定表 参考答案:A【解析】结构化方法软件需求分析工具主要有数据流图、数据字典、判定树和判定表。8.在关系模型中,每一个二维表称为一个A) 关系B) 属性C) 元组D) 主码(键) 参考答案:A【解析】关系模型采用二维表来表示,即每个二维表称为一个关系。9.若实体A和B是一对多的联系,实

5、体B和C是一对一的联系,则实体A和C的联系是A) 一对一B) 一对多C) 多对一D) 多对多 参考答案:B【解析】A和B为一对多的联系,则对于A中的每一个实体,B中有多个实体与之联系,而B与C为一对一联系,则对于B中的每一个实体,C中之多有一个实体与之联系,则可推出对于A中的每一个实体,C中有多个实体与联系,所以为一对多联系。10.A) 选择B) 投影C) 交D) 并 参考答案:D【解析】关系T中的元素与关系R和关系S中不同元素的总和,因此为并操作。11.我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是A) 一条C语句可能会被转换成零条机器指令B) 一条C

6、语句可能会被转换成多条机器指令C) 一条C语句对应转换成一条机器指令D) 某种类型和格式的C语句被转换成机器指令的条数是固定的 参考答案:C【解析】一个C语句经过编译后产生若干条机器指令声明部分不是语句,不产生机器指令,只是对有关数据的声明而且固定类型和格式的C语句被转换成机器指令的条数固定所以选择C选项12.关于(条件表达式)循环体,以下叙述正确的是A) 循环体的执行次数总是比条件表达式的执行次数多一次B) 条件表达式的执行次数总是比循环体的执行次数多一次C) 条件表达式的执行次数与循环体的执行次数一样D) 条件表达式的执行次数与循环体的执行次数无关 参考答案:B【解析】循环是先判断条件,满

7、足条件后执行循环体,执行完后接着判断条件,执行,直到最后一次判断条件后不成立,跳出循环,所以最后一次执行了条件表达式,但是没有执行循环体,所以选择B选项13.关于C语言的符号常量,以下叙述中正确的是A) 符号常量的符号名是标识符,但必须大写B) 符号常量是指在程序中通过宏定义用一个符号名来代表一个常量C) 符号常量在整个程序中其值都不能再被重新定义D) 符号常量的符号名必须是常量 参考答案:B【解析】在C语言中,可以用一个标识符来代表一个常量,称为符号常量这个标识符必须在程序中进行特别的指定,并符合标识符的命名规则用作符号常量的标识符通常采用大写字母表示,在主函数中其值不能再被定义所以选择B选

8、项14.若有以下程序 () 10, 11; a b 4; ( n, a, b); 则程序的输出结果是A) 1 2 B) -1 2C) -1 -2D) 1 -2 参考答案:B【解析】先计算4,即4,结果为2,然后计算2,结果为-1,最后a的值为-1的值为2,所以选择B选项15.若有以下程序 () 000; (a ), (, 4); (n); 则程序的输出结果是A) 0,4,0B) 0,4,4C) 1,4,1D) 1,4,4 参考答案:A【解析】逗号运算符的结合性从左到右,因此逗号表达式将从左到右进行计算。且逗号运算符的优先级最低,所以先计算()这部分。其中,赋值运算符从右往左计算,先执行自增1后

9、再赋值,所以a的值为1,执行1,即1-1的值为0,并将0赋给变量c第二部分(4),先执行0+0,即a的值为0,然后执行40+4,即b的值为4所以打印结果为0,4,0,选择A选项16.若有以下程序 () 000; (, ); /*第4行*/ ; /*第5行*/ ; /*第6行*/ (n); /*第7行*/ 编译时出现错误,你认为出错的是A) 第4行B) 第5行C) 第6行D) 第7行 参考答案:A【解析】第4行逗号表达式中间的第二个表达式为空,是不合法的,可以去掉写成,也可以在里面补一个表达式,如所以选择A选项17.若有以下程序 () 1234; (2) (1) 2; (3) (1) 5; (n

10、, ); 则程序的输出结果是A) 1,2,3,4B) 2,1,21C) 5,1,21D) 2,2,2,4 参考答案:D【解析】第一个语句的判断条件中是逻辑或表达式,所以只要有一个运算对象为真结果就为真,且如果前面的已经为真,后面的表达式不再进行执行判断执行第一个判断条件时a的值为2,整个表达式的值为真的值不变的值为2判断第二个条件为逻辑与表达式,只有两个运算对象均非零,才为真,第一个表达式3,不成立,不再判断第二个运算对象,所以不执行1操作和5操作所以结果为选项D18.若有以下程序 () 1234, 0; (1) ; 1; (2) 2; ; (3) 3; ; (4) 4; (n, r); 则程

11、序的输出结果是A) 10B) 7C) 6D) 3 参考答案:B【解析】总是和与之最近的上面的配对,执行第一个,判断条件不成立,执行 1;语句再执行第二个语句中的判断条件,成立,左移执行2的值为3,再执行第三个的判断条件,不成立执行第7行后面的空语句;再执行第四个的判断条件4成立,执行4的值为7然后打印输出19.若有以下程序 () 0, n; (0; n4; ) (n) : 4; 1: 1; 2: 2; 3: 3; (n, s); 则程序的输出结果是A) 6B) 18C) 10D) 24 参考答案:D【解析】第一次循环的值为0,所以从后面的语句开始执行4123的值为10在进入第二次循环的值为1,

12、所以执行123的值为16在进入第三次循环的值为2,所以执行23的值为21在进入第四次循环的值为3,所以执行3的值为2420.若有以下程序 () 2, 0; () ; (n, a, b); 则程序的输出结果是A) 1,2B) 0,2C) 1,3D) 2,3 参考答案:A【解析】第一次判断条件中,先用后加,为-2不为0条件为真,执行a的自加与操作的值变为-1的值变为1第二次判断后的值变为0的值变为2第三次判断条件为假,但是仍要执行自加操作,即值为1,跳出循环打印1和221.若有以下程序 () 6, 0, 0; ( ; ) b a; a ; (n, ); 则程序的输出结果是A) 1,14,3B) 0

13、,14,3C) 0,18,3D) 0,14,6 参考答案:B【解析】本循环的条件判断时只要a为0就退出循环体,初始值a的值为6,满足条件执行完循环体的值为6 即(),所以a的值为5的值为1第二次循环后b的值为11的值为3的值为2第三次也是最后循环后的值为0的值14的值为322.以下选项中非法的C语言字符常量是A) 007B) bC) D) 参考答案:C【解析】C选项中是字符串常量,应该用双引号表示即所以选择C选项23.若有以下程序 f( x) x*a; () a, 0; ( 0; a4; 1 ) b = f(a); (b); 则程序的输出结果是A) B) C) D) 参考答案:C【解析】该题目

14、首先初始化变量a和b,通过循环语句使a取值为0、1、2、3,f函数的功能是将a*a的值返回给b,即b为a、b、e、j。最后通过字符输出函数()将b输出。因此C选项正确。24.若有以下程序 ( *a) 2; ; *a = *a * 2; (, *a); () 3, *; (p); (n, k, *p); 则程序的输出结果是A) 4,3,3B) 4,3,4C) 6,3,6D) 6,6,6 参考答案:A【解析】首先在主函数中给整型变量k赋值为3,将变量k的地址赋给指针变量p;调用函数,将实参p的值传给形参a,在函数中,指针变量a又获得变量b的地址,通过运算后,输出a的值为4;返回主函数,输出k的值和

15、p的值为3和3。因此A选项正确。25.若有以下程序 7; f( *s) *; *; (, k, *t, *s); () 3,*, *r = ; f(r); (n, i, *p, *r); 则程序的输出结果是A) 3,3,3,7,7,7B) 3,7,7,7,7,7C) 7,7,7,3,3,3D) 7,7,7,3,7,7 参考答案:D【解析】在主函数中分别给整型变量i,指针型变量p和指向指针的指针变量r赋初值;调用f函数,并将实参变量r的值传递给形参变量s,在f函数中,通过(, k, *t, *s);语句输出7,7,7;返回主函数,通过(n, i, *p, *r);输出3,7,7因此D选项正确26

16、.若有以下程序 *f( * *t) *k; (*s *t) k = s; ; ; s; () 3, 5, *, *, *r; (); (n, i, j, *p, *q, *r); 则程序的输出结果是A) 3,5,5,3,5B) 3,5,3,5,5C) 5,3,5,3,5D) 5,3,3,5,5 参考答案:B【解析】在主函数中分别给整型变量i、j和指针型变量p、q赋初值,并声明指针变量r;调用f函数,并将实参变量p和q的值传递给形参变量s和t,并且f函数是指针型函数,即函数的返回值将是一个地址。在f函数中,如果条件成立,则将指针变量s和t互换,并且将指针s的地址返回主函数。最后输出i, j, *

17、p, *q, *r的值,即3,5,3,5,5。因此B选项正确。27.若有以下程序 N 4 ( aN, b, ) ; (0; iN; ) bi = ai0; (1; j aij) : (bi aij) bi = aij; ( ) xNN=1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16, yN; (x, y, 1); ( 0; iN; ) (, yi); (x, y, 0); (0 aij) : (bi aij)作为条件表达式的值,否则以(bi aij)作为条件表达式的值函数功能是给一维数组赋值(x, y, 1);该函数调用后,即当为真时,使一维数组获

18、得二维数组第1列的数值(x, y, 0);该函数调用后,即当为假时,使一维数组获得二维数组第4列的数值;因此A选项正确28.若有以下程序 ( a , n) ; (1; in; 2) (2; j aj) i; aijj; () c10=10,9,8,7,6,5,4,3,2,1; (c, 10); (010; ) (, ci); (n); 则程序的输出结果是A) 1,10,3,8,5,6,7,4,9,2,B) 10,9,8,7,6,5,4,3,2,1,C) 2,9,4,7,6,5,8,3,10,1,D) 10,1,8,3,6,5,4,7,2,9, 参考答案:D【解析】该题首先对一维数组进行初始化,

19、c0到c9依次赋值为10到1;(c, 10);语句调用函数,函数的功能是将一维数组偶数位元素的数值由小到大排序;最后将排好序的新的一维数组进行输出。因此D选项正确。29.若有以下程序 () 0; a= !; (0; ai; ) (ai ) ai; aj=0; (n); 则程序的输出结果是A) !B) C) !D) ! 参考答案:C【解析】主函数中首先定义字符数组a= !;执行循环语句,语句 (ai ) ai; 其功能是将字符数组中的空格去掉。因此C选项正确。30.若有以下程序 *; b = !; () i, 0; *p; ( 0; bi 0; ) (*a bi) ; (; *0; ) (*p

20、bj) ; ; (*0) ; (, i);则程序的输出结果是A) !B) !C) !D) ! 参考答案:D【解析】该程序首先定义*a和b ,并进行初始化。主函数中通过外层循环语句,遍历字符数组b ,并且将符合条件语句的字符赋给数组p;内层循环语句,遍历字符数组a 。再将符合条件语句的结果输出。因此D选项正确。31.若有以下程序 () a20, b = .; i; (0; i7; ) (, i); (a); (n, ); 执行时若输入: (其中表示回车符) . 则输出结果是A) .B) C) .D) . 参考答案:A【解析】程序首先初始化字符数组b,执行循环语句,循环变量i的取值范围从0到6在循

21、环语句中通过函数将从键盘上输入的数据输入到b 中,即b的值为 .退出循环语句,执行语句(a); ()函数的调用形式为(),其中是存放输入字符串的起始地址,可以是字符数组名字符数组元素的地址或字符指针变量函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止,即a的值为 .因此A选项正确32.若有以下程序 () w20, a510=, , , , ; p62=0,1,1,5,0,0,0,2,1,4,4,4, i; (0; i6; ) wi pi0 pi1 ; (w); 则程序的输出结果是A) B) C) D) 参考答案:D【解析】程序首先初始化字符数组a510和二维数组p62。执行循

22、环语句,循环变量i从0取值到5,得到字符数组w 的值,并通过字符串输出函数 进行输出操作。w001、w115 、w200 、w302 、w414 、w544;因此最后字符数组w的结果为。因此D选项正确。33.若有以下程序 f( x) (x = 10) (, 10); f(10); (, x); () z = 123456; f(z); 则程序的输出结果是A) 6-5-4-3-2-1-B) 6-5-4-3-2-1C) 1-2-3-4-5-6D) 1-2-3-4-5-6- 参考答案:B【解析】本题重点考察函数的递归调用,程序首先初始化整型变量z为123456,调用函数f。f函数中首先通过条件语句判

23、断x是否大于等于10,如果条件成立,求x除以10的余数并输出,同时将变量x进行10运算,同时调用函数f。如果条件不成立,直接输出变量x。因此第1次调用函数,变量x为123456,条件成立,输出余数6;第2次调用函数,变量x为12345,条件成立,输出余数5;第3次调用函数,变量x为1234,条件成立,输出余数4;第4次调用函数,变量x为123,条件成立,输出余数3;第5次调用函数,变量x为12,条件成立,输出余数2;第6次调用函数,变量x为12345,条件不成立,输出1。因此B选项正确。34.若有以下程序 2; f( m) n; 0; ; ; ; () k; (0; k4; ) (, f(k)

24、; 则程序的输出结果是A) 4,5,6,7,B) 4,7,10,13,C) 4,6,8,10,D) 3,5,7,9, 参考答案:C【解析】主函数中变量k作为语句的循环变量,取值0、1、2、3,同时也作为实参通过调用函数f传递给形参变量m。由于变量a是全局变量,变量n是静态变量,因此0时,f函数中,语句 ;即1+0+3=4;1时,f函数中,语句 ;即2+1+3=6;2时,f函数中,语句 ;即3+2+3=8;3时,f函数中,语句 ;即4+3+3=10。因此C选项正确。35.若有以下程序 S(x) x*x T(x) S(x)*S(x) () 5, 2; (n, S()(); 则程序的输出结果是A)

25、17,289B) 49,2401C) 17,37D) 49,289 参考答案:C【解析】本题考查宏定义,宏定义只是做个简单的替换,执行S()*17()()*S()*37,选项C正确。36.若有以下程序 *, ; ; ;() , m, 290, b; ( *)(10); (, ); b = a; = f; = 350; (, ); ( , , , ); ( n, , , );则程序的输出结果是A) ,290,350B) ,290,350C) ,350,350D) ,290,350 参考答案:D【解析】本题中考查结构体中变量的引用,a结构体中被修改为,所以本题答案为D。37.若有以下程序 *, ;

26、 ; ; f( *p) ( *)(10); (p, ); () , m, 290, b; ( *)(10); ( , ); b = a; f(); = f; = 350; (, , , ); (n, , , );则程序的输出结果是A) ,290,350B) ,290,350C) ,350,350D) ,290,350 参考答案:B【解析】本题考查结构体变量中的引用,其中a的为,b执行函数f()后b的并没有改变,还是,所以答案为B选项。38.若有定义 * T; T a10;则a的定义与下面哪个语句等价A) (*a)10;B) *a10;C) *a;D) a10; 参考答案:B【解析】本题考查的使用方法,对已存在的类型使用一个新的名字,其中本题中* 用T来代替,所以定义T a10;就相当于是 *a10;选项B正确。39.若有以下程序 () c; 105; (n, c); 则程序的输出结果是A) 5B) 15

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1