目录

7-1 重要的话说三遍 (5 分)

7-2 I Love GPLT (5 分)

7-3 输出带框文字 (5 分)

7-4 输出菱形图案 (5 分)

7-5 输出倒三角图案 (5 分)

7-6 厘米换算英尺英寸 (15 分)

7-7 计算摄氏温度 (10 分)

7-8 是不是太胖了 (5 分)

7-9 求整数均值 (10 分)

7-10 算术入门之加减乘除 (10 分)

7-11 计算平均分 (5 分)

7-12 日期格式化 (5 分)

7-13 后天 (5 分)

7-14 然后是几点 (15 分)

7-15 BCD解密 (10 分)


7-1 重要的话说三遍 (5 分)

这道超级简单的题目没有任何输入。

你只需要把这句很重要的话 —— “I'm gonna WIN!”——连续输出三遍就可以了。

注意每遍占一行,除了每行的回车不能有任何多余字符。

#include<stdio.h>
int main()
{printf("I'm gonna WIN!\nI'm gonna WIN!\nI'm gonna WIN!");
}

本题考查printf语句基本应用,属于简单输出题型。按照题目要求每遍占一行 ,在前两句后加一个换行符“\n”即可。

7-2 I Love GPLT (5 分)

这道超级简单的题目没有任何输入。

你只需要把这句很重要的话 —— I Love GPLT ——竖着输出就可以了。

所谓“竖着输出”,是指每个字符占一行(包括空格),即每行只能有1个字符和回车。

#include <stdio.h>int main()
{printf("I\n \nL\no\nv\ne\n \nG\nP\nL\nT\n");return 0;
}

运行结果:

本题考查输出语句中的空格,属于简单输出题型。空格在printf语句中依旧可以原样输出,且写成一行不容易出错,总体来说只需要先打好每个字符,然后在每个字符后面复制粘贴换行符即可。

7-3 输出带框文字 (5 分)

本题要求编写程序,输出指定的带框文字。

输入格式:

本题无输入

输出格式:

按照下列格式输出带框文字。

************Welcome
************
#include<stdio.h>
int main()
{printf("************\n");printf("  Welcome\n");printf("************\n");return 0;
}

本题依旧考查输出语句,属于简单输出题型。此处为了美观写成这样,其实

printf("************\n  Welcome\n************\n");也未尝不可,但是要注意虽然输出的图上看起来welcome右边还有空缺,但是程序中不能再加空格,否则PTA会报错。讲道理其实输出是一样的,不用care。

7-4 输出菱形图案 (5 分)

本题要求编写程序,输出指定的由“A”组成的菱形图案。

输入格式:

本题无输入

输出格式:

按照下列格式输出由“A”组成的菱形图案。

  A
A   AA
#include<stdio.h>
int main()
{printf("  A\n");printf("A   A\n");printf("  A\n");return 0;
}

与上题基本一致,属于简单输出题型。在作为结尾的A后面不要加空格就不会报错。

7-5 输出倒三角图案 (5 分)

本题要求编写程序,输出指定的由“*”组成的倒三角图案。

输入格式:

本题目没有输入。

输出格式:

按照下列格式输出由“*”组成的倒三角图案。

* * * ** * ** **
#include<stdio.h>
int main()
{printf("* * * *\n");printf(" * * *\n");printf("  * *\n");printf("   *\n");return 0;
}

与前两题基本一致。属于简单输出题型。不多赘述。

7-6 厘米换算英尺英寸 (15 分)

如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。

输入格式:

输入在一行中给出1个正整数,单位是厘米。

输出格式:

在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。

输入样例:

170

输出样例:

5 6
#include<stdio.h>
int main()
{int cm = 0,inch=0,foot=0;scanf("%d", &cm);foot=cm/30.48;inch = (cm / 30.48 - foot)*12;printf("%d %d", foot, inch);return 0;
}

本题考查输出语句中,输出值可以为数字或表达式,属于单位转换题型

讲解:这里定义了三个变量并初始化为0(作为好习惯),然后按照公式分别获得英尺和英寸的值,输出这里按照题意用空格隔开两个输出值。由于公式是米制而输入值是厘米,因此我们直接把0.3048转换为30.48,也就是cm=(foot+inch/12)×30.48,要得到foot的值看似复杂,但整数除法会直接将得到的英尺值后边的小数位(即英寸值)抹掉,然后英寸值的计算中,由于虽然抹掉了其值,但在计算中它并不是0,当其值大于0即可显现,于是乘以12后可以得到值。

7-7 计算摄氏温度 (10 分)

给定一个华氏温度F,本题要求编写程序,计算对应的摄氏温度C。计算公式:C=5×(F−32)/9。题目保证输入与输出均在整型范围内。

输入格式:

输入在一行中给出一个华氏温度。

输出格式:

在一行中按照格式“Celsius = C”输出对应的摄氏温度C的整数值。

输入样例:

150

输出样例:

Celsius = 65
#include<stdio.h>
int main()
{int f;scanf("%d",&f);printf("Celsius = %d",5*(f-32)/9);return 0;
}

与上题相似,属于单位转换题型。不多赘述。

7-8 是不是太胖了 (5 分)

据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。已知市斤的数值是公斤数值的两倍。现给定某人身高,请你计算其标准体重应该是多少?(顺便也悄悄给自己算一下吧……)

输入格式:

输入第一行给出一个正整数H(100 < H ≤ 300),为某人身高。

输出格式:

在一行中输出对应的标准体重,单位为市斤,保留小数点后1位。

输入样例:

169

输出样例:

124.2
#include<stdio.h>
int main()
{int h;scanf("%d",&h);if(h<=300&&h>100){printf("%.1f",((h-100)*1.8));}return 0;
}

看起来难度上来了一些,但是仍然属于单位转换题型,还加了一个格式化输出的考查,将身高转换为标准体重。需要注意的是题目对于输入的整数有限制要求,因此输出语句外需要加上条件。且对输出格式要求是保留小数点后1位,“%f”的输出语法:

#include <stdio.h>int main() {double a = 123.456, b = 12.34;printf("%.2f\n", a); // 取2位小数,且第三位四色五入printf("%.3f\n", b); // 取3位小数,且不足的用0补全printf("%4.2f\n", b); // 取至少4位字符,2位从b的左边开始取2位,剩余2位<整数2位+小数点1位,所以3位全部输出printf("%7.2f\n", b); // 取至少7位字符, 2位小数,剩余5位>整数2位 + 小数点1位, 多出来的2位用空格补全}

结果:

可以看到,有三位小数但格式化为2位时会四舍五入。输出b的时候只有两位小数但格式化为3位时会用0补齐,第三种取四位字符,其中有两位是小数,所以全部输出。第四种一共七个字符,而12.34只有五位(别把小数点不当字符好吧!),因此左侧用两位空格补齐。

7-9 求整数均值 (10 分)

本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。

输入格式:

输入在一行中给出4个整数,其间以空格分隔。

输出格式:

在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位。

输入样例:

1 2 3 4

输出样例:

Sum = 10; Average = 2.5
#include<stdio.h>
int main()
{int a,b,c,d;scanf("%d %d %d %d",&a,&b,&c,&d);printf("Sum = %d; Average = %.1f",a+b+c+d,(a+b+c+d)/4.0);return 0;
}

本题考查格式化输出,注意四者的和是整数,但平均值并不是整数,所以需要进行类型转换,C语言会将表达式两边的数据类型转为同一种,浮点型权重要比整型高。

7-10 算术入门之加减乘除 (10 分)

对于输入的两个整数,按照要求输出其和差积商。

输入格式:

在一行内输入两个不超过100的非负整数a和b,中间以一个空格间隔,且保证b不为0。

并且:如果a能够被b整除,那么a/b应输出为整数格式,否则a/b输出为带两位小数的格式。

#include<stdio.h>
int main()
{int a,b;scanf("%d %d",&a,&b);printf("%d + %d = %d\n",a,b,a+b);printf("%d - %d = %d\n",a,b,a-b);printf("%d * %d = %d\n",a,b,a*b);if(a%b==0 || b%a==0){printf("%d / %d = %d\n",a,b,a/b);}elseprintf("%d / %d = %.2f\n",a,b,(a*1.0)/b);return 0;
}

本题考查格式化输出,依题意,在除法这里有些特殊,因为如果无法整除,就需要用浮点数给出结果。

7-11 计算平均分 (5 分)

已知某位学生的数学、英语和计算机课程的成绩分别是87分、72分和93分,求该生3门课程的平均成绩(结果按整型输出)。

输入格式:

本题无输入

输出格式:

按照下列格式输出结果:

math = 87, eng = 72, comp = 93, average = 计算所得的平均成绩
#include<stdio.h>
int main()
{printf("math = 87, eng = 72, comp = 93, average = %d",(87+72+93)/3);return 0;
}

本题属于简单输出题。

7-12 日期格式化 (5 分)

世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。

输入格式:

输入在一行中按照“mm-dd-yyyy”的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。

输出格式:

在一行中按照“yyyy-mm-dd”的格式给出年、月、日。

输入样例:

03-15-2017

输出样例:

2017-03-15
#include<stdio.h>
int main()
{int y,m,d;scanf("%d-%d-%d",&m,&d,&y);printf("%.4d-%.2d-%.2d",y,m,d);return 0;
}

本题属于简单输入附加格式化输出题。看清楚上面的日期是月-日-年,下方是年-月-日

7-13 后天 (5 分)

如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。

输入格式:

输入第一行给出一个正整数D(1 ≤ D ≤ 7),代表星期里的某一天。

输出格式:

在一行中输出D天的后天是星期几。

输入样例:

3

输出样例:

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

本题属于简单输入+条件输出题。

7-14 然后是几点 (15 分)

有时候人们用四位数字表示一个时间,比如 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()
{int now,past,hour,min,total;scanf("%d %d",&now,&past);hour=now/100;min=now%100;total=hour*60+min+past;printf("%d%02d",(total/60),(total%60));}

思路在翁恺老师视频有,其实就是先全部转化为分钟数做加法,然后再转化为小时+分钟分别输出,否则遇到030和-040会报错。

7-15 BCD解密 (10 分)

BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输出了。于是BCD的0x12被输出成了十进制的18了!

现在,你的程序要读入这个错误的十进制数,然后输出正确的十进制数。提示:你可以把18转换回0x12,然后再转换回12。

输入格式:

输入在一行中给出一个[0, 153]范围内的正整数,保证能转换回有效的BCD数,也就是说这个整数转换成十六进制时不会出现A-F的数字。

输出格式:

输出对应的十进制数。

输入样例:

18

输出样例:

12
#include<stdio.h>
int main()
{int x;scanf("%d",&x);printf("%x",x);return 0;
}

中国大学MOOC翁恺C语言PTA入门练习(更新中)相关推荐

  1. 浙大翁恺pat练习题_PAT|中国大学MOOC-浙江大学翁恺-C语言程序设计习题集(更新中)...

    2-0. 整数四则运算 时间限制:400 ms 内存限制:65536 kB 代码长度限制:8000 B 判题程序:Standard 作者:乔林(清华大学) 本题要求编写程序,计算2个正整数的和.差.积 ...

  2. 数字特征值 中国大学生mooc 翁恺 C语言

    题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值.对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推.这个整数在第n位上的数字记作x,如果x和n的奇偶性相 ...

  3. 奇偶个数 中国大学生mooc 翁恺 C语言

    题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据.程序输出读到的数据中的奇数和偶数的个数. 输入格式: 一系列正整数,整数的范围是(0,100000).如果输入 ...

  4. 中国大学MOOC课程《Python语言程序设计》课后练习第一周

    中国大学MOOC课程<Python语言程序设计>课后练习第一周 1.字符串拼接 python从2.6版本后增加了format函数,用来代替%s,%r等格式化字符串: # -*- codin ...

  5. 中国大学 MOOC 课程 《Python 语言程序设计》第六周

    中国大学 MOOC 课程 <Python 语言程序设计>第六周 一.lambda函数 1,lambda的一般形式是关键字lambda后面跟一个或多个参数,紧跟一个冒号,以后是一个表达式.l ...

  6. 翁恺c语言程序设计入门期末,程序设计入门-C语言 翁恺.doc

    第 PAGE \* MERGEFORMAT 39 页 共 NUMPAGES \* MERGEFORMAT 39 页 程序设计入门-C语言 浙大 翁恺循环类型编程源代码1.#include int ma ...

  7. C语言程序设计习题集(中国大学MOOC翁凯)02

    02-0. 整数四则运算(10) 本题要求编写程序,计算2个正整数的和.差.积.商并输出.题目保证输入和输出全部在整型范围内. 输入格式: 输入在一行中给出2个正整数A和B. 输出格式: 在4行中按照 ...

  8. java语言下列说法正确的是_中国大学MOOC: 以下关于Java语言说法正确的是( )。...

    摘要: 中国正确疹特急疹幼儿的皮点是.血钾血压较高病人的高,下语下述何种禁用药(利尿.下列不恰当的是,关于内镜治疗静脉有关曲张食管.... 中国正确疹特急疹幼儿的皮点是. 响最畸形理生理影对病大的是, ...

  9. 高精度小数 mooc 翁恺c 语言

    题目内容: 由于计算机内部表达方式的限制,浮点运算都有精度问题,为了得到高精度的计算结果,就需要自己设计实现方法. (0,1)之间的任何浮点数都可以表达为两个正整数的商,为了表达这样两个数的商,可以将 ...

最新文章

  1. SSH安装后提示sshd_server account 用户
  2. 吊打Magic Leap,微软HoloLens 2不只为炫技
  3. 问题 1436: 地宫取宝 (dp)
  4. kafka配置公网IP访问
  5. 牛客 - Dance with a stick(大风车模型)
  6. OS X 使用技巧——轻松地调整窗口大小
  7. 让携号转网不再难!但你得了解这几大限制
  8. python 安装xpath_python中使用XPath笔记
  9. Vista下将Area效果应用到整个窗体
  10. 神经图灵机NTM —— 元学习
  11. 高通高级技术标准总监李俨:C-V2X助力自动驾驶的招式和心法
  12. 长江中游水文站点流量数据下载及处理
  13. 大数据之大数据技术架构
  14. 连接摄像头拍照并识别图片中二维码
  15. ZABBIX 钉钉报警 插件(python)
  16. 基于SpringBoot下使用分布式文件存储FastDFS
  17. 商之翼小京东+ucenter1.6.0+discuz3.3整合经历
  18. 笔记 | 初探Kotlin协程
  19. 微信视频号的抓取记录
  20. error: ‘uint8_t’,‘uint16_t’ ,‘uint32_t’ does not name a type

热门文章

  1. 冶铁技术与古巴比伦的灭亡:科技进展可能对人类文明产生多大影响
  2. 用CSS在网站底部加上蒲公英动态效果的实现方法
  3. 计算机病毒(Virus)是谁发明的?
  4. 虚拟化封装到存储服务器,确保VMware成功的虚拟化存储
  5. framewor-学习笔记1--说明
  6. MFC如何添加背景图片
  7. Logstash:运用 fingerprint 过滤器处理重复的文档
  8. 2021.09.24—皮皮与帅帅的第二篇情话
  9. 调查报告解读之国外数据库篇:MySQL国内使用率第一,多少企业有意替换国外产品?
  10. str_replace 替换函数