前言

本文仅用于分享解题思路和交流学习,请勿直接用于复制粘贴完成任务

如有代码错误欢迎评论区批评指出,欢迎友好学习交流。

部分代码有参考网络上搜索到的部分博客所写,非完全来自于本人,如有冒犯请及时联系删除。

为了保证题目的连续性,即使出现重复题目,只需要输出一串文字的没有营养的题,文中依旧会进行记录,望谅解。

也可根据题号方便进行搜索查询。

重庆科技学院给出的1—337题都会尽量一一更新

题目做完了才开始写这篇文章,如有代码疏漏错误无法通过测试欢迎指正

最新更新时间:2022/9/28,23:00

7-1 然后是几点

有时候人们用四位数字表示一个时间,比如 1106 表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。

读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 5 点 30 分表示为 530;0 点 30 分表示为 030。注意,第二个数字表示的分钟数可能超过 60,也可能是负数。

输入格式:

输入在一行中给出 2 个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即 5 点 30 分表示为 530;0 点 30 分表示为 030。流逝的分钟数可能超过 60,也可能是负数。

输出格式:

输出不多于四位数字表示的终止时间,当小时为个位数时,没有前导的零。题目保证起始时间和终止时间在同一天内。

输入样例:

1120 110

输出样例:

1310
#include <stdio.h>int main() {// time——起始时间// change——流逝分钟数int time, hour, min, change;scanf("%d %d", &time, &change);hour = time / 100;min = time % 100;min += change;hour += min / 60;min %= 60;if (min < 0) {hour--;min += 60;}printf("%d%.2d", hour, min);return 0;
}

思路

- 通过单独对分钟数的加减运算后,再判断分钟数是否需要进位,如有负数则需要对小时进行对应减一操作

7-2 发奖金

某企业发放奖金,请你编写程序,帮助出纳员用最少的纸币发放奖金。其中奖金精确到元。
注:纸币面额为 100 元、50 元、20 元、10 元、5 元、2 元和 1 元。

输入格式

金额 (以元为单位,小于 10000 的整数)

输出格式

按钞票面额由大到小的顺序输出各种钞票的张数(参见输出样例)

输入样例

5382

输出样例

100元: 53张50元:  1张20元:  1张10元:  1张5元:  0张2元:  1张1元:  0张
#include <stdio.h>int main(){int money;scanf("%d",&money);int yibai = money/100;money %= 100;int wushi = money/50;money %= 50;int ershi = money/20;money %= 20;int shi = money/10;money %= 10;int wu = money/5;money %= 5;int er = money/2;money %= 2;int yi = money;if(yibai>9){printf("100元: %d张\n",yibai);printf(" 50元:  %d张\n",wushi);printf(" 20元:  %d张\n",ershi);printf(" 10元:  %d张\n",shi);printf("  5元:  %d张\n",wu);printf("  2元:  %d张\n",er);printf("  1元:  %d张",yi);} else{printf("100元:  %d张\n",yibai);printf(" 50元:  %d张\n",wushi);printf(" 20元:  %d张\n",ershi);printf(" 10元:  %d张\n",shi);printf("  5元:  %d张\n",wu);printf("  2元:  %d张\n",er);printf("  1元:  %d张",yi);}
}

思路

- 依次计算出当前金额能拿到最大面值的张数,从大面额依次往小计算,每次计算后对金额进行对应减去
- 代码中,money/100表示能拿多少张一百元,拿完后,用money对100进行求模运算,得到拿走对应张数的一百元后还剩下的钱

7-3 推算星期

若告诉你今天是星期几,请问:过几天后是星期几?
请编写程序,输入今天的星期数 w 和所过的天数 n,计算并输出未来这一天的星期数 d

注:用整数值 0 ~ 6 表示星期日、星期一、… 、星期六。

星期
星期日 0
星期一 1
星期二 2
星期三 3
星期四 4
星期五 5
星期六 6

输入格式

wn

输出格式

d

注:题目保证 wnd 的值都在 int 类型的表示范围内。

输入样例

3 100

输出样例

5
#include <stdio.h>int main(){long w,n;long d;scanf("%ld %ld",&w,&n);d = (w+n)%7;printf("%ld",d);}

思路

- 此题较为容易,只需要把当前星期几加上几天后模7就可以得到答案
- 需要注意本题的坑埋在题中“注”,w和n需要相加,题目只保证w,n在int范围内,却没有保证相加的结果在int范围所以此题想要全对,则需要把变量数据类型改为范围大于int类型的即可

7-4 逢7击掌

一群人围坐成一圈玩报数的游戏。游戏规则是:
从1开始报数,若遇到7的倍数或者个位为7的数则击掌代替,若犯错则要受罚。

可是这些人都太聪明了,竟然没人犯错!请问同样聪明的你,当报数到 n 时,总击掌次数 c 是多少?

输入格式

n

输出格式

c

输入样例

21

输出样例

4
#include <stdio.h>int main(){int n,c;c = 0;scanf("%d",&n);c += (n/70)*16;n %=70; for (int i = 1; i <= n; ++i) {if(i%7==0){c+=1;} else if(i%10==7){c+=1;}}printf("%d",c);
}

思路

- 此题方法笔者了解三种方法,文中代码只给出一种,其余两种方法读者可自行摸索
- 根据观察规律可知,每70个数字就需要击掌16次,我们只需要计算出有多少个70再对余下的数字依次进行求模取余运算即可得知答案
- 另外两种方法为:1.对每一个数字都采用求取模求余判断法2.计算出7的倍数的个数和个位为7的个数的和,再减去既是7的倍数个位数又是7的数字的个数

7-5 数油桶(简)

工人师傅将油桶码成如下图所示的梯形,数了数底层的油桶数和层数,就知道有多少油桶了。你知道他是怎么算的吗?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FodtLTdD-1664377675748)(https://images.ptausercontent.com/344)]

输入格式

底层油桶数和层数

输出格式

油桶的数量

输入样例

7 4

输出样例

22
#include <stdio.h>int main(){int a,b;scanf("%d %d",&a,&b);int res = 0;for (int i = 0; i < b; ++i) {res +=a;a-=1;}printf("%d",res);
}

思路

- 题中所述层数即为,循环次数,底层油桶数即为第一个需要相加的数字,据图可知,每次减一所以采用文中所述的循环即可解决问题
- 根据~~小学二年级~~就学过的等差数列求和公式也可使用一条语句即可算出答案,具体公式请读者自行搜索

7-6 聪明的高斯(简)

著名德国数学家高斯(Gauss)上小学时,老师让大家计算:
1+2+3+4+⋯+100= ?

当大家都还在埋头做加法时,高斯却最先算出了答案。你知道他是怎么算的吗?

请编写程序,输入正整数 n,计算 s=1+2+3+4+⋯+n,输出 s 的值。

输入格式

n

输出格式

s

输入样例

100

输出样例

5050
#include <stdio.h>int main(){int n;int res = 0;scanf("%d",&n);res = (1+n)*n/2;printf("%d",res);return 0;
}

思路

- 此题解法同上题,故不再赘述

7-7 快速求和

请编写程序,输入整数 n,快速计算:

输入格式

n

输出格式

s

要求:输出 5 位小数,末位四舍五入。

输入样例1

4

输出样例1

0.80000

输入样例2

300

输出样例2

0.99668
#include <stdio.h>int main(){double s=0,n;scanf("%lf",&n);s = 1.0-(1.0/(n+1));printf("%.5lf",s);return 0;}

思路

- 根据图中最后一项通项式子,采用循环求解即可
- 文中采用另一种数学公式求解,~~小学二年级~~就学过的的裂项相消法化简式子求得答案,具体请笔者自行搜索

7-8 买U盘

IT 协会举办程序设计竞赛,准备购买 U 盘作奖品。请编写程序,根据活动经费和 U 盘单价预估可购买 U 盘的最大数量。

输入格式

活动经费和 U 盘单价

输出格式

可购买 U 盘的最大数量

输入样例1

807.5 47.5

输出样例1

17

输入样例2

514.7 19.8

输出样例2

25
#include <stdio.h>int main(){double m,n;scanf("%lf %lf",&m,&n);int res = m/n;printf("%d",res);return 0;
}

思路

- 本题采用~~胎教~~就学过的 价格 = 单价 * 数量 该公式可知
- 即 数量 = 价格 / 单价,如有小数int类型自动转换为整数,省去小数部分

7-9 买复印纸

某办公室到年底准备将剩余的办公经费全部用于购买复印纸。请编写程序,输入办公经费的余额和每包复印纸的单价,计算并输出最多可购买多少包复印纸。

输入格式

办公经费的余额和每包复印纸的单价

输出格式

可购复印纸的最大数量

输入样例1

611.2 38.2

输出样例1

16

输入样例2

1369.2 23.4

输出样例2

58
#include <stdio.h>int main(){double m,n;scanf("%lf %lf",&m,&n);int res = m/n;printf("%d",res);return 0;
}

思路

- 据上题思路可知求解过程

7-10 黑白三子棋局

编写程序,输出下面的黑白三子棋的棋局。

输入样例


注:无输入。

输出样例

┏━┯━┯━┓
┃○│  │○┃
┠─┼─┼─┨
┃  │○│●┃
┠─┼─┼─┨
┃●│●│  ┃
┗━┷━┷━┛

注:外框是粗线,内部是细线。棋盘中的空白处是西文空格。

实际显示效果如下:


提示:如果你使用的是 Windows 7/8/10 操作系统,需要对运行窗口进行设置。

  • 用鼠标右键点击窗口标题栏,选择“属性”
  • 切换到“选项”卡片,选择“使用旧版控制台”
  • 切换到“字体”卡片,字体选择“点阵字体”,大小选择“8×16”
  • 点击“确定”按钮
#include <stdio.h>int main(){printf("┏━┯━┯━┓\n""┃○│  │○┃\n""┠─┼─┼─┨\n""┃  │○│●┃\n""┠─┼─┼─┨\n""┃●│●│  ┃\n""┗━┷━┷━┛");
}

思路

- 直接输出即可
- 不太明白此题用意,滥竽充数,没有营养的题大可不必出现在题库中

7-12 打妖怪

话说孙大圣保唐僧西天取经,路上遇到一妖怪。妖怪共有 v 滴血,大圣每打一棒就能使妖怪失去 h 滴血,妖怪一旦没血就会立即死去。大圣打了 n 棒将妖怪打死。
请编写程序,输入 vh,输出 n

输入格式

vh

输出格式

n

注:题目保证 abn 的值都在 int 类型的表示范围内。

输入样例

2510 1000

输出样例

3
#include <stdio.h>int main(){int v,h;scanf("%d %d",&v,&h);if(v%h==0){printf("%d",v/h);} else{printf("%d",v/h+1);}return 0;
}

思路

- 只需要通过求余数为0来判断血量是否为伤害的倍数,如果不是则需要整除后+1就行

7-14 十六进制转十进制

请编写程序,输入十六进制数,输出对应的十进制数。

输入格式

十六进制非负整数

输出格式

对应的十进制非负整数

输入样例

13Ba

输出样例

5050
#include <stdio.h>int main(){long n;scanf("%lx",&n);printf("%ld",n);
}

思路

- 此题只需要怎么输入怎么输出就行,这样也能满足题意
- 还可以把输入值存入数组,从低位开始使用位权法求值

7-15 十进制转十六进制

请编写程序,输入十进制数,输出对应的十六进制数。

输入格式

十进制非负整数

输出格式

对应的十六进制非负整数

要求:十六进制数中的字母均为大写形式。

输入样例

5050

输出样例

13BA
#include <stdio.h>int main(){int n;scanf("%d",&n);printf("%X",n);
}

思路

- 本题解法和上题同理类似

7-16 旅游派车

某企业组织 n 名职工春游,每辆旅游车可容纳 b 名乘客,需要 k 辆旅游车。请你编写程序,帮助工作人员计算需要派多少辆车。

输入格式

nb

输出格式

k

输入样例

85 36

输出样例

3
#include <stdio.h>int main(){int v,h;scanf("%d %d",&v,&h);if(v%h==0){printf("%d",v/h);} else{printf("%d",v/h+1);}return 0;
}

思路

- 同题7-12打怪同理

7-17 直角坐标->极坐标

请编写程序,输入直角坐标 ( x,y ),输出对应的极坐标 ( r,θ )。

输入格式

( x,y )

输出格式

( r,θ )

注:θ 的单位为弧度,且 −π<θπ

要求:rθ 输出10位有效数字,不输出小数末尾多余的零和小数点。

输入样例1

( -1.29903810567665797, 0.75 )

输出样例1

( 1.5, 2.617993878 )

输入样例2

( -2, -3.4641016151377546 )

输出样例2

( 4, -2.094395102 )
#include <stdio.h>
#include <math.h>#define PI 3.1415926535int main() {double x,y,r,o;scanf("( %lf,%lf )",&x,&y);r = sqrt(x*x+y*y);o = atan2(y,x);printf("( %.10g, %.10g )",r,o);return 0;}

思路

- 题目对编程能力几乎没有考察,只需要了解一点math头文件的函数即可
- 同时还需要对两种坐标转换方法有一定掌握,具体方法请读者自行百度。

7-18 花生换核桃

小松鼠有很多花生,小熊有很多核桃。小松鼠想找小熊换核桃:每 9 颗花生换回 2 颗核桃。
请帮小松鼠算算最多能换得多少核桃?

输入格式

花生数

输出格式

核桃数

注:题目保证所有值都在 int 类型的表示范围内。

输入样例

50

输出样例

10
#include <stdio.h>int main(){int n;scanf("%d",&n);printf("%d",(n/9)*2);return 0;
}

思路

- 只需要求出有多少个9即,n/9,结果乘2得出答案

7-19 装酒

已知酒瓶容量为 b 升,现有 w 升酒,需要 n 只瓶子才能盛下全部这些酒。请编写程序,输入 pt,计算并输出 n

输入格式

bw

输出格式

n

样例输入1

9.45 85.05

样例输出1

9

样例输入2

0.85 146.6

样例输出2

173
#include <stdio.h>
#include <math.h>int main(){double b,w;scanf("%lf %lf",&b,&w);if(fmod(w,b) < 0.00001){printf("%d",(int)(w/b));}else{printf("%d",(int)(w/b)+1);}
}

思路

- 本题坑点在于判断浮点数是否为0,以及取余不能直接用%,需要使用math头文件的fmod函数,具体解法和同题7-12打怪同理

7-20 学分差

本学期小张完成了 z 个学分,小王完成了 w 个学分,两人相差 s 个学分。
请编写程序,输入 zw,计算并输出 s

输入格式

zw

输出格式

s

输入样例1

17 23

输出样例1

6

输入样例2

25 21

输出样例2

4
#include <stdio.h>
#include <math.h>int main(){int z, w, s;scanf("%d %d", &z, &w);s = abs(w - z);printf("%d",s);}

思路

- 两种解法,if判断是否小于0,然后负号取反即可
- 另一种方法使用abs函数即可

7-21 三角形面积

请编写程序,输入三角形的底 b 和高 h,计算并输出三角形的面积 a

输入格式

bh

输出格式

a

输入样例

19.77 48.36

输出样例

478.04
#include <stdio.h>int main(){double b,h;scanf("%lf %lf",&b,&h);printf("%.2lf",b*h/2);
}

思路

- 底乘高除2,输出即可

7-22 求序列平方和

请编写程序,输入正整数 n,计算平方和 s=12+22+32+⋯+n2。

输入格式

整数 n

注:n 在 int 类型范围内,格式限定符采用 %d。

输出格式

实数 s

注:s 在 double 类型范围内,格式限定符采用 %.15g。

输入样例

100

输出样例

338350
#include <stdio.h>int main(){double n;double s=0;scanf("%lf",&n);s += (n*(n+1)*(2*n+1))/6;printf("%.15g",s);
}

思路

- 直接使用数列求和公式即可,循环可能导致超时,使用公式的时间复杂度为O(1)

7-23 求序列立方和

编写程序,输入正整数 n,计算立方和 s=13+23+33+⋯+n3。

输入格式

整数 n

注:n 在 int 类型范围内,格式限定符采用 %d。

输出格式

实数 s

注:s 在 double 类型范围内,格式限定符采用 %.15g。

输入样例

40

输出样例

672400
#include <stdio.h>int main(){double n;double s=0;scanf("%lf",&n);s += (n*n*n*n+2*n*n*n+n*n)/4;printf("%.15g",s);
}

思路

- 见上题

7-24 书香节

当当网每年书香节都推出购书优惠活动:每满100元就减50元。请编写程序,输入你购书的金额,计算并输出可减金额和付款金额。

输入格式

购书金额

输出格式

可减金额
付款金额

样例输入1

228.76

样例输出1

100.00
128.76

样例输入2

1000.0

样例输出2

500.00
500.00

注:所有金额都为2位小数。

#include <stdio.h>int main(){double x,y;scanf("%lf",&x);y = (long)(x/100)*50;printf("%.2lf\n",y);printf("%.2lf",x-y);
}

思路

- 求出多少个100乘50得可减金额
- 总价减去可减金额得付款金额

7-25 买U盘(误差修正版)

IT 协会举办程序设计竞赛,准备购买 U 盘作奖品。请编写程序,根据活动经费和 U 盘单价预估可购买 U 盘的最大数量。

输入格式

活动经费和 U 盘单价

输出格式

可购买 U 盘的最大数量

输入样例

660.8 47.2

输出样例

14

输入样例2

504.9 19.8

输出样例2

25

要求:考虑实数的误差。

#include <stdio.h>int main(){double m,n;scanf("%lf %lf",&m,&n);int res = m/n+0.000001;printf("%d",res);return 0;
}

思路

- 这题有点恶心人了,有些测试点会m/n得到一个小数位为类似于.99999的情况,但又会被int类型转换,导致精度损失故需要加上0.000001来避免误差

7-26 聪明的高斯

著名德国数学家高斯(Gauss)上小学时,老师让大家计算:

1+2+3+4+⋯+100= ?

当大家都还在埋头做加法时,高斯却最先算出了答案。你知道他是怎么算的吗?

请编写程序,输入正整数 n,计算 s=1+2+3+4+⋯+n,输出 s 的值。

输入格式

n

输出格式

s

输入样例

100000

输出样例

5000050000

提示:本题要使用 long long int 类型。

#include <stdio.h>int main(){long long int x,r;scanf("%lld",&x);r = (x*(x+1))/2;printf("%lld",r);
}

思路

- 直接上公式,代入即可

7-27 狐狸说葡萄是酸的

请编写程序,输出下面的文字:

The fox says, "I am sure that these grapes are sour."

狐狸吃不到葡萄,就说葡萄是酸的。

输入样例


注:无输入

输出样例

The fox says, "I am sure that these grapes are sour."
#include <stdio.h>int main(){printf("The fox says, \"I am sure that these grapes are sour.\"");
}

思路

- 直接输出吧												

C语言程序设计专项练习——PTA相关推荐

  1. C语言程序设计专项练习-PTA:7-1 : 然后是几点

    有时候人们用四位数字表示一个时间,比如 1106 表示 11 点零 6 分.现在,你的程序要根据起始时间和流逝的时间计算出终止时间. 读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表 ...

  2. C语言程序设计博客作业04

    这个作业要求在哪里 https://pintia.cn/problem-sets/1595556701053566976 我在这个课程的目标是 了解学习函数的编程过程 这个作业在那个具体方面帮助我实现 ...

  3. PTA 浙大版《C语言程序设计实验与习题指导(第3版)》题目集(参考代码)

    已完结 本题目集是博主初学C语言时写的,若有错误,欢迎指正. 注:其中有些题的代码参考了其他人. 另一套题目集:PTA浙大版<C语言程序设计(第3版)>题目集(参考代码) 其他题目集: P ...

  4. **PTA:浙大版《C语言程序设计(第3版)》编程题答案*

    PTA:浙大版<C语言程序设计(第3版)>编程题答案 练习2-3 输出倒三角图案 练习2-4 温度转换 练习2-6 计算物体自由下落的距离 练习2-8 计算摄氏温度 练习2-9 整数四则运 ...

  5. PTA 浙大版《C语言程序设计(第4版)》题目集 参考答案(编程题)

    目录 PTA 浙大版<C语言程序设计(第4版)>题目集 参考答案(编程题) 本答案配套详解教程专栏 练习2-1 Programming in C is fun! (5 分) 练习2-3 输 ...

  6. PTA浙大版《C语言程序设计(第4版)》48道函数题(参考代码)

    浙大版<C语言程序设计(第4版)>题目集(函数题)已完结 1.练习5-1 求m到n之和 int sum(int m, int n) {int summary;for(summary=0;m ...

  7. 无忧考吧2017二级java_二级Java模拟软件|无忧考吧二级Java语言程序设计模拟软件下载 v2017.03官方版 - 121下载站...

    无忧考吧二级Java语言程序设计模拟软件是专为准备考试二级JAVA语言的朋友打造的一款在线模拟软件,二级JAVA语言的考试理论上是非常简单的, 大家只需要掌握基本的语法和一些简单的编程就可能了,这款软 ...

  8. c程序设计语言选修难吗,欢迎大家选修C语言程序设计这门课,本帖解释一下一些常见的问题...

    置顶 欢迎大家选修C语言程序设计这门课,本帖解释一下一些常见的问题 叶卡林娜 发表于2017年01月05日 首先欢迎大家选修浙大翁恺老师的C语言程序设计课程.开课2天就看到讨论区已经有这么多帖子,说明 ...

  9. c语言程序设计夏宽理第三版答案,(100)西南大学2021计算机考研数据速览(特别更新版),民族脊梁袁隆平院士的母校!...

    结合录取名单,更新版区分了各专业录取考生初试成绩. 计算机与信息科学学院.人工智能学院各专业复试录取数据如下: 初试及复试科目如下: 808计算机专业基础综合 : 主要涉及操作系统与数据结构的相关内容 ...

  10. C语言程序设计博客作业03

    C语言程序设计博客作业03 这个作业要求在哪里 C语言程序设计作业03:第十周作业 我在这个课程的目标是 掌握二维数组和字符串的使用方法 这个作业在那个具体方面帮助我实现目标 PTA作业和日常练习 参 ...

最新文章

  1. springboot接收多对象_SpringBoot同时接收单个对象和List<object>参数
  2. Android 播放raw文件夹下音频文件,本地MP3文件播放,播放云端MP3文件,获取MP3文件播放时长
  3. python-OpenCV图像的基本运算
  4. WebStorm打开设置界面
  5. if name==main是什么意思_Python中if __name__ == quot;__main__quot;:是什么意思
  6. excel对比_EXCEL对比图的用法
  7. 【深度学习】论文导读:GoogLeNet模型,Inception结构网络简化(Going deeper with convolutions)
  8. cas 怎么过滤带pathvariable_过滤材料怎么摆?记住这个“公式”就好~
  9. JAVA 连等赋值问题
  10. 服务(service)管理
  11. WiFi、蓝牙、NFC哪家强?短距离无线通信技术对比分析
  12. 抓紧收藏,9大短视频自媒体工具,帮你快速月入过万,不真人出镜
  13. SQL Prompt 4试用
  14. 教你如何用Python追踪快递信息
  15. 建站必备知识:域名注册和域名解析流程有哪些?
  16. uniapp、hbuilderx做微信小程序,获取当前城市定位(省份国家街道等)
  17. 按照人体自然的生物钟去规律生活
  18. 艾默生质量流量计结构坚固安装简便
  19. Qt字体族FontFamily一览表
  20. 树莓派从U盘启动系统

热门文章

  1. 香港公司章程中英文样本
  2. 如何解决ueditor乱码问题
  3. html浮动垂直居中对齐,css如何设置垂直居中对齐?
  4. 全解电磁流量计功能和精度性能
  5. socket服务器主动下发消息,socket服务器主动发送消息给客户端
  6. MATLAB多幅图片生成GIF动画
  7. Ubuntu类似与xshell 和crt的软件 pac- Ásbrú Connection Manager
  8. sipp使用过程中报错
  9. jsmind源码初探
  10. ios 8 地图定位