语法 标识符: 由字母、数字和下划线三种字符组成,且必须以字母或下划线开头。 关键字不能作为用户定义的标识符 用户定义标识符: 合法:cha2abca3P1 不合法: int pi break3aa+ b class public 常量: 法:"n 102 72 不合法:ABC1.2e0.5
一、语法 标识符: 由字母、数字和下划线三种字符组成,且必须以字母或下划线开头。 关键字不能作为用户定义的标识符。 用户定义标识符: 合法: char2 _abc a3 P1 不合法: int p[i] break 3a a+b class public 常量: 合法: '\n' '\102 ' '\t ' '\72' 不合法: 'ABC' 1.2e0.5 M '[]
运算符和表达式 结合性及优先级 例:(1)a+=a*=2 a+=(a=a2) a=a+(a=a“2) 若初始情况下a=3,则执行上述运算后a=?12 (2)x=a>b>c 若已知a=4,b=3,c=5则x=? (3)若已知inta5={0,2,46.8},*p=a;设a的首地址为1000,则: 执行*p++后表达式的值为0,p的值为1004 执行++*p后表达式的值为1,p的值为1000 执行*++p后表达式的值为2,p的值为1004 °对操作数的要求 1)(i+j)++,3++(X) ++,-变量 (2)a%b a,b必须为整型
运算符和表达式: •结合性及优先级 例: (1) a+=a*=2 a+=(a=a*2) a=a+(a=a*2) 若初始情况下a=3,则执行上述运算后a=? (2) x=a>b>c 若已知a=4,b=3,c=5 则x=? (3)若已知int a[5]={0,2,4,6,8},*p=a; 设a的首地址为1000,则: 执行*p++后 表达式的值为0,p的值为1004 执行++*p后 表达式的值为1,p的值为1000 执行 *++p后 表达式的值为2,p的值为1004 •对操作数的要求 (1) (i+j)++, 3++ (╳) ++,-- 变量 (2) a%b a,b必须为整型 12 0
结果的类型 int ns=0 for(n=1;n9 ch是非数字字符 x>=0&&x<=200&&x%2=0x是0到200之间的偶数 用随机函数产生在某一区间的数 如何?md0%101产生0-100之间的数字,若产生30-100应
•结果的类型 int n,s=0; for(n=1;n‘9’ ch是非数字字符 x>=0&&x<=200&&x%2==0 x是0到200之间的偶数 • 用随机函数产生在某一区间的数 rand()%101 //产生0~100之间的数字,若产生30~100应 如何?
&&与运算并结合自增、自减运算 已知a=b=1;则执行以下语句后,各变量的值为? a&&++b; ++l|-b: b=1 初始化与赋值 错误:inta=b=c=0; 应为:inta=0,b=0,c=0; 或:inta(0),b(0),c(0); 或:inta,b,c; a=b=c=0; 引用 int x-5, &y=x
• &&与||运算并结合自增、自减运算 已知 a=b= 1; 则执行以下语句后,各变量的值为? --a&&++b; ++a||--b; a=0, b=1 a=2, b=1 初始化与赋值: 错误: int a=b=c=0; 应为: int a=0,b=0,c=0; 或:int a(0),b(0),c(0); 或: int a,b,c; a=b=c=0; • 引用 int x=5,&y=x;
输入和输出流cin,cout 例: char c20; cIn 改为 若输入 how do you do gets(c) 则c的值为how 则c的值为: how do you do void maino char ch=“b’,s|l=“ abcde”; cout<ch+2;∥/输出100(d的ASCI码) ch=ch+2 ∥1输出d cout依据其后表达式类 c0ut<*(s+2);∥输出c 型决定输出内容 cout<<s+2 ∥1输出cde
输入和输出流 cin,cout 例: char c[20]; cin>>c; 若输入how do you do 则c的值为how gets(c) 则c的值为:how do you do 改为 void main() { char ch=‘b’, s[]=“abcde”; cout<<ch+2; // 输出 100 (‘d’的ASCII码) ch=ch+2; // 输出 d cout<<*(s+2); // 输出 c cout<<s+2 // 输出 cde } cout依据其后表达式类 型决定输出内容
语句: f(条件表达式 几种等价关系 if(x)依据x的类型不同,分别等价于如下形式 if(x!=0) f(x!=0 if(X=NULL) if((x=getchar)=EOF .switch语句 switch(a%5) icase 0: cout<<a++; case 1: cout<<++a; case 2 cout<<a case 3: cout 若a=2,则输出: 20
语句: • if(条件表达式) 几种等价关系 if(x) 依据x的类型不同,分别等价于如下形式: if(x!=0) if(x!=‘\0’) if(x!=NULL) if((x=getchar())!=EOF) •switch语句 switch(a%5) {case 0: cout<<a++; case 1: cout<<++a; case 2: cout<<a--; case 3: cout<<--a; } 若a=2,则输出: 2 0
循环 (1) do while先执行后判断至少执行一次 for,whle先判断后执行,可能一次也不执行 for循环条件中常使用逗号表达式 void maino Rint i; for(i=0;i<5;i+=2); 注意区分空循环 cout<<i d maIn Rint 1; for(i=0;i<5;i+=2) 024 cout<<i<< s int k-3; while(k=0)k++ 执行次数? for(int k-1; k-3; k++);
•循环: (1)do _while 先执行后判断,至少执行一次 for ,while 先判断后执行,可能一次也不执行 for循环条件中常使用逗号表达式 void main() {int i; for(i=0;i<5;i+=2); cout<<i; } void main() {int i; for(i=0;i<5;i+=2) cout<<i<<‘ ‘; } int k=3; while(k=0) k++; for(int k=1;k==3;k++); 6 0 2 4 注意区分空循环 执行次数?
(2 break语句 for(j=4j<=6j++) dif(j%2)break; X 4 cout<<x 退出 switch语句或本层循环, 在双重循环中使用时,注意退 出的是哪一层
(2)break语句 x=0; for(j=4;j<=6;j++) {if(j%2)break; x+=j; } cout<<x; 4 退出switch语句或本层循环, 在双重循环中使用时,注意退 出的是哪一层
数组 避免下面错误: char s5]=fThis is a book; 不要越界 数组名是地址常量,不可被赋值 char s[10; 只有字符数组可整体操作 s=I am fine'l 数组名做函数形参时,一维数组省略长度说明,二维数组 省略第一维的长度说明。如: void sort(int xI l,int n) void fun(char[l1o,int n)
数组 避免下面错误: char s[5]={“This is a book"}; char s[10]; s = "I am fine"; 不要越界 数组名是地址常量,不可被赋值 只有字符数组可整体操作 数组名做函数形参时,一维数组省略长度说明,二维数组 省略第一维的长度说明。如: void sort(int x[ ],int n) void fun(char[ ][10],int n)
CString. 类 CString sI=“abc”,s2=def”; afx. h char all=“xy”,a2=“uvw”; sI. MakeUppero s1=s2 struer(al); strcpy al, a2); string. h
• CString类 CString s1=“abc”,s2=def”; +、= afx.h char a1[]=“xyz”,a2[]=“uvw”; s1. MakeUpper(); s1=s2; strupr(a1); strcpy(a1,a2); string.h