题目1:输出“Hello, World!”
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
题目2:计算两个整数的和
#include <stdio.h>
int main() {
int a, b, sum;
printf("Enter two integers: ");
scanf("%d %d", &a, &b);
sum = a + b;
printf("Sum = %d\n", sum);
return 0;
}
题目3:判断一个整数是否为偶数
#include <stdio.h>
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
if (num % 2 == 0) {
printf("%d is even.\n", num);
} else {
printf("%d is odd.\n", num);
}
return 0;
}
题目4:计算一个数的阶乘
#include <stdio.h>
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
printf("Factorial of %d is %d\n", num, factorial(num));
return 0;
}
题目5:打印乘法表
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 9; i++) {
for (j = 1; j <= i; j++) {
printf("%d*%d=%d ", j, i, i * j);
}
printf("\n");
}
return 0;
}
题目6:计算一个字符串的长度
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("Enter a string: ");
scanf("%99s", str);
printf("Length of string is %ld\n", strlen(str));
return 0;
}
题目7:将一个字符串转换为大写
#include <stdio.h>
#include <ctype.h>
void toUpperCase(char *str) {
while (*str) {
*str = toupper((unsigned char)*str);
str++;
}
}
int main() {
char str[100];
printf("Enter a string: ");
scanf("%99s", str);
toUpperCase(str);
printf("Uppercase string: %s\n", str);
return 0;
}
题目8:计算一个整数的平方根
#include <stdio.h>
#include <math.h>
double squareRoot(double n) {
return sqrt(n);
}
int main() {
double num;
printf("Enter a number: ");
scanf("%lf", &num);
printf("Square root of %lf is %lf\n", num, squareRoot(num));
return 0;
}
题目9:计算两个数的最大公约数
#include <stdio.h>
int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
int main() {
int num1, num2;
printf("Enter two integers: ");
scanf("%d %d", &num1, &num2);
printf("GCD of %d and %d is %d\n", num1, num2, gcd(num1, num2));
return 0;
}
题目10:判断一个年份是否为闰年
#include <stdio.h>
int isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 1;
} else {
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;
}
题目11:计算一个数的阶乘(使用循环)
#include <stdio.h>
int main() {
int num, i, factorial = 1;
printf("Enter an integer: ");
scanf("%d", &num);
for (i = 1; i <= num; i++) {
factorial *= i;
}
printf("Factorial of %d is %d\n", num, factorial);
return 0;
}
题目12:打印一个倒三角形的图案
#include <stdio.h>
int main() {
int i, j, rows;
printf("Enter the number of rows: ");
scanf("%d", &rows);
for (i = rows; i >= 1; i--) {
for (j = 1; j <= i; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
题目13:计算一个数的幂
#include <stdio.h>
double power(double base, int exp) {
double result = 1.0;
for (int i = 0; i < exp; i++) {
result *= base;
}
return result;
}
int main() {
double base;
int exp;
printf("Enter base and exponent: ");
scanf("%lf %d", &base, &exp);
printf("%lf to the power of %d is %lf\n", base, exp, power(base, exp));
return 0;
}
题目14:判断一个数是否为素数
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
if (isPrime(num)) {
printf("%d is a prime number.\n", num);
} else {
printf("%d is not a prime number.\n", num);
}
return 0;
}
题目15:计算一个字符串中字符的数量
#include <stdio.h>
#include <string.h>
int countChars(char *str) {
int count = 0;
while (*str) {
count++;
str++;
}
return count;
}
int main() {
char str[100];
printf("Enter a string: ");
scanf("%99s", str);
printf("Number of characters in string: %d\n", countChars(str));
return 0;
}
题目16:将一个字符串转换成小写
#include <stdio.h>
#include <ctype.h>
void toLowerCase(char *str) {
while (*str) {
*str = tolower((unsigned char)*str);
str++;
}
}
int main() {
char str[100];
printf("Enter a string: ");
scanf("%99s", str);
toLowerCase(str);
printf("Lowercase string: %s\n", str);
return 0;
}
题目17:计算一个整数的立方根
#include <stdio.h>
#include <math.h>
double cubeRoot(double n) {
return cbrt(n);
}
int main() {
double num;
printf("Enter a number: ");
scanf("%lf", &num);
printf("Cube root of %lf is %lf\n", num, cubeRoot(num));
return 0;
}
题目18:计算两个数的最大公约数(使用辗转相除法)
#include <stdio.h>
int gcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
int main() {
int num1, num2;
printf("Enter two integers: ");
scanf("%d %d", &num1, &num2);
printf("GCD of %d and %d is %d\n", num1, num2, gcd(num1, num2));
return 0;
}
题目19:判断一个年份是否为闰年(使用位运算)
#include <stdio.h>
int isLeapYear(int year) {
return (year & 3) == 0 && (year % 100 != 0 || (year % 400) == 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;
}
题目20:计算一个整数的平方
#include <stdio.h>
int square(int n) {
return n * n;
}
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
printf("Square of %d is %d\n", num, square(num));
return 0;
}
题目21:打印一个直角三角形的图案
#include <stdio.h>
int main() {
int i, j, rows;
printf("Enter the number of rows: ");
scanf("%d", &rows);
for (i = 1; i <= rows; i++) {
for (j = 1; j <= i; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
题目22:计算一个整数的十进制表示中数字的数量
#include <stdio.h>
int countDigits(int n) {
int count = 0;
while (n != 0) {
count++;
n /= 10;
}
return count;
}
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
printf("Number of digits in %d is %d\n", num, countDigits(num));
return 0;
}
题目23:计算一个整数的阶乘(使用递归)
#include <stdio.h>
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
printf("Factorial of %d is %d\n", num, factorial(num));
return 0;
}
题目24:判断一个数是否为偶数(使用位运算)
#include <stdio.h>
int isEven(int n) {
return (n & 1) == 0;
}
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
if (isEven(num)) {
printf("%d is even.\n", num);
} else {
printf("%d is odd.\n", num);
}
return 0;
}
题目25:计算一个整数的立方
#include <stdio.h>
int cube(int n) {
return n * n * n;
}
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
printf("Cube of %d is %d\n", num, cube(num));
return 0;
}
题目26:判断一个数是否为素数(使用试除法)
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
if (isPrime(num)) {
printf("%d is a prime number.\n", num);
} else {
printf("%d is not a prime number.\n", num);
}
return 0;
}
题目27:计算一个整数的平方根(使用牛顿迭代法)
#include <stdio.h>
#include <math.h>
double squareRoot(double n) {
double guess = n / 2.0;
double error = 1e-10;
while (fabs(guess * guess - n) > error) {
guess = (guess + n / guess) / 2.0;
}
return guess;
}
int main() {
double num;
printf("Enter a number: ");
scanf("%lf", &num);
printf("Square root of %lf is %lf\n", num, squareRoot(num));
return 0;
}
题目28:判断一个数是否为偶数(使用位运算)
#include <stdio.h>
int isEven(int n) {
return (n & 1) == 0;
}
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
if (isEven(num)) {
printf("%d is even.\n", num);
} else {
printf("%d is odd.\n", num);
}
return 0;
}
题目29:计算一个整数的立方根(使用牛顿迭代法)
#include <stdio.h>
#include <math.h>
double cubeRoot(double n) {
double guess = n / 3.0;
double error = 1e-10;
while (fabs(guess * guess * guess - n) > error) {
guess = (2.0 * guess + n / (guess * guess)) / 3.0;
}
return guess;
}
int main() {
double num;
printf("Enter a number: ");
scanf("%lf", &num);
printf("Cube root of %lf is %lf\n", num, cubeRoot(num));
return 0;
}
题目30:判断一个数是否为素数(使用试除法)
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
if (isPrime(num)) {
printf("%d is a prime number.\n", num);
} else {
printf("%d is not a prime number.\n", num);
}
return 0;
}