2024 年 9 月青少年软编等考 C 语言一级真题解析
目录T1. 嫑废话上代码思路分析T2. 太神奇了思路分析T3. 最佳情侣身高差思路分析T4. 到底是不是太胖了思路分析T5. 自动打包机思路分析T1. 嫑废话上代码题目链接SOJ D1302Linux 之父 Linus Torvalds 的名言是“Talk is cheap. Show me the code.”嫑废话上代码。本题就请你直接在屏幕上输出这句话。时间限制1 s内存限制64 MB输入本题没有输入。输出在一行中输出Talk is cheap. Show me the code.。样例输入无样例输出Talk is cheap. Show me the code.思路分析此题考查基本输出属于入门题。按照题目要求输出即可。/* * Name: T1.cpp * Problem: 嫑废话上代码 * Author: Teacher Gao. * DateTime: 2025/01/14 17:51 */#includeiostreamusingnamespacestd;intmain(){coutTalk is cheap. Show me the code.endl;return0;}T2. 太神奇了题目链接SOJ D1303“告诉大家一个神奇的消息太神奇了明年全世界所有的人都同岁全部都等于2022 20222022。明年的日子很特别大概每1000 10001000年才会有一次。明年你的周岁年龄 你的出生年每个人都是2022 20222022年。例如你明年57 5757加上1965 19651965年生的加起来就是2022 20222022年。特别奇怪连中外专家都无法解释你计算一下看看是不是2022 20222022。真是千年等一回呀真准转朋友圈让大伙都算一下吧”据说这个 “电子包浆” 贴每年都会出现。本题就请你根据发贴人提到的周岁年龄和出生年判断其发贴的时候是哪一年。时间限制1 s内存限制64 MB输入输入在第一行中给出两个正整数即周岁年龄和出生年其中年龄在( 0 , 200 ) (0, 200)(0,200)区间内出生年在( 1900 , 2022 ) (1900, 2022)(1900,2022)区间内。输出在一行中输出发贴年份。样例输入57 1965样例输出2021提示样例说明因为贴子里说 “明年全世界所有的人都同岁”所以发贴是在今年即2021 20212021年。思路分析此题考查算术运算属于入门题。假设周岁年龄为a aa出生年为b bb那么发帖时间为a b − 1 ab-1ab−1。/* * Name: T2.cpp * Problem: 太神奇了 * Author: Teacher Gao. * DateTime: 2025/01/14 17:52 */#includeiostreamusingnamespacestd;intmain(){inta,b;cinab;coutab-1endl;return0;}T3. 最佳情侣身高差题目链接SOJ D1304专家通过多组情侣研究数据发现最佳的情侣身高差遵循着一个公式女方的身高 × 1.09 男方的身高 女方的身高 × 1.09 男方的身高女方的身高×1.09男方的身高。如果符合你俩的身高差不管是牵手、拥抱、接吻都是最和谐的差度。下面就请你写个程序为任意一位用户计算他 / 她的情侣的最佳身高。时间限制1 s内存限制64 MB输入输入第一行给出正整数N NN≤ 10 ≤ 10≤10为前来查询的用户数。随后N NN行每行按照性别 身高的格式给出前来查询的用户的性别和身高其中性别为F表示女性、M表示男性身高为区间[ 1.0 , 3.0 ] [1.0, 3.0][1.0,3.0]之间的实数。输出对每一个查询在一行中为该用户计算出其情侣的最佳身高保留小数点后2 22位。样例输入2 M 1.75 F 1.8样例输出1.61 1.96思路分析此题考查循环结构与分支结构属于入门题。对于输入的每行数据如果是男性输出身高 / 1.09 身高/ 1.09身高/1.09否则输出身高 × 1.09 身高 \times 1.09身高×1.09。/* * Name: T3.cpp * Problem: 最佳情侣身高差 * Author: Teacher Gao. * DateTime: 2025/01/14 17:53 */#includecstdiointmain(){intn;charc;doubleh;scanf(%d,n);for(inti1;in;i){scanf( %c %lf,c,h);if(cM){printf(%.2lf\n,h/1.09);}else{printf(%.2lf\n,h*1.09);}}return0;}T4. 到底是不是太胖了题目链接SOJ D1305据说一个人的标准体重应该是其身高单位厘米减去100 100100、再乘以0.9 0.90.9所得到的公斤数。真实体重与标准体重误差在10 % 10\%10%以内都是完美身材即∣ 真实体重 − 标准体重 ∣ 标准体重 × 10 % | 真实体重 - 标准体重 | 标准体重 × 10\%∣真实体重−标准体重∣标准体重×10%。已知市斤的数值是公斤的两倍。现给定一群人的身高和实际体重请你告诉他们是否太胖或太瘦了。时间限制1 s内存限制64 MB输入输入第一行给出一个正整数N NN≤ 20 ≤ 20≤20。随后N NN行每行给出两个整数分别是一个人的身高H HH120 H 200 120 H 200120H200单位厘米和真实体重W WW50 W ≤ 300 50 W ≤ 30050W≤300单位市斤其间以空格分隔。输出为每个人输出一行结论如果是完美身材输出You are wan mei!如果太胖了输出You are tai pang le!否则输出You are tai shou le!。样例输入3 169 136 150 81 178 155样例输出You are wan mei! You are tai shou le! You are tai pang le!思路分析此题考查循环结构与分支结构属于入门题。对于输入的每组数据通过身高h hh计算出标准体重的市斤s t d _ w ( h − 100 ) × 0.9 × 2 std\_w (h-100) \times 0.9\times 2std_w(h−100)×0.9×2然后根据标准体重和实际体重按照公式进行计算对比即可。/* * Name: T4.cpp * Problem: 到底是不是太胖了 * Author: Teacher Gao. * DateTime: 2025/01/14 18:02 */#includeiostream#includecmathusingnamespacestd;intmain(){intn,h,w;cinn;for(inti1;in;i){cinhw;doublestd_w(h-100)*0.9*2;if(abs(w-std_w)std_w*0.1){coutYou are wan mei!\n;}elseif(wstd_w){coutYou are tai shou le!\n;}else{coutYou are tai pang le!\n;}}return0;}T5. 自动打包机题目链接SOJ D1306一条哈密瓜自动打包流水线的工作程序是这样的首先系统设定每箱哈密瓜应该有的总重量W WW然后传送带将一只只哈密瓜输送到一个自动称重设备上根据称重结果进行以下操作如果秤上的总重量正好达到W WW则将秤上的所有哈密瓜装箱送走如果秤上的总重量还不到W WW则将这只哈密瓜留在称上如果秤上的总重量超过了W WW则将这只哈密瓜放回传送带。本题就请你写个程序统计一下究竟有多少只哈密瓜被装了多少箱时间限制1 s内存限制64 MB输入输入第一行给出两个正整数N NN≤ 1000 ≤ 1000≤1000和W WW≤ 10000 ≤ 10000≤10000分别为传送带上哈密瓜的数量和每箱的规定重量克。随后一行给出N NN个正整数是传送带上每只哈密瓜的重量单果重量不超过2000 20002000克。假设传送带按照输入的顺序传送哈密瓜到称重设备。输出在一行中输出成功装箱的箱子数量和被装箱的哈密瓜的数量。数字间以1 11个空格分隔行首尾不得有多余空格。样例输入12 5000 2000 1500 1800 1000 1800 500 1900 1500 2000 1600 2000 2000样例输出2 7提示样例说明第1 11、2 22、4 44、6 66只瓜正好一箱第7 77、8 88、10 1010只瓜正好一箱。思路分析此题考查循环结构属于入门题。此题需要定义的变量较多定义s u m sumsum表示秤上的总重量_ c n t \_cnt_cnt表示秤上的哈密瓜数量t o t tottot表示包裹总数c n t cntcnt表示已打包的哈密瓜总数。对于输入的每个哈密瓜重量x xx如果可以放到秤上s u m x ≤ w sum x \le wsumx≤w就装进去更新秤上的总重量s u m sumsum和秤上的哈密瓜数量_ c n t \_cnt_cnt如果恰好达到w ww就更新包裹总数t o t tottot和已打包的哈密瓜总数c n t cntcnt同时清空_ c n t \_cnt_cnt和s u m sumsum。最后输出t o t tottot和c n t cntcnt即可。/* * Name: T5.cpp * Problem: 自动打包机 * Author: Teacher Gao. * DateTime: 2025/01/14 18:14 */#includeiostreamusingnamespacestd;intmain(){intn,w,x;cinnw;intsum0,tot0,cnt0,_cnt0;for(inti1;in;i){cinx;if(sumxw){sumx;_cnt;if(sumw){tot;cnt_cnt;_cntsum0;}}}couttot cntendl;return0;}