PTAC语言理论课.docx
- 文档编号:718760
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:82
- 大小:163.43KB
PTAC语言理论课.docx
《PTAC语言理论课.docx》由会员分享,可在线阅读,更多相关《PTAC语言理论课.docx(82页珍藏版)》请在冰豆网上搜索。
PTAC语言理论课
顺序结构
7-1 输出三角形 (10 分)
本题要求编写程序,输出指定的由“*”组成的三角图案。
输入格式:
本题无输入
输出格式:
按照下列格式输出由“*”组成的三角图案。
****
***
**
*
#include
#include
intmain()
{
printf("****\n***\n**\n*");
return0;
}
7-2 混合类型数据格式化输入 (10 分)
本题要求编写程序,顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。
输入格式:
输入在一行中顺序给出浮点数1、整数、字符、浮点数2,其间以1个空格分隔。
输出格式:
在一行中按照字符、整数、浮点数1、浮点数2的顺序输出,其中浮点数保留小数点后2位。
输入样例:
2.1288c4.7
输出样例:
c882.124.70
#include
#include
intmain()
{
charc;
intd;
doublef1,f2;
scanf("%lf%d%c%lf",&f1,&d,&c,&f2);
printf("%c%d%.2f%.2f",c,d,f1,f2);
return0;
}
7-3 交换a和b的值 (10 分)
交换变量a,b的值,如输入a的值为1,b的值为5,则输出a的值为5,b的值为1。
输入格式:
输入两个整数,之间用一个空格间隔。
输出格式:
在一行中按照“a=x,b=y”的格式输出,其中x和y均是原样输出,不加宽度控制。
输入样例:
15
输出样例:
a=5,b=1
#include
#include
intmain()
{
inta,b,t;
scanf("%d%d",&a,&b);
t=a;
a=b;
b=t;
printf("a=%d,b=%d",a,b);
}
7-4 A乘以B (10 分)
看我没骗你吧——这是一道你可以在10秒完成的题:
给定两个绝对值不超过100的整数A和B,输出A乘以B的值。
输入格式:
输入在第一行给出两个整数A和B(−100≤A,B≤100),数字间以空格分隔。
输出格式:
在一行中输出A乘以B的值。
输入样例:
-813
输出样例:
-104
#include
#include
intmain()
{
inta,b;
scanf("%d%d",&a,&b);
printf("%d",a*b);
return0;
}
-5 厘米换算英尺英寸 (10 分)
如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。
现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?
别忘了1英尺等于12英寸。
输入格式:
输入在一行中给出1个正整数,单位是厘米。
输出格式:
在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。
输入样例:
170
输出样例:
56
#include
#include
intmain()
{
inta,foot,inch;
scanf("%d",&a);
foot=(int)(0.01*a/0.3048);
inch=(int)(12*(0.01*a/0.3048-(double)foot));
printf("%d%d",foot,inch);
return0;
}
7-6 然后是几点 (10 分)
有时候人们用四位数字表示一个时间,比如1106表示11点零6分。
现在,你的程序要根据起始时间和流逝的时间计算出终止时间。
读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。
当小时为个位数时,没有前导的零,即5点30分表示为530。
注意,第二个数字表示的分钟数可能超过60,也可能是负数。
输入格式:
输入在一行中给出2个整数,分别是四位数字表示的起始时间、以与流逝的分钟数,其间以空格分隔。
注意:
在起始时间中,当小时为个位数时,没有前导的零,即5点30分表示为530;流逝的分钟数可能超过60,也可能是负数。
输出格式:
输出四位数字表示的终止时间。
题目保证起始时间和终止时间在同一天。
输入样例:
1120110
输出样例:
1310
#include
#include
intmain()
{
intstart,interval,end,m;
scanf("%d%d",&start,&interval);
m=(start/100)*60+(start%100)+interval;
end=(m/60)*100+m%60;
printf("%d",end);
return0;
}
选择结构
7-1 计算符号函数的值 (15 分)
对于任一整数n,符号函数sign(n)的定义如下:
请编写程序计算该函数对任一输入整数的值。
输入格式:
输入在一行中给出整数n。
输出格式:
在一行中按照格式“sign(n)=函数值”输出该整数n对应的函数值。
输入样例1:
10
输出样例1:
sign(10)=1
输入样例2:
0
输出样例2:
sign(0)=0
输入样例3:
-98
输出样例3:
sign(-98)=-1
#include
#include
intmain()
{
intn,sign;
scanf("%d",&n);
if(n<0)
sign=-1;
elseif(n>0)
sign=1;
else
sign=0;
printf("sign(%d)=%d",n,sign);
return0;
}
7-2 成绩转换 (15 分)
本题要求编写程序将一个百分制成绩转换为五分制成绩。
转换规则:
∙大于等于90分为A;
∙小于90且大于等于80为B;
∙小于80且大于等于70为C;
∙小于70且大于等于60为D;
∙小于60为E。
输入格式:
输入在一行中给出一个整数的百分制成绩。
输出格式:
在一行中输出对应的五分制成绩。
输入样例:
90
输出样例:
A
#include
#include
intmain()
{
intscore;
charrank;
scanf("%d",&score);
if(score>=90){
rank='A';
}
elseif(score>=80){
rank='B';
}
elseif(score>=70){
rank='C';
}
elseif(score>=60){
rank='D';
}
else{
rank='E';
}
printf("%c",rank);
return0;
}
7-3 两个数的简单计算器 (15 分)
本题要求编写一个简单计算器程序,可根据输入的运算符,对2个整数进行加、减、乘、除或求余运算。
题目保证输入和输出均不超过整型围。
输入格式:
输入在一行中依次输入操作数1、运算符、操作数2,其间以1个空格分隔。
操作数的数据类型为整型,且保证除法和求余的分母非零。
输出格式:
当运算符为+、-、*、/、%时,在一行输出相应的运算结果。
若输入是非法符号(即除了加、减、乘、除和求余五种运算符以外的其他符号)则输出ERROR。
输入样例1:
-7/2
输出样例1:
-3
输入样例2:
3&6
输出样例2:
ERROR
#include
#include
intmain()
{
intnum1,num2;
charoperate;
scanf("%d%c%d",&num1,&operate,&num2);
switch(operate){
case'+':
printf("%d",num1+num2);
break;
case'-':
printf("%d",num1-num2);
break;
case'*':
printf("%d",num1*num2);
break;
case'/':
printf("%d",num1/num2);
break;
case'%':
printf("%d",num1%num2);
break;
default:
printf("ERROR");
}
return0;
}
-4 12-24小时制 (15 分)
编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。
输入格式:
输入在一行中给出带有中间的:
符号(半角的冒号)的24小时制的时间,如12:
34表示12点34分。
当小时或分钟数小于10时,均没有前导的零,如5:
6表示5点零6分。
提示:
在scanf的格式字符串中加入:
,让scanf来处理这个冒号。
输出格式:
在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串PM。
如5:
6PM表示下午5点零6分。
注意,在英文的习惯中,中午12点被认为是下午,所以24小时制的12:
00就是12小时制的12:
0PM;而0点被认为是第二天的时间,所以是0:
0AM。
输入样例:
21:
11
输出样例:
9:
11PM
#include
#include
intmain()
{
inth=0,m=0;
chars;
scanf("%d%c%d",&h,&s,&m);
if(h>12){
printf("%d:
%dPM",h-12,m);
}
elseif(h==12){
printf("%d:
%dPM",h,m);
}
else
printf("%d:
%dAM",h,m);
return0;
}
7-5 出租车计价 (15 分)
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。
具体标准如下:
∙起步里程为3公里,起步费10元;
∙超起步里程后10公里,每公里2元;
∙超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
∙营运过程中,因路阻与乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。
输入格式:
输入在一行中给出输入行驶里程(单位为公里,精确到小数点后1位)与等待时间(整数,单位为分钟),其间以空格分隔。
输出格式:
在一行中输出乘客应支付的车费(单位为元),结果四舍五入,保留到元。
输入样例1:
2.62
输出样例1:
10
输入样例2:
5.14
输出样例2:
14
输入样例3:
12.59
输出样例3:
34
#include
#include
intmain()
{
doublemile=0;
inttime=0;
doubleprice,price1,price2;
scanf("%lf%d",&mile,&time);
if(mile<=3){
price1=10;
}
e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PTAC 语言 理论