C++语言程序设计(华中农业大学) 中国大学mooc慕课答案2024版 m102388
第一章 C++语言概述 第一章 C++语言概述 单元测验
1、 C++程序的基本构成单位是( )。
A:函数
B:函数和过程
C:超文本过程
D:子程序
答案: 函数
2、 一个C++程序总是从( )开始执行。
A:主函数
B:主过程
C:子程序
D:主程序
答案: 主函数
3、 以下有关C++程序的叙述正确的是( )。
A:每行中只能写一条语句
B:main函数必须位于程序的最前面
C:一条语句可以写在数行中
D:对程序进行编译时可发现注释中的拼写错误
答案: 一条语句可以写在数行中
4、 C++语言是以( )语言为基础逐渐发展演变而成的一种程序设计语言。
A:Pascal
B:C
C:B
D:Simula 67
答案: C
5、 C++程序在使用cin、cout完成输入、输出时,需要使用include预处理命令包含头文件iostream,预处理命令以( )开始。
A:#
B:;
C://
D:{
答案: #
第二章 基础知识 第二章 基础知识 单元测验
1、 下列数据中,不合法的实型数据的是()。
A:0.123
B:123e3
C:2.1e3.5
D:789.0
答案: 2.1e3.5
2、 若有定义: int a=7; float x=2.5,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是()。
A:2.500000
B:2.750000
C:3.500000
D:0.000000
答案: 2.500000
3、 设变量a是int型,f是float型,i是double型,则表达式10+’a’+i*f值的数据类型为()。
A:int
B:float
C:double
D:不确定
答案: double
4、 若有以下说明语句“char s=92;”,则该语句()。
A:使s的值包含1个字符
B:说明不合法,s的值不确定
C:使s的值包含4个字符
D:使s的值包含3个字符
答案: 使s的值包含1个字符
5、 若变量已正确定义并赋值,以下符合C++语言语法的表达式是()。
A:a:= b+1;
B:a=b=c+2;
C:int 18.5%3;
D:a=a+7=c+b;
答案: a=b=c+2;
6、 在C++语言中,逻辑值“真”用()表示。
A:true
B:大于0的数
C:非0整数
D:非0的数
答案: 非0的数
7、 下列可用于C++语言用户标识符的一组是()。
A:void, define, WORD
B:a3_b3, _123, Car
C:For, -abc, IF Case
D:2a, DO, sizeof
答案: a3_b3, _123, Car
8、 下列选项中非法的表达式为()。
A:0<=x<100
B:i=j==0
C:(char)(65+3)
D:x+1=x+1
答案: x+1=x+1
9、 一个C++程序的执行从()。
A:本程序的main函数开始,到本程序的main函数结束
B:本程序的main函数开始,到本程序的最后一个函数结束
C:本程序的第一个函数开始,到本程序的main函数结束
D:本程序的第一个函数开始,到本程序的最后一个函数结束
答案: 本程序的main函数开始,到本程序的main函数结束
10、 设有定义“int x; double y; ”及语句“x=y; ”,则下面正确的说法是()。
A:将y的值四舍五入为整数后赋给x
B:将y的整数部分赋给x
C:该语句执行后x与y相等
D:将x的值转换为实数后赋给y
答案: 将y的整数部分赋给x
11、 下面4个选项中,均是合法整型常量的选项是()。
A:160 -0xff 011
B:123.5 01a 0xe
C:-01 1,986,012 0663
D:-2e3.2 0.234 1e0
答案: 160 -0xff 011
12、 下面4个选项中,均是合法实数的选项是()。
A:160. 0.12 e3
B:123.5 2e-4 123.
C:-0.18 2e 0e1
D:-2e3.2 0.234 1e0
答案: 123.5 2e-4 123.
13、 下面4个选项中,均是合法转义字符的选项是()。
A:” ‘\’ ”
B:’\’ ‘\017′ ”
C:’\018’ ‘\f’ ‘xab’
D:’\0′ ‘\101’ ‘x1f’
答案: ‘\’ ‘\017’ ”
14、 已知“int a,b; ”,用语句“cin>>a>>b; ”输入a,b的值时,不能作为输入的分隔符的是()。
A:,
B:空格键
C:Enter键
D:Tab键
答案: ,
15、 以下程序段的输出结果是()。int x=10, y=10;cout<<x–<<“, “<<–y<<endl;
A:10,9
B:9,10
C:10,10
D:9,9
答案: 10,9
16、 有一个字符串在程序中表示为”\Name\Address”,则该字符串的长度是()。
A:18
B:16
C:14
D:13
答案: 13
17、 若有定义“int x; ”,则下面不能将x的值强制转换成双精度数的表达式是()。
A:(double) x
B:double(x)
C:(double) (x)
D:x (double)
答案: x (double)
18、 已知x,y 为整型,z为实型,ch为字符型,则下列表达式中正确的是()。
A:z=(x+y)++
B:x+y=z
C:y=ch+x
D:y=z%x
答案: y=ch+x
19、 下列说法中错误的是()。
A:char A; //定义了字符型变量A
B:int x=2; //定义了x整型变量,其中,x的初值为2
C:如给整型变量j赋初值2004,可写成:int j(2004);
D:变量名中可以包含特殊符号
答案: 变量名中可以包含特殊符号
20、 算术表达式的值的类型的规定,其中错误的是()。
A:若参与运算的两个操作数(或运算分量)都为整型时,则运算结果为int型
B:若参与运算的两个操作数(或运算分量)中至少有一个是单精度型,并且另一个不是双精度型时,则结果为float型
C:若参与运算的两个操作数(或运算分量)中至少有一个是双精度型,则运算结果为双精度型
D:算术表达式的值的类型的直接有机器进行转化
答案: 算术表达式的值的类型的直接有机器进行转化
21、 ++和–运算符可以作用于常量。
A:正确
B:错误
答案: 错误
22、 整型数据和字符型数据的类型不同,它们之间不能进行运算。
A:正确
B:错误
答案: 错误
23、 变量的类型经过强制类型转换运算后其类型就改变了。
A:正确
B:错误
答案: 错误
24、 C++提供自增(++)和自减(–)运算符,可以将变量加1或减1。如果运算符放在变量前面,则变量先加1(减1),然后在表达式中使用。如果运算符放在变量后面,则变量先在表达式中使用,然后加1(减1)。
A:正确
B:错误
答案: 正确
25、 true值可以表示任何非0值,false值也可以表示0值。
A:正确
B:错误
答案: 正确
26、 表达式由常量、变量、运算符、函数、圆括号等按一定规则组成的式子。但单独的常量或变量不是表达式。
A:正确
B:错误
答案: 错误
27、 实型数赋值给整型时,仅取整数部分赋值,当整数部分的值超出整型变量的范围时,产生溢出,结果出错。
A:正确
B:错误
答案: 正确
28、 C++中逗号也是一种运算符,在所有运算符中优先级最低。
A:正确
B:错误
答案: 正确
29、 字符串常量:简称字符串,它们是用双引号括起来的字符序列,例如,“Hello,world!”。
A:正确
B:错误
答案: 正确
30、 字符可以是字符集中任意字符。但数字被定义为字符型之后就不能参与数值运算。
A:正确
B:错误
答案: 错误
31、 用const修饰的标识符称为符号常量因为符号常量同样需要系统为其分配内存,所以又称为const变量符号常量在使用之前一定要先进行声明。
A:正确
B:错误
答案: 正确
32、 C++语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时,允许把字符变量按整型量输出,也允许把整型量按字符量输出。
A:正确
B:错误
答案: 正确
33、 C++语言标识符是以字母或下划线开头的,由字母,数字和下划线组成的字符序列。
A:正确
B:错误
答案: 正确
34、 一个赋值表达式中使用多个赋值运算符可实现多个变量赋值的功能,如表达式(x=y=z=2)与操作序列(z=2;y=z;x=y;)是等价的。
A:正确
B:错误
答案: 正确
35、 变量是在程序的执行过程中其值可以改变的量。变量有数据类型和初值。变量在使用之前必须首先声明其类型和名称。
A:正确
B:错误
答案: 正确
36、 字符值是以ASCII码的形式存放在变量的内存单元之中的。如’x’的十进制ASCII码是120,’y’的十进制ASCII码是121。
A:正确
B:错误
答案: 正确
37、 字符常量只能用单引号括起来,不能用双引号或其它括号。
A:正确
B:错误
答案: 正确
38、 void是无值,而不是0,因为0也是一个值。
A:正确
B:错误
答案: 正确
39、 声明语句中使用的符号“=”称为初始化符,它不是赋值运算符。
A:正确
B:错误
答案: 正确
40、 条件表达式的形式为:<表达式1>?<表达式2>:<表达式3> 其含义为若<表达式1>的值为“真”,则条件表达式取<表达式2>的值;否则取<表达式3>的值。
A:正确
B:错误
答案: 正确
作业第三章 控制结构 第三章 控制结构 单元作业
1、 编写程序,求能被7整除 且个位数字为9的所有三位数,将满足条件的数每10个一行显示,并输出满足条件的数的个数。注意:答题时选择代码语言为“C/C++”,将程序代码填写在答题框内,并将程序的运行结果截屏保存为jpg文件上传附件。本题程序运行效果参考“图片1.jpg”。
评分规则: 写出程序主体框架
包含一个循环
计算出符合条件的数据个数
循环中能正确判断
运行结果正确
2、 编写程序,输入两个正整数m和n,求出这两个数的最大公约数并显示出来。注意:答题时选择代码语言为“C/C++”,将程序代码填写在答题框内,并将程序的运行结果截屏保存为jpg文件上传附件。本题程序运行效果参考“图片2.jpg”。
评分规则: 写出程序主体框架
能接受输入的两个整数
有循环
运行结果正确
3、 编写程序。猴子吃桃问题,猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第五天早上想再吃时,见只剩下一个桃子了。请编程求第一天共摘了多少个桃子? 注意:答题时选择代码语言为“C/C++”,将程序代码填写在答题框内,并将程序的运行结果截屏保存为jpg文件上传附件。
评分规则: 写出程序主体框架
循环语句正确
运行结果正确
第三章 控制结构 第三章 控制结构 单元测验
1、 k为整型,以下while循环体中的语句执行()。k=2;while(k=0){ cout<<k; k–; cout<<” “;}
A:0次
B:无限次
C:1次
D:2次
答案: 0次
2、 在下列选项中,会构成死循环的是()。
A:for(;;);
B:int i=100;
C:int k=10000;
D:int s=36;
答案: for(;;);
3、 为了避免在嵌套的条件语句if…else中产生二义性,C++规定else子句总是与()配对。
A:其之前最近且尚未配对的if语句
B:其之前最近的if语句
C:其之后最近的if语句
D:缩排位置相同的if语句
答案: 其之前最近且尚未配对的if语句
4、 C++中循环语句while和do…while的主要区别是()。
A:do…while的循环体至少无条件执行一次
B:while的循环控制条件和do…while的循环控制条件的控制方式是相反的
C:do…while允许从外部转到循环体内,while不允许
D:while的循环体不能是复合语句
答案: do…while的循环体至少无条件执行一次
5、 对于省略了循环控制表达式2的循环语句“for(表达式1; ; 表达式3)”,可理解为()。
A:for(表达式1; true; 表达式3)
B:for(表达式1; false; 表达式3)
C:for(表达式1; 表达式1; 表达式3)
D:for(表达式1; 表达式3; 表达式3)
答案: for(表达式1; true; 表达式3)
6、 执行语句“for(i=1; i<5;i++) cout<<i;”循环执行()次?
A:4
B:3
C:1
D:未知
答案: 4
7、 面关于for循环语句的叙述中,正确的是()。
A:for循环的循环体可以包含多条语句,但必须用大括号括起来
B:for循环是先执行循环体语句,后判断表达式
C:在for循环中,不能用break语句跳出循环体
D:for循环只能用于循环次数已经确定的情况
答案: for循环的循环体可以包含多条语句,但必须用大括号括起来
8、 若有以下程序段:for(m=1; m<=100; m++){ cin>>y; if (y<0) continue; cout<<m;}则下面正确的说法是()。
A:最多输出100个非负整数
B:当y>=0时什么也不输出
C:cout语句永远也不执行
D:当y<0时整个循环结束
答案: 最多输出100个非负整数
9、 以下程序段中的do…while循环()。m=-1;do{ m=m*m;}while(!m);
A:执行一次
B:是死循环
C:执行两次
D:执行无数次
答案: 执行一次
10、 语句“while(!x) …”等价于()。
A:while(x==0) …
B:while(x!=1) …
C:while(x!=0) …
D:while(x==1) …
答案: while(x==0) …
11、 设有程序段int k=10;while(k=0) k=k-1;则下面描述中正确的是()。
A:循环体语句一次也不执行
B:循环执行10次
C:无限循环
D:循环体语句执行一次
答案: 循环体语句一次也不执行
12、 若给定条件表达式(M)?(a++):(a–),则其中表达式M()。
A:和(M!=0)等价
B:和(M==1)等价
C:和(M==0)等价
D:和(M!=1)等价
答案: 和(M!=0)等价
13、 下列描述正确的是()。
A:如果至少有一个操作数为true,则包含“||”运算符的表达式为true
B:break语句可以用任何复合语句中
C:switch语句结构中必须有default语句
D:if语句结构中必须有else语句
答案: 如果至少有一个操作数为true,则包含“||”运算符的表达式为true
14、 以下for语句中不是死循环的是()。
A:for(int i=0;i<1;++i);
B:for(int i=0;;++i);
C:for(int i=1;i>0;++i);
D:for(;;);
答案: for(int i=0;i<1;++i);
15、 有以下程序#include<iostream>using namespace std;int main(){ int a=5,b=0,c=0; if(a=b+c)cout<<″″<<endl; else cout<<″$$$″<< endl; return 0;}下列选项叙述正确的是()。
A:输出$$$
B:可以通过编译但不能通过连接
C:输出
D:有语法错不能通过编译
答案: 输出$$$
16、 switch结构case语句后的多个语句必须放在花括号中。
A:正确
B:错误
答案: 错误
17、 要在if选择结构体中包括多条语句,就要把这些语句放在花括号中。复合语句可以放在程序中出现单个语句的任何地方。
A:正确
B:错误
答案: 正确
18、 空语句就是在正常语句出现的地方放一个分号(;),表示不采取任何操作。
A:正确
B:错误
答案: 正确
19、 do/while重复结构执行循环体之后再测试循环条件,因此,do/while结构至少执行循环体一次。
A:正确
B:错误
答案: 正确
20、 break语句在while、for和do/while结构中执行时,将使程序立即退出这些结构。
A:正确
B:错误
答案: 正确
21、 每个case面的语句之后必须要包括一个break语句。几个case可以不执行相同语句。
A:正确
B:错误
答案: 错误
22、 continue语句用于循环语句中,并不终止本层循环,而只是绕过本次循环。
A:正确
B:错误
答案: 正确
23、 如果表达式x>y为true或a<b为true,则表达式(x>y&&a<b)为true。
A:正确
B:错误
答案: 错误
24、 for重复结构处理计数器控制循环的所有细节。for结构的一般格式如下: for(expression1, expression2, expression3) statement 其中expression1初始化循环控制变量,expression2是循环条件,expression3递增控制变量。
A:正确
B:错误
答案: 错误
25、 goto语句只能从循环体内跳到循环体外,不能从循环体外跳到循环体内。
A:正确
B:错误
答案: 错误
第四章 数组与字符串 第四章 数组与字符串 单元测验
1、 以下对一维数组a的正确定义是( )。
A: char a[ ]={‘a’, ‘b’, ‘c’};
B:char a(10);
C:int k=5,a[k];
D:int a[ ];
答案: char a[ ]={‘a’, ‘b’, ‘c’};
2、 下面不能够正确判断字符串s是空串的是( )。
A:if(s==‘\0’)
B:if(strlen(s)==0)
C:if(strcmp(s, “”)==0)
D:if(s[0]==0)
答案: if(s==‘\0’)
3、 下面关于C++字符数组的叙述中,错误的是( )。
A:可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
B:字符数组中字符串的字符可以整体输入、输出
C:字符数组可以存放字符串
D:可以用关系运算符对字符数组中的字符比较大小
答案: 可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
4、 判断字符串s1是否大于字符串s2,应当使用( )。
A:if(strcmp(s1,s2)>0)
B:if(strcmp(s1,s2))
C:if(strcmp(s2,s1)>0)
D:if(s1>s2)
答案: if(strcmp(s1,s2)>0)
5、 若有定义:char strl[10],str2[ ]=”student”; 以下能把str2中的字符串赋给strl的语句是( )。
A:for(int i=0; i<=strlen(str2); i++) str1[ i ]=str2[ i ];
B:str1=”student”;
C:str1=str2;
D:for(int i=0; str2[ i ]!=0; i++) str1[ i ]=str2[ i ];
答案: for(int i=0; i<=strlen(str2); i++) str1[ i ]=str2[ i ];
6、 若有定义int a[3][3]={ {1, 2}, {5}, {2, 4, 8} }; 初始值5是数组a存储在内存中的第( )个元素。
A:4
B:3
C:2
D:5
答案: 4
7、 若有定义:char strl[20]=”a good “, str2[ ]=”student”; 以下能将字符串str1变为”a good student”的语句是( )。
A:strcat(str1, str2);
B:strcpy(str1, str2);
C:str1 = str1 + str2;
D:str1 = str1 & str2;
答案: strcat(str1, str2);
8、 若有以下说明,则数值为 4 的表达式是( )。 int a[12] ={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; char c=’a’, d, g ;
A:a[‘d’-c]
B:a[g-c]
C:a[4]
D:a[‘d’-‘c’]
答案: a[‘d’-c]
9、 下列语句中,正确的是( )。
A:char a[ ][3] ={ “a”, “1”};
B:char a[3][ ]={‘abc’, ‘1’};
C:char a[ ][3] ={‘abc’, ‘1’};
D:char a[3][ ]={‘a’, “1”};
答案: char a[ ][3] ={ “a”, “1”};
10、 字符串的长度是( )。
A:串中所含字符的个数
B:串中不同字符的个数
C:串中不同字母的个数
D:串中所含字符的个数且字符个数大于零
答案: 串中所含字符的个数
11、 下面关于数组的初绐化正确的是( )。
A:char str[ ]={‘a’, ‘b’, ‘c’};
B:char str[2]={‘a’, ‘b’, ‘c’};
C:char str[2][3]={ {′a′,′b′}, {′c′,′d′}, {′e′,′ f′} };
D:char str()={′a′,′b′,′c′};
答案: char str[ ]={‘a’, ‘b’, ‘c’};
12、 设有数组定义:char array[ ]=”China”;,则数组array所占的空间为( )。
A:6个字节
B:4个字节
C:5个字节
D:7个字节
答案: 6个字节
13、 对以下说明语句的正确理解是( )。 int a[10]={6, 7, 8, 9, 10};
A:将5个初值依次赋给a[0]至a[4]
B:将5个初值依次赋给a[1]至a[5]
C:将5个初值依次赋给a[6]至a[10]
D:因为数组长度与初值的个数不相同,所以此语句不正确
答案: 将5个初值依次赋给a[0]至a[4]
14、 若有说明语句: int a[ ][3]={1, 2, 3, 4, 5, 6, 7, 8}; ,则数组a的行数为( )。
A:3
B:2
C:1
D:无确定值
答案: 3
15、 若有定义int a[5]={0, 1, 3, 4, 5};,以下正确的数组元素引用是( )。
A:a[a[4]-1]
B:a[5]
C:a[a[4]]
D:a[a[0]-1]
答案: a[a[4]-1]
16、 初始化语句int a[3][4]={ {1, 2}, {0}, {4, 6, 8, 10} };执行后,a[2][1]得到的初值是6。
A:正确
B:错误
答案: 正确
17、 说明语句int a[7]={ 5, 6, 7 };由于数组长度与初值个数不同,故该语句不正确。
A:正确
B:错误
答案: 错误
18、 double a[5][ ]是对二维数组a的正确说明。
A:正确
B:错误
答案: 错误
19、 字符数组可以存放字符串。
A:正确
B:错误
答案: 正确
20、 C++中允许对数组的大小作动态定义,即可用变量定义数组的大小。
A:正确
B:错误
答案: 错误
21、 字符数组不要求它的最后一个字符为’\0’,甚至可以不包含’\0’。
A:正确
B:错误
答案: 正确
22、 在对全部数组元素赋初值时,可以不指定数组长度。
A:正确
B:错误
答案: 错误
23、 数组定义 int a[10]; 表示数组名为a,此数组可以存放10个整型元素。
A:正确
B:错误
答案: 正确
24、 char c[ ]={ “a book” }; 与char c[ ]=”a book”;等价。
A:正确
B:错误
答案: 正确
25、 设已有说明:char c1[10], c2[10]; 程序片段:c1={“book”}; c2=c1; 是合法的 。
A:正确
B:错误
答案: 错误
26、 字符数组初始化如:char aStr[ ]={“12345″}; 不可省略花括弧,简单地写为char aStr[ ]=”12345”;
A:正确
B:错误
答案: 错误
27、 对数组元素赋初值称为数组的初始化,例如:int a[10]; a={1,3,5,6,7};
A:正确
B:错误
答案: 错误
28、 如果数组的元素类型是字符型,则此数组就是字符数组。字符数组的每个元素只能存放一个字符,存放的是字符的ASCII代码。
A:正确
B:错误
答案: 正确
29、 C++中数组的起始下标为0,最大下标值比定义数组时的常量表达式小1。
A:正确
B:错误
答案: 正确
下方是付费阅读内容:本平台商品均为虚拟商品,无法用作二次销售,不支持退换货,请在购买前确认您需要购买的资料准确无误后再购买,望知悉!
完整答案需点击上方按钮支付5元购买,所有答案均为章节测试答案,购买后上方矩形框将出现已付费的隐藏内容。
点关注,不迷路,微信扫一扫下方二维码
关注我们的公众号:阿布查查 随时查看答案,网课轻松过
为了方便下次阅读,建议在浏览器添加书签收藏本网页
电脑浏览器添加/查看书签方法
1.按键盘的ctrl键+D键,收藏本页面
2.下次如何查看收藏的网页?
点击浏览器右上角-【工具】或者【收藏夹】查看收藏的网页
手机浏览器添加/查看书签方法
一、百度APP添加/查看书签方法
1.点击底部五角星收藏本网页
2.下次如何查看收藏的网页?
点击右上角【┇】-再点击【收藏中心】查看
二、其他手机浏览器添加/查看书签方法
1.点击【设置】-【添加书签】收藏本网页
2.下次如何查看收藏的网页?
点击【设置】-【书签/历史】查看收藏的网页