C语言二级讲课流程Word下载.docx
- 文档编号:22818421
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:23
- 大小:23.89KB
C语言二级讲课流程Word下载.docx
《C语言二级讲课流程Word下载.docx》由会员分享,可在线阅读,更多相关《C语言二级讲课流程Word下载.docx(23页珍藏版)》请在冰豆网上搜索。
10和15就是常量
2符号常量
从一个例子开始:
求园的面积,周长0
#definePI3.1415926
优势:
避免写错,易于修改
3变量
不同的盒子放不同的东西
类型名字=当前值;
或
类型名字;
名字=值;
先定义后使用
五:
整形数据
2变量
inta;
3举例:
两个数进行交换
六实型数据
不区分float和double
求圆的周长和面积
七字符型数据
转椅字符
3字符量可以参与任何整形运算:
4举例:
编程把两个大写字母转换成小写字母
5练习:
编程输出A->
XB->
YC->
Z
八赋值运算
九运算规则
大盒子可以放小东西,小盒子不能放大东西
第二章运算符和表达式
讲解思路:
1+5=6其中156是运算量+=是运算符这个式子是表达式
运算量:
数字,字符,常量,变量,函数形成灵活多样的表达式
一算术运算符和表达式
1定义:
+—*/%
2说明:
+-*/运算量可以是整数或实数
/运算量是整数,结果是整数
%只有整数运算对象只能是整数
先乘除,后加减可以用括号改变运行顺序
两边类型不一致,进行转换
+-单目运算符
3优先级
4强制类型转换
(类型名)(表达式)
(类型名)变量或常量
求球的体积V=4/3PIr*r*r
5举例:
一个二位数56,求这个数的个位,十位
6练习:
一个三位数789,求这个数的个位,十位,百位上数的和
二赋值运算符和赋值表达式
变量=常量;
2复合的赋值运算符
变量=变量名运算符表达式
三关系运算符和关系表达式
1用法演示
inta=3,b=2,c=1,d,f;
a>
b
(a>
b)==c
b+c<
a
d=a>
b
f=a>
b>
c
2注意:
5>
2>
7>
8在C中是允许的,值为0
若a=0;
b=0.5;
x=0.3;
则a<
=x<
=b的值为0
3“=”和“==”的区别
四逻辑运算符和表达式
a<
=x&
&
x<
=b
a>
b&
x>
y
a==b||x==y
!
a||a>
2短路现象
五逗号运算符和逗号表达式
六自加,自减
第三章输入输出
一字符输出
1说明
格式:
putchar(c)
参数:
c为字符常量、变量或表达式
功能:
把字符c输出到显示器上
2举例
#include<
stdio.h>
{intc;
chara;
c=65;
a='
B'
;
putchar(c);
putchar('
\n'
);
putchar(a);
二格式输出函数
格式:
printf(“格式控制串”,输出表)
按指定格式向显示器输出数据
返值:
返回输出数据个数
例inta=3,b=4;
printf(“%d%d\n”,a,b);
printf(“a=%d,b=%d\n”,a,b);
输出结果:
34
a=3,b=4
三字符输入
格式:
getchar()
从键盘读一字符
返回读取的代码值
2举例:
#include<
printf("
Enteracharacter:
"
c=getchar();
printf(“\n%c--->
hex%x\n"
c,c);
四数据输入函数
scanf(“格式控制串”,地址表)
按指定格式从键盘读入数据,存入地址表指定的
存储单元中,并按回车键结束
返回输入数据个数
例scanf(“%d”,&
a);
输入:
10
则a=10
五顺序存储结构
1流程图
2复合语句,空语句
3举例:
编程,将华氏温度转换成摄氏温度,公式:
摄氏温度=5/9(华氏温度-32)
第四章选择程序设计
讲课引入:
顺序结构解决问题非常少。
举例
一if语句
1举例if(x>
y)z=x;
If(x>
y){z=x;
x=x+1}复合语句
2一般形式:
3说明:
If关键字()必须有,{多条语句}
执行过程
4练习:
求x的绝对值
如果a>
b交换a和b的值
5重点讲解:
通过举例的形式讲解复合语句
二if-else语句
1引入:
对于“如果x>0则y=x 如果x<=0,则y=-x ”可以写成两个if语句,对连个条件都判断,实际上没有必须,x>0就意味着x<=0。
实现功能“求绝对值。
能否把两条合成一条”
2语句形式
3说明
子句可以是一条或复合语句
Else不能单独使用
4执行过程
5输入一个数,比较两个数的大小;
判断一个数是否是偶数
输入一个数,判断是否能被3整除
三if-else-if语句
1多重判断
2语句形式
根据输入学生的成绩,给出相应的等级
商场打折
购物10件,按8折优惠
购物100件,按7折优惠
购买量;
商品单价
输出:
客户应付金额
四if语句的嵌套
1举例
if(x>
0)
If(y>
Printf(“x,y”);
Else
;
Else
{
2else和if的匹配问题
If(n>
6)
If(n<
12)
输入年,月,判断有多少天;
五switch语句
1语句形式
2说明
Switch()中的表达式可以是整型,字符型,枚举型
Case后的值应该互不相同,之间有空格case10正确case10错误
Default可以有,也可以没有
3执行过程
4break
第五章循环结构
引入:
写程序求1*1+2*2+3*3=?
inta;
a=1*1+2*2+3*3;
printf(“%d”,a);
如果要求1*1+2*2+3*3+。
。
+100*100=?
毫无办法。
仔细观察:
重复操作作两个数的乘积以及将一个一个乘积加起来。
一概述
1何时采用循环结构:
重复做的事情
2对循环变量所做的三件事情
(1)赋值
(2)结束条件
(3)递增,递减变化,为下一次循环做准备
三while语句
1一般形式:
当型循环
2执行过程
(1)求1到100的和值:
分析:
我们心算时,总是先求1+2=3然后计算3+3=6依次类推。
编程sum=sum+i;
5练习:
(1)求12+22+32+。
的和直到和的值大于等于1000为止的n的值。
(2)计算一个学生一年的费用的总和,并统计费用超过500元的共有几个月
四do-while语句
1一般形式
(1)求阶乘
5练习
(1)输出100以内能被3整除的所有数
五while和do-while的比较
六for语句
4举例
(1)求10个数中的最大值
(1)求10个数中的最小值
七三种循环的比较及其优势
八break和continue
第六章函数
一库函数
1include命令
2标准库函数的调用
函数名(参数表)
二函数定义
(1)同一个文件中函数名唯一,只能有一个。
同一个函数中,形参唯一
Abs(inta,inta)错误
Abs(inta,intb)
不同函数中形参,变量命名可以一样
(2)函数不能嵌套定义:
一个函数中不能定义另一个函数
(3)无函数值,写void
(4)形参的只有定义,不需要赋值,
(5)形参是已知量,盒子里面已经有东西了
Abs(inta)
inta=10;
错误
(5)多个变量定义,中间用“,”隔开,必须分别定义
Abs(inta,ntb)正确
Abs(inta,b)错误
3所在位置
(1)遵循原则:
必须先定义,后使用
(2)若先主函数,后自定义函数,需要在主函数前加声明
声明就是函数定义的头,末尾必须加分号。
若先自定义函数,后主函数,则不需要加声明
三函数的返回值
return(表达式);
return表达式;
(1)只能有一个return,并且只能返回一个值
(2)可以有,也可以没有return语句
(3)return一般是函数的最后一条语句。
(4)碰到return,函数就结束
请在屏幕上输入15个星号
编写函数求两个双精度之差的函数
四函数的调用
(1)若函数没有返回值:
函数调用是一条单独的语句
函数名(实参表);
(2)若函数有返回值:
函数调用一般是赋值语句;
变量=函数名(实参表)
(1)调用为一个语句,末尾必须有一个分号
(2)函数名必须一致
(3)实参和形参个数,类型必须一致
(4)参数传递相当于一条赋值语句
3程序的执行过程
五数据传递
1举例:
两个数的交换
2举例:
编写程序,求2个数的加,减,乘,除
编写函数,求n的阶乘
4输入10个数,统计并输出正数,负数和0的个数
六程序的基本结构(模块化编程思想)
自定义函数()
完成某一个功能,没有输出
变量定义,赋值;
函数调用;
输出结果;
七:
函数中参数传递问题
1值传递:
实参向形参传递的是内容,形参的变化不能引起实参的变化
2地址传递:
实参向形参传递的是地址,形参的变化可以引起实参的变化
实参:
取地址符号:
变量main中其它地方不加
形参:
*变量表示内容自定义函数中所以用到形参的地方都加*
总结:
如果在自定义函数中,变化的量只有一个,通常采用return语句
如果在自定义函数中,变化的量不止一个,有两个以上,通常采用地址传递
3练习
1编写函数,用以求a被b除之后的余数
2编写函数,求x的b次方
3定义一个函数intcheck(intn,intd)如果数字d在整数n的某位中出现,则返回1,否则返回0
4定义一个函数dig(n,k)它返回整数n的从右边开始数的第k个数字的值
‘
第七章数组
一概念
1数组的引入:
以例子的形式给出10个儿童的体重,要求计算平均体重并打印出低于平均体重的数值。
用以前的知识,需定义10个变量,太麻烦,而且不能用循环。
解决方法答案是数组
2定义:
相同类型的数有序的排列
3特点:
(1)长度固定
(2)其元素必须同类型
二一维数组
1定义
类型名数组名【元素个数】
(1)例如:
火车,它由一节一节的车厢组成
火车有名字------数组名
车厢---------数组元素
车厢编号-----------数组元素的编号(下标),从0开始
(2)函数定义时【】中只能是常量或符号常量,不允许是变量
intn=8;
inta[n];
#defineN13
inta[N];
(3)元素个数是常量表达式,其值只能是正整数
inta[3.5]错误
3数组元素的使用
(1)形式:
数组名【下标表达式】
(2)说明:
下标从0开始
(3)正确的使用形式
doublex[8];
x[0]x[j]x[i+j]
4注意:
(1)数组元素的赋值时逐个元素进行,不允许把一个数组作为一个整体赋给另一个数组
inta[5],b[5];
a[5]=b[5];
a=b错误
a[0]=5a[1]=5
(1)定义inta[10]请对数组的a的第三个元素赋值8
(2)定义inta[10],b[10]请将b的第10个元素的值赋给a的第一个元素
(3)inta[5];
a={2,3,4,5,6};
是否正确
(4)inta[2];
scanf(“%d,%d”,&
a[1],&
a[0],a);
是否正确
(5)inta[10];
floati=3;
a[i]=10;
(6)inta(10)是否正确
(7)intn=3;
inta[n];
(8)charname[0]intarray[-100]是否正确
(9)floatw[10.3]是否正确
6一维数组的初始化
(1)一般形式
(2)所赋初值小于元素个数,将自动给后面的元素补0
(3)所赋初值多于元素个数,将出错
(4)初始化时,元素个数可以省略,这时可以通过赋初值的多少来确定数组的大小
7编程用法:
(1)一维数组的使用都采用一个for循环实现eg。
赋值,输出,实现各种功能
(2)在函数的用法:
传递的是数组时inta[5]
数组名a
inta[];
8排序和查找
9举例:
inta[]={12,23,34,45,56,67,78,89,90,87}
{879089342312}
(1)编写函数,定义一个30个元素的数组,依次给数组赋值奇数,每行10个,并且逆序输出
(2)从键盘上输入10个学生的成绩,求出分数最高的学生的序号
if()
max=a[i];
b=i;
returnb;
(3)已知存放在a数组中的数不重复,查找和x值相同的元素的位置,返回位置
if(a[i]==x)
returni;
(4)将数组中的数按颠倒的顺序重新存放,
(a)能定义新的数组
intb[];
for(i=9;
i>
=0;
i--)
b[9-i]=a[i];
(b)不能定义新的数组
循环一半,循环过程中交换
a[i]a[9-i]交换
(5)把第2题改成函数形式,输出一个函数,完成功能一个函数
三二维数组
行列表格
(1)
【行】【列】
(2)先行后列
(1)定义一个5行3列的二维float型数组
(2)inta[0][3]a[0][3]是否正确
(3)inti=3,j=4;
inta[i][j]a[i][j]是否正确
5二维数组的初始化:
分行赋值
(1)所赋值个数与数组元素个数相同
(2)每行所赋初值个数小于数组元素列个数,补0
(3)所赋行数小于数组行数,系统自动给后面各行的元素补0
(4)可以省略内层{},该方法容易出错
(5)可以省略行的个数,不能省略列的个数
(i)inta[][3]={{1,2,3},{4.5},{6,},{7}}
(ii)intc[][3]={1,2,3,4,5};
当初值个数能被第二维的列个数除尽时,所得的商就是第一维的大小
当初值个数不能被第二维的列个数除尽时,第一维的大小=所得的商+1
6练习:
(1)inta[2][3]={{5,6},{7,8}}得到的数组是?
560
780
inta[2][3]={5,6,7,8}得到的数组是?
567
800
(2)定义一个2行3列的二维整形数组,并按分行初始化的方式初始化全部元素为0
inta[2][3]={0};
(3)inta[][10];
写法是否正确?
(4)floatf[2][]={1.1,.2.2}该初始化方法是否正确?
7二维数组的使用
1形式:
数组名【行下标】【列下标】
2doublew[4][5]
错误形式:
w[0,1]w[I,j]w[i+k,j+k]
正确形式:
w[0][1]w[i][j]w[i+k][j+k]
8编程使用
四字符数组
1定义及初始化
2输出以下图形:
*
**
3字符数组的引用
4字符串
(1)初始化:
charc[]={“Iamhappy!
”};
或charc[]=“Iamhappy!
”;
等价于
charc[]={‘I’,’’,’a’,’m’,’’,’h’,’a’,’p’,’p’,’y’,’!
’,‘\0’};
(2)输入输出
逐个字符:
%C必须用循环
整个字符串:
%S字符串可以整体输入输出
5注意:
(1)%s输出时,intc【10】;
printf(“%s”,c);
是数组名
%s输出时,intc【10】;
scanff(“%s”,c);
是数组名,不要加&
(2)%s输入字符串时,空格或回车都作为输入数据的结束符而不能被读入
charstr[13];
scanf(“%s”,str);
若输入Howareyou?
则输出:
How而不是Howareyou?
6gets(字符串)和puts(str)
gets(字符串)方法是从终端键盘读入字符串(包括空格),直到读入一个换行符为止。
gets(str);
Howareyou?
7字符串处理函数
第八章指针与结构体
一指针的定义
指针里面放地址
inta=8;
int*p;
p=&
a;
//注意:
指针赋值时候没有*;
类型一致
p=a;
2初始化:
int*p=&
3指针的使用:
*p的用法
放在等号的左边:
指针p所指的存储单元(盒子,变量)
放在等号的右边:
指针p所指向变量的内容
二数组在指针中应用
chars[8]=“abcdefg”;
char*p=&
s[0];
p=s;
s[2];
*(p+1)
abcdefg
内容*p*(p+1)*(p+2)*(p+3)*(p+4)
p++p++p++
*s*(s+1)*(s+2)*(s+3)
地址pp+1p+2p+3p+4
数组s[0]s[1]s[2]s[3]
实参:
数组名
形参:
inta[]int*p
*p++(*p)++区别
*p++取*p的内容,然后地址加1
(*p)++取*p的内容,然后内容加1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 二级 讲课 流程
![提示](https://static.bdocx.com/images/bang_tan.gif)