题目 1: 计算圆的面积
描述: 输入圆的半径,计算并输出圆的面积。
题目 2: 判断一个年份是否为闰年
描述: 输入一个年份,判断并输出该年份是否为闰年。
题目 3: 计算并输出斐波那契数列的前10个数
描述: 输出斐波那契数列的前10个数。
题目 4: 字符串长度计算
描述: 输入一个字符串,输出该字符串的长度。
题目 5: 实现冒泡排序算法
描述: 输入一个整数数组,使用冒泡排序算法对其进行排序,并输出排序后的结果。
题目 6: 计算一个整数的阶乘
描述: 输入一个正整数,输出其阶乘。
题目 7: 实现线性查找算法
描述: 在一个已排序的数组中实现线性查找算法,查找特定元素的位置。
题目 8: 计算一个数的平方根
描述: 输入一个非负实数,计算并输出其平方根。
题目 9: 实现选择排序算法
描述: 输入一个整数数组,使用选择排序算法对其进行排序,并输出排序后的结果。
题目 10: 计算一个整数的倒数
描述: 输入一个非零整数,输出其倒数。
题目 11: 实现二分查找算法
描述: 在一个已排序的数组中实现二分查找算法,查找特定元素的位置。
题目 12: 输出一个整数数组的所有元素
描述: 输入一个整数数组及其大小,输出数组的所有元素。
题目 13: 计算并输出一个整数数组的平均值
描述: 输入一个整数数组,计算并输出其平均值。
题目 14: 字符串内容替换
描述: 输入一个字符串和一个要替换的字符,将字符串中所有该字符替换为另一个字符,并输出替换后的字符串。
题目 15: 实现插入排序算法
描述: 输入一个整数数组,使用插入排序算法对其进行排序,并输出排序后的结果。
题目 16: 计算并输出一个整数的立方
描述: 输入一个整数,计算并输出其立方。
题目 17: 实现长整数相加的函数
描述: 设计一个函数,实现两个长整数的相加,并输出结果。
题目 18: 字符串翻转
描述: 输入一个字符串,输出其翻转后的字符串。
题目 19: 计算并输出一个整数的最大因子
描述: 输入一个正整数,计算并输出其最大因子。
题目 20: 实现质数生成器
描述: 输出一个范围内的所有质数。
题目 1: 计算圆的面积
c
#include <stdio.h>
#define PI 3.14159
int main() {
float radius, area;
printf("Enter the radius of the circle: ");
scanf("%f", &radius);
area = PI * radius * radius;
printf("The area of the circle is: %f\n", area);
return 0;
}
题目 2: 判断一个年份是否为闰年
c
#include <stdio.h>
int isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
return 1;
return 0;
}
int main() {
int year;
printf("Enter a year: ");
scanf("%d", &year);
if (isLeapYear(year)) {
printf("%d is a leap year.\n", year);
} else {
printf("%d is not a leap year.\n", year);
}
return 0;
}
题目 3: 计算并输出斐波那契数列的前10个数
c
#include <stdio.h>
int main() {
int n = 10, t1 = 0, t2 = 1, nextTerm = t1 + t2;
printf("Fibonacci Series: ");
for (int i = 1; i <= n; ++i) {
printf("%d, ", t1);
nextTerm = t1 + t2;
t1 = t2;
t2 = nextTerm;
}
return 0;
}
题目 4: 字符串长度计算
c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("Enter a string: ");
scanf("%s", str);
printf("The length of the string is: %lu\n", strlen(str));
return 0;
}
题目 5: 实现冒泡排序算法
c
#include <stdio.h>
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
int n;
printf("Enter the number of elements: ");
scanf("%d", &n);
int arr[n];
printf("Enter %d elements:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
bubbleSort(arr, n);
printf("Sorted array:\n");
for (int i = 0; i < n; i++) {
printf("%d\n", arr[i]);
}
return 0;
}
题目 6: 计算一个整数的阶乘
c
#include <stdio.h>
long long factorial(int n) {
if (n == 0)
return 1;
return n * factorial(n - 1);
}
int main() {
int num;
printf("Enter a positive integer: ");
scanf("%d", &num);
printf("Factorial of %d is %lld.\n", num, factorial(num));
return 0;
}
题目 7: 实现线性查找算法
c
#include <stdio.h>
int linearSearch(int arr[], int n, int x) {
for (int i = 0; i < n; i++) {
if (arr[i] == x)
return i;
}
return -1;
}
int main() {
int n;
printf("Enter the number of elements: ");
scanf("%d", &n);
int arr[n];
printf("Enter the elements: ");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
int x;
printf("Enter the element to be searched: ");
scanf("%d", &x);
int result = linearSearch(arr, n, x);
if (result == -1)
printf("Element not found.\n");
else
printf("Element found at index %d.\n", result);
return 0;
}
题目 8: 计算一个数的平方根
c
#include <stdio.h>
#include <math.h>
int main() {
double num, sqrtNum;
printf("Enter a number: ");
scanf("%lf", &num);
sqrtNum = sqrt(num);
printf("Square root of %lf is %lf.\n", num, sqrtNum);
return 0;
}
题目 9: 实现选择排序算法
c
#include <stdio.h>
void selectionSort(int arr[], int n) {
int i, j, min_idx, temp;
for (i = 0; i < n-1; i++) {
min_idx = i;
for (j = i+1; j < n; j++) {
if (arr[j] < arr[min_idx]) {
min_idx = j;
}
}
temp = arr[min_idx];
arr[min_idx] = arr[i];
arr[i] = temp;
}
}
int main() {
int n;
printf("Enter the number of elements: ");
scanf("%d", &n);
int arr[n];
printf("Enter %d elements:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
selectionSort(arr, n);
printf("Sorted array:\n");
for (int i = 0; i < n; i++) {
printf("%d\n", arr[i]);
}
return 0;
}
题目 10: 计算一个整数的倒数
c
#include <stdio.h>
int main() {
int num;
double reciprocal;
printf("Enter an integer (except 0): ");
scanf("%d", &num);
if (num == 0) {
printf("Cannot calculate reciprocal of 0.\n");
} else {
reciprocal = 1.0 / num;
printf("Reciprocal of %d is %f.\n", num, reciprocal);
}
return 0;
}
题目 11: 实现二分查找算法
c
#include <stdio.h>
int binarySearch(int arr[], int l, int r, int x) {
while (l <= r) {
int m = l + (r - l) / 2;
if (arr[m] == x)
return m;
if (arr[m] < x)
l = m + 1;
else
r = m - 1;
}
return -1;
}
int main() {
int n, i, x, result;
printf("Enter the number of elements: ");
scanf("%d", &n);
int arr[n];
printf("Enter the elements: ");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("Enter the element to be searched: ");
scanf("%d", &x);
result = binarySearch(arr, 0, n - 1, x);
if (result == -1)
printf("Element not found.\n");
else
printf("Element found at index %d.\n", result);
return 0;
}
题目 12: 输出一个整数数组的所有元素
c
#include <stdio.h>
int main() {
int n, i;
printf("Enter the number of elements: ");
scanf("%d", &n);
int arr[n];
printf("Enter %d elements:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("Array elements are:\n");
for (i = 0; i < n; i++) {
printf("%d\n", arr[i]);
}
return 0;
}
题目 13: 计算并输出一个整数数组的平均值
c
#include <stdio.h>
int main() {
int n, i;
long long sum = 0;
printf("Enter the number of elements: ");
scanf("%d", &n);
int arr[n];
printf("Enter %d elements:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
sum += arr[i];
}
double average = (double)sum / n;
printf("Average is: %f\n", average);
return 0;
}
题目 14: 字符串内容替换
c
#include <stdio.h>
#include <string.h>
int main() {
char str[100], ch1, ch2;
printf("Enter the string: ");
scanf("%s", str);
printf("Enter the character to be replaced: ");
scanf(" %c", &ch1);
printf("Enter the replacement character: ");
scanf(" %c", &ch2);
for (int i = 0; i < strlen(str); i++) {
if (str[i] == ch1) {
str[i] = ch2;
}
}
printf("Modified string is: %s\n", str);
return 0;
}
题目 15: 实现插入排序算法
c
#include <stdio.h>
void insertionSort(int arr[], int n) {
int i, key, j;
for (i = 1; i < n; i++) {
key = arr[i];
j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
int main() {
int n;
printf("Enter the number of elements: ");
scanf("%d", &n);
int arr[n];
printf("Enter %d elements:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
insertionSort(arr, n);
printf("Sorted array:\n");
for (int i = 0; i < n; i++) {
printf("%d\n", arr[i]);
}
return 0;
}
题目 16: 计算并输出一个整数的立方
c
#include <stdio.h>
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
int cube = num * num * num;
printf("Cube of %d is %d.\n", num, cube);
return 0;
}
题目 17: 实现长整数相加的函数
c
#include <stdio.h>
#include <string.h>
void add(long long int a[], long long int b[], int size) {
int carry = 0, sum, i;
long long int c[size];
for (i = 0; i < size; i++) {
sum = a[i] + b[i] + carry;
carry = sum / 10;
c[i] = sum % 10;
}
for (i = size - 1; i >= 0; i--) {
printf("%lld", c[i]);
}
printf("\n");
}
int main() {
long long int a[] = {0, 0, 0}; // Initialize to the length required
long long int b[] = {0, 0, 0};
int size;
printf("Enter the size of the integers: ");
scanf("%d", &size);
printf("Enter the first integer: ");
for (int i = 0; i < size; i++) {
scanf("%lld", &a[i]);
}
printf("Enter the second integer: ");
for (int i = 0; i < size; i++) {
scanf("%lld", &b[i]);
}
add(a, b, size);
return 0;
}
题目 18: 字符串翻转
c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("Enter a string: ");
scanf("%s", str);
int len = strlen(str);
for (int i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
printf("Reversed string is: %s\n", str);
return 0;
}
题目 19: 计算并输出一个整数的最大因子
c
#include <stdio.h>
int maxFactor(int num) {
for (int i = num / 2; i >= 1; i--) {
if (num % i == 0)
return i;
}
return 1; // Since 1 is the minimum factor other than the number itself
}
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
int maxFactorValue = maxFactor(num);
printf("The largest factor of %d is %d.\n", num, maxFactorValue);
return 0;
}
题目 20: 实现质数生成器
c
#include <stdio.h>
int isPrime(int num) {
if (num <= 1)
return 0;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return 0;
}
return 1;
}
void printPrimes(int start, int end) {
printf("Prime numbers between %d and %d are:\n", start, end);
for (int i = start; i <= end; i++) {
if (isPrime(i))
printf("%d ", i);
}
printf("\n");
}
int main() {
int start, end;
printf("Enter the range (start end): ");
scanf("%d %d", &start, &end);
printPrimes(start, end);
return 0;
}