1、关键字(系统标识符):是 系统定义的用 来 标 识 语 句 的 功 能 。32 个:auto break case char const continue default do double else enumextern float for goto if int long register return short signed static sizeof struct switch typedef union unsigned void volatile while 1.标识符: 自定义标识符:是用户定义的用来标识语句中的成份。如函数名,变量名,类型名标识符定义的规则:1)第一个字符必须
2、是字母(不分大小写)或下划线(_); 2)后跟字母(不分大小写) 、下划线(_)或数字组成; 3)标识符中的大小写字母有区别 4)不能与 c 编译系统已经预定义的关键字同名。2.数据类型:一个值的集合和对该集合值的操作。基本类型的类型符、占用空间和取值范围表基本型 所占字节 取值范围 输入格式符举例 输出格式符举例signed char 1 -27 27-1 %c %c、%d、%uunsigned char 1 0 28-1 %c %c、%d、%usigned short int 2 -215 215-1 %hdunsigned short int 2 0 216-1 %hu、%ho、%hxs
3、igned int 4 -231 231-1 %d、%o、 %uunsigned int 4 0 232-1 %u、%o、%x signed long int 4 -231 231-1 %ldfloat 4 +/- 3.40282e+038 %f、%e、%g double 8 +/- 1.79769e+308 %lf、%le、%lg、 %f、%e、%glong double 10 +/- 1.79769e+308 %Lf、%Le、%Lg常量:程序运行期间数据的值不改变。程序中有两种形式:直接书写的数据和符号表示。整数:十进制,八进制(0) ,十六进制(0x)实数:十进制,科学计数(小数 e 指
4、数)字符:字符字符串:”一串字符”符号常量定义:#define 标识符名 常量const 类型名 常量名 =表达式;变量:程序运行期间数据的值不确定。程序中,用户定义的标识符代表数据存储的空间。3.数据 在程序中访问内存空间直接使用变量名字。变量的声明和定义:扩展 类型名 变量标识符名 ,变量,变量;1 存数据:初始化、赋值语句和键盘输入函数变量的操作: 2 取数据:用变量参与表达运算数据的存储:数据在内存中,如果是字符用 ASCII 码;如果是数值用二进制补码4.运算符:告诉编译程序执行特定算术或逻辑操作的符号优先级 运算符 名称或含义 使用形式 结合方向 说明 数组下标 数组名常量表达式(
5、) 圆括号 (表达式)/ 函数名 (形参表). 成员选择(对象) 对象.成员名1- 成员选择(指针) 对象指针-成员名左到右- 负号运算符 -表达式 单目运算符(类型) 强制类型转换 (数据类型)表达式+ 自增运算符 +变量名/ 变量名 + 单目运算符- 自减运算符 -变量名/ 变量名 - 单目运算符* 取值运算符 *指针变量 单目运算符char c; 表 达 式 含 义x !x !(x=0) x 不 等 于 0 为 真c=getchar()!=n 键 盘 输 入 的 符 号 不 是 换 行x=a void return type assumed警告 错误类型号 主函数 应返回一个值;返回假定
6、的 void 类型 error C2065: i : undeclared identifier错误 错误类型号 未声明的标识符;error C2143: syntax error : missing ; before for错误 错误类型号 语法错误:丢失;在 for 之前error C2143: syntax error : missing ) before 错误 错误类型号 语法错误:丢失)在之前error C2106: = : left operand must be l-value错误 错误类型号 赋值号左操作必须是左值(变量)error C2374: x : redefinitio
7、n; multiple initialization错误 错误类型号 x 重新定义; 多次初始化fatal error C1004: unexpected end of file found致命错误 错误类型号 无法预计程序的结束 少了一个 fatal error C1083: Cannot open include file: stdio: No such file or directory致命错误 错误类型号 不能打开 stdio :没有这样文件或目录多重循环(循环的嵌套)循环体中包含循环如: int i,j;for(i=1;is): s=s+x;2 画框图描述算法3 框图转换程序int
8、x=0,s=0;for( ; xy): y=i+j*10+k*100 条件 y=i3+k3+j32 画框图描述算法3 框图转换程序3 框图转换程序int i=1,j=0,k=0;for( i=1; iy):条件 m%y=0 且 n%y的第一个数; 3 框图转换程序int m,n,y;scnaf(“%d%d”,y=m x1x2 + x1 = x2x1 + x2 = x1x2 + x1 = x2设 x1,x2 为 int X1: 0X2:1循环体: x1=x1+x2;x2=x!+X2循环次数: 20 ; 设 i 控制变量: 020例 5 打印如下图形*分析:设 结果数据 为* 完成一个字符的输出的
9、表达式 printf(“*”); 重复:输出一行;表达式 5 次并输出一个换行 printf(“n”); 设 i 循环控制变量 05输出 3 行;输出一行内容作为内循环体重复 3 次;设 j 为循环控制变量 03;例 6 百钱买百鸡。3 元母鸡,2 元公鸡,1 元 3 个小鸡。每种至少一个,购买的其中一种方案。分析:穷举法设 x ,y,z 为公、母、小鸡的个数;关系:3x+2y+z/3=100; x+y+z=100X: 132 y:148 z:1285结果表达式 printf(“”,x,y,z); 条件 3x+2y+z/3=100 n+ 条件 i!=j for(i=1;i?A106107108
10、1091106A6B6C6D6Ejklmn21222324251516171819NAKSYNETBCANEM66676869704243444546BCDEF1111121131141156F70717273opqrs26272829301A1B1C1D1ESUBESCFSGSRS71727374754748494A4BGHIJK1161171181191207475767778tuvwx31323334351F20212223US空白!“76777879804C4D4E4F50LMNOP121122123124125797A7B7C7Dyz|36373839402425262728$%sy
11、stem(“color 71“);printf(“nnnn“);for(m=0;m #include int main(void) char i;system(“color 74“);cprintf(“);cprintf(“); cprintf(“); cprintf(“); while(!kbhit()i= getch();switch(i)case 1: cprintf(“r“);cprintf(“); cprintf(“); cprintf(“); break;case 2: cprintf(“r“); cprintf(“);cprintf(“ “); cprintf(“); break
12、;case 3: cprintf(“r“); cprintf(“);cprintf(“ “); cprintf(“); break;case 4: cprintf(“r“); cprintf(“); cprintf(“);cprintf(“); break; system(“pause“); 演示 3 小学生加法#include #include #include #include #include#includevoid clean_line(int count);void gotoxy(int X, int Y);int _sjs(int);char _title(void);int _s
13、js(int t,int* p)/ 用_10() 中的 p 做个伪的静态变量int o,c; int x,y;srand(unsigned)time(NULL);x=rand()%t;y=rand()%t;if(x-y=0)c=x+y;gotoxy(32,*p);p+;printf(“%d + %d = “,x,y);return(c);elseo=x-y;gotoxy(32,*p);p+;printf(“%d - %d = “,x,y);return(o);void eatline(void)while(getchar() != n);void _10(int t)int l,i=9,p=1
14、7,n=0,k=0,d;dol=_sjs(t,scanf(“%d“,p+;if(d=l)gotoxy(32,15);printf(“你 真 棒 !“);k+;elsegotoxy(32,15);printf(“加 油 哦 !“);n+;_sleep(500);clean_line(10);while(i-);gotoxy(18,p);printf(“今天的学习就到这儿! 答对:%d 道题 答错:%d 道题n“,k,n);eatline(); / 清空缓存getchar();/_sleep(2000); / 第二种方法void gotoxy(int X, int Y)HANDLE hOutput
15、 = GetStdHandle(STD_OUTPUT_HANDLE);COORD coord;coord.X = X;coord.Y = Y;SetConsoleCursorPosition(hOutput, / handle of console screen buffercoord / new cursor position coordinates);void clean_line(int count)int i;for(i=0;i count;i+)putchar(b);for(i=0;i count;i+)putchar( );for(i=0;i count;i+)putchar(b)
16、;char _title(void)system(“cls“);system(“color 0A“);for(int i=1;i5;i+)printf(“简易幼教系统“);printf(“);printf(“tttnn“);printf(“ttt天才从儿童开始nn“);printf(“tttn“);printf(“t “);printf(“nn“);printf(“t 下面让我们开始今天的学习吧,请按照自己的要求进行选择:nn“);printf(“t 进行 10 以内的加减法练习请按 s 进行 100 以内的加减法练习请按 qn“);printf(“t 进行 1000 以内的加减法练习请按 w
17、 退出请按 nnn“);printf(“t * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n“);printf(“t * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n“);printf(“nnnnnnnnnnnnn“);printf(“t * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n“);printf(“t * * * * * * * * * * * * * * * * * * * * *
18、 * * * * * * * *n“);gotoxy(32,15);return getchar(); / 返回选择的题型void main()char m;int j,z;for(z=0;z2;z+)printf(“nnnnnnnnn“);printf(“ 欢 迎 使 用n“);_sleep(500);system(“cls“);_sleep(500);/system(“cls“); 写到_tile() 中/system(“color 0A“); 写到_tile()中/_title();/gotoxy(32,15); 这句写到_tile()中/m=getchar();/clean_line(
19、20);while(m = _title() != n) / 重复输入switch(m)case s:_10(10);continue; / 修改case q:_10(100);continue; / 修改case w: _10(1000);continue; / 修改case n:system(“cls“);printf(“nnnnnnnnnnn“);printf(“ 谢谢使用“);_sleep(10000);system(“cls“);break;for(j=20;j50;j+)_sleep(150);gotoxy(j,15);printf(“玉树加油!“);if(j=49)j=20;clean_line(10);