高级语言程序设计实验期末实验报告

高级语言程序设计期末实验报告, 包含 20 个 C 语言编程题目实现, 涵盖数组操作、循环结构、条件判断、函数定义等核心编程概念, 每个题目提供完整代码及运行结果截图。

1、从键盘输入 10 个考生成绩,计算并输出平均成绩、最高分、最低分

#include <stdio.h>
int main()
{
    float score[10];
    float avg,max,min;
    for(int i = 0;i < 10;i++)
    {
        scanf("%f",&score[i]);
    }
    max = min = avg = score[0];
    for(int i = 1;i < 10;i++)
    {
        if(score[i]>max) max = score[i];
        if(score[i]<min) min = score[i];
        avg += score[i];
    }
    avg /= 10;
    printf("avg=%.2f max=%.2f min=%.2f\n",avg,max,min);
    return 0;
}
高级语言程序设计实验期末实验报告图1.png

2、输入一个整数 n,计算并输出 1^2 + 2^2 + ... + n^2 的值

#include <stdio.h>
int main()
{
    int n;
    int sum = 0;
    scanf("%d",&n);
    for(int i = 1;i <= n;i++)
    {
        sum += i*i;
    }
    printf("%d\n",sum);
    return 0;
}
高级语言程序设计实验期末实验报告图2.png

3、使用 while 循环计算并输出 1 + 2 + ... + 100 的和

#include <stdio.h>
int main()
{
    int i = 1;
    int sum = 0;
    while (i <= 100)
    {
        sum += i;
        i++;
    }
    printf("%d\n",sum);
    return 0;
}
高级语言程序设计实验期末实验报告图3.png

4、使用 do-while 循环输出 ASCII 码值从 33 到 127 对应的字符,每个字符后输出一个空格

#include <stdio.h>
int main()
{
    int ascii = 33;
    do
    {
        printf("%c ", ascii);
        ascii++;
    }while(ascii <= 127);
    printf("\n");
    return 0;
}
高级语言程序设计实验期末实验报告图4.png

注:ASCII 码值 127 对应的是 DEL(Delete)字符,它是一个控制字符,不是可打印字符。

5、编程输出九九乘法表(1×1 到 9×9)

#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,j*i);
        }
        printf("\n");
    }
    return 0;
}
高级语言程序设计实验期末实验报告图5.png

6、计算并输出 1 到 100 之间所有能被 3 整除的整数之和

#include <stdio.h>
int main()
{
    int sum = 0;
    int i;
    for(i = 1;i <= 100;i++)
    {
        if(i % 3 == 0)
        {
            sum += i;
        }
    }
    printf("%d\n",sum);
    return 0;
}
高级语言程序设计实验期末实验报告图6.png

7、输入一个整数,统计它有几位数(注:负号不算位数)

#include <stdio.h>
int main()
{
    int n, count = 0;
    scanf("%d",&n);
    if(n < 0) n = -n;
    if(n == 0) count = 1;
    while(n > 0){
        count++;
        n /= 10;
    }
    printf("%d\n",count);
    return 0;
}
高级语言程序设计实验期末实验报告图7.png

8、输出 1 到 100 之间满足“是 7 的倍数或个位数字为 7”的所有整数,并统计这些整数的个数

#include <stdio.h>
int main()
{
    int count = 0;
    for(int i = 1;i <= 100;i++)
    {
        if(i % 7 == 0 || i % 10 == 7)
        {
            printf("%d ",i);
            count++;
        }
    }
    printf("\ncount=%d\n",count);
    return 0;
}
高级语言程序设计实验期末实验报告图8.png

9、从键盘输入一个正整数 n(n>=1),输出 n 的所有正因子(从小到大),并在最后输出因子个数

#include <stdio.h>
int main()
{
    int n,count = 0;
    scanf("%d",&n);
    for(int i = 1;i <= n;i++)
    {
        if(n % i == 0)
        {
            printf("%d ",i);
            count++;
        }
    }
    printf("\ncount=%d\n",count);
    return 0;
}
高级语言程序设计实验期末实验报告图9.png

10、找出 1 到 500 之间满足以下条件的所有整数并输出:除以 3 余 2,除以 5 余 3,除以 7 余 4;最后输出个数

#include <stdio.h>
int main()
{
    int count = 0;
    for(int i = 1;i <= 500;i++)
    {
        if(i % 3 == 2 && i % 5 == 3 && i % 7 == 4)
        {
            printf("%d ",i);
            count++;
        }
    }
    printf("\ncount=%d\n",count);
    return 0;
}
高级语言程序设计实验期末实验报告图10.png

11、输入一个整数,将其倒序输出,并输出各位数字之和

#include <stdio.h>
int main()
{
    int n,rev = 0,sum = 0;
    scanf("%d",&n);
    while(n > 0)
    {
        int digit = n % 10;
        rev = rev * 10 + digit;
        sum += digit;
        n /= 10;
    }
    printf("rev=%d\nsum=%d\n",rev,sum);
    return 0;
}
高级语言程序设计实验期末实验报告图11.png

12、输入一个不多于 5 位的正整数 n,分别输出它的每一位数字(从高位到低位),数字之间用空格分隔

#include <stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    if(n >= 10000) printf("%d ",n / 10000);
    if(n >= 1000) printf("%d ",(n / 1000) % 10);
    if(n >= 100) printf("%d ",(n / 100) % 10);
    if(n >= 10) printf("%d ",(n / 10) % 10);
    printf("%d\n",n % 10);
    return 0;
}
高级语言程序设计实验期末实验报告图12.png

13、从键盘输入一个字符,如果是 +、-、*、/ 则输出对应英文单词:plus、minus、multiply、divide;否则输出 sorry, you are wrong。要求使用 switch 语句实现

#include <stdio.h>
int main()
{
    char c;
    scanf("%c",&c);
    switch(c)
    {
        case '+': printf("plus\n"); break;
        case '-': printf("minus\n"); break;
        case '*': printf("multiply\n"); break;
        case '/': printf("divide\n"); break;
        default: printf("sorry, you are wrong\n");
    }
    return 0;
}
高级语言程序设计实验期末实验报告图13.png

14、从键盘输入 10 个整数,用冒泡排序按升序输出

#include <stdio.h>
int main()
{
    int a[10];
    for(int i = 0;i < 10;i++)
    {
        scanf("%d",&a[i]);
    }
    for(int i = 0;i < 9;i++)
    {
        for(int j = 0;j < 9 - i;j++)
        {
            if(a[j] > a[j + 1])
            {
                int temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
        }
    }
    for(int i = 0;i < 10;i++)
    {
        printf("%d ",a[i]);
    }
    printf("\n");
    return 0;
}
高级语言程序设计实验期末实验报告图14.png

15、使用结构体保存学生三门课成绩(语文、数学、英语),输入三门成绩,输出平均分(保留 1 位小数)

#include <stdio.h>
struct Student
{
    int chinese;
    int math;
    int english;
};
int main()
{
    struct Student s;
    scanf("%d %d %d", &s.chinese, &s.math, &s.english);
    float avg = (s.chinese + s.math + s.english) / 3.0;
    printf("avg=%.1f\n",avg);
    return 0;
}
高级语言程序设计实验期末实验报告图15.png

16、输入 10 个整数存入数组,若最大值或最小值出现多次,则取第一次出现的位置;用指针交换函数交换这两个位置的元素,输出交换后的数组。若最大值与最小值在同一位置(例如全部相等),数组不变

#include <stdio.h>
void swap(int *a, int *b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
}
int main()
{
    int a[10];
    for(int i = 0;i < 10;i++)
    {
        scanf("%d",&a[i]);
    }
    int max_idx = 0,min_idx = 0;
    for(int i = 1;i < 10;i++)
    {
        if(a[i] > a[max_idx]) max_idx = i;
        if(a[i] < a[min_idx]) min_idx = i;
    }
    if(max_idx != min_idx)
    {
        swap(&a[max_idx],&a[min_idx]);
    }
    for(int i = 0;i < 10;i++)
    {
        printf("%d ",a[i]);
    }
    printf("\n");
    return 0;
}
高级语言程序设计实验期末实验报告图16.png

17、输入一个字符串 S(不含空格),使用指针遍历字符串(不调用 strlen、strcpy 等),统计并输出大写字母、小写字母、数字字符的个数

#include <stdio.h>
int main()
{
    char S[100],*p = S;
    int upper = 0,lower = 0,digit = 0;
    scanf("%s",S);
    while(*p != '\0')
    {
        if(*p >= 'A' && *p <= 'Z') upper++;
        else if(*p >= 'a' && *p <= 'z') lower++;
        else if(*p >= '0' && *p <= '9') digit++;
        p++;
    }
    printf("upper=%d\nlower=%d\ndigit=%d\n",upper,lower,digit);
    return 0;
}
高级语言程序设计实验期末实验报告图17.png

18、编写函数 int is_prime(int n)与主函数main 判断 n 是否为素数(是返回 1,否则返回 0);主函数输入 n 并输出 YES 或 NO

#include <stdio.h>
int is_prime(int n)
{
    if(n <= 1) return 0;
    if(n == 2) return 1;
    if(n % 2 == 0) return 0;
    for(int i = 3;i * i <= n;i += 2)
    {
        if(n % i == 0) return 0;
    }
    return 1;
}
int main()
{
    int n;
    scanf("%d",&n);
    if(is_prime(n)) printf("YES\n");
    else printf("NO\n");
    return 0;
}
高级语言程序设计实验期末实验报告图18.png

19、从键盘输入 10 个整数,输出“第二大且不同于最大值”的数(有重复时只算不同值)。若不存在第二大(例如全相等),输出 no second

#include <stdio.h>
int main()
{
    int a[10];
    for(int i = 0;i < 10;i++)
    {
        scanf("%d",&a[i]);
    }
    int max = -1000000,second = -1000000;
    for(int i = 0;i < 10;i++)
    {
        if(a[i] > max) max = a[i];
    }
    for(int i = 0; i < 10; i++)
    {
        if(a[i] < max && a[i] > second) second = a[i];
    }
    if(second == -1000000) printf("no second\n");
    else printf("second=%d\n",second);
    return 0;
}
高级语言程序设计实验期末实验报告图19.png

20、从键盘输入一个 5 位正整数,判断它是否为回文数(个位与万位相同,十位与千位相同)。是则输出 YES,否则输出 NO

#include <stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int wan = n / 10000;
    int qian = (n / 1000) % 10;
    int shi = (n / 10) % 10;
    int ge = n % 10;
    if(wan == ge && qian == shi) printf("YES\n");
    else printf("NO\n");
    return 0;
}
高级语言程序设计实验期末实验报告图20.png

大一上期末考试 2026-01-08
南方人去东北怎么准备?看这篇就够! 2026-02-01