计算机等级 > 二级考试 > C++语言程序设计 > C++模拟试题 > 文章内容

全国计算机二级C++语言程序设计考试精选选择题(5)

2017-6-3编辑:daibenhua

全国计算机二级C++语言程序设计考试精选选择题

  1.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是(  )。

  A.12345ABCDE

  B.EDCABA54321

  C.ABCDE12345

  D.54321EDCBA

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

  A.循环队列有队头和队尾两个指针,因此循环队列是非线性结构

  B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况

  C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况

  D.循环队列中元素的个数是由队头指针和队尾指针共同决定

  3.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是(  )。

  A.O(n)

  B.O(n2)

  C.O(log2n)

  D.O(nlog2n)

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

  A.顺序存储结构的存储空间一定是连续的,链式存储结构的存储空间不一定是连续的

  B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

  C.顺序存储结构能存储有序表,链式存储结构不能存储有序表

  D.链式存储结构比顺序存储结构节省存储空间

  5.数据流图中带有箭头的线段表示的是(  )。

  A.控制流

  B.事件驱动

  C.模块调用

  D.数据流

  6.在软件开发中,需求分析阶段可以使用的工具是(  )。

  A.N—S图

  B.DFD图

  C.PAD图

  D.程序流程图

  7.在面向对象方法中,不属于“对象”基本特点的是(  )。

  A.一致性

  B.分类性

  C.多态性

  D.标识唯一性

  8.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是(  )。

  A.一对一

  B.一对多

  C.多对一

  D.多对多

  9.在数据管理技术发展的3个阶段中,数据共享最好的是(  )。

  A.人工管理阶段

  B.文件系统阶段

  C.数据库系统阶段

  D.3个阶段相同

  10.有3个关系R、S和T如下:

  

  由关系R和S通过运算得到关系T,则所使用的运算为(  )。

  A.笛卡儿积

  B.交

  C.并

  D.自然连接

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

  A.C程序的基本组成单位是语句

  B.C程序中的每一行只能写一条语句

  C.简单C语句必须以分号结束

  D.C语句必须在一行内写完

  12.计算机能直接执行的程序是(  )。

  A.源程序

  B.目标程序

  C.汇编程序

  D.可执行程序

  13.下列选项中不能作为C浯言合法常量的是(  )。

  A.’cd’

  B.0.1e+6

  C."\a"

  D.’\011’

  14.下列选项巾正确的定义语句是(  )。

  A.doublea;b;

  B.doublea=b=7;

  C.doublea=7,b=7;

  D.double,a,b;

  

  A.2*a*b/c/d

  B.a*b/c/d*2

  C.a/c/d*b*2

  D.2*a*b/c*d

  16.C源程序中不能表示的数制是(  )。

  A.二进制

  B.八进制

  C.十进制

  D.十六进制

  17.若有表达式“(w)?(--x):(++y)”,则其中与w等价的表达式是(  )。

  A.w==1

  B.w==0

  C.W!=1

  D.W!=0

  18.执行下列程序后,w的值为(  )。

  intw=’A’,x=14,y=15;

  w=((x‖y)&&(w<’a’));

  A.-l

  B.NULL

  C.1

  D.0

  

  20.有下列程序段:

  inta,b,c;

  a=10.b=50;c=30;

  if(a>b)a=b;b=C;c=a;

  printf("a=Û=Ü=%d\n",a,b,c);

  程序的输出结果是(  )。

  A.a=10b=50C=10

  B.a=10b=50c=30

  C.a=10b=30c=10

  D.a=50b=30c=50

  21.若有定义语句“intm[]={5,4,3,2,1),i=4;”则下列对m数组元素的引用中错误的是(  )。

  A.m[--i]

  B.m[2*2]

  C.m[m[o]]

  D.m[m[i]]

  22.下面的函数调用语句中func函数的实参个数是(  )。

  func(f2(vl,v2),(v3,v4,v5),(v6,max(v7,v8)));

  A.3

  B.4

  C.5

  D.8

  23.若有定义语句“doublex[5]={1.0,2.0,3.0,4.0,5.0},*p=x”,则错误引用X数组元素的是(  )。

  A.*p

  B.x[5]

  C.*(p+1)

  D.*x

  24.若有定义语句“charS[10]="1234567\0\0";”,则strlen(s)的值是(  )。

  A.7

  B.8

  C.9

  D.10

  25.下列叙述中错误的是(  )。

  A.用户定义的函数中可以没有return语句

  B.用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值

  C.用户定义的函数中若没有return语句,则应当定义函数为void类型

  D.函数的return语句中可以没有表达式

  26.下列关于宏的叙述中正确的是(  )。

  A.宏名必须用大写字母表示

  B.宏定义必须位于源程序中所有语句之前

  C.宏替换没有数据类型限制

  D.宏调用比函数调用耗费时间

  27.有下列程序:

  #include

  voidmain(  )

  {inti,j;

  for(i=3;i>=1;i--)

  {for(j=1;j<=2;j++)printf(”%d”,i+j);

  printf("\n");

  }

  }

  程序的运行结果是(  )。

  A.234

  B.432

  345543

  34

  C.23

  D.45

  3434

  2323

  28.有下列程序:

  #include

  voidmain(  )

  {intx=1,y=2,z=3;

  if(x>y)

  if(yelseprintf("%d",++y);

  printf(”%d\n”,x++);

  }

  程序的运行结果是(  )。

  A.331

  B.41

  C.2

  D.1

  29.有下列程序:

  #include

  voidmain(  )

  {inti=5;

  do

  {if(i%3=1)

  if(i%5==2)

  {printf("*%d",i);break;}

  i++:

  }while(i!=O);

  printf("\n");

  }

  程序的运行结果是(  )。

  A.*7

  B.*3*5

  C.*5

  D.*2*6

  30.有下列程序:

  #include

  intfun(inta.intb)

  {if(b==0)relurna;

  elsereturn(fun(--a,--b));

  }

  voidmain(  )

  {printf("%d\n",fun(4,2));}

  程序的运行结果是(  )。

  A.1

  B.2

  C.3

  D.4

  31.有下列程序:

  #include

  #include

  intfun(intn)

  {int*P;

  p=(int*)malloc(sizeof(int));

  *P=n;return*P;

  }

  voidmain(  )

  {inta;

  a=fun(10);printf("%d\n",a+fun(10));}

  程序的运行结果是(  )。

  A.0

  B.10

  C.20

  D.出错

  32.有下列程序:

  #include

  voidfun(inta,intb)

  {intt;

  t=a;a=b;b=t;

  voidmain(  )

  {intc[1O]={1,2,3,4,5,6,7,8,9,0},i;

  for(i=0;i<10;i+=2)fun(c[i],c[i+1]);

  for(i=0;i<10;i++)printf(”%d,”,c[i]);

  printf("\n");

  }

  程序的运行结果是(  )。

  A.1,2,3,4,5,6,7,8,9,0

  B.2,1,4,3,6,5,8,7,0,9

  C.0,9,8,7,6,5,4,3,2,1

  D.0,1,2,3,4,5,6,7,8,9

  33.有下列程序:

  #include

  structst

  {intx,Y,date[2]={1,10,2,20};

  voidmain(  )

  {structst*p=date;

  printf("%d,",p->y);printf("%d\n",(++p)

  ->x);

  }

  程序的运行结果是(  )。

  A.10,1

  B.20,1

  C.10,2

  D.20,2

  34.有下列程序:

  #include

  voidfun(inta[],intn)

  {inti,t;

  for(i=0;ii];a[n-1-i]=t;}

  }

  voidmain(  )

  {intk[10]={1,2,3,4,5,6,7,8,9,10},i;

  fun(k,5);

  for(i=2,i<8;i++)printf("%d",k[i]);

  printf("\n");

  }

  程序的运行结果是(  )。

  A.345678

  B.876543

  C.1098765

  D.321678

  35.有下列程序:

  #include

  #defineN4

  voidfun(inta[][N],intb[])

  {inti;

  for(i=0;i}

  voidmain(  )

  {intx[][N]={{1,2,3},{4),{5,6,7,8),{9,10}),

  y[N],i;

  fun(x,y);

  for(i=0;iprintf("\n");

  }

  程序的运行结果是(  )。

  A.1,2,3,4,

  B.1,0,7,0,

  C.1,4,5,9,

  D.3,4,8,10,

  36.有下列程序:

  #include

  intfun(int(*s)[4],intn,intk)

  {intm,i;

  m=s[O][k];

  for(i=1;im)m=s[i]

  [k];

  returnm;

  }

  voidmain(  )

  {inta[4][4]=({1,2,3,4),{11,12,13,14},{21,

  22,23,24},{31,32,33,34)};

  printf(”%d\n”,fun(a,4,O));

  }

  程序的运行结果是(  )。

  A.4

  B.34

  C.31

  D.32

  37.有下列程序:

  #include

  voidmain(  )

  {stuctSTU{charname[9];charsex;double

  score[2];};

  stuctSTUa={"Zha0",’m’,85.0,90.0),b={"

  Qian",’f’,95.0,92.0};

  b=a:

  printf("%S,%C,%2.0,%2.0\n”,b.name,b.sex,

  b.score[O],bscore[1]);

  程序的运行结果是(  )。

  A.Qian,f,95,92

  B.Oian,m,85,90

  C.Zha0,f,95,92

  D.Zha0,m,85,90

  38.假定已建立以下链表结构,且指针P和q已指向如下图所示的结点:

  

  则下列选项中可将q所指点从链表中删除并释放该结点的语句组是(  )。

  A.(*p).next=(*q).next;free(p);

  B.p=q->next;flee(q);

  C.p=q;free(q);

  D.p->next=q->next;free(q);

  39.有下列程序:

  #include

  voidmain(  )

  {chara=4;

  printf("%d\n",a=a<<1);

  }

  程序的运行结果是(  )。

  A.40

  B.16

  C.8

  D.4

  40.有下列程序:

  #include

  voidmain(  )

  {FILE*pf;

  char*s1="China",*s2="Beijing";

  pf=fopen("abc.dat","wb+");

  fwrite(s2,7,1,pf);

  rewind(pf);/*文件位置指针回到文件开头*/

  fwrite(s1,5,1,pf);

  fclose(pf);

  }

  以上程序执行后abc.dat文件的内容是(  )。

  A.China

  B.Chinang

  C.ChinaBeijing

  D.BeijingChina

  1.B。【解析】本题考查栈的特性,栈是按照“后进先出”的原则组织数据的。所以出栈顺序EDCBA54321。

  2.D。【解析】循环队列中元素的个数是由队首指针和队尾指针共同决定的,元素的动态变化也是通过队首指针和队尾指针来反映的,当队首等于队尾时,队列为空。

  3.C。【解析】本题考查查找的算法,对于长度为n的有序线性表,在最坏情况下,二分法查找只需比较log2n次。

  4.A。【解析】顺序存储是把逻辑上相邻的数据元素存储在物理上相邻的存储单元中,主要用于线性的数据结构;而链式存储结构空间不一定是连续的,无须担心容量问题。

  5.D。【解析】数据流图是从输入到输出的移动变换过程。用带箭头的线段表示数据流,沿箭头方向表示传递数据的通道,一般在旁边标注数据流名。

  6.B。【解析】在软件开发中,需求分析阶段常使用数据流图(DFD)、数据字典(DD)、结构化英语、判断表和判断树等工具。

  7.A。【解析】对象是类的实例,它具有如下特征:标识唯一性、分类性、多态性、封装性、模块独立性。

  8.B。【解析】两个实体间的联系可以分为3种:一对一、一对多或多对一、多对多。由于一个宿舍可以住多个学生,所以它们的联系是一对多联系。

  9.C。【解析】数据管理技术分为:人工管理阶段、文件系统阶段和数据库系统阶段3个阶段。人工管理阶段无共享,冗余度大;文件管理阶段共享性差,冗余度大;数据库系统管理阶段共享性大,冗余度小。

  10.D。【解析】本题是对几种运算的使用进行考查、笛卡儿积是两个集合相乘的关系;交运算是包含两集合的所有元素;并运算是取两集合公共的元素;自然连接满足的条件是两关系间有公共域,通过公共域的相等直接进行连接。通过观察3个关系R、S、T的结果可知,关系T是由关系R和S进行自然连接得到的。

  11.C。【解析】本题考查C语言的基本概念。C语言的源程序是由函数构成的,其基本单位是函数,每一个函数完成相对独立的功能,其中至少包括一个主函数;C语言的书写格式自由,一行可写多条语句,一条语句也可写在不同行上;C语言规定每个语句以分号结束。可随时添加注释,对程序没影响。

  12.D。【解析】由高级语言编写的程序称为“源程序”;由二进制代码表示的程序称为“目标程序”;由汇编语言编写的程序称为“汇编程序”。对于计算机本身来说,它只能接收和处理由0到1的代码构成的二进制指令和数据。所以计算机能识别的程序是“目标程序”。而计算可以直接执行的程序是可执行程序,即后缀为.exe的程序。

  13.A。【解析】所谓常量的是在程序运行过程中,其值不能被改变的量。包括整型数量、实型常量、字符常量和字符串常量等类型。选项B0.1e+6是用指数形式表示的实型常量,C语言的语法规定,字母e之前必须要有数字,后面的指数必须为整数,并且在字母e前后以及数字之间不得插入空格;选项C用双引号括起来表示字符串\a;选项D’\011’表示用单引号括起来的转义字符八进制数。011;选项A,在用单引号表示的字符常量中,只能包含一个字符。所以不正确。

  14.C。【解析】本题考查变量的定义。选项A是两条语句,用分号隔开,只定义了a为double型;选项B中,不允许这种声明赋值方式,语法错误;选项D中,类型与变量名之间不加逗号;选项C为正确的。

  15.D。【解析】本题考查运算符的优先级书写及运算。*、/运算优先级相同,据此判断,选项D表示的是2abd/c,而不是2ab/(cd)。

  16.A。【解析】C语言源程序不能表示八进制,在C语言中,所有的数值型常量都带有符号,所以整型数量只区别整型和长整型两种形式,整型常量和长整型常量均可用十进制、二进制、十六进制3种形式表示,故A不正确。

  17.D。【解析】本题考查三目运算等。条件表达式的格式为a?b;c。它的含义是,当a为真时,取b的值,否则取c的值。在C语言程序中“为真”即“不等于零”,“为假”即等于0。所以和w等价的表达式是w非零。

  18.C。【解析】把x和y化为二进制,X=14表示为1110,y=15表示为1111,所以x‖y=1,A的ASCIl是65,a的ASCIl是97,所以’A’<’a’=1,因此W=1。

  19.B。【解析】本题考查scanf函数的用法,其调用格式为:

  scanf(格式字符串,输入项地址表);

  功能是按格式字符串中规定的格式,在键盘上输入各输入项的数据,并依次赋给各输入项。

  当需要从键盘上输入数据时,直到按下回车键,scanf函数才会接受从键盘输入的数据。选项B中,每一个变量输入后都有一个空格是不正确的。

  20.C。【解析】程序中a=10,b=50,c=30,判断if(a>b)为假,不执行if语句,执行c=a=10。所以选项A正确。

  21.C。【解析】数组的下标是从零开始的。一维数组的一般定义方式为数型说明符数组名[常置表达式]

  其中“[]”中的内容可以是整型数量,也可以是整型表达式。选项C中,m[0]=5,m[m[o]]=m[5],数组下标越界。

  22.A。【解析】逗号表达式及实参的形式,在逗号表达式中,取最后一个表达式的值,结合fune的调用形式,可以知道实参的个数只有3个。

  23.B。【解析】选项B中x[5]数组下标越界,数组的下标是从0开始的。

  24.A。【解析】C语言中strlen()函数的功能是返回字符串的长度,其中’\0’是一个转义字符,它占存储空间,但不计入字符串的长度。所以选项A正确。

  25.B。【解析】本题考查telurn语句,return语句有以下几个特点:用户定义的函数中可以没有返回语句;一个函数体内可以有多个返回语句,不论执行哪一个,函数都可以结束,回到主函数;但是调用一次只能有一个返回值。为了保证函数不返回任何值,C语言规定,可以定义无类型函数,其形式为void函数名(参数表)。当函数中不需要指明返回值时,可以写成return。

  26.C。【解析】本题考查宏的相关知识点。宏名没有大小写限制;宏定义可以放在程序中的任何位置,其有效范围是从定义开始到文件结束;宏替换可以代替任何数据类型,不受数据类型的限制;函数影响运行时间,宏调用影响编译时间。

  27.D。【解析】本题考查for循环使用。

  当i=3时,j可以取1和2,i+j分别是4和5,执行printf("\n")换行,i--为2。

  当i=2时,j可以取1和2,i+j分别是3和4,执行printf("\n")换行,i--为1。

  当i=1时,J可以取1和2,i+j分别是2和3,执行printf("\n")换行,i--为0,不符合循环,退出。

  28.D。【解析】C语言中规定,else与离它最近的if相匹配。

  x=1,y=2,z=3,所以第一个if的条件(x>y)不成立,直接执行printf("%d\n",x+1);语句,输出x的值1,再把x加1。

  29.A。【解析】本题考查d0…while循环,先执行循环体,再判断条件是否成立,函数实现的功能是找出满足一个数,它除3时余1,除5时余2,然后打印“*”和这个数从5开始,等于7时恰好符合条件,输出,最后循环结束。

  30.B。【解析】本题考查递归函数的使用。fun(4,2)->fun(2,o),由于b等于0,故返回值为2。反之,fun(4,2)=2。

  31.C。【解析】本题考查指针与函数的调用。a+fun(10)相当于fun(10)+fun(10),故结果为20。两次调用fun()函数,返回值指向不同的内存单元,不会存在内存冲突的问题,也就不会走错。

  32.A。【解析】在程序中实参向形参传递数据的方式是“值传递”,如果实参传递给形参是变量的值,就是数值传递,并不能改变实参的值,所以数组c[10]的值不变。

  33.c。【解析】data[2]是两个结构体组成的数组,p指向结构体数组的首地址,p->y访问第一个结构体的第二个元素;(++p)x访问第二个结构体的第一个元素。所以输出为10,2。

  34.D。【解析】在程序中,fun(k,5)的功能是将数组k的k[0]、k[1]分别与k[3]、k[4]交换,for循环从k[2]到k[8]输出,所以输出结果为321678。

  35.B。【解析】本题考查数组的初始化,在对二维数组元素赋初值时,如果只对部分元素赋初值,那未赋初值的元素自动取0。fun函数是将二维数组a中主对角线上的元素

  赋给数组b,所以y[4]=(1,0,7,0)。

  36.C。【解析】在程序中fun函数的功能在于求取三维数组S中1至n行中每行第k个元素中的最大者。注意:i=0时为第一行,故fun(a,4,O)在于求取11、21、31中的最大值,显然为31。

  37.D。【解析】对于两个结构体,b=a;表示将a的每一个元素都赋给b,所以会输出a中的内蓉。

  38.D。【解析】在以下4项中,根据链表插入与删除的原则,选项A中,*P是P所指向的元素.所以这样调用是错误的;选项B是将P指向的结点作为q的后继结点;而选项C则是将指针q指向P指向的结点;选项D将指向q的后继点的指针赋给指向P后继点的指针,并将q指向结点所占的内存。所以选项D正确。

  39.C。【解析】本题考查位操作,将4转化成二进制为0100,左移一位后为1000,转成十进制为8,所以输出8。

  40.B。【解析】本题考查fwrite的调用形式。

  其格式为“fwrite(buffer,size,count,fp);”。

  fwritie函数的功能是对fp所指向的文件存入count次,每次存入一个大小为size的数据块。将存入的数据块存到buffer指向的内存区,如果buffer内存区有数据则将其覆盖。

  本题中第一次调用fwrite函数,向文件中写入s2的值“Beijing”,第二次调用fwrite函数,向文件中写入S1的值“China”,并将之前“Beijing”的前几个字符覆盖,得到Chi-nang。

全国计算机二级C++语言程序设计考试精选选择题(4)

热点推荐

登录注册
触屏版电脑版网站地图