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。
🥰
⾮必做题
。建议⼤家积极思考并尝试编程,
做完且正确者
有加分!