大学MOOC C++程序设计(上海电力大学)1450334409 最新慕课完整章节测试答案
第1讲 C++语言概述
文章目录
- 第1讲 C++语言概述
- 第3讲 程序中数据的表示
- 第4讲 运算符与表达式
- 第5讲 顺序结构的程序设计
- 第6讲 选择结构的程序设计
- 第7讲 循环结构的程序设计
- 第9讲 函数的定义和使用
- 第10讲 函数的设计
- 第11讲 函数的调用
- 第12讲 作用域、生命期和程序的组织结构
- 第13讲 数组的定义和使用
- 第14讲 数组与函数
- 第15讲 字符串的处理
- 第17讲 指针的定义与使用
- 第18讲 指针与数组
- 第19讲 指针与函数
- 第20讲 动态分配内存
- 第21讲 自定义数据类型
- 第23讲 预处理命令
- 第25讲 类的定义
- 第26讲 对象的定义和使用
- 第27讲 构造函数
- 第28讲 默认构造函数和复制构造函数
- 第29讲 析构函数
- 第30讲 对象数组和对象指针
- 第31讲 类作用域、对象生命期、const限定
- 第32讲 静态成员和友元
- 第33讲 类的继承与派生
- 第34讲 派生类成员的访问
- 第35讲 派生类的构造和析构函数
- 第36讲 多重继承
- 第37讲 多态性
- 第38讲 虚函数
- 第39讲 运算符重载
- 第40讲 典型运算符的重载
- 第41讲 类模板
第1讲 了解计算机的基本工作原理
1、单选题:
以下都可用作计算机输入设备的是:
选项:
A: 键盘,鼠标,扫描仪,打印机
B: 键盘,数码相机,鼠标,绘图仪
C: 键盘,数码相机,扫描仪,绘图仪
D: 键盘,鼠标,扫描仪,数码相机
答案: 【 键盘,鼠标,扫描仪,数码相机】
2、单选题:
CPU中包含控制器和:
选项:
A: 运算器
B: 存储器
C: 输入设备
D: 输出设备
答案: 【 运算器】
3、单选题:
下列语言不属于高级语言中的是:
选项:
A: C语言
B: 机器语言
C: FORTRAN语言
D: C++语言
答案: 【 机器语言】
4、单选题:
正确的C++语言标识符是:
选项:
A: 3d_max
B: if
C: A&B
D: sum_2
答案: 【 sum_2】
5、单选题:
对C++语言和C语言的兼容性,描述正确的是:
选项:
A: C++兼容C
B: C++部分兼容C
C: C++不兼容C
D: C兼容C++
答案: 【 C++兼容C】
第3讲 程序中数据的表示
第3讲 掌握常量、变量的表示及基本数据类型
1、单选题:
类型修饰符unsigned不能修饰
选项:
A: char
B: int
C: long int
D: float
答案: 【 float】
2、单选题:
下列选项中,合法的整型常量的是:
选项:
A: 60
B: 01a
C: 986,012
D: 2e5
答案: 【 60】
3、单选题:
字符串”tv\whichn”的长度是:
选项:
A: 4
B: 3
C: 9
D: 字符串有非法字符,输出值不确定
答案: 【 3】
4、单选题:
下列不是C++语言的合法用户标识符的是:
选项:
A: a#b
B: _int
C: a_10
D: Pad
答案: 【 a#b】
5、单选题:
下列字符列中,可作为C++语言程序自定义标识符是:
选项:
A: switch
B: file
C: break
D: do
答案: 【 file】
第4讲 运算符与表达式
第4讲 掌握各种表达式的表示
1、单选题:
命题“10<m<15或m>20”的C++语言表达式是
选项:
A: ((m>10)&&(m<15)||(m>20))
B: ((m>20)&&(m<15)||(m>10))
C: (m>10)||((m<15)&&(m>20))
D: ((m>10)||(m<15)||(m>20))
答案: 【 ((m>10)&&(m<15)||(m>20))】
2、单选题:
设int a=3,b=4,c=5;表达式(a+b)>c&&b==c的值是:
选项:
A: 2
B: -1
C: 0
D: 1
答案: 【 0】
3、单选题:
若x是一个bool型变量,y是一个值为100的int型变量,则表达式 !x && y>0 的值为:
选项:
A: 为true
B: 为false
C: 与x的值相同
D: 与x的值相反
答案: 【 与x的值相反】
4、单选题:
设变量m,n,a,b,c,d均为0,执行(m = a==b)&&(n=c==d)后,m,n的值是:
选项:
A: 0,0
B: 0,1
C: 1,0
D: 1,1
答案: 【 1,1】
5、单选题:
以下非法的赋值表达式是:
选项:
A: n=(i=2,i++)
B: j++
C: ++(i+1)
D: x=j>0
答案: 【 ++(i+1)】
6、单选题:
设int x=2,y=4,z=7;则执行x=y--<=x| | x+y!=z后x,y的值分别为:
选项:
A: 0,3
B: 1,3
C: 2,3
D: 2,4
答案: 【 1,3】
7、单选题:
设以下变量均为int类型,则值不等于7的表达式是:
选项:
A: (x=y=6,x+y,x+1)
B: (x=y=6,x+y,y+1)
C: (x=6,x+1,y=6,x+y)
D: (y=6,y+1,x=y,x+1)
答案: 【 (x=6,x+1,y=6,x+y)】
第5讲 顺序结构的程序设计
第5讲 掌握C++输入输出的格式控制
1、单选题:
输入输出格式控制是在哪个头文件中定义的?
选项:
A: iostream.h
B: iomanip.h
C: istream.h
D: ostream.h
答案: 【 iomanip.h】
2、单选题:
对于语句cout<<endl<<x;中的各个组成部分,下列叙述中错误的是:
选项:
A: ”cout”是一个输出流对象
B: ”endl”的作用是输出回车换行
C: ”x”是一个变量
D: ”<<”称作提取运算符
答案: 【 ”<<”称作提取运算符】
3、单选题:
在ios中提供控制格式的标志位中,哪个是转换为十六进制形式的标志位?
选项:
A: hex
B: oct
C: dec
D: left
答案: 【 hex】
4、单选题:
定义变量:char one_char;则语句cout<<one_char;显示结果相当于C语言中的:
选项:
A: printf(one_char);
B: printf(“%c”,one_char);
C: scanf(one_char);
D: scanf(“%c”,&one_char);
答案: 【 printf(“%c”,one_char);】
5、单选题:
若有定义“int x=17;”,则语句“cout<<oct<<x;”的输出结果是:
选项:
A: 11
B: 0x11
C: 21
D: 021
答案: 【 21】
6、单选题:
与C语言printf("Hello,World\n");语句功能相同的C++语句是:
选项:
A: cout>>"Hello,World\n";
B: cout<<"Hello,World\n";
C: cin>>"Hello,World\n";
D: cin<<"Hello,World\n";
答案: 【 cout<<"Hello,World\n";】
7、单选题:
下列程序的运行结果是:#include <iostream>using namespace std;int main(){int a=2;int b=a+1;cout<<a/b<<endl;return 0;}
选项:
A: 0.66667
B: 0
C: 0.7
D: 0.6666666...
答案: 【 0】
8、单选题:
执行下列代码,程序的输出结果是(用下划线表示空格):int a=29,b=100;cout <<setw (3) << a << b << endl;
选项:
A: 29_100
B: _29_100
C: 29100
D: _29100
答案: 【 _29100】
第6讲 选择结构的程序设计
第6讲 掌握选择结构的程序设计
1、单选题:
流程控制语句的基本控制结构有三种,不属于这一种结构的是:
选项:
A: 顺序结构
B: 选择结构
C: 循环结构
D: 计算结构
答案: 【 计算结构】
2、单选题:
if语句的语法格式可描述为:格式1:if(<条件>)<语句>或if(<条件>)<语句1>else <语句2>关于上面的语法格式,下列表述中错误的是:
选项:
A: <条件>部分可以是一个if语句,例如if(if(a==0)……)……
B: <语句>部分可以是一个if语句,例如if(……)if(……)……
C: 如果在<条件>前加上逻辑非运算符!并交换<语句1>和<语句2>的位置,语句功能不变
D: <语句>部分可以是一个循环语句,例如if(……) while(……)……
答案: 【 <条件>部分可以是一个if语句,例如if(if(a==0)……)……】
3、单选题:
执行如下语句序列,不可能出现的情况是:int x; cin>>x; if(x>250) cout<<'A'; if(x<250) cout<<'B'; else cout<<'A';
选项:
A: 显示:A
B: 显示:B
C: 显示:AB
D: 显示:AA
答案: 【 显示:AB】
4、单选题:
阅读下面的程序,如果两次执行上述程序,且键盘输入分别是4和6,则输出结果是:#include <iostream>using namespace std;int main(){int x;cin>>x;if (x++>5)cout <<x<<endl;elsecout<<x--<<endl;return 0;}
选项:
A: 4,6
B: 3,6
C: 4,7
D: 5,7
答案: 【 5,7】
5、单选题:
执行如下语句序列,不可能出现的情况是:int n; cin>>n; switch(n){ case 1: case 2: cout<<'A'; case 3: case 4: cout<<'B'; break; default:cout<<'C'; }
选项:
A: 显示:A
B: 显示:B
C: 显示:C
D: 显示:AB
答案: 【 显示:A】
6、单选题:
关于switch语句的说明中,错误的是:
选项:
A: default语句是可缺省的
B: 各个分支中的break语句起着退出switch语句的作用
C: switch结构不可以嵌套
D: 每个case语句中不必用{},而整体的switch结构一定要写一对花括号{}
答案: 【 switch结构不可以嵌套】
7、单选题:
将以下程序写成三目运算表达式语句是:if (a>b) max=a;else max=b;
选项:
A: max=(a>b)?;
B: (max=a>b)?a:b;
C: c=(a>b)?a:b;
D: max=(a>b)?a:b;
答案: 【 max=(a>b)?a:b;】
第7讲 循环结构的程序设计
第7讲 掌握循环结构的程序设计
1、单选题:
while(!x)中的(!x)与下面哪个条件等价?
选项:
A: x==1
B: x!=1
C: x!=0
D: x==0
答案: 【 x==0】
2、单选题:
已知:int i=5,下列do-while循环语句的循环次数为:do{cout<<i--<<endl;i--;}while(i!=0);
选项:
A: 0
B: 1
C: 5
D: 无限
答案: 【 无限】
3、单选题:
for(int x=0,y=0;!x&&y<=5;y++)语句执行循环的次数是:
选项:
A: 0
B: 5
C: 6
D: 无限
答案: 【 6】
4、单选题:
下面有关for循环的正确描述是:
选项:
A: for循环只能用于循环次数已经确定的情况
B: for循环是先执行循环体语句,后判断表达式
C: 在for循环中,不能用break语句跳出循环体
D: for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来
答案: 【 for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来】
5、单选题:
下列循环语句的循环次数是:while(int i=0) i--;
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 0】
6、单选题:
下面程序的输出结果是:#include<iostream>using namespace std;int main(){for(int i=-1;i<4;i++)cout<<(i?'0':'*');return 0;}
选项:
A: 0*0
B: 0000
C: 0*00
D: 0*000
答案: 【 0*000】
7、单选题:
下面程序的输出结果是:#include "iostream"using namespace std;int main() {int i=17;while(i>=10)if(--i%4==3) continue;elsecout<<"i="<<i--<<endl;return 0;}
选项:
A: i=16i=15i=14i=13
B: i=16i=14i=12
C: i=16i=14i=12i=10
D: i=17i=15i=13i=11
答案: 【 i=16i=14i=12i=10】
第9讲 函数的定义和使用
第9讲 掌握函数的定义和函数的调用方式
1、单选题:
下列特性中,C与C++共有的是:
选项:
A: 继承
B: 封装
C: 多态性
D: 函数定义不能嵌套
答案: 【 函数定义不能嵌套】
2、单选题:
必须用一对大括号括起来的程序段是:
选项:
A: switch语句中的case标号语句
B: if语句的分支
C: 循环语句的循环体
D: 函数的函数体
答案: 【 函数的函数体】
3、单选题:
关于C++主函数特性,下列叙述正确的是:
选项:
A: 主函数在同一个C++文件中可以有两个
B: 主函数类型必须是void类型
C: 主函数一定有返回值
D: 每个C++程序都必须有一个main()函数
答案: 【 每个C++程序都必须有一个main()函数】
4、单选题:
在C++语言中,main函数默认返回一个( )类型的值
选项:
A: int
B: float
C: char
D: void
答案: 【 int】
5、单选题:
在C++中把不返回任何类型的函数应该说明为:
选项:
A: int
B: float
C: char
D: void
答案: 【 void】
6、单选题:
在函数的定义格式中,下面各组成部分中,( )是可以省略的。
选项:
A: 函数名
B: 函数数据类型说明
C: 函数体
D: 函数参数
答案: 【 函数参数】
7、单选题:
函数调用func((exp1,exp2),(exp3,exp4,exp5))中所含实参的个数为:
选项:
A: 1
B: 2
C: 3
D: 4
答案: 【 2】
第10讲 函数的设计
第10讲 灵活运用函数重载、默认参数和函数模板
1、单选题:
指出下列对定义重载函数的要求中,( )是错误的。
选项:
A: 要求参数的个数相同
B: 要求参数的类型相同时,参数个数不同
C: 函数的返回值可以不同
D: 要求参数的个数相同时,参数类型不同
答案: 【 要求参数的个数相同】
2、单选题:
一个函数为void x(int,char ch=’a’),另一个函数为void x(int),则它们:
选项:
A: 不能在同一程序中定义
B: 可以在同一程序中定义并可重载
C: 可以在同一程序中定义,但不可以重载
D: 以上说法均不正确
答案: 【 可以在同一程序中定义,但不可以重载】
3、单选题:
重载函数在调用时选择的依据中,错误的是:
选项:
A: 函数的参数
B: 参数的类型
C: 函数的名字
D: 函数返回值类型
答案: 【 函数返回值类型】
4、单选题:
下列函数原型声明中错误的是:
选项:
A: void fun(int x=0,int y=0);
B: void fun(int x,int y);
C: void fun(int x,int y=0);
D: void fun(int x=0,int y);
答案: 【 void fun(int x=0,int y);】
5、单选题:
一个函数带有参数说明时,则参数的默认值应该在( )中给出。
选项:
A: 函数定义
B: 函数声明
C: 函数定义或声明
D: 函数调用
答案: 【 函数定义或声明】
6、单选题:
下列关于函数参数默认值的描述中,正确的是:
选项:
A: 函数参数的默认值只能设置一个
B: 若一个函数含有多个参数,其中一个参数设置成默认值后,其后所有参数都必须设置默认值
C: 若一个函数含有多个参数,则设置默认参数时可以不连续设置默认值
D: C++语言中函数都必须设有默认值
答案: 【 若一个函数含有多个参数,其中一个参数设置成默认值后,其后所有参数都必须设置默认值】
7、单选题:
模板函数的真正代码是在( )时候产生。
选项:
A: 源程序中声明函数时
B: 源程序中定义函数时
C: 源程序中的调用函数时
D: 运行执行函数时
答案: 【 源程序中的调用函数时】
8、单选题:
以下关于函数模板叙述正确的是:
选项:
A: 函数模板也是一个具体类型的函数
B: 函数模板的类型参数与函数的参数是同一个概念
C: 通过使用不同的类型参数,函数模板可以生成不同类型的函数
D: 用函数模板定义的函数没有类型
答案: 【 通过使用不同的类型参数,函数模板可以生成不同类型的函数】
9、单选题:
常情况下,函数模板中的类型参数个数不能是:
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 0】
10、单选题:
实现两个相同类型数加法的函数模板的声明是:
选项:
A: add(T x,T y)
B: T add(x,y)
C: T add(T x,y)
D: T add(T x,T y)
答案: 【 T add(T x,T y)】
第11讲 函数的调用
第11讲 掌握函数的嵌套调用和递归调用
1、单选题:
在参数传递过程中,对形参和实参的要求是:
选项:
A: 函数定义时,形参一直占用存储空间
B: 实参可以是常量、变量或表达式
C: 形参可以是常量、变量或表达式
D: 形参和实参类型和个数都可以不同
答案: 【 实参可以是常量、变量或表达式】
2、单选题:
在函数的引用调用时,实参和形参应该是使用:
选项:
A: 变量值和变量
B: 地址值和指针
C: 地址值和引用
D: 变量值和引用
答案: 【 变量值和引用】
3、单选题:
下列函数调用中对调用它的函数没有起到任何作用的是:
选项:
A: void f1(double &x){--x;}
B: double f2(double x){return x-1.5;}
C: void f3(double x){--x;}
D: double f4(double *x){--*x;return *x;}
答案: 【 void f3(double x){--x;}】
4、单选题:
对于某个函数调用,不给出调用函数的声明的情况是:
选项:
A: 被调用函数是无参函数
B: 被调用函数是无返回值的函数
C: 函数的定义在调用处之前
D: 函数的定义有别的程序文件中
答案: 【 函数的定义在调用处之前】
5、单选题:
在哪种情况下适宜采用 inline 定义内联函数?
选项:
A: 函数体含有循环语句
B: 函数体含有递归语句
C: 函数代码少、频繁调用
D: 函数代码多、不常调用
答案: 【 函数代码少、频繁
