当前位置: 首页 > news >正文

2025级C语言第四次周测题解 - 教程

7-1-1 你该努力了

分数 30

作者 岳金戈

单位 金陵科技学院

本学期软件工程学院,软件工程专业已经考了4次周测了,但是大部分同学成绩并不理想。那么,有些同学,你是不是该努力了。

输入格式:

以字符串形式,输入一个名字XXX。(名字皆为简写,字符串长度不超过10)

输出格式:

输出“XXX, you should study hard!”

输入样例:

在这里给出一组输入。例如:

YJG

输出样例:

在这里给出相应的输出。例如:

YJG, you should study hard!

参考答案:

#include 
int main (void) {char name[15];gets(name);printf("%s, you should study hard!", name);return 0;
}

7-2-1 藏头诗

分数 20

作者 张泳

单位 浙江大学

本题要求编写一个解密藏头诗的程序。

注:在 2022 年 7 月 14 日 16 点 50 分以后,该题数据修改为 UTF-8 编码。

输入格式:

输入为一首中文藏头诗,一共四句,每句一行。注意:一个汉字占三个字节。

输出格式:

取出每句的第一个汉字并连接在一起形成一个字符串并输出。同时在末尾输入一个换行符。

输入样例:

一叶轻舟向东流
帆稍轻握杨柳手
风纤碧波微起舞
顺水任从雅客流

输出样例:

一帆风顺

参考答案:

#include 
int main (void) {char words[5][100];for(int i=0; i<4; i++){scanf("%s", words[i]);}for(int i=0; i<4; i++){printf("%c%c%c", words[i][0], words[i][1], words[i][2]);}return 0;
}

7-2-2 藏尾诗

分数 20

作者 C课程组

单位 浙江大学

本题要求编写一个解密藏尾诗的程序。

注:在 2023 年 1 月 17 日 15 点 14 分以后,该题数据修改为 UTF-8 编码。

输入格式:

输入为一首中文藏尾诗,一共四句。每句一行,但句子不一定是等长的,最短一个汉字,最长九个汉字。注意:一个汉字占三个字节。

输出格式:

取出每句的最后一个汉字并连接在一起形成一个字符串并输出。同时在末尾输入一个换行符。

输入样例:

悠悠田园风
然而心难平
兰花轻涌浪
兰香愈幽静

输出样例:

风平浪静

参考答案:

#include 
int main (void) {char words[4][100];for(int i=0; i<4; i++){scanf("%s", words[i]);}for(int i=0; i<4; i++){int len = strlen(words[i]);printf("%c%c%c", words[i][len-3], words[i][len-2], words[i][len-1]);}return 0;
}

7-3-1 字符串替换

分数 20

作者 C课程组

单位 浙江大学

本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:

原字母对应字母
AZ
BY
CX
DW
XC
YB
ZA

输入格式:

输入在一行中给出一个不超过80个字符、并以回车结束的字符串。

输出格式:

输出在一行中给出替换完成后的字符串。

输入样例:

Only the 11 CAPItaL LeTtERS are replaced.

输出样例:

Lnly the 11 XZKRtaO OeGtVIH are replaced.

参考答案:

#include 
int main (void) {char str[100];gets(str);for(int i = 0; i < strlen(str); i++){if(str[i] >= 'A' && str[i] <= 'Z'){str[i] = 'A' + 'Z' - str[i];}}puts(str);return 0;
}

7-3-2 字符串查找

分数 20

作者 郭奇展

单位 金陵科技学院

给定两个字符串A和B,请判断B是否是A的子串。如果是,输出B在A中第一次出现的位置(从0开始计数),否则输出-1.

输入格式:

给定两行输入:

第一行输入字符串A

第二行输入字符串B
两字符串的长度都不超过 10000,并且保证每个字符串都是由可见的ASCII码和空白字符组成。

输出格式:

输出一个整数,表示字符串B在字符串A中首次出现的位置或者-1

输入样例:

在这里给出一组输入。例如:

Hello World!
ll

输出样例:

在这里给出相应的输出。例如:

2

参考答案:

#include 
#include 
int main (void) {char A[10000], B[10000];gets(A);gets(B);int lenA = strlen(A), lenB = strlen(B);for(int i = 0; i <= lenA - lenB; i++){int index = 0;for(index = 0; index < lenB; index++){if(A[i + index] != B[index]){break;}}if(index == lenB){printf("%d", i);return 0;}}printf("-1");return 0;
}

7-4-1 猴子选大王

分数 15

作者 徐镜春

单位 浙江大学

一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?

输入格式:

输入在一行中给一个正整数N(≤1000)。

输出格式:

在一行中输出当选猴王的编号。

输入样例:

11

输出样例:

7

参考答案:

#include 
int main (void) {int n;scanf("%d", &n);int monkey[1005] = {0}, count = 0, cnt = 0;while(1){for(int i = 0; i < n; i++){if(monkey[i] == 0){cnt++;}if(cnt == 3){monkey[i] = 1;count++;cnt = 0;}}if(count == n-1){for(int i = 0; i < n; i++){if(monkey[i] == 0){printf("%d", i + 1);return 0;}}}}return 0;
}

7-4-2 约瑟夫问题

分数 15

作者 孙振晢

单位 上海大学

n 个人围成一圈,从第一个人开始报数,数到 m 的人出列,再由下一个人重新从 1 开始报数,数到 m 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。

输入格式:

输入两个整数 n,m。

输出格式:

输出一行 n 个整数,按顺序输出每个出圈人的编号。


说明/提示

1<=n,m<=100

输入样例:

10 3

输出样例:

3 6 9 2 7 1 8 5 10 4

参考答案:

#include 
int main (void) {int n, m;;scanf("%d %d", &n, &m);int flag[105] = {0};int count, cnt;count = cnt = 0;// cnt : 表示报数// count : 表示总出圈人数while(1){for(int i = 0; i < n; i++){// flag[i] = 0, 表示未出圈的人if(flag[i] == 0){// 报数cnt++;}// 报数报到 m 的人出圈if(cnt == m){// flag[i] = 1, 标记该人出圈flag[i] = 1;// 报数清零cnt = 0;// 总出圈人数++count++;printf("%d ", i+1);}}// 还剩最后一个人if(count == n-1){// for循环遍历flag数组 找到未出圈(flag[i]=0)的人for(int j = 0; j < n; j++){if(flag[j] == 0){// 输出printf("%d", j+1);return 0;}}}}return 0;
}

7-5-1 感染人数

分数 15

作者 黄龙军

单位 绍兴文理学院

设某住宿区域是一个n×n的方阵,方阵中的每个小方格为一个房间,房间里可能住一个人,也可能空着。第一天,某些房间中住着的人得了一种高传染性的流感,以后每一天,得流感的人会使其邻居(住在其上、下、左、右方向存在的房间里面的人)传染上流感,请问:第m天总共有多少人得流感?

输入格式:

第一行输入两个整数n,m(1<n≤20,1≤m≤100),含义如上述;接着输入n行,每行n个字符,表示住宿区域第一天的房间情况,其中,@表示当天该房间住着得流感的人,.表示该房间住着健康的人,#表示该房间是空的。

输出格式:

输出一个整数,表示第m天得了流感的人数。

输入样例1:

5 3
#....
.....
...##
.#.@.
@.#..

输出样例1:

10

输入样例2:

5 4
....#
.#.@.
.#@..
#....
.....

输出样例2:

16

参考答案:

#include 
int main (void) {int n, m;scanf("%d %d", &n, &m);getchar();char map[25][25];for(int i = 1; i <= n; i++){for(int j = 1; j <= n; j++){scanf("%c", &map[i][j]);}getchar();}int total = 0;for(int i = 1; i <= n; i++){for(int j = 1; j <= n; j++){if(map[i][j] == '@'){total++;}}}for(int day = 1; day < m; day++){for(int i = 1; i <= n; i++){for(int j = 1; j<= n; j++){if(map[i][j] == '.'){if(map[i+1][j] == '@' || map[i-1][j] == '@' ||map[i][j+1] == '@' || map[i][j-1] == '@'){map[i][j] = '*';total++;}}}}for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {if (map[i][j] == '*') {map[i][j] = '@';}}}}printf("%d", total);return 0;
}

http://www.gsyq.cn/news/117238.html

相关文章:

  • MHT-FN820 光纤组合导航系统技术指南:极致精度导航的多接口协同与工程落地
  • 电商系统中的MySQL NULL处理实战:NVL的5个典型场景
  • LVGL | 不同刷屏感受
  • Cam350新手入门:从零开始掌握PCB设计工具
  • Vue3中动态样式数组的后项覆盖规则如何与计算属性结合实现复杂状态样式管理?
  • 零基础学会Vue二维码扫描:5分钟快速上手
  • 东方博宜OJ 1222:经典递归问题 —— 汉诺塔
  • RGBA处理效率对比:传统方法vsAI工具
  • 代币化资产革命进入2.0阶段:Fasset的“合规密钥”能否解锁万亿级新兴市场?
  • 零基础理解神经网络参数:从入门到实践
  • 手把手教你复现CVE-2023-51767漏洞
  • 5分钟打造专属VSCode字体主题:在线生成器
  • 2025 最新 PPR管 服务商 TOP5 评测!服务深耕四川、贵州、西藏、重庆,优质厂商榜单发布,创新驱动重构给排水管道生态 - 全局中转站
  • 专业测评:国产 CRM 中哪些比较适合制造业
  • 品牌AI形象管理工具实战评测:新榜智汇如何为你的GEO战略装上“稳定器”?
  • A1SJ71PB93D伺服驱动器
  • HR115C6-88S伺服电机
  • 【IT人月报】用Go搞定WebSocket+AI代理,我踩过的坑和总结的经验
  • 分布式锁与幂等的边界——正确的锁语义、过期与续约、业务层幂等配合
  • 5、Shell编程中的参数、变量与数组详解
  • 2025 最新双高筋缠绕管厂家 TOP5 评测!服务四川、贵州、西藏、重庆四地众多用户,优质服务商权威榜单发布,构筑给排水工程坚实基石 - 全局中转站
  • 比手动排查快10倍:自动化处理Socket端口冲突
  • 基于SpringBoot的校园资讯交流平台系统毕业设计全套源码文档
  • 5分钟快速验证:Maven原型项目生成器
  • STM32HAL库读取ADS1115驱动
  • 测试决策的心理因素:在认知偏差与专业判断间寻找平衡
  • 完整教程:SQL常用语句解析:从查询到操作
  • 上海专业做室外防水 选芮生建设 14年经验守护建筑外墙屋顶不漏 - shruisheng
  • 3个关键步骤解决JimuReport报表组件依赖配置难题
  • FPGA在AI时代的角色重塑:硬件可重构性与异构计算的完美结合