从入门到精通:C语言新手必做题库详解

2026-10-28 0 阅读

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 = &num;
    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语言编程,为后续的学习打下坚实的基础。

分享到: