2021年全国计算机二级考试《C语言》冲刺模拟题(三)答案
1.D。【解析】本题考查对软件生命周期的理解,软件生命周期整体上可分为定义阶段、开发阶段和维护阶段。其中定义阶段包括可行性研究与计划制订和需求分析;开发阶段包括概要设计、详细设计、开发和测试;维护阶段是一个单独阶段,不包含在开发阶段内,它是所花费用最多的一个阶段。
2.C。【解析】视图设计的设计次序分3种:自顶向下、自底向上和由内向外。它们为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握。
3.C。【解析】根据二叉树的性质及定义,一棵深度为k且有2k-1个结点的二叉树为满二叉树。满二叉树的叶子结点为最后一层的结点数,又根据满二叉树的性质,在满二叉树的第i层上至多有2i-1个结点,因此深度为5的满二叉树的叶子结点数为25-1=16个。
4.A。【解析】二分法查找只用于顺序存储的有序线性表,而顺序查找用于顺序存储的非有序线性表和线性链表。
5.C。【解析】数组下标从0开始,当数组元素的下标超出了定义的范围时,系统不会出“下标越界”的信息,运行会出错,因此在编程时务必检查下标是否越界。
6.B。【解析】在用静态static与外部extern定义变量时,系统立刻给其分配内存,而定义自动类auto与强制放入寄存器register类型变量时,只有当使用时才分配内存。
7.D。【解析】scanf是键盘输入语句,%d是打印十进制文件,&x就是把你从键盘输入的值赋给x后面依此类推,因此正确答案为D。
8.C。【解析】本题考查三目运算符a9.C。【解析】线性表可以是空表,在线性表中,第一个结点没有前驱结点前件,最后一个结点没有后继结点,其他结点有且只有一个前驱点后继点。
10.A。【解析】用E—R图可以描述实体及其相互之间的联系,还可以描述多个实体集之间的联系和一个实体集内部实体之间的.联系。用E—R图表示的概念数据模型不仅能转换为关系数据模型,还可以转换为其他数据模型,如网状模型和层次模型等。所以A的说法正确。
11.A。【解析】*P=a;P指向首地址,*P+2往后移动两个元素,指向3,所以正确答案为A。
12.A。【解析】题中X<=Y<=Z的意思为X<=Y并且Y<=Z,在C语言中,要表示“且”的关系,应用“与”逻辑运算符,即“&&”,故选择A选项。
13.D。【解析】程序中ptr指针指向数组arr的首地址,*ptr=arr[0]=6,*ptr2=2.故选D。
14.C。【解析】C项开始a=t,a的值就没了,a的值就被t的值代替,最后b=a,b中的值拿到的是t中的值。
15.C。【解析】b++是先用表达式的值然后自增1,因此表达式值为ˊ2ˊ,b为ˊ3ˊ;b-a=ˊ3 ˊ-ˊ1ˊ=2,因此最后输出的结果为2,2,前一个为字符2,后一个为数字2。
16.C。【解析】本题中int*ptr的含义是指向函数的指针变量,其为指向函数的指针变量,该函数返回一个int型数据,故选择C选项。
17.A。【解析】当值相同时按位异或,则为0,按位或与按位与时仍不变,负数也为非0。
18.C。【解析】本题用了函数调用,fun中if语句成立则进行i,j的交换,用到主函数中则为把下标0、3,1、2互换,因此,当执行完后x的数组为8,1,6,2,故选择C选项。
19.B。【解析】B选项中不应该加“,”号。
20.D。【解析】scanf函数读取的是char型数据,所以回车时输入的换行符也是有效字符。于是c1,c2,c3,c4的内容分别是1,2,3,ˊn ˊ。
21.D。【解析】本题考查continue的用法,continue语句的作用是结束本次循环,直接进行下次循环。所以在程序中,只有当a=10时,才退出循环,故选择D选项。
22.C。【解析】sum+=i等价于SUn+i,在本题中sum没有赋初值,而题中只输出slim的值,因此整个结果为不确定值。
23.D。【解析】主要考查运算符的优先级。sizeof的优先级最高,其次是%<<、>,优先级最低的是“=”。
24.A。【解析】C语言中用“&&”作两个表达式的连接。
25.C。【解析】本题考查逗号表达式。程序输出时输出一个%d,所以输出第一个a的值与后续无关。
26.B。【解析】本题考查for循环的使用。对于第1个for循环,任何一个i,内层j的循环都要使j=0到3,j=4时不符合,所以退出J循环;然后i减1。j仍然要从0~3,j=4时退出j循环直到i变成0,退出i循环。第一条or语句执行6次,第二条for语句执行4次,所以内循环体执行6*4=24次。
27.C。【解析】本题考查while,while循环表达式k-1是个赋值表达式而不是逻辑表达式,k的初值为l2不符合循环条件,所以循环体语句一次也不执行。
28.B。【解析】本题考查3个知识点:将一个字符赋给一个字符变量时,是将该字符对应的ASCⅡ码存储到内存单元中;常见ASCⅡ码的值如A和a;只要逻辑与运算符&&的两个运算对象都为真时,返回值就是1。
29.A。【解析】本题考查函数值的类型,在函数定义时,由于函数没有说明其类型,系统默认一律自动按整型int处理。
30.D。【解析】本题主要考查do=while循环,因为变量t的初始值等于l,经过第一次do=while循环后,执行t-t-1这条语句一次,所以变量t的值为-1,判断关系表达式t!=n是否成立,如果关系表达式成立,则执行第二次循环,如果关系表达式不成立,退出循环。由此可见,只要输入变量n的值为负奇数,则一定会使t!-n成立,故退出do-while循环。
31.D。【解析】double*P,a定义了一个指向双精度型的指针变量P和双精度型变量a,p=&a表示将变量a的地址赋给指针变量P;scanf”%If”,p表示用键盘输入的数赋给指针变量P所指向的地址单元中,scanf函数要求在输入double型数据时,格式控制符必须用%lf。否则,数据不能正确输入。所以选项D正确。
32.B。【解析】本题考查for循环及if…else语句嵌套,第1次执行for循环,p[l][0]=p[l][0]=p[l][0][1]3;第2次执行for循环,p[l][1]=p[1][1]-1=4;第3次执行for循环,p[1][2]=1,最后输出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。
33.D。【解析】先取a变量的地址,送入子程序。然后输出的时候是++*X,其中的*X的意思是25,也就是a的值,然后加++,就是26。最后,输出26。
34.C。【解析】本题考查按位异或运算,异或就是相同为0,不同为1化为二进制00001101,017的二进制为000001111,两者异或结果为00000010。
35.D。【解析】本题考查feoftp函数,其功能是:测试所指的文件的位置指针是否已达到文件尾,如果已达到文件尾,则函数返回非0值;否则返回0,表示文件未结束。
36.C。【解析】语句“ifc==dy=0;else y=1;”是ifa37.B。【解析】运行程序,当k=7时switch7执行case:7,s++后s=1,break跳出。k--,k=7继续循环switch6,执行case 6;直接跳出循环,k- -变成5,继续循环switch5,执行case 5后面的语句s+=2,也相当于s=s+2,此时s为3,break跳出,k变为4,继续循环,执行case4为空,继续执行case 7;s++为4跳出循环,k--变为3,继续循环,执行case 3,空语句往下执行case 6,跳出,k-为2,继续循环,执行case 2;空语句往下执行case 3,空语句再执行case 7,跳出循环,k--为1不符合循环,退出,此时s=4。
38.D。【解析】本题考查if语句。第l个if语句,如果a39.A。【解析】本题考查循环跳出的知识点:①break语句可以出现在switch循环体内及语句体内,它的作用是跳出循环体,不能用于其他的语句;②continue语句的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,而接着判定循环条件是否成立,确定下一次循环是否继续执行,执行contiune语句不会使整个循环终止;③循环体内使用break语句会使循环提前终止;④从多层循环嵌套中退出时,可以使用goto语句或者break语句。
40.B。【解析】用''w''方式打开文件,意思是如果文件名相同则覆盖原来的文件,所以当再次输入时覆盖了第一次的内容,B选项正确。