题目一
1. 选择题 题⽬:以下正确的说法是(C )。 A. 定义函数时,形参的类型说明可以放在函数体内。 B. return后边的值不能为表达式。 C. 如果函数值的类型与返回值类型不⼀致,以函数值类型为准。 D. 如果形参与实参类型不⼀致,以实参类型为准。
题目二
2. 选择题 题⽬:若调⽤⼀个函数,且此函数中没有return语句,则正确的说法是:该函数(A )。 A. 没有返回值 B. 返回若⼲个系统默认值 C. 能返回⼀个⽤户所希望的值 D. 返回⼀个不确定的值
题目三
3. 填空题 题⽬:有以下程序,程序运⾏后的输出结果是(9 )。需附上简要解释。 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)); }
解释:先定义了fun函数,然后调用fun函数,先是运算a+c b,再运行前a+b+c,a-c,结果为9,输出格式为3位小数,由于我不知道的原因,输出结果最终为9
题目四
4. 填空题 题⽬:有以下程序,程序运⾏后的输出结果是(3 )。 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); }
题目五
5. 编程题 编写⼀个函数 palindrome , 该函数⽤于判断⼀个数是否是回⽂数。然后在主函数中使 ⽤该函数,判断位数为5的正整数的回⽂数数量。
📢 1. 回⽂数是指某数与其反序数相等,如5、131、1551、345676543. 2. 位数为5的正整数,即 10000-99999之间的正整数。
#include <stdio.h>
int palindrome(int x);
int main()
{
int num,res;
scanf("%d",&num);
res=palindrome(num);
if(res==1)
{
printf("Yes");
}
if(res==0)
{
printf("No");
}
}
int palindrome(int x)
{
int t1,t2,t3,t4,t5,end,re;
t1=x%10000%1000%100%10*10000;
t2=(x%10000%1000%100-t1/10000)*100;
t3=x%10000%1000-t2/100-t1/10000;
t4=(x%10000-t3-t2/100-t1/10000)/100;
t5=(x-x/10000)/10000;
end=t1+t2+t3+t4+t5;
if(end==x) {
re=1;
}else {
re=0;
}
return re;
}