《C语言编程实践课程介绍》课件_第1页
《C语言编程实践课程介绍》课件_第2页
《C语言编程实践课程介绍》课件_第3页
《C语言编程实践课程介绍》课件_第4页
《C语言编程实践课程介绍》课件_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

C语言编程实践

孙风栋联系方式:办公室A3-117Email:sunfengdong@电话:8483227201主要内容课程体系介绍测试基本语法回顾基础语法练习布置大案例第一部分:课程体系介绍C语言编程实践数据结构C语言文化基础内容组成C基础编程60%数据结构25%文化基础15%100%三部分比例分配C编程实践4.系统测试1.需求分析2.系统设计3.系统编码5.……初步培养学生的软件工程思想,能够完成项目的需求分析、系统设计、系统编码、系统测试等各阶段的工作,从而熟悉项目开发流程,充分锻炼团队开发的协作能力,积累真实的项目开发经验,拉近与企业用人需求的距离。培养软件工程思想大案例文档编写要求排版的论文、excel案例:20分小案例实现:20分数据结构部分实现:20分大案例实现:20分文化基础大案例小案例数据结构共100分考核方式答辩:20分分级A级:0<最后分数<100;提交代码数量多、质量高。B级:0<最后分数<85;提交代码数量、质量都低一些。课程要求课前请做好预习保持课堂安静,头脑清醒,思维活跃认真、独立、按时完成并提交作业考勤3次缺席,按不及格处理发现上机时间上网,按缺席一次处理第二部分:测试第三部分:基本语法回顾在VC下创建C语言源文件创建工作区File->New->”workspace”,输入工作区名字创建新工程File->New->”Projects->Win32Console”Application,输入项目名字,并加入到工作区中创建C语言源文件File->New->Files->”C++SourceFile”,输入文件名(一定要加后缀.c),并加入到项目中C语言的基本结构程序一/*thefirstprogram*/main(){printf(“welcome”);}C语言的基本结构程序二/*anotherprogram*/main(){inta,b,m;scanf(“%d%d”,&a,&b);m=max(a,b);printf(“较大数是:%d\n”,m);}intmax(intx,inty){intr;if(x>y)r=x;elser=y;returnr;}C数据类型基本类型构造类型指针类型空类型void定义类型typedef数值类型字符类型char枚举类型enum整型浮点型单精度型float双精度型double短整型short长整型long整型int数组结构体struct共用体unionC语言的数据类型运算符和表达式C运算符算术运算符:(+-*/%++--)关系运算符:(<<===>>=!=)逻辑运算符:((!&&||)位运算符:(<<>>~|^&)赋值运算符:(=及其扩展)条件运算符:(?:)逗号运算符:(,)指针运算符:(*&)求字节数:(sizeof)强制类型转换:(类型)分量运算符:(.->)下标运算符:([])其它:(()-)C语言中的输入输出格式输出函数--printf格式:printf(“格式控制串”,输出列表)数据类型关键字修饰符输出示例整型int%dprintf(“%d”,a);printf(“%d%d%d”,x,y,z);双精度浮点型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);格式输出函数--printf格式:printf(“格式控制串”,输出列表)printf(“两个数为:%d和%d\n”,a,b);例:设a,b,c变量的值均已赋好,a=5,b=7,c=7

要求屏幕输出“三个数为:5,7和7,较大的为:7”。#include<stdio.h>main(){ inta,b,c; a=5; b=7; c=7; printf(“三个数为:%d,%d和%d,较大的为:%d\n",a,b,c,c);}练习:将上题a,b,c变成float类型变量应该如何修改?格式:scanf(“格式控制串”,地址表)格式输入函数--scanf地址表:变量的地址,常用取地址运算符&格式修饰符:同printf函数的完全一致scanf(“%d%d”,&a,&b);例:已知三个int类型变量a,b,c,从键盘输入它们的值分别为3,4,5,并且输出。#include<stdio.h>main(){ inta,b,c; printf("请输入三个变量的值:\n"); scanf("%d%d%d",&a,&b,&c); printf(“三个数为:%d,%d和%d,较大的为:%d\n",a,b,c,c);}练习:将上题a变成float类型,b,c变成char类型变量应该如何修改?

if语句If语句的三种形式(1)if(表达式){语句}(2)if(表达式)

{语句1}else{语句2}(3)if-elseif-else形式

if(表达式1) {语句1}elseif(表达式2){语句2}

elseif(表达式m){语句m}else{语句n}if-elseif-else形式流程图elseif语句结构流程图switch语句switch语句是实现多个分支的选择语句switch(表达式){case常量表达式1:语句1case常量表达式2:语句2┆case常量表达式n:语句ndefault:语句n+1}switch语句的执行入口:如果表达式的值与某一个case后边的常量表达式相等,就从这个case开始,依次执行其后边的每条语句如果所有的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");break;default:printf("default");}}

结果:i=2switch语句-例题while语句while语句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<stdio.h>voidsumFromOneToTen(){ inti,s;//定义循环变量i和累加变量s i=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、循环体:在每个循环周期均要执行一次的语句序列。如while下用{}括起来的语句序列。3、循环控制变量:能够决定控制条件是真是假的量,如上例中的变量i。一般来说,在循环体中要有改变循环变量的语句,使得循环条件可以为假,即循环可以结束而不是无限循环(死循环)。while语句for语句for语句语法:for(e1;e2;e3){语句s1;}语法上要求s1是一条语句,若有多条语句,必须用{},使之成为一条复合语句,从而满足语法要求。

e2e1;真假e3;s1;for语句执行流程#include<stdio.h>voidsum_1_to_100(){ inti,s; s=0; for(i=1;i<=100;i++)

{

s+=i;

}//循环体

printf(“s=%d”,s);}例题:求s=1+2+3+…+100,用for语句实现。第四部分:基础语法练习题目1:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。

参考答案:

main()

{

inti,j,k;

printf("\n");

for(i=1;i<5;i++)/*以下为三重循环*/

for(j=1;j<5;j++)

for(k=1;k<5;k++)

{

if(i!=k&&i!=j&&j!=k)/*确保i、j、k三位互不相同*/

printf("%d,%d,%d\n",i,j,k);

}

}题目2:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

程序分析:程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

参考答案:

#include"math.h"

main()

{

longinti,x,y,z;

for(i=1;i<100000;i++)

{x=sqrt(i+100);/*x为加上100后开方后的结果*/

y=sqrt(i+268);/*y为再加上168后开方后的结果*/

if(x*x==i+100&&y*y==i+268)

/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/

printf("\n%ld\n",i);

}

}题目3:输入三个整数x,y,z,请把这三个数由小到大输出。

程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

参考答案:

main()

{

intx,y,z,t;

scanf("%d%d%d",&x,&y,&z);

if(x>y)

{t=x;x=y;y=t;}/*交换x,y的值*/

if(x>z)

{t=z;z=x;x=t;}/*交换x,z的值*/

if(y>z)

{t=y;y=z;z=t;}/*交换z,y的值*/

printf("smalltobig:%d%d%d\n",x,y,z);

}题目4:用*号输出字母C的图案。

程序分析:程序分析:可先用‘*’号在纸上写出字母C,再分行输出。

参考答案:

#include"stdio.h"

main()

{

printf("HelloC-world!\n");

printf("****\n");

printf("*\n");

printf("*\n");

printf("****\n");

}题目5:输出9*9口诀。

程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

参考答案:

#include"stdio.h"

main()

{

inti,j,result;

printf("\n");

for(i=1;i<10;i++)

{for(j=1;j<10;j++)

{

result=i*j;

printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/

}

printf("\n");/*每一行后换行*/

}

}题目6:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

程序分析:请抓住分子与分母的变化规律。

参考答案:

main()

{

intn,t,number=20;

floata=2,b=1,s=0;

for(n=1;n<=number;n++)

{

s=s+a/b;

t=a;a=a+b;b=t;/*这部分是程序的关键,请读者猜猜t的作用*/

}

printf("sumis%9.6f\n",s);

}题目7:输入某年某月某日,判断这一天是这一年的第几天?

程序分析:程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

参考答案:

main()

{

intday,month,year,sum,leap;

printf("\npleaseinputyear,month,day\n");

scanf("%d,%d,%d",&year,&month,&day);

switch(month)/*先计算某月以前月份的总天数*/

{

case1:sum=0;break;

case2:sum=31;break;

case3:sum=59;break;

case4:sum=90;break;

case5:sum=120;break;

case6:sum=151;break;

case7:sum=181;break;

case8:sum=212;break;

case9:sum=243;break;

case10:sum=273;break;

case11:sum=304;break;

case12:sum=334;break;

default:printf("dataerror");break;

}

sum=sum+day;

/*再加上某天的天数*/

if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/

leap=1;

else

leap=0;

if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/

sum++;

printf("Itisthe%dthday.",sum);}题目8:题目:企业发放的奖金根据利润提成。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部

温馨提示

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

评论

0/150

提交评论