C++程序设计习题大荟萃

发布时间 : 星期三 文章C++程序设计习题大荟萃更新完毕开始阅读

5. 假定一个参数说明为const char *p,则在函数体

中______(能够/不能够)改变p所指向的存储空间的内容,但______改变p指针的内容。 6. 假定一个参数说明为int &x,则进行函数调用时,

它是对应______的别名。

7. 一个函数带有函数声明时,则参数的默认值应该

在______(函数定义/函数声明)中给出。

8. 在进行函数调用时,将把______传送给非引用参

数,把实参的______传送给引用参数。

9. 函数执行中对引用参数的访问实际上就是对相

应______的访问。

10. 当函数的返回类型为void 时,在函数体中可以

使用______语句,否则必须使用______语句返回一个值。

11. 当实参为一个数组名时,对应的形参必须是

______类型或______类型。

12. 变量的四种作用域分别为______、______、______

和______。

13. 不同作用域范围内的变量______(能够/不能够)

同名。

14. 当一个函数的非引用参数为a,假定它对应的实

参也为a,则在函数体中对a的访问与对应的实参a______(有关/无关)。

15. 当一个函数的引用参数为a,假定它对应的实参

也为a,则在函数体中对a的访问与对应的实参a______(有关/无关)。这两个变量的作用域______(相同/不同)。

16. 当一个函数的引用参数为a,假定它对应的实参为

b,则它们对应的作用域______(相同/不同),访问它们的存储空间______(相同/不同)。

17. 在函数定义的第一层复合语句内______(能够/

不能够)定义与形参同名的变量,因为它们作用域______(相同/不同)。

18. 函数的形参和函数体内的变量______(可以/不可

以)与全局域或文件域的对象同名。

19. 在两个嵌套的不同作用域内若分别定义有同名对

象,当在内层作用域访问这个对象时,将访问的是在______(内层/外层)定义的对象,除此之外将访问的是在______(内层/外层)定义的对象。 20. 在一个程序文件中定义的函数,若要在另一个程

序文件中访问,则必须在该文件开始给出一条该函数的______对其进行说明。

21. 在一个函数体中可以使用函数调用表达式调用其

他函数,也可以调用______。

22. 在函数体中又调用自身函数称为______调用,该

函数称为______函数。

17

23. 当两个函数的函数名______,但参数的个数或对

应参数的类型______时,则称为重载函数。

24. 当一个函数为void f(int ,char=’a’),另一个

函数为void f(int),则它们______(是/不是)重载函数,在一个程序中______(可以/不可以)同时定义这两个函数。

25. 一个函数模板中的类型参数所对应的具体类型由

调用该函数模板的______决定。

26. 当在同一个程序中存在一个普通函数是一个函数

模板的重载函数时,则与函数调用表达式相符合的______将被优先调用执行。

27. 当一个函数调用表达式只能与一个函数模板相符

合时,将首先根据函数模板生成一个______,然后再调用它执行。

28. 在函数定义的参数表中,也可以使用函数参数,

假定一个函数参数说明为int &ff(int[],int),则等价的函数指针说明为______。

二、给出下列程序运行后的输出结果并上机验证 1. #include

void main() {

int a=10,b=20;

cout<

int b=a+35;

cout<

cout<

2. #include

int a=5; void main() {

int a=10,b=20;

cout<

for(int i=1;i<6;i++)

{ a+=i;b+=a; }

cout<

cout<

3. #include

int f1(int x,int y) {

x=x+y;y=x+y;

cout<<”x=”<

}

void main() {

int x=5,y=8; int z=f1(x,y);

cout<<”x=”<

4. #include

void f2(int&x,int&y) {

int z=x;x=y;y=z; }

void f3(int *x,int *y) {

int z=*x;*x=*y;*y=z; }

void main() {

int x,y;

x=10;y=26;

cout<<”x,y=”<

cout<<”x,y=”<

cout<<”x,y=”<

cout<<”x,y=”<

5. #include

void f4(int a[],int n,int &s) {

s=0;

for(int i=0;i

void main() {

int a[5]={2,7,5,4,9};

int b[10]={4,8,6,9,2,10,7,12,6,15}; int x; f4(a,5,x); int y=x; f4(b,8,x);

y+=x;

f4(b+3,5,x); cout<

}

6. #include

int x=5;

void f5(int a); int f6(int x); void main() {

int x=3; f5(x); f5(x+4);

cout<

void f5(int a) {

a+=x;

cout<

int f6(int x) {

x*=3;

return x+1; }

7. #include

#include

char *f7(char *&a,int n) {

a=new char[n];

strcpy(a,”motion”); char *b=new char[n]; strcpy(b,”telephone”); return b; }

void main() {

char *p1;

char *p2=f7(p1,12);

cout<

8. #include

const N=15;

int f8(char a[][N],int m) {

18

int c=0;

for(int i=0;i

int j=0;

while (a[i][j]) {

if(a[i][j]>=’0’&&a[i][j]<=’9’) c++;

j++; } }

return c;

}

void main() {

char b[4][N]={“12ab3”,”70542”,”abc25”,”x+y=26”};

int c1=f8(b,4); int c2=f8(b+2,2);

cout<

9. #include

int f9(int x) {

cout<

if(x<=0){cout<

void main() {

int x=f9(6); cout<

10. #include

const N1=8,N2=6;

int average(int a[],int n) {

int s=0;

for(int i=0;i

double average(double a[],int n) {

double s=0;

for(int i=0;i

19

}

void main() {

int a[N1]={3,6,5,10,8,2};

double b[N2]={3.2,5,6.2,5.6,4.9,8.4}; int v1;double v2; v1=average(a,N1); v2=average(b,N2);

cout<<”v1=”<

11. #include

const N=10;

template

bool insert(DataType a[],int &n,DataType x); template

void print(DataType a[],int &n); void main() {

int a1[N]={25,48,50,82,66,43}; char a2[N]=”student”; char *a3[N]={“File”,”Edit”,”Insert”,”Project”};

int b1=6,b2=7,b3=4; int n=75;char ch=’w’;char *p=”Build”; insert(a1,b1,n); insert(a2,b2,ch); insert(a3,b3,p); print(a1,b1); print(a2,b2); print(a3,b3); }

template

bool insert(DataType a[],int&n,DataType x) {

if(n<0){cout<<”操作失败!”<

a[n]=x;n++;

cout<<”操作成功!”<

template

void print(DataType a[],int &n) {

for(int i=0;i

{

cout<

if((i+1)%4==0) cout<

if(i%4) cout<

12. #include

void fun10(int *a[],int m,int n) {

int i,j;

for(i=0;i

a[i][j]=(i+1)*(j+1); }

void main() {

int m1,n1;

cout<<”输入矩阵的行数和列数:”; cin>>m1>>n1;

int **b=new int *[m1]; fun10(b,m1,n1);

for(int i=0;i

for(int j=0;j

二、指出下列每个函数的功能

1. int fun1(int n)

{

int p=1,s=0;

for(int i=1;i<=n;i++) {

p*=i;s+=p; }

return s; }

2. #include

#include #include

double fun2(doble x,double y,char op) {

switch(op)

20

{

case ‘+’: return x+y; case ‘-’: return x-y; case ‘*’: return x*y; case ‘/’:

if(fabs(y)<1.0E-6)

{

cout<<”除数为0,退出运行!”<

return x/y; default:

cout<<”运算符非法!”<

exit(1); }

}

3. void fun3(int a[],int n)

{

int i,j,x;

for(i=1;i

{

x=a[i];

for(j=i-1;j>=0;j--)

if(x

4. void fun4(double&x,doble&w,int n)

{

cout<<”输入一个实数:”; cin>>x; double y=1; w=0;

for(int i=1;i<=n;i++) {

y*=x;w+=y/i; } }

5. void fun5(char *a,const char *b)

{

while(*b) *a++=*b++; *a=0; }

联系合同范文客服:xxxxx#qq.com(#替换为@)