试题

全国计算机二级考试《C语言》冲刺模拟题一答案

时间:2025-05-24 06:20:25 试题 我要投稿
  • 相关推荐

2015年全国计算机二级考试《C语言》冲刺模拟题(一)答案

  1.A。【解析】C语言是函数式的语言。它的基本组成单位是函数,在C语言中任何程序都由一个或者多个函数组成。

2015年全国计算机二级考试《C语言》冲刺模拟题(一)答案

  2.D。【解析】程序不光,是编写完就结束了,为了测试和维护程序,往往还需其他人阅读和跟踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一、效率第二”。

  3.D。【解析】类(class)描述的是具有相似属性与操作的一组对象,具体对象是类的实例。

  4.D。【解析】所谓二叉树的前序遍历是指先访问根结点,再访问左子树,最后访问右子树,可知选项D正确。本题中序为DYBEAFCZX,后序为YDEBFZXCA。

  5.A。【解析】线性表的存储通常要用两种存储结构:顺序存储结构和链式存储结构。

  6.D。【解析】算法分析是指对一个算法的运行时间和占用空间做定量的分析,计算相应的数量级,并用时间复杂度和空间复杂度表示。分析算法的目的就是要降低算法的时间复杂度和空间复杂度,提高算法的执行效率。

  7.C。【解析】数据的存储结构有顺序存储结构和链式存储结构两种。不同存储结构的数据处理效率不同。链表采用链式存储结构,元素的物理顺序并不连续,对于插入和删除无须移动元素,很方便,当查找元素时就需要逐个元素查找,因此查找的时间相对更长。

  8.C。【解析】本题考查逻辑与(&&)和逻辑或(||)运算符的使用。x值在[1,10]之间,C语言中可以写成“(x>=1)&&(x<=10)”;x值在[100,110]之间,C语言表达式应写成“(x>=100)&&(x<=110)”;[1,10]和[100,110]满足任意条件就可以,所以是逻辑或的关系,因此只要将前两个表达式用逻辑或运算符连接起来即可,所以最后的表达式:(x>=1)&&(x<=10)|| (x>=l00)&&(x<=110)。

  9.B。【解析】C语言中用户标识符不能与C编译系统已经预定义的、具有特殊用途的保留标识符(即关键字)同名。选项A,define,void为关键字;选项C,for,case为关键字;选项D,D0为关键字。

  10.D。【解析】因为在逻辑表达式中,两边的赋值表达式都成立,即值为1,故选择D选项。

  11.C。【解析】选项A是先将a的值赋给变量b,再将变量b的值赋给变量C,不合题意;B选项中由于c的值不为0,在将c的值赋给变量a后,表达式a=c的值为1,不再对表达式b=c计算;对于C选项,表达式a=c的值为1,再求表达式b=C的值为1,然后进行逻辑与运算;D选项将b的值赋给c后再赋给a,故选择C选项。

  12.D。【解析】本题可以写成:a+a+(a-(a*a)),因为*的优先级最高,其次是-=的,+的优先级最低,所以先求a-=a*a=9,表达式变为a+a+-=9,即a=a-9=-6,再次变为a+(-6)=-12,故选择D选项。

  13.B。【解析】数组下标从0开始,A选项中所赋值的个数超过了数组的长度;C选项中定义a为字符型变量,而不是数组,赋值错误;D选项中,整型数组不能赋字符串。

  14.A。【解析】本题主要考查按位求反运算和C语言正负数的表示。“0”代表正数,“1”代表负数;x=7的二进制为00111,第一个0代表正数,~x为ll000,第一个1代表负数,值为8。

  15.B。【解析】在while(E)中,表达式E可以是C语言中任意合法的条件表达式,但不能为空,由它来控制循环体是否执行。在选项B 中表达式E>0||E<0是一个逻辑表达式。

  1 6.C。【解析】在m数组中赋值的是字符串,其长度为7,末尾有结束符ˊ\0ˊ,故字节数为8,而n数组中赋的是字符,其长度为7,故C选项正确。

  17.B。【解析】本题考查if…else语句。if条件为真则执行后面的表达武,如果if为假则执行else语句。

  18.D。【解析】{int k=-3;if(k<=0)printf(″****\n″)else wind(″&&&&\n″);)中printf(″****\n″)缺少分号,因此会报编译错误。

  19.C。【解析】当执行fun函数时,因为参数传递时是地址传递,因此形参值的改变会影响实参中的数,在执行fun函数时先输出1 2,接着把*x赋3,*y赋4,此时带回主函数中,输出的值为3 4。

  20.D。【解析】因为字符数组s[];中的数组名S表示的是一个地址常量。所以语句“s+=2;”不能将指针在当前位置的基础上再向后移动两位,因而程序编译时出错。21.B。【解析】水平制表符中,'\t'表示的是横向跳若干格;选项B中,ˊ\039 ˊ错误,ˊ\039ˊ是八进制形式表的字符,最大数为7,但其中出现ˊ9 ˊ,ˊ,ˊ是字符逗号;选项D中,ˊ\n ˊ表示的是换行。

  22.B。【解析】第一个for循环的作用是让P指向每行的首地址,第二个for循环的作用是把它指向的字符串输出,故选择B选项。

  23.D。【解析】当k=1时,循环成立,输出w[1]的数组即EFGH,接着执行k++后k为2;当k=2时,循环成立,输出w[2]的数组即IJKL,接着执行k++后,k为3;当k=3时,循环不成立,退出。

  24.C。【解析】因为a=2,b=-1,f(a)

  25.B。【解析】在定义*p=&r时,是表示r的地址赋给了P所指的存储单元,因此选项B正确。

  26.B。【解析】(x&1)&&(z<ˊ2 ˊ)=(0.5&1)&&(ˊaˊ<ˊzˊ)=1 &&1=1,故选择B选项。

  27.D。【解析】要想使程序输出25,则j-40=25,j=65,而j初值是50,所以填入for循环的语句,使引用的数组元素累加65-50=15即可。D选项中,i下标从0开始,i=2指向第3个数50+a[2]=50+10=60,继续循环60+a[3]=60+5=65,此时i 4跳出,循环结束。

  28.B。【解析】二维数组的元素可以看成是按矩阵形式存放的,数组第一维的下标是i,说明它前面还有i行,有i*m个元素,数组第二维的下标是j,说明它静面还有j列,有j

  个元素,所以共有i*m+j个元素。

  29.B。【解析】首先分两块,逗号前面的是第一块,先执行,逗号后面的是第二块,后执行;两个块中,括号里的先执行,a-=a-5;//执行前’a=0,执行后,a-=-5,a=5;c=a;//c=5;a=b;//a=b=0;b+3;//执行,但是不修改任何数字。所以,最后结果是:0,0,5。B选项符合结果。

  30.A。【解析】本题主要考查结构体数组的使用。x[i].num为结构体xl-i]中的hum成员,x[i].num[2]是结构体x[i]中name成员的第3个元素。程序执行循环过程时:第1次循环,i=1,输出x[i].num,x[1].name[2]的值;第2次循环,i=2,输出x[2].num,x[2].name[2]的值,即3N;第3次循环,i=3,输出x[3].num,x[3].name[2]的值,即4A;第4次循环,i=4,输出x[4].num,x[4].name[2]的值,即5U。


  31.A。【解析】p=a,相当于重新把a中的内容赋给a本身,所以a[2]=6。

  32.A。【解析】函数fun的作用是将指针a指向指针b的内容,然后将该内容加1。执行语句“fun(p1,p2);”后,pl和p2指向的地址并未改变,只是将p2指向的存储单元的值增加1。所以,答案是A。

  33.A。【解析】函数int fun(int n)的功能是求1+2+…+n的值并返回。所以执行程序时,给变量x输入10后,执行语句“x=fun(x);”,x的值将变为1到10中10个整数的累加和,即55。

  34.D。【解析】因为首先k-2,然后你进行一次循环后,k自增两次,变成4,所以这时候s又成l了。然后当k-4的时候,s=1,j=4,然后执行内层循环,s=1+4,然后j自增等于5,s=5+5,然后j再自增为6,跳出内层循环。k自增两次后等于6,不成立,跳出外层循环。然后输出s的值,即为10。因此正确选项为D。

  35.B。【解析】本题考查switch,case语句,当k-0时,循环体成立,执行switch后表达式的值为ˊ1 ˊ,执行caseˊ1ˊ,i的值为0,因为没有break语句,继续执行其后的语句,到最后一个语句时i的值为3,此时v[i]++,v[3]=1,接着执行k++后,k的值为1,当k=1时,循环成立。执行switch后的表达式的值为ˊ2ˊ,执行caseˊ2ˊ,i的值为1,因为没有break语句,继续执行其后的语句,到最后一个语句时,i的值为3,此时v[i]++,v[3]=2,接着执行k++后,k的值为2,依次下去,case ˊ4 ˊ也会执行,最后i的值一定为3,到v[3]=8时循环结束,而v[o]~v[2]的值一直没有变化,故选择B选项。

  36.C。【解析】x的值为十进制数102,而y的值为八进制数012,根据题意将y用十进制表示为10%md,in为指定输出数据的宽度,若位数小于m则左端补以空格,若位数大于in则按实际输出,所以答案是C。

  37.B。【解析】while语句执行如下:

  当z=3,x=0时,表达式z-->0&&++x<5为真,z的值变为2,x的值变为1,执行语句“y=y-1;”,y的值变为4;

  当z=2,x=l时,表达式z-->0 &&++x<5为真,z的值变为1,x的值变为2,执行语句“y=y-1;”y的值变为3;当z=1,x=2时,表达式z-->0&&++x<5为真,z的值变为0。x的值变为3,执行语句“y=y-1;”,y的值变为2;

  当z=0,x=3时,表达式z-->0为假,表达式(z-->0&&++x<5)为假,z的值为-1,不进行++x<5的判断,不执行语句y=y-1;;

  所以x的值为3,y的值为2,z的值为-1。答案为B。

  38.C。【解析】y的初始值为~1,当x不等于0时,给y赋值为1,也就是这时x>0和x>0都为1,然后如果x>0时y的值又赋值为1,注意后面的else语句是跟if(x>0)y=1相匹配,就是说除了x>0 y=1之外,其他的情况y都为0。

  39.B。【解析】通过观察可知图形共4行,主函数中通过一个for循环四次,输出4行。第一行输出3个空格和1个“*”,第2行输出2个空格和3个“*”,第3行输出3个空格和5个“*”,第四行输出7个“*”,主函数中通过第二个循环控制每行的输出空格数,第三个for循环控制输出的“*”的个数,总结规律:每行输出的“*”的个数,总比前一行的多2个,且第一行的个数为1,可以断定每行输出的“*”的个数组成了一个公差为2的等差数列,所以每行输出“*”的个数即该等差数列的通项,故该空格处应该填写2*i-1。

  40.A。【解析】位置指针当前值函数ftell()的基本调用格式为ftell(fp)。

  ftell函数的功能:得到fp所指向文件的当前读写位置,即位置指针的当前值,如果函数的返回值为-1L,表示出错。

【全国计算机二级考试《C语言》冲刺模拟题一答案】相关文章:

2015年全国计算机二级考试《C语言》冲刺模拟题(二)答案09-26

2015年全国计算机二级考试《C语言》冲刺模拟题(三)答案07-22

2015年全国计算机二级考试《C语言》冲刺模拟题(一)07-18

2015年全国计算机二级考试《C语言》冲刺模拟题(三)08-01

2015年全国计算机二级考试《C语言》冲刺模拟题(五)06-21

2015年全国计算机二级考试《C语言》冲刺模拟题(七)08-15

2015年全国计算机二级考试《C语言》冲刺模拟题(八)09-25

2015年全国计算机二级考试《C语言》冲刺模拟题(四)09-19

2015年全国计算机二级考试《C语言》冲刺模拟题(六)10-24