习题一:计算两个整数的和
题目描述: 编写一个C语言程序,用于计算两个整数输入的和,并打印结果。
代码示例:
#include <stdio.h>
int main() {
int num1, num2, sum;
printf("请输入第一个整数:");
scanf("%d", &num1);
printf("请输入第二个整数:");
scanf("%d", &num2);
sum = num1 + num2;
printf("两个整数的和为:%d\n", sum);
return 0;
}
实战技巧:
- 使用
scanf函数读取用户输入。 - 使用简单的算术运算符
+来计算和。 - 使用
printf函数输出结果。
习题二:判断奇偶数
题目描述: 编写一个C语言程序,判断用户输入的整数是奇数还是偶数,并打印结果。
代码示例:
#include <stdio.h>
#include <stdbool.h>
int main() {
int num;
bool isEven;
printf("请输入一个整数:");
scanf("%d", &num);
isEven = (num % 2 == 0) ? true : false;
if (isEven) {
printf("%d 是偶数。\n", num);
} else {
printf("%d 是奇数。\n", num);
}
return 0;
}
实战技巧:
- 使用
%运算符判断余数。 - 使用条件运算符
? :来简化代码。 - 使用
if语句来根据条件打印不同的结果。
习题三:计算阶乘
题目描述: 编写一个C语言程序,计算用户输入的非负整数的阶乘,并打印结果。
代码示例:
#include <stdio.h>
int factorial(int n) {
if (n <= 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int num;
printf("请输入一个非负整数:");
scanf("%d", &num);
printf("%d 的阶乘是:%d\n", num, factorial(num));
return 0;
}
实战技巧:
- 使用递归函数来计算阶乘。
- 使用条件语句来处理基本情况。
习题四:字符串反转
题目描述: 编写一个C语言程序,实现一个函数,用于反转一个字符串,并打印反转后的字符串。
代码示例:
#include <stdio.h>
#include <string.h>
void reverseString(char str[]) {
int len = strlen(str);
int i;
char temp;
for (i = 0; i < len / 2; i++) {
temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
reverseString(str);
printf("反转后的字符串为:%s\n", str);
return 0;
}
实战技巧:
- 使用
strlen函数获取字符串长度。 - 使用循环和临时变量来交换字符。
习题五:冒泡排序
题目描述: 编写一个C语言程序,使用冒泡排序算法对一个整数数组进行排序,并打印排序后的数组。
代码示例:
#include <stdio.h>
void bubbleSort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
int i;
bubbleSort(arr, n);
printf("排序后的数组:\n");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
实战技巧:
- 使用嵌套循环来遍历数组。
- 使用条件语句来比较和交换元素。
习题六:查找最大元素
题目描述: 编写一个C语言程序,使用循环遍历一个整数数组,找出并打印数组中的最大元素。
代码示例:
#include <stdio.h>
int findMax(int arr[], int n) {
int max = arr[0];
int i;
for (i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
int max;
max = findMax(arr, n);
printf("数组中的最大元素是:%d\n", max);
return 0;
}
实战技巧:
- 使用循环来遍历数组。
- 使用条件语句来更新最大值。
习题七:判断素数
题目描述: 编写一个C语言程序,判断用户输入的整数是否为素数,并打印结果。
代码示例:
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (isPrime(num)) {
printf("%d 是素数。\n", num);
} else {
printf("%d 不是素数。\n", num);
}
return 0;
}
实战技巧:
- 使用循环来检查除数。
- 使用条件语句来判断是否为素数。
习题八:计算平均值
题目描述: 编写一个C语言程序,计算用户输入的一组整数的平均值,并打印结果。
代码示例:
#include <stdio.h>
float calculateAverage(int arr[], int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i];
}
return (float)sum / n;
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
float average;
average = calculateAverage(arr, n);
printf("平均值是:%f\n", average);
return 0;
}
实战技巧:
- 使用循环来计算总和。
- 使用条件语句来判断是否为素数。
习题九:字符串比较
题目描述: 编写一个C语言程序,比较两个字符串是否相等,并打印结果。
代码示例:
#include <stdio.h>
#include <string.h>
int compareStrings(char str1[], char str2[]) {
return strcmp(str1, str2);
}
int main() {
char str1[100];
char str2[100];
int result;
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
result = compareStrings(str1, str2);
if (result == 0) {
printf("两个字符串相等。\n");
} else {
printf("两个字符串不相等。\n");
}
return 0;
}
实战技巧:
- 使用
strcmp函数来比较字符串。 - 使用条件语句来打印比较结果。
习题十:密码验证
题目描述: 编写一个C语言程序,验证用户输入的密码是否符合特定的要求(例如,至少包含一个数字和一个字母)。
代码示例:
#include <stdio.h>
#include <ctype.h>
int validatePassword(char password[]) {
int hasDigit = 0, hasLetter = 0;
for (int i = 0; password[i] != '\0'; i++) {
if (isdigit(password[i])) {
hasDigit = 1;
}
if (isalpha(password[i])) {
hasLetter = 1;
}
}
return hasDigit && hasLetter;
}
int main() {
char password[100];
printf("请输入密码:");
scanf("%s", password);
if (validatePassword(password)) {
printf("密码验证成功。\n");
} else {
printf("密码验证失败,密码必须包含数字和字母。\n");
}
return 0;
}
实战技巧:
- 使用
isdigit和isalpha函数来检查字符类型。 - 使用循环来遍历字符串并检查每个字符。
- 使用条件语句来验证密码。
