exit
(1);
}
}
解:
以参数 a 和 b 为运算对象,以参数 op 为四则算数运算符,求出运算结果并返回。
6. #include
#include
void main()
{
int x,y;
cin>>x;
y=int(sqrt(x)); //sqrt(x)为求 x 的算术平方根
for(int i=1;i<=y;i++)
if(x%i==0) cout<<”x=”<
}
解:
把从键盘上输入的一个整数 X 分解为所有可能的每两个因子之积。
7
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. 宏名必须用大写字母表示
8
二、填空题
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__语句时,将结束所在函数的执行过程,返回到调用该函
数的位置。
三、写出程序运行结果
1. #include
const int T=6;
void main()
{
int i,j;
for(i=1;i<=T;i+=2)
for(j=2;j<=T;j+=2) {
if(i+jelse cout<<’*’;
}
}
解:
++*+*****
2. #include
void main()
{
int a,b,c=0;
for(a=1;a<4;a++)
for(b=6;b>1;b-=2) {
if((a+b)%2==0) c+=a+b; else c+=a*b;
if(b==2) cout<}
}
9
解:
1 2 12
2 2 30
3 2 66
3. #include
const int B=2;
void main()
{
int p=1,s=1;
while(s<50) {
p*=B;
s+=p;
}
cout<<"s="<
}
解:
s=63
4. #include
void main()
{
int x=24,y=88;
int i=2,p=1;
do {
while(x%i==0 && y%i==0) {
p*=i;
x/=i;
y/=i;
}
i++;
}while(x>=i && y>=i);
cout<
}
解:
264
5. #include
const int N=3;
void main()
{
int a[N][N]={{7,-5,3},{2,8,-6},{1,-4,-2}};
int b[N][N]={{3,6,-9},{2,-8,3},{5,-2,-7}};
int i,j,c[N][N];
for(i=0;ifor(j=0;jc[i][j]=a[i][j]+b[i][j];
for(i=0;ifor(j=0;j
10
cout<cout<}
}
解:
10 1-6
40 -3
6 -6 -9
6. #include
int a=5;
void main() {
int b=a+20;
int a=10;
cout<{int a=0,b=0;
for(int i=1; i<6; i++) {
a+=i; b+=a;
}
cout<}
cout<}
解:
10 25
15 35
10 25
四、指出程序或函数的功能
1. void f2(double a[], int n)
{
int i; double sum=0;
for(i=0;isum/=n;
for(i=0;iif(a[i]>=sum) cout<cout<}
解:
显示输出数组 a[n]中大于等于平均值的所有元素值。
2. void f4(char a[M][N])
{
int c1,c2,c3;
c1=c2=c3=0;
for(int i=0;iif(strlen(a[i])<5) c1++;
else if(strlen(a[i])>=5 && strlen(a[i])<15) c2++;
else c3++;
cout<
11
}
解:
对于二维字符数组 a 中保存的 M 个字符串,分别统计并输出其长度小于 5、大于等于
5