C++课件——第3章(函数)习题课
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题
∙在函数声明中,()是不必给出的
A)函数参数的类型和参数名B)函数名
C)函数的类型D)函数体
∙一个函数带有参数说明时,则参数的默认值应该在()中给出。
A)函数定义B)函数声明
C)函数定义或声明D)函数调用
∙在C++语言中函数返回值类型是由()决定的
A)调用该函数时系统临时
B)return语句中表达式类型
C)定义该函数时所指定的类型
D)调用该函数的主调函数类型
∙下列叙述中正确的是()
A)每个函数至少具有一个参数B)每个函数都必须返回一个值
C)函数在被调用前必须声明D)函数不能自己调用自己
∙若有以下函数调用语句:f(m+n,x+y,f(m+n),z(x,y)),在此函数中实参个数是()A)6 B)5
C)4 D)3
∙不能作为函数重载判断依据的是()
A)const B)返回类型C)参数个数D)参数类型
∙一个函数为void f(int,char =’a’),另一个函数为void f(int),则它们()A)不能在同一个程序中定义B)可以在同一个程序中定义并可重载C)可以在同一个程序中定义,但不可重载D)以上说法均不正确
∙函数定义为Fun(int &i),变量定义n=100,则下面调用正确的是()
A)Fun(20) B)Fun(20+n) C)Fun(n) D)Fun(&n)
∙有以下程序:
#include<iostream>
using namespace std;
int main(){
void function(double val);
double val;
function(val);
cout<<val;
return 0;
}
Void function(double val)
{
Val = 3;
}
编译运行后出现的情况是()
A)编译错误,无法运行B)输出3 C)输出3.0 D)输出一个不确定的值
∙有以下程序:
#include<iostream>
using namespace std;
void fun (int i,int j)
{
cout<<(i+j)<<endl;
}
void fun (int i)
{
cout<<i++<<endl;
}
int main(){
int a = 1;
fun(a);
return 0;
}
编译运行后输出结果是()
A)1 B)2 C)3 D)4
二、填空
∙在C++中,函数不需要使用相应的函数原型语句加以声明。
∙当调用一个函数时,整个调用过程分为三步进行,第一步是,第二步是,第三步是,即回到函数调用表达式的位置。
∙假设有如下函数定义:void Fun(int x, int y = 100);则语句Fun(5)与语句等价。
∙在函数调用时,将实参的传递给值参数,把实参的传递给引用参数。
∙已知递归函数f()的定义如下:
int f(int n)
{
If(n<1) return 1;
else return n*f(n-2);
}
则函数调用语句f(5)的返回值是
∙下面的函数Fun未使用中间变量实现两个数的交换,请完成下列函数的定义void Fun(int& x,int& y)
{
x+= y;
y= ;
;
}
∙已知有函数如下定义:
int f()
{
static int s = 0;
s += 2;
return s;
}
则在某程序中第二次执行函数调用语句时,函数f()的返回值是
三、阅读程序
∙阅读下面程序,如果程序有错,请指出错误并说明错误原因。
如果没有错误,请给出运行结果。
#include<iostream>
void Fun(int m)
{
int num = 20;
cout<<”The Fun’s num is”<< num<<endl;
}
void main()
{
int num = 10;
cout<<”The main’s num is “<<num<<endl;
Fun(num);
{
int num = 30;
cout<< “The Field’s num is”<<num<<endl;
}
cout<<”the main’s num is”<<num<<endl;
}
∙假定输入的10个字符为“abcdefghij”,请给出运行结果。
#include<iostream>
void Fun(int);
void main(){
Fun(10);
}
void Fun(int m){
char ch;
if(m<=1){
cin>>ch;
cout<<ch;
}
else{
cin>>ch;
Fun(m-1);
cout<<ch;
}
}
∙阅读下面程序,如果程序有错,请指出错误并说明错误原因。
如果没有错误,请给出运行结果。
void main()
{
const int x;
const int y = 100;
y = x ++;
cout<<y<<endl;
}
∙阅读下面程序,如果程序有错,请指出错误并说明错误原因。
如果没有错误,请给出运行结果。
int Fun(int x, int y)
{
x = x + y;
y = x + y;
cout<<x<<y<<endl;
return x+y;
}
void main()
{
int x = 5,y = 8;
int z = Fun(x,y);
cout<<x<<y;
cout<<z<<endl;
}
∙请给出运行结果。
int f(int a)
{
return ++a;
}
int g(int& a)
{
return ++a;
}
void main()
{
int m=0,n=0;
m += f(g(m));
n += f(f(n));
cout<<m<<endl;
cout<<n<<endl;
}
∙阅读下面程序,如果程序有错,请指出错误并说明错误原因。
如果没有错误,请给出运行结果。
void fun(int a = 10, int b = 20);
void main()
{
int x = 100;
void fun(int a=1000,int b=1000);
fun(x);
}
void fun(int a, int b)
{
cout<<a<<endl;
cout<<b<<endl;
}
四、程序设计
∙编写一个函数,判断两个自然数是否是自然数对。
所谓自然数对是指两个自然数的和与差都是平方数。
如17-8 = 9,17+8=25
∙编写一个递归函数完成以下公式的运算:sum(n)=1-1/2+1/3-1/4+……,(其中n>0)。