计算机二级《C语言》基础练习题及答案

计算机二级《C语言》基础练习题及答案

  在日常学习、工作生活中,我们最不陌生的就是练习题了,做习题可以检查我们学习的效果。学习的目的就是要掌握由概念原理所构成的知识,什么样的习题才能有效帮助到我们呢?以下是小编收集整理的计算机二级《C语言》基础练习题及答案,希望对大家有所帮助。

  计算机二级《C语言》基础练习题及答案1

  1[单选题]有以下程序

  程序运行后的输出结果是

  A.3B..-12

  参考答案:D

  参考解析:本题考查目的是运算符的结合性和优先级。首先计算axa,结果为9,然后执行a=a-9,即3-9,结果为-6,然后执行a=(-6)+(-6),即8=的值为-12。所以选择D。

  2[单选题] 以下叙述中正确的是

  A.两个字符串可以用关系运算符进行大小比较

  B.函数调用strlen(s);会返回字符串S实际占用内存的大小(以字节为单位)

  C.C语言本身没有提供对字符串进行整体操作的运算符

  D.当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和

  参考答案:C

  参考解析:本题考查字符串处理函数strien、strcat、strcmp。B选项中strlen返回的是字符串s实际占用内存大小加上结尾符,A选项中不能用关系运算符进行大小比较,可以使用strcmp。D选项当使用连接函数strcat时,内存空间会减少一个字符位置。

  3[单选题] 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。

  A.一对一B.一对多C.多对多D.多对一

  参考答案:C

  参考解析:因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。

  4[单选题] 对于while(!E)s;,若要执行循环体s,则E的取值应为:

  A.E等于1B.E不等于0C.E不等于1D.E等于0

  参考答案:D

  参考解析:while语句的一般形式为:while(表达式)语句;其中表达式是循环条件,语句为循环体。while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。该题中如要执行语句s,则!E应为真,因此E应等于0,D选项正确。

  5[单选题] 在软件设计中不使用的工具是( )。

  A.系统结构图图C.数据流图(DFD图)D.程序流程图

  参考答案:C

  参考解析:系统结构图是对软件系统结构的`总体设计的图形显示。在需求分析阶段,已经从系统开发的角度出发,把系统按功能逐次分割成层次结构,是在概要设计阶段用到的。PAD图是在详细设计阶段用到的。程序流程图是对程序流程的图形表示,在详细设计过程中用到。数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型,是在可行性研究阶段用到的而非软件设计时用到,所以选择C。

  6[单选题] 若有定义语句:char a='82';则变量a(  )

  A.说明不合法B.包含1个字符C.包含2个字符D.包含3个字符

  参考答案:B

  参考解析:char a='82',定义字符量a,char型变量值为1个字节长度,并从右侧开始运算,所以a的值应为'2'。因此B选项正确。

  7[单选题] 有以下程序

  程序运行后的输出结果是

   Beijing! to Beijing!come you to Beijing!jing!

  参考答案:A

  参考解析:while函数判断P指针指向地址的内容是否和a指针指向地址的内容相等,如果不是,则移动指针p+1,当p指向xb字符串中的y时,和xa首地址元素相等,退出while语句后,P再向右移动a字符串长度+1个单位地址,此时P指向t,输出t及剩余的字符串,答案为A选项。

  8[单选题] 若fp已定义为指向某文件的指针,且没有读到该文件的末尾,则C语言函数feof(fp)的函数返回值是

  B.非0C.-1D.0

  参考答案:D

  参考解析:本题考查文件的定位,feof函数的用法是从输入流读取数据,如果到达文件末尾(遇文件结束符),eof函数值为非零值,否则为0,所以选项D正确。

  9[单选题] 有以下程序:

  参考答案:C

  参考解析:flm函数作用冒泡法排序,fla9控制升序(0)或者降序(1)。n为参与排序的元素个数。a为数组的起始地址。因此,flm(a,4,1),数组的前四个降序排序,fun(a+4,6,O)对数组的第四项后六个元素进行升序排序。故结果为10,9,8,7,1,2,3,4,5,6。答案为C选项。

  10[单选题] 以下叙述中正确的是

  A.只要适当地修改代码,就可以将do-while与while相互转换

  B.对于“for(表达式1;表达式2;表达式3)循环体”首先要计算表达式2的值,以便决定是否开始循环

  C.对于“for(表达式1;表达式2;表达式3)循环体”,只在个别情况下才能转换成while语句

  D.如果根据算法需要使用无限循环(即通常所称的“死循环”),则只能使用while语句

  参考答案:A

  参考解析:B选项中,for语句中需要先求解先求解表达式1;C选项中,for语句使用最为灵活,它完全可以取代while语句;D选项中,对于死循环,也可以使用for语句。因此A选项正确。

  计算机二级《C语言》基础练习题及答案2

  1). 关于C语言的变量,以下叙述中错误的是( )

  A.所谓变量是指在程序运行过程中其值可以被改变的量

  B.变量所占的存储单元地址可以随时改变

  C.程序中用到的所有变量都必须先定义后才能使用

  D.由三条下划线构成的符号名是合法的变量名

  正确答案:B

  答案解析:变量是指在程序运行过程中其值可以改变的值,一个变量实质上是代表了内存中的某个存储单元。在程序中对某个变量的操作实际上就是对这个存储单元的操作,程序运行期间,这个分配的存储单元不会改变,但是其值可以变化。变量命名要符合标识符的规定,其中下划线是标识符的组成字符。程序中所有变量都必须先定义后使用。

  2). 当变量c的值不为2、4、6时,值也为″真″的表达式是( )

  A.(c==2)||(c==4)||(c==6)

  B.(c>=2 && c<=6)&&!(c%2)

  C.(c>=2 &&c<=6)&&(c%2!=1)

  D.(c>=2 && c<=6) || (c!=3)|| (c!=5)

  正确答案:D

  答案解析:逻辑或运算中,只要有一项为真,表达式的值就为真,故选项D中c的值不为2、4、6时,那么表达式(c>=2&& c<=6)以及(c!=3)、(c!=5)必有一个成立,表达式的值也为真。

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

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

  urn语句中表达式值的类型

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

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

  正确答案:A

  答案解析:在C语言中,应当在定义函数时指定函数值的类型,凡不加类型说明的函数,一律按整型处理。在定义函数时,对函数值说明的类型一般应该和return语句中的表达式类型一致。如果函数值的类型和return语句中的表达式类型不一致,则以函数类型为主,即函数类型决定返回值的类型。

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

  A.在C语言中,预处理命令行都以″#″开头

  B.预处理命令行必须位于C源程序的起始位置

  C.#include 必须放在C程序的开头

  D.C语言的预处理不能实现宏定义和条件编译的功能

  正确答案:A

  答案解析:在C语言中,凡是以″#″号开头的行,都称为″编译预处理″命令行。预处理命令可以放在程序中的任何位置,其有效范围是从定义开始到文件结束。预处理命令有宏定义、文件包含和条件编译三类。#include 命令行表示程序中要引用C标准函数库中的标准输入输出函数。

  5). 下列叙述中,不属于测试的特征的是

  A.测试的挑剔性

  B.完全测试的不可能性

  C.测试的可靠性

  D.测试的经济性

  正确答案:C

  答案解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。它有3个方面的重要特征,即测试的挑剔性、完全测试的'不可能性及测试的经济性。其中,没有测试的可靠性这一说法。

  6). 以下选项中不属于C语言标识符的是( )

  A.用户标识符

  B.关键字

  C.常量

  D.预定义标识符

  正确答案:C

  答案解析:C语言的标识符可分为以下3类:

  ①关键字语言预先规定了一批标识符,它们在程序中都代表着固定的含义,不能另作他用。这些字符称为关键字。例如,int、double、if、else、while、for等。

  ②预定义标识符。即预先定义并具有特定含义的标识符。

  ③用户标识符。由用户根据需要定义的标识符称为用户标识符,又称自定义标识符,一般用来给变量、函数、数组等命名。

  7). 以下关于字符串的叙述中正确的是( )

  A.两个字符串中的字符个数相同时才能进行字符串大小的比较

  B.可以用关系运算符对字符串的大小进行比较

  C.空串比空格打头的字符串小

  D.C语言中有字符串类型的常量和变量

  正确答案:C

  答案解析:C语言本身并没有设置一种类型来定义字符串变量,却允许使用″字符串常量″。字符串常量是由双引号括起来的一串字符。任意两个字符串的大小比较要调用字符串比较函数strcmp(s1,s2 )来进行,其比较的方法是依次对s1和s2中对应位置上的字符两两进行比较,当出现第一对不相同的字符时,即由这两个字符决定所在串的大小(比较字符大小的依据是其ASCⅡ码值)。

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

  A.调用printf( )函数时,必须要有输出项

  B.使用put )函数时,必须在之前包含头文件stdio.h

  C.在C语言中,整数可以以二进制、八进制或十六进制的形式输出

  D.调节get )函数读入字符时,可以从键盘上输入字符所对应的ASCII码

  正确答案:B

  答案解析:选项A,若printf函数没有输出项,且格式字符串中不含格式信息,则输出的是格式字符串本身,若格式字符串含有格式信息,运行时则出现错误提示;选项C,在C语言中,整数可以十进制、八进制或十六进制的形式输出;选项D,getchar函数是从标准输入设备读取一个字符。

  9). 以下结构体类型说明和变量定义中正确的是( )

  edefstruct { int n; char c; } REC; REC t1,t2;

  uctREC ; { int n; char c; }; REC t1,t2;

  edefstruct REC; { int n=0; char c=′A′; } t1,t2;

  uct{ int n; char c; } REC; REC t1,t2;

  正确答案:A

  答案解析:定义结构体类型的一般形式为:struct 结构体名 {成员列表};struct 结构体名后不能加″;″号,所以选项B、C)错误,选项D中定义无名称的结构体类型同时定义结构体变量形式应为struct t1,t2;选项A为用户自定义类型,其为正确的定义形式。

  10). 若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是( )

  A.一对一

  B.一对多

  C.多对一

  D.多对多

  正确答案:B

  答案解析:由于B和C有一一对应的联系,而A和B只间有一对多的联系,则通过关系之间的传递,则A和C之间也是一对多的联系。

  11). 待排序的关键码序列为(15,20,9,30,67.65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码15被放到第( )个位置。

  A.2

  B.3

  C.4

  D.5

  正确答案:B

  答案解析:选择排序的基本思想是扫描整个线性表,从中选出最小的元素,将它交换到表的最前面,然后对剩下的子表采用同样的方法,直到子表为空。所以第一趟排序后,将选出最小的元素9放在第一个位置,元素15则被交换放在第三个位置。

  计算机二级《C语言》基础练习题及答案3

  (1) 以下选项中,合法的数值型常量是

  A) 3.2 B) 'X' C) 099 D) 0xEH

  答案:A

  (2) 以下选项中,合法的实数是

  A) 1.5E2 B) E1.1 C) 2.10E D) 1.9E1.4

  答案:A

  (3) 若已有定义语句:int a, b, c;,且变量已正确赋初值,则以下选项中正确的赋值表达式是

  A) a = (b = c) + 8;

  B) (a = b) = c = 9;

  C) a = (b == c) = 'A';

  D) a + b = c + 1;

  答案:A

  (4) 有以下程序

  #include

  main

  {

  int x = 0x13;

  printf("INT:%d ", x+1);

  }

  程序运行后的输出结果是

  A) INT:20 B) INT:13

  C) INT:12 D) INT:14

  答案:A

  (5) 关于程序设计基本概念,以下叙述错误的是

  A) 计算机可以直接执行由任意高级语言编写的程序

  B) 高级语言都有与之对应的编译程序或解释程序

  C) 用任何一种计算机高级语言都可以把算法转换为程序

  D) 结构化算法可以解决任何复杂的问题

  答案:A

  (6) 关于程序中的注释,以下叙述正确的是

  A) 注释的内容必须放在一对/x和 x/之间

  B) 注释必须置于所说明的语句前或语句后

  C) 注释中间可以嵌套另一个注释

  D) 注释内容错误会导致编译出错

  答案:A

  (7) 以下不能用于实型数据的运算符是

  A) % B) /

  C) x D) +

  答案:A

  (8) C源程序中不能表示的数制是

  A) 二进制 B) 八进制

  C) 十进制 D) 十六进制

  答案:A

  (9) 以下选项中,能用作用户标识符的是

  A) _0_ B) 8_8

  C) void D) unsigned

  答案:A

  (10) 若有定义语句:

  int x=10;

  则表达式x-=x+x的值为

  A) -10 B) -20

  C) 0 D) 10

  答案:A

  (11) 有以下程序

  #include

  main

  { int a=1,b=0;

  printf("%d,",b=a+b);

  printf("%d ",a=2xb);

  }

  程序运行后的输出结果是

  A) 1,2 B) 1,0

  C) 3,2 D) 0,0

  答案:A

  (12) 以下关于结构化程序设计的叙述中正确的是

  A) 在C语言中,程序的模块化是利用函数实现的

  B) 结构化程序使用goto语句会很便捷

  C) 一个结构化程序必须同时由顺序、分支、循环三种结构组成

  D) 由三种基本结构构成的程序只能解决小规模的`问题

  答案:A

  (13) 对于一个正常运行的C程序,以下叙述中正确的是

  A) 程序的执行总是从main函数开始 B) 程序的执行总是从程序的第一个函数开始, 在main函数结束

  C) 程序的执行总是从main函数开始,在程序的最后一个函数中结束

  D) 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束

  答案:A

  (14) 以下选项中能表示合法常量的是

  A) "07" B) 1.5E2.0

  C) '' D) 1,200

  答案:A

  (15) 以下定义语句中正确的是

  A) char A=65+1,b='b'; B) int a=b=0;

  C) float a=1,xb=&a,xc=&b; D) double a=0.0; b=1.1;

  答案:A

  (16) 若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是

  A) ++x,y=x-- B) x+1=y

  C) x=x+10=x+y D) double(x)/10

  答案:A

  (17) 若变量已正确定义为int型,要通过语句

  scanf("%d,%d,%d",&a,&b,&c);

  给a赋值1、给b赋值2、给 c赋值3,以下输入形式中错误的是(注:□代表一个空格符)

  A) 1□2□3<回车> B) □□□1,2,3 <回车>

  C) 1,□□□2,□□□3<回车> D) 1,2,3<回车>

  答案:A

  (18) 计算机能直接执行的程序是

  A) 可执行程序 B) 目标程序

  C) 汇编程序 D) 源程序

  答案:A

  (19) 以下叙述中正确的是

  A) C语言规定必须用main作为主函数名,程序将从此开始执行

  B) 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

  C) C语言程序将从源程序中第一个函数开始执行

  D) main的各种大小写拼写形式都可以作为主函数名,如:MAIN,Main等

  答案:A

  (20) 以下选项中可用作C程序合法实数的是

  A) .1e0 B) 3.0e0.2

  C) E9 D) 9.12E

  答案:A

  (21) 下列定义变量的语句中错误的是

  A) float US$; B) double int_;

  C) char For; D) int _int;

  答案:A

  (22) 表达式:(int)((double)9/2)- 9%2 的值是

  A) 3 B) 0 C) 4 D) 5

  答案:A

  (23) 若有定义:

  int a,b;

  通过语句

  scanf("%d;%d",&a,&b);

  能把整数3赋给变量a,5赋给变量b的输入数据是

  A) 3;5 B) 3,5 C) 3 5 D) 35

  答案:A

  (24) 下列叙述中错误的是

  A) 一个C语言程序只能实现一种算法 B) C程序可以由多个程序文件组成

  C) C程序可以由一个或多个函数组成 D) 一个C函数可以单独作为一个C程序文件存在

  答案:A

  (25) C语言源程序名的后缀是

  A) .C B) .exe C) .obj D) .cp

  答案:A

  (26) 以下叙述中正确的是

  A) 赋值语句是一种执行语句,必须放在函数的可执行部分

  B) scanf和printf是C语言提供的输入和输出语句

  C) 由printf输出的数据都隐含左对齐 D) 由printf输出的数据的实际精度是由格式控制中的域宽和小数的域宽来完全决定的

  答案:A

  计算机二级《C语言》基础练习题及答案4

  1、 一个教师讲授多门课程,一门课程由多个教师讲授。则实体教师与课程关系 B

  A) 1:m 联系

  B) m: n 联系

  C) m: 1联系

  D) 1:1联系

  2、 结构化程序所要求的基本结构不包括 B

  A) 重复(循环)结构 B) GOTO跳转

  C) 选择(分支)结构 D) 顺序结构

  3、 下列叙述中正确的是 C

  A) 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化

  B) 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化

  C) 在栈中,栈底指针不变,栈中的元素随栈顶指针的变化而动态变化

  4、 定义无符号整数类为Uint,下面可以作为unit实例化的值是 C

  A) 0.369

  B) 整数集合{1,2,3,4,5}

  C) 369

  D) -369

  5、 下面描述中错误的是(D)

  A) 软件设计是将软件需求转换为软件表示的过程

  B) PAD图是软件详细设计的表示工具

  C) 数据结构与数据库设计是软件设计的任务之一

  D) 系统总体结构图支持软件系统的`详细设计

  6、软件按功能可以分为应用软件、系统软件和支撑软件,下面的软件中是应用软件的是 C

  A) 数据库管理系统

  B) UNIX操作系统

  C) 学生成绩管理系统

  D) C语言编译程序

  7、下列关于栈叙述正确的是 C

  A) 栈顶元素最后才能被删除

  B) 栈底元素永远不能被删除

  C) 栈顶元素最先能被删除

  8、软件生命周期中的活动不包括 A

  A) 市场调研 B) 软件测试

  C) 软件维护 D) 需求分析

  9、下列叙述中正确的是 D

  A) 有一个以上根结点的数据结构不一定是非线性结构

  B) 双向链表是非线性结构

  C) 循环链表是非线性结构

  D) 只有一个根结点的数据结构不一定是线性结构

  10、下列关于数据库设计中的叙述中,正确的是 A

  A) 在需求分析阶段建立数据字典

  B) 在物理设计阶段建立数据字典

  C)在逻辑设计阶段建立数据字典

  D) 在概念设计阶段建立数据字典

  11、下列叙述中正确的是 D

  A) 设计算法时只需要考虑结果的可靠性

  B) B)算法就是程序

  C) 设计算法时只需要考虑数据结构的设计

  D) D)以上三种说法都不对

  12、程序调试的任务是 A

  A) 诊断和改正程序中的错误

  B)设计测试用例

  C) 验证程序的正确性

  D) 发现程序中的错误

  13、下列关于二叉树的叙述中,正确是 C

  A) 叶子结点是度为2的结点数的两倍

  B) 度为2的结点数是度为1的结点数的两倍

  C) 叶子结点总是比度为2的结点多一个

  D) 叶子结点总是比度为2的结点少一个

  14、数据库系统的三级模式不包括 B

  A) 概念模式 B) 数据模式 C) 内模式 D) 外模式

  计算机二级《C语言》基础练习题及答案5

  1.(A )是构成C语言程序的基本单位。

  A、函数

  B、过程

  C、子程序

  D、子例程

  2.C语言程序从(C) 开始执行。

  A、 程序中第一条可执行语句

  B、 程序中第一个函数

  C、 程序中的main函数

  D、包含文件中的第一个函数

  3、以下说法中正确的是( C )。

  A、C语言程序总是从第一个定义的函数开始执行

  B、在C语言程序中,要调用的函数必须在main( )函数中定义

  C、C语言程序总是从main( )函数开始执行

  D、C语言程序中的main( )函数必须放在程序的开始部分

  4.下列关于C语言的说法错误的是( B ) 。

  A、 C程序的工作过程是编辑、编译、连接、运行

  B、 C语言不区分大小写。

  C、 C程序的三种基本结构是顺序、选择、循环

  D、C程序从main函数开始执行

  5.下列正确的标识符是(C )。

  A、-a1

  B、a[i]

  C、a2_i

  D、int t

  5-8题为相同类型题

  考点:标识符的命名规则

  只能由字母、数字、下划线构成

  数字不能作为标识符的开头

  关键字不能作为标识符

  选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)

  6.下列C语言用户标识符中合法的是(B )。

  A、3ax

  B、x

  C、case

  D、-e2 E)union

  选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);

  7.下列四组选项中,正确的.C语言标识符是( C )。

  A、 %x

  B、a+b

  C、a123

  D、123

  选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)

  8、下列四组字符串中都可以用作C语言程序中的标识符的是( A)。

  A、print _3d db8 aBc

  B、Iam one_half start$it 3pai

  C、str_1 Cpp pow while

  D、Pxq My->book line#

  选项B中的“”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)

  9.C语言中的简单数据类型包括(D )。

  A、整型、实型、逻辑型

  B、整型、实型、逻辑型、字符型

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

  D、整型、实型、字符型

  10.在C语言程序中,表达式5%2的结果是 C 。

  A、2.5

  B、2

  C、1

  D、3

  %为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1; 5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;

  /为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2

  计算机二级《C语言》基础练习题及答案6

  1.下列关于栈叙述正确的是( )。

  A.栈顶元素最先能被删除

  B.栈顶元素最后才能被删除

  C.栈底元素永远不能被删除

  D.以上三种说法都不对

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

  A.有一个以上根结点的数据结构不一定是非线性结构

  B.只有一个根结点的数据结构不一定是线性结构

  C.循环链表是非线性结构

  D.双向链表是非线性结构

  3.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( )。

  A.3

  B.4

  C.6

  D.7

  4.在软件开发中,需求分析阶段产生的主要文档是( )。

  A.软件集成测试计划

  B.软件详细设计说明书

  C.用户手册

  D.软件需求规格说明书

  5.结构化程序所要求的基本结构不包括( )。

  A.顺序结构

  0跳转

  C.选择(分支)结构

  D.重复(循环)结构

  6.下面描述中错误的是( )。

  A.系统总体结构图支持软件系统的详细设计

  B.软件设计是将软件需求转换为软件表示的过程

  C.数据结构与数据库设计是软件设计的任务之一

  图是软件详细设计的表示工具

  7.负责数据库中查询操作的数据库语言是( )。

  A.数据定义语言

  B.数据管理语言

  C.数据操纵语言

  D.数据控制语言

  8.一个教师可讲多门课程,一门课程可由多个教师讲授,则实体教师和课程间的联系是( )。

  A.1:1联系

  B.1:m联系

  C.m:1联系

  D.m:n联系

  9.有3个关系R、S和T如下表所示:

  则由关系R和S得到关系T的操作是( )。

  A.自然连接

  B.交

  C.除

  D.并

  10.定义无符号整数为Uint,下面可以作为类Uint实例化值的是( )。

  A.-369

  B.369

  C.0.369

  D.整数集合{1,2,3,4,5}

  11.为了提高函数调用的实际运行速度,可以将较简单的函数定义为( )。

  A.内联函数

  B.重载函数

  C.递归函数

  D.函数模板

  12.若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数定义中访问a时,其书写格式为( )。

  A.a

  .a

  C.a{}

  :a{}

  13.当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是( )。

  A.任何

  B.公有或保护

  C.保护或私有

  D.私有

  14.若要对Date类中重载的加法运算符成员函数进行声明,下列选项中正确的`是( )。

  a+(Data);

  aoperator+(Data);

  a+operator(Data);

  rator+(a);

  15.下列关于函数模板的描述中,正确的是( )。

  A.函数模板是一个实例函数

  B.使用函数模板定义的函数没有返回类型

  C.函数模板的类型参数与函数的参数相同

  D.通过使用不同的类型参数,可以从函数模板得到不同的实例函数

  16.C++系统预定义了3个用于标准数据流的对象,下列选项中不属于此类对象的是( )。

  t

  

  r

  t

  dows环境下,由C++源程序文件编译而成的目标文件的扩展名是( )。

  

  

  

  

  18.字符串“a+b=12 ”的长度为( )。

  A.12

  B.10

  C.8

  D.6

  19.有如下程序:

  #include

  usingnamespacestd;

  intmain( ){

  intf,f1=0,f2=1;

  for(inti=3;i<=6;i++){

  f=f1+f2:

  f1=f2;f2=f;

  }

  cout

  }

  运行时的输出结果是( )。

  A.2

  B.3

  C.5

  D.8

  20.有如下程序:

  #include

  usingnamespacestd;

  intmain( ){

  inta[6]={23,15,64,33,40,58};

  ints1,s2;

  s1=s2=a[0];

  for(intxp=a+1;pif(s1>xp)s1=xp;

  if(s2<xp)s2=xp;

  }

  cout

  }

  运行时的输出结果是( )。

  A.23

  B.58

  C.64

  D.79

  21.有如下程序:

  #included

  usingnamespacestd;

  voidfl(int&X,int&y){intz=x;x=y;y=z;)voidf2(intX,inty){intz=x;x=y;y=z;}intmain( ){

  intx=10,y=26;

  f1(X,y);

  f2(x,y);

  cout

  }

  运行时的输出结果是( )。

  A.10

  B.16

  C.26

  D.36

  22.有如下程序:

  #include

  usingnamespacestd;

  classXA{

  inta;

  public:

  staticintb;

  XA(intaa):a(aa){b++;}

  ~XA( ){}

  intget( ){returna;}

  };

  intXA::b=0

  intmain( ){

  XAd1(1),d2(3);

  cout

  }

  运行时的输出结果是( )。

  A.5

  B.6

  C.7

  D.8

  23.有如下程序:

  #include

  usingnamespacestd:

  classPoint{

  intx,y;

  public:

  Point(intx1=0,inty1=0)):X(X1),y(y1){}

  intget( ){returnx+y;)

  };

  classCircle{

  Pointcenter}

  intradius;

  public:

  Circle(intCX,intcy,intr):center(cx,cy),radius(r)

  {}

  intget( ){( )+radius;}

  };

  intmain( ){

  Circlec(3,4,5);

  cout

  }

  运行时的输出结果是( )。

  A.5

  B.7

  C.9

  D.12

  24.若是对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的是( )。

  ratorlong( )const;

  ratorlong(BigNumber);

  goperatorlong( )const;

  goperatorlong(BigNumber);

  25.有如下函数模板定义:

  template

  T1FUN(T2n){returnnx5,0;}

  若要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,则该调用应表示为( )。

  (9)

  <9>

  26.下列语句都是程序运行时的第1条输出语句,其中一条语句的输出效果与其他3条语句不同,该语句是( )。

  t

  A.析构函数可以重载

  B.析构函数由系统自动调用

  C.每个对象的析构函数只被调用一次

  D.每个类都有析构函数

  28.下列关于构造函数的描述中,错误的是( )。

  A.构造函数名与类名相同

  B.构造函数可以有返回值

  C.构造函数可以重载

  D.每个类都有构造函数

  29.若PAT是一个类,则程序运行时,语句“PAT(xad){3};”调用PAT的构造函数的次数是( )。

  A.0

  B.1

  C.2

  D.3

  30.下列描述中,错误的是( )。

  A.公有继承时基类中的公有成员在派生类中仍是公有成员

  B.公有继承时基类中的保护成员在派生类中仍是保护成员

  C.保护继承时基类中的公有成员在派生类中仍是公有成员

  D.保护继承时基类中的保护成员在派生类中仍是保护成员

  31.生成派生类对象时,派生类构造函数调用基类构造函数的条件是( )。

  A.无需任何条件

  B.基类中显式定义了构造函数

  C.派生类中显式定义了构造函数

  D.派生类构造函数明确调用了基类构造函数

  32.下列关于派生类和基类的描述中,正确的是( )。

  A.派生类成员函数只能访问基类的公有成员

  B.派生类成员函数只能访问基类的公有和保护成员

  C.派生类成员函数可以访问基类的所有成员

  D.派生类对基类的默认继承方式是公有继承

  33.有如下类模板定义:

  template

  classBigNumber{

  longn;

  public;

  BigNumber(Ti):n(i){}

  BigNumberoperator+(BigNumberb){

  returnBigNumber(n+b.n):

  }

  };

  已知b1、b2是BigNumber的两个对象,则下列表达式中错误的是( )。

  A.b1+b2

  B.b1+3

  C.3+b1

  D.3+3

  34.下列关于文件流的描述中,正确的是( )。

  A.文件流只能完成针对磁盘文件的输入、输出

  B.建立一个文件流对象时,必须同时打开一个文件

  C.若输入流要打开的文件不存在。将建立一个新文件

  D.若输出流要打开的文件不存在,将建立一个新文件

  35.有如下程序:

  #include

  usingnamespacestd;

  classPair{

  intm,n;

  public;

  Pair(intj,intk):m(j),n(k){}

  intget( ){returnIn;}

  intget( )const{returnm+n;}

  };

  intmain( ){

  Paira(3,5);

  constPairb(3,5);

  cout

  }

  运行时的输出结果是( )。

  A.33

  B.38

  C.83

  D.88

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

  A.全局变量的作用域一定比局部变量的作用域范围大

  B.静态类别变量的生存期贯穿于整个程序的运行期间

  C.函数的形参都属于全局变量

  D.未在定义语句中赋初值的aut0变量和static变量的初值都是随机值

  37.假定MyClass为一个类,则执行MyClassa,b(2),xp;语句时,自动调用该类构造函数( )次。

  A.2

  B.3

  C.4

  D.5

  38.能正确表示逻辑关系”a≥10或a≤0”的C++语言表达式是( )。

  A.a>=10ora<=0

  B.a)一01a(一10

  C.a>=10&&a<=0

  D.a>=10||a(=0

  39.若执行下面的程序时,从键盘上输入5和2,则输出结果是( )。

  #include(iostream.h)

  voidmain( )

  (inta,b,k;

  cin>>a>>b;

  k=a:

  if(ak=a%b;

  else

  k=b%a:

  cout((k

  B.3

  C.2

  D.0

  40.假定MyClass为一个类,那么下列的函数说明中,( )为该类的析构函数。

  d~MyClass( );

  B.~MyC|ass(intn);

  lass( );

  D.~MyClass( );

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1156092664@qq.com 举报,一经查实,本站将立刻删除。

在线客服
分享本页
返回顶部