C++蓝桥等考导学/十二级:函数/之一:(1函数)

一、观看视频

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(intint){}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】短信计费