C语言二级讲课流程.docx

上传人:b****8 文档编号:9647002 上传时间:2023-02-05 格式:DOCX 页数:23 大小:23.89KB
下载 相关 举报
C语言二级讲课流程.docx_第1页
第1页 / 共23页
C语言二级讲课流程.docx_第2页
第2页 / 共23页
C语言二级讲课流程.docx_第3页
第3页 / 共23页
C语言二级讲课流程.docx_第4页
第4页 / 共23页
C语言二级讲课流程.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

C语言二级讲课流程.docx

《C语言二级讲课流程.docx》由会员分享,可在线阅读,更多相关《C语言二级讲课流程.docx(23页珍藏版)》请在冰豆网上搜索。

C语言二级讲课流程.docx

C语言二级讲课流程

第一章C语言概述及数据类型

一C语言的特点

二C语言的程序结构

1举例

#include“stdio.h”/*编译预处理*/

main()

{

printf(“Howareyou!

!

!

!

”);

}

2说明

(1)结构,

(2).C->.obj->.exe

3练习:

输出个人信息。

显示换行

4举例:

计算一个学生的数学和英语成绩的总成绩

6一般形式

预处理命令序列

main()

{

变量定义序列;

执行语句序列;

}

7说明

(1)三大区域,不能调换位置,程序按此顺序执行

(2)除了库函数,还有自定义函数

(3)书写自由,一行可以有一个或多个语句,一条语句也可以分写多行。

建议一行一条语句。

三基本字符,标识符和关键字

1基本字符

讲解思路:

有汉语的组成引出基本字符

内容:

26个英文字母(区分大小写);10个数字(0-9);特殊符号(可显示字符&%);

特例:

输出语句中的汉字

2标识符

讲解思路:

从人的名字可以区分每个人到用标识符区分变量,数组,函数

定义:

用作变量名,常量名,数组名,类型名,文件名

命名规则:

有效长度:

8个

注意:

关键字不能做标识符,大小写是不同字符

3关键字

定义:

程序中都代表固定含义,不能另作它用

四常量和变量

1常量

定义:

举例:

intsum;

sum=10+23;

printf(“sum=%d”,sum);

说明:

10和15就是常量

2符号常量

讲解思路:

从一个例子开始:

求园的面积,周长0

定义:

#definePI3.1415926

优势:

避免写错,易于修改

3变量

讲解思路:

不同的盒子放不同的东西

定义:

类型名字=当前值;或

类型名字;

名字=值;

说明:

先定义后使用

五:

整形数据

1常量

2变量

inta;

3举例:

两个数进行交换

六实型数据

1常量

注意:

不区分float和double

2变量

3举例:

求圆的周长和面积

七字符型数据

1常量

转椅字符

2变量

3字符量可以参与任何整形运算:

4举例:

编程把两个大写字母转换成小写字母

5练习:

编程输出A->XB->YC->Z

八赋值运算

九运算规则

讲解思路:

大盒子可以放小东西,小盒子不能放大东西

第二章运算符和表达式

讲解思路:

1+5=6其中156是运算量+=是运算符这个式子是表达式

运算量:

数字,字符,常量,变量,函数形成灵活多样的表达式

一算术运算符和表达式

1定义:

+—*/%

2说明:

+-*/运算量可以是整数或实数

/运算量是整数,结果是整数

%只有整数运算对象只能是整数

先乘除,后加减可以用括号改变运行顺序

两边类型不一致,进行转换

+-单目运算符

3优先级

4强制类型转换

(类型名)(表达式)

(类型名)变量或常量

举例:

求球的体积V=4/3PIr*r*r

5举例:

一个二位数56,求这个数的个位,十位

6练习:

一个三位数789,求这个数的个位,十位,百位上数的和

二赋值运算符和赋值表达式

1定义:

变量=常量;

2复合的赋值运算符

变量=变量名运算符表达式

三关系运算符和关系表达式

1用法演示

inta=3,b=2,c=1,d,f;

a>b

(a>b)==c

b+c

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“=”和“==”的区别

四逻辑运算符和表达式

1用法演示

a<=x&&x<=b

a>b&&x>y

a==b||x==y

!

a||a>b

2短路现象

五逗号运算符和逗号表达式

六自加,自减

第三章输入输出

一字符输出

1说明

格式:

putchar(c)

参数:

c为字符常量、变量或表达式

功能:

把字符c输出到显示器上

2举例

#include

main()

{intc;

chara;

c=65;a='B';

putchar(c);putchar('\n');putchar(a);

}

二格式输出函数

1说明

格式:

printf(“格式控制串”,输出表)

功能:

按指定格式向显示器输出数据

返值:

返回输出数据个数

2举例

例inta=3,b=4;

printf(“%d%d\n”,a,b);

printf(“a=%d,b=%d\n”,a,b);

输出结果:

34

a=3,b=4

三字符输入

1说明

格式:

getchar()

功能:

从键盘读一字符

返值:

返回读取的代码值

2举例:

#include

main()

{intc;

printf("Enteracharacter:

");

c=getchar();

putchar(c);

printf(“\n%c--->hex%x\n",c,c);

}

四数据输入函数

1说明

格式:

scanf(“格式控制串”,地址表)

功能:

按指定格式从键盘读入数据,存入地址表指定的

存储单元中,并按回车键结束

返值:

返回输入数据个数

2举例

例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输入一个数,比较两个数的大小;判断一个数是否是偶数

6练习:

输入一个数,判断是否能被3整除

三if-else-if语句

1多重判断

2语句形式

3说明

4执行过程

5举例:

根据输入学生的成绩,给出相应的等级

6练习:

商场打折

购物10件,按8折优惠

购物100件,按7折优惠

输入:

购买量;商品单价

输出:

客户应付金额

四if语句的嵌套

1举例

if(x>0)

{

If(y>0)

Printf(“x,y”);

Else

;

}

Else

{

If(y>0)

Printf(“x,y”);

Else

}

2else和if的匹配问题

If(n>6)

If(n<12)

;

Else

3举例:

输入年,月,判断有多少天;

五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执行过程

3说明

4举例:

(1)求1到100的和值:

分析:

我们心算时,总是先求1+2=3然后计算3+3=6依次类推。

编程sum=sum+i;

5练习:

(1)求12+22+32+。

的和直到和的值大于等于1000为止的n的值。

(2)计算一个学生一年的费用的总和,并统计费用超过500元的共有几个月

四do-while语句

1一般形式

2执行过程

3说明

4举例:

(1)求阶乘

5练习

(1)输出100以内能被3整除的所有数

五while和do-while的比较

六for语句

1一般形式

2执行过程

3说明

4举例

(1)求10个数中的最大值

5练习

(1)求10个数中的最小值

七三种循环的比较及其优势

八break和continue

第六章函数

一库函数

1include命令

2标准库函数的调用

函数名(参数表)

二函数定义

1一般形式

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)若先主函数,后自定义函数,需要在主函数前加声明

声明就是函数定义的头,末尾必须加分号。

若先自定义函数,后主函数,则不需要加声明

三函数的返回值

1一般形式

return(表达式);

return表达式;

2说明

(1)只能有一个return,并且只能返回一个值

(2)可以有,也可以没有return语句

(3)return一般是函数的最后一条语句。

(4)碰到return,函数就结束

3举例:

请在屏幕上输入15个星号

4练习:

编写函数求两个双精度之差的函数

四函数的调用

1一般形式

(1)若函数没有返回值:

函数调用是一条单独的语句

函数名(实参表);

(2)若函数有返回值:

函数调用一般是赋值语句;

变量=函数名(实参表)

2说明

(1)调用为一个语句,末尾必须有一个分号

(2)函数名必须一致

(3)实参和形参个数,类型必须一致

(4)参数传递相当于一条赋值语句

3程序的执行过程

五数据传递

1举例:

两个数的交换

2举例:

编写程序,求2个数的加,减,乘,除

3举例:

编写函数,求n的阶乘

4输入10个数,统计并输出正数,负数和0的个数

六程序的基本结构(模块化编程思想)

自定义函数()

{

完成某一个功能,没有输出

}

main()

{

变量定义,赋值;

函数调用;

输出结果;

}

七:

函数中参数传递问题

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定义

类型名数组名【元素个数】

2说明

(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

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一般形式:

3说明

(1)【行】【列】

(2)先行后列

4练习:

(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(字符串)方法是从终端键盘读入字符串(包括空格),直到读入一个换行符为止。

charstr[13];

gets(str);

若输入Howareyou?

则输出:

Howareyou?

7字符串处理函数

第八章指针与结构体

一指针的定义

1定义:

指针里面放地址

inta=8;

int*p;

p=&a;//注意:

指针赋值时候没有*;类型一致

p=a;错误

2初始化:

int*p=&a;

3指针的使用:

*p的用法

放在等号的左边:

指针p所指的存储单元(盒子,变量)

放在等号的右边:

指针p所指向变量的内容

二数组在指针中应用

chars[8]=“abcdefg”;

char*p=&s[0];

p=s;

p=&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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 职业规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1