- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数组的引用
第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);
1. 数组定义和初始化
• 全部元素赋初值,可以不指定数组长度 • 给前面部分元素赋初值,后面自动置零 • 二维数组分行全部或部分元素赋初值,可以不指定
第一维的长度 • 初值个数大于数组长度,则按语法错误处理。
2. 数组的引用
• 通过对数组元素的引用来实现
第24页/共38页
int b[]={1,-2,3,-4,5};
运算类型
单目运算
双目运算符 三目运算 双目运算
结合方向 自左至右 自右至左
自左至右
自右至左
顺序求值
第8页/共38页
顺序运算
自左至右
• 下列运算符中优先级最高的运算符是( )
A. ! B. % C.+= D.||
• 已有定义:int x=789;则表达式 x/10%10的值是( )
• 已有定义:int a=3,b=4;float c=5.4;
for语句
/* 计算2+4+6+…+100的值 */
/* 计算1*2+2*3+3*4++…+9*10的值 */
第16页/共38页
§2-3 while语句
while语句用来实现“当型”循环结构。
一般形式:
while (表达式) 语句 当表达式为非0值(“真”)时,执行语句
。 其特点是:先判断表达式,后执行语句。
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]) ;结果是?
}
如果 break ;改为 continue; 输出结果是?
第21页/共38页
第三部分
数组、函数、指针和结构体
第22页/共38页
主要内容
3.1 数组定义、初始化和引用 3.2 函数的定义与调用 3.3 指针变量的定义和引用 3.4 结构体变量的定义和引用
第23页/共38页
§3-1 数组定义、初始化和;
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’,.”‘;’,
int multi(int x,y);
函数原型声明?
第28页/共38页
2.函数调用时实参与形参保持个数、类型和顺序一致。 3.可以通过return语句将一个函数值带回主调函数中
去。
求数组的n个元素中的最大值 float max(float a[],int n) { int i; float m=a[0];
输出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);
则表达式!(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 += 先运算再赋值 (类型名) 强制类型转换 ! 逻辑非 && 逻辑与 (短路运算符) || 逻辑或 (短路运算符) ? :条件运算符 , 逗号运算符(顺序求值)
第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);
符组成,且第一个字符必须为字母或下划线
如: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
第4页/共38页
1. 常量
常量:在程序运行过程中,其值不能被改变的量
(1)整型常量 十进制整数
整数的八进制形式? 整数的十六进制形式? 实数的小数和指数形式?
八进制整数:以0头的数。如: 011 -011 085
十六进制整数:以0x开头的数。如:0x123 -0x12 0x2g
(2)实型常量
小数形式: 有小数点且小数点后有数字。
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}};
第3页/共38页
§1-2 C的数据类型
介绍 C语言提供的以下一些数据类型:
整型 int short long (unsigned)
基本类型
实型 float double long double 字符型 char
空类型 void
数据类型
构造类型
数组 结构体类型 struct
指针类型
C语言数据类型中的基本类型? C语言数据类型中的构造类型?
转义字符:以\开头的字符
字符串常量:用双引号包含的字符序列.
如:'a' , '1‘ , '\n' ,'\0' , '\18' "123", "a","How do you
do!",'abc'
2. 变量
变量:在程序运行过程中,其值能被改变的量
• 变量命名要符合C语言标识符规则。
C语言标识符规则:只能由字母、数字和下划线三种字
}
从键盘输入的字符中统计小写字母字符的个数?
从键盘输入的字符中统计字母字符的个数?
从键盘输入的字符中统计数字字符的个数?
第18页/共38页
§2-4 break、continue语句
break;结束整个循环。跳出循环体,接着执行循 环语句下面的语句
Continue;结束本次循环。跳到: for语句的表达式3处
第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的值 */
字符型和整型通用? 字母A:65 字母a:97 大小写差32 大小写转换
第7页/共38页
§1-3 运算符和表达式
优先级 1
2
3 4 6
运算符
() [] -> .
! ++、-* & (类型名)
*、/、%
+、-
<、<=、>、>=
7
==、!=
11
&&
12
||
13
?:
14
=、+=、-=、*=
/=、%=、&=、^=
return 0;
}
第14页/共38页
§2-2 for语句