【C语言学习】《C Primer Plus》第7章 C控制语句:分支与跳转

学习总结

1、if…else…从语义上看就能出用途,跟其他语言没差多少,只需要记住,世界上最遥远的距离之一:我走if你却走else。

2、根据个人几年的编程经验,太多的if…else…嵌套会加大代码的可读性和维护难度。个人认为代码最好不要超过三层if…else…的嵌套,否则最好使用布尔值控制流程。

3、逻辑运算符优先级:!>&&>||

4、运行到continue语句将导致剩余的迭代部分被忽略,开始下一次迭代。continue仅用于循环,而break语句用于循环和switch中。

5、编程题(题1):

 1 #include <stdio.h>
 2
 3 int main(){
 4         int space=0,newline=0,other=0;
 5         char ch;
 6         printf("please enter something:\n");
 7         while((ch=getchar())!=‘#‘){
 8                 if(ch==‘\n‘){
 9                         newline+=1;
10                 }else if(ch==‘ ‘){
11                         space+=1;
12                 }else{
13                         other+=1;
14                 }
15         }
16         printf("space is %d\n",space);
17         printf("newline is %d\n",newline);
18         printf("other is %d\n",other);
19         return 0;
20 }

运行结果:

please enter something:

hello world!

hi nihao.

#ABC

space is 2

newline is 2

other is 19

6、编程题(题11):

 1 #include <stdio.h>
 2 #define ARTICHOKE_UNIT_PRIC 1.25
 3 #define BEET_UNIT_PRICE 0.65
 4 #define CAROTA_UNIT_PRICE 0.89
 5 #define DISCOUNT 0.05
 6 #define T_0_5 3.50
 7 #define T_5_20 10.00
 8 #define T_20_ 0.1
 9
10 int main(){
11         double a,b,c,ap,bp,cp,ac,bc,cc,sc,dc,tc;
12         ap=ARTICHOKE_UNIT_PRIC;
13         bp=BEET_UNIT_PRICE;
14         cp=CAROTA_UNIT_PRICE;
15         printf("how many artichoke you want(pound):");
16         scanf("%lf",&a);
17         if(a==0)return 0;
18
19         printf("how many beet you want(pound):");
20         scanf("%lf",&b);
21         if(b==0)return 0;
22
23         printf("how many carota you want(pound):");
24         scanf("%lf",&c);
25         if(c==0)return 0;
26
27         printf("\n------UNIT PRICE------\n");
28         printf("artichoke‘s unit price is $%.2f(one pound) \n",ap);
29         printf("beet‘s unit price is $%.2f(one pound)\n",bp);
30         printf("carota‘unit price is $%.2f(one pound)\n",cp);
31
32         printf("\n------ORDER------\n");
33         printf("artichoke:%.2fpound\n",a);
34         printf("beet:%.2fpound\n",b);
35         printf("carota:%.2fpound\n",c);
36
37         printf("\nartichoke is $%.2f",a*ap);
38         printf("\nbeet is $%.2f",b*bp);
39         printf("\ncarota is $%.2f\n",c*cp);
40         sc=a*ap+b*bp+c*cp;
41         printf("\ntotal cost is $%.2f",sc);
42         dc=sc>100?sc*DISCOUNT:0;
43         printf("\ndiscount is $%.2f",dc);
44
45         printf("\ntotal weight is %.2f",a+b+c);
46         if(0<(a+b+c)<=5){
47                 tc=T_0_5;
48         }
49         if(5<(a+b+c) && (a+b+c)<=20){
50                 tc=T_5_20;
51         }
52         if((a+b+c)>20){
53                 tc=8+(a+b+c)*0.1;
54         }
55         printf("\nttransport cost is $%.2f",tc);
56         printf("\norder cost is $%.2f\n",sc-dc+tc);
57
58         return 0;
59 }

运行结果:

how many artichoke you want(pound):123

how many beet you want(pound):234

how many carota you want(pound):343

------UNIT PRICE------

artichoke‘s unit price is $1.25(one pound)

beet‘s unit price is $0.65(one pound)

carota‘unit price is $0.89(one pound)

------ORDER------

artichoke:123.00pound

beet:234.00pound

carota:343.00pound

artichoke is $153.75

beet is $152.10

carota is $305.27

total cost is $611.12

discount is $30.56

total weight is 700.00

ttransport cost is $78.00

order cost is $658.56

时间: 2024-12-14 16:46:12

【C语言学习】《C Primer Plus》第7章 C控制语句:分支与跳转的相关文章

C语言学习书籍推荐《C Primer Plus(中文版)(第5版)》下载

普拉塔 (Prata S.) (作者), 云巅工作室 (译者) <C Primer Plus(中文版)(第5版)>共17章,介绍了C语言的基础知识,包括数据类型.格式化输入输出.运算符.表达式.流程控制语句.函数.数组和指针.字符串操作.内存管理.位操作等,知识内容都针对C99标准:另外,<C Primer Plus(中文版)(第5版)>强化了对指针的讨论,并引入了动态内存分配的概念,也讨论了C预处理器和C库函数.高级数据表示(数据结构)方面的内容. 下载地址:点我 编辑推荐 作为

【C语言学习】《C Primer Plus》第1章 概览

学习总结 1.C语言于1972年由贝尔实验室的Dennis Ritchie在与Ken Thompson一起设计UNIX操作系统的时候开发的.的的设计构想来源于Ken Thompson的B语言.Anyway,它70世纪所需产物,存在即合理. 2.因为UNIX&Linux都是基于C语言开发的,所以,C无所不在:游戏.操作系统.计算机语言.嵌入式.应用…… 3.C实现顺序:源码(.c)→编译器→目标代码(.obj)→链接器(代码库+启动代码)→可执行文件(Linux默认是.out文件,win是.exe

关于c语言学习 谭浩强的书

2007-11-16 13:22:58|  分类: PROGRAMME |  标签: |举报 |字号大中小 订阅 广大有志于从事IT行业的同志们,在你们进入这一行之前千万请看这篇文章!太经典了!对你绝对有启发! 千万别买谭浩强和等级考试的书!!!!!! 整理别人的言论,请大家踊跃讨论!!!!!!!!!!!! 1:书皮上面有那么多的牛人题词,估计也许是自己的水平太低. 2:ANSI只给了两种方式:int main(void) {/*...*/}和 int main(int argc, char *

linux 下C语言学习路线

转载:http://blog.csdn.net/xdw1985829/article/details/6817403 UNIX/Linux下C语言的学习路线. 一.工具篇 “公欲善其事,必先利其器”.编程是一门实践性很强的工作,在你以后的学习或工作中,你将常常会与以下工具打交道, 下面列出学习C语言编程常常用到的软件和工具. 1.操作系统     在UNIX或Linux系统中学习C很方便,所以在开始您的学习旅程前请先选择一个UNIX或Linux操作系统,目前可供个人免费使用的UNIX或Linux

C语言学习之路

C语言学习之路之环境准备 Hello,大家好,我的专业是软件工程,自从大一的时候,和很多人一样,在懵懂中学习了C语言~哈,不过呢,这门语言是真的很基础,也很重要!所以呢,如果是想要在IT行业大显身手的话,就必须对这门语言有所了解.那么,开始我们的探索之路吧,GO~ 工欲善其事,必先利其器!要学好这门语言,我们需要几个工具:一,是一本参考书,本人推荐使用<C Primer Plus>这本书,个人觉得这本书写的很好,推荐大家入门使用,还有一本书是<深入理解C指针>:二,是一款好的编译器

大一上学期C语言学习心得总结

经过一个学期的C语言学习,大体算是在这个编程语言上入了门,能够通过一些代码解决特定的问题.当然,每次成功将问题转换成代码都小有激动,虽然只是在黑框上输出了一些数字或是字符串. 编程,虽然还不是很懂,但总感觉不只是学习知识这么简单,更多给我的感受是它在潜移默化中培养了人的一种能力,用自己的话来讲就是一种”代码能力“.对于同一个问题,让大家去解开答案,可能经过一些纸笔的运算都能得出结果,但是如何把这个问题转化成代码,这就是一种能力,而仅仅是将问题转换成代码,这是较为浅层次的能力,更深层的便是通过优化

Perl语言学习笔记 9 正则表达式处理文本

1.替换 s/PATTERN/REPLACE/; #返回是否替换成功的布尔值 可以使用捕获变量,如:s/(\w)/$1/ 匹配失败则不做任何处理 2.定界符 对于没有左右之分的定界符,重复三次即可,如:s///.s### 对于有左右之分的定界符,需使用两对,一对包含模式,一对包含替换字符串,这两对可以不一样,如:s{}{}.s[]{}.s<>[] 3.可选修饰符 /g可进行全局替换,替换所有匹配到的字符串,如:s/ / /g /s:使得 . 匹配所有字符 /i:大小写无关 4.绑定操作符 $f

go语言学习(五)——面向对象编程

主要讲的是"类"和接口&和其他传统语言不一样的地方挺多的,断断续续看了好几天 下面是我的练习代码 // GoStudy0219 project main.go /* go语言学习--面向对象编程(1) go中类型的值语义和引用语义 结构体(类)的定义和初始化 */ package main import ( "fmt" ) func main() { //几种"类"的初始化 v1 := &character{"Tom&q

Perl语言学习笔记 6 哈希

1.哈希的键是唯一的,值可以重复! 2.访问哈希元素 $hashname{"$key"};#哈希为大括号,数组为方括号,键为字符串 $family_name{"fred"} = "firstd";#给哈希元素赋值 3.哈希键支持任意表达式 $foo = "na"; $family_name{$foo."me"};#获取$family_name{"name"}对应的值 4.访问整个哈希 %

JavaScript--基于对象的脚本语言学习笔记(二)

第二部分:DOM编程 1.文档象模型(DOM)提供了访问结构化文档的一种方式,很多语言自己的DOM解析器. DOM解析器就是完成结构化文档和DOM树之间的转换关系. DOM解析器解析结构化文档:将磁盘上的结构化文档转换成内存中的DOM树 从DOM树输出结构化文档:将内存中的DOM树转换成磁盘上的结构化文档 2.DOM模型扩展了HTML元素,为几乎所有的HTML元素都新增了innerHTML属性,该属性代表该元素的"内容",即返回的某个元素的开始标签.结束标签之间的字符串内容(不包含其它