pta平台c语言作业答案,C语言PTA平台习题与答案.pdf

253b171540df25e1b84436cbe50dfc72.gifC语言PTA平台习题与答案.pdf

C 语言程序与设计 PTA 平台习题与答案 1 1 第二章 作业 1 .本题要求编写程序,输出一个短句“Welcome to You” include int main printfWelcome to Youn; return 0; .本题要求编写程序,计算华氏温度 100F 对应的摄氏温度。计算公式C5F32/9, 式中C表示摄氏温度,F表示华氏温度,输出数据要求为整型。 fahr 100, celsius 计算所得摄氏温度的整数值 include int main int fahr 100; int celsius 5*fahr-32/9; printffahr 100,celsius dn,celsius; return 0; 第二章 作业 2 求整数均值本题要求编写程序,计算 4 个整数的和与平均值。题目保证输入与输出均在 整型范围内。 在一行中按照格式“Sum 和; Average 平均值”顺序输出和与平均值,其中平均值精 确到小数点后一位 include int main int a,b,c,d,Sum; double Average; scanfd d d d, Sum a b c d; Average a b c d/4.0; printfSum d,Average .1fn,Sum,Average; return 0; 整数四则运算本题要求编写程序,计算 2 个正整数的和、差、积、商并输出。题目保证 输入和输出全部在整型范围内 输入在一行中给出 2 个正整数 A 和 B。 在 4 行中按照格式“A 运算符 B 结果”顺序输出和、差、积、商。 include int main int a; int b; scanfd d, printfd d dn,a,b,ab; printfd - d dn,a,b,a-b; printfd * d dn,a,b,a*b; printfd / d d,a,b,a/b; return 0; 整数 152 的各位数字本题要求编写程序,输出整数 152 的个位数字、十位数字和 百位数字的值 152 个位数字 十位数字*10 百位数字*100 include int main int a152/100; int c15210; int count152100; int bcount/10; printf152 d d*10 d*100,c,b,a; return 0; 第二章 作业 3 求奇数分之一序列前 N 项和 计算序列 1 1/3 1/5 . 的前 N 项之和 输入在一行中给出一个正整数 N。在一行中按照“sum S”的格式输出部分和的值 S, 精确到小数点后 6 位。题目保证计算结果不超过双精度范围 include int main int n; int i1; double s 0; scanfd, for i1;in;i s1.0/2*i-1; printfsum .6f,s; return 0 ; 计算序列 1 - 1/4 1/7 - 1/10 . 的前 N 项之和在一行中按照“sum S”的格式 输出部分和的值 S,精确到小数点后三位。题目保证计算结果不超过双精度范围 include C 语言程序与设计 PTA 平台习题与答案 2 2 int main int fm1,N,b1; double item,sum0,i; scanfd, fori1.0;iN;i itemb*i/fm; sumsumitem; b-b; fmfm2; printf.3fn,sum; return 0; 求平方根序列前 N 项和 计算平方根序列123的前 N 项之和 include include int main int n,i; double x,s0; scanfd, fori1;in;i x sqrti; s sx; printfsum .2fn,s; return 0 ; 特殊 a 串数列求和 给定两个均不超过9的正整数a和n, 要求编写程序求aaaaaaaaa(n个a) 之和。 include include int main int n,a,i,j; double num0,sum0; scanfd d, fori1;in;i forj1;ji;j numnuma*pow10,j-1; sumsumnum; num0; printfs d,sum; return 0; 第二章 作业 4 本题目要求计算下列分段函数fx的值 输入在一行中给出实数 x 在一行中按“fx result”的格式输出,其中 x 与 result 都保留一位小数。 输入样例 110 输出样例1 f10.0 0.1 输入样例 2 234 输出样例 2 f234.0 234.0 include int main double x; scanflf, ifx10printff0.1f 0.1,x; else printff0.1f 0.1f,x,x; return 0; 计算分段函数 本题目要求计算下列分段函数fx的值 注可在头文件中包含 math.h,并调用 sqrt 函数求平方根,调用 pow 函数求幂。 include int main C 语言程序与设计 PTA 平台习题与答案 3 3 double a; scanflf, ifa0printff0.2f 0.2f,a,sqrta; else printff0.2f 0.2f,a,a1*a12*a1/a; return 0; 新胖子公式输入在一行中给出两个正数,依次为一个人的体重(以 kg 为单位)和身高 (以 m 为单位),其间以空格分隔。其中体重不超过 1000 kg,身高不超过 3.0 m。 首先输出将该人的体重和身高代入肥胖公式的计算结果,保留小数点后 1 位。如果这 个数值大于 25,就在第二行输出 PANG,否则输出 Hai Xing。 include int main double a,b; scanflf lf, double ca/b*b; printf0.1fn,c; ifc25printfPANG; else printfHai Xing; return 0; 第三章 作业 2 求奇数和输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时, 表示输入结束,该数字不要处理 在一行中输出正整数序列中奇数的和。 8 7 4 3 70 5 6 101 -1 116 include int main int n0; int sum0; do scanfd, ifn21 sumn; while n0; printfd,sum; return 0; 求整数的位数及各位数字之和 输入在一行中给出一个不超过 109的正整数 N 在一行中输出 N 的位数及其各位数字之和,中间用一个空格隔开 321 3 6 include int main int n,h,i,sum0; scanfd, do hn10; n/10; sumh; i; while n0; printfd d,i,sum; return 0; 简单的猜数字游戏 include int main int x; const int M38; scanf d, ifx38printfToo big; ifx38printfGood Guess; ifx38printfToo small; return 0; 第四章 作业 1 奇偶分家输入第一行给出一个正整 N(1000);第 2 行给出 N 个非负整数,以空格分 隔。 在一行中先后输出奇数的个数、偶数的个数。中间以 1 个空格分隔。 9 88 74 101 26 15 0 34 22 77 3 6 include int main C 语言程序与设计 PTA 平台习题与答案 4 4 int i,n,N; int a0,b0; scanfd, for i 0;i n;i scanfd, ifN 20a; elseb; printfd d,b,a; A 除以除以 B定两个绝对值不超过 100 的整数 A 和 B,要求你按照“A/B商”的格式输出结 果 在一行中输出结果如果分母是正数,则输出“A/B商”;如果分母是负数,则要用括号把分 母括起来输出;如果分母为零,则输出的商应为 Error include int main int a,b; scanfd d, ifb0printfd/d.2f,a,b,a*1.0/b; else ifb0printfd/d.2f,a,b,a*1.0/b; else printfd/dError,a; return 0; 高速公路超速处罚 在高速公路上行使的机动车,达到或超出本车道限速的 10则处 200 元罚款;若达到或超 出 50,就要吊销驾驶证 输入在一行中给出 2 个正整数,分别对应车速和限速,其间以空格分隔。 在一行中输出处理意见若属于正常行驶,则输出“OK”;若应处罚款,则输出“Exceed x. Ticket 200”; 若应吊销驾驶证, 则输出“Exceed x. License Revoked”。 其中 x 是超速的百分比, 精确到整数。 110 100 Exceed 10. Ticket 200 include int main int a,b; int x; scanfd d, x round1.0*a-b/b*100; ifx10printfOKn; else if x50printfExceed d. Ticket 200n,x; else printfExceed d. License Revokedn,x; return 0; 输出三角形面积和周长 根据输入的三角形的三条边 a、b、c,计算并输出面积和周长。注意 在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式 areassasbsc,其中 sabc/2。 area 面积; perimeter 周长 These sides do not correspond to a valid triangle 5 5 3 area 7.15; perimeter 13.00 include include int main double a,b,c,s; double area,perimeter; scanflf lf lf, area0; perimeter0; ifabc areasqrts*s-a*s-b*s-c; perimeterabc; printfarea .2f; perimeter .2f,area,perimeter; else printfThese sides do not correspond to a valid triangle; return 0; 输出闰年 输入在一行中给出 21 世纪的某个截止年份。 逐行输出满足条件的所有闰年年份,即每个年份占一行。输入若非 21 世纪的年份则输出Invalid year。若不存在任何闰年,则输出 “None”。 闰年的判别条件是该年年份能被 4 整除但不能被 100 整除、或者能被 400 整除 include int main int year, i, count0; scanfd, ifyear2100 printfInvalid yearn; C 语言程序与设计 PTA 平台习题与答案 5 5 else fori2001; iyear; i ifi40 count; ifcount0 printfNonen; return 0; 逆序的三位数 程序每次读入一个正 3 位数,然后输出按位逆序的数字。注意当输 入的数字含有结尾的 0 时,输出不应带有前导的 0。比如输入 700, 输出应该是 7。 include int main int a, b, c, n; scanfd, ba/100;ca/1010;na10; ifn0 ifn0 ifn0 printfddd,n,c,b; return 0; 第四章 作业 2 .统计学生成绩 大于等于 90 分为 A; 小于 90 且大于等于 80 为 B; 小于 80 且大于等于 70 为 C; 小于 70 且大于等于 60 为 D; 小于 60 为 E。 输入在第一行中给出一个正整数 N(1000),即学生人数;第二行 中给出 N 个学生的百分制成绩,其间以空格分隔。 在一行中输出 A、B、C、D、E 对应的五分制成绩的人数分布,数字间 以空格分隔,行末不得有多余空格。 7 77 54 92 73 60 65 69 1 0 2 3 1 include int main int n, score; int i; int A, B, C, D, E; ABCDE0; scanfd, for i1; i90 A; else ifscore80 B; else ifscore70 C; else ifscore60 D; else E; printfd d d d d, A, B, C, D, E; return 0; 计算油费。(本题编程不完全对)现在 90 号汽油 6.95 元/升、93 号汽油 7.44 元/升、97 号汽油 7.93 元/升。为吸引顾客,某自动加油 站推出了“自助服务”和“协助服务”两个服务等级,分别可得到 5 和 3的折扣。 本题要求编写程序,根据输入顾客的加油量 a,汽油品种 b(90、93 或 97)和服务类型 c(m - 自助,e - 协助),计算并输出应付款。 40 97 m 301.34 include int main float r1,r2; int a,b; char c; double s; scanfd d c, switchb case 90 r16.95; break; case 93 r17.44; break; case 97 r17.93; break; C 语言程序与设计 PTA 平台习题与答案 6 6 switchc case m r20.95; break; case e r20.97; break; sa*r1*r2; printf.2lf,s; return 0; 分别是薯片crisps、爆米花popcorn、巧克力chocolate和可乐 cola,单价分别对应为 3.0 元/公斤、2.5 元/公斤、4.0 元/公斤、3.5 元/份。 首先在屏幕上显示以下菜单 1 crisps 2 popcorn 3 chocolate 4 cola 0 exit 用户可以输入编号 14 查询对应食品的单价。当连续查询次数超过 5 次时,程序应自动退出查询;不到 5 次而用户输入 0 即退出;输入其 他编号,显示价格为 0 首先在屏幕上显示菜单。然后对应用户的每个输入,在一行中按格式 “price 价格”输出查询结果,其中价格保留一位小数。当用户连 续查询次数超过 5 次、 或主动输入 0 时, 程序结束, 显示“Thanks”。 1 7 0 2 1 crisps 2 popcorn 3 chocolate 4 cola 0 exit price 3.0 price 0.0 Thanks 【程序】 include int main int i, a; printf1 crispsn 2 popcornn 3 chocolaten 4 colan 0 exitn; fori1;i5;i scanfd, ifa0 break; else switcha case 1 printfprice 3.0n;break; case 2 printfprice 2.5n;break; case 3 printfprice 4.0n;break; case 4 printfprice 3.5n;break; default printfprice 0.0n;break; printfThanksn; return 0; 读入一个实数、一个操作符(仅限于 - * /)、一个实数,求该表 达式的值。若除数为 0,输出“The divisor is 0 include int main int a, b; char op; double c; scanfd c d, ifb0 switchop case cab; printf.2f,c;break; case- ca-b; printf.2f,c;break; case* ca*b; printf.2f,c;break; case/ printfThe divisor is 0.;break; else switchop case c ab; printf.2f,c;break; case- c a-b; printf.2f,c;break; case* c a*b; printf.2f,c;break; case/ c 1.0*a/b; printf.2f,c;break; return 0; C 语言程序与设计 PTA 平台习题与答案 7 7 第四章 作业 3 .有重复,本题略 对于给定的正整数 N,求它的位数及其各位数字之和 321 3 6 include int main int n,h,i 0,sum 0; scanfd, do h n10; n/10; sumh; i; whilen0; printfd d,i,sum; return 0 ; 找出给定一系列整数中的最小值。输入在一行中首先给出一个正整 数 n,之后是 n 个整数,其间以空格分隔。 在一行中按照“min 最小值”的格式输出 n 个整数中的最小值。 4 -2 -123 100 0 min -123 include int main int n,i,m,min; scanfd, scanfd, minm; fori1;im minm; printfmin d,min; return 0; 输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输 出 fu 字。十个数字对应的拼音如下 0 ling 1 yi 2 er 3 san 4 si 5 wu 6 liu 7 qi 8 ba 9 jiu -600 fu liu ling ling include int mainvoid char c; cgetchar; whilecn ifc- printffu; else ifc0 printfling; else ifc1 printfyi; else ifc2 printfer; else ifc3 printfsan; else ifc4 printfsi; else ifc5 printfwu; else ifc6 printfliu; else ifc7 printfqi; else ifc8 printfba; else ifc9 printfjiu; cgetchar; ifcn printf ; return 0; 第五章 作业 1 计算阶乘和 对于给定的正整数 N,需要你计算 S123.N。 include int main int i,j; int n,sum0; int temp1; scanfd, for i1; in; i for j1;ji;j temp * j; sum temp; temp 1; C 语言程序与设计 PTA 平台习题与答案 8 8 printfd,sum; 判断素数 输入在第一行给出一个正整数 N( 10),随后 N 行,每行给出一个 小于 231 的需要判断的正整数。 2 11 111 Yes No include include int main int a, i; long b; int h; int isprime; scanfd, fori1;ia;i isprime1; scanfld, ifb1 isprime0; forh2;hsqrtb;h ifbh0isprime0;break; ifisprime1 printfYesn; else printfNon; return 0; 素数和 编程求 100200 之间全部素数的和。 直接输出结果, 没有任何附加格 式字符。 include int main int x; int sum0; x6; forx100;x200;x int i; int isPrime 1; fori2;ix;i ifxi0 isPrime 0; break; ifisPrime 1 sumx; printfd,sum; return 0; N 元钱买 N 只鸡,公鸡每只 5 元,母鸡每只 3 元,小鸡 1 元 3 只,N 元钱必须刚好买 N 只鸡,而且鸡必须整只买,不能劈开买。 有几种买法呢这就是 N 鸡问题。 在一行中输入一个正整数 N。(N500) 在一行中输出两个整数 c s,中间用一个空格隔开,表示 N 元钱买 N 只鸡共有 c 种买法, 且所有买法的公鸡数量之和是 s。 include int main int n,c0,s0; int gong,mu,xiao; scanfd, forgong0;gongn/5;gong formu0;mun/3;mu xiaon-gong-mu; ifgong*5mu*3xiao/3n sgong; ifc0 printf0 -1; else printfd d,c,s; return 0; 第五章 作业 2 打印倒直角三角形图形 C 语言程序与设计 PTA 平台习题与答案 9 9 第一行图形符号前面有 1 个空格。 以倒直角三角形的格式输出 5 行由符号构成的三角图形,每个 符号占固定 1 位,第一行第一个符号前有 1 个空格。 include main int i,j; fori1;i5;i forj1;ji;j printf ; forj1;j6-i;j printf; printfn; 本题要求对任意给定的一位正整数 N, 输出从 1*1 到 N*N 的部分口 诀表。输出下三角 N*N 部分口诀表,其中等号右边数字占 4 位、左对 齐。 include int main int i,j,N; scanfd, fori1;iN;i forj1;ji1;j printfd*d-4d,j,i,j*i; printfn; 最大公约数和最小公倍数 输入在一行中给出两个正整数 M 和 N 在一行中顺序输出 M 和 N 的最大公约数和最小公倍数, 两数字间以 1 空格分隔。 511 292 73 2044 include int main int a,b,c,m,n; scanfd d, ifmn cm; mn; nc; am; bn; whileb0 cab; ab; bc; printfd d,a,m*n/a; return 0; 求平方与倒数序列的部分和 输入在一行中给出两个正整数 m 和 n(mn) include include int main int i, n, m; double sum; scanfd d, sum0; forim; in; i sumsumpowi,21.0/i; printfsum .6f, sum; return 0; 求交错序列前 N 项和 计算交错序列 1-2/33/5-4/75/9-6/11. 的前 N 项之和 include int main int fm1,N,b1; C 语言程序与设计 PTA 平台习题与答案 10 10 double item,sum0,i; scanfd, fori1.0;iN;i itemb*i/fm; sumsumitem; b-b; fmfm2; printf.3fn,sum; return 0; 近似求 PI 本题要求编写程序,根据下式求的近似值,直到最后一 项小于给定精度 eps。 scanfle, PI 近似值 1E-5 PI 3.14158 include int main double eps,i,sum1,a1,b1,c1; scanfle, fori1;ceps;i aa*i; bb*2*i1; c1.0*a/b; sumc; printfPI .5f,sum*2; return 0; 第五章 作业 3 (复习课) 按从小到大的顺序输出所有不超过 2n1 的梅森数,每行一个如果完 全没有,则输出“None” include include int main int i,n,j; int b0,t0; scanfd, ifn1 printfNone; forj2;jn;j bpow2,j-1; fori2;ib;i ifbi0t1;break; ift0 printfdn,b; t0; return 0; 一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早 上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一 个。到第 N 天早上想再吃时,见只剩下一个桃子了。问第一天共摘了多少个桃子 include int main int i,n; int sum1; scanfd, fori1;in;i sumsum1*2; printfd,sum; C 语言程序与设计 PTA 平台习题与答案 11 11 皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下, 再反弹如此反复。问皮球在第 n 次落地时,在空中一共经过多 少距离第 n 次反弹的高度是多少 33 5 94.9 1.0 include int main int n,i; double a,h; double l0.0; scanflf d, l1.0*a; ifn0 ifn1printf.1f .1f,a,a/2.0; else fori1;in;i a/2.0; la*2; ha; printf.1f .1f,l,h/2.0; else printf0.0 0.0; 假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同, 按从左到右的顺序计算。 输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号””说明 输入结束。 在一行中输出算式的运算结果,或者如果除法分母为 0 或有非法运算符,则输出错误信息 “ERROR”。 12*10-10/2 10 include int main int a,b,c,flag0; char ch; scanfd, whilechgetchar scanfd, ifch/break; switchch case aab;break; case -aa-b;break; case *aa*b;break; case /aa/b;break; default flag1;break; ifflag break; ifflag printfERROR; else printfd,a; return 0; 第六章 作业 1 本题要求从输入的 N 个整数中查找给定的 X。如果找到,输出 X 的 位置(从 0 开始数);如果没有

  • 1
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值