C 复习题,类
- 格式:doc
- 大小:104.50 KB
- 文档页数:11
C语言期末考试复习题及答案一、选择题:下列各题A)、B)、C)、D)四个选项中只有一个是正确的,请将正确的选项涂写在答案纸上。
答在试卷上不得分。
(1)C语言规定:在一个源程序中,main函数的位置。
A)必须在最后B)必须在系统调用的库函数的后面。
C)必须在最开始。
D)可以任意(2) C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符。
A)必须为字母或下划线。
B)必须为下划线。
C)必须为字母D)可以是字母、数字和下划线中的任一种字符。
(3)下面四个选项中,均是正确的八进制数或十六进制数的选项是。
A)-10 0x8f -011 B) 010 -0x11 0xf1C) 0abc -017 0xc D) 0a12 -0x123 -0xa(4) C语言中int型数据在内存中占两个字节,则unsegned int取值范围是。
A)0 ~ 65535 B)0 ~ 32767C)-32767 ~ 32768 D)-32768 ~ 327687(5) 若有定义:int a = 7; floa x = 2.5 , y = 4.7 ;则表达式x + a % 3 *(int) (x + y)% 2/4 的值是。
A) 2.750000 B) 0.00000 C) 3.500000 D) 2.500000(6)已知ch是字符型变量,下面不正确的赋值语句是。
A)ch = 5 + 9 ; B) ch= ' a + b '; C) ch = ' \ 0 '; D) ch= '7' + '6' ;(7) 设x , y和z是int型变量,且x = 3, y = 4 , z = 5 则下面表达式中值为0的是。
A)!((x < y )&&!z || 1) B) ' x ' && ' y ' C) x || y+z && y - z D)x <= y(8)设有程序段int k = 10 ;while ( k = 0 ) k = k - 1 ;以下描述正确的是。
大学C语言复习题附答案(总21页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--判断题1.运算器是完成算术和逻辑操作的处理部件,通常称为CPU。
×2.通常硬盘安装在主机箱内,因此它属于主存储器。
×3.指令与数据在计算机内是以ASCII码进行存储的。
×4.操作系统是合理地组织计算机工作流程、有效地管理系统资源、方便用户使用的程序集合。
√5.用计算机机器语言编写的程序可以由计算机直接执行,用高级语言编写的程序必须经过编译才能执行。
√6.计算机的所有计算都是在内存中进行的。
×7.字长是指计算机能直接处理的二进制信息的位数。
√8.计算机区别于其他计算工具的本质特点是能存储数据和程序。
√9.系统软件就是市场上买来的软件,应用软件就是自己编写的软件。
×10.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、小写英文字母、大写英文字母。
×11.多台计算机相连,就形成了一个网络系统。
×12.在Internet网上,IP地址、E-mail地址都是唯一的。
√13.不同类型的变量在内存中占用存储空间的大小都是一样的。
×14.表示数学式3<x<5的C表达式也是3<x<5。
×15.设某字符的ASCII码十进制值为72,则其十六进制值为48。
√16.结构化程序语言的三种基本结构是顺序、选择和循环。
√17.‘\n’不是一个字符常量。
×18.与float型数据相比,double型数据的精度高,取值范围大。
√19.在C语言中,表达式(010+2)的值是10。
√20.do-while语句先执行循环体,后判断循环条件,所以循环体至少会执行一次。
√21.在C 语言中,常量和变量都有数据类型。
√22.C 语言的运算符只有单目运算符和双目运算符两种。
×23.若变量已正确定义,表达式 x + y = z符合C语言语法。
数据类型、运算符和表达式复习题一.选择题1. 以下不合法的用户标识符是:( )a) f2_G3 b) If c) 4d d) _82. 以下选项中合法的用户标识符是:()a) long b) _2Test c) 3Dmax d) A。
dat3. 以下可用作用户标识符的是:()a) 12_a b) signed c) t-o d) _if4。
以下不是关键字的标识符是:( )a) continue b) char c) If d) default5. C语言提供的合法的关键字是:( )a) swicth b) cher c) Case d) void6. 以下选项中不合法的int整型常数是()a) 32768 b) —56 c) 03 d) 0xAF 7。
以下合法的长整型常量是()a) 2L b) 49627 c) 34566666 d) 213&8. 以下正确的实型常量是( )a) 1.2E b) 。
579899 c) 1.2e0.6 d) 8 9。
以下选项中合法的实型常数是()a) 5E2。
0 b) E—3 c) 。
2E0 d) 1。
3E 10。
以下合法的八进制数是()a) 0135 b) 068 c) 013。
54 d) o711。
以下合法的十六进制数是( )a) 0x b) 0x4de c) 0x1h d) ox7712. 以下选项中非法的数值常量是( )a) 019 b) 0L c) 0xff d) 1e113。
若变量已正确定义,以下合法的赋值表达式是()a) a=1/b=2 b) ++(a+b)c) a=a/(b=5) d) y=int(a)+b14。
若变量已正确定义,以下非法的表达式是()a) a/=b+c b) a%(4。
0)c) a=1/2*(x=y=20,x*3) d) a=b=c15. 设x为int类型,其值为11,则表达式(x++*1/3)的值是:a) 3 b) 4 c) 11 d) 1216.设a,b均为double型,且a=5。
一、C语言概述练习题选择1.一个C程序的执行是从。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。
A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。
A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe 文件7.以下叙述正确的是。
A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。
C语言复习题及参考答案一、单项选择1、以下叙述正确的是:__B__。
A)C语言的源程序不必通过编译就可以直接运行。
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令。
C)C语言源程序经编译形成的二进制代码可以直接运行。
D)C语言中的函数不可以单独进行编译。
2、以下4个用户定义标识符中,全部合法的一组是__A__。
A)_main enclude sin B)if –max turbo C)txt REAL 3COM D)int k_2 _001 3、以下不能定义为用户标识符的是_D__。
A)scanf B)Void C)_3com D)int4、C语言中用于结构化程序设计的3种基本结构是__A__。
A)顺序结构、选择结构、循环结构B)if、switch、breakC)for、while、do-whileD)if、for、continue5、为解决某一特定问题而设计的指令序列称为__C__。
A)文档B)语言C)程序D)系统6、用高级程序设计语言编写的程序称为__C__。
A)目标程序B)可执行程序C)源程序D)伪代码7、能将高级语言编写的源程序转换成目标程序的是__B__。
A)编辑程序B)编译程序C)驱动程序D)链接程序8、下列叙述中,正确一条是__C__。
A)计算机语言中,只有机器语言属于低级语言。
B)高级语言源程序可以被计算机直接执行。
C)C语言属于高级语言。
D)机器语言是所用机器无关的。
9、以下符合C语言语法的实型常量是__C__。
A)1.2E0.5B)3.14159E C).5E-3D)E1510、下面叙述正确的是__A___。
A)C程序中注释部分可以出现在程序中任何合适的地方。
B)花括号“{”和“}”只能作为函数体的定界符。
C)构成C程序的基本单位是函数,所有函数名都可以由用户命名。
D)分号是C语句之间的分隔符,不是语句的一部分。
11、设有以下定义:int a=0; double b=1.25; char c=’A’;#define d 2则下面语句中,错误是__D__。
一、单项选择题1.有以下类的说明,请指出错误的地方A_。
class CSample{int a=2. 5;(A)Csample();(B)public:CSample(int val);(C)-CSample();(D)};分析:类的数据成员不能直接赋初值。
2.在C+十中,可以把具有相同内部存储结构和相同操作的对象看成属于同一类。
在指定一个类后,往往把属于这个类的对象称为类的①。
从语言角度来说,类是一种数据类型,而②是具有这种类型的变量。
A.实例B.实物C.特征D.对象答:①A②D3.有关类的说法不正确的是。
A.类是一种用户自定义的数据类型B.只有类中的成员函数才能存取类中的私有数据C.在类中,如果不作特别说明,所有的数据均为私有类型D.在类中,如果不作特别说明,所有的成员函数均为公有类型答:D4.有关类和对象的说法下列不正确的有。
A.对象是类的一个实例B.任何一个对象只能属于一个具体的类C.一个类只能有一个对象D.类与对象的关系和数据类型和变量的关系相似答:C5.有关构造函数的说法不正确的是。
A.构造函数名字和类的名字一样B.构造函数在说明类变量时自动执行C.构造函数无任何函数类型D.构造函数有且只有一个答:D6.有关析构函数的说法不正确的是。
A.析构函数有且只有一个B.析构函数无任何函数类型C.析构函数和构造。
数一样可以有形参D.析构函数的作用是在对象被撤消时收回先前分配的内存空间答:C分析:构造函数可以有形参,但析构函数不能有形参。
7.在类的定义体外定义成员函数时,需要在函数名前加上(1) ,而在域外使用成员函数时,需要在成员名外加上②的名字。
A类标记B.类域标记C.类对象D.域运算符答:①B②C8.若函数是在运行时被激活的,则该函数称为。
A内联函数B.非内联函数C.成员函数D.静态成员函数答:B9.在类的定义形式中,数据成员、成员函数和组成了类定义体。
A.成员的访问控制信息B.公有消息C.私有消息D.保护消息答:A10.的功能是对对象进行初始化。
C程序设计综合复习题目录一、单项选择题 (1)二、填空题 (8)三、程序分析题 (9)四、程序填充题 (16)五、编程题 (21)1.分支结构 (21)2.循环结构 (22)3.数组、函数、指针 (22)4.结构体 (22)一、单项选择题1.可以作为自定义标识符的是()A. 2x B • breakC. m-n D • m_n2.C语言的保留字(关键字)是()A. defineB. enumC. mainD. includc3 •错误的实型(浮点型)常数是()• •A. 0B. 0.E0C. 0.0D. 0E4-0.04.无条件转移语句的一般形式是:goto语句标号;,其中的语句标号可以是()A.整型数B.标识符C.保留字D.实型数5.正确的变量定义是()A. unsigned long d=1000;B. float ml=m2=10.0;C. char cl=,A,,c2=A; D・ double x=0.618,x=3.14;6.表达式的值为0的是()A. 5/5%5B. 5>2C・!4 D・ 0x7&77•设int a;侧表达式a=2,4,a+l的值是()A.lB.2C.3D.4&设int i; Hoat f; double d; long int c;,则表达式10+' a' +i*f-d/c 结果的类型是()A.doubleB.longC. intD. float9.设int a;,则语句for(a=0;a==0;a++);和语句for(a=0;a=0;a++);执行循环的次数分别是()A.0, 0B.0, 1C.l, 0D.l, 110.if(表达式)和while(表达式)中的“表达式”()A.只能是逻辑的B.只能是关系的C.只能是算术的D.以上三种都可以11.设int a=0,b=0,m=0,n=0;,则执行(m=a==b) II (n=b==a)后m 和n 的值分别是()A.0, 0B.0, 112. 设int a ?b;为使变量a 和b 分别获得数据10和20,则下列正确的是()A. scanf (”%d,%d”,&a,&b );输入数据:10, 20<回车〉B. scanf (”%d,%d”,&a,&b );输入数据:10 20<回车〉C. scanf (”%d,%d”,&a,&b );输入数据:D. scanf ("%d,%d", a,b );输入数据:13. 对于函数,正确的说法是()C •必须有返回语句 14•设 int a [3] [4];,则与元素 aD •必须有形式参数[0] [0]不等价的表达形式是()■D. 2设char s[10]=n abcde H ,t[ ]=M 12345°;,则s 和t 在内存中分配的字节数分别是() 6和5 B. 6和6设 int a=10,*p=&a;,则执行 printf(n %d\n M ,*p+a);的结果是( )A.可以嵌套定义 B •定义时有些函数名前可以带星号A.*aB.* *aD.*(*(a+O)+O)C.*a[0] 15.设 char si [ ] ={,a ,;b';c ,},s2 [ ] ="abc";,则数组 si 和 s2 的长度分别是()A.2, 3B.3, 3C.3, 4D.4, 416. A. 设int a=l,b=2;,则执行a=b+2,a++,a+b ;后a 和b 的值分别是()1和2 B. 3和2C. D. 5 和 217. 设 int a=2,b=3,c=4;,则表达式 a>b&&b<c||b 的值是A. -1B. 0a=10, b=20<冋车〉10, 20<回车〉C. 18. A. C. 设int a=2,b=3,x,y;,则能正确执行的语句是( )scanf(z , %d,%d" ,x ・y,x+y); B. printf(,/ printf(" ,a+b); D. scanf(" %d\n" ,a%b);%d,%d" ,x,y);19. A. C. 10和5 D. 10 和 6 20. A. 10 B. 20C. 30D. 4021. 自定义函数中形式参数的作用域是()A. 本文件B.本函数C. main 函数D.整个程序设 int b[ ][5]={1,2,3,4,567} — 则元素b[l][2]的值是()A. B.C. D.23. 对函数而言,叙述正确的是(A. 函数中只能有一个return 语句B.当函数的形参是数组时形实结合为值传递方式C.程序中只能有一个main函数D.无参函数的函数体内不能出现return语句24.执行下列程序段后输出的结果是()int x,y,z=l;for(x= 1 ,y=・ 1 ;x<y;x++,y・・)z++;printf(M%d\n M,z);A. 1B. 2C. 5D. 625.设static int a[3]={l,2,3};int*p[ ]={&a[0],&a[l],&a[2]};则与数组元素a[l]等价的是()A. *p[l] B・ p[l]C. *p+lD. p+126.设struct{char name[10];int age;}stu[2]={{ ” Tom" ,25},{〃Mary" ,26}}?p=stu;则执行语句printf(" %s%d\rT ,p->name,stu[ 1 ].age);后输出结果是( ) A. Tom25 B・ Tom26C. Mary25D. Mary2627.设typedef double DB;,则与DB u[5];的等价形式是()A. double db[5]; B・double DB[5];C. double u;D. double u[5];2&设char ch,str [4], *strp;,则正确的赋值语句是()A. ch=”MBA”;B. str=n MBA n;C. stip=”MBA“;D. *strp=”MBA”;29.设typedef char *POINT;POINT p,q [3] ,*r;,则p、q和1•分别是字符型的()A.变量、一维数组和指针变量B.变量、二维数组和指针变量C.指针变量、一维数组指针和二级指针变量D.指针变量、一维指针数组和二级指针变量30.若变量定义时未初始化,则其值不确定的是()■A.静态全局变量B.局部变量C.静态局部变量D.全局变量31.设struct{int a; char b;}Q,*p=&Q;,则够谡的表达式是()B. (*p).b D. p->a32.在某文件中,若全局变量与局部变量同名,贝!)()A.视为同一个变量 B.变量作用域不确定 C.不允许 D.允许 33•设宏定义#define P (x ) x/x则执行语句printf (u %d\n n ,P (4+6));后的输出结果是()A.lB.8.5D.11.534•屈于C 语言基本数据类型的是(B ) A.指针型 C.数组型 B.无符号整型D.结构型35.C 语言的长整型数值在计算机中占用的字节个数是() A.1 C.3 36.C 语言屮, A.1 C.4 B.2D.4”\x3d”在内存屮占用的字节数是(B )B.2D.537•设 int x;则执行 printf(n %x\n H ^x A x);的结果是()A.OB.1C. ffD.ffff38. 对于while 语句,错误的说法是()• • • A. 用条件控制循环体的执行次数B. 循环体至少要执行一次C. 循坏体有可能一次也不执行D. 循环体中可以包含若干条语句39. 设 int a=9,b=20;则 printf (,'%d,%d,%d\n ,,,a+b,a —的输出结果是() A 、2&9,19 B 、29,9,20 40.执行下列语句int a=8,b=7,c=6;if(a<b)if(b>c){a=c;c=b;} printf("%d,%d,%d\n",a,b,c);后输出的结果是()A.6, 7, 7B.6, 7, 8C.8, 7, 6D.8, 7, 841. 设 static char x[ ]=,,12345,,;char y[ ;那么()A 、 x 数组的长度等于y 数组的长度B 、 x 数组的长度大于y 数组的氏度C 、 x 数组的长度少于y 数组的长度D 、 x 数组与y 数组的存储区域相同42. 设 int i,x[3][3]={l,2,3,4,5,6,7,8,9};则下面语句 A. *p.bC ・ Q.a C.11 C 、28,10,19D 、30,10,20for(i=0;i<3;i++)printfC %d" ,x[i][2-i]); 的输出结果是()A.l 4 7B.l 5 9C.3 5 7D.3 6 943.设 intb[]={l,2,3,4}, y,*p=b;则执行语句y=*p++;之后,变量y 的值为()A.lB.2C.3D.444. 设inta,*p ;则语句p=&a;中的运算符“&”的含义是()A.位与运算B.逻辑与运算C.取指针内容D.取变量地址45. 若函数能被其它编译单位引用,那么函数定义时的存储类型应选用()A.autoB.staticC.externD.register46.下面函数定义有错误的是()• • • A ・fl(xl,x2) int xl,x2; int xl;int x2;{函数体} {函数体}47.C 语言屮计算a?正确的表达是( ){函数体} {函数体}C.fl(int x 1 ,x2)D.fl(int x 1 Jnt x2) A.a A 3 C.a**3 4&下列定义正确的是( A.anum t={a,b}x; C.anum {'+T —'}x; B.pow(a,3)D.power(a,3))B.enum t{l,2}x;um t{a ,b}x;49•设有定义:union u{int a[4];float b[3]};char c[16];}aa;则 printf(/, %d\n" ,sizeof(aa));的输出是()A.32B.16C.12D.850.在下列有关宏替换的叙述中,正确的说法是()A. 宏替换占用运行时间B. 宏名有类型C. 带参数的宏替换和函数等价D. 宏替换只是字符替换51•下列程序的运行结果是()# define A 5# define B A+lmain(){int a; a=B;printf(" %d\n,f a—);}A.6B.5C.4 D•出错52.设有如下定义:struct sk{ int a;float b;{data; int *p;若要使p指向data中的a成员,正确的赋值语句是()A. p=&a; B・ p=data.a; C・ p=&data.a; D. *p=data.a;53.下列四组选项中,均是合法转义字符的选项是()A. 'n‘\\’B. •Mil1‘\017‘C.‘\01& '\f '\x4b, C.'\\0' '\ior '\xaf54.设int x=0,*px;,则经过()后,*px的值为0。
C语言复习题及答案一.单项选择题1.下列选项中,不是转义字符集中的符号是( C )。
A \\B \’C 074D \02. 下列给出的符号串中,不属于C语言保留字的是( B )。
A switchB cherC caseD else3. 下列给出的符号串中,不能作为C语言标识符的是( C )。
A a_2B _2aC a.3D a_34. 下列属于C语言字符常量的是( C )。
A ‘abc’B “\n”C ‘a’D ‘a\0’5. 字符串”ABC”再内存占用的字节数为( B )。
A 3B 4C 6D 86. 设有宏定义“#define R 2+3”,则R*R的宏替换结果正确的是( B )。
A (2+3)*(2+3)B 2+3*2+3C 5*5D 5.0*5.07. 设整形变量I的值为3,则表达式i---i的值为( A )。
A 0B 1C 2D 38. 表达式“10!=9”的值为( D )。
A trueB 非零值C 0D 19. 设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值为( D )。
A 3B 0C 9D -1210. 下列选项中,正确的赋值表达式为( C )。
A a=7+b+c=a+7B a=7+b++=a+7C a=(7+b,b++,a+7)D a=7+b,c=a+711. 若有以下定义语句:char a;float c; double d; 则表达式a*b+d-c值的类型为( D )。
A floatB intC charD double12. 用十进制数表示表达式“12||012”的运算结果是( A )。
A 1B 0C 14D 1213. 下列一组运算符中,优先级别最高的运算符是( C )。
A <=B =C %D &&14. 设定“ char a=3,b=6,c;”,计算表达式c=(a^b)<<2后c的二进制值是( D )。
A 00011100B 00000111C 00000001D 0001010015. 设x,y,z,t 均为int类型,则执行下列语句串后,变量t的值为(C )。
C复习题(全部答案)一、C++基础、变量、常量部分试题:(一)单选题8.由C++语言编写的代码程序()A.可直接执行(.e某e才可以直接执行)B.是一个源程序C.经过编译即可执行(经过编译链接才可以执行)9.按照C++语言规定的用户标识符命名规则,不能出现在标识符中的是()A.大写字母10.下列选项中,不能用作标识符的是()A._1234_11.以下选项中合法的用户标识符是()A.long(关键字)12.以下不能定义为用户标识符的是()A.Main13.列定义变量的语句错误的是()A.int_int;14.在C++语言中,非法的字符常量是()A.‘\\t’29.以下程序的输出结果是()voidmain(){intk=11;cout<A.k=11,k=12,k=1141.B.k=11,k=13,k=13D.k=11,k=13,k=bC.k=11,k=013,k=0某bB.‘\\017’C.\D.‘\\某aa’B.doubleint_;C.charFor;D.floatUSA;B._0C._intD.izeof(运算符)B._2TetC.3Dma某D.A.datB._1_2C.int_2_D.2_intB.中划线C.数字字符D.下划线D.经过编译解释才能执行不属于C++语言关键字的是()。
A.intB.breakC.whileD.character42.是C++语言提供的合法关键字的是()。
A.FloatB.ignedC.integerD.Char43.下列说法中,错误的是()。
A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数(二)填空题1.一个C++源程序至少有并且只能有一个main(主)函数。
一、单项选择题1.有以下类的说明,请指出错误的地方A_。
class CSample{int a=2. 5;(A)Csample();(B)public:CSample(int val);(C)-CSample();(D)};分析:类的数据成员不能直接赋初值。
2.在C+十中,可以把具有相同内部存储结构和相同操作的对象看成属于同一类。
在指定一个类后,往往把属于这个类的对象称为类的①。
从语言角度来说,类是一种数据类型,而②是具有这种类型的变量。
A.实例B.实物C.特征D.对象答:①A②D3.有关类的说法不正确的是。
A.类是一种用户自定义的数据类型B.只有类中的成员函数才能存取类中的私有数据C.在类中,如果不作特别说明,所有的数据均为私有类型D.在类中,如果不作特别说明,所有的成员函数均为公有类型答:D4.有关类和对象的说法下列不正确的有。
A.对象是类的一个实例B.任何一个对象只能属于一个具体的类C.一个类只能有一个对象D.类与对象的关系和数据类型和变量的关系相似答:C5.有关构造函数的说法不正确的是。
A.构造函数名字和类的名字一样B.构造函数在说明类变量时自动执行C.构造函数无任何函数类型D.构造函数有且只有一个答:D6.有关析构函数的说法不正确的是。
A.析构函数有且只有一个B.析构函数无任何函数类型C.析构函数和构造。
数一样可以有形参D.析构函数的作用是在对象被撤消时收回先前分配的内存空间答:C分析:构造函数可以有形参,但析构函数不能有形参。
7.在类的定义体外定义成员函数时,需要在函数名前加上(1) ,而在域外使用成员函数时,需要在成员名外加上②的名字。
A类标记B.类域标记C.类对象D.域运算符答:①B②C8.若函数是在运行时被激活的,则该函数称为。
A内联函数B.非内联函数C.成员函数D.静态成员函数答:B9.在类的定义形式中,数据成员、成员函数和组成了类定义体。
A.成员的访问控制信息B.公有消息C.私有消息D.保护消息答:A10.的功能是对对象进行初始化。
A.析构函数B.数据成员*胸造函数D.静态成员函数答:C11.只能访问静态成员变量,静态成员函数和类以外的函数和数据不能访问类中的非静态成员变量。
A静态函数B.虚函数C.构造函数D.析构函数答:A12.若却queue是类,aQueue是它的一个对象,pl是类对象aQueue 的一个指针,那么类对象aQueue可以通过①来访问类的成员,类对象aQueue的指针p1 可以通过②来访问类的成员。
A.::B..C.;D.->答:①B②D13.局部变量可以隐藏全局变量,那么在有同名全局变量和局部变量的情形时,可以用。
提供对全局变量的访问。
A域运算符B类运算符C.重载D引用答:A14.在下列关键宇中,用以说明类中公有成员的是。
A.public B.private C.protected D.friend答:A15.下列的各类函数中,不是类的成员函数。
A构造函数B.析构函数C.友元函数D.拷贝初始化构造函数答:C16.不是构造函数的特征。
A.构造函数的函数名与类名相同B.构造函数可以重载C.构造函数可以设置默认参数D.构造函数必须指定类型说明答:D17.是析构函数的特征。
A.一个类中只能定义一个析构函数B.析构函数名与类名不同C.析构函数的定义只能在类体内D.析构函数可以有一个或多个参数答:A18.通常拷贝初始化构造函数的参数是、。
A.某个对象名B某个对象的成员名C.某个对象的引用名D.某个对象的指针名答:C19.关于成员函数特征的下述描述中,是错误的。
A.成员函数一定是内联函数B.成员函数可以重载C.成员函数可以设置参数的默认值D.成员函数可以是静态的答:A分析:成员函数可以是时联函数,也可以是非内联函数。
20.下述静态数据成员的特性中,是错误的。
A.说明静态数据成员时前边要加修饰符StatiCB.静态数据成员要在类体外进行初始化C.引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符D.静态数据成员不是所有对象所共用的答:D21.友元的作用。
A.提高程序的运用效率B.加强类的封装性C.实现数据的隐藏性D.增加成员函数的种类答:A22.类模板的使用实际上是将类模板实例化成一个具体的。
A.类B.对象C.函数D.模板类答:A23.一个允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数的返回值能取任意类型。
A.函数模板B.模板函数C.类模板D.模板类答:C24.模板是实现类属机制的一种l具,其功能非常强大,它既允许用户构造类属函数,即①;也允许用户构造类属类,即②。
A.模板函数B.函数模板C.模板类D.类模板答:①A②C二、填空题1.任何类中允许有三种类型的数据、、。
答:public private protected2.类中的数据和成员函数默认类型为。
答:私有3.结构中p玫据和成员函数默认类型为。
答:公有4.在类内部定义的数据不能被不属于该类的函数来存取,定义为的数据、函数则可以在类外部进行存取。
答:pritvale public5.是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。
答:构造函数6.一个类有个析构函数。
答:l7.静态数据成员在定义或说明时前面要加上关键字。
答:static8.成员函数的实现中不能直接引用类中说明的非静态成员。
答:静态9.定义在类内部的函数为类默认状态,在类外部每次调用该函数时,定义的函数代码会在调用函数位置展开。
答:内联函数10.以下程序运行的结果为、。
#Include”iostream.h”class CSample{private:int i;static int k;public:CSample();void Display();};CSample::CSample(){i=0;k++;}void Csample ::Display(){cout <<”i=”<<i<<”,k=”<<k <<endl;}int csample::k=0;void main(){CSample a,b;a.Display();b.Display();}答:i=0,k=2i=0,k=211.以下程序运行的结果为_。
#Include”lostream.h”class CSample{int i;public:CSample();void Display();~CSample();};CSarnple::CSample(){cout<<”Constructor”<<”,”;i=0;};void CSample::~Display(){cout<<”i=”<<i<<”,”;}CSample::~CSample(){cout<<”Destructor”<<endl;}void main(){CSample a;a.Display();}答:Constructor,i=0,Destructor12.以下程序运行的结果为_。
#include”stream.h”class CSample{int i;public:CSample();CSample(int val);void Display();~CSample();};CSample::CSample(){cout<<”Constructor”<<end1;}CSample::CSample(int val){cout<<”Constructor”<<end1;i=val;}void CSample::Display(){cout<<”i=”<<i<<end1;}CSample::~CSample(){cout<<”Destructor”<<endl;}void main(){CSample a,b(10);a.Display();b.Display();}答:Constructor1Constructor2i=0i=10DestructorDestructor13.以下程序运行的结果为_。
#include”iostream.h”C1ass CCouter{int value;public:CCounter();CCounter(int val);~CCounter();};class CExample{intvalue;public:CCounter car;CExample();cexample(int val);void DISplay();~CExample();};CCounter::CCounter(){cout<<”ccounter Constructorl”<<endl;value=o;}CCounter::CCounter(int val)毛cout<<”CCounter constructor2”<<endl;value=val;}CCounter::~CCounter(){cout<<”CCounter Destructor”<<endl;}CExarnple::CExample(){cout<<”CExample constructorl”<<endl;value=0;}CExample::CExample(int val){cout<<”CExamPle Constructorl”<<endl;value=val;}void CExample::Display(){cout<<”value=”<<value<<endl;}CExample::~CExample(){cout<<”CExample Destructor”<<endl;}void main(){CExample e(2);e.Display();}答:ccounter Constructor2CExample Constructor2Value=2;CExample DestmctorCCoullter Destructor14.以下程序运行的结果为。
#include<iostream.h>Class B{public:B(){};B(int i , int j);void Printb ();private:int a,b;};classA{public:A(){};A(int i,int j);void printa();private:B C;};A::A(int i,int D):c(i,j){};void A::printa(){c.printb();}B::B(int i,int j){a=i;b=j;}void B:: printb(){cout <<”a=”<<a<<”,b=”<<b <<endl;}void main(){A m(7’8);m.printa();}答:a=7,b=815.阅读以下程序后填空。