MOOC C++程序设计李降龙04(对外经济贸易大学)1453105173 最新慕课完整章节测试答案
第3讲 程序中数据的表示
文章目录
- 第3讲 程序中数据的表示
- 第4讲 运算符与表达式
- 第5讲 顺序结构的程序设计
- 第6讲 选择结构的程序设计
- 第7讲 循环结构的程序设计
- 第8讲 循环结构的设计
- 第9讲 函数的定义和使用
- 第10讲 函数的设计
- 第11讲 函数的调用
- 第12讲 作用域、生命期和程序的组织结构
- 第13讲 数组的定义和使用
- 第14讲 数组与函数
- 第15讲 字符串的处理
- 第17讲 指针的定义与使用
- 第18讲 指针与数组
- 第19讲 指针与函数
- 第20讲 动态分配内存
- 第21讲 自定义数据类型
- 第22讲 自定义数据类型的应用——链表
- 第23讲 预处理命令
- 第25讲 类的定义
- 第26讲 对象的定义和使用
- 第27讲 构造函数
- 第28讲 默认构造函数和复制构造函数
- 第29讲 析构函数
- 第30讲 对象数组和对象指针
- 第31讲 类作用域、对象生命期、const限定
- 第32讲 静态成员和友元
- 第33讲 类的继承与派生
- 第34讲 派生类成员的访问
- 第35讲 派生类的构造和析构函数
- 第36讲 多重继承
- 第37讲 多态性
- 第38讲 虚函数
- 第39讲 运算符重载
- 第40讲 典型运算符的重载
- 第41讲 类模板
- 第42讲 标准库
第3讲 掌握常量、变量的表示及基本数据类型
1、单选题:
类型修饰符unsigned不能修饰
选项:
A: char
B: int
C: long int
D: float
答案: 【 float】
2、单选题:
在C++语言的数据类型中,int,short等类型的长度是
选项:
A: 固定的
B: 任意的
C: 用户自定义的
D: 与机器字长有关的
答案: 【 与机器字长有关的】
3、单选题:
下列选项中,均是合法的整型常量的是:
选项:
A: 60-0xffff0011
B: –0xcdf01a0xe
C: –01986,0120668
D: –0x48a2e50x
答案: 【 60-0xffff0011】
4、单选题:
下列选项中,均是合法的实型常量的是:
选项:
A: +1e+15e-9.403e2
B: -0.1012e-4-8e5
C: 123e1.2e-.4+2e-1
D: –e3.8e-45.e-0
答案: 【 -0.1012e-4-8e5】
5、单选题:
下列字符串常量表示中,哪个是错误的?
选项:
A: ""yes"or"No""
B: "'OK!'"
C: "abcdn"
D: "ABC"
答案: 【 ""yes"or"No""】
6、单选题:
字符串”tv\whichn”的长度是:
选项:
A: 4
B: 3
C: 9
D: 字符串有非法字符,输出值不确定
答案: 【 3】
7、单选题:
以下不是C++语言支持的存储类别的是:
选项:
A: auto
B: static
C: dynamic
D: register
答案: 【 dynamic】
8、单选题:
下列不是C++语言的合法用户标识符的是:
选项:
A: a#b
B: _int
C: a_10
D: Pad
答案: 【 a#b】
9、单选题:
下列字符列中,可作为C++语言程序自定义标识符是:
选项:
A: switch
B: file
C: break
D: do
答案: 【 file】
10、单选题:
下列属于逻辑运算的一组算式是:
选项:
A: 1/1=1
B: 1-1=0
C: 1+1=10
D: 1+1=1
答案: 【 1+1=1】
第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和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是:
选项:
A: 6.500000
B: 6
C: 5.500000
D: 6.000000
答案: 【 6.000000】
6、单选题:
以下非法的赋值表达式是:
选项:
A: n=(i=2,i++)
B: j++
C: ++(i+1)
D: x=j>0
答案: 【 ++(i+1)】
7、单选题:
设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】
8、单选题:
表达式!x等效于:
选项:
A: x==1
B: x==0
C: x!=1
D: x!=0
答案: 【 x==0】
9、单选题:
设以下变量均为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)】
10、单选题:
在下列成对的表达式中,运算符“+”的意义不相同的一对是:
选项:
A: 5.0+2.0和5.0+2
B: 5.0+2.0和5+2.0
C: 5.0+2.0和5+2
D: 5+2.0和5.0+2
答案: 【 5.0+2.0和5+2】
第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、单选题:
与语句cout<<endl;不等价的是:
选项:
A: cout<<’ n’;
B: cout<<'12';
C: cout<<’ xA’;
D: D)cout<<’ ’;
答案: 【 D)cout<<’ ’;】
8、单选题:
下列程序的运行结果是:#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】
9、单选题:
执行下列代码,程序的输出结果是(用下划线表示空格):int a=29,b=100;cout <<setw (3) << a << b << endl;
选项:
A: 29_100
B: _29_100
C: 29100
D: _29100
答案: 【 _29100】
10、单选题:
执行下列代码,程序的输出结果是:cout <<″Hex:″<< hex << 255;
选项:
A: ff
B: hex:ff
C: Hex:ff
D: f
答案: 【 Hex:ff】
第6讲 选择结构的程序设计
第6讲 掌握选择结构的程序设计
1、单选题:
流程控制语句的基本控制结构有三种,不属于这一种结构的是:
选项:
A: 顺序结构
B: 选择结构
C: 循环结构
D: 计算结构
答案: 【 计算结构】
2、单选题:
在设计程序时,应采纳的原则之一是:
选项:
A: 不限制goto语句的使用
B: 减少或取消注解行
C: 程序越短越好
D: 程序结构应有助于读者理解
答案: 【 程序结构应有助于读者理解】
3、单选题:
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)……)……】
4、单选题:
在if语句中的表达式是:
选项:
A: 只能是表达式
B: 只能是关系表达式和逻辑表达式
C: 只能是逻辑表达式
D: 可以是任意表达式
答案: 【 可以是任意表达式】
5、单选题:
执行如下语句序列,不可能出现的情况是: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】
6、单选题:
阅读下面的程序,如果两次执行上述程序,且键盘输入分别是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】
7、单选题:
下列描述正确的是:
选项:
A: 表示m>n为false或m<n为true的表达式为(m>n&&m<n)
B: switch语句结构中必须有default语句
C: if语句结构中必须有default语句
D: 如果至少有一个操作数为true,则包含||运算符的表达式为true
答案: 【 如果至少有一个操作数为true,则包含||运算符的表达式为true】
8、单选题:
执行如下语句序列,不可能出现的情况是: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】
9、单选题:
关于switch语句的说明中,错误的是:
选项:
A: default语句是可缺省的
B: 各个分支中的break语句起着退出switch语句的作用
C: switch结构不可以嵌套
D: 每个case语句中不必用{},而整体的switch结构一定要写一对花括号{}
答案: 【 switch结构不可以嵌套】
10、单选题:
将以下程序写成三目运算表达式语句是: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、单选题:
下面程序段:x=3; do{y=x--;if(!y) {cout<<”x”; continue;}cout<<”#”;}while(x>=1 && x<=2);
选项:
A: 将输出##
B: 是死循环
C: 将输出###
D: 含有不合法的控制表达式
答案: 【 将输出###】
4、单选题:
for(int x=0,y=0;!x&&y<=5;y++)语句执行循环的次数是:
选项:
A: 0
B: 5
C: 6
D: 无限
答案: 【 6】
5、单选题:
以下程序的输出结果是:#include <iostream>using namespace std;int main(){char s[]="abcdefbcde",*p=s;int v1=0,v2=0,v3=0,v4=0; for (p;*p;p++) switch(*p){ case 'a':v1++;break; case 'b':v3++;break; case 'e':v2++;break; default: v4++;}cout<<v1<<","<<v2<<","<<v3<<","<<v4<<endl;return 0;}
选项:
A: 1,2,2,5
B: 4,7,5,8
C: 1,5,3,10
D: 8,8,8,8
答案: 【 1,2,2,5】
6、单选题:
下面有关for循环的正确描述是:
选项:
A: for循环只能用于循环次数已经确定的情况
B: for循环是先执行循环体语句,后判断表达式
C: 在for循环中,不能用break语句跳出循环体
D: for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来
答案: 【 for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来】
7、单选题:
C++语言的跳转语句中,对于break和continue说法正确的是:
选项:
A: break语句只应用与循环体中
B: continue语句只应用与循环体中
C: break是无条件跳转语句,continue不是
D: break和continue的跳转范围不够明确,容易产生问题
答案: 【 continue语句只应用与循环体中】
8、单选题:
下列循环语句的循环次数是:while(int i=0) i--;
选项:
A: 0
B: 1
C: 2
D: 3
答案: 【 0】
9、单选题:
下面程序的输出结果是:#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】
10、单选题:
下面程序的输出结果是:#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】
第8讲 循环结构的设计
第8讲 掌握循环结构的程序设计
1、填空题:
程序填空完成功能:求出1000以内的全部素数。#include<iostream>using namespace std;int main(){ const int m=1000; int i,j,isprime; for (i=2;i<1000;i++){ isprime=1; for (j=i-1;j>1;j--) if (i%j==0) 【 】; if (isprime) cout<<i<<','; } return 0;}
答案: 【 isprime=0】
2、填空题:
程序填空完成功能:求分数序列2/1,3/2,5/3,8/5,13/8 ……的前20项之和。#include <iostream>using namespace std;int main(){ double i,n=1,m=1,t,s=0 ; for (i=1;i<=20;i++) { t = n ; n = m ; 【 】; s = s + m/n ; } cout<<s<<endl; return 0;}
答案: 【 m=t+m##%_YZPRLFH_%##m=m+t##%_YZPRLFH_%##m=t+n##%_YZPRLFH_%##m=n+t】
3、填空题:
程序填空完成功能:有一堆机器零件(零件个数小于100),3个为一组则剩下2个,5个为一组则剩下1个,7个为一组则剩下6个,求这堆零件一共有多少个?#include <iostream>using namespace std;int main(){ int i; for (i=1;i<100;i++) { if(【 】) cout<<i<<endl; } return 0;}
答案: 【 i%3==2&&i%5==1&&i%7==6##%_YZPRLFH_%##(i%3==2)&&(i%5==1)&&(i%7==6)##%_YZPRLFH_%##(i%3==2&&i%5==1&&i%7==6)】
第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: return语句中的表达式类型所决定
B: 调用该函数时的主调用函数类型所决定
C: 调用该函数时系统临时决定
D: 在定义该函数时多指定的数据类型所决定
答案: 【 在定义该函数时多指定的数据类型所决定】
6、单选题:
若调用一个函数,且此函数中没有return语句,则正确的说法是该函数:
选项:
A: 没有返回值
B: 返回若干个系统默认值
C: 有返回值,但返回一个不确定的值
D: 回一个用户所希望的函数值
答案: 【 有返回值,但返回一个不确定的值】
7、单选题:
下列叙述中错误的是:
选项:
A: 一个函数中可以有多条return语句
B: 调用函数必须在一条独立的语句中完成
C: 函数中通过return语句传递函数值
D: 主函数名main也可以带有形参
答案: 【 调用函数必须在一条独立的语句中完成】
8、单选题:
在C++中把不返回任何类型的函数应该说明为:
选项:
A: int
B: float
C: char
D: void
答案: 【 void】
9、单选题:
在函数的定义格式中,下面各组成部分中,( )是可以省略的。
选项:
A: 函数名
B: 函数数据类型说明
C: 函数体
D: 函数参数
答案: 【 函数参数】
10、单选题:
函数调用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: