2015年9月计算机二级c语言_2015年9月计算机二级《C语言》突破模拟卷

时间:2018-08-10 计算机 点击:

  一、选择题

  1没有如下定义:

  int(*ptr)():

  则以下叙述中正确的是(  )。

  A.ptr是指向一维组数的指针变量

  B.ptr是指向int型数据的指针变量

  C.ptr是指向函数的指针,该函数返回一个int型数据

  D.ptr是一个函数名,该函数的返回值是指int型数据的指针

  参考答案:C

  参考解析:本题中int(*ptr)()的含义是指向函数的指针变量,其为指向函数的指针变量,该函数返回一个int型数据,故选择C选项。

  2以下程序的输出结果是(  )。

2015年9月计算机二级《C语言》突破模拟卷

  A.O650B.1470C.5430 D.输出值不定

  参考答案:A

  参考解析:当所赋的值不够其列的宽度时,系统在其后自动补0,因此a[0][3]=0,a[1][2]=6,a[2][1]=5,a[3][0]=0,故选择A选项。

  3若有定义:int c[4][5],(*cp)[5];和语句cp=c;,则能正确引用c数组元素的是(  )。

  A.cp+1B.*(cp+3)C.*(cp+1)+3 D.*(*cp+2)

  参考答案:D

  参考解析:cp是行指针,只表示行。若要表示元素,则需要配合列,A:表示第二行;B:表示第四行的内容,但是设指出那一列;C:*(cp+1)+3只是地址不是元素值,需改为*(*(cp+1)+3)。

  4有以下程序:

2015年9月计算机二级《C语言》突破模拟卷

  输出的结果是(  )。

  A.ZhangB.B.ZhaoC.Wang D.18

  参考答案:B

  参考解析:从实参传递过去的是结构体系数组的第3个元素,所以输出的name为Zhao。

  5若有下列定义和语句:

2015年9月计算机二级《C语言》突破模拟卷

  则输出结果是(  )。

  A.9,17,11B.9,11,11C.11,11,11D.11,17,11

  参考答案:C

  参考解析:“%o”表示八进制无符号型输出整型数据(即不带前导0);“%x”表示以十六进制无符号型输出整型数据(即不带前导ox或0X);“%d”表示输出带符号的十进制整型数。

  6有下列程序:

2015年9月计算机二级《C语言》突破模拟卷

  程序执行后的输出结果是(  )。

  A.45B.20C.25 D.36

  参考答案:C

  参考解析:在for循环语句中自变量i从0开始,每次自加2,执行s+一*(t+i)语句,因为C语言规定数组名做表达式相当于数组的首地址,也就是第一个元素的地址。因此,*(t+i)代表数组的第i+1个元素,所以程序运行的结果是1+3+5+7+9=25,即变量S的值等于25。

  7若有正确定义语句double x=5.16894:

2015年9月计算机二级《C语言》突破模拟卷

  A.输出格式说明与输出顶不匹配,输出无定值B.5.170000C.5.168000D.5.169000

  参考答案:D

  参考解析: (x*1000+0.5)--x移动3位小数,加0.5,也就是小数第4位加5,若这位大于等于5,则进1到个位。5.16894*1000-)5168.94+0.5->5169.44接下来:(int)(x*1000+0.5)取整变51 69,5169/(double)1000)-)5.169。所以printf(″%f\n″,5.169)结果是5.16900。因此正确答案为D。

  8

2015年9月计算机二级《C语言》突破模拟卷
2015年9月计算机二级《C语言》突破模拟卷

  A.随机值B.B.0C.x的地址D.p的地址

  参考答案:B

  参考解析:*p的意思是取其指向地址的内容,p是指向x地址的指针,因此输出*p也就是输出X的内容,即0,故选择B选项。

  9有以下程序:

2015年9月计算机二级《C语言》突破模拟卷

  执行后的输出结果是(  )。

  A.1B.2C.4D.死循环

  参考答案:A

  参考解析:当k=5时,while条件中的值为4,k为4,循环不成立,k-=3可写成k=k-3,输出1;接着执行--k后k为0,当k=0时,while循环不成立,退出。

  10以下四个程序中不能对两个整型值进行交换的是(  )。

  A.

2015年9月计算机二级《C语言》突破模拟卷

  B.

2015年9月计算机二级《C语言》突破模拟卷
2015年9月计算机二级《C语言》突破模拟卷

  C.

2015年9月计算机二级《C语言》突破模拟卷

  D

2015年9月计算机二级《C语言》突破模拟卷

  参考答案:C

  参考解析:

  main()

2015年9月计算机二级《C语言》突破模拟卷

  11有以下程序段:

2015年9月计算机二级《C语言》突破模拟卷

  以上程序段的输出结果是(  )。

  A.9B.1C.11D.10

  参考答案: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。

  12若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是(  )。

  A.-3B.9C.-12D.6

  参考答案:C

  参考解析: 在表达式中,其+=,-=的优先级相同,按从右到左的结合方向运算,而*的优先级最高,表达式写成a=a+(a-(a*a)),代入3可得-12。

  13下列4个关于C语言的结论中错误的是(  )。

  A.可以用do-while语句实现的循环一定可以用while语句实现

  B.可以用for语句实现的循环一定可以用while语句实现

  C.可以用while语句实现的循环一定可以用for语句实现

  D.do-while语句与while语句的区别仅是关键字“while”出现的位置不同

  参考答案:D

  参考解析:本题考查对各个循环语句的理解。①do-while语句、for语句、while语句所实现的循环可以相互替代;②do-while语句至少执行一次,而while是符合条件执行,不符合不执行。

  14已定义了以下函数:

2015年9月计算机二级《C语言》突破模拟卷

  该函数的类型是(  )。

  A.与参数x的类型相同B.void类型C.int类型D.无法确定

  参考答案:C

  参考解析:函数返回值类型由函数头部的返回值类型决定,特别地,如果函数头部没有显示的说明返回值类型,则在C中一般是默认当作返回int型,本题中fff(float x),则返回值类型为int型。因此正确答案为C。

  15在C语言中,函数返回值的类型最终取决于(  )。

  A.函数定义时在函数首部所说明的函数类型

  B.return语句中表达式值的类型

  C.调用函数时主调函数所传递的实参类型

  D.函数定义时形参的类型

  参考答案:A

  参考解析:在C语言中,函数返回的类型最终取决于函数定义时在函数首部所说明的函数类型,与调用函数时主调函数所传递的实参类型和函数定义时形参的类型无关,而return语句表达式的值将强制转换为函数定义时在函数首部所说明的函数类型返回。

  16若有以下的说明和语句,则在执行for语句后,*(*(pt+1)+2)表示的数组元素是(  )。

2015年9月计算机二级《C语言》突破模拟卷

  A.

2015年9月计算机二级《C语言》突破模拟卷

  B.

2015年9月计算机二级《C语言》突破模拟卷

  C.

2015年9月计算机二级《C语言》突破模拟卷

  D.

2015年9月计算机二级《C语言》突破模拟卷

  参考答案:C

  参考解析:从for循环可知,pt是指向行的首地址的指针变量,因此由指针的表示方法可知:*(*(pt+1)+2)=pt[1][2]=t[1][2]。

  17下列程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。

2015年9月计算机二级《C语言》突破模拟卷

  程序运行后的输出结果是(  )(转载于 :wwW.BjylD.com 月亮岛教育网 : 2015年9月计算机二级c语言_2015年9月计算机二级《C语言》突破模拟卷)。

  A.1,2,3,4,5,6,7,8,9,l0,B.10,9,8,7,6,5,4,3,2,1,C.1,8,7,6,5,4,3,2,9,10,D.1,2,10,9,8,7,6,5,4,3,

  参考答案:C

  参考解析:本程序中的函数sort(int a[],int n)实现的功能是将数组a中的前n个数进行从大到小排序。sort(&a[1],7)是将数组中从a[1]~a[7]这7个数进行从大到小排序,其他数不变。

  18设有程序段:

  int k=12:

  while(k=1)k=k-1:

  则下列描述中正确的是(  )。

  A.while循环执行10次

  B.循环是无限循环

  C.循环体语句一次也不执行

  D.循环体语句执行一次

  参考答案:C

  参考解析:本题考查while,while循环表达式k-1是个赋值表达式而不是逻辑表达式,k的初值为12不符合循环条件,所以循环体语句一次也不执行。

  19有以下程序:

2015年9月计算机二级《C语言》突破模拟卷

  程序的输出结果是(  )(转 载于:wWw.bjylD.com 月亮岛教育网 : 2015年9月计算机二级c语言_2015年9月计算机二级《C语言》突破模拟卷)。

  A.1,5,9,B.1,4,7,C.3,5,7,D.3,6,9,

  参考答案:C

  参考解析:即输出x[0][2]x[l][1]x[2][0]分别为3 5 7。

  20下列工具中为需求分析常用工具的是(  )。

  A.PADB.BFDC.N-SD.DFD

  参考答案:D

  参考解析:需求分析常用的工具有4种:数据流图(DFD)、数据字典(DD)、判断树和判定表。PAD(问题分析图)、PFD(程序流程图)、N—S(盒式圈)都是详细设计的常用工具,不是需求分析的工具。

  21有以下程序:

2015年9月计算机二级《C语言》突破模拟卷
2015年9月计算机二级《C语言》突破模拟卷

  程序的输出结果是(  )。

  A.

2015年9月计算机二级《C语言》突破模拟卷

  B.

2015年9月计算机二级《C语言》突破模拟卷

  C.

2015年9月计算机二级《C语言》突破模拟卷

  D.

2015年9月计算机二级《C语言》突破模拟卷

  参考答案:A

  参考解析:

  #include

  int main()

2015年9月计算机二级《C语言》突破模拟卷

  所以输出为*#*#*#$和一个换行符*/,因此正确答案为A。

  22有如下程序:

2015年9月计算机二级《C语言》突破模拟卷

  该程序的执行结果是(  )。

  A.321B.23C.不输出任何内容D.陷入死循环

  参考答案:B

  参考解析:本题考查do-while语句,当x=23时,执行do后的语句,x--的表达式值为x=x=1,此时x的值为22,而!x为0,因此while循环不成立,退出,故选择B选项。

  23有以下程序:

2015年9月计算机二级《C语言》突破模拟卷(2)

  程序运行后的输出结果是(  )。

  A.运行后报错B.6 6C.611 D.510

  参考答案:A

  参考解析:本题中首先定义了一个一维数组。并初始化,由于定义该数组的时候省了长度,因此该数组的长度为初始化时候赋初值的个数即为12。数组名a代表数组的首地址,所以*p=a+5语句使得P指向数组的第6个元素,而在程序中定义了一个指针q并让它指向空,实际上程序并没有在内存中为指针q开辟存储空间,这样给q赋值不允许的,故该程序运行后报错。

  24下列程序的运行结果是(  )。

2015年9月计算机二级《C语言》突破模拟卷(2)

  A.gaeB.angC.program D.有语法错

  参考答案:A

  参考解析:本题考查指针用法,if语句的功能是判断两个数组中的字符是否相同,如果相同则输出。

  25C语言中的简单数据类型有(  )。

  A.整型、实型、逻辑型

  B.整型、实型、字符型

  C.整型、字符型、逻辑型

  D.整型、实型、逻辑型、字符型

  参考答案:B

  参考解析:整(数)型(长、短)、实(数)型(长、短)、字符型这3种是最常用,也是最简单的数据类型。

  26下列叙述中正确的是(  )。

  A.只能在循环体内和switch语句体内使用break语句

  B.cotinue语句的作用是结束整个循环的执行

  C.在循环体内使用break语句或continue语句的作用相同

  D.从多层循环嵌套中退出时,只能使用goto语句

  参考答案:A

  参考解析:本题考查循环跳出的知识点:①break语句可以出现在switch循环体内及语句体内,它的作用是跳出循环体,不能用于其他的语句;②continue语句的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,而接着判定循环条件是否成立,确定下一次循环是否继续执行,执行contiune语句不会使整个循环终止;③循环体内使用break语句会使循环提前终止;④从多层循环嵌套中退出时,可以使用goto语句或者break语句。

  27有以下程序:

2015年9月计算机二级《C语言》突破模拟卷(2)
2015年9月计算机二级《C语言》突破模拟卷(2)

  当程序运行时输入a<回车>后,下列叙述中正确的是(  )。

  A.变量c1被赋予字符a,c2被赋予回车符

  B.程序将等待用户输入第2个字符

  C.变量c1被赋予字符a,c2中仍是原有字符2

  D.变量c1被赋予字符a,c2无确定值

  参考答案:A

  参考解析:本题考查getchar()函数,从终端读入一个字符作为函数值。在输入时,空格、回车符都将作为字符读入,而且只有在用户敲入回车键时,读入才开始执行。所以当输入a<回车>后,变量c1被赋予字符a,而变量c2被赋予回车符。

  28以三级模式为框架形成的3种数据库中,真实存在于计算机外存的数据库是(  )。

  A.概念数据库B.用户数据库C.物理数据库D.逻辑数据库

  参考答案:B

  参考解析:以内模式为框架所组成的数据库叫物理数据库;以概念模式为框架所组成的数据库-1概念数据库;以外模式为框架所组成的数据库叫用户数据库,它是真实存在于计算机外存中的数据库。

  29设int x=7,则~x的值是(  )。

  A.-8B.7C.-1D.1

  参考答案:A

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

  30下面的函数调用语句中fune函数的实参个数是(  )。

  func((f2vl,v2),(v3,v4,v5),(v6,max(v7,v8)))

  A.3B.4C.5D.8

  参考答案:A

  参考解析:实参是在调用时传递该函数的参数,故选A。

  31有以下程序片段:

2015年9月计算机二级《C语言》突破模拟卷(2)

  其能正确表示的数学函数关系是(  )。

  A.

2015年9月计算机二级《C语言》突破模拟卷(2)

  B.

2015年9月计算机二级《C语言》突破模拟卷(2)

  C.

2015年9月计算机二级《C语言》突破模拟卷(2)

  D.

2015年9月计算机二级《C语言》突破模拟卷(2)

  参考答案: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。

  32下述程序的输出结果是(  )。

2015年9月计算机二级《C语言》突破模拟卷(2)

  A.6357B.6135C.37D.691357

  参考答案:C

  参考解析:本题先将指针p指向二维数组ch[2][5],相当于p[0]=″1234″,p[1]=″5678″;通过双重for循环,将P中的字符隔一个输出一个,通过“s=p[i][j]- ˊ0ˊ;”语句将所要输出的字符转换成相应的十进制数。

  33以下程序的输出结果是(  )。

2015年9月计算机二级《C语言》突破模拟卷(2)

  A.1,2,3,4,5B.2,3,4,5,6C.3,4,5,6,7 D.2,3,4,5,1

  参考答案:B

  参考解析:函数调用时,prt函数的作用是为使m数组中的数自增1,因此数组下标从0开始,每个元素都自加1。

  34有以下程序:

2015年9月计算机二级《C语言》突破模拟卷(2)

  程序的输出结果是(  )。

  A.62B.63C.33D.32

  参考答案:D

  参考解析:本题考查while循环。当i<20时,进入while循环体,循环体内的for循环实现的功能是i%l0==0,也就是说当i值为0或者10的倍数的时候,跳出循环,执行i+=11;a+=i;,若i值不是l0的倍数,则一直执行for循环i--。①判断i=0时,执行i+=11;a+=i;,i=11,a=11;②判断i=10时,跳出for循环,执行i+=11;a+=i;,i=21,a=32;③判断i=21>20,不符合题意,结束循环。

  35已知二叉树后序遍历序列是dabec,中序遍历序列是debac,那么它的前序遍历序列是(  )。

  A.AcbedB.decabC.deabc D.cedba

  参考答案:D

  参考解析:二叉树的遍历有3种:前序、中序和后序。①前序遍历访问根结点,然后按左右顺序遍历子结点;②中序首先遍历左子树,然后访问根结点,最后遍历右子树;③后序遍历首先遍历左子树,然后遍历右子树,最后访问根结点。本题根据后序和中序遍历的结果可以得出二叉树的结构,然后再对其进行前序遍历,正确答案选项为D。

  36现有以下结构体说明和变量定义,如图所示,指针p、q、r分别指定一个链表中连续的3个结点。

2015年9月计算机二级《C语言》突破模拟卷(2)
2015年9月计算机二级《C语言》突破模拟卷(2)

  现要将q和r所指结点交换前后位置,同时要保持链表的结构,下列不能完成此操作的语句是(  )。

  A.q->next=r->next;p->next=r;r-->next=q;

  B.Q->next=r;q->next=r->next;r-->next=q;

  C.Q->next=r->next;r->next=q;p-->next=r;

  D.qnext=q;p->next=r;q->next=r->next;

  参考答案:D

  参考解析:由题目中线性链表的定义可知,要将q和r所指的结点交换前后位置,只要使q指向r的后一个结点,P指向r结点,r指向q结点即可。而在选项D中,r->next=q,这时r指向的节点为q;p->next=r,这时P指向的节点为r;q->next=r->next,因为r结点已经指向q,所以执行这个语句后q又指向q,所以选项D不正确。

  37下列程序的输出结果是(  )。

2015年9月计算机二级《C语言》突破模拟卷(2)
2015年9月计算机二级《C语言》突破模拟卷(2)

  A.3,6,18B.3,6,2C.6,3,18 D.6,3,2

  参考答案:B

  参考解析:本题考查if…else语句。如果if条件成立,则执行if下面的语句,不成立则执行else,判断条件,发现a

  38有以下程序:

2015年9月计算机二级《C语言》突破模拟卷(2)

  程序运行后的输出结果是(  )。

  A.AbB.B.aaC.Aa D.Bb

  参考答案:A

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

  39假定所有变量均已正确说明,下列程序段运行后x的值是(  )。

2015年9月计算机二级《C语言》突破模拟卷(2)

  A.11B.4C.12D.3

  参考答案:B

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

  40面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是(  )。

  A.模拟现实世界中不同事物之间的联系

  B.强调模拟现实世界中的算法而不强调概念

  C.使用现实世界的概念抽象地思考问题从而自然地解决问题

  D.不强调模拟现实世界中的算法而强调概念

  参考答案:C

  参考解析:面向对象的设计方法的基本原理是使用现实世界的概念抽象地思考问题从而自然地解决问题。它虽强调模拟现实世界中的概念但不强调算法,但是它鼓励开发者在软件开发的过程中从应用领域的概念角度去思考。

  二、程序填空题

  41函数fun()的功能是:逆置数组元素中的值。形参n给出数组中数据的个数。

  例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。

  注意:部分源程序给出如下。

  请勿改动main()函数和其他函数中的任何内容,仅在fun()函数的横线上填入所编写的若干表达式或语句。

  试题程序:

2015年9月计算机二级《C语言》突破模拟卷(2)
2015年9月计算机二级《C语言》突破模拟卷(2)

  参考解析:

  【1】n/2【2】i【3】a[n-i-1]

  【解析】fun()函数实现的功能是实现数组的逆置。具体步骤通过参数传递,得到数组指针(即数组名)和数组记录大小的变量n,通过这两个参数配置for循环,遍历数组的中间的元素位置,每次循环都将i位置和对应位置结点(i距离0位置等于其距离尾位置的结点)的元素交换,由此实现数组的逆置。

  三、程序改错题

  42下列给定程序中,函数proc()的功能是求出数组中最小数和次最小数,并把最小数和arr[O]中的数对调,次最小数和arr[1]中的数对调。

  请修改程序中的错误,使它能得到正确结果。

  注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

  试题程序:

2015年9月计算机二级《C语言》突破模拟卷(2)
2015年9月计算机二级《C语言》突破模拟卷(2)

  参考解析:

2015年9月计算机二级《C语言》突破模拟卷(2)

  四、程序设计题

  43请编写函数proc(),它的功能是求Fibonacci数列中小于n的最大的一个数,结果由函数返回。

  Fibonacci数列F(n)的定义为

  F(0)=O,F(1)=1

  F(n)=F(n-1)+F(n-2)

  例如,n=500时,函数值为377。

  注意:部分源程序给出如下。

  请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填写所编写的若干语句。

  试题程序:

2015年9月计算机二级《C语言》突破模拟卷(2)
2015年9月计算机二级《C语言》突破模拟卷(2)

  参考解析:

2015年9月计算机二级《C语言》突破模拟卷(2)

  【解析】由题目中所给的公式可知,Fibonacci数列的第n项为第n-1项和第n-2项的和。要求Fibonacci数列中小于n的最大的一个数。首先根据公式求出Fibonacci数列的第n项的值,当第i项大于n,则返回第i-1项的值。

热门标签:
《2015年9月计算机二级c语言_2015年9月计算机二级《C语言》突破模拟卷.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:

文档为doc格式

文章下载

《2015年9月计算机二级c语言_2015年9月计算机二级《C语言》突破模拟卷.doc》

VIP请直接点击按钮下载本文的Word文档下载到电脑,请使用最新版的WORD和WPS软件打开,如发现文档不全可以联系客服申请处理。

文档下载
VIP免费下载文档