TPA部分试题

更新时间:2023-12-07 04:35:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《算法与程序设计》PTA习题集

第4周

本题目要求计算下列分段函数f(x)的值:

输入格式:输入在一行中给出实数x。

输出格式:在一行中按“f(x) = result”的格式输出,其中x与result都保留一位小数。 输入样例1:10

输出样例1:f(10.0) = 0.1 输入样例2:0

输出样例2:f(0.0) = 0.0

#include int main() {

float x,result; scanf(\ if (x==0) {

result=0; } else {

result=1.0/x; }

printf(\ return 0; }

1

编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。

输入格式:输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。 提示:在scanf的格式字符串中加入:,让scanf来处理这个冒号。

输出格式:在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串PM。如5:6 PM表示下午5点零6分。注意,在英文的习惯中,中午12点被认为是下午,所以24小时制的12:00就是12小时制的12:0 PM;而0点被认为是第二天的时间,所以是0:0 AM。 输入样例:21:11 输出样例:9:11 PM

#include int main() {

int a,b;

scanf(\ {

printf(\ }

if(a==12) {

printf(\ } if(a<12) {

printf(\ } else {

printf(\ }

return 0; }

if(a>12)

2

给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。 输入格式:输入在一行中顺序给出六个[?100,100]范围内的数字,即三个点的坐标x1、y1、x2、y2、x3、y3。

输出格式:若这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积,格式为“L = 周长, A = 面积”,输出到小数点后2位。 输入样例1:4 5 6 9 7 8 输出样例1:L = 10.13, A = 3.00 输入样例2:4 6 8 12 12 18 输出样例2:Impossible

#include int main() {

int a,b,c;

scanf(\ {

printf(\

} else {

printf(\ } return 0; }

if((a+b>c)&&(b+c>a)&&(a+c>b))

输入一个年份,判断其是否为闰年,若是闰年输出“yes”的信息,否则输出“no”的信息。 输入格式:直接输入一个4位数年份,没有其它任何附加字符。 输出格式:直接输出“yes”或“no”,没有其它任何附加字符。 输入样例:1900输出样例:no 输入样例:2000输出样例:yes 输入样例:1904输出样例:yes

3

#include int main() {

int a;

scanf(\

if(a%4==0&&a0!=0||a@0==0) {

printf(\} else {

printf(\}

return 0; }

输入三个整数x,y,z,请把这三个数由小到大输出。

输入格式:在一行中直接输入3个整数,之间各用一个空格间隔。

输出格式:在一行中按照“x=最小值,y=次小值, z=最大值”的顺序输出结果,最大值、次大值和最小值均原样输出,没有宽度控制。 输入样例:2 1 3输出样例:x=1,y=2,z=3

#include int main() {

int x,y,z,temp;

scanf(\ if(x>y) {

temp=x,x=y,y=temp;

} if(x>z) {

temp=x,x=z,z=temp; }

if(y>z) {

temp=y,y=z,z=temp; }

printf(\

4

return 0; }

第5周

本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则:

? ? ? ? ?

大于等于90分为A;

小于90且大于等于80为B; 小于80且大于等于70为C; 小于70且大于等于60为D; 小于60为E。

输入格式:输入在一行中给出一个整数的百分制成绩。 输出格式:在一行中输出对应的五分制成绩。 输入样例:90输出样例:A

#include int main() {

int a,ch;

scanf(\ if(a>90||a==90) {

ch='A'; }

else if(a>80||a==80) {

ch='B'; }

else if(a>70||a==70) {

ch='C'; }

else if(a>60||a==60) {

ch='D'; } else {

ch='E'; }

printf(\

5

z=x; } else {

z=y;

} return(z); }

int main() { int a,b,c;

c=max(a,b);

scanf(\

printf(\return 0; }

本题要求实现一个计算两个数的最大公约数的简单函数。 函数接口定义:int gcd( int x, int y );

其中x和y是两个正整数,函数gcd应返回这两个数的最大公约数。 输入样例:32 72输出样例:8

#include int gcd(int x,int y) {

int i;

26

}

for(i=y;i>=1;i--) { }

if(x%i==0&&y%i==0) { }

return i;

int main() { }

本题要求实现一个计算非负整数阶乘的简单函数,使得可以利用该函数,计算1!+2!+?+10!的值。

函数接口定义:double fact( int n );

其中n是用户传入的参数,其值不超过10。如果n是非负整数,则该函数必须返回n的阶乘。

输入样例:本题没有输入。

输出样例:1!+2!+...+10! = 4037913.000000

int a,b;

scanf(\printf(\return 0;

#include double fact( int n )

27

{ }

int main() { int i; double sum; sum = 0;

for(i = 1; i <= 10; i++) sum = sum + fact(i);

printf(\return 0; }

fun函数的功能是:找出大于m的最小素数,并将其作为函数值返回。 函数接口定义:int fun( int m);

28

int i,a,sum; { }

while(i<=n) {

a=a*i;

sum=sum+a; } return i;

i++;

函数fun中m是用户传入的参数,函数fun的功能是找出大于m的最小素数,并将其作为函数值返回。 输入样例:10 输出样例:11

#include int fun( int m) { int i,j,fun; for(i=m+1;i>m;i++) { for(j=2;j

}

return fun;

}

}

int main() { int n;

scanf(\printf(\return 0;

29

}

编写函数,判断指定的字符是否是数字字符,如果是函数返回1,否则函数返回0.要求在主调函数中输入该字符,调用函数并输出判断结果。 输入格式:在一行中给出1个字符。

输出格式:对于给定输入的字符,输出判断结果yes或no。 输入样例: 6输出样例: yes 输入样例: H输出样例: no

#include int s( char a) { int s;

if(a>='0'&&a<='9') {

s=1; } else {

s=0; }

return s;

}

int main() { char b;

30

本文来源:https://www.bwwdw.com/article/58gt.html

Top