C++题库
- 格式:doc
- 大小:87.50 KB
- 文档页数:28
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语言考试题库及答案一、选择题1. 下列关于C语言中变量的描述,哪个是正确的?A. 变量必须先定义后使用B. 变量的类型不能改变C. 变量可以在任何地方定义D. 所有变量都必须初始化后才能使用答案:A2. C语言中,一个整数除以另一个整数,结果是什么类型的数据?A. 整数型B. 浮点型C. 长整型D. 无符号整数型答案:A3. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A4. 如果一个指针变量p指向一个int类型的变量,那么表达式*p++的值是什么?A. p指向的变量的当前值B. p指向的变量的下一个值C. p指向的变量的前一个值D. 无定义答案:A5. C语言中,以下哪个关键字用于定义一个函数?A. intB. floatC. voidD. char答案:C二、填空题1. C语言中,________关键字用于定义一个结构体。
答案:struct2. 在C语言中,________运算符用于计算两个整数的乘积。
答案:*3. 当需要频繁修改数组中的元素时,应使用________类型的数组。
答案:动态4. C语言中,________函数用于将字符串s复制到t所指向的内存空间。
答案:strcpy()5. 在C语言中,________关键字用于声明一个无限循环。
答案:for 或 while三、简答题1. 请简述C语言中数组和指针的关系。
答案:在C语言中,数组名可以作为指针使用。
数组的每个元素都可以通过数组名加上索引来访问。
指针变量可以指向数组的第一个元素,并通过指针算术来访问数组的其他元素。
数组的地址可以通过指针传递给函数,从而在函数内部访问数组。
2. 解释C语言中的“宏”是什么,并给出一个使用宏的例子。
答案:宏是C语言中的一个预处理指令,它允许定义一个可以被编译器替换的文本块。
宏通常用于定义常量、简化复杂的表达式或者创建可重复使用的代码块。
程序填空1.从键盘上输入两个复数的实部与虚部,求出并输出它们的和、积、商。
2.以下程序的功能如(图1)。
|x+1| x<0f= 2x+1 0≤x≤5sinx+5 x>53.输入三个整数x,y,z,请把这三个数由小到大输出。
4.统计读入的整数数据中大于零的整数个数和小于零的整数个数。
用输入零来结束输入,程序中用变量i统计大于零的整数个数,用变量j统计小于零的整数个数。
5.以每行5个数输出500以内能被7或17整除的偶数,并求出其和。
6.以下程序不借助任何中间变量把a、b的值进行交换。
7.输出斐波那契(Fibonacci)数列(1,1,2,3,5,8,13……)的前20项。
8.求 1-3+5-7+……-99+101 的值。
9.输出如下形式的乘法表。
1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=9……9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=8110.实现求解下面的式子的结果,请填空将程序补充完整。
s=1*2+2*3+3*4+…+20*21。
11.以下程序的功能是分别求出一批非零整数中的偶数、奇数的平均值,用零作为终止标记。
12.求任一整数x的各位数字之和。
13.以下程序的功能是求两个非负整数的最大公约数和最小公倍数。
14.以下程序的功能如(图1)。
15.算式:?2*7?=3848中缺少一个十位数和一个个位数。
编程求出使该算式成立时的这两个数,并输出正确的算式。
16.输出100到1000之间的各位数字之和能被15整除的所有数,输出时每10个一行。
17.下面的程序是求1!+3!+5!+……+n!的和.18.请编程序打印如下图形。
$$$$$$$$$$$$$$$19.打印出如下图案(菱形)*************************20.从键盘上输入20个元素的值存入一维数组m中,然后将下标为(0. 2. 4. 6. 8. 10……18)的元素值赋值给数组n,最后输出数组n的内容。
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语⾔题库(带详解答案)⼀单项选择题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语言期末考试题库大题及详解答案一、简答题1. 请简述C语言的基本数据类型及其特点。
答案:C语言的基本数据类型包括整型(int)、浮点型(float和double)、字符型(char)和枚举型(enum)。
整型用于存储整数,浮点型用于存储小数,字符型用于存储单个字符,枚举型用于定义一组命名的常量。
每种数据类型都有其特定的取值范围和占用内存大小。
2. 请解释C语言中的数组和指针的区别。
答案:数组是一种数据结构,用于存储固定数量的相同类型元素,可以通过下标访问元素。
指针是一个变量,它存储另一个变量的内存地址。
数组名可以作为指向数组第一个元素的指针使用,但数组本身是一个固定大小的内存块,而指针可以被赋值为不同的地址,具有动态性。
二、编程题1. 编写一个C语言程序,实现输入三个整数,找出其中的最大值并输出。
答案:```c#include <stdio.h>int main() {int num1, num2, num3, max;printf("请输入三个整数:");scanf("%d %d %d", &num1, &num2, &num3);max = (num1 > num2) ? ((num1 > num3) ? num1 : num3) : ((num2 > num3) ? num2 : num3);printf("最大值是:%d\n", max);return 0;}```2. 编写一个C语言程序,实现字符串的反转。
答案:```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("请输入一个字符串:");fgets(str, sizeof(str), stdin); // 使用fgets以包含空格int len = strlen(str) - 1; // 减去换行符长度for (int i = len; i >= 0; --i) {printf("%c", str[i]);}printf("\n");return 0;}```三、综合题1. 请编写一个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单选计算机的应用原则上分为____两大类。
C语言试题库(完整版)C语言试题库一、单项选择第一章 C语言概述1) 一个C程序的执行是从本程序的MAIN函数开始,到MAIN函数结束。
2) 以下叙述正确的是:一个C源程序可由一个或多个函数组成。
3) C语言规定,在一个源程序中,MAIN主函数的位置可以在任意位置。
4) 一个C程序是由函数组成。
5) 以下叙述不正确的是:在C程序中,注释说明只能位于一条语句的后面。
第二章数据类型、运算符与表达式1) 若x。
i。
j。
k都是int型变量,则计算下面表达式后,x的值为x=52.2) 下列四组选项中,均不是C语言键字的选项是:define。
IF。
type。
3) 下面四个选项中,均是不合法的用户标识符的选项是:1a0.b-a。
XXX。
4) 若有代数式3ae/bc,则正确的C语言表达式是:3*a*e/b*c。
5) 已知各变量的类型说明如下:int k。
a。
b。
unsigned long w=5.double x=1.42.则以下不符合C语言语法的表达式是:x%(-3)。
第三章简单C程序设计C语言试题库一、单项选择第一章 C语言概述1.一个C程序的执行是从本程序的MAIN函数开始,到MAIN函数结束。
2.以下叙述正确的是:一个C源程序可由一个或多个函数组成。
3.C语言规定,在一个源程序中,MAIN主函数的位置可以在任意位置。
4.一个C程序是由函数组成。
5.以下叙述不正确的是:在C程序中,注释说明只能位于一条语句的后面。
第二章数据类型、运算符与表达式1.若x。
i。
j。
k都是int型变量,则计算下面表达式后,x的值为x=52.2.下列四组选项中,均不是C语言关键字的选项是:define。
IF。
type。
3.下面四个选项中,均是不合法的用户标识符的选项是:1a0.b-a。
XXX。
4.若有代数式3ae/bc,则正确的C语言表达式是:3*a*e/b*c。
5.已知各变量的类型说明如下:int k。
a。
b。
unsignedlong w=5.double x=1.42.则以下不符合C语言语法的表达式是:x%(-3)。
C++语言对C语言做了很多改进,C++语言相对于C语言的最根本变化是:A.增加一些新的运算符。
B.允许函数重载,并语序设置缺省参数。
C.规定函数说明符必须用原型。
选中D.引进了类和对象的概念。
Windows环境下,由 C++ 源程序文件编译而成的目标文件的扩展名是:选中A.objB.exeC.cppD.h下列关于 return 语句的叙述中,正确的是:A.任何函数的函数体中至少有一个 return 语句B.任何函数的函数体中最后一条语句必须是 return 语句选中C.如果函数的返回类型为 void,则其函数体中可以没有 return 语句D.如果函数的返回类型为 int,则其函数体中可以没有 return 语句下列关于C++函数的说明中,正确的是:A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是return语句选中C.标准C++要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式下列关于内联函数的叙述中,正确的是:A.内联函数就是在一个函数体内定义的函数B.内联函数必须通过关键字 inline 来定义选中C.在类体中定义的函数,默认是内联函数D.内联函数不需要 return 语句下列关于函数参数的叙述中,正确的是:A.在函数原型中不必声明形参类型B.在调用一个函数时,若函数中修改了形参变量的值,则对应的实参变量的值也被修改C.函数形参的生存期与整个程序的运行期相同选中D.函数的形参在函数被调用时获得初始值下列关于函数模板的表述中,正确的是:A.函数模板是一个实例函数B.使用函数模板定义的函数没有返回类型C.函数模板的虚拟类型参数就是函数参数选中D.通过使用不同的类型参数,可以从函数模板得到不同的实例函数下列关于函数的描述中,错误的是:A.函数可以没有返回值B.函数可以没有参数C.函数可以是一个类的成员选中D.函数不能被定义为模板下列关于运算符new的描述中,错误的是:A.new运算符可以用来创建动态对象B.new运算符用来创建堆对象时可进行初始化C.用new运算符创建的对象可用delete运算符释放选中D.创建对象时必须指定初始值下列函数原型声明中,错误的是:A.int function( int , int);B.int function( int = 3, int = 0);选中C.int function( int m = 3, int n);D.int function( int &m, int &n);下列有关内联函数的叙述中,正确的是:A.内联函数在调用时发生控制转移B.内联函数必须通过关键字inline来定义选中C.内联函数是通过编译器来实现的D.内联函数函数体的最后一条语句必须是return语句下列语句中错误的是:选中A.const int a;B.const int a = 10;C.const int *point = 0;D.const int *point = new int(10);下面哪个语言不是面向对象的语言?A.C#B.JAVAC.C++选中D.C下面有关重载函数的说法中正确的是:A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同选中C.重载函数必须有不同的形参列表D.重载函数名可以不同下面正确的函数原型为:A.f1( int x; int y );B.void f1( x, y );C.void f1( int x, y );选中D.void f1( int, int );为了提高函数调用的实际运行速度,可以将较简单的函数定义为:A.重载函数选中B.内联函数C.递归函数D.函数模板使用重载函数编程序的目的是:A.共享程序代码选中B.使用相同的函数名调用功能相似的函数C.提高程序的运行速度D.节省存储空间在下列原型所示的C++函数中,按"传值"方式传递参数的是:选中A.void f1(int x);B.void f2(int *x);C.void f3(const int *x);D.void f4(int &x);在语句"cin>>data;"中,cin 是:A.C++ 的关键字B.类名选中C.对象名D.函数名在面向对象方法中,不属于面向对象程序特征的是:选中A.一致性B.封装性C.继承性D.多态性已知int型变量 y 的初值是 5,但在执行语句"f(y);"后,y 的值被改变,因此该语句所调用函数的原型是:A.void f(int x);B.void f(int *x);C.void f(const int *x);选中D.void f(int &x);已知函数 func 的原型为int func(int,int);下列重载函数原型中错误的是:选中A.char func(int,int);B.bool func(int,int,bool);C.int func(int,char*);D.float func(int,int,int);已知函数f的原型是void f(int *a, long &b);,变量v1、v2的定义是:int v1; long v2; 下列调用语句中正确的是:A.f(v1, &v2);B.f(v1, v2);C.f(&v1, &v2);选中D.f(&v1, v2);有函数原型 void fun4( int & );,在下列选项中,正确的调用是:A.int a = 2.17; fun4( &a );B.int a = 15; fun4( a*3.14 );选中C.int b = 100; fun4( b );D.fun4( 256 );有如下函数定义:void func(int a, int& b) { a++; b++; }若执行代码段:int x = 0, y = 1; func(x, y);则变量x和y的值分别是:A.0和1B.1和1选中C.0和2D.1和2有如下定义:class Inner{public:void f1(){ cout<<"f1"; }friend void f2(){ cout<<"f2"; }};void f3(){ cout<<"f3"; }inline void f4(){ cout<<"f4"; }其中的内联函数包括:A.f1 和 f2B.f3和 f4C.f2 和 f3选中D.f1 和 f4有如下程序段: int i=1;int j=4; int main() { int i=8, j=i; cout <<i<<“,”<<::j<<endl; } 运行时的输出结果是:A.1,4B.8,1C.8,8选中D.8,4若有下面的函数调用: fun(a+b, 3, max(n-1, b)) 则fun的实参个数是:A.2选中B.3C.4D.5有如下类定义:class Cup{public:void SetPrice(double val) { price=val; }private:double price;};若有定义语句"Cup myCup;",为了调用SetPrice成员函数,下列选项中正确的是:A.Cup::SetPrice(5.8);B.Cup.SetPrice(5.8);C.myCup::SetPrice(5.8);选中D.myCup.SetPrice(5.8);有如下类声明:class SAMPLE{int n;public:SAMPLE(int i=0):n(i) { }void setValue(int n0);};下列关于setValue成员函数的定义中,正确的是:A.SAMPLE::setValue(int n0) { n=n0; }选中B.void SAMPLE::setValue(int n0) { n=n0; }C.void setValue(int n0) { n=n0; }D.setValue(int n0) { n=n0; }以下关键字不能用来声明类的访问权限的是:A.public选中B.staticC.protectedD.private下列关于类定义的说法中,正确的是:选中A.类定义中包括数据成员和函数成员的声明B.类成员的缺省访问权限是保护的C.数据成员必须被声明为私有的D.成员函数只能在类体外进行定义有如下类定义:class Cup{public:void SetPrice(double val);private:double price;};下列选项中正确的是,的定义SetPrice若要在类体外给出对成员函数SetPrice的定义,下列选项中正确的是:选中A.void Cup::SetPrice(double val) { price=val; }B.void Cup.SetPrice(double val) { price=val; }C.void SetPrice(double val) { Cup::price=val; }D.void SetPrice(double val) { Cup.price=val; }若 MyClass 是一个类名,且若 MyClass 是一个类名,且有如下语句序列MyClass c1,*c2;MyClass *c3=new MyClass;MyClass &c4=c1;上面的语句序列所定义的类对象的个数是:A.1选中B.2C.3D.4有如下类定义:class Cup{public:void SetPrice(double val=5.8);double GetPrice() { return price; }double GetPrice() const { return price; }private:double price;};void Cup::SetPrice(double val) { price=val; }下列关于类中成员函数的叙述中,错误的是:A.成员函数SetPrice不是内联函数B.成员函数SetPrice的形参val具有默认值C.成员函数GetPrice可以重载选中D.类中没有对成员函数GetPrice进行重载有如下类定义:class Pet{char name[30];public:Pet(char * n){ strcpy(name, n); }void bark(){ cout<<"Woof!"; }};且有如下变量定义:Pet my_dog("Weiwei"), &p=my_dog;则下列访问成员函数bark的表达式中,错误的是:选中A.p.bark()B.my_dog.bark()C.p->bark()D.(&p)->bark()由于常对象不能被更新,因此:选中A.通过常对象只能调用它的常成员函数B.通过常对象只能调用静态成员函数C.常对象的成员都是常成员D.通过常对象可以调用任何不改变对象值的成员函数有如下类定义:class Point{int xx, yy;public:Point() : xx(0), yy(0) { }Point(int x, int y =0) : xx(x), yy(y) { }};若执行语句:Point a(2), b[3], *c[4];则Point类的构造函数被调用的次数是:A.2次B.3次选中C.4次D.5次模板对类型的参数化提供了很好的支持,因此:A.类模板的主要作用是生成抽象类选中B.类模板实例化时,编译器将根据给出的模板实参生成一个类C.在类模板中的数据成员都具有同样类型D.类模板中的成员函数都没有返回值下列情况中,不会调用拷贝构造函数的是:A.用一个对象去初始化同一类的另一个新对象时选中B.将类的一个对象赋值给该类的另一个对象时C.函数的形参是类的对象,调用函数进行形参和实参结合时D.函数的返回值是类的对象,函数执行返回调用时有如下程序:#include <iostream>using namespace std;class MyClass {public:MyClass() { cout<<′A′; }MyClass(char c) { cout<<c; }~MyClass() { cout<<′B′; }};int main() {MyClass p1,*p2;p2=new MyClass(′X′);delete p2 ;return 0;}执行这个程序的输出结果是:A.ABXB.ABXBC.AXB选中D.AXBB下列符号中不属于C++关键字的是:A.friendspaceC.continue选中D.byte有如下程序:#include<iostream>#include<string>using namespace std;class MyBag{public:MyBag(string br,string cr):brand(br),color(cr) { ++count; }~MyBag() { --count; }static int GetCount() { return count; }private:string brand,color;static int count;};_____________________int main(){MyBag one("CityLife","Gray"),two("Micky","Red");cout<<MyBag::GetCount();return 0;}若程序运行时的输出结果为2,则横线处缺失的语句是:A.int count=0;B. static int count=0;选中C.int MyBag::count=0;D.static int MyBag::count=0;对于一个类定义,下列叙述中错误的是:A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数选中B.如果没有定义缺省的构造函数,编译器一定将生成一个缺省的构造函数C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数有如下头文件:int f1();static int f2();class MA {public:int f3();static int f4();};在所描述的函数中,具有隐含的this指针的是:A.f1B.f2选中C.f3D.f4下列关于类模板的模板参数的叙述中,错误的是:A.模板参数可以作为数据成员的类型B.模板参数可以作为成员函数的返回类型C.模板参数可以作为成员函数的参数类型选中D.模板参数不能作为成员函数的局部变量的类型下列语句中错误的是:选中A.const int a;B.const int a = 10;C.const int *point = 0;D.const int *point = new int(10);下列有关类成员的叙述中,正确的是:A.友元函数是类的成员函数选中B.类成员的默认访问权限是私有的C.类成员函数必须声明为公有的D.类的静态数据成员不能是常成员有如下类定义:class Point {private:static int how_many;};__________how_many=0;要初始化Point类的静态成员how_many,下画线处应填入的内容是:A. intB.static int选中C.int Point::D.static int Point::有如下类定义:class MyClass {int value;public:MyClass(int n): value (n) {}int getValue()const { return value; }};则类MyClass的构造函数的个数是:A.1个选中B.2个C.3个D.4个有如下类和对象的定义:class Constants {public:static double getPI() { return 3.1416; }};Constants constants;下列各组语句中,能输出3.1416的是:A.cout<<constants->getPI();和cout<<Constants::getPI();B.cout<<constants.getPI(); 和cout<<Constants.getPI();C.cout<<constants->getPI(); 和cout<<Constants->getPI();选中D.cout<<constants.getPI(); 和cout<<Constants::getPI();在C++ 中,编译系统自动为一个类生成默认构造函数的条件是:A.该类没有定义任何有参构造函数B.该类没有定义任何无参构造函数选中C.该类没有定义任何构造函数D.该类没有定义任何成员函数建立一个类对象时,系统自动调用:A.析构函数选中B.构造函数C.静态函数D.友元函数有如下类定义:class Box{public:Box(int h,int w,int l):width(w),length(l),height(h) { } private:int length,width,height;};Box 类中3个数据成员的初始化顺序为:A.length,height,width选中B.length,width,heightC.height,width,lenthD.width,length,height当一个类对象行将消亡时,系统自动调用:选中A.析构函数B.构造函数C.静态函数D.友元函数下列关于对象初始化的叙述中,正确的是:选中A.定义对象的时候不能对对象进行初始化B.定义对象之后可以显式地调用构造函数进行初始化C.定义对象时将自动调用构造函数进行初始化D.在一个类中必须显式地定义构造函数实现初始化有如下类定义和变量定义:class A{public:A() { data = 0; }~A() {}int GetData() const { return data; }void SetData(int n) { data = n; }private:int data;};const A a;A b;下列函数调用中错误的是:A.a.GetData();选中B.a.SetData(10);C.b.GetData();D.b.SetData(10);下列关于类的析构函数的叙述中,错误的是:A.定义析构函数时不能指定返回值B.析构函数的函数名就是类名前加上字符选中C.析构函数可以重载D.在一个类中如果没有定义析构函数,系统将自动生成一个析构函数有如下类定义:class Cup{public:_______________ //构造函数声明private:double price;};其中下划线处缺失的构造函数声明是:A.void Cup(double price);选中B.Cup(double Price);C.myCup(double price);D.static Cup(double price);有如下类定义:class Bag{public:Bag(); //①void SetSize(string s); //②string GetSize() const; //③friend void Display(Bag& b); //④private:string size;};在标注号码的4 个函数中,不具有隐含this指针的是:A.①B.②C.③选中D.④有如下函数原型:int func(int **a, int *b, int &c int d);其中可称为引用参数的参数变量是:A.aB.b选中C.cD.d下列关于this 指针的叙述中,正确的是:A.类的成员函数都有this 指针B.类的友元函数都有this 指针C.任何与类相关的函数都有this 指针选中D.类的非静态成员函数都有this 指针有如下类定义:class Cup{public:void SetPrice(double val) { price=val; }_______________ //常成员函数GetPrice 的声明private:double price;};下列函数声明中,能够作为横线处缺失的常成员函数GetPrice 的声明的是:A.const double GetPrice();B.double const GetPrice();选中C.double GetPrice() const;D.double GetPrice(const);p是指向ClassA类型对象的指针。