一、考试概述

C语言作为一门基础编程语言,在计算机科学领域有着广泛的应用。对于大一学生来说,C语言程序设计是学习编程的第一步。为了帮助大家更好地准备大一期末考试,本文将提供一份实战演练题库,并附上高分攻略。

二、实战演练题库

1. 基础语法

题目:编写一个C程序,实现以下功能:

  • 输入一个整数n,输出从1到n的所有整数。
  • 输入一个字符串,输出其长度。

参考代码

#include <stdio.h>
#include <string.h>

int main() {
    int n;
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
        printf("%d ", i);
    }
    printf("\n");

    char str[100];
    scanf("%s", str);
    printf("Length of the string: %d\n", strlen(str));

    return 0;
}

2. 控制结构

题目:编写一个C程序,实现以下功能:

  • 输入一个整数n,判断其是否为偶数。
  • 输入一个字符串,判断其是否为回文。

参考代码

#include <stdio.h>
#include <string.h>
#include <stdbool.h>

int main() {
    int n;
    scanf("%d", &n);
    if (n % 2 == 0) {
        printf("Even\n");
    } else {
        printf("Odd\n");
    }

    char str[100];
    scanf("%s", str);
    int len = strlen(str);
    bool isPalindrome = true;
    for (int i = 0; i < len / 2; i++) {
        if (str[i] != str[len - i - 1]) {
            isPalindrome = false;
            break;
        }
    }
    if (isPalindrome) {
        printf("Palindrome\n");
    } else {
        printf("Not Palindrome\n");
    }

    return 0;
}

3. 函数

题目:编写一个C程序,实现以下功能:

  • 定义一个函数,计算两个整数的最大公约数。
  • 定义一个函数,计算一个字符串中字符’a’出现的次数。

参考代码

#include <stdio.h>

// 计算最大公约数
int gcd(int a, int b) {
    if (b == 0) {
        return a;
    } else {
        return gcd(b, a % b);
    }
}

// 计算字符'a'出现的次数
int countChar(char *str) {
    int count = 0;
    while (*str) {
        if (*str == 'a') {
            count++;
        }
        str++;
    }
    return count;
}

int main() {
    int num1, num2;
    scanf("%d %d", &num1, &num2);
    printf("GCD: %d\n", gcd(num1, num2));

    char str[100];
    scanf("%s", str);
    printf("Count of 'a': %d\n", countChar(str));

    return 0;
}

4. 数组

题目:编写一个C程序,实现以下功能:

  • 输入一个整数n,定义一个长度为n的数组,随机填充0到99之间的整数。
  • 输出数组中的最大值和最小值。

参考代码

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int n;
    scanf("%d", &n);
    int arr[n];
    srand(time(NULL));
    for (int i = 0; i < n; i++) {
        arr[i] = rand() % 100;
    }

    int max = arr[0], min = arr[0];
    for (int i = 1; i < n; i++) {
        if (arr[i] > max) {
            max = arr[i];
        }
        if (arr[i] < min) {
            min = arr[i];
        }
    }

    printf("Max: %d\n", max);
    printf("Min: %d\n", min);

    return 0;
}

5. 指针

题目:编写一个C程序,实现以下功能:

  • 输入一个整数n,定义一个长度为n的数组,随机填充0到99之间的整数。
  • 输出数组中的最大值和最小值,使用指针完成。

参考代码

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int n;
    scanf("%d", &n);
    int arr[n];
    srand(time(NULL));
    for (int i = 0; i < n; i++) {
        arr[i] = rand() % 100;
    }

    int *ptr = arr;
    int max = *ptr, min = *ptr;
    for (int i = 1; i < n; i++) {
        if (*(ptr + i) > max) {
            max = *(ptr + i);
        }
        if (*(ptr + i) < min) {
            min = *(ptr + i);
        }
    }

    printf("Max: %d\n", max);
    printf("Min: %d\n", min);

    return 0;
}

三、高分攻略

  1. 基础知识要扎实:熟练掌握C语言的基础语法、控制结构、函数、数组、指针等概念。
  2. 多做练习题:通过大量练习,提高编程能力和解题速度。
  3. 注重细节:在编程过程中,注意检查代码中的语法错误、逻辑错误等。
  4. 阅读优秀代码:阅读其他人的优秀代码,学习其编程思路和技巧。
  5. 总结归纳:在学习和练习过程中,总结归纳自己的经验和教训。

希望这份实战演练题库和高分攻略能帮助大家在大一期末考试中取得优异成绩!