《C语言程序设计》课件第8章
- 格式:ppt
- 大小:631.00 KB
- 文档页数:48


第 1 页 共 6 页
C语言程序设计 课件教案
第一章 初识C语言
教学目的
使用VC2010创建C程序项目、了解C程序的执行过程、编写第一个C语言程序。掌握进制的转换,原码、反码、补码的转换。
教学要求
1. 熟练掌握C程序的执行过程
2. 掌握第一个C语言程序的编写
3. 熟练掌握不同进制的转换
重点和难点
1. C程序的执行过程
2. C语言程序的编写
3. 不同进制的转换
教学支撑环境与教学资源:
1. 笔记本电脑
2. VC2010
3. 投影仪
教学方法
讲授法、讨论法 练习法
授课课时
6课时
教学过程
------------------------------------AM-------------------------------------
一、课程引入
讲述C语言的用途和发展前景、直接使用C语言编写的游戏项目进行演示。
二、第一个C程序
编写程序实现输出效果如下:
第 2 页 共 6 页
该程序的源文件如下:
#include //包含头文件stdio.h,只有包含了该头文件,才能输出
int main(void)//主函数,C程序就是从这里开始运行的
{
printf("HelloWorld!\n");//输出语句,双引号里面可以是任意的内容
return 0;
}
创建C程序项目小结:
1>选择Visual C++,Win32控制台
2>添加源文件.c,C++源文件.cpp,头文件.h
3>项目文件.sln
三、main主函数
1.只能有一个主函数,必须要有一个主函数,C程序从主函数开始运行。
2.int main(void),int:返回值类型,main:函数名,void:参数
3.return 0,返回值是0。
四、注释
1.单行注释//
2.多行注释/* */
章 重点 难点
第 1 章
程序设计根底知识 C 语言的特点和程序构造 计算机内存模型
第 2 章
数据类型、运算符与表达式 常用数据类型;
变量声明;
常用运算符与表达式; 1 〕变量数据类型的选定;
2 〕 ++ 、 -- 、 % 运算符的使用;
3 〕表达式中的类型转换;
第 3 章
简单的 C 程序设计 字符输入输出函数;
格式输入输出函数; 按指定格式进展输入输出操作时格式控制符与变量的匹配;
第 4 章
程序的控制构造 根本控制构造;
根本控制语句;
累加、累乘、统计等算法;
构造化程序设计的根本思想; 1 〕 设计累加和累乘算法,寻找累加项或累乘项的构成规律;
2 〕循环语句在控制流程时的区别和联络;
3 〕条件语句的嵌套和循环语句的嵌套;
4 〕 break 语句和 continue
语句的作用及区别 ;
第 5 章
函数 函数间的数据传递方式;
参数结合规那么;
变量的作用域和存储类别;
模块化程序设计方法 1 〕对函数 “ 单向值传递 〞的 参数传递方式 的理解;
2 〕变量的作用域;
3 〕变量的存储类别;
第 6 章
数组 向函数传递一维和二维数组;用字符数组表示字符串;
字符串处理函数; 1 〕对数组名特殊含义的理解;
2 〕字符数组与其它数组的区别;
3 〕字符串处理函数在字符串处理中的应用;
第 7 章
指针 指针的概念;
利用字符指针存取字符串;
指针与数组的关系;
变量的指针作为函数参数; 1 〕对指针数据类型的理解;
2 〕二维数组的地址和指针概念;
3 〕字符数组和字符指针的区别与联络;
4 〕指向数组的指针和指针数组的区别;
第 8 章
构造体和共用体 构造体和共用体类型的定义和应用场合;
构造体变量、构造体数组1 〕嵌套构造体的成员引用、构造体指针变量的成员引用;
2 〕向函数传递构造体指针的方和构造体指针作函数参数; 法;
3 〕对构造体和共用体占用字节数的理解;
C语言程序设计-第三版-谭浩强主编第6—8章课后习题答案
第六章循环语句
6.1输入两个正数,求最大公约数和最小公倍数.#includevoidmain()
{inta,b,num1,num2,temp;
printf(\请输入两个正整数:\\n\canf(\if(num1
temp=num1;num1=num2;num2=temp;}
a=num1,b=num2;while(b!=0){
temp=a%b;a=b;b=temp;}
printf(\它们的最大公约数为:%d\\n\
printf(\它们的最小公倍数为:%d\\n\}
编译已通过
6.2输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数.解:
#includevoidmain(){charc;
intletter=0,pace=0,degit=0,other=0;printf(\请输入一行字符:\\n\while((c=getchar())!='\\n'){
if(c>='a'&&c<='z'||c>'A'&&c<='Z')letter++;eleif(c=='')pace++;
eleif(c>='0'&&c<='9')
digit++;eleother++;} printf(\其中:字母数=%d空格数=%d数字数=%d其它字符数=%d\\n\digit,other);}
6.3求(n)=a+aa+aaa++aaa之值,其中a是一个数字,n表示a的位数。解:
voidmain(){
inta,n,count=1,n=0,tn=0;
printf(\请输入a和n的值:\\n\canf(\printf(\while(count<=n){
tn=tn+a;n=n+tn;a=a某10;++count;}
printf(\\\n\}
6.4求(即1+2!+3!+4!++20!)voidmain(){
floatn,=0,t=1;
8.1 编写两个函数,分别求两个证书的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果,两个整数由键盘输入。
void main()
{ int Mgy(int x,int y);
int Mgb(int z);
int a,b,mgy,mgb;
printf("请输入两个数:\n");
scanf("%d,%d",&a,&b);
mgy=Mgy(a,b);
mgb=Mgb(a,b,mgy);
printf("两个数的最大公约数为%d,最小公倍数为%d\n",mgy,mgb);}
int Mgy(int x,int y)
{ int r,temp;
if(x
{ temp=x;
x=y;
y=temp;}
while(x%y!=0)
{ r=x%y;
x=y;
y=r;}
return y;}
int Mgb(int x,int y,int z)
{ return (x*y/z);}
8.2 求方程ax²+bx+c=0的根,用三个函数分别求当b²-4ac大于零、等于零和小于零时的根,并输出结果。从主函数输入a,b,c的值。
#include
float temp,k,x1,x2;
void main()
{ void Lzero(float a,float b,float c);
void Szero(float a,float b,float c);
void Ezero(float a,float b,float c);
float l,m,n;
printf("请输入三个数:\n");
scanf("%f,%f,%f",&l,&m,&n);
printf("方程的根为:\n");
temp=m*m-4*l*n;
k=sqrt(temp);
if(temp<0)
{ Szero(l,m,n);