您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 全国计算机等级考试二级C语言教程64总复习
C语言总复习(64学时)以考试难度为限一、C语言的数据表示•1.1常量和变量•1.2表达式•1.3数据类型–简单类型、结构类型、指针类型•1.4输入、输出1.1常量和变量•1.常量–常量是在程序执行中,值不发生改变的数据。其值预先决定,之后不变。有不同的数据类型。•(1)常数(有的称直接常量、页面常量)•例如的:–整数:+5、-3、017(八进制)、0x1f(16进制)–实数(浮点数):3.14、-1.2E-3、1E10–单个字符:‘A’,占一个字节’\\’,转义字符‘\’‘\’非法’\77’(八进制ASCII码63,‘?’),’\78’非法’\x3f’(十六进制ASCII码63,‘?’)‘\x3g’非法–字符串:“A”后面有\0,占两个字节E3,2E3.0不合法不是整型量占一个字节•(2)符号常量–给常量起标识符名字。•C语言的符号常量(用宏定义):•#definePI3.14159265–好处:提高程序易读性;方便修改常量的值;注意:1.一般用大写字母。2,#defineM3不是C语句,后面没有“;”。3.可以做M+1,不能做M++.•(3)地址常量–当数组在定义时,其变量名为其首地址,是地址常量。inta[10];可以做a+1,不能做a++.1.1常量和变量•2.变量–用各种操作来改变值数据。–从“名”和“值”两个角度认识变量•(1)变量名•每个变量,要在使用前定义变量的名字,遵循标识符命名规则。–只能用字母、数字和下划线组成。–不能以数字开头。–不能用保留字(int,printf,main…..)。•变量定义就是申请数据的存储空间,登记数据的各种存储特性。–例如:intm;2个字节-215~215-1(-32768~32767)–longn;4个字节-231~231-1–charch;1个字节0~255–floatx;4个字节±3.4×(10-38~1038)–doubley;8个字节±1.7×(10-308~10308)•可以用sizeof获得字长–sizeof(char)=1–sizeof(int)=2–sizeof(double)=8•(2)变量的值•变量值就是由变量名所指定空间上的存储数据内容。即变量的当前值。•数据内容用语言的操作语句来改变。–赋值语句;键盘输入语句;•charchx;intm;/*变量的定义*/•chx=‘A’;m=12*3;/*赋值语句*/•scanf(“%d”,&m);/*键盘输入语句*/–在程序运行时,将数据存入制定内存空间。②①–变量初始化:定义变量时同时确定变量初值。•例如:charchy=‘a’;intweight=2;③1.2C语言的表达式•1、算术表达式•2、关系表达式•3、逻辑表达式•4、赋值表达式•5、逗号表达式•6、条件表达式•7、其他表达式C语言的表达式:使用规定的运算符,将常量、变量、函数(调用)连结的一个有意义的式子。1、算术表达式•用算术运算符来表示对数据的算术运算求值过程。•算术运算符:+-*/%•2/3结果是0,2%3结果是2•注意不同类型运算问题:doublelongunsignedintfloatcharshort高低2、关系表达式•关系运算符:•==(优先级较高)•!===(优先级较低)•关系表达式的结果:1(真),非0(假)•如:x0,sin(x)=0.5,(a+b)==(c*d)–注意语法合理与数学逻辑错误问题:–分析:10=a=15a=9是假10=a=1510=a假00=15真所以要写成10=a&&a=153、逻辑表达式•用逻辑表达式来表示对数据的逻辑关系判断,运算结果是逻辑值“真”1或者“假”0。•C逻辑运算符包括:–!&&||–参加逻辑运算的数据必须是逻辑量,可以是逻辑类型的变量、常量,关系表达式或逻辑表达式。•C语言中,没有专门的逻辑量,1是真值,0是假值。也认为非零的值为真值。–如:inta=3,b=4,c=-5;–(1)!((ab)&&!c||1)–(2)if(a)printf(“\nyes”);a,c均按非0(即真)处理逻辑运算规律•①在&&(与)表达式中,若&&的左端为假,则不再计算另一端,该表达式值肯定为0(假)。•②在||(或)表达式中,若||的左端为真,则不再计算另一端,表达式的值必定为1(真)。inta=5,b=1k=a=3&&b--0k?b?假,后面不算了k=0,b=1•判断闰年的条件是:能被4整除但不能被100整除,或能被400整除。(x%4==0&&x%100!=0)•水仙花数是指一个三位正整数,其各位数字的立方和等于该数本身(k*100+m*10+n==k*k*k+m*m*m+n*n*n)•三角形的基本条件((a+b)c)&&((c+b)a)&&((c+a)b))•4、赋值表达式=,+=,-=,*=,/=,++(单目),--(单目)级别仅高于逗号表达式,右结合inta=3,c=2,ba=b=c;n*=m+2相当于n=n*(m+2)k=i++;先k=i,再i=i+1k=++i;先i=i+1,再k=ic赋值给b,b=2b赋值给a,a=2•5、条件表达式e1?e2:e3若e1为真,表达式的值为e2,否则为e3.(--a==b++)?--a:b++5-1==4Ta=4--aa=3表达式的值为3a=5,b=44-1==5Fb=6b++b=7表达式的值为6a=4,b=5条件表达式的值的类型为e2,e3二者中类型较高者。如果y=5;y3?-1.0:2其值为2.0•6、逗号表达式表达式的值等于最后一个表达式的值,运算等级最低!a=5,b=2,c=3a=7+b+c,a++a=(7+b+c,a++)a=12a=57、强制类型转换表达式(单目)intm;sqrt((float)m);并没有改变m的类型和数值理解记忆运算符表(高)(低)!++,--,等算数运算符关系运算符逻辑运算符&&||条件运算符赋值运算符逗号运算符右结合单目运算符赋值运算符1.3数据类型•数据类型:在高级语言的数据表示机制中,数据类型(datatyPe)是个核心概念。简单类型构造类型指针类型整型实型字符型数组结构体共用体数值型枚举型空类型1.3数据类型•(1)整型(输入、输出格式“%d”)•类型名字节数数值范围–int2-32768~32767–short2-32768~32767–long4-2147483648~2147483647–还有无符号整型(输入、输出格式“%u”)•Unsigned[int]20~65535•Unsignedshort20~65535•Unsignedlong40~42949672951.简单类型•(2)实型•实型(float)数据的值集是实数集的一个有限子集.–-3.4e38,-3.4e-39,3.4E-38,3.4E381.简单类型•类型名字节数输入、输出格式有效数字位•float4%f7•doubule8%lf16•longdoubule16%lf19不要以为是长整型E38非法(3)字符型(输入、输出格式“%c”)ASCII码,一个字符占1字节;charca;ca=‘#’;注意转义字符’\’的使用。•(4)字符串(输入、输出格式“%s”)–所谓“字符串”是指若干有效字符的序列。C语言字符串可以包括字母、数字、专用字符、转义字符等。•字符串常量:使用双引号–ChinaBASICa+b=cLi-Li–39.4%d\n解放军“•字符型的一维数组(相当于字符串变量)–charst[8],str[10];–strcpy(st,12345);strcpy(str,st);–不能st=“12345”;str=st;•2.结构类型–“结构”一般可以称为数据元素,在不同的结构类型中,数据元素会有特定的名称。–结构类型的数据由更加基本的成分组成。•这些成分称为“数据项”,结构的子成员。1.3数据类型•(1)数组••A[0]A[1]A[2]A[3]A[4]A[5]A[6]A[7]•1020304050607080•一个数组(array)是由相同类型的若干数组元素构成的有限序列。•C语言的数定义:–intB[8],A[8];–charC[10];•2.结构类型例日期类型的定义(2)结构体•C语言中实现:•structDate•{intmonth;/*月*/•intday;/*日*/•intyear;/*年*/•};•structDatemyd={12,16,1978};•系统分配给它的内存是各成员所需内存量的总和。本例是6.•(1)指针:变量名的在内存中的存储地址。•(2)指针变量–inti=12,*p;–P=&i;–把存放变量i的地址的变量p称作指针变量。–指针变量的存放内容是数据的地址。3.指针类型•(3)指针引用变量–指针变量可以指向各种不同的数据类型,因此指针变量也要有不同的指针类型。如:–intm,*p;floatx,*q;inta[],*r–m=12;p=&m;–x=3.14;q=&x;–r=a;注意:是否用&1.4输入、输出•输出:printf(“…….”,…….)•%d,%6d,%ld•%c,%s•%f,%10.2f,%lf,%20.8lfn=3;printf(“\n%d,%d,%d”,n,++n,n++);–计算从右到左,输出从左到右。•%s是输出以指定首地址到第一个\0或空格之间的字符串。chara[]=“abcdefg”,*p=a;printf(“%s”,*++p);bcd5,5,31.4输入、输出•输入:scanf(“…….”,…….)•%d,%ld对应intlong•%c,%s对应charcharstr[]•%f,%lf对应flaotdouble•常见错误inta,b;chard,e[20];–scanf(%d,%f\n”,&a,&b);–scanf(%d,%f”,a,b);–scanf(%7.2f,&a);–scanf(%s,&e);–scanf(%c,d);•(1)表达式语句•(2)流程控制语句•(3)复合语句C语言语句⒈指令语句⒉非指令语句•⑴数据定义语句floatx;intm;•⑵编译预处理①宏定义#definePI3.14159②文件包含处理#includestdio.h二、C语言的程序结构与相关语句表达式语句•1.表达式语句的组成:–由一个表达式后接一个分号组成的。–i=i+1(是表达式,没有构成语句)–i=i+1;(是语句)–x+y;(是合法语句,但没有实际意义)•⒉表达式语句的分类:–①赋值语句:i=1;c=getchar();–②函数调用语句:printf(n\Hello,world!);–③空语句。其形式为:;–④逗号表达式语句:++a,--b;•完成一定的控制功能。9种控制语句:•判断语句–条件判断语句if()…else…–多分支选择语句switch()…case•循环语句–循环次数控制语句for()–先判断后执行循环控制语句while()–先执行后判断循环控制语句do…while()•转移控制语句–直接转移语句goto–终止语句break(用在循环结构、swicth)–跳转语句continue(仅用在循环结构)–返回语句return流程控制语句复合语句•⒈一组语句括在一对花括号之中,称复合语句。•{c=getchar();•putchar(c);•}–注意,一个复合语句的后花括号之后不应再写分号。•⒉在语法上是一个整体,相当于一个语句。–凡是能够使用简单语句的地方,都可以使用复合语句。一个复合语句中又可以包含另一个或多个复合语句。二、C语言的程序结构与相关语句•程序的三种基本结构:–顺序结构–选择结构•if()…else…•switch()…case–循环结构•for(){…..;}•while(){……;}•do{……;}while()选择结构•单分支结构if(a==b)printf(“yes”);•双分支结构if(a==b)printf(“yes”);elseprintf(“no”);•多分支结构switch_case多分支选择
本文标题:全国计算机等级考试二级C语言教程64总复习
链接地址:https://www.777doc.com/doc-3573283 .html