一、观看视频
【01】函数的声明和使用
【02】阶乘之和
二、研读学生讲义
【学生讲义】【01】函数的声明和使用
【学生讲义】【02】阶乘之和
三、练习题(不清楚回头查看有关视频或讲义)
【01】 下面是编程中函数的定义,不过先后顺序一打乱,请按正确的顺序排好它们。
①如果相同功能的程序片段在程序中的不同地方反复出现,就可以将这些程序片段作为独立的整体,用一个标识符给它起一个名字。
②这样的程序片段,就是函数。
③程序设计中的三种基本控制结构(顺序、分支、循环)可以组成任何程序。
④凡是程序中出现该片段的地方,只要简单地写上其标识符即可。
【02】下面是函数的好处,错误的是:
①这样的编制的程序结构清晰,逻辑关系明确,无论是编写、阅读、调试还是修改,都会带来极大的好处。
②函数有利于结构化程序设计。
③函数能够提高程序的运行速度。
④一个复杂的问题可以分解成若干个子问题来解决,如果子问题依然很复杂,还可以继续分解,直到每个子问题都可以是一个具有独立任务的模块。
【03】有关主函数与子函数的描述,错误的是:
①主函数:main()。
②子函数:除了主函数以外的函数。
③程序可以有主函数或子函数,但不能没有函数。
④子函数不能单独执行。
【04】填空(库函数或自定义函数):
___________________:我们编程是自己实现的函数。
___________________:C++提供的各种标准函数,如abs(),sqrt()等。
【05】有关函数名的描述,错误的是:
①函数名是标识符。
②主函数名必须为main。
③函数名称不能以大写字母开头。
④非主函数的名称最好取有助于记忆的名字。
【06】有关函数形式参数的说明,下面错误的是:
①形式参数(简称形参)表,可以是空的(即五参数函数)。
②形式参数表,也可以有多个形参,形参间用逗号隔开。
③如果无参数,可以省略函数后面的小括号。
④形参必须有类型说明,形参可以是变量名、数组名或指针名。
【07】有关形参和实参的关系的面试,错误的是:
①形参的作用是实现主调函数与被调函数之间的关系。
②函数在没有被调用的时候,形参已被分配适合类型的储存空间。
③函数在被调用是才执行,也即是在被调用是才由主调函数将实际参数(实参)的值赋予形参。
【08】有关函数体的描述,错误的是:
①函数中对外层一对大括号“{}”括起来的若干个说明语句和执行语句组成了一个函数的函数体。
②函数体内的语句决定该函数功能。
③如果函数内部没有任何可执行语句,就叫做空函数。
④函数可以嵌套定义,即在函数内可以定义另一个函数。
⑤函数允许嵌套使用。
【09】有关函数的返回类型,错误的描述是:
①函数的返回类型是函数的返回值的类型。
②如果函数不需要返回值,就把返回类型定义为void。
③如果返回类型定义为void,函数体内不可以有return语句。
【10】有关函数的声明,下面的代码中,错误的是:
①
·
·
·
·
·
·
·
·
·
·
·
·
·
#include<iostream>using namespace std;int max2(int, int);int main(){ int a = max2(3, 5); int b = max2(10, -1); cout << a << " " << b << endl; return 0;}int max2(int x, int y){ return (x > y) ? x : y;}
②
·
·
·
·
·
·
·
·
·
·
·
·
·
#include<iostream>using namespace std;int max2(int a, int b);int main(){ int a = max2(3, 5); int b = max2(10, -1); cout << a << " " << b << endl; return 0;}int max2(int x, int y){ return (x > y) ? x : y;}
③
·
·
·
·
·
·
·
·
·
·
·
·
·
#include<iostream>using namespace std;int max2(int x, int y);int main(){ int a = max2(3, 5); int b = max2(10, -1); cout << a << " " << b << endl; return 0;}int max2(int x, int y){ return (x > y) ? x : y;}
④
·
·
·
·
·
·
·
·
·
·
·
·
·
#include<iostream>using namespace std;int max2(x, y);int main(){ int a = max2(3, 5); int b = max2(10, -1); cout << a << " " << b << endl; return 0;}int max2(int x, int y){ return (x > y) ? x : y;}
⑤
·
·
·
·
·
·
·
·
·
·
·
·
·
#include<iostream>using namespace std;int max2(int, int){}int main(){ int a = max2(3, 5); int b = max2(10, -1); cout << a << " " << b << endl; return 0;}int max2(int x, int y){ return (x > y) ? x : y;}
⑥
·
·
·
·
·
·
·
·
·
·
·
·
#include<iostream>using namespace std;int max2(int x, int y){ return (x > y) ? x : y;}int main(){ int a = max2(3, 5); int b = max2(10, -1); cout << a << " " << b << endl; return 0;}
【11】有关函数的调用,下面代码错误的是:
①
·
·
·
·
·
·
·
·
·
·
·
·
·
#include<iostream>using namespace std;int max2(int, int);int main(){ int a = 5; int b = max2(a, 3); cout << a << " " << b << endl; return 0;}int max2(int x, int y){ return (x > y) ? x : y;}
②
·
·
·
·
·
·
·
·
·
·
·
·
#include<iostream>using namespace std;double max2(double, double);int main(){ double b = max2(10, -1.9); cout << max2(3.88, 5) << " " << b << endl; return 0;}double max2(double x, double y){ return (x > y) ? x : y;}
③
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
#include<iostream>#include<cmath>using namespace std;double max2(double, double);double max3(double[]);int main(){ double a = max2(10, sqrt(99)); double x[] = {5, 3}; double b = max3(x); double c = max2(a,b); cout << c << endl; return 0;}double max2(double x, double y){ return (x > y) ? x : y;}double max3(double x[]){ return (x[0] > x[1]) ? x[0] : x[1];}
④
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
#include<iostream>#include<cmath>using namespace std;double max2(double, double);double max3(double[]);int main(){ max2(10, sqrt(99)); double x[] = {5, 3}; double b = max3(x); cout << b << endl; return 0;}double max2(double x, double y){ return (x > y) ? x : y;}double max3(double x[]){ return (x[0] > x[1]) ? x[0] : x[1];}
⑤
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
#include<iostream>#include<cmath>using namespace std;void max2(double, double);double max3(double[]);int main(){ max2(10, sqrt(99)); double x[] = {5, 3}; double b = max3(x); cout << b << endl; return 0;}void max2(double x, double y){ cout << ( (x > y) ? x : y ) << endl;}double max3(double x[]){ return (x[0] > x[1]) ? x[0] : x[1];}
⑥
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
#include<iostream>#include<cmath>using namespace std;void max2(double, double);double max3(double[]);int main(){ double x[] = {5, 3}; double b = max3(x); cout << max2(10, sqrt(99)) << " "<< b << endl; return 0;}void max2(double x, double y){ cout << ( (x > y) ? x : y ) << endl;}double max3(double x[]){ return (x[0] > x[1]) ? x[0] : x[1];}
【12】有关函数返回的代码片段,错误的是:
①
·
·
·
·
void fa(){ cout << "test void" << endl;}
②
·
·
·
·
·
void fb(int x, char y){ cout << "test void " << x << " " << y << endl; return;}
③
·
·
·
·
·
int fc(double a[]){ cout << "test type" << a[0] << endl; return 1+1;}
④
·
·
·
int fd(int x[]){ return x;}
⑤
·
·
·
int fe(double x){ return x;}
【13】编程求:1!+2!+3!+...+10!。
【14】OpenJudge练习
【OpenJudge-1.6-08】石头剪刀布
【OpenJudge-1.12-02】短信计费