经典题目一:逆序输出字符串
题目描述:编写一个程序,要求用户输入一个字符串,然后将字符串逆序输出。
解题思路:首先定义一个字符数组用于存储用户输入的字符串,然后使用循环将字符串从最后一个字符开始依次输出。
代码示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf(\"请输入一个字符串:\");
scanf(\"%s\", str);
int len = strlen(str);
printf(\"逆序输出字符串为:\");
for (int i = len - 1; i >= 0; i--) {
printf(\"%c\", str[i]);
}
return 0;
}
```
经典题目二:判断回文数
题目描述:编写一个程序,要求用户输入一个整数,判断该整数是否是回文数(正反读都相同)。
解题思路:将用户输入的整数转换为字符串,然后使用两个指针分别从字符串的开头和结尾同时向中间遍历,判断相应的字符是否相等。
代码示例:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(int num) {
char str[100];
sprintf(str, \"%d\", num);
int len = strlen(str);
int left = 0, right = len - 1;
while (left < right) {
if (str[left] != str[right]) {
return 0;
}
left++;
right--;
}
return 1;
}
int main() {
int num;
printf(\"请输入一个整数:\");
scanf(\"%d\", &num);
if (isPalindrome(num)) {
printf(\"%d是回文数\
\", num);
} else {
printf(\"%d不是回文数\
\", num);
}
return 0;
}
```
经典题目三:查找最大和最小值
题目描述:编写一个程序,要求用户输入一个整数数组,然后找出数组中的最大和最小值,输出结果。
解题思路:定义一个整型数组用于存储用户输入的整数,然后使用一个循环遍历整个数组,每次比较当前元素与已知的最大和最小值,更新相应的值。
代码示例:
```c
#include <stdio.h>
void findMaxAndMin(int arr[], int size) {
int max = arr[0];
int min = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
printf(\"最大值:%d\
\", max);
printf(\"最小值:%d\
\", min);
}
int main() {
int size;
printf(\"请输入整数数组的大小:\");
scanf(\"%d\", &size);
int arr[size];
printf(\"请输入整数数组的元素:\");
for (int i = 0; i < size; i++) {
scanf(\"%d\", &arr[i]);
}
findMaxAndMin(arr, size);
return 0;
}
```
以上是三道经典的C语言题目,分别涉及字符串操作、数值判断和数组查找。这些题目能够帮助我们熟悉C语言基本语法和常用函数的使用,培养我们解决问题的思维能力。对于初学者来说,尝试解答这些题目是一个很好的练习机会。