学堂在线C++语言程序设计基础答案「测试题」
测试题
第一章单元测试
问题:C++语言是
「答案:」面向对象的高级语言
问题:面向对象的程序设计方法的主要优势在于
「答案:」开发大型系统
问题:在C++中,实现封装性需借助于
「答案:」类
问题:在面向对象方法中,不属于”对象”基本特点的是
「答案:」一致性
问题:关于编程下列说法错误的是
「答案:」编程就是软件开发的全部工作
问题:下列说法错误的是
「答案:」解释程序的作用是验证程序运行结果是否与预期相符
问题:下列说法中正确的是
「答案:」编译器的主要任务是测试程序运行时的错误
问题:计算机最小的存储单位是bit
「答案:」对
问题:255(10)转换为二进制为____
「答案:」11111111
问题:0.101(2)转化为十进制为______
「答案:」0.625
问题:写出-56(10)的
「答案:」八位二进制原码:_00111000___
八位二进制补码:__11001000__
第二章单元测试
问题:以下字符串可以作为标识符的是(多选)
「答案:」cout
Define
_
问题:以下属于c++语言的特点是:(多选)
「答案:」支持面向对象程序设计
支持泛型程序设计
支持面向过程程序设计
问题:C风格字符串”C++”在内存中占用的字节数是()
「答案:」4
问题:符号常量在定义时一定要初始化()
「答案:」True
问题:以下哪个属于算术运算符
「答案:」%
问题:n=n+3也可以写成____
「答案:」n+=3请写出以下表达式的运算类型:
请填写以下答案之一(逗号、关系、逻辑、条件)
a<b:__关系__
a<b?1:0:__条件__
A=3*5,a*4:_逗号___
(a>=b)&&(x<=y):__逻辑__
问题:sizeof(short)的结果为____
「答案:」2
问题:3&5的结果为____
「答案:」1
问题:表达式的值为 a=0 || sizeof(int):
「答案:」true
第二章单元测试
问题:控制格式的标志位中,转换为十六进制形式的标志位是
「答案:」hex
问题:控制格式输入输出的操纵符中,设置域宽的是()
「答案:」setw()
问题:为了避免嵌套的 if … else 语句的二义性, C 语言规定 else 总是与 __ 组成配对关系。
「答案:」在其之前未配对的最近的 if
switch case语句中,case语句后的表达式可以是变量。__否__(填是或否)
问题:swich case语句中,case分支中的语句可以是多个语句且不需要大括号
「答案:」√
问题:while语句后的表达式在值为true的时候会执行语句。______(填是或否
「答案:」是
以下叙述正确的是:
用 do-while 语句构成的循环,在 while 后的表达 式为false时结束循环
问题:下列程序计算1+2+3+…+9,请补充代码()int sum = 0;for(int i = 1; i != 10; ___)sum += i;
「答案:」i+=1
i++
问题:以下程序能否实现求10以内所有正奇数之和int sum = 0;for (int i = 1; i != 10; i+=2)sum+=i;
「答案:」不可以
问题:enum Weekday{SUN=7,MOM,TUE,WED,THU,FRI,SAT};
「答案:」TUE的值为:__5__
第三章单元测试
void test()
{
return;
}
问题:单选题函数test定义如上,是否正确()
「答案:」是
question(int a)
{
return a;
}
问题:函数question定义如上,它缺失了()
「答案:」返回值类型
问题:已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则
「答案:」若FB定义在FA之后,则FB的原型必须出现在FA的定义之前
问题:判断题若函数定义在调用点之前,可以不另外声明,这句话是否正确()
「答案:」是
例3-2的程序中,如果运行时输入01101001,power()函数会执行__8__次?
例3-3的程序中的arctan()函数,如果执行arctan(1/5.0),那么函数中while循环的循环体最后一次被执行后,i的值是多少
填入符合题目要求的i的值(整数):__6__
在symm函数中,当输入参数n = 233时循环内部执行了__5__次
以下说法中,错误的一项是()「答案:」引用传递可以实现双向传递
#include
using namespace std;
void function2 (int n);
void function1 (int n) {
if(n<=0)
return;
function2 (n-2);
}
void function2 (int n){
if(n<=0)
return;
function1 (n-1);
}
int main(){
function1(5);
return 0;
}
问题:下列关于程序运行情况的描述中,正确的是
「答案:」function1运行2次,function2运行2次算斐波那契数列第n项的定义如下:
int fib (int n){
if (n==0)
return 1;
else if (n==1)
return 2;
else
return fib(n-1)+fib(n-2);
}
问题:算斐波那契数列第n项的定义如下:若执行函数调用表达式fib (2),函数fib被调用次数是
「答案:」3
写出函数调用 f(3,5)的返回值:
int f(int a,int b)
{
if(a<b)
return f((b-a),a);
else if(a ==b)
return 2*a;
else
return f(f(a/2,b),f(b,b%2));
}
__0.5__
函数comm在输入为 n=5,k=9 时的返回值为:__4__
当盘子个数为10时,hanoi函数一共被调用了__3__次。
问题:在()时为形参分配存储空间
「答案:」函数调用
问题:题目包含多个选项,但学生只能选择一个答案。可以作为双向传递的是()传递
「答案:」引用
问题:可以定义指向引用的指针.
「答案:」错误
问题:当需要编写含有可变参数的函数时,若参数类型不同,可选择使用标准库中的initializer_list类型
「答案:」错
问题:要求通过函数实现一种不太复杂的功能,并且要加快执行速度,则选用
「答案:」内联函数
问题:类内实现好的成员函数是内联函数,在类体外实现的函数不能是内联函数
「答案:」错误
问题:已知程序中有以下声明:int nonconst_var = 100;const int const_var1 = 2;const int const_var2 = nonconst_var;则下述代码中正确的是:
「答案:」constexpr int constexpr_var1 = 3 + const_var1 * 4;
问题:判断下面的函数定义中错误的是:
「答案:」float volume(float x,float y=10,float z) {return x*y*z;}
问题:例3-15中的getVolume函数,如果直接调用int a=getVolume();后,会有什么样的结果?
「答案:」编译报错
问题:函数int add(int a,int b);和int add(int c,int d);定义在同一个文件中,是否能编译通过.
「答案:」否
问题:两个重载函数可以有哪些地方不相同?
「答案:」参数个数
参数类型通过查阅系统函数完成下列程序,输入一个浮点数,输出其绝对值。本题答案fabs或者abs都算对
#include <_____>
#include <iostream>
using namespace std;
int main(void) {
float n;
cin >> n;
cout << fabs(n) << endl;
return 0;
}
__abs__
第四章单元测试
问题:抽象使得协同工作的开发人员可以更多地关注他人的代码功能而非代码实现
「答案:」√
问题:可以在类外使用成员访问运算符”.”访问私有变量或方法
「答案:」×
视频的例子中,如果先后调用myClock.setTime(8,30,30);myClock.setTime(10);myClock.showTime();程序的输出是什么(_8___:__30__:__30__)
问题:在C++中,编译系统自动为一个类生成缺省构造函数的条件是
「答案:」该类没有定义任何构造函数
问题:视频的例子中,如果将main函数中的Clock c(0,0,0);替换成Clock c;会有什么结果?
「答案:」编译报错
问题:#include<iostream>
using namespace std;
class Name{
char name[20];
public:
Name(){
strcpy (name,””); cout<<‘?’;
}
Name(char *fname){
strcpy (name, fname); cout<<‘?’;
}
};
int main(){
Name names[3] ={Name(“张三”),Name(“李四”)};
return 0;
}
运行此程序输出符号?的个数是
「答案:」3
问题:有如下程序:
#include <cstring>
#include <iostream>
using namespace std;
class MyString
{
public:
MyString(const char*s);
~MyString(){delete[]data;}
protected:
unsigned len;
char *data;
};
MyString::MyString(const char*s)
{
len=strlen(s);
data=new char[len+1];
strcpy(data,s);
}
int main()
{
MyString a(“C++ Programing”);
MyString b(a);
return 0;
}
在运行上面的程序时出错,出错的原因是
「答案:」没有定义实现深层复制(深拷贝)的拷贝函数
问题:已知类MyClass的定义如下:
class MyClass{
private:
int num;
public:
MyClass(int d):num(d){}
MyClass(const MyClass& original):num (original.num){}
friend void print(MyClass C){cout<<C.num; }
};
且有如下程序段:
MyClass c(5);
MyClass *p1;
p1=&c;
print(*p1);
print(c);
运行这个程序段的过程中,对类MyClass的复制构造函数的调用次数是