1. 选择题 题⽬:以下正确的说法是(c )。
A. 定义函数时,形参的类型说明可以放在函数体内。 B. return后边的值不能为表达式。 C. 如果函数值的类型与返回值类型不⼀致,以函数值类型为准。 D. 如果形参与实参类型不⼀致,以实参类型为准。
原因:A、形参的类型说明应该放在形参列内说明
B、可以为表达式
D、实参与形参的类型应相同或赋值兼容,具体以形参为准
2、2. 选择题 题⽬:若调⽤⼀个函数,且此函数中没有return语句,则正确的说法是:该函数(D)。
A. 没有返回值 B. 返回若⼲个系统默认值 C. 能返回⼀个⽤户所希望的值 D. 返回⼀个不确定的值
A、不返回值,应该为void类型
B、返回一个不确定的值,而不是B,C
3、题⽬:有以下程序,程序运⾏后的输出结果是(9 )。
原因:首先,先调用一次fun函数算出(a+c)+b的值15并返回float类型15.0,第二次
调用把15.0强制转换为15并与-6相加得到9。
4、结果为3
原因:先遍历for循环,当i=1时,调用f函数,返回1,此时j=1;然后i++迭代,i=2,调用函数返回
1+1=2,j=1+2=3;i++,i=3退出for循环。
5、编写⼀个函数 palindrome , 该函数⽤于判断⼀个数是否是回⽂数。然后在主函数中使 ⽤该函数,判断位数为5的正整数的回⽂数数量。
#include <stdio.h>
#include <stdlib.h>
//编写一个函数palindrome ,用于判断一个数是否是回文数。然后在主函数中使
//用该函数,判断位数为5的正整数的回文数数量。
int palindrome(int num) {
int reverse = 0;
int temp = num;
while(temp > 0){
reverse = reverse * 10 + temp % 10;
temp /= 10;
}
return num == reverse;
}
int main() {
int count = 0;
int i = 10000;
for(;i < 100000;i++){
if(palindrome(i))
count++;
}
printf("位数为5的正整数回文数量为:%d",count);
return 0;
}
6、
#include <stdio.h>
#include <stdlib.h>
//编写一个函数 symPalindrome , 该函数用于判断一个数是否为对称回文数。
//然后在主函数中使该函数,判断位数为5的正整数的对称回文数数量。
int palindrome(int num) {
int reverse = 0;
int temp = num;
while(temp > 0){
reverse = reverse * 10 + temp % 10;
temp /= 10;
}
if(reverse==num){
return 1;
} else{
return 0;
}
}
int symPalindrome(int num){
long long j = (long long)num * num;
return palindrome(num)&&palindrome(j);
}
int main() {
int count = 0;
int i = 10000;
for(;i < 100000;i++){
if(symPalindrome(i))
count++;
}
printf("位数为5的正整数回文数量为:%d",count);
return 0;
}