第7章 函数

合集下载

C语言程序设计第四版_谭浩强7章

C语言程序设计第四版_谭浩强7章

➢函数的功能
return z; }
函数体
函数首部,不是语 句,行尾无分号
精选课件ppt
函数的返回值,类 型与首部定义一致14
函数的定义
关于函数类型的说明
无返回值的函数类型为void; 有返回值的函数,其类型根据返回值 类型决定;省略类型时默认为int(建议 不要省略)
精选课件ppt
15
函数的调用
int main( )
{ int max(int a[ ],int n);
int x[6],i;
for(i=0;i<=5;i++)
scanf("%d",&x[i]);
printf("max=%d",max(x,6));
return 0;
}
实参为数组名
精选课件ppt
int max(int a[ ],int n) { int m,i; m=a[0]; for (i=1;i<n;i++)
float fac; fac=1; for(i=1;i<=n;i++)
fac=fac*i; return fac;
printf("c="); scanf("%d",&c);
}
sum=factorial(a)+factorial(b)+factorial(c);
printf("%d!+%d!+%d!=%.0f",a,b,c,sum);
函数1 函数2 函数3
函数1 函数2
精选课件ppt
34
变量作用域——局部变量和全局变量

第7章 函数

第7章  函数

第七章 函 数学习和解题要点1.函数的概念和作用函数:是具有一定功能的一个程序块;是C 语言的基本组成单位。

要求掌握函数定义方法,有关函数类型和返回值的相关知识。

要会调用函数,并能处理函数嵌套、递归调用的相关问题。

1) 函数的参数,返回数值(示意图):2.函数的定义存储类型 (返回的)数据类型 函数名(形参说明语句序列) (注:此地分不能有分号) {函数内用的变量说明序列;(临时工作单元) 可执行语句序列;(包括 return(表达式)语句) }函数的返回值一般是通过 return 语句获得的。

返回的数据类型说明一般应该和return 语句中的表达式类型一致,若不一致则以数据类型说明为准。

如函数中没有 return 语句或 return ;函数无返回值,返回一个用户很难确定的值。

说明:函数的数据类型:int char short long float double *类型。

缺省为 int 型。

不返回值为 void 型。

函数的存储类型:内部函数 本文件内有效 static外部函数 可被其他文件函数调用 extern3.函数调用:函数名(实参表)可以为独立语句:函数名(实参表); 表达式中:变量=函数名(实参表)+其他式;实参表与形参表的对应一般要做到三个一致:个数一致类型一致(在学指针时,指针变量和地址对应)次序一致实参都应该己预先说明的,并有确定的值。

一般,函数都应先定义后调用。

对函数返回值是 int 或 char 的可先调用后定义。

如果非int 或 char型的函数一定要先调用后定义,则在函数调用语句前先作一个“申明”,申明的方法是相当于把函数头部抄一遍,加一个分号:存储类型(返回的)数据类型函数名(形参表);(注:此地分号不可少) 4.函数调用的数据传递把实参数据复制给形参,形参变量内数据变化不影响实参--值调用。

main(){ int a=45,b=50;c=max(a,b);}int max(int x,int y){ .............}把实参的地址传给形参,这时形参变量应为指针变量,因此形参实参共用一个内存位置,形参值的变化也即实参值的变化--地址调用(名调用)。

c语言第7章函数练习题

c语言第7章函数练习题
3. 以下对 C语言函数的有关描述中,正确的是( )。 A. 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B. C函数既可以嵌套定义又可以递归调用 C. 函数必须有返回值,否则不能使用函数 D. C程序中有调用关系的所有函数必须放在同一个源程序文件中
4. C语言程序中,当函数调用时( )。 A. 实参和形参各占一个独立的存储单元 B. 实参和形参共用一个存储单元 C. 可以由用户指定是否共用存储单元 D. 计算机系统自动确定是否共用存储单元
fun(int x,int y,int z)
{ z=x*x+y*y;}
main()
{
int a=31;
fun(5,2,a);
printf("%d",a);
}
A.0
B.29
30.下列程序执行后的输出结果是( )。
voidfunc1(int i);
voidfunc2(int i);
charst[]="hello,friend!";
printf("%d\n",x);
}
上面程序的输出结果是( )。
A.720
B.120
C.24
39.下面程序的输出是( )。
main()
{
intt=1;
fun(fun(t));
}
fun(inth)
{
staticinta[3]={1,2,3};
intk;
for(k=0;k<3;k++) a[k]+=a[k]-h;
B. 不同函数中,可以使用相同名字的变量
C. 形式参数是局部变量
D. 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效

第7章函数

第7章函数

7.4 函数参数传递和函数的值
• 函数的参数分为形参和实参两种。形参出现在函数 定义中,在整个函数体内都可以使用,离开该函数 则不能使用。实参出现在主调函数中,进入被调函 数后,实参变量也不能使用。
• 形参和实参的功能是传送数据。当发生函数调用时, 主调函数把实参的值传送给被调函数的形参,从而 实现主调函数向被调函数的数据传送。这样的参数 传递方式叫做“数值传递”,简称“值传递”。
函数调用过程中,若形参的值发生改变,不会影响实参中的 值发生变化。
【例7.5】编程求n+(n-1)+(n-2)+…+1的和。 #include <stdio.h> void s(int n) void main() 程序运行过程与结果为: {int i; {int n; input number n: for(i=n-1;i>=1;i--) printf("input number n\n"); 5↙ n=n+i; scanf("%d",&n); ********* printf("n=%d\n",n); } printf("*********\n"); /*调用函数s之前,输出n值*/ n=5 printf("n=%d\n",n); /*调用函数s之前,输出n值*/ ********* printf("*********\n"); /*在函数s内部,输出n值*/ n=15 void s(int); ********* /*调用前,说明函数s*/ s(n); n=5 /*调用函数s之后,输出n值*/ printf("*********\n"); ********* printf("n=%d\n",n); /*调用函数s之后,输出n值*/ printf("*********\n"); }

C语言程序设计_课件_第七章(适于清华谭浩强版)

C语言程序设计_课件_第七章(适于清华谭浩强版)

注意:
(1) return(表达式); 和return 表达式;都 是正确的。 (2) 带返回值的函数只能返回一个值。 (3) 在函数定义时,允许使用多个return语句, 但是应尽量在末尾使用一个return语句。 (4) return语句中的表达式与函数的返回值类 型不匹配时,以函数定义时的返回类型为准。

问题的提出 函数基础 函数的定义 函数说明 函数调用 参数传递 程序举例 递归调用 变量的存储类别
7.1 问题的提出
例6.20它可以解决的问题有: ①输入若干个学生的姓名、某课程的期中 和期末成绩,并计算每个学生的总评成绩; ②计算总评成绩的分数段情况; ③输出所有学生的姓名、期中、期末和总 评成绩; ④查询某个学生的总评成绩。
函数调用时需要传递数据。调用函数要将 实参的值传送给被调用函数的形参。 若函数定义首部是 double power(double x,int n) /*函数定义 */ 调 用 形 式 是 可 以 是 power(y,m) , 也 可 以 是 power(3.0,5)。 其中,x和n是形式参数,y和m是实际参数,3.0 和可以是一个变量 名,因为变量名也构成一个表达式,形式参数只 能是变量名。当实际参数是变量名时,它与形参 的名称既可以相同,也可以不同,只是要注意, 在函数定义内部应该使用形参的名称。 (2) 实际参数与形式参数的参数个数、数据类型 和顺序都应该一致,如果数据类型不一致,系统 将按照自动转换规则进行转换。
7.3 函数的定义
7.3.1 函数的定义形式 在C语言中函数定义的形式有两种。
第一种:
函数返回值的数据类型说明 函数名称(带有类型说明的参数表)
{
函数内部数据说明; 语句;
}
第二种:

第7章贝塞尔(Bessel)函数

第7章贝塞尔(Bessel)函数

(4) 三类函数的关系:

(x)
=
1 2
⎡⎣ Hν(1)
(x)
+
Hν( 2 )
( x) ⎤⎦

(x)
=
1 2i
⎡⎣Hν(1) (x)

Hν(2) (x)⎤⎦
15
7.2 贝塞尔函数的母函数,递推关系等
1. 母函数
P68, 例3.4.2
∑ ∑ ∑ f
( x, t )
=
x (t−1)
e2 t
=
∞ n=−∞
k =0
s=0
k =0
s=0
k =0
要使上式在 z < R 的区域内成立,左边 z 的各次幂的系数必须等于零。
5
由 z 的最低次幂的系数为零得:
C0[ρ(ρ −1) + a0ρ + b0 ] = 0
( a0 , b0 已知)
C0 ≠ 0 ⇒ ρ(ρ −1) + a0 ρ + b0 = 0
(10)
—— ρ 的二次方程,指标方程
k =0
k+v
=

C2n X
n=0
2n+v
=
∞ n=0
(−1)n Γ(ν 22n n!Γ(ν
+ 1)C0 + n +1)
X
2 n +ν
另一个特解为: (ρ2 = −ν )
∑ ∑ ∑ y2(x) =

Ck X k −ν
k =0
=

C2n X 2n−ν
n=0
=
∞ (−1)n Γ(−ν +1)C0 n=0 22n n!Γ(−ν + n +1)

C语言程序设计基础 第7章

C语言程序设计基础 第7章

模块化程序设计的基本要点是贯彻“自顶向下,逐步细 化”的思想方法,即将一个复杂功能的编程问题,划分成若 干个功能相对简单的子问题。这种划分可以逐层进行,直到 便于编程为止。在C语言中,一个模块的功能由一个函数来 实现。顶层函数是主函数main( )。功能模块与C语言函数的 关系如图7.1所示。
图7.1 模块与函数
第7章 函数——模块化程序设计方法的实现
7.1 模块化程序设计方法与函数 7.2 函数的定义 7.3 函数的调用 7.4 函数调用的条件与函数声明 7.5 函数的嵌套调用和递归调用 7.6 变量的作用域与函数间的数据传递 7.7 用函数实现模块化程序设计 实训任务十三 熟悉函数的功能及其使用方法 实训任务十四 学习模块化程序设计的方法
② 函数功能实现部分,是一个程序段,要依据实现某 种功能的算法进行设计。
③ 函数体最后使用一个“return(返回值);”语句,括 号中的返回值是一个需传带给主调函数的数据对象。如果没 有返回值,可以不要这个语句。VC++ 6.0系统中提倡在 main( )函数体后使用一个“return 0;”语句,表示正常返 回系统,否则会出现警告。如果函数体仅是一对花括号,没 有任何语句,就是空函数。空函数一般是无参函数。
7.2 函 数 的 定 义
怎样定义函数?定义函数要考虑哪些问题?
定义函数要解决两个方面的问题:一是函数间的接口问 题,二是功能实现问题。接口问题包括如何被上层函数调用 ,调用时需传递什么数据,调用返回时需传带什么数据。功 能实现问题就是如何实现模块的过程算法。
函数定义的一般形式为
基类型符 函数名(类型符形式参数 1,类型符形式参数 2,…) {
函数体内数据对象定义或声明部分; 函数功能实现部分; return(返 回值); }

C语言课件第07章-自定义函数

C语言课件第07章-自定义函数

在主函数或其他函数中,我们可以使用y=sum();语句执行函数sum,并把 函数的值送给y,或者用printf("%d",sum());直接输出函数sum的值。
第7章 自定义函数
2. 有参函数的定义形式 如果一个函数,需要调用者提供原始数据才能执 行(如sqrt函数),则这种函数可以被定义成有 参函数。其定义形式如下:
第7章 自定义函数
下面我们定义一个函数,名叫 printStar,其功能就是专门输出 则,主函数代码可以简化为:
经过函数调用,程序的代码行大大缩水,且main 函数更清晰且可读性更好。
第7章 自定义函数
如果我们把printStar函数的代码放到d盘根目录 下的一个文本文件中,比如放到function.txt文 本文件中,其他的程序如果有需要,也完全可以 用#include <d:\function.txt>把有关内容包含 到对应程序文件中,在需要的时候调用printStar 函数即可 。 函数:函数就是一个用名字命名的独立的程序块( 子程序),能实现某些功能,可供本程序其他函数 ,或者另外一些程序的函数调用。
第7章 自定义函数
factorial 函数专门求n的阶乘
第7章 自定义函数
形式参数(形参):函数在声明(定义) 的时候,同时对函数所需要的参数的数量、类型做出 说明。这些参数的名字只是一种形式,只有在函数被 调用时,这些参数才能得到具体值,所以这些参数为 形式参数。比如,函数求阶乘函数中的n就是形式参 数。 实际参数(实参):一个有参函数在被调用的时候, 主调函数必须根据被调用函数形参(形式参数)的要 求,传递具体数据给被调用函数的形参,这些实际的 数据就叫做实际参数,也就是我们所说的实参。 实参是有具体值的,实参可以是常数,也可以是变量 。但在使用时必须有具体值。

C语言程序设计知识点—第7章 函数

C语言程序设计知识点—第7章 函数
C 语言程序设计知识点
第 7 章:函数
主讲教师:杨剑
1. 本章目标
熟练掌握函数的定义与调用方法 理解函数的定义、声明和调用的区别 理解函数原型、实参、形参和函数的返回值 了解函数的嵌套调用和递归调用的方法 掌握数组做为函数参数的使用方法 理解变量的作用域和存储方法
2. 函数机制的优点
~6~
C 语言程序设计知识点
主讲教师:杨剑
[练习]若各选项中所用变量已正确定义,函数 fun 中通过 return 语句返回一个函数值,
以下选项中错误的程序是( )
A.main()
{……x=fun(2,10); ……}
float fun(int a,int b){……}
B.float fun(int a,int b){……}
int data; scanf(“%d”,&data); printf(“%d”,add(data)); return 0;
~5~
C 语言程序设计知识点
主讲教师:杨剑
} int add(____②_____) {
int i,sum=0; for(i=1;i<=n;i++)
sum=sum+i; _______③__________ } 答案: ①int add(int); ②int n ③retrun sum;
{
printf(“%d\n”,F(3+5));
}
[练习]程序运行后的输出结果是( )
A.192 B.29
C.25
D.编译出错
答案:D
在 C 语言中,函数返回值的类型最终取决于( )
A.函数定义时在函数首部所说明函数类型
B.return 语句中表达式值的类型 C.调用函数时主调函数所传递的实参类型

第7章函数的导数和积分

第7章函数的导数和积分

函数的2阶导数:
f2 =
-1/4/cos(x)^(3/2)*sin(x)^21/2*cos(x)^(1/2)-2*cos(x)+x*sin(x)
dfx

sinx
sinxxcosx
dx 2 cosx
d2dfx2x4cossixn2cxosx
cosx2cosxxsinx 2
f 3 x z
% 计算多维函数的导数
syms x y z
f1=x*y*z;f2=x^2-y;f3=x+z;
disp(' 多维函数表达式向量:')
f=[f1;f2;f3]
disp(' 多维函数的偏导数矩阵:')
J=jacobian(f,[x y z])
M文件运行结果:
第7章 函数的导数和积分
对于可导的函数的导数也是一个函数,称作的导 函数。寻找已知的函数在某点的导数或其导函数 的过程称为求导,反之已知导函数,也可以倒过 来求原来的函数。
求导和积分是一对互逆的操作,它们都是微积分 学中最为基础的概念。微积分基本定理说明了求 原函数与积分是等价的。在微积分中,积分是微 分的逆运算,即知道了函数的导函数,反求原函 数。在应用上,积分作用不仅如此,它被大量应 用于求和(例如求曲边三角形的面积),这巧妙 的求解方法是积分特殊的性质决定的。
f=sqrt(cos(x))-x*sin(x); % 定义函数表达式
disp (' 函数的1阶导数:'),f1=diff(f)
disp (' 函数的2阶导数:'),f2=diff(f,2)
M文件运行结果:
函数的1阶导数:

第七章(c语言谭版)函数

第七章(c语言谭版)函数

调用a

调用b

}
}
}
例: 用弦截法求方程的根。
x3–5x2+16x–80=0 方法如下: (1) 取两个不同点x1、x2,如果f(x1)和f(x2)符号相反, 则(x1,x2)区间内必有一个根。如果f (x1)与f (x2)同 符号,则应改变x1、x2,直到f (x1)、f (x2)异号为 止。注意x1、x2的值不应差太大,以保证(x1, x2) 区间只有一根。
float x1, x2; { int i; float x, y, y1; y1=f(x1); do { x=xpoint(x1, x2);
y=f(x);
if (y*y1>0) /*f(x)与f(x1)同符号。*/ {y1=y; x1=x;} else x2=x; } while (fabs(y)>=0.0001); return (x); }
个return.
返回值类型为函数类型。 一般return中的返
回值类型应与函数定义时的类型一致, 不一致时,
以函数定义类型为准。
5. 调用函数应对被调用函数的返回值类型作出说 明:(函数名相当于一变量,但应有所区别)
类型符 函数名( );
它不同于函数的定义(功能定义) 例: 求二实数之和 main ( ) { float add( ); float a, b, c;
hanoi(n, one, two, three)
表示n个盘子从one塔借助于two塔(空)移至three塔。 调用时塔用字符常量'A' ,' B ', ' C '表示。
§7.5 数组作为函数参数
分为两种情况: 1. 数组元素作为实参

计算机等级考试 C语言 第7章C语言 函数

计算机等级考试 C语言 第7章C语言 函数

/* 函数功能: 用迭代法计算n!
返回值函数类入型口参数:函整数型名变说量n明表示阶乘的形阶参数表,函
函数返回值: 函返数回的n!功的能值
数入口
*/
long Fact(int n) /* 函数定义 *函/ 数内部可以定义
{
只能自己使用的变
int i;
量,称内部变量
long result = 1;
for (i=2; i<=n; i++)
2/51
问题的提出
此前,我们所有的代码基本上都是放在main函 数中,这对于一个小的问题来说没问题,但如 果一个问题较大,里面涉及到成百上千个变量 ,将所有代码放在main函数里面显然是非常糟 糕的事情。
我们可以将一个大的问题分解成一个一个的小 问题,每个小问题放在一个函数里面,最后在 main函数里整合。这种思想实际上就是所谓的 “分而治之”。
printf("Input data error!\n"); } else {
for(i=2;i<=n;i++) {

result*=i;
2019/9/10
} return result; } }
25/51
防御性程序设计(Defensive Programming)
但是输入-1后,会输出 :
Input data error!
int i; long result=1; for(i=2;i<=n;i++) {
result*=i; } return result; }
int main() { int m; long ret;
printf("input m:"); scanf("%d",&m); ret=Fact(m); printf("%d!=%d\n",m,ret); return 0; }

第七章 函数的重载

第七章 函数的重载

7
实现函数重载
函数重载是通过在类中定义两个或更多的同名的函 数来实现函数重载。 数来实现函数重载。 在函数重载中, 在函数重载中,函数的每个定义必须在函数签名中 不同。 不同。
8
函数签名
函数的签名被下面的部分定义: 函数的签名被下面的部分定义:
参数的数量 参数的类型 参数的顺序 返回类型不是函数签名的一部分
public class DaysInYear { private int days; public DaysInYear(int days) 1.DaysInYear DIY = new DaysInYear(); { 2.DaysInYear DIY = new DaysInYear(5); this.days = days; 3.DaysInYear DIY = new DaysInYear("5"); } public DaysInYear(String dayOne) 4.DaysInYear DIY = new DaysInYear(‘5’); 5.DaysInYear DIY; { days =Convert.ToInt32(dayOne); } 1.错误 错误 public void setDay(int newDays) 2.调用int构造函数 调 构造函数 { 3.调用string构造函数 调 构造函数 days = newDays; 4.调用int构造函数 调 构造函数 } 5.没有对象生成,需要 没有对 或者让 没有 象生成,需要new或者让它指向一 或者 … 个DaysInYear对象 对 }
函数重载: 函数重载:这个方法允许为两个或更多函数使用同样 的名字。 的名字。函数的每个重新定义必须使用不同的参数类 参数顺序或多个参数。 型、参数顺序或多个参数。 操作符重载: 操作符重载:这个方法允许用户定义的类型例如结构 和类,为使它们的对象易于操作而使用重载操作符。 和类,为使它们的对象易于操作而使用重载操作符。

(完整版)答案第七章函数..

(完整版)答案第七章函数..

第七章函数一、选择题1.以下函数声明正确的是: C 。

(02~03第一学期试题)A) double fun(int x, int y) B) double fun(int x; int y)C) double fun(int x, int y) ; D) double fun(int x , y)2.C语言规定,简单变量作实参,它与对应形参之间的数据传递方式是: B 。

(0级)A)地址传递;B)单向值传递;C)双向值传递;D)由用户指定传递方式3.以下关于C语言程序中函数的说法正确的是: B 。

(0级)A)函数的定义可以嵌套,但函数的调用不可以嵌套;B)函数的定义不可以嵌套,但函数的调用可以嵌套;C)函数的定义和调用均不可以嵌套;D)函数的定义和点用都可以嵌套。

4.以下正确的函数形式是: D 。

(1级)A)double fun(int x,int y) B)fun (int x,y){z=x+y;return z;} {int z;return z;}C)fun(x,y) D)double fun(int x,int y){int x,y ; double z; {double z;z=x+y; return z;} z=x+y; return z;}5.以下说法不正确的是: B 。

(1级)C 语言规定A)实参可以是常量、变量或表达式B)形参可以是常量、变量或表达式C)实参可以是任意类型D)形参应与其对应的实参类型一致6.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是 B 。

(0级)A) float型B) int 型C)long 型D)double 型7.以下错误的描述是 D 。

(0级)函数调用可以A)出现在执行语句中B)出现在一个表达式中C)做为一个函数的实参D)做为一个函数的形参8.若用数组名作为函数调用的实参,传递给形参的是 A 。

(0级)A)数组的首地址B)数组第一个元素的值C)数组中全部元素的值D)数组元素的个数9.以下正确的说法是 A 。

C语言第7章 函数

C语言第7章 函数

函数的 参数?
int main() {
int a=12, b=24; … printf("%d\n", Average(a, b)); … return 0; }
int Average(int x, int y) {
int result;
result = (x + y) / 2;
return result; }
C语言程序设计
22/114
7.3.1 函数调用
每次执行函数调用时
现场保护并为函数的内部变量(包括形参)分配内存 把实参值复制给形参,单向传值(实参形参) 实参与形参数目一致,类型匹配(否则类型自动转换)
int main()
{

int a=12, b=24,ave;

ave = Average(a, b);
21
1*2
3 (1*2)
(1*2)*3
}
4 (1*2*3)
(1*2*3)*4
return result;
……

}
n (1*2*3*4*…)
(1*2*3*4*…)*n
C语言程序设计
监视窗(Watches)
26/114
7.3.2函数原型
第7章 函数
函数原型(Function Prototype)
调用函数前先声明返回值类型、函数名和形参类型
Function Call?
int main() {
int a=12, b=24, ave; … ave = Average(a, b); … return 0; }
int Average(int x, int y) {
int result;

(完整版)答案第七章函数..

(完整版)答案第七章函数..

(完整版)答案第七章函数..第七章函数一、选择题1.以下函数声明正确的是: C 。

(02~03第一学期试题)A) double fun(int x, int y) B) double fun(int x; int y)C) double fun(int x, int y) ; D) double fun(int x , y)2.C语言规定,简单变量作实参,它与对应形参之间的数据传递方式是: B 。

(0级)A)地址传递;B)单向值传递;C)双向值传递;D)由用户指定传递方式3.以下关于C语言程序中函数的说法正确的是: B 。

(0级)A)函数的定义可以嵌套,但函数的调用不可以嵌套;B)函数的定义不可以嵌套,但函数的调用可以嵌套;C)函数的定义和调用均不可以嵌套;D)函数的定义和点用都可以嵌套。

4.以下正确的函数形式是: D 。

(1级)A)double fun(int x,int y) B)fun (int x,y){z=x+y;return z;} {int z;return z;}C)fun(x,y) D)double fun(int x,int y){int x,y ; double z; {double z;z=x+y; return z;} z=x+y; return z;}5.以下说法不正确的是: B 。

(1级)C 语言规定A)实参可以是常量、变量或表达式B)形参可以是常量、变量或表达式C)实参可以是任意类型D)形参应与其对应的实参类型一致6.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是 B 。

(0级)A) float型B) int 型C)long 型D)double 型7.以下错误的描述是 D 。

(0级)函数调用可以A)出现在执行语句中B)出现在一个表达式中C)做为一个函数的实参D)做为一个函数的形参8.若用数组名作为函数调用的实参,传递给形参的是 A 。

(0级)A)数组的首地址B)数组第一个元素的值C)数组中全部元素的值D)数组元素的个数9.以下正确的说法是 A 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单项选择题0701. 一个C语言程序总是从( )开始执行的。

A. 主函数B. 主过程C. 主程序D. 子程序0702. 下面的函数调用语句中func函数的实参个数是( )。

func(f2(v1,v2),(v3,v4,v5));A. 2B. 3C. 4D. 50703. ( )是构成C语言程序的基本单位。

A. 函数B. 过程C. 0D. 10704. 函数double sqrt(x)的功能是( )。

A. 求x的平方根B. 求x的平方C. 求x的对数D. 求x的绝对值0705. 以下叙述中不正确的是( )。

A. 在C程序的函数中,最好使用全局变量B. 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参C. 形参只是局限于所在函数D. 函数名的存储类别为外部0706. C语言程序从main()函数开始执行,所以这个函数要写在( )。

A. 程序文件的任何位置B. 程序文件的开始C. 它所调用的函数的前面D. 程序文件的最后0707. 表达式sizeof(double)是( )。

A. int型表达式B. 函数调用C. double型表达式D. 非法表达式0708. 若用数组名作为函数调用时的实参,则实际上传递给形参的是( )。

A. 数组首地址B. 数组的第一个元素值C. 数组中全部元素的值D. 数组元素的个数0709. 对函数形参的说明有错误的是( )。

A. int a(float x[10],int n)B. int a(float x[],int n)C. int a(float *x,int n)D. int a(float x,int n)0710. 在C语言中,函数的数据类型是指( )。

A. 函数返回值的数据类型B. 函数形参的数据类型C. 调用该函数时的实参的数据类型D.任意指定的数据类型0711. 已知如下定义的函数:fun1(a){ printf("\n%d",a);}则该函数的数据类型是( )。

A. 与参数a的类型相同B. void型C. 没有返回值D. 无法确定0712. 一个函数内有数据类型说明语句如下:double x,y,z(10);关于此语句的解释,下面说法正确的是( )。

A. 语句中有错误B. z是一个函数,小括号内的10是它的实参的值C. z是一个变量,小括号内的10是它的初值D. z是一个数组,它有10个元素0713. 已知函数定义如下:float fun1(int x,int y){ float z;z=(float)x/y;return(z);}主调函数中有int a=1,b=0;可以正确调用此函数的语句是( )。

A. 调用时发生错误B. printf("%f",fun1(a,b));C.printf("%f",fun1(&a,&b));D. printf("%f",fun1(*a,*b));0714. 下面函数的功能是( )。

a(s1,s2)char s1[],s2[];{ while(s2++=s1++) ;}A. 字符串复制B. 字符串比较C. 字符串连接D. 字符串反向0715. 在下列结论中,只有一个是错误的,它是( )。

A. 有些递归程序是不能用非递归算法实现的B. C语言允许函数的递归调用C. C语言中的continue语句,可以通过改变程序的结构而省略D. C语言中不允许在函数中再定义函数0716. 已知:int a, *y=&a;则下列函数调用中错误的是( ) 。

A. printf("%d", y);B. scanf("%d", y);C.printf("%d", a);D. scanf("%d", &a);0717. 函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。

能正确执行此功能的函数是( )。

A. func (int *x, int *y) { *x=*x+*y;*y=*x-*y;*x=*x-*y;}B. funb (int x, int y) { int t; t=x;x=y;y=t;}C.func (int *x, int *y) { *x=*y;*y=*x;}D. funa (int *x, int *y) { int *p;p=x;*x=*y;*y=*p;}0718. 一个完整的C源程序是( )。

A. 由一个且仅由一个主函数和零个以上的非主函数构成B. 要由一个主函数或一个以上的非主函数构成C.要由一个主函数和一个以上的非主函数构成D.由一个且只有一个主函数或多个非主函数构成0719. 以下关于函数的叙述中正确的是( )。

A. C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束B. 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C. C语言程序将从源程序中第一个函数开始执行D. main可作为用户标识符,用以定义任意一个函数0720. 以下关于函数的叙述中不正确的是( )。

A. 在C语言程序中,被调用的函数必须在main函数中定义B. C程序是函数的集合,包括标准库函数和用户自定义函数C. 在C语言程序中,函数的定义不能嵌套D. 在C语言程序中,函数的调用可以嵌套0721. 在一个C程序中( )。

A. main函数可以在任何地方出现B. main函数必须出现在所有函数之前C. main函数必须出现在所有函数之后D. main函数必须出现在固定位置0722. 若未说明函数的类型,则系统默认该函数的数据类型是( )。

A. intB.floatC. doubleD. bool0723. 以下关于函数叙述中,错误的是( )。

A. 形参可以是常量、变量或表达式B. 实参与形参的个数应相等,且实参与形参的类型必须对应一致C. 当形参是变量时,实参可以是常量、变量或表达式D. 函数未被调用时,系统将不为形参分配内存单元0724. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是( )。

A. 同名的局部变量B. 函数返回值C. 全局变量D. 参数的形实结合0725. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是( )。

A. 实参与对应的形参分别占用不同的存储单元B. 实参与其对应的形参共占存储单元C. 只有当实参与其对应的形参同名时才共占存储单元D. 实参将数据传递给形参后,立即释放原先占用的存储单0726.函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是( )。

A. 实参将其值传递给形参,调用结束时形参并不将其值回传给实参B. 实参将其地址传递给形参,并释放原先占用的存储单元C. 实参将其地址传递给形参,调用结束时形参再将其地址回传给实参D. 实参将其值传递给形参,调用结束时形参再将其值回传给实参0727.若用数组名作为函数调用的实参,则传递给形参的是( )。

A. 数组的首地址B. 数组的第一个元素的值C. 数组中全部元素的值D. 数组元素的个数0728. 若函数调用时,用数组名作为函数的参数,以下叙述中正确的是( )。

A. 实参与其对应的形参共用同一段存储空间B. 实参与其对应的形参占用相同的存储空间C. 实参将其地址传递给形参,同时形参也会将该地址传递给实参D. 实参将其地址传递给形参,等同实现了参数之间的双向值的传递0729. 如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量( )。

A. 为局部变量,只在该复合语句中有效B. 为全局变量,在本程序文件范围内有效C. 为局部变量,只在该函数内有效D. 定义无效,为非法变量0730. C语言中函数返回值的类型是由( )决定。

A. 定义函数时所指定的函数类型B. return语句中的表达式类型C. 调用函数的主调函数类型D. 调用函数时临时0731.若在一个C源程序文件中定义了一个允许其他源文件引用的实型外部变量a,则在另一文件中可使用的引用说明是( )。

A. extern float aB. extern static float aC. float aD. extern auto float a0732. 定义一个void型函数意味着调用该函数时,函数( )。

A. 没有返回值B. 通过return返回一个用户所希望的函数值C. 返回一个系统默认值D. 返回一个不确定的值0733. 若定义函数float *fun( ),则函数fun的返回值为( )。

A. 一个指向实型变量的指针B. 一个实数C. 一个指向实型函数的指针D. 一个实型函数的入口地址0734. C语言规定,程序中各函数之间( )。

A. 既允许直接递归调用也允许间接递归调用B. 不允许直接递归调用也不允许间接递归调用C. 允许直接递归调用不允许间接递归调用D. 不允许直接递归调用允许间接递归调用0735. 若程序中定义函数float myadd(float a, float b){ return a+b;}并将其放在调用语句之后,则在调用之前应对该函数进行说明。

说明中错误的是( )。

A. float myadd( float a,b)B. float myadd(float b, float a)C. float myadd(float, float)D. float myadd(float a, float b)0736. 下列叙述中错误的是( )。

A. 主函数中定义的变量在整个程序中都是有效的。

B. 在其它函数中定义的变量在主函数中也不能使用。

C. 形式参数也是局部变量。

D. 复合语句中定义的变量只在该复合语句中有效。

0737. 若函数的形参为一维数组,则下列说法中正确的是( )。

A. 形参数组可以不指定大小。

B. 调用函数时的对应实参必为数组名。

C. 形参数组的元素个数必须等于实参数组的元素个数。

D. 形参数组的元素个数必须多于实参数组的元素个数。

0738. 在函数的说明和定义时若没有指出函数的类型,则( )。

A. 系统自动地认为函数的类型为整型。

B. 系统自动地认为函数的类型为字符型。

C. 系统自动地认为函数的类型为实型。

D. 编译时会出错。

0739. 下面叙述中正确的是( )。

A. 函数可以返回一个值,也可以什么值也不返回。

B. 说明函数时必须明确其参数类型和返回类型。

C. 对于用户自己定义的函数,在使用前必须加以说明。

D. 空函数不完成任何操作,所以在程序设计中没有用处。

0740. 下面正确的函数定义形式是( )。

A. double fun(int x,int y)B. double fun(int x;int y)C. double fun(int x,int y)D. double fun(int x,y)0741. 关于函数的调用,以下错误的描述是( )。

相关文档
最新文档