问题一:编写一个C程序,实现以下功能:
- 输入一个整数,如果这个整数是偶数,则输出“是偶数”,如果是奇数,则输出“是奇数”。
- 如果输入的整数大于0,则输出“正数”,如果小于0,则输出“负数”,如果等于0,则输出“零”。
解答
以下是一个C语言的程序示例,实现了上述功能:
#include <stdio.h>
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (num % 2 == 0) {
printf("是偶数\n");
} else {
printf("是奇数\n");
}
if (num > 0) {
printf("正数\n");
} else if (num < 0) {
printf("负数\n");
} else {
printf("零\n");
}
return 0;
}
解析
- 我们首先包含了stdio.h头文件,这是因为我们需要使用printf和scanf函数。
- 在main函数中,我们声明了一个整型变量num来存储用户输入的数值。
- 我们使用printf函数提示用户输入一个整数,并使用scanf函数读取用户输入的值。
- 接下来,我们使用if语句检查num是否能被2整除,以判断它是否是偶数。
- 然后,我们使用另一个if-else语句来判断num是正数、负数还是零。
- 最后,程序返回0,表示正常退出。
问题二:编写一个C程序,计算并输出1到100之间所有整数的和。
解答
以下是计算1到100之间所有整数和的C语言程序:
#include <stdio.h>
int main() {
int sum = 0;
for (int i = 1; i <= 100; ++i) {
sum += i;
}
printf("1到100之间所有整数的和为:%d\n", sum);
return 0;
}
解析
- 我们首先包含了stdio.h头文件。
- 在main函数中,我们声明了一个整型变量sum,用来存储累加的结果。
- 使用for循环,从1迭代到100,每次将循环变量i的值加到sum上。
- 循环结束后,我们使用printf函数输出1到100之间所有整数的和。
- 最后,程序返回0。
问题三:编写一个C程序,判断一个字符串是否为回文。
解答
以下是判断字符串是否为回文的C语言程序:
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
bool isPalindrome(const char *str) {
int left = 0;
int right = strlen(str) - 1;
while (left < right) {
if (str[left] != str[right]) {
return false;
}
left++;
right--;
}
return true;
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
if (isPalindrome(str)) {
printf("是回文\n");
} else {
printf("不是回文\n");
}
return 0;
}
解析
- 我们包含了stdio.h、string.h和stdbool.h头文件。stdio.h用于输入输出,string.h用于字符串处理,stdbool.h用于布尔类型。
- 在main函数中,我们声明了一个字符数组str来存储用户输入的字符串。
- 我们定义了一个名为isPalindrome的函数,该函数接受一个字符串参数,并判断它是否为回文。
- 函数内部,我们使用两个指针left和right分别指向字符串的开始和结束。通过while循环,我们比较这两个指针所指向的字符,如果它们不相等,则字符串不是回文。
- 如果left和right相遇或交叉,则表示字符串是回文,函数返回true。
- 在main函数中,我们调用isPalindrome函数判断用户输入的字符串是否为回文,并输出结果。
