1.能把函数处理结果的第三个数据返回给主调函数,在下面的方法中不正确的是(A)
A.return这二个数
B.形参用数组
C.形参用二个指针
D.用二个全局变量
A:return不能直接返回这两个数,只能返回一个
B:
C:
D: 可以做到,但不建议
2.关于函数调用说法不正确的是(C)
A.函数可以传值调用,传值调用的时候形参是实参的一份临时拷贝
B.函数可以传址调用,传址调用的时候,可以通过形参操作实参
C.函数可以嵌套定义,但是不能嵌套调用
D.函数可以嵌套调用,但是不能嵌套定义
3.在函数调用时,以下说法正确的是:(B)
A函数调用后必须带回返回值
B.实际参数和形式参数可以同名
C.函数间的数据传递不可以使用全局变量
D.主调函数和被调函数总是在同一个文件里
D:其他源文件定义的函数,在另一源文件中声明或者包含头文件后也可以使用
4.关于函数的声明和定义说法正确的是(B)
A.函数的定义必须放在函数的使用之前
B.函数必须保证先声明后使用
C.函数定义在使用之后,也可以不声明
D.函数的声明就是说明函数是怎么实现的
5.关于实参和形参描述通误的是©
A.形参是实参的一份临时拷贝
B.形参是在函数调用的时候才实例化,才开辟内存空间
C.改变形参就是改变实参
D.函数调用如果采用传值调用,改变形参不影响实参
6.函数调用exec((vl,v2),(v3,v4),v5,v6);中,实参的个数是(B)
A.3
B.4
C.5
D.6
7.编程题
函数判断闰年
题目内容:
实现函数判断year是不是润年。
8.编程题
题目名称:交换两个整数
题目内容:
实现一个函数来交换两个整数的内容。
9.编程题
题目名称:乖法口诀表
题目内容:
实现一个函数,打印乘法口诀表,口诀表的行数和例列数自己指定
如:输入9,输出99口诀表,输出12,输出1212的乘法口诀表。
递归作业
1.关于递归的描述错误的是(C)
A.存在限制条件,当满足这个限制条件的时候,递归使不再继续
B.每次递归调用之后越来越接近这个限制条件
c.递归可以无限递归下去
D.递归层次太深,会出现栈溢出现象
2.根据下面递归函数:调用函数Fun(2),返回值是多少(D)
int Fun(int n)
{
if(n==5)
return 2;
else
return 2*Fun(n+1);
}
题目内容:
A.2
B.4
C.8
D.16
复制代码打印下结果
3.字符串逆序(递归实现)
题目内容:
编写一个函数reverse_string(char * string)(递归实现)
实现:将参数字符串中的字符反向排列,不是逆序打印。
要求:不能使用C函数库中的字符串操作函数。
比如:
char arr[] = “abcdef”
逆序之后数组的内容变成:“fedcba”
思路:
只需要交换a
和f
、e
和b
、d
和c
如果需要交换a
和f
,首先得能找到a
和f
利用下标就可以找到,知道后互换对应的值即可
同理,e
和b
、d
和c
可以利用left++以及right–
非递归的方式:
递归的方式:
思路:
定义tmp
将第一个字符a
串赋给tmp
再讲最右边f
的赋给第一个
给最右边的填充'\0'
,防止下一次递归出错
然后递归中间的b c d e
最后将tmp中的a
赋给最右边f
的地方