77范文网 - 专业文章范例文档资料分享平台

C_primer_plus(第五版)(完整)(8)

来源:网络收集 时间:2018-12-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

printf(\ } }

11. ABC Mail Order Grocery朝鲜蓟的售价是1.25美元/磅,甜菜的售价是0.65美元/磅,胡萝卜的售价是0.89美元/磅。在添加运输费用之前,他们为100美元的订单提供5%的打折优惠。对5磅或以下的定单收取3.50美元的运输和装卸费用;超过5磅而不足20磅的定单收取1O.OO美元的运输和装卸费用:加磅或以上的运输,在8美元基础上每磅加收0.1美元。编写程序,在循环中使用switch语句,以便对输入a的响应是让用户输入所需的朝鲜蓟磅数,b为甜菜的磅数,c为胡萝卜的磅数,而q允许用户退出订购过程。然后程序计算总费用、折扣和运输费用(如果有运输费的话),以及总数。随后程序应该显示所有的购买信息:每磅的费用、订购的磅数、该订单每种蔬菜的费用、订单的总费用、折扣,如果有的话加上运输费用,以及所有费用的总数。

#include

#include //需要调用tolower函数

#define ARTICHOKE 1.25 //单价 #define BEET 0.65 #define CARROT 0.89 #define DISCOUNT_LIMIT 100 #define DISCOUNT_RATE 0.05 #define FREIGHT_FEE1 3.50 #define FREIGHT_LIMIT1 5 #define FREIGHT_FEE2 10.00 #define FREIGHT_LIMIT2 20 #define FREIGHT_FEE3 8 #define FREIGHT_RATE 0.1

int main(void) { char ch;

double artichoke=0,beet=0,carrot=0; //磅数 double sum,discount,freight;

printf(\ printf(\ printf(\ printf(\ printf(\

printf(\

while( ( ch = tolower( getchar() ) ) != 'q') //tolower:大写转小写

{

switch(ch) {

case 'a': printf(\ scanf(\

printf(\ continue;

case 'b': printf(\ scanf(\

printf(\ continue;

case 'c': printf(\ scanf(\

printf(\ continue; default: break; } }

printf(\ printf(\ printf(\

printf(\carrot);

sum = ARTICHOKE * artichoke + BEET * beet + CARROT * carrot; if (sum > DISCOUNT_LIMIT) discount = sum*DISCOUNT_RATE; else discount = 0;

printf(\

if (artichoke + beet + carrot <= 5) freight = 3.50; else if (artichoke + beet + carrot <20) freight = 10; else freight = 8 + (artichoke + beet + carrot) * 0.1; printf(\ sum = sum - discount + freight; printf(\ return 0; }

第8章 字符输入/输出和输入确认 编程练习

下面的一些程序要求输入以EOF终止。如果您的操作系统难以使用或不能使用重定向,则使用一些其他的判断来终止输入,例如读取&字符。

1.设计一个程序,统计从输入到文件结尾为止的字符数。

#include

int main(void) { int i;

for(i=0; getchar() != EOF; i++); printf(\ return 0; }

2.编写一个程序,把输入作为字符流读取,直到遇到EOF。令该程序打印每个输入字符及其ASCII编码的十进制值。注意在ASCII序列中空格字符前面的字符是非打印字符,要特殊处理这些字符。如果非打印字符是换行符或制表符,则分期打印\\n或\\t。否则,使用控制字符符号。例如,ASCII的l是Ctrl+A,可以显示为AA。注意A的ASCⅡ值是Ctrl+A的值加64。对其他非打印字符也保持相似的关系。除去每次遇到一个换行符时就开始一个新行之外,每行打印10对值。

#include

int main(void) {

char ch; int i;

for(i=1; (ch=getchar()) != EOF; i++) {

if (ch >= ' ' || ch == '\\n' || ch == '\\t') printf(\ else printf(\ printf(\

if(i%8 == 0) printf(\ }

return 0; }

3.编写一个程序,把输入作为字符流读取,直至遇到EOF。令其报告输入中的大写字母个数和小写字母个数。假设小写字母的数值是连续的,大写字母也是如此。或者你可以使用ctypc,h库中的合适的函数来区分大小写。

#include #include

int main(void) { char ch;

int lower=0,upper=0;

while ( (ch=getchar()) != EOF ) {

if ( islower(ch) ) lower++; if ( isupper(ch) ) upper++; }

printf(\

return 0; }

4.编写一个程序,把输入作为字符流读取,直至遇到EOF。令其报告每个单词的平均字母数。不要将空白字符记为单词中的字母。实际上,标点符号也不应该计算,但现在不必考虑这一点(如果您想做得好一些,可以考虑使用ctype.h系列中的ispunct()函数)。

#include #include

int main(void) {

int num=0; char ch; bool word=0;

while ( (ch=getchar()) != EOF ) {

if ( isalpha(ch) && !word ) {

word = 1; num++; }

if ( !isalpha(ch) ) {

word = 0; } }

printf(\

return 0; }

5,修改程序清单8,4中的猜测程序,使其使用更智能的猜测策略。例如,程序最初猜50,让其询问用户该猜测值是大、小还是正确。如果该猜测值小,则令下一次猜测值为50和100的中值,也就是75。如果75大,则下一次猜测值为75和50的中值,等等。使用这种二分搜索(binary search)策略,起码如果用户没有欺骗,该程序很快会获得正确答案。

#include

int main(void) {

int guess, max = 100, min = 1; char response;

printf(\ printf(\ printf(\

printf(\

printf(\

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C_primer_plus(第五版)(完整)(8)在线全文阅读。

C_primer_plus(第五版)(完整)(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/381433.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: