XJTU自动化25级C程序设计期末考试

考试时间:120分钟 满分:100分


一、反序数(20分)

题目描述

如果一个五位数的反序数等于该数的9倍,则称该数满足"九倍反序特性"。例如:假设五位数abcde的反序数为edcba,当edcba = 9 × abcde时,该数满足条件。

请编写C程序,计算所有满足"九倍反序特性"的五位数的总和,并直接输出该总和。

要求

  1. 直接输出计算结果,不要输出任何其他文字
  2. 使用printf函数输出,格式为:printf("%d", sum);

提示

五位数范围是10000-99999,反序数可通过数字分解重组得到。


二、矩阵处理(20分)

题目描述

输入一个5×5的整数矩阵,完成以下操作:

  1. 找出每一行的最大值,按顺序输出,用逗号分隔
  2. 计算主对角线(从左上到右下)上所有行号和列号均为奇数的元素的乘积
  3. 计算主对角线所有元素的平均值,保留两位小数

输入格式

  • 输入5行,每行5个整数,整数之间用空格分隔
  • 整数范围在[-1000, 1000]之间

输出格式

  • 第一行:每行最大值,用逗号分隔(最后一个值后无逗号)
  • 第二行:对角线上行列均为奇数的元素乘积
  • 第三行:对角线平均值,保留两位小数

示例输入

1 3 5 7 9
2 4 6 8 10
11 13 15 17 19
12 14 16 18 20
21 23 25 27 29

示例输出

9,10,19,20,29
1
15.00

注意:行号和列号从1开始计数。


三、神经网络(20分)

题目描述

在神经网络中,Sigmoid函数是常用的激活函数。其计算分为两步:

  1. 线性组合:z = w_1 * x_1 + w_2 * x_2 + b
  2. Sigmoid变换:y = 1 / (1 + exp(-z))

给定参数:w_1 = 0.15, w_2 = 0.25, b = -0.35

要求

  1. 定义两个double类型函数:
  2. double linear_combination(double x1, double x2):计算线性组合
  3. double sigmoid(double z):计算Sigmoid值
  4. 在主函数中:
  5. 从键盘输入两个浮点数x_1x_2
  6. 调用上述函数计算y
  7. 输出y,保留两位小数

输入格式

  • 两个浮点数x1x2,用空格分隔

输出格式

  • 输出计算得到的y值,保留两位小数

示例输入

0.5 0.8

示例输出

0.48

四、回文子串(20分)

题目描述

给定一个字符串(长度不超过1000),找出其中最长连续回文子串。如果存在多个相同长度的最长回文子串,输出最左边的一个。

输入格式

  • 一行字符串,可能包含空格,请使用fgets读取整行
  • 字符串长度不超过1000个字符

输出格式

  • 最长连续回文子串

示例1

输入:

abcbadef

输出:

abcba

示例2

输入:

aaabbbccc

输出:

aaa

算法提示

可采用中心扩展法,从每个位置(包括字符之间)向两边扩展寻找回文。


五、结构体(20分)

题目描述

定义一个产品结构体Product,包含以下成员:

  • pid:产品编号(整型)
  • pname:产品名称(字符串,不超过20字符)
  • price:单价(浮点型)
  • sales:销量(整型)
  • total:总销售额(浮点型,计算得到:total = price × sales

要求

  1. 输入5个产品的信息(编号、名称、单价、销量)
  2. 计算每个产品的总销售额
  3. 按总销售额降序排序,若总销售额相同,按销量降序排序
  4. 输出排序后的产品信息,格式要求:
  5. 每行输出一个产品信息
  6. 各字段用制表符\t分隔
  7. 单价和总销售额保留两位小数
  8. 第一名产品在行末添加*TOP*标记(仅第一名添加)

输入格式

  • 输入5行,每行包含:
  • 产品编号(整数)
  • 产品名称(不含空格的字符串)
  • 单价(浮点数)
  • 销量(整数)

输出格式

  • 排序后的产品信息,每行格式:pid\tpname\tprice\tsales\ttotal
  • 第一名产品格式:pid\tpname\tprice\tsales\ttotal\t*TOP*

示例输入

1001 Laptop 5999.99 50
1002 Mouse 89.50 200
1003 Keyboard 299.00 150
1004 Monitor 1299.00 80
1005 Headset 399.00 120

示例输出

1001    Laptop    5999.99    50    299999.50    *TOP*
1004    Monitor    1299.00    80    103920.00
1003    Keyboard    299.00    150    44850.00
1005    Headset    399.00    120    47880.00
1002    Mouse    89.50    200    17900.00

注:本试卷为回忆整理版,题目内容及样例与原始试卷可能存在差异