C语言期末考试总结看完保你过PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一部分
C语言初步知识
第1页/共38页
主要内容 1.1 C程序开发运行方法 1.2 数据类型 1.3 运算符与表达式
第2页/共38页
§1-1 C程序开发运行方法
用Visual C++开发C程序: 项目类型:Win32 console Application 文件类型:C++ Source File 开发C程序的四个步骤:
}
从键盘输入的字符中统计小写字母字符的个数?
从键盘输入的字符中统计字母字符的个数?
从键盘输入的字符中统计数字字符的个数?
第18页/共38页
§2-4 break、continue语句
break;结束整个循环。跳出循环体,接着执行循 环语句下面的语句
Continue;结束本次循环。跳到: for语句的表达式3处
(1)编辑: 在文件代码窗口,按照C语法规则编辑C源程序文件(.cpp 或 .c )。
(2)编译: 将C源程序文件编译为目标文件(.odj)。
(3)连接: 将库函数代码连接到目标文件中,生成一个可执行文件(.exe)。
(4)执行: 运行可执行文件(.exe) ,在屏幕上显示运行结果。
用Visual C++开发C程序的项目类型? 用Visual C++开发C程序的文件类型? 开发C程序的四个步骤?
int multi(int x,y);
函数原型声明?
第28页/共38页
2.函数调用时实参与形参保持个数、类型和顺序一致。 3.可以通过return语句将一个函数值带回主调函数中
去。
求数组的n个元素中的最大值 float max(float a[],int n) { int i; float m=a[0];
第3页/共38页
§1-2 C的数据类型
介绍 C语言提供的以下一些数据类型:
整型 int short long (unsigned)
基本类型
实型 float double long double 字符型 char
空类型 void
数据类型
构造类型
数组 结构体类型 struct
指针类型
C语言数据类型中的基本类型? C语言数据类型中的构造类型?
|=、<<=、>>=
15
,
运算符功能
圆括号,函数参数表 数组元素下标 指向结构体成员 结构体成员
逻辑非 自增1,自减1 间接访问运算符 求地址运算符 强制类型转换
乘、除/整除、整数求余
加、减
小于、小于等于、大于、大于等 于
等于、不等
逻辑与 (短路运算符)
逻辑或 (短路运算符)
条件运算
赋值、 先运算再赋值
或while语句的表达式处继续进行。
第19页/共38页
输出从100到200之间能被3整除的数。
#include “ stdio.h”
main( )
{ int n;
for(n=100; n<=200; n++)
{ if(n%3!=0) continue; printf("%5d",n);
continue语句
1. 数组定义和初始化
• 全部元素赋初值,可以不指定数组长度 • 给前面部分元素赋初值,后面自动置零 • 二维数组分行全部或部分元素赋初值,可以不指定
第一维的长度 • 初值个数大于数组长度,则按语法错误处理。
2. 数组的引用
• 通过对数组元素的引用来实现
第24页/共38页
int b[]={1,-2,3,-4,5};
‘L’,
‘a’,
‘n’,
‘g’, ‘u’, ‘a’, ‘g’, ‘e’, ‘.’, ‘\0’};
char b[ ]={‘T’, ‘h ’, ‘e’, ‘ ’, ‘C ’, ‘ ’, ‘L’, ‘a’, ‘n’,
‘g’, ‘u’, ‘a’, ‘g’, ‘e’, ‘.’}; 输入含空格字符串 :
gets(b);
return 0;
}
第14页/共38页
§2-2 for语句
for(表达式1;表达式2;表达式3) 语句 (1) 先计算表达式1。 (2) 计算表达式2,若其值为真(非0为真),则执行语句,
然后执行下面第(3)步。若为假(值0为假),则结束循 环,转到第(5)步。 (3) 计算表达式3。 (4) 转回上面第(2)步。 (5) 循环结束,执行for语句下面的一个语句
字符型和整型通用? 字母A:65 字母a:97 大小写差32 大小写转换
第7页/共38页
§1-3 运算符和表达式
优先级 1
2
3 4 6
运算符
() [] -> .
! ++、-* & (类型名)
*、/、%
+、-
<、<=、>、>=
7
==、!=
11
&&
12
||
13
?:
14
=、+=、-=、*=
/=、%=、&=、^=
第4页/共38页
1. 常量
常量:在程序运行过程中,其值不能被改变的量
(1)整型常量 十进制整数
整数的八进制形式? 整数的十六进制形式? 实数的小数和指数形式?
八进制整数:以0头的数。如: 011 -011 085
十六进制整数:以0x开头的源自文库。如:0x123 -0x12 0x2g
(2)实型常量
小数形式: 有小数点且小数点后有数字。
则表达式!(a-b)+(int)c/2+a++的值是( )
• 已有定义:int a=1,b=2,c=3,d=4,m=1,n=1; 则计算表 达式(m=a>b)&&(n=c>d)后,m、n的值是( )
• 表示数学关系a≤b≤c的C语言表达式是(
)
运算符: / 除、整除 % 整数求余 ++ 自增1 -- 自减1 += 先运算再赋值 (类型名) 强制类型转换 ! 逻辑非 && 逻辑与 (短路运算符) || 逻辑或 (短路运算符) ? :条件运算符 , 逗号运算符(顺序求值)
scanf(“%s”,b);
输入字符串
第26页/共38页
#include<stdio.h> void main ( ) { int i ;
int x[ 2 ][ 2 ]={2,2,3,3} ; for (i=0 ;i<2 ;i++ ) printf(“%3d”,x[ i ][ 0]) ; } 程序输出结果是? printf(“%3d”,x[ i][ 1]) ;结果是? printf(“%3d”,x[ 0][ i]) ;结果是? printf(“%3d”,x[ 1][ i]) ;结果是?
}
}
输出从100到200之间不能被3整除的数?
第20页/共38页
下面程序,输入-1 -3 5 8 9 2 <回车>,则
输出结果是?
main( )
{ int i,a;
for(i=1 ;i<=6 ;i++ )
{ scanf(“%d”,&a ) ; if(a%2==0) break ;
break语句
printf(“%d ”,a);}
第9页/共38页
第二部分
C结构化程序设计
第10页/共38页
主要内容
2.1 三种基本结构 2.2 if 语句 2.3 for 语句 2.4 while 语句 2.5 break和continue语句
第11页/共38页
§2-1 三种基本结构
顺序结构 选择结构: if 、 switch 、 break 循环结构: for 、while 、continue、 break
符组成,且第一个字符必须为字母或下划线
如:sum,_total, ch1_1,M.D.Haln,¥100,3DMax
合法的C语言标识符形式?
第6页/共38页
• 变量要“先定义,后使用” • 变量定义时,系统按变量类型分配内存。 • 字符数据和整型数据之间可以通用。 如:已知 char c1= 'a' , c2= ‘B' 则 printf(“ %d ,%d ,%c,%c \n ”, c1, c2, c1-32,c2+32); 输出结果是: 97,66,A,b
int b[6]={-1,2,-3,4,-5}; int b[3][4]={{1,2,3,4},{5,6,7,8},
{9,10,11,12}};
int b[][4]={{0,1,2},{0},{2,3}};
int b[][]={{10,11,12,13},{14,15,16,
17},{18,19,20,21}};
for语句
/* 计算2+4+6+…+100的值 */
/* 计算1*2+2*3+3*4++…+9*10的值 */
第16页/共38页
§2-3 while语句
while语句用来实现“当型”循环结构。
一般形式:
while (表达式) 语句 当表达式为非0值(“真”)时,执行语句
。 其特点是:先判断表达式,后执行语句。
数组的引用
第27页/共38页
§3-2 函数定义和调用
1. 在主调函数中对被调用函数作函数原型声明。 函数原型声明要和函数保持函数类型 、函数名、以及 形参的类型、个数和顺序相同,不检查形参名。 int multi(int x,int y)
{ return(x*y); }
函数原型声明: int multi(int x,int y); int multi(int ,int ); int multi(int a,int b); int multi(int ,int y);
如: -0.11 .11 0.0 0.
指数形式:字母e(或E)之前为整数或小数且e后面为整数。
如:12e3, 1.8e-3, -.1e-3, e3, 2e3.5
规范化:小数点前有一位且只能有一位非零的数字
第5页/共38页
(3)字符型常量
合法的字符型常量形式? 合法的转义字符形式?
字符常量:用单引号包含的一个字符
}
如果 break ;改为 continue; 输出结果是?
第21页/共38页
第三部分
数组、函数、指针和结构体
第22页/共38页
主要内容
3.1 数组定义、初始化和引用 3.2 函数的定义与调用 3.3 指针变量的定义和引用 3.4 结构体变量的定义和引用
第23页/共38页
§3-1 数组定义、初始化和引用
第15页/共38页
#include<stdio.h>
int main()
{ int i , s=0;
for(i=1; i<=100; i++) s+=i ; /* 计算1+2+3+…+100的值 */
printf("sum=%d", s);
return 0;
} /* 计算1+3+5+7+…+99的值 */
运算类型
单目运算
双目运算符 三目运算 双目运算
结合方向 自左至右 自右至左
自左至右
自右至左
顺序求值
第8页/共38页
顺序运算
自左至右
• 下列运算符中优先级最高的运算符是( )
A. ! B. % C.+= D.||
• 已有定义:int x=789;则表达式 x/10%10的值是( )
• 已有定义:int a=3,b=4;float c=5.4;
转义字符:以\开头的字符
字符串常量:用双引号包含的字符序列.
如:'a' , '1‘ , '\n' ,'\0' , '\18' "123", "a","How do you
do!",'abc'
2. 变量
变量:在程序运行过程中,其值能被改变的量
• 变量命名要符合C语言标识符规则。
C语言标识符规则:只能由字母、数字和下划线三种字
第17页/共38页
从键盘输入的字符中统计大写字母字符的个数,
用换行符结束循环。
#include "stdio.h"
main()
{ char c; int n=0; while((c=getchar( ))!=‘\n’)
while语句
if(c>=‘A’&&c<=‘Z’) n++;
printf(“Num=%d\n",n);
输出b值。
2a (a>0)
include<stdio.h>
int main() { int a,b;
if-else语句
scanf(“%d”,&a);
if(a<0) b=-2*a; 如果从键盘上输入 8<回车>,则输出?
else if(a==0) b=0;
else b=2*a;
printf(“a=%d,b=%d\n”,a,b);
int b[3][]={{1,2,3},{1},{9,10}};
int b[4]={1,2,3,4,5};
数组初始化
第25页/共38页
输入字符串 :
char b[]=”The C Language.”;
char char
b[15]=”The b[ ]={‘T’, ‘h
’C, ‘Lea’,n‘g’u, a‘Cge’,.”‘;’,
第12页/共38页
§2-2 if语句
if(表达式1)语句1 else if(表达式2)语句2
else 语句3
计算表达式1的值, 若其值为真(值为非0),则执行语句1, 否则计算表达式2的值,
若其值为真(值为非0),则执行语句2, 否则就执行语句3
第13页/共38页
-2a (a<0)
例 有一个函数b= 0 (a=0) 编一程序,输入一个a值,
C语言初步知识
第1页/共38页
主要内容 1.1 C程序开发运行方法 1.2 数据类型 1.3 运算符与表达式
第2页/共38页
§1-1 C程序开发运行方法
用Visual C++开发C程序: 项目类型:Win32 console Application 文件类型:C++ Source File 开发C程序的四个步骤:
}
从键盘输入的字符中统计小写字母字符的个数?
从键盘输入的字符中统计字母字符的个数?
从键盘输入的字符中统计数字字符的个数?
第18页/共38页
§2-4 break、continue语句
break;结束整个循环。跳出循环体,接着执行循 环语句下面的语句
Continue;结束本次循环。跳到: for语句的表达式3处
(1)编辑: 在文件代码窗口,按照C语法规则编辑C源程序文件(.cpp 或 .c )。
(2)编译: 将C源程序文件编译为目标文件(.odj)。
(3)连接: 将库函数代码连接到目标文件中,生成一个可执行文件(.exe)。
(4)执行: 运行可执行文件(.exe) ,在屏幕上显示运行结果。
用Visual C++开发C程序的项目类型? 用Visual C++开发C程序的文件类型? 开发C程序的四个步骤?
int multi(int x,y);
函数原型声明?
第28页/共38页
2.函数调用时实参与形参保持个数、类型和顺序一致。 3.可以通过return语句将一个函数值带回主调函数中
去。
求数组的n个元素中的最大值 float max(float a[],int n) { int i; float m=a[0];
第3页/共38页
§1-2 C的数据类型
介绍 C语言提供的以下一些数据类型:
整型 int short long (unsigned)
基本类型
实型 float double long double 字符型 char
空类型 void
数据类型
构造类型
数组 结构体类型 struct
指针类型
C语言数据类型中的基本类型? C语言数据类型中的构造类型?
|=、<<=、>>=
15
,
运算符功能
圆括号,函数参数表 数组元素下标 指向结构体成员 结构体成员
逻辑非 自增1,自减1 间接访问运算符 求地址运算符 强制类型转换
乘、除/整除、整数求余
加、减
小于、小于等于、大于、大于等 于
等于、不等
逻辑与 (短路运算符)
逻辑或 (短路运算符)
条件运算
赋值、 先运算再赋值
或while语句的表达式处继续进行。
第19页/共38页
输出从100到200之间能被3整除的数。
#include “ stdio.h”
main( )
{ int n;
for(n=100; n<=200; n++)
{ if(n%3!=0) continue; printf("%5d",n);
continue语句
1. 数组定义和初始化
• 全部元素赋初值,可以不指定数组长度 • 给前面部分元素赋初值,后面自动置零 • 二维数组分行全部或部分元素赋初值,可以不指定
第一维的长度 • 初值个数大于数组长度,则按语法错误处理。
2. 数组的引用
• 通过对数组元素的引用来实现
第24页/共38页
int b[]={1,-2,3,-4,5};
‘L’,
‘a’,
‘n’,
‘g’, ‘u’, ‘a’, ‘g’, ‘e’, ‘.’, ‘\0’};
char b[ ]={‘T’, ‘h ’, ‘e’, ‘ ’, ‘C ’, ‘ ’, ‘L’, ‘a’, ‘n’,
‘g’, ‘u’, ‘a’, ‘g’, ‘e’, ‘.’}; 输入含空格字符串 :
gets(b);
return 0;
}
第14页/共38页
§2-2 for语句
for(表达式1;表达式2;表达式3) 语句 (1) 先计算表达式1。 (2) 计算表达式2,若其值为真(非0为真),则执行语句,
然后执行下面第(3)步。若为假(值0为假),则结束循 环,转到第(5)步。 (3) 计算表达式3。 (4) 转回上面第(2)步。 (5) 循环结束,执行for语句下面的一个语句
字符型和整型通用? 字母A:65 字母a:97 大小写差32 大小写转换
第7页/共38页
§1-3 运算符和表达式
优先级 1
2
3 4 6
运算符
() [] -> .
! ++、-* & (类型名)
*、/、%
+、-
<、<=、>、>=
7
==、!=
11
&&
12
||
13
?:
14
=、+=、-=、*=
/=、%=、&=、^=
第4页/共38页
1. 常量
常量:在程序运行过程中,其值不能被改变的量
(1)整型常量 十进制整数
整数的八进制形式? 整数的十六进制形式? 实数的小数和指数形式?
八进制整数:以0头的数。如: 011 -011 085
十六进制整数:以0x开头的源自文库。如:0x123 -0x12 0x2g
(2)实型常量
小数形式: 有小数点且小数点后有数字。
则表达式!(a-b)+(int)c/2+a++的值是( )
• 已有定义:int a=1,b=2,c=3,d=4,m=1,n=1; 则计算表 达式(m=a>b)&&(n=c>d)后,m、n的值是( )
• 表示数学关系a≤b≤c的C语言表达式是(
)
运算符: / 除、整除 % 整数求余 ++ 自增1 -- 自减1 += 先运算再赋值 (类型名) 强制类型转换 ! 逻辑非 && 逻辑与 (短路运算符) || 逻辑或 (短路运算符) ? :条件运算符 , 逗号运算符(顺序求值)
scanf(“%s”,b);
输入字符串
第26页/共38页
#include<stdio.h> void main ( ) { int i ;
int x[ 2 ][ 2 ]={2,2,3,3} ; for (i=0 ;i<2 ;i++ ) printf(“%3d”,x[ i ][ 0]) ; } 程序输出结果是? printf(“%3d”,x[ i][ 1]) ;结果是? printf(“%3d”,x[ 0][ i]) ;结果是? printf(“%3d”,x[ 1][ i]) ;结果是?
}
}
输出从100到200之间不能被3整除的数?
第20页/共38页
下面程序,输入-1 -3 5 8 9 2 <回车>,则
输出结果是?
main( )
{ int i,a;
for(i=1 ;i<=6 ;i++ )
{ scanf(“%d”,&a ) ; if(a%2==0) break ;
break语句
printf(“%d ”,a);}
第9页/共38页
第二部分
C结构化程序设计
第10页/共38页
主要内容
2.1 三种基本结构 2.2 if 语句 2.3 for 语句 2.4 while 语句 2.5 break和continue语句
第11页/共38页
§2-1 三种基本结构
顺序结构 选择结构: if 、 switch 、 break 循环结构: for 、while 、continue、 break
符组成,且第一个字符必须为字母或下划线
如:sum,_total, ch1_1,M.D.Haln,¥100,3DMax
合法的C语言标识符形式?
第6页/共38页
• 变量要“先定义,后使用” • 变量定义时,系统按变量类型分配内存。 • 字符数据和整型数据之间可以通用。 如:已知 char c1= 'a' , c2= ‘B' 则 printf(“ %d ,%d ,%c,%c \n ”, c1, c2, c1-32,c2+32); 输出结果是: 97,66,A,b
int b[6]={-1,2,-3,4,-5}; int b[3][4]={{1,2,3,4},{5,6,7,8},
{9,10,11,12}};
int b[][4]={{0,1,2},{0},{2,3}};
int b[][]={{10,11,12,13},{14,15,16,
17},{18,19,20,21}};
for语句
/* 计算2+4+6+…+100的值 */
/* 计算1*2+2*3+3*4++…+9*10的值 */
第16页/共38页
§2-3 while语句
while语句用来实现“当型”循环结构。
一般形式:
while (表达式) 语句 当表达式为非0值(“真”)时,执行语句
。 其特点是:先判断表达式,后执行语句。
数组的引用
第27页/共38页
§3-2 函数定义和调用
1. 在主调函数中对被调用函数作函数原型声明。 函数原型声明要和函数保持函数类型 、函数名、以及 形参的类型、个数和顺序相同,不检查形参名。 int multi(int x,int y)
{ return(x*y); }
函数原型声明: int multi(int x,int y); int multi(int ,int ); int multi(int a,int b); int multi(int ,int y);
如: -0.11 .11 0.0 0.
指数形式:字母e(或E)之前为整数或小数且e后面为整数。
如:12e3, 1.8e-3, -.1e-3, e3, 2e3.5
规范化:小数点前有一位且只能有一位非零的数字
第5页/共38页
(3)字符型常量
合法的字符型常量形式? 合法的转义字符形式?
字符常量:用单引号包含的一个字符
}
如果 break ;改为 continue; 输出结果是?
第21页/共38页
第三部分
数组、函数、指针和结构体
第22页/共38页
主要内容
3.1 数组定义、初始化和引用 3.2 函数的定义与调用 3.3 指针变量的定义和引用 3.4 结构体变量的定义和引用
第23页/共38页
§3-1 数组定义、初始化和引用
第15页/共38页
#include<stdio.h>
int main()
{ int i , s=0;
for(i=1; i<=100; i++) s+=i ; /* 计算1+2+3+…+100的值 */
printf("sum=%d", s);
return 0;
} /* 计算1+3+5+7+…+99的值 */
运算类型
单目运算
双目运算符 三目运算 双目运算
结合方向 自左至右 自右至左
自左至右
自右至左
顺序求值
第8页/共38页
顺序运算
自左至右
• 下列运算符中优先级最高的运算符是( )
A. ! B. % C.+= D.||
• 已有定义:int x=789;则表达式 x/10%10的值是( )
• 已有定义:int a=3,b=4;float c=5.4;
转义字符:以\开头的字符
字符串常量:用双引号包含的字符序列.
如:'a' , '1‘ , '\n' ,'\0' , '\18' "123", "a","How do you
do!",'abc'
2. 变量
变量:在程序运行过程中,其值能被改变的量
• 变量命名要符合C语言标识符规则。
C语言标识符规则:只能由字母、数字和下划线三种字
第17页/共38页
从键盘输入的字符中统计大写字母字符的个数,
用换行符结束循环。
#include "stdio.h"
main()
{ char c; int n=0; while((c=getchar( ))!=‘\n’)
while语句
if(c>=‘A’&&c<=‘Z’) n++;
printf(“Num=%d\n",n);
输出b值。
2a (a>0)
include<stdio.h>
int main() { int a,b;
if-else语句
scanf(“%d”,&a);
if(a<0) b=-2*a; 如果从键盘上输入 8<回车>,则输出?
else if(a==0) b=0;
else b=2*a;
printf(“a=%d,b=%d\n”,a,b);
int b[3][]={{1,2,3},{1},{9,10}};
int b[4]={1,2,3,4,5};
数组初始化
第25页/共38页
输入字符串 :
char b[]=”The C Language.”;
char char
b[15]=”The b[ ]={‘T’, ‘h
’C, ‘Lea’,n‘g’u, a‘Cge’,.”‘;’,
第12页/共38页
§2-2 if语句
if(表达式1)语句1 else if(表达式2)语句2
else 语句3
计算表达式1的值, 若其值为真(值为非0),则执行语句1, 否则计算表达式2的值,
若其值为真(值为非0),则执行语句2, 否则就执行语句3
第13页/共38页
-2a (a<0)
例 有一个函数b= 0 (a=0) 编一程序,输入一个a值,