C++语言程序设计形成性考核册参考答案Word格式文档下载.docx
《C++语言程序设计形成性考核册参考答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C++语言程序设计形成性考核册参考答案Word格式文档下载.docx(25页珍藏版)》请在冰豆网上搜索。
![C++语言程序设计形成性考核册参考答案Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2023-1/8/1fd3a39c-3909-4792-bc03-43cb5bfb4a5e/1fd3a39c-3909-4792-bc03-43cb5bfb4a5e1.gif)
&
y的值为(C)。
A.1B.0C.与x值相同D.与x值相反
16.x>
0&
x<
=10的相反表达式为(A)。
A.x<
=0||x>
10B.x<
=0&
x>
10
C.x<
=0||x<
=10D.x>
17.x>
0||y==5的相反表达式为(B)。
=0||y!
=5B.x<
y!
=5
C.x>
0||y!
=5D.x>
y==5
18.设x和y均为bool量,则x&
y为真的条件是(A)。
A.它们均为真B.其中一个为真
C.它们均为假D.其中一个为假
19.设x和y均为bool量,则x||y为假的条件是(C)。
20.字符串”a+b=12\n”的长度为(B)。
A.6B.7C.8D.9
二、填空题
1.C++语言是在_____C____语言的基础上发展起来的。
2.C++语言的编译单位是扩展名为___.CPP_______的____程序______文件。
3.行尾使用注释的开始标记符为__//________。
4.多行注释的开始标记符和结束标记符分别为____/*______和____*/______。
5.用于输出表达式值的标准输出流对象是____cout_____。
6.用于从键盘上为变量输入值的标准输入流对象是____cin____。
7.一个完整程序中必须有一个名为____main____的函数。
8.一个函数的函数体就是一条___复合______语句。
9.当执行cin语句时,从键盘上输入每个数据后必须接着输入一个___空白_____符,然后才能继续输入下一个数据。
10.在C++程序中包含一个头文件或程序文件的预编译命令为____#include_____。
11.程序中的预处理命令是指以__#____字符开头的命令。
12.一条表达式语句必须以__分号____作为结束符。
13.在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是__用户______定义的头文件。
14.使用#include命令可以包含一个头文件,也可以包含一个___程序___文件。
15.一个函数定义由___函数头_____和____函数体____两部分组成。
16.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的_原型_____语句。
17.C++头文件和源程序文件的扩展名分别为__.h____和___.cpp___。
18.程序文件的编译错误分为____警告(warning)____和__致命(error)______两类。
19.当使用__void_____保留字作为函数类型时,该函数不返回任何值。
20.当函数参数表用___void___保留字表示时,则表示该参数表为空。
21.从一条函数原型语句“intfun1(void);
”可知,该函数的返回类型为__int____,该函数带有___0___个参数。
22.当执行cout语句输出endl数据项时,将使C++显示输出屏幕上的光标从当前位置移动到___下一行_____的开始位置。
23.假定x=5,y=6,则表达式x++*++y的值为___35_______。
24.假定x=5,y=6,则表达式x--*--y的值为___25_______。
25.假定x=5,y=6,则执行表达式y*=x++计算后,x和y的值分别为____6______和______30____。
26.假定x=5,y=6,则执行表达式y+=x--计算后,x和y的值分别为____4______和_____11_____。
27.C++常数0x145对应的十进制值为___325_______。
28.C++常数0345对应的十进制值为____2______。
29.十进制常数245对应的十六进制的C++表示为___0xf5_______。
30.十进制常数245对应的八进制的C++表示为____0365______。
31.signedchar类型的值域范围是___-128_____至_____+127_____之间的整数。
32.int和float类型的数据分别占用_____4____和_____4_____个字节。
33.float和double类型的数据分别占用___4______和____8____个字节。
34.bool和char类型的数据分别占用____1_____和____1____个字节。
35.unsignedshortint和int类型的长度分别为____2_____和___4_____。
36.字符串”This\’sabook.\n”的长度为____15______。
37.字符串”\nThis\’sapen\n\n”的长度为___15_______。
38.在C++中存储字符串”abcdef”至少需要____7____个字节。
39.在C++中存储字符串”a+b=c”至少需要_____6___个字节。
40.假定x和y为整型,其值分别为16和5,则x%y和x/y的值分别为___1_______和____3______。
三、写出程序运行结果
1.#include<
iostream.h>
#include<
stdlib.h>
voidmain()
{
inta[8]={25,48,32,85,64,18,48,29};
intmax,min;
max=min=a[0];
for(inti=0;
i<
8;
i++){
if(max>
a[i])max=a[i];
if(min<
a[i])min=a[i];
}
cout<
"
max:
max<
endl;
min:
min<
解:
85min:
18
2.#include<
inta,b;
for(a=1,b=2;
b<
50;
){
cout<
a<
'
'
b<
;
a=a+b;
b=a+b;
解:
123581321345589
3.#include<
constintM=3,N=4;
inti,j,s=0;
for(i=1;
i<
=M;
i++)
for(j=1;
j<
=N;
j++)
s+=i*j;
”s=”<
s<
解:
s=60
4.#include<
inta=2,b=5,c=0;
if(a+b>
10)c=a*b;
elsec=3*a+b;
if(c<
=20)cout<
c*c;
elsecout<
4+c-5;
a=a+b;
b=a+b;
c+=a+b;
a,b,c="
'
c<
121a,b,c=7,12,30
5.#include<
intx=5;
switch(2*x-3){
case4:
x<
’’;
case7:
2*x+1<
case10:
3*x-1<
break;
default:
default"
switchend."
1114switchend
6.#include<
iomanip.h>
math.h>
inta[4]={36,-5,73,8};
inti,y;
for(i=0;
4;
if(a[i]<
0)y=1;
elseif(a[i]<
10)y=a[i]*a[i]+3;
60)y=4*a[i]-5;
elsey=int(sqrt(a[i]));
//sqrt(x)为取x的平方根函数
setw(5)<
a[i]<
y;
36139-51738867
四、指出程序或函数的功能
inti,s=0;
for(i=2;
=30;
i+=2)s+=i*i;
s="
计算并输出22+42+62+...+302的值
inti=10,a;
while(i>
0){
a=rand()%90+10;
intj,k=int(sqrt(a)+1e-5);
//sqrt(x)为求x的平方根函数
for(j=2;
j<
=k;
j++)
if(a%j==0)break;
if(j>
k){cout<
i--;
}
随机产生出10个10至99之间的素数并显示出来。
3.voidtrans(intx)
{
chara[10];
inti=0,rem;
do{
rem=x%16;
x=x/16;
if(rem<
10)a[i]=48+rem;
//’0’字符的ASCII码为48
elsea[i]=65+rem;
//’A’字符的ASCII码为65
i++;
}while(x!
=0);
0)cout<
a[--i];
此函数用于把十进制整数x转换为十六进制数字串输出。
doublef1(intn){
doublesign=1,s=1;
for(inti=2;
=n;
s+=sign/(i*i);
sign*=-1;
returns;
inta;
cin>
>
a;
f1(a)<
计算并输出1+
的值,其中a的值由键盘输入。
5.doublef1(doublea,doubleb,charop){
switch(op){
case’+’:
returna+b;
case’-’:
returna-b;
case’*’:
returna*b;
case’/’:
if(b==0){
dividedby0!
exit
(1);
}
elsereturna/b;
operatorerror!
以参数a和b为运算对象,以参数op为四则算数运算符,求出运算结果并返回。
intx,y;
x;
y=int(sqrt(x));
//sqrt(x)为求x的算术平方根
for(inti=1;
=y;
if(x%i==0)cout<
”x=”<
’*’<
x/i<
把从键盘上输入的一个整数X分解为所有可能的每两个因子之积。
C++语言程序设计作业
(二)
1.函数调用不可以(D)。
A.出现在一个表达式中
B.出现在执行语句中
C.作为一个函数的实参
D.作为一个函数的形参
2.以下正确的描述是(B)。
A.函数的定义可以嵌套,函数的调用不可以嵌套
B.函数的定义不可以嵌套,函数的调用可以嵌套
C.函数的定义和函数的调用均可以嵌套
D.函数的定义和函数的调用均不可以嵌套
3.若用数组名作为函数调用的实参,传递给形参的是(A)。
A.数组的首地址B.数组中第一个元素的值
C.数组全部元素的值D.数组元素的个数
4.以下错误的描述是(D)。
A.被调用函数中可以不用return语句
B.被调用函数中可以用多个return语句
C.被调用函数中,如果有返回值,就一定要有return语句
D.被调用函数中,一个return语句可返回多个值给调用函数
5.以下正确的描述是(C)。
A.不允许设置参数的默认值
B.设置参数的默认值只能在定义函数时设置
C.设置参数的默认值时,应该设置右边的参数
D.设置参数的默认值时,应该全部参数都设置
6.采用重载函数的目的是(D)。
A.实现共享B.减少空间
C.提高速度D.使用方便,提高可读性
7.将两个字符串连接起来组成一个字符串时,选用(C)函数。
A.strlen()B.strcap()C.strcat()D.strcmp()
8.以下叙述中正确的是(B)。
A.使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值
B.使用const定义的常量名有类型之分,其值在程序运行时是不可改变的
C.在程序中使用内联函数使程序的可读性变差
D.在定义函数时可以在形参表的任何位置给出缺省形参值
9.下面的标识符中,(C)是文件级作用域。
A.函数形参B.语句标号C.外部静态类标识符D.自动类标识符
10.以下叙述不正确的是(D)。
A.宏替换不占用运行时间B.宏名无类型
C.宏替换只是字符替换D.宏名必须用大写字母表示
1.含随机函数的表达式rand()%20的值在__0___至__19____区间内。
2.在switch语句中,每个语句标号所含关键字case后面的表达式必须是整型_常量_。
3.在if语句中,每个else关键字与它前面同层次并且最接近的___if_____关键字相配套。
4.作为语句标号使用的C++保留字case和default只能用于__switch______语句的定义体中。
5.执行switch语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时___不停止_____执行。
6.若while循环的“头”为“while(i++<
=10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行__11____次后正常结束。
7.若do循环的“尾”为“while(++i<
10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行__10____次后正常结束。
8.当在程序中执行到__break_语句时,将结束本层循环类语句或switch语句的执行。
9.当在程序中执行到_continue__语句时,将结束所在循环语句中循环体的一次执行。
10.在程序中执行到_return__语句时,将结束所在函数的执行过程,返回到调用该函数的位置。
constintT=6;
inti,j;
=T;
i+=2)
for(j=2;
j+=2){
if(i+j<
T)cout<
’+’;
elsecout<
’*’;
++*+*****
inta,b,c=0;
for(a=1;
a++)
for(b=6;
b>
1;
b-=2){
if((a+b)%2==0)c+=a+b;
elsec+=a*b;
if(b==2)cout<
’’<
}
1212
2230
3266
constintB=2;
intp=1,s=1;
while(s<
50){
p*=B;
s+=p;
s=63
intx=24,y=88;
inti=2,p=1;
while(x%i==0&
y%i==0){
p*=i;
x/=i;
y/=i;
i++;
}while(x>
=i&
y>
=i);
p*x*y<
264
constintN=3;
inta[N][N]={{7,-5,3},{2,8,-6},{1,-4,-2}};
intb[N][N]={{3,6,-9},{2,-8,3},{5,-2,-7}};
inti,j,c[N][N];
N;
i++)//计算矩阵C
for(j=0;
c[i][j]=a[i][j]+b[i][j];
i++){//输出矩阵C
cout<
c[i][j];
101-6
40-3
6-6-9
inta=5;
voidmain(){
intb=a+20;
inta=10;
{inta=0,b=0;
6;
a+=i;
b+=a;
1025
1535
四、指出程序或函数的功能
1.voidf2(doublea[],intn)
inti;
doublesum=0;
n;
i++)sum+=a[i];
sum/=n;
if(a[i]>
=sum)cout<
显示输出数组a[n]中大于等于平均值的所有元素值。
2.voidf4(chara[M][N])
intc1,c2,c3;
c1=c2=c3=0;
M;
if(strlen(a[i])<
5)c1++;
elseif(strlen(a[i])>
=5&
strlen(a[i])<
15)c2++;
elsec3++;
c1<
c2<
’’