c题库

合集下载

c语言期末考试题库及详解答案

c语言期末考试题库及详解答案

c语言期末考试题库及详解答案C语言期末考试题库及详解答案一、选择题1. 下列哪个选项是C语言中正确的整型常量?A. 0.1234B. 0x12ABC. 0b1010D. 1e10答案:B2. C语言中,以下哪个关键字用于定义变量的存储类别?A. staticB. constC. typedefD. volatile答案:A3. 在C语言中,以下哪个运算符用于求两个数的余数?A. /B. %C.D. ++答案:B4. 下列哪个选项是C语言中正确的字符常量?A. 'A'B. "A"C. AD. 65答案:A5. 在C语言中,以下哪个函数用于计算两个数的最大值?A. max()B. min()C. pow()D. sqrt()答案:A二、填空题6. C语言中,用于定义数组的关键字是______。

答案:int7. C语言中,用于输入输出的库函数分别是______和______。

答案:scanf(); printf()8. C语言中,若要定义一个指针变量,需要使用关键字______。

答案:int*9. C语言中,用于定义函数的关键字是______。

答案:void 或其他数据类型10. C语言中,若要实现字符串的复制,可以使用库函数______。

答案:strcpy()三、简答题11. 简述C语言中结构体的定义方式。

答案:在C语言中,结构体是一种用户自定义的数据类型,它允许将多个不同类型的数据项组合成一个单一的类型。

结构体的定义方式如下:struct 结构体名 {数据类型成员名1;数据类型成员名2;...};12. 解释C语言中的递归函数。

答案:递归函数是一种函数自己调用自己的特殊函数。

递归函数通常用于解决可以被分解为相似子问题的问题。

递归函数需要有一个明确的终止条件,以防止无限递归。

四、编程题13. 编写一个C语言程序,实现求一个整数的阶乘。

答案:```c#include <stdio.h>long factorial(int n) {if (n <= 1) return 1;else return n * factorial(n - 1);}int main() {int num;printf("Enter a number: ");scanf("%d", &num);printf("Factorial of %d = %ld", num, factorial(num)); return 0;}```14. 编写一个C语言程序,实现字符串的反转。

c语言编程题库100题

c语言编程题库100题

c语言编程题库100题1. 计算两个整数的和编写一个C程序,接收两个整数作为输入并计算它们的和,并将结果输出。

2. 计算两个整数的差编写一个C程序,接收两个整数作为输入并计算它们的差,并将结果输出。

3. 计算两个整数的乘积编写一个C程序,接收两个整数作为输入并计算它们的乘积,并将结果输出。

4. 计算两个整数的商编写一个C程序,接收两个整数作为输入并计算它们的商,并将结果输出。

5. 判断一个整数是否为偶数编写一个C程序,接收一个整数作为输入并判断它是否为偶数,并将结果输出。

6. 判断一个整数是否为质数编写一个C程序,接收一个整数作为输入并判断它是否为质数(只能被1和自身整除的数),并将结果输出。

7. 计算一个整数的阶乘编写一个C程序,接收一个整数作为输入并计算它的阶乘,并将结果输出。

8. 计算一个整数的平方根编写一个C程序,接收一个整数作为输入并计算它的平方根,并将结果输出。

9. 判断一个字符串是否为回文字符串编写一个C程序,接收一个字符串作为输入并判断它是否为回文字符串(正向和反向读取都相同的字符串),并将结果输出。

10. 排序一个整数数组编写一个C程序,接收一个整数数组作为输入并对其进行排序,并将结果输出。

11. 求两个整数之间的最大公约数编写一个C程序,接收两个整数作为输入并计算它们的最大公约数,并将结果输出。

......(依此类推,共100道题)这是一个C语言编程题库,包含100道不同类型的题目。

你可以选择其中的题目进行练习和实践,通过解决这些问题来提升自己的C语言编程能力。

每道题目都有具体的描述和要求,你可以按照题目要求编写相应的代码,并运行测试。

如果遇到问题,可以参考相关的解法或向他人寻求帮助。

通过不断地练习和学习,你将逐渐掌握C语言的编程技巧和思维方式,提高自己在编程领域中的能力。

祝你编程愉快!。

C 题库

C 题库
29. 在C语言中,用关键字[<double>]定义双精度实型变量.
30. 在C语言中,用关键字[<char>]定义字符型变量。
31. 在Turbo C环境中用RUN命令运行一个C程序时,所运行的程序的后缀是[<.exe>]。
32. 在C语言中(以16位PC机为例),一个char型数据在内存中所占的字节数为[<1>].
printf("%d%c",a,b);
}
35. 若有定义:int a=4,b=5,c=6;接着顺序执行下列语句后,变量b中的值是[<1>]。
c=(a-=(b-5));
c=(a%3)+(b=1);
36. 复合语句在语法上被认为是[<一条语句>]。
37. 执行下列程序时,输入1234567<CR>,则输出结果是[<12 34>]。
87. 执行语句int i=2; int *p; p=&i;后,*p的值为[<2>]。
88. 设有char *a="ABCD",则printf("%c", *a)的输出是[<A>]。
89. 若d是已定义的双精度变量,再定义一个指向d的指针变量p的代码是[<double *p
= &d>]。
43. 以下程序段的输出结果是[<死循环>]
int k,n,m;
n=10;m=1;k=1;
while(k<=n) m*=2;
printf("%d\n",m);
44. 已有定义:char c='';int a=1,b;执行b!=c&&a;后b的值为[<0>]。

C语言考试题库及答案

C语言考试题库及答案

C语言考试题库及答案1. 以下不是C语言的特点的是( C )A、C语言简洁,紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言的移植性好2. 一个C程序是由()BA、一个主程序和若干个子程序组成B、一个或多个函数组成C、若干过程组成D、若干子程序组成3.以下描述正确的是( ) CA、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。

B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。

C、在do-while循环体中,不一定要有能使while后面表达式的值变成零(“假”)的操作。

D、do-while循环中,根据情况可以省略while。

4.以下对一维整形数组a的正确说明是( ) DA、int a(10);B、int n=10,a[n];C、int n;D、int a[10];5.以下对二维数组a的正确说明是( ) CA、inta[3][];B、float a(3,4);C、double a[1][4];D、float a(3)(4);6.数组名作为实参传给被调用的函数时,形参获得的是()CA、该数组第一个元素的值B、该数组所有元素的值C、该数组第一个元素的首地址D、该数组所有元素的首地址7. C程序的开始是从()AA、main()函数开始,直到main()函数结束B、第一个函数开始,直到最后一个函数结束C、第一个语句开始,直到最后一个语句结束D、main()函数开始,直到最后一个函数结束8.在C程序中,main()函数的位置()CA、必须作为第一个函数B、必须作为第二个函数C、可以任意D、必须放在它所调用的函数之后9. C编译程序是()CA、C语言的机器语言版本B、一组机器语言指令C、将C源程序编译成目标程序的程序D、是由自己编制的10.以下叙述中错误的是( )CA、C程序经过编译、连接之后形成一个真正可执行的二进制机器指令文件B、用C语言编写的程序称为源程序,它以ASCⅡ代码形式存放在文件中C、C语言中的每条可执行语句和非执行语句最终被转换成二进制的机器指令非执行的语句不转换:例如//和/**/是注释的意思D、C语言源程序经编译后生成后缀为.obj的目标程序1.以下不正确的C语言标识符是( )D字母,数字,下划线组成,但是不能以数字开头A、ABCB、abcC、a_bcD、ab.c12.一个C语言程序是由( ) BA、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成13.以下叙述错误的是( ) C算法可以没有输入输入,但是一定不能没有输出A、算法正确的程序最终一定会结束B、算法正确的程序可以有零个输入C、算法正确的程序可以有零个输出D、算法正确的程序对于相同的输入一定有个相同的结果14.设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+ i*f值的数据类型为( ) C强制类型转换A、intB、floatC、doubleD、不确定15.以下叙述中错误的是( )CA、结构化程序由顺序、分支、循环三种基本结构组成B、C语言是一种结构化程序设计语言C、使用三种基本结构构成的程序只能解决简单问题D、结构化程序设计提倡模块化的设计方法16.以下叙述中错误的是()CA、算法正确的程序最终一定会结束B、算法正确的程序可以有零个输入C、算法正确的程序可以有零个输出D、算法正确的程序对于相同的输入一定有相同的结果17.以下选项中关于程序模块化的叙述错误的是()BA、把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块B、可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序C、把程序分成若干相对独立的模块,可便于编码和调试D、可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序18. 关于C语言的符号常量,以下叙述中正确的是()CA、符号常量的名是标识符,必须大写B、符号常量的名是标识符,必须小写C、符号常量是指用一个符号名来代表一个常量D、符号常量的符号名必须是常量19.关于C语言的变量,以下叙述中错误的是()BA、所谓变量是指在程序运行过程中其值可以被改变的量B、变量所占的存储单元地址可以随时改变C、程序中用到的所有变量都必须先定义后使用D、由三条下划线构成的符号名是合法的变量名20.以下选项中合法的变量名是()CA、5aB、A%C、_10_D、sizeof21.在C语言中,char型数据在内存中的存储形式是( ) DA、补码B、反码C、源码D、ASCII码22.有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是( ) 。

C语言题库 含答案

C语言题库 含答案

cC语言程序的基本单位是__________ A) 程序行 B) 语句 C) 函数 D) 字符C C语言程序的三种基本结构是__________ A、顺序结构,选择结构,循环结构 B、递归结构,循环结构,转移结构 C、嵌套结构,递归结构,顺序结构 D、循环结构,转移结构,顺序结构AC语言规定,程序中各函数之间A) 既允许直接递归调用也允许间接递归调用 B) 不允许直接递归调用也不允许间接递归调用 C) 允许直接递归调用不允许间接递归调用 D) 不允许直接递归调用允许间接递归调用A C语言中可处理的文件类型是( )A) 文本文件和数据文件 B)文本文件和二进制文件 C) 数据文件和二进制文件 D)数据代码文件B C语言可执行程序的开始执行点是( ) A) 程序中第-条可执行语句 B) 程序中第-个函数 C) 程序中的main函数 D) 包含文件中的第-个函数C不是C语言提供的合法的数据类型关键字是 A)double B) short C) integer D) char C C语言中,运算对象必须是整型数的运算符是 A) % B) \ C) %和\ D) * *A C语言中函数返回值的类型是由( )决定。

A) return语句中的表达式类型 B) 调用函数的主调函数类型 C) 调用函数时临时 D) 定义函数时所指定的函数类型D C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为___________。

A .该数组的长度 B.该数组的元素个数 C. 该数组中各元素的值 D.该数组的首地址D C语言中数组下标的下限是___________ A、1 B、0 C、视具体情况 D、无固定下限B C语言中提供的合法关键字是__________ A、swith B、cher C、cese D、default D C语言中文件的存取方式是____________________。

A.顺序存取 B.随机存取 C.顺序存取、随机存取均可 D.顺序存取、随机存取均不可C C语言中最简单的数据类型包括A) 整型、实型、逻辑型 B) 整型、实型、字符型C) 整型、字符型、逻辑型 D) 整型、实型、逻辑型、字符型B sizeof(float)是( )A.-种函数调用B.-个不合法的表示形式C.-个整型表达式D.-个浮点表达式C x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是 A) input x,y,z; B) scanf("%d%d%d",&x,&y,&z);C) scanf("%d%d%d",x,y,z); D) read("%d%d%d",&x,&y,&z);B 表达式:10!=9的值是 A) true B) 非零值 C) 0 D) 1D 表示关系x<=y<=z的c语言表达式为A) (X<=Y)&&(Y<=Z) B) (X<=Y)AND(Y<=Z) C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z)A 程序片段:在TC20中, int i=65536; printf("%d\n",i);的输出结果是__________ A) 65536 B) 0 C) 有语法错误,无输出结果 D) -1B 当调用函数时,实参是-个数组名,则向函数传送的是__________ A.数组的长度 B.数组的首地址 C.数组每-个元素的地址 D.数组每个元素中的值B对嵌套子程序调用说法正确的是__________。

c语言c操作题库及详解答案

c语言c操作题库及详解答案

c语言c操作题库及详解答案C语言C操作题库及详解答案1. 请编写一个C程序,实现两个整数的加法运算,并输出结果。

答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数相加的结果是:%d\n", sum);return 0;}```2. 编写一个C程序,实现字符串的复制功能。

答案:```c#include <stdio.h>#include <string.h>int main() {char src[] = "Hello, World!";char dest[50];strcpy(dest, src);printf("复制后的字符串是:%s\n", dest);return 0;}```3. 请编写一个C程序,实现求一个整数的阶乘。

答案:```c#include <stdio.h>int factorial(int n) {if (n == 0)return 1;elsereturn n * factorial(n - 1);}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d的阶乘是:%d\n", num, factorial(num)); return 0;}```4. 编写一个C程序,实现判断一个数是否为素数。

答案:```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1)return 0;for (int i = 2; i <= sqrt(n); ++i) { if (n % i == 0)return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num))printf("%d是素数。

(完整版)C语言题库(带详解答案)

(完整版)C语言题库(带详解答案)

(完整版)C语⾔题库(带详解答案)⼀单项选择题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.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项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 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满⾜(1);选项C中的while 为关键字,不满⾜(3)9.C语⾔中的简单数据类型包括(D)。

C题库(全)

C题库(全)

知识点编号题型题干选项A 1-1单选____是中央处理器的简称CPU1-1单选"Intel® Core™ i7-3537U Processor (4M Cache, up to3.10 GHz)"中"i7-3537U"是指____CPU的型号1-1单选Intel® Core™ i7-3537U Processor (4M Cache, up to3.10 GHz)中"3.10 GHz"是指____CPU的型号1-1单选在微型计算机中,微处理器的主要功能是进行____逻辑运算1-1单选计算机硬件系统主要包括存储器、输入设备、输出设备和____中央处理器1-1单选多核CPU各内核之间通过____共享数据内存1-1单选运算器虽由许多部件组成,但核心部分是____.数据总线1-1单选CPU主要包括____.控制器1-1单选“冯•诺依曼计算机”的体系结构主要分为____五大组成外部存储器、内部存储器、CPU、显示、打印1-2单选下列____属于应用软件。

操作系统1-2单选计算机中的指令执行过程分为取出指令、____和执行指令三个阶段。

显示指令1-2单选一条计算机指令中规定其执行功能的部分称为____。

源地址码1-2单选下列描述中正确的是程序就是软件1-3单选计算机的应用领域可大致分为6个方面,下列选项中属于这几项的是____。

计算机辅助教学、专家系统、人工智能1-3单选CAI是____的缩写。

计算机辅助设计1-3单选CAM是____的缩写。

计算机辅助设计1-3单选在信息时代,计算机的应用非常广泛,主要有如下几大领域:科学计算、信息处理、过程控制、计算机辅助工程、家庭生活和军事应用1-3单选当前气象预报已广泛采用数值预报方法,这种预报方法会涉及计算机应用中的____。

科学计算和信息处理1-3单选计算机的应用原则上分为____两大类。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

假定 AB 引用是某个变量的别名,对引用的操作就是对被引用变量的操作。

?A. 对?B. 错假定 AB 为一个类,则执行 AB x; 语句时将自动调用该类的无参构造函数。

?A. 对?B. 错构造函数用来初始化类的新对象,构造函数与类同名,返回类型只能为void。

?A. 对?B. 错用new动态分配的内存是在堆中分配的,而不是在栈中分配的。

?A. 对?B. 错使用关键字class定义的类中缺省的访问权限是私有(private)的。

?A. 对?B. 错在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。

?A. 对?B. 错C++语言的标识符是不区分大小写的。

?A. 对?B. 错作用域运算符(::)只能用来限定成员函数所属的类。

?A. 对?B. 错声明对象时,类名前面不需要加class关键字。

?A. 对?B. 错C++程序一般应当含有main函数,它是C++程序执行的入口。

?A. 对?B. 错可以在类的构造函数中对静态数据成员进行初始化。

?A. 对?B. 错C++语言中,既允许单继承,又允许多继承。

?A. 对?B. 错派生类的继承方式有两种:公有继承和私有继承。

?A. 对?B. 错多继承情况下,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序。

?A. 对?B. 错类的私有成员只能被类中的成员函数访问,任何类以外的函数对它们的访问都是非法的。

?A. 对?B. 错构造函数和析构函数都不能重载。

?A. 对?B. 错在基类中被声明为虚函数的类的成员函数必须在每个派生类中显式声明为虚函数,才能具有多态的特征。

?A. 对?B. 错关于运算符重载,运算符函数的返回类型不能声明为基本数据类型。

?A. 对?B. 错将类的一个对象赋值给该类的另一个对象时,调用拷贝构造函数。

?A. 对?B. 错模板可以使程序对任何数据类型进行同样方式的处理。

?A. 对?B. 错1. 编译源文件后产生的文件是(??? )。

?A. 目标文件?B. 可执行文件?C. 源文件?D. 头文件2. 每个C++程序只能有一个(???)。

?A. 全局变量?B. 函数?C. 头文件?D. 主函数3. 使用内联函数的好处是(???)。

?A. 增加函数调用次数?B. 提高代码执行效率?C. 减少代码量,增强代码可读性?D. 隐藏内部实现4.下列不是函数重载所要求的条件是(???)。

?A. 函数名相同?B. 函数返回值类型不同?C. 参数类型不同?D. 参数个数不同5. 下列哪两个函数为重载函数(???)。

?A. void a1(), void a2()?B. intb(int x), float b(int x)?C. char c(double y), char c(int y, double z)?D. bool d(double y), bool d(double y, int x = 0)6. 在面对对象方法中,实现信息隐蔽依靠的是(???)。

?A. 对象的封装?B. 对象的继承?C. 对象的多态?D. 对象的分类7. 所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是(???)。

?A. 类?B. 对象?C. 函数体?D. 数据块8. 下列关于类定义的说法中,正确的是(???)。

?A. 在类里定义的函数为内联函数?B. 类成员的默认访问权限是保护的?C. 数据成员必须被声明为私有的?D. 成员函数只能在类体外进行定义9. 关于类和对象不正确的说法是(???)。

?A. 类是一种类型,它封装了数据和操作?B. 对象是类的实例?C. 一个类的对象只有一个?D. 一个对象必属于某个类10. 结构体中定义的成员默认的访问属性为(???)。

?A. public?B. private?C. friend?D. protected11.类中定义的成员默认的访问属性为(???)。

?A. public?B. private?C. friend?D. protected12. 有关构造函数的叙述不正确的是(???)。

?A. 构造函数名必须和类名一致?B. 构造函数在定义对象时自动执行?C. 构造函数无任何函数类型?D. 在一个类中构造函数有且仅有一个13. 下列关于析构函数的描述中,错误的是(???)。

?A. 析构函数可以重载?B. 析构函数由系统自动调用?C. 每个对象的析构函数只被调用一次?D. 每个类都有析构函数14. 通常拷贝构造函数的参数是(???)。

?A. 对象名?B. ?对象的成员名?C. 对象的引用名?D. 对象的指针名15. 在类外定义成员函数时,需要在函数名前加上(???)。

?A. 类名?B. 对象名?C. 作用域运算符?D. 类名和作用域运算符16. 在类定义中,为说明成员的访问权限,private, protected,public可以出现次数(???)。

?A. 次数没有具体限制?B. 每种至多一次?C. public?至少一次?D. 每种至少一次17. 关于静态数据成员的描述中错误的是(???)。

?A. 类的静态数据成员是该类所有对象所共享的?B. 类的静态数据成员在在该类每个对象中都保留一个备份?C. 类的静态数据成员必须进行初始化?D. 类的静态数据成员可以不通过对象来访问18. 若一个类的数据成员用 const 关键字修饰,则该数据成员(???)。

?A. 静态函数中可以对该成员赋值?B. 构造函数只能通过初始化列表对该成员初始化?C. 任何函数都不能使用该成员?D. 外部函数可以对该成员赋值19. 有两个类 X和Y,且 Y 有一个构造函数 Y::Y(X x); 那么以下语句:X a;Yb(a);不会调用下面的哪个函数(??? )。

?A. Y?的构造函数?Y(X x)?B. Y?的拷贝(复制)构造函数?C. ?X?的默认构造函数?D. X?的拷贝(复制)构造函数20. 已知类 A 的定义。

假设 x 为 A 的对象,则在类外访问 x 对象中数据成员a和b分别应采用(???)。

class A {private:??? int a;public:??? int getValue() {??????? return a;??? }??? int b;};?A. x::getValue(), x::b?B. x.a, x.b?C. x.a(), x.b()?D. x.getValue(), x.b21. 假设程序中先前已经定义了 A、B、C 三个类,他们的构造函数分别会输出A constructed、B constructed 和C constructed,那么又定义了类 D,并在 main 函数中定义了一个D 类的对象,部分代码如下:class D{public:??? D():a(), b(), c() { }private:??? A a;??? B b;??? C c;};intmain() {??? D d;??? return 0;}程序的输出结果为(??? )。

?A. A constructed B constructed C constructed?B. C constructed B constructed A constructed?C. 编译错误?D. 编译器决定22. 已知类 CA 中的某个成员是类 CB 的对象,若要把这两个类定义在同一个文件中,则(???)。

?A. CA?必须定义在?CB?之前?B. CB?必须定义在?CA?之前?C. 若?CA?定义在?CB?之后,则?CA?的声明必须出现在?CB?的定义之前?D. 若?CB?定义在?CA?之后,则?CB?的声明必须出现在?CA?的定义之前23. 在设计一个类的时候,如果希望允许一个不属于该类的函数访问该类的私有成员,应该使用哪个关键字(???)。

?A. public?B. private?C. friend?D. protected24. 关于友元函数的描述中,错误的是(???)。

?A. 友元函数是成员函数?B. 友元函数能访问类中私有成员?C. 友元函数破坏封装性?D. 友元函数声明在类体内25. 如果类 A 是类 B 的友元,则(???)。

?A. 类?A?的成员是类?B?的成员?B. 类?B?的成员是类?A?的成员?C. 类?A?的成员函数可以访问类?B?的私有成员?D. 类?B?是类?A?的友元26. 已知类 A 是类 B 的友元类,类 B 是类 C 的友元类,则(???)。

?A. 类?A?一定是类?C?的友元?B. 类?C?一定是类?A?的友元?C. 类?C?的成员函数可以访问类?B?的对象的任何成员?D. 类?A?的成员函数可以访问类?B?的对象的任何成员27. 已知Point类含有无参(默认)构造函数和有参构造函数,使用Point a[3] = { Point(1, 2), Point(3,4), Point() }; 时,调用了(???)次Point类的无参(默认)构造函数。

?A. 1?B. 2?C. 3?D. 428. 要定义一个引用变量p使之引用类MyClass的一个对象,正确的定义语句是(???)。

?A. MyClass p?=?MyClass;?B. MyClass p?=?new MyClass;?C. MyClass?&p?=?new MyClass;?D. MyClass a,?&p?=?a;29. 关于this指针的说法不正确的是(???)。

?A. 不能在程序中修改this指针?B. this指针可以给其他指针赋值,但不能修改this指针?C. 静态成员函数中没有this指针?D. this指针可以被赋值30. 关于C++的动态存储分配,下列说法正确的是(???)。

?A. new和delete是C++语言中专门用于动态内存分配和释放的函数?B. 动态分配的内存空间也可以被初始化?C. 当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete 释放内存空间?D. 当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new?31. 观察程序#include<iostream>?using namespace std;?int main() {????int *first, *second;????first = new int[5];????second = first;????????delete[] second; ? ?????delete[] first;????return 0;}?该程序是否正确,原因是什么??A. 正确,因为first和second都是独立的指针变量?B. 不正确,因为first和second是相关而非独立的指针变量?C. 正确,second会拷贝first的内容?D. 不正确,second和first指向相同的内容32. C++中,不能被派生类继承的有(???)。

相关文档
最新文档