试题

计算机二级考试C语言练习题及答案

时间:2025-04-13 04:52:37 丽薇 试题 我要投稿

2025年计算机二级考试C语言练习题及答案(精选7套)

  在日常学习和工作生活中,我们最离不开的就是练习题了,学习需要做题,是因为这样一方面可以了解你对知识点的掌握,熟练掌握知识点!同时做题还可以巩固你对知识点的运用!那么一般好的习题都具备什么特点呢?以下是小编收集整理的2025年计算机二级考试C语言练习题及答案(精选7套),供大家参考借鉴,希望可以帮助到有需要的朋友。

2025年计算机二级考试C语言练习题及答案(精选7套)

  计算机二级考试C语言练习题及答案 1

  练习题一

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

  A、函数

  B、过程

  C、子程序

  D、子例程

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

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

  B、 程序中第一个函数

  C、 程序中的main函数

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

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

  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、I\am one_half start$it 3pai

  C、str_1 Cpp pow while

  D、Pxq My->book line# His.age

  选项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

  11.如果int a=3,b=4;则条件表达式"aA、 3

  B、 4

  C、 0

  D、1

  表达式1?表达式2:表达式3

  先计算表达式1,

  若表达式1成立, 则选择计算表达式2,并表达式2的值作为整个大表达式的值;

  若表达式1不成立,则选择计算表达式3,并将表达式3的值作为整个大表达式的值

  此题中的aa为3,b为4。a12.若int x=2,y=3,z=4 则表达式x

  A、4

  B、3

  C、2

  D、0

  E)1

  13.C语言中,关系表达式和逻辑表达式的值是( B ) 。

  A、0

  B、 0或1

  C、 1

  D、‘T’或’F’

  14. 下面( D )表达式的值为4.

  A、 11/3

  B、 11.0/3

  C、 (float)11/3

  D、 (int)(11.0/3+0.5)

  (1)相同数据类型的元素进行数学运算(+、-、*、/)得到结果还保持原数据类型。

  (2)不同数据类型的元素进行数学运算,先要统一数据类型,统一的标准是低精度类型转换为高精度的数据类型。

  选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3.

  选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B 11.0/3=3.666666

  选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B同

  选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到3.666666;再计算3.666666+0.5=4.166666,最后将4.166666强制类型转换为整型,即将其小数部分全部舍掉,结果为4

  15.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是( B )

  A、b=1.0/a

  B、b=(float)(1/A、

  C、b=1/(float)a

  D、b=1/(a*1.0)

  练习题二

  1.若有以下数组说明,则i=10;a[a[i]]元素数值是(C )。

  int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};

  A、10

  B、9

  C、6

  D、5

  先算a[a[i]]内层的a[i],由于i=10,因此a[i]即a[10].

  a[10]对应下面数组中的元素为9. 因此a[a[i]]即为a[9]

  a[9]对应下面数组中的元素为6. 因此a[9]即为6

  2.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( B )

  A、2

  B、3

  C、4

  D、无确定值

  5 7

  D、3 6 9

  二维数组的一维大小,即指二维数组的行数,在本题中,按行对二维数组赋值,因此内层有几个大括号,数组就有几行

  3.对二维数组的正确定义是(C )

  详见教材P149~152,二维数组的定义、初始化

  类型符 数组名 [常量表达式][常量表达式]

  二维数组可以看做是矩阵

  类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;第一个常量表达式是指数组的行数;第二个常量表达式是指数组的列数;常量表达式的值只能是整数,不可以是变量,而且从1开始计数。

  一维数组初始化时可以省略数组长度

  二维数组初始化时可以省略行数,但不能省略列数

  选项A,B,都省略了列数

  选项D,不符合二维数组定义的一般形式,行、列常量表达式应该放在不同的[]中

  A、int a[ ][ ]={1,2,3,4,5,6};

  B、int a[2] []={1,2,3,4,5,6};

  C、int a[ ] [3]={1,2,3,4,5,6};

  D、int a[2,3]={1,2,3,4,5,6};

  4.已知int a[3][4];则对数组元素引用正确的是__C___

  A、a[2][4]

  B、a[1,3]

  C、a[2][0]

  D、a(2)(1)

  详见教材P150,数组元素的引用

  数组名[下标] [下标]

  引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数

  第一个[下标]表示行逻辑地址下标,第二个[下标]表示列逻辑地址下标。

  本题图示详见P149图6.7

  因此a的行逻辑地址范围0~2;a的列逻辑地址范围0~3;

  选项A,列逻辑地址下标超过范围

  选项B,D,的引用形式不正确。

  5.C语言中函数返回值的类型是由 A 决定的

  A、函数定义时指定的类型

  B、 return语句中的表达式类型

  C、 调用该函数时的实参的数据类型

  D、形参的数据类型

  6. 在C语言中,函数的数据类型是指(A )

  A、 函数返回值的数据类型

  B、 函数形参的数据类型

  C、 调用该函数时的实参的数据类型

  D、任意指定的数据类型

  7.在函数调用时,以下说法正确的是( B )

  A、函数调用后必须带回返回值

  B、实际参数和形式参数可以同名

  C、函数间的数据传递不可以使用全局变量

  D、主调函数和被调函数总是在同一个文件里

  8. 在C语言中,表示静态存储类别的关键字是: ( C )

  A、 auto

  B、 register

  C、static

  D、extern

  9.未指定存储类别的变量,其隐含的存储类别为(A )。

  A、auto

  B、static

  C、extern

  D、register

  10. 若有以下说明语句:

  struct student

  { int num;

  char name[ ];

  float score;

  }stu;

  则下面的`叙述不正确的是: (D )

  A、 struct是结构体类型的关键字

  B、 struct student 是用户定义的结构体类型

  C、 num, score都是结构体成员名

  D、 stu是用户定义的结构体类型名

  11.若有以下说明语句:

  struct date

  { int year;

  int month;

  int day;

  }brithday;

  则下面的叙述不正确的是__C___.

  A、 struct是声明结构体类型时用的关键字

  B、 struct date 是用户定义的结构体类型名

  C、 brithday是用户定义的结构体类型名

  D、year,day 都是结构体成员名

  12. 以下对结构变量stul中成员age的非法引用是 B

  struct student

  { int age;

  int num;

  }stu1,*p;

  p=&stu1;

  A、 stu1.age

  B、 student.age

  C、 p->age

  D、(*p).age

  13.设有如下定义:

  struck sk

  { int a;

  float b;

  }data;

  int *p;

  若要使P指向data中的a域,正确的赋值语句是 C

  A、 p=&a;

  B、 p=datA、a;

  C、p=&datA、a;

  D、*p=datA、a;

  14.设有以下说明语句:

  typedef struct stu

  { int a;

  float b;

  } stutype;

  则下面叙述中错误的是( D )。

  A、struct是结构类型的关键字

  B、struct stu是用户定义的结构类型

  C、a和b都是结构成员名

  D、stutype是用户定义的结构体变量名

  15.语句int *p;说明了 C 。

  A、p是指向一维数组的指针

  B、p是指向函数的指针,该函数返回一int型数据

  C、p是指向int型数据的指针 // 指针的定义教材P223

  D、p是函数名,该函数返回一指向int型数据的指针

  计算机二级考试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.函数定义时在函数首部所说明的函数类型

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

  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类:①关键字。C语言预先规定了一批标识符,它们在程序中都代表着固定的含义,不能另作他用。这些字符称为关键字。例如,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). 以下结构体类型说明和变量定义中正确的是( )

  A.typedefstruct { int n; char c; } REC; REC t1,t2;

  B.structREC ; { int n; char c; }; REC t1,t2;

  C.typedefstruct REC; { int n=0; char c=′A′; } t1,t2;

  D.struct{ 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.不再需要头指针了

  B.从表中任一结点出发都能访问到整个链表

  C.在进行插入、删除运算时,能更好的保证链表不断开

  D.已知某个结点的位置后,能够容易的找到它的直接前件

  正确答案:B

  2). 下述关于数据库系统的叙述中,正确的是( )。

  A.数据库系统减少了数据冗余

  B.数据库系统避免了一切冗余

  C.数据库系统中数据的一致性是指数据类型一致

  D.数据库系统比文件系统能管理更多的数据

  正确答案:A

  答案解析:数据库系统会减少数据冗余,但不可能避免一切冗余。

  3). 设树T的度为4,其中度为1、2、3、4的结点个数分别为4、2、l、1。则T中的叶子结点的个数为( )。

  A.8

  B.7

  C.6

  D.5

  正确答案:A

  答案解析:将题中所述的树用图形表示,可得叶子结点数目。

  4). 数据库设计包括两个方面的设计内容,他们是( )。

  A.概念设计和逻辑设计

  B.模式设计和内模式设计

  C.内模式设计和物理设计

  D.结构特性设计和行为特性设计

  正确答案:A

  答案解析:数据库设计包括数据库概念设计和数据库逻辑设计两个方面的内容。

  5). 没函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应选择存储类别是( )。

  A.auto

  B.register

  C.static

  D.auto或register

  正确答案:C

  答案解析:未赋初值的静态局部变量,编译程序自给它赋初值0。所以选择C。

  6). 为了使模块尽可能独立,要求( )。

  A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强

  B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱

  C.模块的.内聚程度要尽量低,且各模块间的耦合程度要尽量弱

  D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强

  正确答案:B

  答案解析:耦合是指模块之间的关联程度,而内聚是指模块内部各部分的聚合程度。模块之间的关联程度越小,模块内部的聚合程度越高,越容易维护。在程序设计中应追求高内聚低耦合。

  7). 若函数中有定义语句″int k;″,则( )。

  A.系统将自动给k赋初值O

  B.这时k中的值无定义

  C.系统将自动给k赋初值-1

  D.这时k中无任何值

  正确答案:B

  答案解析:根据题目,若以这种方式定义变量k时,编译程序仅为k开辟存储单元,并未在存储单元中存放任何初始值,所以变量中的值无意义,称变量值″无定义″。所以正确答案为选项B。

  8). 下列对于软件测试的描述正确的是( )。

  A.软件测试的目的是证明程序是否正确

  B.软件测试的目的是使程序运行结果正确

  C.软件测试的目的是尽可能地多发现程序中的错误

  D.软件测试的目的是使程序符合结构化原则

  正确答案:C

  答案解析:软件测试是为了尽可能多地发现程序中的错误,尤其是发现至今尚未发现的错误。

  9). 下列枚举类型的定义中,包含枚举值3的是( )。

  A.enum test{ RED,YELLOW,BLUE,BLACK};

  B.enum test{ RED,YELLOW= 4,BLUE,BLACK};

  C.enum test{ RED= -1,YELLOW,BLUE,BLACK};

  D.enum test{ RED,YELI,OW=6 ,BLUE,BLACK};

  正确答案:A

  答案解析:本题主要考查枚举类型的定义,其中几个枚举值全部未赋常量值时,它们自左至右分别与整数0,1,…,n-l对应。由此可判断本题答案。

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

  A.jsj-ej-0130.jpg

  B.jsj-ej-0131.jpg

  C.jsj-ej-0132.jpg

  D.jsj-ej-0133.jpg

  正确答案:D

  答案解析:逻辑运算符″II″表示或的意思。

  11). 下列关于C++函数的说明中,正确的是( )。

  A.内联函数就是定义在另一个函数体内部的函数

  B.函数体的最后一条语句必须是return语句

  C.标准C++要求在调用一个函数之前,必须先声明其原型

  D.编译器会根据函数的返回值数型和参数表来区分函数的不同重载形式

  正确答案:C

  答案解析:内联函数不是定义在另一个函数体内部的函数,而是将lnllne放在函数定义中函数类型之前;函数体的最后一条语句可以是任意的语句;编译器不会根据函数返回值的类型来区分重载形式,选项D错误。标准C++要求在调用一个函数之前,必须先声明其原型。

  12). 已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为

  A.GEDHFBCA

  B.DGEBHFCA

  C.ABCDEFGH

  D.ACBFEDHG

  正确答案:B

  计算机二级考试C语言练习题及答案 4

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

  A)顺序结构

  B)GOTO跳转

  C)选择(分支)结构

  D)重复(循环)结构

  答案:B

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

  A)-369

  B)369

  C)0.369

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

  答案:B

  3.软件生命周期是指( )。

  A)软件产品从提出、实现、使用维护到停止使用退役的过程

  B)软件从需求分析、设计、实现到测试完成的过程

  C)软件的开发过程

  D)软件的运行维护过程

  答案:A

  4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。

  A)学生成绩管理系统

  B)C语言编译程序

  C)UNIX操作系统

  D)数据库管理系统

  答案:A

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

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

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

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

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

  答案:A

  6.软件生命周期中的活动不包括( )。

  A)市场调研

  B)需求分析

  C)软件测试

  D)软件维护

  答案:A

  7.程序调试的任务是( )。

  A)设计测试用例

  B)验证程序的正确性

  C)发现程序中的错误

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

  答案:D

  8.下列关于数据库设计的叙述中,正确的`是( )。

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

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

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

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

  答案:A

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

  A)3

  B)6

  C)8

  D)12

  答案:D

  10.对长度为n的线性表作快速排序,在最坏情况下,比较次数为( )。

  A)n

  B)n-1

  C)n(n-1)

  D)n(n-1)/2

  答案:D

  11.结构化程序设计的基本原则不包括( )。

  A)多态性

  B)自顶向下

  C)模块化

  D)逐步求精

  答案:A

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

  A)一致性

  B)分类性

  C)多态性

  D)标识唯一性

  答案:A

  13.下列选项中不属于结构化程序设计原则的是( )。

  A)自顶向下

  B)可封装

  C)模块化

  D)逐步求精

  答案:B

  14.数据库管理系统是( )。

  A)操作系统的一部分

  B)在操作系统支持下的系统软件

  C)一种编译系统

  D)一种操作系统

  答案:B

  15.面向对象方法中,继承是指( )。

  A)一组对象所具有的相似性质

  B)一个对象具有另一个对象的性质

  C)各对象之间的共同性质

  D)类之间共享属性和操作的机制

  答案:D

  计算机二级考试C语言练习题及答案 5

  综合应用题

  使用VC++6.0打开考生文件夹下的源程序文件3.cpp,其中定义了用于表示个人基本信息的类PInfo,但类PInfo的定义并不完整。请按要求完成下列操作,将类Pin-fo的定义补充完成:

  (1)定义私有数据成员bloodType用于表示血型,血型为char型的数据。请在注释1之后添加适当的语句。

  (2)完成构造函数的定义,要求具有默认值,默认值为

  身高175,体重70,血型A。请在注释2之后添加适当的语句。

  (3)完成类PInfo外成员函数SetInfo的定义。请在注

  释3之后添加适当的语句。

  (4)在主函数main中调用成员函数Setlnfo,把对象d2的3个私有数据成员分别设定为身高170,体重64,血型B。

  请在注释4之后添加适当的语句。

  注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。

  试题程序:

  #include

  classPlnfo

  {

  private:

  intheight;

  intweight;

  //********1********

  public:

  //********2********

  :height(ht),weight(wt),bloodType(bt){};

  Plnfo(Plnfo&h1):height(h1.height),

  weight(h1.weight),bloodType(h1.bloodType){}

  intGetHeight()

  {

  returnheight;

  }

  intGetWeight()

  {

  returnweight;

  }

  intGetBloodType()

  {

  returnbloodType;

  }

  voidSetlnfo(intht,intwt,charbt);

  voidDisplay();

  };

  //********3********

  {

  height=ht;

  weight=wt;

  bloodType=bt;

  }

  voidPlnfo:Display()

  {

  cout<<"Humanlnf0:";

  cout<

  Type"<

  }

  voidmain()

  {

  PInfoh1(169,61,’A’);

  Plnfoh2;

  Plnfoh3(h1);

  Plnfoh4(h2);

  //********4********

  h1.Display();

  h2.Display();

  h3.Display():

  h4.Display();

  }

  答案解析:

  (1)应添加“charbloodType;”。

  (2)应添加“Plnfo(intht=175,intwt=70,charbt=’A’)”。

  (3)应添加“voidPlnf0:Setlnfo(intht,intwt,charbt)”。

  (4)应添加“h2.SetInfo(170,64,’B’);”。

  【解析】本题第1处定义私有数据成员为chat:型的bloodType,故第1处应添加“charbloodType;”。构造Plnfo()完成3个成员的初始化,并且带有默认值参数,默认值为身高175,体重70,血型A,由函数体语句可知参数名分别为ht、wt和bt,因此第2处应添加“Pinto(intht=175,intwt=70,charbt=’A’)”。第3处的'语句在类外完成成员函数Setlnfo的定义,在类外定义成员函数的格式为“(返回值类型><类名>:<成员函数)(<参数表>)”,故第3处应添加“voidPlnfo:Setlnfo(intht,intWt,charbt)”。调用函数Setlnfo需要3个参数,程序要求把对象d2的3个私有数据成员分别设定为身高170,体重64,血型为B,即把这3个值传入函数Setlnfo,因此第4处应添加“h2.Setlnfo(170,64,’B’);”。

  计算机二级考试C语言练习题及答案 6

  单选题

  1). 如果进栈序列为e1、e2、e3、e4,则可能的出栈序列是( )。

  A.e3、e1、e4、e2

  B.e2、e4、e3、el1

  C.e3、e4、e1、e2

  D.任意顺序

  正确答案:B

  答案解析:根据栈先进后出的特点可知el肯定是最后出栈的,因此正确答案为选项B。

  2). 对于重载的运算符>>,它是一个( )

  A.用于输入的友元函数

  B.用于输入的成员函数

  C.用于输出的友元函数

  D.用于输出的成员函数

  正确答案:A

  3). NULL是指

  A.0

  B.空格

  C.未知的值或无任何值

  D.空字符串

  正确答案:C

  答案解析:此题属于记忆性的题目,NULL是指未知的值或无任何值。

  4). 用链表表示线性表的优点是( )

  A.便于随机存取

  B.花费的存储空间较顺序存储少

  C.便于插入和删除操作

  D.数据元素的物理顺序与逻辑顺序相同

  正确答案:C

  5). 结构化程序设计主要强调的是( )

  A.程序的规模

  B.程序的效率

  C.程序设计语言的先进性

  D.程序易读性

  正确答案:D

  6). 下面关于C++流的.叙述中,正确的是( )。

  A.cin是一个输入流对象

  B.可以用ifstream定义一个输出流对象

  C.执行语句序列char* y=″PQMN″;cout<

  D.执行语句序列char x[80];cin.getline(x,80);时,若输入Happy new year,则x中的字符串是″Happy″

  正确答案:A

  答案解析:本题考查C++流的概念和I/()的格式化。cin是istream类的对象,即输入流对象。ifstream是输入文件流,类不能定义个输出流对象。getline函数的功能是允许从输入流中读取多个字符,并且允许指定输入终止,在读取完成后,从读取的内容中删除该终止字符,所以D选项中的语句序列后x中字符串应该是Happy new year。

  计算机二级考试C语言练习题及答案 7

  单选题

  1). 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是

  A.函数调用可以作为独立的语句存在

  B.函数调用可以作为一个函数的实参

  C.函数调用可以出现在表达式中

  D.函数调用可以作为一个函数的形参

  正确答案:D

  2). 下列是用户自定义标识符的是

  A._w1

  B.3_xy

  C.int

  D.LINE-3

  正确答案:A

  3). 以下叙述中不正确的是

  A.在不同的函数中可以使用相同的名字的变量

  B.函数中的形式参数是局部变量

  C.在一个函数内定义的变量只在本函数范围内有效

  D.在一个函数内的复合语句中定义的变量在本函数范围内有效

  正确答案:D

  4). 以下描述错误的是

  A.C程序中,函数可以直接或间接的调用自己

  B.函数调用时,函数名必须与所调用的函数名字完全一致

  C.函数说明语句中的'类型必须与函数返回值的类型一致

  D.实参数可以与形参个数不一致

  正确答案:D

  5). 下列说法中正确的是( )。

  A.C程序书写时,不区分大小写字母

  B.C程序书写时,一行只能写一个语句

  C. C程序书写时,一个语句可分成几行书写

  D. C程序书写时每行必须有行号

  正确答案:C

  答案解析:C语言严格区分大小写字母,如"A1"和"a1"被认为是两个不同的标识符,C程序的书写非常灵活,既可以一行多句,又可以一句多行,且每行不加行号。

  6). 已知:char a[20]= "abc",b[20]= "defghi";则执行下列语句后的输出结果为printf("%d",strlen(strcpy(a,b)));

  A.11

  B.6

  C.5

  D.以上答案都不正确

  正确答案:B

【计算机二级考试C语言练习题及答案】相关文章:

计算机二级考试《C语言》强化练习题及答案09-21

2016计算机二级考试C语言练习题及答案07-08

计算机二级《C语言》练习题及答案11-27

计算机二级C语言练习题及答案09-20

计算机二级C语言练习题及答案201707-26

计算机二级C语言考前练习题及答案10-27

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

2017计算机二级C语言精选练习题及答案09-20

计算机二级C语言章节练习题及答案11-27

2016计算机二级《C语言》练习题及答案10-02