作业五2023.11.25

lizhuolin

1. 选择题
题⽬:以下正确的法是( D )。
A. 定义函数时,形参的类型说明可以放在函数体内。
B. return 后边的值不能为表达式。
C. 如果函数值的类型与返回值类型不⼀致,以函数值类型为准。
D. 如果形参与实参类型不⼀致,以实参类型为准。
2. 选择题
题⽬:若调⽤⼀个函数,且此函数中没有 return 语句,则正确的说法是:函数( A
)。
A. 没有返回值
B. 返回若⼲个系统默认值
C. 能返回⼀个⽤户所希望的值
D. 返回⼀个不确定的值
3. 填空题
题⽬:有以下程序,程序运⾏后的输出结果是( )。需附上简要解释。
float fun(int x, int y) {
        return (x + y);
}
void main() {
        int a = 2,b = 5,c = 8;
        printf("%3.0f\n", fun( (int) fun(a + c, b), a - c) );
}
结果是:9
解释:

我计算 fun(a + c, b),这里,(a + c) 的结果为 10,b 的值为 5。因此,程序调用 fun(10, 5),并得到返回值 15。接下来,将 a - c 的结果作为第二个参数传递给外层的 fun 函数。a 的值为 2,c 的值为 8。所以,a - c 的结果为 -6。最后,将内层 fun 函数的返回值 15 强制转换为整数,得到 15,并将其作为外层 fun 函数的第一个参数。然后,将 -6 作为第二个参数传递给外层的 fun 函数。

所以嘞,15-6=9,就是这样罗。

4. 填空题
题⽬:有以下程序,程序运⾏后的输出结果是( )。
int f (int n)
{
        if (n == 1) return 1;
        else return f(n - 1) + 1;
}
void main()
{
        int i, j = 0;
        for (i = 1; i < 3; i++) j += f (i);
        printf ("%d\n", j);
}
结果:3
解释:第一次循环j=1,第二次循环j=1+1+1=3
第三次i=3跳出循环,即输出printf  j=3.
5. 编程题
编写⼀个函数 palindrome , 该函数⽤于判断⼀个数是否是回⽂数。然后在主函数中使
⽤该函数,判断位数为 5 的正整数的回⽂数数量。
📢
1. 回⽂数 是指某数与其反序数相等,如 5 131 1551 345676543.
2. 位数为 5的正整数,即[10000, 99999)之间的正整数。
#include<stdio.h>

int palindrome(int n);
int main(){
	int n,a=0,b;
	int c=0;
	for(n=10000;n<=99999;n++){
		if(palindrome(n)){
		c++;
		}
	}
	
	printf("%d",c);
	
	return 0;
	
}
int palindrome(int n){
	int x=n;
	int a=0;
	int fanily=0;
	while(x>0){
		a=x%10;
		fanily=a+fanily*10;
		x=x/10;
	}
	if(fanily==n){
		return 1;
	}else{
		return 0;
	}
}

6. 附加题
编写⼀个函数 symPalindrome , 该函数⽤于判断⼀个数是否为对称回⽂数。然后在主函
数中使⽤该函数,判断位数为 5 的正整数的对称回⽂数数量。
📢 对称回⽂数指某数与其平⽅都是回⽂数。例如,
n=11时,11 2 = 121 ;n=111 时,111 2 = 12321。
🥰 ⾮必做题 。建议⼤家积极思考并尝试编程, 做完且正确者 有加分!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值