一、练习题
1.选择题
A.函数定义时在函数首部所说明的函数类型
B.return语句中表达式值的类型
C.调用函数时主调函数所传递的实参类型
D.函数定义时形参的类型
(2)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。
A.函数的实参和其对应的形参共占同一存储单元
B.形参只是形式上的存在,不占用具体的存储单元
C.同名的实参和形参占同一存储单元
D.函数的形参和实参分别占用不同的存储单元
(3)以下对C语言函数描述正确的是()。
A.调用C语言函数时,只能把实参的值传给形参,形参值不能传给实参
C.函数必须有返回值,否则不能使用函数
D.C语言程序中有调用关系的所有函数必须放在同一个源程序文件中
(4)在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传给实参
D.传递方式由用户指定
(5)若调用函数的实参是一个数组名,则向被调用函数传递的是()。
A.数组的长度 B.数组的地址
C.数组每一个元素的地址 D.数组每个元素中的值
(6)下列各函数定义的首部中,正确的是()。
A.void fun(int,int) B.void fun(int a,b)
C.void fun(int a,int b) D.fun(a as integer,b as integer)
(7)在C语言中,形参的缺省存储类型是()。
A.static B.auto C.extern D.register
(8)在C语言中,函数的缺省存储类型是()。
A.static B.auto C.extern D.无存储类型
(9)有以下程序:
该程序运行结果是()。
A.12 B.13 C.14 D.15
(10)以下程序的输出结果是()。
A.100200 B.57 C.200100 D.75
2.程序改错题
(1)以下程序中,函数fun的功能是根据整型形参m,计算如下公式的值:
例如:m=6,则应输出1.718056。该程序有错误,请将程序修改正确。
(2)以下程序中,函数fun的功能是:求1,1+2,1+2+3,…各项的值,并存在一维数组a中传回main函数。
例如:k=6,则应输出1 3 6 10 15 21
该程序有错误,请将程序修改正确。
3.填空题
(1)以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:
请填空。
(2)以下函数age()的功能是用递归方法计算学生的年龄,已知第一位学生年龄最小,为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。递归公式如下,请填空。
(3)以下定义函数fun()函数的功能是:在第一个循环中给数组元素依次赋值为1,2,3,4,5,6,7,8,9,10;在第二个循环中使数组元素中的值对称折叠,变为1,2,3,4,5,5,4,3,2,1。请填空。
(4)函数pi的功能。根据以下近似公式求π值,请填空。
(5)设在main()函数中有以下定义和函数调用语句,且fun()函数为void型,请写出该函数的首部,要求形参名为x。
(6)以下程序的运行结果是()。
(7)以下程序的运行结果是()。
(8)以下程序的运行结果是()。
(9)以下程序的运行结果是()。
(10)以下程序的运行结果是()。
4.编程题
(1)编写一个函数prime(),其功能是判断输入的整数是否为素数。
(2)编写一个函数change(),其功能是将字符串中小写字母转换成大写字母,其他字符不变。
(3)编写一个函数array(),其功能是求一个二维数组最大元素及其行下标和列下标。要求二维数组名作实参,主函数输入二维数组元素的值,array函数返回最大元素值及其行下标和列下标。
(4)用递归方法求y=xn。递归公式:
请编写函数。
二、测试题
1.选择题
(1)C语言程序是由函数组成的,以下说法正确的是()。
A.主函数必须在其他函数之前,函数不可以嵌套定义
B.主函数的位置是任意的,函数不可以嵌套定义
C.函数可以嵌套定义,也可以嵌套调用
D.主函数标识程序的入口,它必须在其他函数之前定义
(2)以下说法正确的是()。
A.所有递归程序均可采用非递归算法实现
B.只有部分递归程序可采用非递归算法实现
C.递归程序通常比非递归程序运行效率更高
D.递归程序比非递归程序更节省内存空间(www.xing528.com)
(3)已知函数定义为:void fun(){…}则函数中void的含义是()。
A.执行函数fun后,函数没有返回值
B.执行函数fun后,函数可以返回任意值
C.函数fun中,不应该有return语句
D.执行函数fun后,函数不再返回
(4)函数中返回值的类型是由()决定的。
A.调用该函数的主调函数的类型 B.函数的参数类型
C.return语句中表达式的类型 D.定义函数时所指定的函数类型
(5)以下函数调用语句中含有()个实参。
A.1 B.2 C.4 D.5
(6)C语言中形参的缺省存储类别是()。
A.自动(auto) B.静态(static)
C.寄存器(register) D.外部(extern)
(7)以下程序的输出结果是()。
A.8,17 B.8,16 C.8,20 D.8,8
(8)有以下程序:
输出结果为()。
A.6 B.7 C.5 D.8
(9)有以下程序的输出结果为()。
A.11 B.12 C.16 D.18
(10)以下程序的输出结果是()。
A.12 B.13 C.14 D.15
(11)以下函数返回a所指数组中最小的值所在的下标值:
在下划线处应填入的是()。
A.i=p B.a[p]=a C.p=j D.p=i
(12)有如下程序:
该程序的输出结果是()。
A.2 B.4 C.6 D.8
(13)以下程序的输出结果是()。
A.100200 B.57 C.200100 D.75
(14)不合法的main函数命令行参数表示形式是()。
A.main(int a,char*c[ ])B.main(int arc,char**arv)
C.main(int argc,char*argv)D.main(int argv,char*argc[ ])
(15)C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是()。
A.void B.int C.float D.double
(16)以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。
程序运行后的输出结果是()。
A.22 B.10 C.34 D.30
(17)以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。
程序运行后的输出结果是()。
A.6 B.4 C.5 D.3
(18)以下叙述中正确的是()。
B.静态(static)类别变量的生存期贯穿于整个程序的运行期间
C.函数的形参都属于全局变量
D.未在定义语句中赋初值的auto变量和static变量的初值都是随机值
(19)若程序中定义了以下函数:
将其放在调用语句之后,则在调用之前应该对该函数进行说明。以下选项中错误的说明是()。
A.double myadd(double a,b)
B.double myadd(double,double)
C.double myadd(double b,doublea)
D.double myadd(double x,double y)
(20)有以下程序:
其输出结果是()。
A.5 3 5 3 B.5 3 3 5 C.3 5 3 5 D.3 5 5 3
2.填空题
(1)下面程序的运行结果是()。
(2)函数sumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空:
(3)以下程序的输出结果是()。
(4)以下程序的输出结果是()。
(5)以下程序运行时若输入:1234<回车>,程序的运行结果为()。
(6)下面程序的运行结果是()。
(7)当运行以下程序时,输入abcd,程序的输出结果是()。
(8)以下isprime函数的功能是判断形参a是否为素数。是素数,函数返回1,否则返回0。请填空。
(9)阅读下面程序并写出运行结果()。
(10)阅读下面程序并写出运行结果()。
3.编程题
⑴请用递归函数和循环语句编写程序,计算1*2+2*3+…+n*(n+1)的和。
⑵意大利数学家Fibonacci(斐波那契)曾提出一个有趣的问题:有一对新生兔子,从第3个月开始,它们每个月生一对兔子,每对新生兔子从第3个月开始每个月又生一对兔子,按此规律计算一年后共有多少对兔子?使用递归函数和循环结构编写程序。
注意:
每个月的兔子对数组成Fibonacci数列:1,1,2,3,5,8,…。该数列的规律是:前两个数是1,从第3个数开始,每个数都是其前两个相邻数之和。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。