← 2024 · MPS芯源 · 数字FPGA设计(成都) 笔试

推荐答案 测试一下

请使用 C 语言,完成如下程序设计(20分):

A. 编写函数 func_a,将输入的 3 个整数,按从大到小的顺序打印(printf)出来。 B. 编写函数 func_b,返回值为输入的 10 个整数的最大值。
单选题 中等 2024秋招笔试真题Online Assessment芯源MPS

参考答案

func_a 实现三个整数从大到小排序并打印。可借助临时变量通过比较交换:若 a < b 则交换;若 a < c 则交换;若 b < c 则交换。之后按 a, b, c 顺序 printf("%d %d %d", a, b, c)。注意使用整型参数(如 int a, int b, int c)并确保顺序为降序。func_b 实现返回十个整数最大值。可用数组接收参数(如 int arr[10]),假设第一个元素为最大值,遍历比较更新,最后返回 max。注意数组下标范围 0~9,循环从 i=1 开始。示例代码: void func_a(int a, int b, int c) { int tmp; if (a < b) { tmp = a; a = b; b = tmp; } if (a < c) { tmp = a; a = c; c = tmp; } if (b < c) { tmp = b; b = c; c = tmp; } printf("%d %d %d", a, b, c); } int func_b(int arr[10]) { int max = arr[0]; for (int i = 1; i < 10; i++) if (arr[i] > max) max = arr[i]; return max; } 易错点:1) 排序仅用三个比较即可,无需冗余;2) printf 格式不要漏换行或空格;3) 函数返回值类型与 return 一致;4) 数组参数传递时需注意大小,或使用指针;5) 边界条件如数组长度不小于 1。

涉及知识点

  • C语言函数定义与参数传递
  • 条件判断和交换算法
  • 数组遍历与最大值记录
  • printf格式化输出
  • 变量作用域与返回值
← 上一题
登录后反馈错题