全国计算机等级考试二级C语言真题库之选择题(共18页).doc
《全国计算机等级考试二级C语言真题库之选择题(共18页).doc》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言真题库之选择题(共18页).doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上全国计算机等级考试等级考试真题库之选择题(11)1.下列叙述中正确的是A) 一个算法的空间复杂度大,则其时间复杂度也必定大B) 一个算法的空间复杂度大,则其时间复杂度必定小C) 一个算法的时间复杂度大,则其空间复杂度必定小D) 算法的时间复杂度与空间复杂度没有直接关系 参考答案:D【解析】算法的空间复杂度是指算法在执行过程中所需要的内存空间,算法的时间复杂度,是指执行算法所需要的计算工作量,两者之间并没有直接关系,答案为D。2.下列叙述中正确的是A) 循环队列中的元素个数随队头指针与队尾指针的变化而动态变化B) 循环队列中的元素个数随队头指针的变化而动态变化C) 循环
2、队列中的元素个数随队尾指针的变化而动态变化D) 以上说法都不对 参考答案:A【解析】在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。因此,从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素。所以循环队列中的元素个数与队头指针和队尾指针的变化而变化,A正确。3.一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为A) 219B) 229C) 230D) 231 参考答案:B【解析】二叉树中,度为0的节点数等于度为2的节点数加1,即n2=n0-1,叶子节点即度为0,则n2=79
3、,总结点数为n0+n1+n2=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.软件生命周期可分为定义阶段、开发阶段和维护阶段,下面
4、不属于开发阶段任务的是A) 测试B) 设计C) 可行性研究D) 实现 参考答案:C【解析】开发阶段包括分析、设计和实施两类任务。其中分析、设计包括需求分析、总体设计和详细设计3个阶段,实施则包括编码和测试两个阶段,C不属于开发阶段。7.下面不能作为结构化方法软件需求分析工具的是A) 系统结构图B) 数据字典(DD)C) 数据流程图(DFD图)D) 判定表 参考答案:A【解析】结构化方法软件需求分析工具主要有数据流图、数据字典、判定树和判定表。8.在关系模型中,每一个二维表称为一个A) 关系B) 属性C) 元组D) 主码(键) 参考答案:A【解析】关系模型采用二维表来表示,即每个二维表称为一个关
5、系。9.若实体A和B是一对多的联系,实体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语句
6、可能会被转换成零条机器指令B) 一条C语句可能会被转换成多条机器指令C) 一条C语句对应转换成一条机器指令D) 某种类型和格式的C语句被转换成机器指令的条数是固定的 参考答案:C【解析】一个C语句经过编译后产生若干条机器指令声明部分不是语句,不产生机器指令,只是对有关数据的声明而且固定类型和格式的C语句被转换成机器指令的条数固定所以选择C选项12.关于while(条件表达式)循环体,以下叙述正确的是A) 循环体的执行次数总是比条件表达式的执行次数多一次B) 条件表达式的执行次数总是比循环体的执行次数多一次C) 条件表达式的执行次数与循环体的执行次数一样D) 条件表达式的执行次数与循环体的执行次
7、数无关 参考答案:B【解析】while循环是先判断条件,满足条件后执行循环体,执行完后接着判断条件,执行,直到最后一次判断条件后不成立,跳出循环,所以最后一次执行了条件表达式,但是没有执行循环体,所以选择B选项13.关于C语言的符号常量,以下叙述中正确的是A) 符号常量的符号名是标识符,但必须大写B) 符号常量是指在程序中通过宏定义用一个符号名来代表一个常量C) 符号常量在整个程序中其值都不能再被重新定义D) 符号常量的符号名必须是常量 参考答案:B【解析】在C语言中,可以用一个标识符来代表一个常量,称为符号常量这个标识符必须在程序中进行特别的指定,并符合标识符的命名规则用作符号常量的标识符通
8、常采用大写字母表示,在主函数中其值不能再被定义所以选择B选项14.若有以下程序 #include main() int b=10, a=-11; a %= b %= 4; printf(%d %dn, a, b); 则程序的输出结果是A) 1 2 B) -1 2C) -1 -2D) 1 -2 参考答案:B【解析】先计算b%=4,即b=b%4,结果为2,然后计算a%=2,结果为-1,最后a的值为-1,b的值为2,所以选择B选项15.若有以下程序 #include main() int a=0,b=0,c=0; c= (a -= +a), (a+=b, b+=4); printf(%d,%d,%d
9、n,a,b,c); 则程序的输出结果是A) 0,4,0B) 0,4,4C) 1,4,1D) 1,4,4 参考答案:A【解析】逗号运算符的结合性从左到右,因此逗号表达式将从左到右进行计算。且逗号运算符的优先级最低,所以先计算c=(a-=+a)这部分。其中,赋值运算符从右往左计算,先执行+a,a自增1后再赋值,所以a的值为1,执行a=a-1,即a=1-1,a的值为0,并将0赋给变量c第二部分(a+=b,b+=4),先执行a=a+b,a=0+0,即a的值为0,然后执行b+=4,b=0+4,即b的值为4所以打印结果为0,4,0,选择A选项16.若有以下程序 #include main() int a=
10、0,b=0,c=0,d; c= (a+=b, b+=a); /*第4行*/ d=c; /*第5行*/ ; /*第6行*/ ;printf(%d,%d,%dn,a,b,c); /*第7行*/ 编译时出现错误,你认为出错的是A) 第4行B) 第5行C) 第6行D) 第7行 参考答案:A【解析】第4行逗号表达式中间的第二个表达式为空,是不合法的,可以去掉写成a+=b,b+=a,也可以在里面补一个表达式,如a+=b,a,b+=a所以选择A选项17.若有以下程序 #include main() int a=1,b=2,c=3,d=4; if (a=2) | (b=1) c=2; if (c=3) & (
11、d=-1) a=5; printf(%d,%d,%d,%dn, a,b,c,d); 则程序的输出结果是A) 1,2,3,4B) 2,1,2,-1C) 5,1,2,-1D) 2,2,2,4 参考答案:D【解析】第一个if语句的判断条件中是逻辑或表达式,所以只要有一个运算对象为真结果就为真,且如果前面的已经为真,后面的表达式不再进行执行判断执行第一个if判断条件时a的值为2,整个表达式的值为真,b的值不变,c的值为2判断第二个if条件为逻辑与表达式,只有两个运算对象均非零,才为真,第一个表达式c=3,不成立,不再判断第二个运算对象,所以不执行d=-1操作和a=5操作所以结果为选项D18.若有以下程
12、序 #include main() int a=1,b=2,c=3,d=4, r=0; if (a!=1) ; else r=1; if (b=2) r+=2; else; if (c!=3) r+=3; else; if (d=4) r+=4; printf(%dn, r); 则程序的输出结果是A) 10B) 7C) 6D) 3 参考答案:B【解析】else总是和与之最近的上面的if配对,执行第一个if,判断条件不成立,执行else r=1;语句再执行第二个if语句中的判断条件,成立,左移执行r+=2,r的值为3,再执行第三个if的判断条件,不成立执行第7行else后面的空语句;再执行第四个
13、if的判断条件d=4成立,执行r+=4,r的值为7然后打印输出19.若有以下程序 #include main() int s=0, n; for (n=0; n4; n+) switch(n) default: s+=4; case 1: s+=1; case 2: s+=2; case 3: s+=3; printf(%dn, s); 则程序的输出结果是A) 6B) 18C) 10D) 24 参考答案:D【解析】第一次for循环,n的值为0,所以从default后面的语句开始执行,s+=4,s+=1,s+=2,s+=3,s的值为10在进入第二次for循环,n的值为1,所以执行s+=1,s+=
14、2,s+=3,s的值为16在进入第三次for循环,n的值为2,所以执行s+=2,s+=3,s的值为21在进入第四次for循环,n的值为3,所以执行s+=3,s的值为2420.若有以下程序 #include main() int a=-2, b=0; while(a+) +b ; printf(%d,%dn, a, b); 则程序的输出结果是A) 1,2B) 0,2C) 1,3D) 2,3 参考答案:A【解析】第一次while判断条件中a+,先用后加,为-2不为0条件为真,执行a的自加与+b操作,a的值变为-1,b的值变为1第二次while判断后,a的值变为0,b的值变为2第三次while判断条
15、件为假,但是仍要执行自加操作,即值为1,跳出循环打印1和221.若有以下程序 #include main() int a=6, b=0, c=0; for ( ;a; ) b += a; a -= +c; printf(%d,%d,%dn, a,b,c); 则程序的输出结果是A) 1,14,3B) 0,14,3C) 0,18,3D) 0,14,6 参考答案:B【解析】本循环的条件判断时只要a为0就退出循环体,初始值a的值为6,满足条件执行完循环体,b的值为6,a-=+ +c即a=a-(+c),所以a的值为5,c的值为1第二次循环后b的值为11,a的值为3,c的值为2第三次也是最后循环后,a的值
16、为0,b的值14,c的值为322.以下选项中非法的C语言字符常量是A) 007B) bC) aaD) xaa 参考答案:C【解析】C选项中是字符串常量,应该用双引号表示即aa所以选择C选项23.若有以下程序 #include char f(char x) return x*x+a; main() char a, b=0; for ( a=0; a4; a+=1 ) b = f(a); putchar(b); 则程序的输出结果是A) abcdB) ABEJC) abejD) ABCD 参考答案:C【解析】该题目首先初始化变量a和b,通过for循环语句使a取值为0、1、2、3,f函数的功能是将a*
17、a+a的值返回给b,即b为a、b、e、j。最后通过字符输出函数putchar()将b输出。因此C选项正确。24.若有以下程序 #include void sp(int *a) int b=2; a=&b; *a = *a * 2; printf(%d, *a); main() int k=3, *p=&k; sp(p); printf(%d,%dn, k, *p); 则程序的输出结果是A) 4,3,3B) 4,3,4C) 6,3,6D) 6,6,6 参考答案:A【解析】首先在主函数中给整型变量k赋值为3,将变量k的地址赋给指针变量p;调用sp函数,将实参p的值传给形参a,在sp函数中,指针变量
18、a又获得变量b的地址,通过运算后,输出a的值为4;返回主函数,输出k的值和p的值为3和3。因此A选项正确。25.若有以下程序 #include int k=7; void f(int *s) int *t=&k; *s=t; printf(%d,%d,%d, k, *t, *s); main() int i=3,*p=&i, *r = &p; f(r); printf(%d,%d,%dn, 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,指
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 二级 语言 题库 选择题 18
限制150内