c程序设计案例汇编02_第1页
c程序设计案例汇编02_第2页
c程序设计案例汇编02_第3页
c程序设计案例汇编02_第4页
c程序设计案例汇编02_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C程序设计案例汇编程序设计案例汇编2011.4第二章第二章 初识初识C语言程序设计语言程序设计 学习目标学习目标 通过本章的学习,学会通过本章的学习,学会 (1)在屏幕上输出显示需要的信息;)在屏幕上输出显示需要的信息; (2)给予简单的数据,进行处理,输出结果;)给予简单的数据,进行处理,输出结果;(3)输入输出函数的简单使用。)输入输出函数的简单使用。(4)简单的分支操作。)简单的分支操作。(5)简单的循环操作。)简单的循环操作。C语言程序设计语言程序设计本章内容本章内容21 在标准输出设备上显示在标准输出设备上显示 22 简单数据处理简单数据处理 23 有选择条件的数据处理有选择条件的数

2、据处理 2. 4 有重复操作的数据处理有重复操作的数据处理2.1在标准输出设备(屏幕)上显示在标准输出设备(屏幕)上显示案例案例2-1:一个精典的输出:一个精典的输出 使用使用C语言编写程序,输出语言编写程序,输出“我爱你,中国!我爱你,中国!”。程序运。程序运行结果的输出示例如图行结果的输出示例如图2-1。1案例案例2-1的源程序的源程序 /* 显示显示“我爱你,中国我爱你,中国!” */ /* 注释文本注释文本 */ # include /* 编译预处理命令编译预处理命令 */int main(void) /*主函数主函数main */ printf(我爱你,中国我爱你,中国!n); /*

3、 调用调用printf函数输出文字函数输出文字 */ return 0; /* 返回返回1个整数个整数0 */2归纳分析归纳分析n用用/*和和*/包含或用包含或用/开头的文本部分称为程序注释。开头的文本部分称为程序注释。 n# include 这是一个编译预处理命令,用于包含头文件这是一个编译预处理命令,用于包含头文件stdio.h(即(即标准输入输出函数的头文件)。在源程序中调用的标准输入输出函数的头文件)。在源程序中调用的printf( )函数是函数是C语言库函数,在系统头文件语言库函数,在系统头文件stdio.h中声明,因此中声明,因此在源程序开头用在源程序开头用#include把它包含

4、进来。把它包含进来。nmain( )函数是函数是C语言的主函数,每个语言的主函数,每个C语言程序都是从语言程序都是从main( )开始执行的,它是启动函数的入口,必须有且只开始执行的,它是启动函数的入口,必须有且只有一个有一个main( )函数。函数。 n“n”是转义字符,表示换行。是转义字符,表示换行。n说明:双引号、分号必须使用半角状态下的符号说明:双引号、分号必须使用半角状态下的符号案例案例2-2:控制输出内容使其显示在不同的行。:控制输出内容使其显示在不同的行。 在屏幕上输出两句话在屏幕上输出两句话“刚刚开始学习刚刚开始学习C语语言言”,“不要着急!不要着急!”。每句显示在不同的行上。

5、每句显示在不同的行上。程序运行结果的输出示例如图程序运行结果的输出示例如图2-2。1案例案例2-2的源程序的源程序/* 输出显示在不同行上输出显示在不同行上 ,版本,版本1*/ # include int main(void) /*主函数主函数main */ printf(刚刚开始学习刚刚开始学习C语言语言!n不要着急不要着急!n); /*调用函数输出文字调用函数输出文字 */ return 0; /* 返回返回1个整数个整数0 */2归纳分析归纳分析 nprintf( )函数调用中按原样输出的字符串部分,在两句话中间增加换函数调用中按原样输出的字符串部分,在两句话中间增加换行符,此处用转义字

6、符行符,此处用转义字符“n”来实现。来实现。 n也可以用两个函数调用语句来完成此功能。也可以用两个函数调用语句来完成此功能。 /* 输出显示在不同行上输出显示在不同行上 ,版本,版本2*/ # include int main(void) printf(刚刚开始学习刚刚开始学习C语言语言!n ); /*调用函数输出文字调用函数输出文字 */ printf(不要着急不要着急!n); return 0; /* 返回返回1个整数个整数0 */ n转义字符转义字符“n”在在printf( )中起到了控制输出显示内容在不同行上的功中起到了控制输出显示内容在不同行上的功能,它使得光标移到下一行的开始位置,

7、如果连续使用,就可以得到能,它使得光标移到下一行的开始位置,如果连续使用,就可以得到空行的显示效果。空行的显示效果。 22 简单数据处理简单数据处理 案例案例2-3:计算实际销售价格。:计算实际销售价格。 某百货商场让利促销,某品牌的衣服打折销售,每件某百货商场让利促销,某品牌的衣服打折销售,每件衣服原价为衣服原价为358元,每件衣服的现售价格为原价的元,每件衣服的现售价格为原价的5/8折,折,即:即: 其中,其中,price为现价,为现价,old_price为原价。编写程序,计算为原价。编写程序,计算衣服的实际销售价格,结果精确到元。运行结果示例如图衣服的实际销售价格,结果精确到元。运行结果

8、示例如图2-3。priceoldprice_851案例案例2-3的源程序的源程序/* 计算现价计算现价 */#include int main(void) int price, old_price; /* 定义定义2个整型变量,个整型变量,price表示现价,表示现价,old_price表示原价表示原价 */ /* 空行,用于分隔变量定义和可执行语句空行,用于分隔变量定义和可执行语句 */ old_price = 358; /* 对变量对变量old_price 赋值赋值 */ price = 5 * old_price/ 8; /* 计算衣服的现价计算衣服的现价 */ printf(原价原价

9、= %d元元, 现价现价 = %d元元n, old_price, price); /* 输出结果输出结果 */ return 0;2归纳分析归纳分析nint price, old_price; 定义了两个整型变量定义了两个整型变量price和和old_price,分别表示衣服的现价和原价。,分别表示衣服的现价和原价。在在C语言中对变量一定要依照语言中对变量一定要依照“先定义后使用先定义后使用”的原则,在定义时确的原则,在定义时确定其数据类型。定其数据类型。 nC语言中在函数外面定义的全局变量或在函数内定义的静态局部变量,语言中在函数外面定义的全局变量或在函数内定义的静态局部变量,它们存放在程序

10、的静态数据区。它们存放在程序的静态数据区。C语言中在函数内定义的自动变量即语言中在函数内定义的自动变量即局部变量存放在程序的动态数据区,它们的有效范围只局限于所在的局部变量存放在程序的动态数据区,它们的有效范围只局限于所在的函数内部。函数内部。 nold_price = 358; price = 5 * old_price/ 8; 上述两个语句均为赋值语句上述两个语句均为赋值语句 ,把值赋给赋值号,把值赋给赋值号“=”的左边的变量中。的左边的变量中。n函数函数printf( )的一般格式为的一般格式为printf(格式控制字符串,输出参数格式控制字符串,输出参数1,输出,输出参数参数2,, 输

11、出参数输出参数n),其中,格式控制字符串用双引号括起来,双,其中,格式控制字符串用双引号括起来,双引号中包括两部分:格式控制说明和普通字符。普通字符按原样输出;引号中包括两部分:格式控制说明和普通字符。普通字符按原样输出;格式控制说明则对输出数据指定具体输出格式,本案例中格式控制说明则对输出数据指定具体输出格式,本案例中%d为输出为输出整型数据,类似地,还有整型数据,类似地,还有%f输出输出float和和double型数据,型数据,%c输出字符输出字符型数据,等等,输出参数序列的次序与在双引号里的格式控制说明要型数据,等等,输出参数序列的次序与在双引号里的格式控制说明要一致,即输出参数的类型、

12、个数和位置要一一对应。一致,即输出参数的类型、个数和位置要一一对应。案例案例2-4:计算顾客的消费金额。:计算顾客的消费金额。 某百货商场让利促销,某品牌的衣服打折销售,每件某百货商场让利促销,某品牌的衣服打折销售,每件衣服的现售价格为原价的衣服的现售价格为原价的5/8折,输入两件衣服原价,计折,输入两件衣服原价,计算这两件衣服共需要花费的总金额。即:算这两件衣服共需要花费的总金额。即: 其中,其中,consume为消费金额,为消费金额,old_price1和和old_price2分别为两件衣服的原价。编写程序,计算顾客的消费金额,分别为两件衣服的原价。编写程序,计算顾客的消费金额,结果保留两

13、位小数。运行结果示例如图结果保留两位小数。运行结果示例如图2-4。 )2_1_(85priceoldpriceoldconsume1案例案例2-4的源程序的源程序/* 计算顾客的消费金额计算顾客的消费金额 */#include int main(void) /* 定义定义3个双精度变量,个双精度变量,consume表示消费金额,表示消费金额,old_price1,old_price2表示原价表示原价 */ double consume, old_price1,old_price2; /* 空行,用于分隔变量定义和可执行语句空行,用于分隔变量定义和可执行语句 */ printf(请输入两件衣服的

14、原价:请输入两件衣服的原价:n); /输入提示输入提示 scanf(%lf%lf,&old_price1,&old_price2);/* 对变量对变量old_price1和和old_price2 赋值赋值 */ consume = (double)5/8 * (old_price1+old_price2); /* 计算顾客的消费金额计算顾客的消费金额 */ printf(第一件衣服原价第一件衣服原价: %.2f元元n第二件衣服原价第二件衣服原价:%.2f元元n,old_price1, old_price2); printf(n您的消费金额为:您的消费金额为:%.2f元元n,co

15、nsume); return 0;2归纳分析归纳分析n基本数据类型包括整型(表示为基本数据类型包括整型(表示为int)、字符型(表示为)、字符型(表示为char)、实)、实型(表示为单精度型(表示为单精度float、双精度、双精度double)、枚举类型(表示为)、枚举类型(表示为enum)。构造类型包括数组、结构体和共同体。)。构造类型包括数组、结构体和共同体。 n函数函数scanf( )通过键盘输入数据通过键盘输入数据 ,和,和printf( )都是输入输出库函数中都是输入输出库函数中的函数,在系统文件的函数,在系统文件stdio.h中声明。该函数的格式与中声明。该函数的格式与printf

16、( )类似:类似:scanf(格式控制字符串,输入参数格式控制字符串,输入参数1,.,输入参数,输入参数n),其中,格式,其中,格式控制字符串表示输入的格式,输入参数是变量的地址(需要在变量名控制字符串表示输入的格式,输入参数是变量的地址(需要在变量名前加上前加上&)。格式控制字符串与)。格式控制字符串与printf( )一样,包括两部分内容:格一样,包括两部分内容:格式控制说明和普通字符。普通字符在输入时要原样输入的字符,为了式控制说明和普通字符。普通字符在输入时要原样输入的字符,为了减少不必要的输入,输入时尽量不要出现普通字符的原样输入,如果减少不必要的输入,输入时尽量不要出现普通

17、字符的原样输入,如果意图要作为提示的话,尽量依照本案例的方式,在意图要作为提示的话,尽量依照本案例的方式,在scanf( )语句前增语句前增加一个函数加一个函数printf( )语句作为提示之用。语句作为提示之用。 n强制类型转换即在要进行转换的数据(或表达式)前用括号里表示其强制类型转换即在要进行转换的数据(或表达式)前用括号里表示其要转换的类型关键字,这样就使该数据或表达式拥有了指定的数据类要转换的类型关键字,这样就使该数据或表达式拥有了指定的数据类型参与运算,而此转换只是这次运算的临时行为,对数据定义时的类型参与运算,而此转换只是这次运算的临时行为,对数据定义时的类型并没有改变。型并没有

18、改变。 n%.2f表示对表示对double型数据输出时保留两位小数。型数据输出时保留两位小数。 案例案例2-5:字符和字符串的输出。:字符和字符串的输出。 从键盘输入车牌号,以字符接收,再从键盘输入车牌号,以字符接收,再输出它们。运行结果示例如图输出它们。运行结果示例如图2-5。1案例案例2-5的源程序的源程序/* 从键盘输入车牌号,再输出它们。从键盘输入车牌号,再输出它们。 */#include int main(void) char c1,c2,c3,c4,c5,c6; /* 定义定义6个字符型变量,接收六位车牌号个字符型变量,接收六位车牌号 */ printf(请输入车牌号请输入车牌号(

19、后六位后六位):n); /输入提示输入提示 scanf(%c%c%c%c%c%c,&c1,&c2,&c3,&c4,&c5,&c6); /* 键盘输入六位号键盘输入六位号 */ printf(%s %c%c%c%c%c%cn,车牌号为:京车牌号为:京,c1,c2,c3,c4,c5,c6); return 0;2归纳分析归纳分析 n字符类型的格式说明符为字符类型的格式说明符为“%c”。字符常量是用。字符常量是用单引号括起来的单个字符单引号括起来的单个字符 。n字符串常量是由一对双引号括起来的字符序列组字符串常量是由一对双引号括起来的字符序列组成成 。

20、n字符常量只占一个字节的内存单元,而字符串常字符常量只占一个字节的内存单元,而字符串常量占的内存字节数等于字符串中字符个数加量占的内存字节数等于字符串中字符个数加1,增加的一个字节中存放字符串的结束标志增加的一个字节中存放字符串的结束标志“0” 。n格式控制说明符格式控制说明符“%s”表示输出一个字符串。表示输出一个字符串。 案例案例2-6:把大写字母转换为小写字母输出。:把大写字母转换为小写字母输出。 通过键盘输入一个大写字母,把其转换为通过键盘输入一个大写字母,把其转换为小写字母后输出。运行结果示例如图小写字母后输出。运行结果示例如图2-6。1案例案例2-6的源程序的源程序/* 大写字母转

21、换为小写字母。大写字母转换为小写字母。 */#include int main(void) /* 定义字符型变量,定义字符型变量,lower_letter表示小写字母,表示小写字母,upper_letter表示大写字母表示大写字母 */ char lower_letter,upper_letter; /* 空行,用于分隔变量定义和可执行语句空行,用于分隔变量定义和可执行语句 */ printf(请输入一个大写字母:请输入一个大写字母:n); /输入提示输入提示 upper_letter=getchar(); /* 调用函数调用函数getchar()从键盘接收一个字符从键盘接收一个字符*/ lo

22、wer_letter=upper_letter-A+a; /*把大写字母转换为小写字母把大写字母转换为小写字母*/* 调用调用printf函数输出结果函数输出结果 */ printf(大写字母:大写字母:%c 转换为小写字母:转换为小写字母:%cn,upper_letter,lower_letter); return 0;2归纳分析归纳分析n函数函数getchar()和和putchar()也是输入输出函数,也是输入输出函数,使用它们时需要在程序的开头给出编译预处理命使用它们时需要在程序的开头给出编译预处理命令令#include。函数。函数getchar()的功能是的功能是从键盘上输入一个字符,

23、由它接收。从键盘上输入一个字符,由它接收。n无论是大写字母还是小写字母以及数字字符,在无论是大写字母还是小写字母以及数字字符,在ASCII码中它们是以相邻次序排列的码中它们是以相邻次序排列的 。 lower_letter=upper_letter-A+a ; upper_letter =lower_letter -a+A;23 有选择条件的数据处理有选择条件的数据处理 案例案例2-7:给苹果箱贴标签:给苹果箱贴标签。 苹果园中的苹果按等级装箱,若苹果的重量大于等苹果园中的苹果按等级装箱,若苹果的重量大于等于于1.5斤放入特级箱,每公斤价格为斤放入特级箱,每公斤价格为5.8元;否则放入普通元;否

24、则放入普通箱,每公斤价格为箱,每公斤价格为3.5元。编写程序,从每箱抽样,根据元。编写程序,从每箱抽样,根据苹果等级给苹果箱帖上价格标签。运行结果示例如图苹果等级给苹果箱帖上价格标签。运行结果示例如图2-7。 1案例案例2-7的源程序的源程序/* 苹果箱贴标签苹果箱贴标签*/# include int main(void) double apple, price; /* 定义定义2个双精度浮点型变量个双精度浮点型变量 */ printf(请输入苹果的重量请输入苹果的重量:n); /* 输入提示输入提示 */ scanf(%lf, &apple); /*调用调用scanf函数输入数据,函

25、数输入数据,%lf中的中的l是是long的首字母的首字母*/ /* ifelse语句语句 */ if (apple= 1.5) price = 3.5; printf(此箱每个苹果重量小于此箱每个苹果重量小于%.1f斤斤n , apple ); else price = 5.8; printf(此箱每个苹果重量大于等于此箱每个苹果重量大于等于%.1f斤斤n , apple); printf(每公斤每公斤 %.2f元元n, price); /* 调用调用printf函数输出结果函数输出结果 */ return 0;2归纳分析归纳分析nIf-else语句,语句, 如果括号中的条件表达式如果括号中的

26、条件表达式apple=1.5为真,则执行其后的为真,则执行其后的语句语句;如果括号中的条件表达式如果括号中的条件表达式apple=1.5为假,则执行为假,则执行else后的语句后的语句 : if (apple= 1.5) price = 3.5; printf(此箱每个苹果重量小于此箱每个苹果重量小于%.1f斤斤n , apple ); else price = 5.8; printf(此箱每个苹果重量大于等于此箱每个苹果重量大于等于%.1f斤斤n , apple); n由于特级苹果是少数,因此把它的处理放到由于特级苹果是少数,因此把它的处理放到else分支(条件表达式为假),分支(条件表达式

27、为假),而普通级苹果较多,因此放在而普通级苹果较多,因此放在if分支(条件表达式为真)处理分支(条件表达式为真)处理。 n选择结构有三种基本形式:选择结构有三种基本形式:if结构(单选择)、结构(单选择)、if-else结构结构(双分支选择双分支选择)和和switch(多重选择多重选择) 。案例案例2-8:谁是优胜者。:谁是优胜者。 在运动会的立定跳远比赛中,还有两名运动员甲和乙在运动会的立定跳远比赛中,还有两名运动员甲和乙在角逐。根据两个人的最后成绩决定谁是冠军,假设两个在角逐。根据两个人的最后成绩决定谁是冠军,假设两个人的成绩不同,请输出冠军的成绩。成绩保留两位小数,人的成绩不同,请输出冠

28、军的成绩。成绩保留两位小数,单位为米。运行结果示例如图单位为米。运行结果示例如图2-8。1案例案例2-8的源程序的源程序/* 输出冠军成绩输出冠军成绩 */#include int main(void) /* 定义定义distance_1,distance_2分别表示两名运动员的成绩,分别表示两名运动员的成绩,max表示冠军成表示冠军成绩绩 */ double distance_1,distance_2; double max; /* 空行,用于分隔变量定义和可执行语句空行,用于分隔变量定义和可执行语句 */ printf(请输入两名运动员的成绩:请输入两名运动员的成绩:n); /输入提示输入

29、提示 scanf(%lf%lf,&distance_1,&distance_2); /* 调用调用scanf()从键盘接收两个从键盘接收两个成绩成绩 */ max=(distance_1distance_2)?distance_1:distance_2; /*使用条件运算符把两个成绩中的大者赋给使用条件运算符把两个成绩中的大者赋给max*/ printf(冠军的成绩为:冠军的成绩为:%.2f 米米n,max); /* 调用调用printf函数输出结果函数输出结果 */ return 0;2归纳分析归纳分析 条件运算符为三目运算符条件运算符为三目运算符“?:?:”,这是,这是C语

30、句中唯一的语句中唯一的三目运算符。其格式如下:三目运算符。其格式如下: 表达式表达式1?表达式?表达式2:表达式:表达式3 条件运算符的运算过程是:若表达式条件运算符的运算过程是:若表达式1(判断条件)的结(判断条件)的结果为真,则运算的结果是表达式果为真,则运算的结果是表达式2的值;若表达式的值;若表达式1的结果的结果为假,则运算的结果为表达式为假,则运算的结果为表达式3的值。的值。表达式表达式1 1条件表达式条件表达式取表达式取表达式2 2的值的值条件表达式条件表达式取表达式取表达式3 3的值的值YN24 有重复操作的数据处理有重复操作的数据处理 n案例案例2-9:统计调查参赛人员的平均年

31、龄:统计调查参赛人员的平均年龄。 某模特大赛共有某模特大赛共有10人进入决赛,统计参赛人员的人进入决赛,统计参赛人员的平均年龄。运行结果示例如图平均年龄。运行结果示例如图2-10。 1案例案例2-9的源程序的源程序/*统计参赛人员的平均年龄统计参赛人员的平均年龄 */#include int main(void) int i, age,sum,aver_age; sum = 0; /* 置累加和置累加和sum的初值为的初值为0 */ for (i = 1; i = 10; i+) /* 循环执行循环执行10次次 */ printf(请输入第请输入第 %d 个人的年龄:个人的年龄:,i); /输

32、入提示输入提示 scanf(%d,&age); /*输入一个人的年龄输入一个人的年龄*/ sum = sum + age; /* 反复累加年龄的值反复累加年龄的值 */ aver_age=sum/10; /求平均年龄求平均年龄 printf(10名参赛人员的平均年龄为:名参赛人员的平均年龄为: %d n, aver_age); /* 输出平均年龄输出平均年龄 */ return 0;2 归纳分析归纳分析for语句的一般形式为:语句的一般形式为: for(表达式表达式1; 表达式表达式2 ;表达式;表达式3) 循环体语句;循环体语句;for语句的功能是:首先计算表达式语句的功能是:首先计

33、算表达式1;然后把表达;然后把表达式式2作为条件进行判断,若其值为真,则执行循作为条件进行判断,若其值为真,则执行循环语句,接着计算表达式环语句,接着计算表达式3,然后继续循环;若,然后继续循环;若其值为假,则结束循环,执行其值为假,则结束循环,执行for语句的下一条语语句的下一条语句。句。for语句的循环体语句如果超过一条,则需要语句的循环体语句如果超过一条,则需要用花括号把它们括起来形成复合语句。用花括号把它们括起来形成复合语句。说明:说明:n赋值语句赋值语句sum = sum + age;中赋值号中赋值号“=”右侧的右侧的表达式中的表达式中的sum与左侧的变量与左侧的变量sum意义是不同

34、的,意义是不同的,右侧的右侧的sum是取其值与是取其值与age求和运算,运算的结求和运算,运算的结果(和)再赋给变量果(和)再赋给变量sum,这时,这时sum里有了新值,里有了新值,在循环体中反复这样做,就使得变量在循环体中反复这样做,就使得变量sum里存放里存放了多次累加的和,因此称了多次累加的和,因此称sum为累加器。为累加器。n自增或自减运算符是单目运算符,其操作对象必自增或自减运算符是单目运算符,其操作对象必须是变量,不能是常量或表达式。须是变量,不能是常量或表达式。+i(或(或-i) 的运算规则:先执行的运算规则:先执行i=i+1(或或i=i-1),再将,再将i的值作为表达式的值作为表达式+i(或或-i)的值。的值。i+(或(或i-)的运算规则:先将)的运算规则:先将i的值作为表达式的值作为表达式i+(或(或i-)的值,再执行)的值,再执行i=i+1。案例案例2-10:超市收银台的收款程序。:超市收银台的收款程序。 某小超市的收银台要求对每位顾客购买的商品进行验收,某小超市的收银台要求对每位顾客购买的商品进行验收,同时计算出顾客的消费金额。编写程序,完成对每个商品同时计算出顾客的消费金额。编写程序,完成对每个商品价格的输入,输入完成时输入价格的输入,输入完成时输入-1,计算该顾客的消费总金

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论