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
- fun输入两个值a+c和b,函数运行后返回15.0
- 然后强制类型转换为整形int,15
- 得到15再与a-c输入到fun函数后运行,得到21.0
- 在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
- for循环做紧接后面的语句,j累加f(i)的值
- f函数是一个只会输出1的函数
- 如果输入1就只返回1
- 如果输入大于1的数会通过递增函数一直到返回1
- for循环做两次,j=2
- 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;
}


浙公网安备 33010602011771号