目录
1.C程序的组成
C程序的组成(一个main函数和若干其它函数),程序的执行从main函数开始,到main函数结束;main函数的位置
2.标识符的命名规则
只能是字母或下划线开头,后面可跟字母、数字、下划线
2a, D&7,name 1,f3.5, 平均分
3.常量
整型常量
实型常量(0.0,.234,120.,1.2E4,要求E的前后必须有数字,后面的指数必须是整数)
字符常量:用单引号引起来,一般字符、转义字符
字符串常量:用双引号引起来的若干字符,以’\0’作为结束标志
4.变量
符合标识符命名规则,不能重复定义
5.运算符与表达式
运算符与表达式(算术、关系、逻辑、条件表达式、赋值、逗号)a>b?1:2
注意:*/
(1)除法运算符的运算规则 7/3 1./3
- 被除数和除数都是整型,则商也是整型
- 被除数和除数中只要有一个是浮点数,则商也是浮点型
(2)取余运算符的运算规则5%2 -5%2 5%-2
- “%”要求两边操作数必须为整数
- 结果的符号和被除数的符号相同
(3)运算符的优先级
算术运算>关系运算>逻辑运算>条件运算>赋值运算>逗号运算
(4)++ --的使用
int x=1,y=2; int a=1,b=2,c=0;
x++、++x、y--、--y的值 (注意 同时执行的关联)
1≤x≤2的表示、a<b<c的值为0(左结合,大部分是,小部分是右结合(单目,赋值))、
x>=1 && x<=2
x<y || x--的值及x的值(条件运算中的短路)
x>y?x:y的值
(x=1,y=2,y+=2,x+y)的值 5
(5)赋值运算符= 与关系运算符==的区别
int x=1;
if(x=0)//区分x==0
printf(“0\n”);
else
printf(“1\n”);
6.scanf、printf的用法
(1)注意格式控制符的使用scanf(“%d”,&i) scanf(“%d”,&a[i])
(2)换行的方法
- 使用转义字符“\n”
for(int i=1;i<=20;i++)
{
printf(“%d\t”,i);
if(i%5==0) printf(“\n”);
}
7.选择结构
单分支:if(表达式)
if(c>=’0’ && c<=’9’)…
if(c>=’a’ && c<=’z’)…
if(c>=’A’ && c<=’Z’)…
判断变量是否为大/小写字母(注意其ASCII码值)、数字字符的方法
双分支:if(表达式) else …
区别以下条件
if(n)… else…
if(n!=0) … else…
if(!n) … else…
if(n==0) {…} else…
if(n=0) … else…
复合语句要加{}
嵌套结构:if…else if
多分支:switch…case(注意break的使用)
(1)注意if ~ else 配对原则:缺省{ }时,else总是和它上面离它最近的未配对的if配对
(2)if 结构中()后不要加 ;,否则当条件成立时执行空语句 if(a>b); max=a;
(3)注意复合语句的使用
8.循环结构
(1)while、do…while的区别
while(x)
//x 非0时执行循环体
while(!x)
//x等于0时执行循环体
while(x=0)//循环体执行的情况分析
{
//循环条件表达式的值为0,即假,因此不执行循环体
}
(2)for(表达式1;表达式2;表达式3)循环的执行过程,三个表达式均可省,但分号不能省;
(3)注意循环体为复合语句时需加花括号
(4)continue与break的区别
(5)break的适合场合
斐波那契数列
九九乘法表
判断素数
输出图形
N!
阶乘和
9.一维数组的定义及使用
一维数组定义、初始化、使用、输入与输出
int n=10,a[n];(X)
冒泡排序、Fibonacci数列、逆序(数值型数组、字符串)
找最值
求平均值
统计某字符串中各类字符的个数
10.二维数组
定义、使用、输入与输出
打印杨辉三角
二维数组每行最值
多个字符串排序
11.字符数组(*)
字符数组的定义及内存分配情况
字符数组的初始化char s[]=”12345\t”;
char s[10];s=”123”;(X)
字符数组的输入和输出方法
gets(s)
puts(s)
字符串处理函数的使用 strlen(s)
- 编写程序求字符串的长度
- 编写程序将字符数组S2复制到字符数组S1中
- 编写程序比较两个字符串的大小
- 统计字符串中单词个数
- 统计字符串中各类字符个数
12.指针的定义、初始化及运算
p++ p-- *p++ *++p ++*p
13.指向数组的指针
(1) int a[11],*p;
p=a; 与p=&a[0];等价。
(2) 通过指针变量访问数组元素
下标法:a[i] p[i]
指针法:*(a+i) *(p+i)
数组元素a[i]的地址:&a[i],p+i,a+i
int a[5]={1,2,3,4,5};
*p=a+2;
//p->a[2]
p[2]=? *(p+2)=? //printf("%d",*(p+2));
使用指针,输出数组内的奇数、偶数、平均值等
14.指针与字符串
char *s1=”abc”;//字符串的首地址赋给s1
可以把一个字符串常量赋给指针变量,但是不能用一个字符串常量直接给字符数组名赋值。
char *p;p=”Hello”;
char a[100];a=”Hello”; ×
15.指针数组
1.定义及意义
数据类型 *指针数组名[元素个数];
指针数组名表示指针数组的存储首地址。
2.初始化和赋值
用指针数组处理二维数组(找各行最值、多个字符串排序
16.函数的定义及函数原型声明
17.函数的调用
函数调用形式
函数调用过程
参数传递机制
18.指针与函数
(1)指针变量作函数参数(实参为变量的地址)
(2)函数调用中数组的传递
数组名作实参(形参可为指针变量,或为数组)
输出Fibonacci数列第i项
求阶乘、阶乘和、累加和
判断某整数是否为素数
字符串逆序
字符串连接