《《C语言编程实践课程介绍》.ppt》由会员分享,可在线阅读,更多相关《《C语言编程实践课程介绍》.ppt(62页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言编程实践语言编程实践孙风栋孙风栋联系方式:联系方式:办公室办公室A3117Email:电话:电话:8483227201 主要内容主要内容课程体系介绍课程体系介绍测试测试基本语法回顾基本语法回顾基础语法练习基础语法练习布置大案例布置大案例v第一部分:第一部分:课程体系介绍课程体系介绍C语言言编程程实践践数据结构数据结构C语言语言文化基础文化基础C基基础编程程60%数数据据结构构25%文化文化基基础15%100%三部分比例分配三部分比例分配三部分比例分配三部分比例分配C编程实践编程实践72学时授课内容安排学时授课内容安排文化文化基础基础数据数据结构结构C语言语言3:小案例(:小案例(200个
2、),任选个),任选=60个个大案例(大案例(8个),任选个),任选=1个个1:为每名学生指定:为每名学生指定1份无格份无格式的论文,指导学生完成排式的论文,指导学生完成排版版(1万字以上)万字以上)+2个个Excel案例案例+大案例的设计文档大案例的设计文档+答答辩辩PPT2:选择排序、冒泡排序、插入:选择排序、冒泡排序、插入排序、快速排序、堆排序、队列、排序、快速排序、堆排序、队列、堆栈、链表、顺序表查找、二分堆栈、链表、顺序表查找、二分法查找、图的深度优先搜索。法查找、图的深度优先搜索。8学时学时20学时学时52学时学时成果物提交成果物提交 1份排好版的论文(份排好版的论文(1万字以上),
3、按照大万字以上),按照大连东软信息学院毕业论文格式要求连东软信息学院毕业论文格式要求+Excel文档文档1:文化基础部分文化基础部分将所有将所有C编程实践期间实现的代码(小案例编程实践期间实现的代码(小案例+大案例)汇总到大案例)汇总到1个项目中,个项目中,详见示例详见示例。并且至少提交并且至少提交1个大案例的个大案例的设计文档设计文档。2:代码:代码+设计文档设计文档3:答辩:答辩PPT4.系统测试系统测试1.需求分析需求分析2.系统设计系统设计3.系统编码系统编码5.初步培养学生的软件工程思想,能够完成项目的需求分析、系统设计、系初步培养学生的软件工程思想,能够完成项目的需求分析、系统设计
4、、系统编码、系统测试等各阶段的工作,从而熟悉项目开发流程,充分锻炼团队统编码、系统测试等各阶段的工作,从而熟悉项目开发流程,充分锻炼团队开发的协作能力,积累真实的项目开发经验,拉近与企业用人需求的距离。开发的协作能力,积累真实的项目开发经验,拉近与企业用人需求的距离。培养软件工程思想培养软件工程思想大案例文档编写要求大案例文档编写要求排版的论文、排版的论文、excel案例:案例:20分分小案例小案例实现:20分分数数据据结构构部分部分实现:20分分大案例大案例实现:20分分文化基文化基础大案例大案例小案例小案例数数据据结构构共共100分分考核方式考核方式答辩:答辩:20分分分级分级vA级:级:
5、0最后分数最后分数100;提交代码数量多、质量高。提交代码数量多、质量高。vB级:级:0最后分数最后分数New-”workspace”,输入工作区名字输入工作区名字n创建新工程创建新工程nFile-New-”Projects-Win 32 Console”Application,输入项目名字,并加入到工作区中输入项目名字,并加入到工作区中n创建创建C语言源文件语言源文件nFile-New-Files-”C+Source File”,输入输入文件名文件名(一定要加后缀一定要加后缀.c),并加入到项目中,并加入到项目中C语言的基本结构s程序一程序一/*the first program*/*the
6、 first program*/main()main()printf(printf(“welcomewelcome”););C语言的基本结构s程序程序二二/*another program*/*another program*/main()main()int a,b,m;int a,b,m;scanf(scanf(“%d%d%d%d”,&a,&b);,&a,&b);m=m=max(a,b);max(a,b);printf(printf(“较大数是:较大数是:%dn%dn”,m);,m);int max(int x,int y)int max(int x,int y)int r;int r;if
7、(x y)r=x;if(x y)r=x;else r=y;else r=y;return r;return r;C数据类型基本类型构造类型指针类型空类型void定义类型typedef数值类型字符类型char枚举类型enum整 型浮点型单精度型float双精度型double短整型short长整型long整型int数组结构体struct共用体unionC语言的数据类型语言的数据类型运算符和表达式C运运算算符符算术运算符:(算术运算符:(+-*/%+-+-*/%+-)关系运算符:(关系运算符:(=!=!=)逻辑运算符:(!逻辑运算符:(!&|&|)位运算符位运算符 :(:(|&|&)赋值运算符:(赋
8、值运算符:(=及其扩展)及其扩展)条件运算符:(条件运算符:(?:?:)逗号运算符:(逗号运算符:(,)指针运算符:(指针运算符:(*&)求字节数求字节数 :(:(sizeofsizeof)强制类型转换:(类型)强制类型转换:(类型)分量运算符:(分量运算符:(.-.-)下标运算符:(下标运算符:()其它其它 :(:(()-()-)C语言中的输入输出格式输出函数格式输出函数-printf格式:printf(“格式控制串”,输出列表)数据类型数据类型关键字关键字修饰符修饰符输出示例输出示例整型整型int%dprintf(“%d”,a);printf(“%d%d%d”,x,y,z);双精度浮点型双
9、精度浮点型double%lfprintf(“%lf”,m);printf(“%lf%lf”),cm,cn);字符型字符型char%cprintf(“%c”,ch);printf(“%c%c%c%c”,c1,c2,c3,c4);长整型长整型long%ldprintf(“%ld”,b);printf(“%ld%ld”,d1,k2);单精度浮点型单精度浮点型float%fprintf(“%f”,f1);printf(“%f%f%f”,f1,f2,f3);不同数据类型变量的混合输出不同数据类型变量的混合输出printf(“%f%c%d%ld%lf”,f3,ch,x,k2,m);格式输出函数格式输出函数
10、-printf格式:printf(“格式控制串”,输出列表)printf(“两个数为:两个数为:%d和和%dn”,a,b);例:设例:设a,b,c变量的值均已赋好,变量的值均已赋好,a=5,b=7,c=7要求屏幕要求屏幕 输出输出“三个数为:三个数为:5,7和和7,较大的为:,较大的为:7”。#includemain()inta,b,c;a=5;b=7;c=7;printf(“三个数为:三个数为:%d,%d和和%d,较大的为:,较大的为:%dn,a,b,c,c);练习:将上题练习:将上题a,b,c变成变成float类型类型变量应该如何修改?变量应该如何修改?格式格式:scanf(:scanf(
11、“格式控制串格式控制串”,地址表),地址表)格式输入函数格式输入函数-scanf地址表:地址表:变量的地址,常用取地址运算符变量的地址,常用取地址运算符&格式修饰符:同格式修饰符:同printf函数的完全一致函数的完全一致scanf(“%d%d”,&a,&b);例:已知三个例:已知三个int类型变量类型变量a,b,c,从键盘输入它们的,从键盘输入它们的值分别为值分别为3,4,5,并且输出。,并且输出。#includemain()inta,b,c;printf(请输入三个变量的值:请输入三个变量的值:n);scanf(%d%d%d,&a,&b,&c);printf(“三个数为:三个数为:%d,%
12、d和和%d,较大的为:,较大的为:%dn,a,b,c,c);练习:将上题练习:将上题a变成变成float类型类型,b,c变成变成char类型变量应该如何修改?类型变量应该如何修改?if 语句If语句的三种形式语句的三种形式v(1)if(表达式)(表达式)语句语句v(2)if(表达式)(表达式)语句语句1else语句语句2v(3)if-else if-else形式 if(表达式表达式1)语句语句1 else if(表达式表达式2)语句语句2 else if(表达式表达式m)语句语句m else 语句语句nif-else if-else 形式流程图else if语句结构流程图switch 语句sw
13、itch语句是实现多个分支的选择语句语句是实现多个分支的选择语句switch (switch (表达式表达式)case case 常量表达式常量表达式 1 1:语句:语句1 1 case case 常量表达式常量表达式 2 2:语句:语句2 2 case case 常量表达式常量表达式 n n:语句:语句n n default default :语句:语句n+1n+1 vswitch语句的执行语句的执行入口:入口:如果表达式的值与某一个如果表达式的值与某一个case后边的常量表达式相等,后边的常量表达式相等,就从这个就从这个case开始,依次执行其后边的每条语句开始,依次执行其后边的每条语句如
14、果所有的如果所有的case语句都不匹配时,就从语句都不匹配时,就从default开始,开始,依次执行依次执行default后边的每条语句后边的每条语句出口出口如执行到如执行到break语句,跳出整个语句,跳出整个switch语句语句如没有遇到如没有遇到break语句,则整个语句,则整个switch的语句执行完毕的语句执行完毕后跳出后跳出switch语句语句switch 语句语句main()inti=2;switch(i)case0:printf(i=0);break;case1:printf(i=1);break;case2:printf(i=2);break;case3:printf(i=3
15、);break;default:printf(default);结果:结果:i=2switch 语句语句-例题例题while语句语句whilewhile语句语句while(表达式表达式e1)语句语句s1;s1;e1 真真假假例题例题:求求s=1+2+3+10;s=s+ii=i+1s=0,i=1输出s当当i=10时,循环时,循环执行这两执行这两条语句条语句 i=10s=s+i;i=i+1;解决该问题的解决该问题的N-S图图 定义变量定义变量i,s;i=1,s=0;输出输出s的值的值 例题例题:求求s=1+2+3+10;#include void sumFromOneToTen()int i,s;
16、/定义循环变量定义循环变量i和累加变量和累加变量si=1;/循环变量赋初始值循环变量赋初始值s=0;/累加变量根据实际赋初始值累加变量根据实际赋初始值while(i=10)/i从从1变到变到10(即当即当i=10都需要循环都需要循环)s+=i;/累加累加i+;/循环变量改变值循环变量改变值printf(“s=%d”,s);循环结构的三个要素:循环结构的三个要素:1、循环条件:循环条件:循环结构中的条件表达式如循环结构中的条件表达式如while(i=10)其中,其中,i=10就是循环条件。就是循环条件。2、循环体循环体:在每个循环周期均要执行一次的语:在每个循环周期均要执行一次的语句序列。如句序
17、列。如while下用下用 括起来的语句序列。括起来的语句序列。3、循环控制变量:循环控制变量:能够决定控制条件是真是假能够决定控制条件是真是假的量,如上例中的变量的量,如上例中的变量i。一般来说,在循环一般来说,在循环体中要有改变循环变量的语句,使得循环条体中要有改变循环变量的语句,使得循环条件可以为假,即循环可以结束而不是无限循件可以为假,即循环可以结束而不是无限循环(死循环)。环(死循环)。while语句语句for语句forfor语句语句语法:语法:for(e1;e2;e3)语句语句s1;语法上要求语法上要求s1是一条语句,是一条语句,若有多条语句,必须用若有多条语句,必须用 ,使之成为一
18、条复合语句,从使之成为一条复合语句,从而满足语法要求。而满足语法要求。e2 e1;真真假假e3;s1;for语句执行流程语句执行流程#include void sum_1_to_100()int i,s;s=0;for(i=1;i=100;i+)s+=i;/循环体循环体 printf(“s=%d”,s);例题:例题:求求s=1+2+3+100,用,用for语句实现。语句实现。v第四部分:第四部分:基础语法练习基础语法练习v题目题目1:有有1、2、3、4个数字,能组成多少个互个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?不相同且无重复数字的三位数?都是多少?程序分析:程序分析:可填
19、在百位、十位、个位的数字都是可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条。组成所有的排列后再去掉不满足条件的排列。件的排列。v参考答案:参考答案:main()inti,j,k;printf(n);for(i=1;i5;i+)/*以下为三重循环以下为三重循环*/for(j=1;j5;j+)for(k=1;k5;k+)if(i!=k&i!=j&j!=k)/*确保确保i、j、k三位互三位互不相同不相同*/printf(%d,%d,%dn,i,j,k);v题目题目2:一个整数,它加上一个整数,它加上100后是一个完全平后是一个完全平方数,再加上方数,再加上168又是一
20、个完全平方数,请问该数又是一个完全平方数,请问该数是多少?是多少?程序分析:程序分析:程序分析:在程序分析:在10万以内判断,先将该万以内判断,先将该数加上数加上100后再开方,再将该数加上后再开方,再将该数加上268后再开方,后再开方,如果开方后的结果满足如下条件,即是结果如果开方后的结果满足如下条件,即是结果。v参考答案:参考答案:#includemath.hmain()longinti,x,y,z;for(i=1;iy则将则将x与与y的值进行交换,的值进行交换,然后再用然后再用x与与z进行比较,如果进行比较,如果xz则将则将x与与z的值进的值进行交换,这样能使行交换,这样能使x最小。最小
21、。v参考答案:参考答案:main()intx,y,z,t;scanf(%d%d%d,&x,&y,&z);if(xy)t=x;x=y;y=t;/*交换交换x,y的值的值*/if(xz)t=z;z=x;x=t;/*交换交换x,z的值的值*/if(yz)t=y;y=z;z=t;/*交换交换z,y的值的值*/printf(smalltobig:%d%d%dn,x,y,z);v题目题目4:用用*号输出字母号输出字母C的图案。的图案。程序分析:程序分析:程序分析:可先用程序分析:可先用*号在纸上写出号在纸上写出字母字母C,再分行输出。,再分行输出。v参考答案:参考答案:#includestdio.hmai
22、n()printf(HelloC-world!n);printf(*n);printf(*n);printf(*n);printf(*n);v题目题目5:输出输出9*9口诀。口诀。程序分析:程序分析:分行与列考虑,共分行与列考虑,共9行行9列,列,i控制行,控制行,j控制列。控制列。v参考答案:参考答案:#includestdio.hmain()inti,j,result;printf(n);for(i=1;i10;i+)for(j=1;j10;j+)result=i*j;printf(%d*%d=%-3d,i,j,result);/*-3d表示左对表示左对齐,占齐,占3位位*/printf(
23、n);/*每一行后换行每一行后换行*/v题目题目6:有一分数序列:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13.求出这个数列的前求出这个数列的前20项之和。项之和。程序分析:程序分析:请抓住分子与分母的变化规律。请抓住分子与分母的变化规律。v参考答案:参考答案:main()intn,t,number=20;floata=2,b=1,s=0;for(n=1;n2)/*如果是闰年且月份大于如果是闰年且月份大于2,总天数应该加一天总天数应该加一天*/sum+;printf(Itisthe%dthday.,sum);vv题目题目8:题目:企业发放的奖金根据利润提成。利润低于题目:
24、企业发放的奖金根据利润提成。利润低于或等于或等于10万元时,奖金可提万元时,奖金可提10%;利润高于;利润高于10万元,低于万元,低于20万元时,低于万元时,低于10万元的部分按万元的部分按10%提成,高于提成,高于10万元万元的部分,可提成的部分,可提成7.5%;20万到万到40万之间时,高于万之间时,高于20万元万元的部分,可提成的部分,可提成5%;40万到万到60万之间时高于万之间时高于40万元的部万元的部分,可提成分,可提成3%;60万到万到100万之间时,高于万之间时,高于60万元的部万元的部分,可提成分,可提成1.5%,高于,高于100万元时,超过万元时,超过100万元的部分万元的
25、部分按按1%提成,从键盘输入当月利润,求应发放奖金总数?提成,从键盘输入当月利润,求应发放奖金总数?程序分析:程序分析:程序分析:请利用数轴来分界,定位。程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。注意定义时需把奖金定义成长整型。v参考答案:参考答案:main()longinti;intbonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf(%ld,&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000
26、*0.3;bonus10=bonus6+400000*0.15;if(i=100000)bonus=i*0.1;elseif(i=200000)bonus=bonus1+(i-100000)*0.075;elseif(i=400000)bonus=bonus2+(i-200000)*0.05;elseif(i=600000)bonus=bonus4+(i-400000)*0.03;elseif(i=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf(bonus=%d,bonus);v第五部分:第五部分:布置大案例布置大案例