跳到主要内容

2025-2026学年上学期期末

2025-2026学年上学期期末试卷​

说明​

根据试卷第 3—6 页照片整理,第 1—2 页缺失。学年、学期及考试类型依收集目录标注,所提供页面未包含卷首信息。照片中的手写作答、批改及遮盖区域未作为参考答案收录。程序保留原题写法。

一、选择题​

第 1—2 页缺失,选择题第 1—9 题题干缺失。第 3 页页首仅保留上一题的选项:A. 10 5;B. 10 10;C. 11 10;D. 11 5。以下保留原卷题号。

  1. 对于字符串定义 char str[10] = "\tHello\n";,sizeof(str) 的大小为( )?

    A. 10

    B. 8

    C. 11

    D. 9


  2. 使用 scanf("%d %s", &num, str); 注入以下两行输入时,请问最终读取结果是?

    10
    Try It!

    A. 10, "Try It!"

    B. 1, "0"

    C. 10, "\n"

    D. 10, "Try"


  3. 下列语句哪个可以动态分配字符串 “Hello” 所需要的空间?

    A. malloc(strlen("Hello"))

    B. allocate(6 * sizeof(char))

    C. malloc(sizeof("Hello"))

    D. allocate(5 * sizeof(char))


  4. 已知 char *str1 = "hello"; char str2[6] = "hello";,以下表达式中哪个是没有编译或执行错误的?

    A. str1 = "hello world!";

    B. str2 = "hello world!";

    C. strcpy(str1, " world!");

    D. strcpy(str2, " world!");


  5. 已知 char map[10][8] 的基地址为 0x001a2451,有 char *ptr = *(map+2);,请问 map[4][5] 的地址和 ptr+2 的地址分别为( )。

    A. 0x001a2496,0x001a2471

    B. 0x001a2496,0x001a2463

    C. 0x001a2476,0x001a2471

    D. 0x001a2476,0x001a2463


  6. 设当前目录下已有一个名为 data.txt 的文件,其内容原本为字符串 Hello。若此时使用 FILE *fp = fopen("data.txt", <label>); 打开文件,并使用 fprintf(fp, " World"); 写入,则下列说法正确的是( )。

    A. 若 <label> 为 "w",则文件最后内容为 "Hello World"

    B. 若 <label> 为 "w",则文件最后内容为 " World"

    C. 若 <label> 为 "r+",则文件最后内容为 "Hello World"

    D. 若 <label> 为 "r",则文件最后内容为 "Hello World"


二、填空题(10 分,每题 2 分)​

  1. C 语言中 const int *p 和 int *const p 的区别是:前者表示 ‾\underline{\qquad},后者表示 ‾\underline{\qquad}。


  2. 在 C 语言中,取模操作符 % 要求两边操作数必须都是 ‾\underline{\qquad} 类型。请给出一个可以表达 if else 逻辑的三元操作符 ‾\underline{\qquad}。


  3. 有如下两种指针的声明语句:int **pp; void (*sp)(int,int);,则 pp 是 ‾\underline{\qquad} 指针,sp 是 ‾\underline{\qquad} 指针。


  4. char s[] = "hello";,假设 &s[0] 的值为 0xEF6C7A19,则 *(s+1) 的值是 ‾\underline{\qquad},s+1 的值是 ‾\underline{\qquad}。


  5. 有语句:int ages[] = {40, 13, 20, 19, 36};,请问 ages[2]/ages[3] 的值是 ‾\underline{\qquad},&ages[2]-&ages[3] 的值是 ‾\underline{\qquad}。


三、程序分析题(20 分,每题 5 分)​

  1. 下面程序的输出结果是:( )。

    void main() {
    int a=0, b=0;
    while(a < 100) {++a;b+=a;}
    printf("%d, ", b);
    a=0;
    while(a < 100) {
    int b;
    ++a;
    b-=a;
    }
    printf("%d", b);
    }

  2. 下面程序的输出结果是:( )。

    #include<stdio.h>
    typedef char string[2000];
    void main() {
    char *p[]={"hello, ", "world", "abc", "123", "!!!"};
    string s1, s2;
    strcpy(s1, p[0]++);
    strcpy(s2, ++p[1]);
    printf("%s", strcat(s1, s2));
    }

  3. 下面程序的输出结果是:( )。

    #include<stdio.h>

    int i=1;
    int fun(int n) {
    static int a=2;
    a++;
    return a+n;
    }
    void main() {
    int k=5;
    {int i=3;k += fun(i);}
    k += fun(i);
    printf("%d", k);
    }

  4. 下面程序的输出结果是:( )。

    #include<stdio.h>

    void main() {
    int i=-10;
    i >>= 3;
    printf("%d", i);
    }

四、编程题(本题满分 40 分,每小题 10 分)​

注意程序中适当的注释和良好的编程风格都是得分点。

  1. (10 分)编写程序,找出 1∼1001\sim100 之间所有“逢 7 过”的数字并输出。所谓“逢 7 过”是指:该数字或者是 7 的倍数,或者个位数是 7,或者十位数是 7。要求:一行输出 5 个数字,数字之间用空格隔开。实现的程序输出如下图所示:

    7 14 17 21 27
    28 35 37 42 47
    ...(后续省略)

  2. (10 分)编写一个函数 int IsPalindrome(const char *str),用于判断传入的字符串是否是“回文串”。如果是回文串,返回 1;否则返回 0。回文串是指正读和反读都一样的字符串,例如 “level”、“12321”、“aba” 都是回文串。输入的字符串长度范围为 [1,50][1,50]。


  3. (10 分)编写一个递归函数 void ToBinary(int n),实现十进制转二进制输出,功能是将传入的正整数 nn 转换为二进制形式并输出(前缀 0 不需要输出)。要求:必须使用递归思想实现;函数只需要打印结果,不需要换行。

    示例:如果 n=7n=7,则程序输出 111。


  4. (10 分)编写程序实现文献管理系统。当前目录下有一个文本文件 references.txt,其中包含文献的信息(格式:文献名称 第一作者 发表日期 被引数量),发表日期格式为 YYYY-MM-DD。从文件中读取所有文献的数据。对文献进行排序,先按发表日期先后顺序进行排序;如果发表日期相同,则按被引数量从高到低排序。将排序后的结果按顺序输出到文件 ordered_references.txt,每行一个文献信息(格式:文献名称 第一作者 发表日期 被引数量)。

    references.txt:

    Deep_Learning_Review LeCun 2015-05-28 5000
    Graph_Networks Scarselli 2009-01-01 1200
    Transformer_Model Vaswani 2017-06-12 8000
    ResNet_Paper He 2015-12-10 6000
    GAN_Introduction Goodfellow 2014-06-10 7500
    Adam_Optimizer Kingma 2015-05-28 4500

    ordered_references.txt:

    Graph_Networks Scarselli 2009-01-01 1200
    GAN_Introduction Goodfellow 2014-06-10 7500
    Deep_Learning_Review LeCun 2015-05-28 5000
    Adam_Optimizer Kingma 2015-05-28 4500
    ResNet_Paper He 2015-12-10 6000
    Transformer_Model Vaswani 2017-06-12 8000