第5章函数

更新时间:2023-11-30 16:11:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第5章 函数

练习题5

5.1 判断题

√ 1.函数的调用可以嵌套,函数的定义不能嵌套。

× 2.C++语言中,函数可以用原型说明,也可用简单说明。 × 3.定义函数时,存储类可以缺省,数据类型也可以省略。 × 4.函数可以没有参数,但是不能没有返回值。

× 5.函数定义时必须给出函数体,函数体内至少有一条语句。 √ 6.没有参数的两个函数是不能重载的。

√ 7.函数调用方式有传值调用和引用调用两种,传值调用中又分传值和传址两种。 √ 8.函数的存储类有外部的和静态的两种,它们的作用域分别是程序级的和文件级的。 × 9.没有返回值的函数不能设置为内联函数。

× 10.函数可以设置默认的参数值,默认参数值必须设置在函数定义时的形参上。 5.2 单选题

1.当一个函数没有返回值时,该函数类型应说明为( A )。 A.void B.int C.无 D.任意

2.下列关于设置函数默认的参数值的描述中,错误的是( C )。 A.可对函数的部分参数或全部参数设置默认值

B.在有函数说明时,默认值应设置在函数说明时,而不是定义时 C.设置函数默认参数值时,只可用常量不可用含有变量的表达式 D.设置函数参数默认值应从右向左设置

3.下列关于被调用函数中return语句的描述中,错误的是( D )。 A.一个函数中可以有多条return语句 B.return语句具有返回程序控制权的作用 C.函数通过return语句返回值时仅有一个 D.一个函数中有且仅有一条return语句 4.函数返回值的类型是由( B )决定的。 A.调用该函数的调用函数的类型 B.定义该函数时所指定的类型 C.return语句中表达式的类型

D.接收函数返回值的变量或对象的类型

5.下列设置函数参数默认值的说明语句中,错误的是( C )。 A.int fun(int x , int y=10); B.int fun(int x=5, int =10); C.int fun(int x=5, int y); D.int fun(int x , int y=a+b); (其中,a和b是已定义过具有有效值的变量)

6.下列选择重载函数的不同实现的判断条件中,错误的是( D )。 A.参数类型不同 B.参数个数不同 C.参数顺序不同 D.函数返回值不同

7.已知:int fun (int &a),m=10;下列调用fum()函数的语句中,正确的是( C )。

1

A.fun(&m); B.fun (m*2); C.fun (m); D.fun (m++);

8.在函数的引用调用中,函数的实参和形参分别应是( C )。 A.变量值和变量 B.地址值和指针 C.变量名和引用 D.地址值和引用

9.在函数的传址调用中,函数的实参和形参分别应是( B )。 A.变量值和变量 B.地址值和指针 C.变量名和引用 D.地址值和引用 10.说明一个内联函数时,应加关键字是( A )。

A.inline B.static C.void D.extern 5.3 填空题

1.如果将调用一个函数的过程分为3个步骤,第1步是 转去执行被调用函数 ,第2步是 执行被调用函数的语句 ,第3步是返回操作。

2.函数的存储类分两种,它们分别是 外部 函数和内部函数,其中 内部 函数的存储类说明不可省略,该说明符是 static 。

3.使用关键字inline说明的函数称为 内联 函数,具有相同函数名但具有不同实现的函数称为 重载 函数。

4.在调用一个函数过程中可以直接或间接地调用该函数,则该函数称为 被调用 函数。这种调用称为 嵌套 调用。

5.在引用调用中,函数实参用 变量名 ,形参用 引用名 。 5.4 分析下列程序的输出结果 1.

#include int fun(int n) {

int p(1),s(0); for(int i(1);i

void main() {

int s=fun(4); cout<

2.

#include void fun();

2

void main() {

for(int i(0);i<4;i++) fun(); } void fun() {

int a(0); a++; static int b; b++;

cout<<\ } 答: a=1,b=1 a=1,b=2 a=1,b=3 a=1,b=4

3.

#include int fac(int); void main() {

int s(0);

for(int i(1);i<=5;i++) s+=fac(i);

cout<<\ }

int fac(int n) {

static int b=1; b*=n; return b; }

答: 5!+4!+3!+2!+1!=153

4.

#include int fun(char *,char *); void main() {

char *p1,*p2; p1=\ p2=\ int n=fun(p1,p2);

3

cout<

int fun(char *s1,char *s2) {

while(*s1&&*s2&&*s1++= =*s2++) ; s1--; s2--;

return *s1-*s2; } 答: 2

5.

#include void fun(int,int,int *); void main() {

int a,b,c; fun(5,6,&a); fun(7,a,&b); fun(a,b,&c);

cout<

void fun(int i,int j,int *k) { j+=i; *k=j-i; } 答: 6,6,6

6.

#include int add(int,int =5); void main() {

int a(8);

cout<<\ cout<<\ cout<<\ }

int add(int i,int j) {

return i+j; } 答: sum1=13

4

sum2=21 sum3=29

7.

#include void swap(int &,int &); void main() {

int a(8),b(5);

cout<<\ swap(a,b);

cout<<\ }

void swap(int &i,int &j) { int t; t=i; i=j; j=t; } 答: a=8,b=5 a=5,b=8

8.

#include

void print(int),print(char),print(char *); void main() {

int a(800); print(a); print('a'); print(\ }

void print(int i) {

cout<

void print(char i) {

cout<

void print(char *i) {

cout<

5

本文来源:https://www.bwwdw.com/article/andt.html

Top