1. 基础语法与数据类型
1.1 变量和常量
题目:编写一个C语言程序,声明一个整型变量和一个浮点型变量,并分别赋值为100和3.14。
代码示例:
#include <stdio.h>
int main() {
int num = 100;
float fnum = 3.14;
printf("整型变量:%d\n", num);
printf("浮点型变量:%f\n", fnum);
return 0;
}
1.2 运算符
题目:编写一个C语言程序,计算表达式 (5 + 3) * 2 - 4 / 2 的值。
代码示例:
#include <stdio.h>
int main() {
int result = (5 + 3) * 2 - 4 / 2;
printf("结果:%d\n", result);
return 0;
}
2. 控制结构
2.1 条件语句
题目:编写一个C语言程序,判断一个整数是否为偶数。
代码示例:
#include <stdio.h>
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (num % 2 == 0) {
printf("%d 是偶数。\n", num);
} else {
printf("%d 是奇数。\n", num);
}
return 0;
}
2.2 循环结构
题目:编写一个C语言程序,打印从1到10的所有整数。
代码示例:
#include <stdio.h>
int main() {
for (int i = 1; i <= 10; i++) {
printf("%d ", i);
}
printf("\n");
return 0;
}
3. 函数
3.1 函数定义与调用
题目:编写一个C语言程序,定义一个函数计算两个整数的和,并在主函数中调用这个函数。
代码示例:
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int main() {
int num1, num2, sum;
printf("请输入两个整数:");
scanf("%d %d", &num1, &num2);
sum = add(num1, num2);
printf("它们的和是:%d\n", sum);
return 0;
}
4. 数组
4.1 一维数组
题目:编写一个C语言程序,创建一个整型数组,并初始化为1, 2, 3, 4, 5,然后打印出数组中的每个元素。
代码示例:
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
printf("arr[%d] = %d\n", i, arr[i]);
}
return 0;
}
4.2 二维数组
题目:编写一个C语言程序,创建一个3x3的二维数组,并初始化为以下值:
1 0 0
0 1 0
0 0 1
然后打印出数组中的每个元素。
代码示例:
#include <stdio.h>
int main() {
int arr[3][3] = {
{1, 0, 0},
{0, 1, 0},
{0, 0, 1}
};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
5. 指针
5.1 指针基础
题目:编写一个C语言程序,声明一个整型变量和一个指向整型的指针,并将指针指向这个变量的地址。
代码示例:
#include <stdio.h>
int main() {
int num = 10;
int *ptr = #
printf("num 的地址:%p\n", (void *)&num);
printf("ptr 的地址:%p\n", (void *)ptr);
return 0;
}
5.2 指针与数组
题目:编写一个C语言程序,声明一个整型数组,并通过指针访问数组中的每个元素。
代码示例:
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int *ptr = arr;
for (int i = 0; i < 5; i++) {
printf("arr[%d] = %d\n", i, *(ptr + i));
}
return 0;
}
6. 结构体
6.1 结构体定义与使用
题目:编写一个C语言程序,定义一个结构体表示学生信息,包括姓名、年龄和成绩,然后创建一个学生实例并打印其信息。
代码示例:
#include <stdio.h>
typedef struct {
char name[50];
int age;
float score;
} Student;
int main() {
Student stu = {"张三", 20, 90.5};
printf("姓名:%s\n", stu.name);
printf("年龄:%d\n", stu.age);
printf("成绩:%f\n", stu.score);
return 0;
}
7. 文件操作
7.1 文件读取
题目:编写一个C语言程序,从文件中读取一行文本,并打印到控制台。
代码示例:
#include <stdio.h>
int main() {
FILE *fp = fopen("example.txt", "r");
if (fp == NULL) {
printf("无法打开文件。\n");
return 1;
}
char buffer[100];
while (fgets(buffer, sizeof(buffer), fp)) {
printf("%s", buffer);
}
fclose(fp);
return 0;
}
7.2 文件写入
题目:编写一个C语言程序,将一行文本写入到文件中。
代码示例:
#include <stdio.h>
int main() {
FILE *fp = fopen("example.txt", "w");
if (fp == NULL) {
printf("无法打开文件。\n");
return 1;
}
fprintf(fp, "这是一行文本。\n");
fclose(fp);
return 0;
}
8. 动态内存分配
8.1 动态分配内存
题目:编写一个C语言程序,动态分配一块内存,存储10个整数的值,并打印出来。
代码示例:
#include <stdio.h>
#include <stdlib.h>
int main() {
int *arr = (int *)malloc(10 * sizeof(int));
if (arr == NULL) {
printf("内存分配失败。\n");
return 1;
}
for (int i = 0; i < 10; i++) {
arr[i] = i + 1;
}
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
free(arr);
return 0;
}
9. 预处理器指令
9.1 宏定义
题目:编写一个C语言程序,使用宏定义计算两个数的和。
代码示例:
#include <stdio.h>
#define ADD(a, b) ((a) + (b))
int main() {
int num1 = 5, num2 = 3;
printf("和:%d\n", ADD(num1, num2));
return 0;
}
9.2 条件编译
题目:编写一个C语言程序,根据编译时的条件编译指令,打印不同的信息。
代码示例:
#include <stdio.h>
#define DEBUG
int main() {
#ifdef DEBUG
printf("调试模式。\n");
#else
printf("正常模式。\n");
#endif
return 0;
}
10. 总结
以上是从入门到精通的C语言新手必做题库详解,涵盖了C语言的基础语法、控制结构、函数、数组、指针、结构体、文件操作、动态内存分配和预处理器指令等内容。通过这些练习,你可以更好地掌握C语言编程,为后续的学习打下坚实的基础。