C语言作业五

1. 

题⽬:以下正确的说法是( )。

A. 定义函数时,形参的类型说明可以放在函数体内。

B. return后边的值不能为表达式。

C. 如果函数值的类型与返回值类型不⼀致,以函数值类型为准。

D. 如果形参与实参类型不⼀致,以实参类型为准。

答案:C

类型必须在函数头给出,如果不给出或者形参和实参不一致会导致编译错误,输入参数也一样

 

2.

题⽬:若调⽤⼀个函数,且此函数中没有return语句,则正确的说法是:该函数( )。

A. 没有返回值

B. 返回若⼲个系统默认值

C. 能返回⼀个⽤户所希望的值

D. 返回⼀个不确定的值

答案:A

3.

float fun(int x, int y) {
return (x + y);
}
void main() {
int a = 2,b = 5,c = 8;
C语⾔—作业五 (by lzzh) 3
printf("%3.0f\n", fun((int) fun(a + c, b), a - c));
}

答案:21.000

  1. fun输入两个值a+c和b,函数运行后返回15.0
  2. 然后强制类型转换为整形int,15
  3. 得到15再与a-c输入到fun函数后运行,得到21.0
  4. 在printf中输入一个保留小数点后三位的数值,21.000

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);
}

答案:2

  1. for循环做紧接后面的语句,j累加f(i)的值
  2. f函数是一个只会输出1的函数
    1. 如果输入1就只返回1
    2. 如果输入大于1的数会通过递增函数一直到返回1
  3. for循环做两次,j=2
  4. printf最后会输出2  

5.

题目:编写⼀个函数 palindrome , 该函数⽤于判断⼀个数是否是回⽂数。然后在主函数中使
⽤该函数,判断位数为5的正整数的回⽂数数量。

6.

题目:编写⼀个函数 symPalindrome , 该函数⽤于判断⼀个数是否为对称回⽂数。然后在主函
数中使⽤该函数,判断位数为5的正整数的对称回⽂数数量。

#include<stdio.h>

int is_palindrome(int x){
	int original = x;
	int is_palindrome = 0;//单一出口 
	
	int palindrome = 0;
	while(x > 0){
		palindrome *= 10;
		palindrome += x%10;
		x /= 10;
	}
	
	if(palindrome == original ){
		is_palindrome = 1;
	}else{
		is_palindrome = 0;
	}
	
	return is_palindrome;
}

int main(){
	
	for(int i=10000;i < 99999;i++ ){
		if(is_palindrome(i) && is_palindrome(i*i) ){
			printf("%d ",i); 
		}
	}

	return 0;
}

 

posted @ 2023-11-18 17:35  Aeside  阅读(197)  评论(0)    收藏  举报