【C/C++基础练习题】函数选择题+递归函数求阶乘,求一个数各个数之和,求n的k次方。打印乘法表

关于函数调用说法:

函数可以传值调用,传值调用的时候形参是实参的一份临时拷贝

函数可以传址调用,传址调用的时候,可以通过形参操作实参

.函数可以嵌套调用,但是不能嵌套定义

函数可以没有返回值,如果没有返回值也就不需要待会任何结果

形参和实参在不同的函数中,即不同的作用域,因此形参和实参可以同名


函数必须保证先声明后使用,函数的定义可以放在任意位置,函数的声明必须放在函数的使用之前。

函数的声明只是告诉编译器函数返回值类型、函数名字以及函数所需要的参数,函数定义才是说明函数是怎么  实现的。


传参时不论是按照值还是指针方式传递,形参拿到的都是实参的一份拷贝。

形参是在函数调用的时候才实例化,才开辟内存空间。

如果是按照值的方式传递,形参和实参各自有各自的空间,改变形参不能改变外部的实参。

函数调用如果采用传值调用,改变形参不影响实参,因为形参和实参是两个不同的变量。

因为形参和实参是两个不同的变量。


main函数的位置可以在任意位置,但是如果在主函数之中调用了哪些函数,必须在main函数前对其所调用函数进行生命或包含其被调用函数的头文件。


能把函数处理结果的二个数据返回给主调函数,在下面的方法中不正确的是:( )

A.return B.形参用数组C.形参用二个指针D.用二个全局变量这二个数 。

A。错误,一个函数只能返回一个结果。

B:正确,将形参存在数组中,修改数组中内容,可以通过数组将修改结果带出去

C:正确,形参如果用指针,最终指向的是外部的实参,在函数中对指向指向内容进行修改,改变的就是外部的实参

D:正确,全局变量不受函数的结束而结束,在函数中改变全局变量,主调函数中可以看到改变之后的结果

递归的方法求阶乘:

long long Fac(int N)
{
    if(N <= 1)
        return 1;
    
    return Fac(N-1)*N;
}

递归方法求一个数的每位数字之和:

写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和

例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19

/*
思路:
            n    n < 10
DigiSum(n) = 
           DibiSum(n/10)+n%10   // 前n-1位之和+第N位
*/
 
 
int DigitSum(int n)//1729
{
	if(n>9)
		return DigitSum(n/10)+n%10;
	else
		return n;
}

递归求n的k次方:

/*
思路:
            n    n < 10
DigiSum(n) = 
           DibiSum(n/10)+n%10   // 前n-1位之和+第N位
*/
 
 
int DigitSum(int n)//1729
{
	if(n>9)
		return DigitSum(n/10)+n%10;
	else
		return n;
}

 打印乘法表:

void chengfabiao()
{
	int n = 0;
	cin >> n;
	for (int i = 1; i <= n; ++i)
	{
		for (int j = 1; j <= i; ++j)
		{
			printf("%d*%d=%2d  ", j, i, j * i);
		}
		cout << endl;
	}
}
void chengfabiao()
{
	int n = 0;
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= i; j++)
		{
			cout << i << "x" << j << "=" << i * j << "  ";
		}
		cout << endl;
	}
}


写在最后:

博主大一学识尚浅,内容仅供参考,欢迎大家在评论区和我交流分享!

以后会经常发有趣的小游戏,和学习心得,感兴趣的小伙伴可以点个关注支持一下

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值