### 试题-1 ```c /*---------------------------------------------------------------------- 【程序设计】 ------------------------------------------------------------------------ 编写一个 C 语言函数,函数接收一个整数数组 arr 以及数组的长度 size 作为参数,使用 bool 类型返回该数组中是否存在重复的元素。在 main 函数中,输入多个正整数(输入非数字字符表示输入结束)并调用该函数,根据返回结果输出相应的提示信息。 示例: 【请输入多个整数(输入非数字字符结束输入):】1 2 3 4 5 5 6 a 数组中存在重复元素。 ------------------------------------------------------------------------ 注意:部分源程序给出如下。请勿改动主函数 main 或其它函数中给出的内容,仅在 Program-End之间填入若干语句。 不要删除标志否则不得分。 不要修改或删除Program-End之外的内容否则不得分。 ----------------------------------------------------------------------*/ #include #include #include bool hasDuplicates(int arr[], int size) { /**********Program**********/ int i, j; for(i=0;i #include // 引入stdlib.h用于动态内存分配相关操作 #define TANK_CAPACITY 100 // 电池总容量(单位:度) #define LOW_FUEL_LIMIT (0.10 * TANK_CAPACITY) // 低电量阈值(10%) #define AVG_CONSUMPTION_PER_100KM 10 // 平均电耗(单位:度/百公里) #define FUEL_CONSUMPTION_PER_KM (AVG_CONSUMPTION_PER_100KM / 100.0) // 每公里电耗(单位:度/公里) int checkRefuelStops(int trips[], int count, int results[]) { int refuel_count = 0; double current_fuel = TANK_CAPACITY; /**********Program**********/ for (int i = 0; i < count; i++) { if(current_fuel - trips[i]*FUEL_CONSUMPTION_PER_KM <= LOW_FUEL_LIMIT){ results[refuel_count++] = i+1; current_fuel = TANK_CAPACITY; } current_fuel -= trips[i]*FUEL_CONSUMPTION_PER_KM; } /********** End **********/ return refuel_count; } int main() { int num_trips; printf("【请输入赛程段数:】\n"); scanf("%d", &num_trips); int *trips = (int *)malloc(num_trips * sizeof(int)); if (trips == NULL) { printf("内存分配失败!\n"); return 1; } printf("【请输入各段赛程距离,单位公里:】\n"); for (int i = 0; i < num_trips; ++i) { scanf("%d", &trips[i]); } int *results = (int *)malloc(num_trips * sizeof(int)); if (results == NULL) { printf("内存分配失败!\n"); free(trips); return 1; } int refuel_count = checkRefuelStops(trips, num_trips, results); if (refuel_count > 0) { printf("【需要在以下几段赛程前充电:】\n"); for (int i = 0; i < refuel_count; i++) { printf("第 %d 段赛程前\n", results[i]); } } else { printf("无需充电。\n"); } free(trips); free(results); return 0; } ```