C语言期末复习1

c语言期末复习辅助

知识点总复习

1.程序结构是三种,顺序结构,循环结构,选择结构,

2.读取程序都需要在main()函数入口,然后从上往下读,直到主函数结束。

3.计算机中的数据是以二进制的形式保存的,存放的位置就是他的地址,地址是十六进制的

4.运算符的优先级:单目运算符>双目运算符>三目运算符,算术运算符>关系运算符>逻辑运算符>赋值运算符,逗号运算符的级别最低。

常见基础知识

普遍

1.标识符必须有字母数字下划线组成,并且第一个字符必须为字母或者数字。

2.不能用main define sacnf等作为标识符

3.c语言的八进制要以0开头,十六进制要以0x开头。

4.小数的合法写法:1.0可以写成1 0.1可以写成.1

5.e前e后必须有数,e后必为整数。

6.long int x 表示x是长类型 unsignde int x 标识x是无符号类型

表达式:

1.算数表达式:

”/“两边都是整形,那么结果就是一个整数(四舍五入)

”/“如果有一边为小数,那么结果就是小数

”%“注意是取余数,两边的要求是整数。

2.赋值表达式

不能连续赋值

赋值的左边只能是一个表达式

3.自加表达式

++在前先加后用,,++在后先用后加(–类似0

4.逗号表达式

优先级别最低

5.三种取整丢小数的情况

int a=1.6;

(int)a;

1/2;3/2

6.定义宏常量:#define 标识符 字符串加分号

1
2
#define PI 3.14159
定义pi

定义const常量: const 数据类型 标识符字符串

1
2
const int MAX_VALUE = 100;
在这个例子中,MAX_VALUE就是一个const常量,它的数据类型为int,值为100。在程序中可以直接使用MAX_VALUE来代表这个值,而不需要担心其被修改。

字符

重要:大写字母和小写字母转换的方法

‘A’+32=‘a’ 相互之间一般差32

转移字符(重要)

\n换行

\0空字符

注:字符型(char)和整数(int)是近亲:有着相似的地方

char a=65

printf(“%c”,a);得到a

printf(“%d”,A);得到65

键盘输入和屏幕输出:

getchar()用于字符输入

putchar()用于字符输出

printf()用于输出数据

scanf()用于输入数据

选择结构

1.if()语句后面不加分号

2.单支if() 双支if else 多分支if if else() else

1
2
3
if (){
......;
}

3.switch语句

1
2
3
4
switch(){
case 1:.....;
break
}

一般需要break使其跳出循环,否则将会按照顺序往下继续进行

循环结构

1.while

1
2
3
while(){
......;
}

执行过程:

1.计算循环控制表达式的值;
2.如果循环表达式的值为真,那么就执行循环体中的语句,并返回while重新开始判断
3.如果循环控制表达式的值为假,就退出循环,执行循环体后面的语句。

2.do-while

1
2
3
4
do
{
.....;
}while();

执行过程:

1.执行循环体中的语句;
2.计算循环控制表达式的值;
3.如果循环控制表达式的值为真,那么返回继续执行
4.如果循环控制表达式的值为假,就退出循环,执行循环体后面的语句。

3.for

1
2
3
4
for(初始化表达式;循环控制表达试;增值表达式)
{
语句序列
}

4.注意:使用合适的循环结构,①如果循环次数已知,计数控制的循环,用for语句。②如果循环次数未知,条件控制的循环,用while语句③如果循环体至少要执行一次,用do–while语句。

数组

定义并初始化数组

存放五个字符:

1
char a[5]={'a','b','c','d','e'};

存放一个字符:

1
char a[5]="abcd";

二维数组初始化:

1
char a[3][4]={"abc","cv","rty"};

输入字符串

1.scanf(“%s”,字符串名称);

scanf(“%s%s%s”,s1,s2,s3);

2.get

get(字符串名称);

只能输入一个字符串,从光标开始到换行符,也就是说读入的是一整行。例如输入Hello World!获取的是Hello World!

输出字符串

1.printf(“%s”,字符串名称);

输出项只能是字符串的名称,不能是数组元素。输出字符串不包括字符串结束标识符\0

2.put

puts(字符串名称);

puts输出一个字符串和一个换行符

函数

函数,函数对形参做处理,结果以return语句形式返回。对函数定义时要加函数类型和实参类型,但函数调用时实参不带类型。

补充:常见内容的运用

交换排序

1
2
3
4
5
6
7
8
9
10
int i,j,temp,n,a[1000];
for (i=0;i<n-1;i++){
for (j=i+1;j<n;j++){
if (a[j]>a[i]){
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
}

选择排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int i,j,k,temp;
for (i=0;i<n-1;i++){
k=1
for(j=i+1;j<n;j++){
if (a[j]<a[k]){
k=j
}
}
if (k!=i){
temp=a[k];
a[k]=a[i];
a[k]=temp;
}
}

插入排序

1
2
3
4
5
6
7
8
9
10
int i,l,temp,a[num];
for (i=1;i<num;i++){
l=i-1;
temp=a[i];
while(l>=0&&a[l]>temp){
a[l+1]=a[l];
l--;
a[l+1]=temp;
}
}

冒泡排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void bubble_sort(int arr[],int size){
int i,j,temp;
for (i=0;i<size-1;i++){
int count = 0;
for (j=0;j<size-1;j++){
if (arr[j]>arr[j+1]){
tmep=arr[j];
arr[j+1]=arr[j];
arr[j+1]=temp;
count=1
}

}
if (count==0)
break;
}
}

查找

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int low,high,a[n],mid,temp;
low=0,high=n-1,mid=0;
while(low<=high){
mid=(low+high)/2;
if (a[mid]>temp){
high=mid-1;
else if (a[mid]<temp){
low=mid+1;
else{
cout<<a[mid]<<endl;
}

}
}
cout<<"not found!"<<endl
}