分支与跳转

。_饼干妹妹 提交于 2019-12-23 13:44:48

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

#1

编写一个程序读取输入,读到#字符停止,然后报告读取的空格数、换行符数和所有其他字符的数量。

#include <stdio.h> int main(void) { char ch; int kg = 0, hh = 0, qt = 0; while ((ch = getchar()) != '#') { switch(ch) { case ' ': kg++; break; case '\n': hh++; break; default: qt++; } } printf("%-5d %-5d %-5d\n", kg, hh, qt); return 0; } #2

编写一个程序读取输入,读到#字符停止。程序要打印每个输入的字符以及对应的ASCII码(十进制)。一行打印8个字符。建议:使用字符计数和求模运算符(%)在每8个循环周期时打印一个换行符。

#include <stdio.h> int main(void) { char ch; int t = 1; while ((ch = getchar()) != '#') { putchar(ch); printf("%d ", ch); if(!(t++ % 8)) { printf("\n"); } } return 0; } #4

使用if else语句编写一个程序读取输入,读到#停止。用感叹号替换句号,用两个感叹号替换原来的感叹号,最后报告进行了多少次替换。

#include <stdio.h> int main(void) { char ch; int n = 0; while((ch = getchar()) != '#') { if(ch == '.') { putchar('!'); n++; } else if(ch == '!') { putchar('!'); putchar('!'); n++; } else { putchar(ch); } } printf("\n%d\n", n); return 0; } #5

编写程序读取输入,读到#停止,报告ei出现的次数。 注意 该程序要记录前一个字符和当前字符。用“Receive your eieio award”这样的输入来测试。

#include <stdio.h> int main(void) { char ch; int n = 0, f = 0; while((ch = getchar()) != '#') { switch(ch) { case 'e': f = 1; break; case 'i': if(f) { n++; f = 0; } break; default: break; } } printf("\n%d\n", n); return 0; } #6

编写一个程序,提示用户输入一周工作的小时数,然后打印工资总额、税金和净收入。做如下假设: a.基本工资 = 1000美元/小时 b.加班(超过40小时) = 1.5倍的时间 c.税率: 前300美元为15% 续150美元为20% 余下的为25% 用#define定义符号常量。不用在意是否符合当前的税法。

#include <stdio.h> #define MAXT 40.0 #define GH 10.0 #define FR 300.0 #define SR 450.0 #define FTR 0.15 #define STR 0.20 #define TTR 0.25

int main(void) { float t, sum, tax, gain; printf("输入一周工作的小时数:"); scanf("%f", &t); if(t > MAXT) { t = MAXT + (t - MAXT) * 1.5; } sum = GH * t; if(sum <= FR) { tax = sum * FTR; gain = sum - tax; } else if(sum > FR && sum < SR) { tax = FR * FTR + (sum - FR) * STR; gain = sum - tax; } else if(sum > SR) { tax = FR * FTR + (SR - FR) * STR + (sum - SR) * TTR; gain = sum - tax; } printf("%-10.2f%-10.2f%-10.2f%-10.2f\n", t, sum, gain, tax); return 0; } #8

1988年的美国联邦税收计划是近代最简单的税收方案。它分为4个类别,每个类别有两个等级。下面是该税收计划的摘要(美元数为应征税的收入):

例如,一位工资为20000美元的单身纳税人,应缴纳税费0.15×17850+0.28×(20000−17850)美元。编写一个程序,让用户指定缴纳税金的种类和应纳税收入,然后计算税金。程序应通过循环让用户可以多次输入。

#include <stdio.h> int main(void) { float income, tax_r, tax; int type; printf("\n"); printf("1)单身 2)户主\n3)已婚,共有 4)已婚,离异\n5)退出\n"); printf("\n"); printf("input type:"); while(scanf("%d", &type) == 1) { int x = 1; while(x) { switch(type) { case 1: tax_r = 17850.0; x = 0; break; case 2: tax_r = 23900.0; x = 0; break; case 3: tax_r = 29750.0; x = 0; break; case 4: tax_r = 14875.0; x = 0; break; case 5: return 0; default: printf("input from 1 to 5:"); scanf("%d", &type); } } printf("input income:"); scanf("%f", &income); if(income > tax_r) { tax = tax_r * 0.15 + (income - tax_r) * 0.28; } else { tax = income * 0.15; } printf("tax is %.2f\n", tax); printf("input from 1 to 4 to continue or input 5 to exit:"); } return 0; } #9

ABC 邮购杂货店出售的洋蓟售价为 2.05 美元/磅,甜菜售价为 1.15美元/磅,胡萝卜售价为 1.09美元/磅。在添加运费之前,100美元的订单有5%的打折优惠。少于或等于5磅的订单收取6.5美元的运费和包装费,5磅~20磅的订单收取14美元的运费和包装费,超过20磅的订单在14美元的基础上每续重1磅增加0.5美元。编写一个程序,在循环中用switch语句实现用户输入不同的字母时有不同的响应,即输入a的响应是让用户输入洋蓟的磅数,b是甜菜的磅数,c是胡萝卜的磅数,q 是退出订购。程序要记录累计的重量。即,如果用户输入 4 磅的甜菜,然后输入 5磅的甜菜,程序应报告9磅的甜菜。然后,该程序要计算货物总价、折扣(如果有的话)、运费和包装费。随后,程序应显示所有的购买信息:物品售价、订购的重量(单位:磅)、订购的蔬菜费用、订单的总费用、折扣(如果有的话)、运费和包装费,以及所有的费用总额。

#include <stdio.h> const float ap = 2.05; const float bp = 1.15; const float cp = 1.09;

int main(void) { char ch; float sum, discount, df; int an = 0, bn = 0, cn = 0, sn = 0, n; while((ch = getchar()) != 'q') { switch(ch) { case 'a': printf("\ninput n:"); scanf("%d", &n); an += n; sn += n; sum += ap * n; break; case 'b': printf("\ninput n:"); scanf("%d", &n); bn += n; sn += n; sum += bp * n; break; case 'c': printf("\ninput n:"); scanf("%d", &n); cn += n; sn += n; sum += cp * n; break; default: printf("input a or b or c or q:"); } getchar(); } if(sum > 100) { discount = 0.05 * sum; } else { discount = 0.0; } if(sn <= 5) { df = 6.5; } else if(sn < 20) { df = 14.0; } else { df = 14.0 + (sn - 20) * 0.5; } printf("ap = %.2f, bp = %.2f, cp = %.2f\n", ap, bp, cp); printf("an = %d, bn = %d, cn = %d\n", an, bn, cn); printf("a is %.2f, b is %.2f, c is %.2f\n", ap * an, bp * bn, cp * cn); printf("sum is %.2f, discount is %.2f, df is %.2f\n", sum, discount, df); return 0; }

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!