Presentation is loading. Please wait.

Presentation is loading. Please wait.

复习与总结.

Similar presentations


Presentation on theme: "复习与总结."— Presentation transcript:

1 复习与总结

2 第一章 基础知识 C/C++基本程序:预编译指令(#include、#define); 有且仅有1个主/入口函数(main);
第一章 基础知识 C/C++基本程序:预编译指令(#include、#define); 有且仅有1个主/入口函数(main); 2. 关键字、标示符 3. 对象/变量:名字、类型、内存结构、操作、生命周期、作用域 4. 常量表示: 整型常量,前缀修饰符八进制0、十六进制0x,后缀修饰符L、U 实型常量,小数形式0.、指数形式1.2E-5 字符常量, 'a' '\n' ‘\\’ 字符串常量 sizeof("F\149r?\012"), strlen("F\149r?\012") 5. 表达式计算与构造:优先级、结合性

3 第一章 基础知识 ! 逻辑非 右 算术运算符 关系运算符 单目右,双目左 &&逻辑与 ||逻辑或 左 条件运算符 赋值运算符 左 逗号运算符
第一章 基础知识 结合性 运算符 优先级 ! 逻辑非 算术运算符 关系运算符 &&逻辑与 ||逻辑或 条件运算符 赋值运算符 逗号运算符 单目右,双目左 a=5+(c+=6);d=(a++)-(++b)+c--; a<b&&x>y||a<b-!c

4 第一章 基础知识 6. 类型转换 强制类型转换 int a(7), b(5); float x; x=float(a)/b
第一章 基础知识 6. 类型转换 强制类型转换 int a(7), b(5); float x; x=float(a)/b 隐式类型转换 float a=2%’A’ 7. 输出格式控制 字符 printf(“c=%c,%c”,c,’B’); 整型 printf(“a=%d,b=%-5d,c=%ld”,a,b,c); 字符串 printf(“5:%-8.3s”,”abcd”); 浮点数 printf(“\na=%f,b=%8.3f,c=%-10.2f”,a,b,c); 指数格式 printf("%-12.2e,%12.2e", , ); 8.输入 int a,b,b; scanf(“%d%d%d”,&a,&b,&c); int a[10]; for(int i=0;i<10;++i) scanf(“%d”,a+i);

5 第二章基本控制结构程序设计 if分支语句 if语句的嵌套 2. switch语句 if (a%2) 语句1; else 语句2;
if(n%3==0) if(n%5==0) cout<<n<<"是15的倍数"<<endl; else cout<< n<<"是3的倍数但不是5的倍数"<<endl; 2. switch语句 if (a%2) 语句1; else 语句2; switch (score) { case 'A': case 'a': cout<<″excellent″; case 'B': case 'b': cout<<"good"; break; default: cout<<"fair"; }

6 3. for、while、do/while语句:
第二章基本控制结构程序设计 3. for、while、do/while语句: int i=1,sum=0; //循环初始条件 while(i<=4) { sum+=i; i++; //修改循环条件 } int i=1,sum=0; //循环初始条件 do { sum+=i; i++;//修改循环条件 } while(i<=4); int i,sum=0; for( i=1; i<=4; i++ )//语法上灵活 { sum+=i; } /*习惯上:表达式1:循环初始条件;表达式2:循环终止条件;表达式3:修改循环条件*/ 三种循环语句的对比

7 第二章基本控制结构程序设计 4. 语句控制 break和continue语句 B int main(){
(1) c='B' k=2 (2) c='C' k=4 (3) c='D' k=7 (4) c='E' k=1 (5) c='F' k=11 (6) c='G' int main(){ int k=0; char c='A'; do{ switch(c++){ case 'A':k++; break; case 'B':k--; case 'C':k+=2; break; case 'D':k=k%2; continue; case 'E':k=k*10; break; default :k=k/3; } k++; } while(c<'G'); cout<<k<<endl; break和continue练习,重点讲解 k=3 B) k=4 C) k=2 D) k=0 B 7

8 第二章基本控制结构程序设计 4. 循环嵌套 void bubble_sort(int *a, int n){ int i, j,t;
for(i=0;i<n-1;i++){ for(j=0;j<n-i-1;j++){ if(a[j]>a[j+1]){ t=a[j]; a[j]=a[j+1]; a[j+1]=t;} } int a[5]={5,3,4,1,2}; bubble_sort(a,5);

9 第二章基本控制结构程序设计 5. 文件输入输出 FILE *fp; //定义文件指针
fp=fopen(“a1.txt”, ”r”); //指明打开方式 for(i=0;i<100;i++) fscanf(fp,”%d”,&a[i]); //读入数据 fclose(fp);//关闭文件关联 sort(a,100); fp=fopen(“f2.txt”, “w”); for(i=0;i<100;i++) fprintf(fp,”%4d”,a[i]);

10 第三章函数 函数组成:返回值类型、函数名、形参列表和函数体 int maxN(int i, int j) { //A
if (i>=j) return i; else return j; } int main() { //B cout<<″输入i,j:″; //显示提示信息 int i, j; //定义变量 cin>>i>>j; //从键盘上输入变量值 int result=maxN(i, j); //调用max函数 cout<<result<<endl; //输出提示和结果 return 0;

11 第三章函数 int c; int fun(int a, int b){ static int m, i=2; c=i+=m+1;
void swap1(int d1,int d2){ int temp; temp=d1;d1=d2;d2=temp; } 2. 参数传递 int a(1),b(2); swap1(a,b); //no swap2(a,b); //yes swap3(&a,&b); //yes 3. 局部变量、全局变量、静态变量 4. 递归程序设计 5. 宏定义 #define S(a,b) (a)*(b)/2 6. 函数重载、形参默认值、内联函数 void swap3(int *d1,int *d2){ int temp; temp=*d1;*d1=*d2;*d2=temp; } void swap2(int &d1,int &d2){ int temp; temp=d1;d1=d2;d2=temp; } int c; int fun(int a, int b){ static int m, i=2; c=i+=m+1; m=i+a+b; return(m); }

12 第四章类 类:数据和操作的封装 class Complex{ double m_real,m_image ; //数据成员 public:
Complex(double r=0.0, double i=0.0); //默认构造函数 Complex(const Complex &com); //拷贝构造函数 ~Complex(); //析构函数 Complex & operator=(const Complex &); //赋值运算符 Complex operator+(const Complex &); double abs(); }; int main(void) { Complex c1(1, 1), c2(2, 2), c; c=c1; cout<<c.abs()<<endl; c = c2 + c1; }

13 第四章类 Complex Complex::operator+(const Complex & c){
Complex Complex::operator+(const Complex & c){ Complex Temp(m_real+c.m_real , m_image+c.m_image) ; //局部对象显式返回 return Temp ; //复制构造临时对象 } Complex &Complex::operator=(const Complex & c){ m_real=c.m_real; m_image=c.m_image; return *this; double Complex::abs( ){ return sqrt(m_real*m_real+m_image*m_image); int main(void) { Complex c1(1, 1), c2(2, 2), c; c=c1; cout<<c.abs()<<endl; c = c2 + c1; }

14 第五章数组和指针 指针变量:存放变量地址的变量 int i=24; int *pi=&i; *pi=23; //出现在表达式中,是解引用
2. 数组:由单一类型元素组成的一个有序集合。数组名代表第一个元素的地址。 一维数组: int a[4]={1,3,4}; //初始化 int *p=a; //或者 &a[0]; p=p+1; //指向下一个元素 二维数组: int b[3][4] ={{1,1,1,1},{2,2,2,2}}; int (*q)[4]=b; //或者 &b[0] 或者&a;

15 第五章数组和指针 int b[3][4] ={{1,1,1,1},{2,2,2,2}}; int (*q)[4]=b;
第i个元素的地址:b+i, q+i, &q[i], &b[i] //一维数组的地址 第i个元素:*(b+i),*(q+i),b[i],q[i] //一维数组 第i个一维数组中第j个元素: *(*(b+i)+j),*(b[i]+j),b[i][j] 第i个一维数组中第j个元素的地址: *(b+i)+j, b[i]+j, &b[i][j] q = q+1; //指向下一个元素,即q==&b[1],移动了4个int 2. 利用一级指针指向多维数组 int b[3][4]; int *p = &b[0][0];// 或者 *b, b[0] p = p+1; // ++p; p++; 移动1个int

16 第五章数组和指针 3. 数组名等效指针,但不等价 char a[10],*p=a;
sizeof(a)!=sizeof(p); //注意不是sizeof(*p) 4.数组名转化为指针 void arrayTest(char str[]){ // 形参等价于 char *str     printf(“sizeof(str) =%d”,sizeof(str) ); //输出指针长度 str++; //编译正确  }  int main()  {  char str1[10] = “Hello";   arrayTest(str1);       return 0; }

17 第五章数组和指针 5. 字符数组 char c[]=“C++”;char *p=“C++”; //sizeof(p) sizeof(c)
库函数输入输出 puts(c); //输出字符数组 gets(c); //输入字符数组 阅读程序: void f (char *c) int main() { { c+=2; char c[20]=”abcdef”; (*c)++; f(c+1); c++; *c=0; printf(“%s”,c); } }


Download ppt "复习与总结."

Similar presentations


Ads by Google