好文档 - 专业文书写作范文服务资料分享网站

C primer plus(第五版)课后编程练习答案(完整) 

天下 分享 时间: 加入收藏 我要投稿 点赞

6.编写一个程序读取输入,直到#,并报告序列ei出现的次数。

此程序必须要记住前一个字符和当前的字符。用诸如“Receive your eieio award.”的输入测试它。

#include

int main(void) {

char former=0,present; int count=0;

while((present=getchar()) != '#') {

if((former == 'e') && (present == 'i')) count++; former = present; }

printf(\ return(0); }

7.编写程序,要求输入一周中的工作小时数,然后打印工资总额、税金以及净工资。作如下假设: a.基本工资等级=10.00美元//J,时 b.加班(超过40小时)=1.5倍的时间 c.税率 前300美元为15% 下一个150美元为20% 余下的为25%

用#define定义常量,不必关心本例是否符合当前的税法。

#include //a.基本工资

#define BASIC 10.00 //基本工资等级=BASIC美元/小时 //b.加班

#define TIME 40 //加班(超过TIME小时) = #define ADD 1.5 //ADD倍的时间 //c.税率

#define LIMIT1 300 //前LIMIT1美元为RATE1 #define RATE1 0.15

#define LIMIT2 150 //下一个LIMIT2美元为RATE2 #define RATE2 0.20

#define RATE3 0.25 //余下的位RATE3

int main(void) {

double hours,gross,tax;

printf(\ scanf(\

if (hours > 40) hours = 40 + (hours - 40) * 1.5; gross = hours * BASIC;

printf(\ if (gross <= LIMIT1) tax = gross * RATE1;

else if (gross <= LIMIT2) tax = LIMIT1 * RATE1 + (gross - LIMIT1) * RATE2; else tax = LIMIT1 * RATE1 + LIMIT2 * RATE2 + (gross - LIMIT1 - LIMIT2) * RATE3; printf(\

printf(\ return(0); }

8.修改练习7中的假设a,使程序提供一个选择工资等级的菜单。用switch选择工资等级。程序运行的开头应该像这样:

Enter the number corresponding to the desired pay rate or action: 1) $8.75/hr 2) $9.33/hr 3) $lO.OO/hr 4) $11.20/hr 5) quit

如果选择l到4.那么程序应该请求输入工作小时数。程序应该一直循环运行,直到输入5。如果输入l到5以外的选项,那么程序应该提醒用户合适的选项是哪些,然后再循环。用#define为各种工资等级和税率定义常量。

#include int get_int(void);

//b.加班

#define TIME 40 //加班(超过TIME小时) = #define ADD 1.5 //ADD倍的时间 //c.税率

#define LIMIT1 300 //前LIMIT1美元为RATE1 #define RATE1 0.15

#define LIMIT2 150 //下一个LIMIT2美元为RATE2 #define RATE2 0.20

#define RATE3 0.25 //余下的位RATE3

int main(void) {

double basic,hours,gross,tax;

printf(\ printf(\ printf(\ printf(\ switch( get_int() ) {

case 1: basic = 8.75; break; case 2: basic = 9.33; break; case 3: basic = 10.00; break; case 4: basic = 11.20; break;

default: printf(\退出程序 }

printf(\ printf(\ scanf(\

if (hours > 40) hours = 40 + (hours - 40) * 1.5; gross = hours * basic;

printf(\ if (gross <= LIMIT1) tax = gross * RATE1;

else if (gross <= LIMIT2) tax = LIMIT1 * RATE1 + (gross - LIMIT1) * RATE2; else tax = LIMIT1 * RATE1 + LIMIT2 * RATE2 + (gross - LIMIT1 - LIMIT2) * RATE3; printf(\

printf(\ return(0); }

int get_int(void) //得到一个合适的整数,滤除非法数 { int num; char str[40];

while(scanf(\ {

gets(str);

printf(\ }

while ( getchar() != '\\n'); return num; }

9.编写一个程序,接受一个整数输入,然后显示所有小于或等于该数的素数。

#include

int isprime(int);

int main(void) {

int num,i;

printf(\ scanf(\

printf(\ for(i=2;i<=num;i++) if( isprime(i) ) printf(\ printf(\ return(0); }

int isprime(int n) //如果n是素数 返回1,反之 返回0 { int div;

for(div = 2; div * div <= n; div++) if (n % div == 0) return 0;

return 1; }

10. 1988年United States Federal Tax Schedule是近期最基本的。它分为4类,每类有两个等级。下面是其摘要;美元数为应征税的收入。

┏━━━━━━┳━━━━━━━━━━━━━━━━━━┓

┃ 种 类 ┃ 税 金 ┃ ┣━━━━━━╋━━━━━━━━━━━━━━━━━━┫

┃单身 ┃前17·850美元按15%,超出部分按28% ┃ ┣━━━━━━╋━━━━━━━━━━━━━━━━━━┫ ┃户主 ┃前23,900美元按15%,超出部分按28%┃ ┣━━━━━━╋━━━━━━━━━━━━━━━━━━┫

┃已婚,共有 ┃前29,750美元按15%,超出部分按28% ┃ ┣━━━━━━╋━━━━━━━━━━━━━━━━━━┫ ┃已婚,离异 ┃前14,875美元按l5%,超出部分按28% ┃ ┗━━━━━━┻━━━━━━━━━━━━━━━━━━┛

例如,有20 000美元应征税收入的单身雇佣劳动者应缴税金0.15×17 850美元+0.28×(20 000美元-17 850美元)。编写一个程序,让用户指定税金种类和应征税收入,然后计算税金。使用循环以便用户可以多次输入。

#include #define SINGLE 17850 #define HOST 23900

#define MARRIED_SHARE 29750 #define MARRIED_DIVORCE 14875 #define RATE1 0.15 #define RATE2 0.28

int main(void) {

double type,pay,tax; char ch; while(1) {

printf(\

printf(\ while((ch = getchar()) == '\\n') continue; //滤掉回车 switch(ch) {

case '1': type = SINGLE; break; case '2': type = HOST; break;

case '3': type = MARRIED_SHARE; break; case '4': type = MARRIED_DIVORCE; break;

case '5': printf(\退出程序 default : printf(\ }

printf(\ printf(\ scanf(\

if (pay <= type) tax = pay * RATE1;

else tax = type * RATE1 + (pay - type) * RATE2; printf(\ }

C primer plus(第五版)课后编程练习答案(完整) 

6.编写一个程序读取输入,直到#,并报告序列ei出现的次数。此程序必须要记住前一个字符和当前的字符。用诸如“Receiveyoureieioaward.”的输入测试它。#includeintmain(void){charformer=0,p
推荐度:
点击下载文档文档为doc格式
5z8290lv46670et7bbey
领取福利

微信扫码领取福利

微信扫码分享