计算机二级C语言(重要知识点).ppt
授课教师闵 芳,联系方式15335198030,办公室 A3-303,周三(9月9号)上课调整到周五(9月11),1.C语言的基本概念,1源程序的格式,风格和结构,main函数及其他函数的基本概念。,任何C的源程序执行时,都是从主函数main开始执行的,其他的函数最终必将被这个主函数所调用。,C语言除了主函数规定必须取名为main外,其他的函数名可以任取,但是要符合C标识符取名规则。,在main函数体内部和外部均允许出现的实体是预处理命令,1.C语言的基本概念,1源程序的格式,风格和结构,main函数及其他函数的基本概念。,C程序书写格式自由,一个语句可以占多行,一行也可有多个语句。,C语言的基本组成单位是函数。,在C语言中,关键字都是小写的。,各个函数在程序中所处的位置并不是固定的,但要求一个函数是完整的,独立的,不允许出现在一个函数内部又去定义另一个函数,或是函数格式不齐全的现象。,C语言用/* */作注释,注释的添加形式比较自由,允许在任何插入空格符的位置插入注释,但C语言的注释不能进行嵌套。 例题江2006年春选择题21 下列各选项都是在C语言程序段中增加的注释,其中注释方法错误的是 A.void main/*int argc , char *argv*/ B.void main pri/*remark*/ntf“name”; C.void main int x/*10*/; printf“d” ,x ; D.void main int x10; /*printf“d” ,x */;,各个函数在程序中所处的位置并不是固定的,但要求一个函数是完整的,独立的,不允许出现在一个函数内部又去定义另一个函数,或是函数格式不齐全的现象。,函数类型 函数名函数参数类型 函数参数名1 ,函数参数类型 函数参数名2 ,. 函数体 ,例题2008年春季选择题21 下列叙述正确的是 A.main函数必须出现在其他函数之前 B.main函数中至少必须有一条语句 C.C程序总是从main函数的第一条语句开始执行 D.C程序总是在执行完main函数的最后一条语句后结束 2008年秋季选择题21,C程序是先由源程序*.C经编译生成目标文件*.obj,是二进制文件,然后经过链接生成可执行文件*.,是二进制文件,例题下列叙述正确的是 A.C程序中的注释只能出现在程序的开始位置和语句的后面 B.C程序书写格式严格,要求一行内只能写一个语句 C.C程序书写格式自由,一个语句可以写在多行上 D.用C语言编写的程序只能放在一个程序文件中,例题下列叙述正确的是 A.一个C语言程序只能实现一种算法 B.C程序可以由多个程序文件组成 C.C程序可以由一个或多个函数组成 D.一个C函数可以单独作为一个C程序文件存在,1.C语言的基本概念,2基本算术类型数据的表示及使用。,类型标识符(int ,float ,double,char)的意义及使用;类型修饰符(long,short,signed,unsigned)的意义及使用;,类型标识符在编译的时候,为变量分配相应的存储空间;规定了变量的取值范围;规定了变量可以进行的运算;,1.C语言的基本概念,2基本算术类型数据的表示及使用。,例题2006年秋填空题3,2007年秋选择题24,整数数值是以补码表示的;正数的补码和原码相同;负数的补码是将该数的绝对值的二进制形式按位取反再加1,左面的第一位表示符号。,1.C语言的基本概念,2基本算术类型数据的表示及使用。,基本类型常量的表示及使用int型常量的十进制,八进制,十六进制形式;,以数字0开头的数字序列,一律作为八进制数处理,基本数字范围07;,以0 x开头后面跟若干位数字的,一律作为十六进制数处理,基本数字范围09,从10-15写为A-F或a-f;,1.C语言的基本概念,2基本算术类型数据的表示及使用。,其他数字作为十进制数处理,基本数字范围是0-9。,例题int a 0144; int b 0 x64; int c 100;,类型说明符 数的范围 分配字节数 int -3276832767 short int -3276832767 signed int -3276832767 unsigned int 065535 long int -21474836482147483647 unsigned long 04294967295 ,整型数据的分类,整型数据分为基本类型,短整型,长整型和无符号整型。,整型数据的分类,整型数据分为基本类型,短整型,长整型和无符号整型。,长整型,在整数的末尾加上后缀字母”l”或”L”。 例如9L,012L,0 x32L,无符号整型在整数的末尾加上后缀字母”u”或”U”。若是长整型无符号整数,则应加后缀”lu”或”LU”,2008年秋选择题23,1.C语言的基本概念,2基本算术类型数据的表示及使用。,基本类型常量的表示及使用float型常量、double型常量的十进制小数形式,十进制指数形式;,日常的表示法 C语言中的表示形式 3.1415106 3.1415e6 2.56*10-7 2.56e-7,1.C语言的基本概念,2基本算术类型数据的表示及使用。,类型说明符float表示单精度型,在Turbo C中单精度型占4个字节内存空间,只能提供七位有效数字。,类型说明符double表示双精度型,在Turbo C中双精度型占8个字节内存空间,只能提供十六位有效数字。,Turbo C规定小数后最后保留六位,其余部分四舍五入。,2008年春选择题22,1.C语言的基本概念,2基本算术类型数据的表示及使用。,基本类型常量的表示及使用char型常量形式,常用转义字符;字符串常量形式;符号常量的命名、定义与使用;,char型常量形式字符常量是用一对单撇号括起来的一个字符,如A , 2 , *,常用转义字符 1用反斜杠开头后面跟一个字母代表一个控制字符; 2用代表字符反斜杠,用 代表撇号字符; 3用后跟1到3个八进制数代表ASCII码为该八进制数的字符;用x后跟1到2个十六进制数代表ASCII码为该十六进制数的字符,例题语句printf“abdwhiyboun“是。 A. abdwhiybou B. abdwhiybou C. dwhiyou D. abdwhiybou,转义字符及其作用 P48,例题下列不正确的转义字符是。 A. 065 B. “ C. D. 0,符号常量宏名,define 宏名 宏体 或 define 宏名,注意1.宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串代替宏名,这只是一种简单的替换,字符串中可以含任何字符,可以是常数,也可以是表达式,预处理程序对它不作任何检查。,2.宏定义不是说明或语句,在行末不必加分号,如加上分号则连分号也一起置换。,符号常量宏名,define 宏名 宏体 或 define 宏名,3.宏名在源程序中若用引号括起来,则预处理不对其作宏代换。,4.宏定义用宏名代替一个字符串,也就是简单的置换,不作正确性检查。,5.在定义预处理命令时,一行只能有一条预处理命令。,例题以下说法不正确的是_ A.在C语言程序中凡是以号开头的语句都是预处理命令行; B.C程序在执行过程中对预处理命令进行处理 C.以下是正确的宏定义 define IBM_PC,例题以下有关宏替换的叙述不正确的是_ A.宏替换不占用运行时间; B.宏名无类型; C.宏替换只是字符替换; D.宏名必须有大写字母表示,带参数的宏命令,C语言允许宏带有参数。在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数。对带参数的宏,在调用中,不仅要宏展开,而且要用实参代替形参。,带参宏定义的一般形式为 define 宏名形参表 字符串,带参宏调用的一般形式 宏名实参表;,带参数的宏命令,带参的宏定义的几点说明,1.带参宏定义中,宏名和形参表之间不能有空格出现;,2.带参宏定义中,形参不分配存储单元,因此不必作类型定义;,3.在宏定义中的形参是标识符,而宏调用中的实参可以是表达式;,例题2007年秋填空题5,1.C语言的基本概念,2基本算术类型数据的表示及使用。,基本类型变量的命名,声明,初始化及使用;,基本类型变量的命名在C语言中,标识符必须以字符或下划线开头的由字母,数字和下划线组成的序列;,基本类型变量的声明数据类型 变量名;,C语言对变量的要求“先定义,后使用”,变量说明必须放在变量使用之前,一般放在函数体的开头部分。,例题2007年秋选择题22,1.C语言的基本概念,2基本算术类型数据的表示及使用。,使用函数返回值作为操作数。,例如以下程序的输出结果。 int fun int a , int b return a b ; main int x 2 , y 5 , z 8 , r; printf“dn“,funfunx,y,z; ,1.C语言的基本概念,3运算符和表达式的表示及使用。,表达式的一般组成;,运算符功能、表达式的组成及表达式的值赋值运算符与赋值表达式、赋值运算符的左值要求;,赋值运算符 ,注意在赋值运算符的左侧只能出现变量,赋值运算符具有强制类型转换作用,例题若变量均已正确定义并赋值,下列合法的C语言赋值语句是 A.xy5 B.xn2.5 C. xni D.x541,1.C语言的基本概念,3运算符和表达式的表示及使用。,例题2005年秋选择题22,例题若x为int型变量,则执行以下语句后,x的值为。 x 5; xx-x*x;,复合赋值运算* , , -.,1.C语言的基本概念,3运算符和表达式的表示及使用。,运算符功能、表达式的组成及表达式的值算术运算符与算术表达式,,运算符的左值要求;,算术运算符有,-,*,/,,这些运算符需要两个运算对象,称双目运算符.除取余运算外,这些运算符的运算对象可以是整型,也可以是实型。,取余运算的运算对象只能是整型.取余运算的结果是两数相除之后所得的余数。,例题2006年春选择题26,1.C语言的基本概念,3运算符和表达式的表示及使用。,运算符功能、表达式的组成及表达式的值算术运算符与算术表达式,,运算符的左值要求;,不同类型数据间的转换与运算,doublefloat long unsigned intchar,short例题2006年秋填空题2,1.C语言的基本概念,3运算符和表达式的表示及使用。,运算符功能、表达式的组成及表达式的值算术运算符与算术表达式,,运算符的左值要求;,注意强制类型转换的用法 类型名变量,例如 int x y 等价于 intxy;,例题若有声明”int a 5 , b 2 ;”,则表达式”bfloatab/2”运算后b的值为_(江2007秋填空1),1.C语言的基本概念,3运算符和表达式的表示及使用。,运算符功能、表达式的组成及表达式的值算术运算符与算术表达式,,运算符的左值要求;,自增,自减运算符即,运算符是右结合性,运算级别是2,注意a 与 a 的区别先取值后先后取值,1.C语言的基本概念,3运算符和表达式的表示及使用。,运算符功能、表达式的组成及表达式的值算术运算符与算术表达式,,运算符的左值要求;,例题有下列程序 include main int x1 , y2 , z3 ; ifxy ifyz printf“d”,z; else printf“d”,y; printf“dn”, x; 程序运行之后的结果是_,1.C语言的基本概念,3运算符和表达式的表示及使用。,运算符功能、表达式的组成及表达式的值关系运算符与关系表达式;,关系运算符 , 运算级别是6 , 运算级别是7,注意等于零和不等于零的表示方法 a , a,a a0a a0两个实数判断相等和判断不相等的方法(在多分支if语句中的作用),例题若有表达式w x (y),则其中与w等价的表达式是_ A.w1 B.w0 C.w1 D.w0,例题 江2007年春选择题24 以下表示数学式”abbc D.abbc,1.C语言的基本概念,3运算符和表达式的表示及使用。,运算符功能、表达式的组成及表达式的值逻辑运算符与逻辑表达式,含有、运算符的表达式的操作数求值顺序与优化处理理;,逻辑运算符运算级别是2,,(运算优先级是11,12),注意abc 和 abc,1.C语言的基本概念,3运算符和表达式的表示及使用。,在一个表达式中,若的一端为0,则不必再计算另一端,该表达式的值肯定为0。,在一表达式中,若的一端为1,则不必再计算另一端,该表达式的值肯定为1。,例题执行下列程序段后,w的值为 int wA , x 14,y15; wxy A.-1 B.NULL C.1 D.0,例题有以下程序 main int i 1 , j 2 , k 3 ; if i 1 运行之后的结果是_。,例题设x,y,z和t均为int型变量,执行以下语句后,t的值为。 xyz0; txy,例题下列只有当整数x为偶数,才是逻辑“真”的表达式 A.x20 B.x20 C.x-x/2*20 D.ifx2,1.C语言的基本概念,3运算符和表达式的表示及使用。,运算符功能、表达式的组成及表达式的值逗号运算符与逗号表达式,逗号表达式的操作数求值顺序;,逗号表达式一般形式为 表达式1,表达式2,表达式3,.,表达式n,整个逗号表达式的值是表达式n的值。,1.C语言的基本概念,3运算符和表达式的表示及使用。,在所有运算中,逗号表达式的优先级最低,逗号表达式一般形式中的表达式1和表达式2也可以是另一逗号表达式,并不是在所有出现逗号的地方都组成逗号表达式,如在变量说明中,函数参数表中逗号只是用作各变量之间的间隔符。,例题有如下程序 include main int a 5 , b -3 , c 4 ; printf“ddn“ , a , b , c -2 ; 运行该程序的输出结果是_。,例题已知字符A的ASCII码值为65,以下程序结果为 include main int b 20 ; char a A; printf“d,on“,aa1,ab,b, a a-A,b ; ,1.C语言的基本概念,3运算符和表达式的表示及使用。,运算符功能、表达式的组成及表达式的值条件运算符与条件表达式;,条件运算右结合性 e1 e2 e3,若e1为真非0,则此条件表达式的值为e2的值;若e1为假0,则表达式取e3的值。,条件运算右结合性,例题ab x ymn,例题江2006年秋选择题22 若已有声明”int x 4 , y 3 ;”,则表达式“xyxy”的值是_ A.2 B.3 C.4 D.5,1.C语言的基本概念,3运算符和表达式的表示及使用。,运算符功能、表达式的组成及表达式的值位运算符与位运算表达式;,位运算符 按位取反 printf“nd“ ,c; ,2.基本语句,1实现顺序结构的语句表达式语句包括函数调用语句、空语句、复合语句;标准设备输入输出函数printf、scanf、getchar、putchar、gets、puts。,注意,(a)getchar是无参函数,从输入设备读取一个字符,包括不可显示字符。,(b)gets和puts函数只有一个参数,且为字符串的首地址。,(c) printf函数中的实参的求值顺序从右向左。,在格式控制串中,格式说明与输出项从左到右在类型上必须一一对应匹配;,在格式控制串中,格式说明与输出项个数相同。如果格式说明的个数少于输出项的个数,多余的项将不予输出。反之,多余的格式将输出不定值(或0值);,如果想输出百分号“”,则在格式控制串中用两个连续的百分号””来表示;,printf函数的返回值为本次调用输出字符的个数。,(d) scanf函数的格式控制符中的普通字符照原样输入。,2006年秋选择题23、28,2007年春填空题4,在scanf中非格式字符是作为输入数据时的间隔,输入时必须原样地输入。而格式字符对应的数据,输入时必须按照规定的格式输入;,在所有数据输入后,可用一个回车符结束输入;,用c作为输入字符是仅接受单个字符。从键盘输入单个字符后应该跟回车键作为输入数据的结束,此时回车作为一个字符存放在缓冲区中,如再有c作为输入字符时,将不再从键盘读入数据,而是从缓冲区读入还未读完的数据。,例题 2006年秋选择题23 23.若有声明”int i ; float x ;char a50;”,为使i得到值为1,x得到值为3.1416,a得到值yz,当执行语句“scanf“3df2s” , ”,执行for;cgetcharn; printf“c”,c”时,从键盘输入”ABCDEFG ”之后,输出的结果是_。 A.ABCDEFG B.AABBCCDDEEFFGG C.非字母数字字符 D.语句不能执行,例题若要求从键盘读入含有空格字符的字符串,应使用函数0604国 A.getc B.gets C.getchar D.scanf,例题2007年春填空题4 4.已知程序中有声明”int a ; long b ;”,若需要接受从键盘输入的电话号码字符串01064782656(其中010是区号,64782656是电话号码),并将其中的区号,电话号码分别存放到变量a,b中,则实现该功能的输入语句应为“scanf“_” , by;else ay;bx; B.ifxy ax ;by;else ay;bx; C.ifxy ax;by;else ay;bx; D.ifxy ax;by;else xy ay;bx ;,例题设变量x和y均已正确定义并赋值,下列if语句中,在编译时将产生错误信息的是 A.ifx; B.ifxy,题型,a数学分段函数的求值问题,b繁琐的二维数组求值填空问题结合循环语句,必考,例题2007年秋填空题8 8.以下程序运行时输出结果是 include void flong x if x 100 printf “d” , x/10 ; else fx/100; printf“d” , x100/10; main f123456; ,2.基本语句,2实现选择结构的语句ifelse语句、switch语句和break语句。,switch(表达式) case 常量表达式1 语句1 ; break; case 常量表达式2 语句2 ; break; case 常量表达式n 语句n ; break; default 语句n1; ,注意,a在case后的各常量表达式的值不能相同,否则会出现错误,b各case和default子句的先后顺序可以变动,而不会影响程序执行结果。,2.基本语句,2实现选择结构的语句ifelse语句、switch语句和break语句。,注意,例题2007年春填空题9,c多个case可以共用一组执行语句,d“语句”为多条时,可以不必加大括号,fdefault语句可缺省,例题2007年春填空题9 9.以下程序运行后输出结果的第一行为,第二行为_ include void main int i 5 ; do switch i 2 case 0 i; break; case 1i;continue; i;printf“dn”,i; whilei0; ,例题main int a2,b7,c5; switcha case 1switchb0 case 1 printf“”;break; case 2 printf“”;break; case 0switchc5 case 0 printf“*”;break; case 1 printf“”;break; case 2 printf“”;break; defaultprintf“ 运行结果是,2.基本语句,3实现循环结构的语句while语句、dowhile语句、for语句等。,当型循环语句一般格式 while(表达式) 语句,注意,a表达式应有 ,b“语句”为复合语句时应加大括号,c“语句”中含有break,continue语句时的情况,break终止本层循环;在多层循环中,一个break语句只向外跳一层,即中止一层循环,continue终止本次循环的执行,进入下一次循环。,例题设x和y均为int型变量则执行下面的循环后,y的值为。 y1,x1; while y 10 break; if x 2 1 x 3 ; continue ; x2; y ; A.3 B.4 C.5 D.6,例题下列叙述中正确的是 A.break语句只能用于swith语句体中 B.continue语句的作用是使程序的执行流程跳出包含它的所有循环 C.break语句只能用于循环体内和swith语句体内 D.在循环内使用break语句和continue语句的作用相同,2.基本语句,3实现循环结构的语句while语句、dowhile语句、for语句。,直到型循环语句一般格式 do 语句 while(表达式);,注意,a无论表达式是否成立,循环体至少执行一次;,b格式中表达式有 ,且后面的”;”不能丢;,c在语句中应有使”表达式”趋于不成立的语句存在;,例题2007年秋填空题6,例题2007年秋填空题6 6.以下程序运行的结果是. include main int s 1,n 235; do s*n10; n/10; whilen; printf“dn”,s; ,for循环结构的执行过程如下,1.求解表达式1;,for型循环语句一般格式 for 表达式1;表达式2;表达式3 语句;,2.求解表达式2,若其值为“真”,则执行for语句中的循环体,然后执行下面的执行第3步。若为假(值为0)则结束循环转到第5步;,3.求解表达式3;,4.转回上面第2步继续执行;,5.执行for语句下面的一个语句;,2.基本语句,3实现循环结构的语句while语句、dowhile语句、for语句。,注意,a繁琐的二维数组填值问题,b三种循环语句可以互相嵌套,例题2007年秋选择题25, 25.若在一个C语言源程序中”e1”和”e3”是表达式,“s;”是语句,则下列选项中与语句”fore1e3 s;”功能等同的语句是_ A.e1;while10s;e3; B.e1;while10s;e3; C.e1;while10e3;s; D.while10e1;s;e3;,例题2007年春选择题26, 26.下列关于循环语句for,while,do_while的叙述中正确的是 A.三种循环语句的循环体都必须放入一对花括号中 B.三种循环语句中都可以缺省循环中止条件表达式 C.三种循环语句的循环都至少被无条件地执行一次 D.三种循环语句都可能出现无穷循环,例题 2006年秋选择题24 24.程序段”int x 3 ;do printf“d” , x;whilex;”执行结果是_. A. 3 2 1 B.2 C.3 D.死循环,2.基本语句,4其他语句break、continue、return。,break语句,用于循环,switch语句;,continue语句,用于循环语句;,return语句,用于函数返回值;,例题下列叙述中错误的是 A.用户定义的函数中可以没有return语句 B.用户定义的函数可以有多个return语句,以便可以调用一次返回多个函数值 C.用户定义的函数中若没有return语句,则应当定义函数为void D.函数的return语句中可以没有表达式,3.构造类型数据,1基本类型数组一维、二维。,一维数组,定义,定义并初始化,类型名 数组名常量表达式,类型名 数组名常量表达式表达式列表;,或 类型名 数组名 表达式列表;,引用,只能引用下标变量,注意,a不能定义动态数组。,如int n ; int an;,错误,b只能在定义数组时初始化,以后不可以对数组整体赋值 除字符数组外。,1基本类型数组一维、二维。,一维数组,注意,c除了字符数组外,不可整体引用数组;,d一维数组一般用一层循环扫描所有数组元素,e一维数组在内存中存储是连续的,例题2007年秋填空题2, 2007年秋填空题9, 2006年秋选择题24,int a51,2,3,4,5;,正确,int a5; a51,2,3,4,5;,错误,例题2007年秋填空题2 2.如有声明”char s10 “remind”;”,执行“puts s 2 ;”后的输出结果是_;,例题2006年秋选择题25 25.若有字符数组A和B的声明”static char A “ABCDEF”,BA,B,C,D,E,F;”,则数组A和数组B的长度分别是_ A.7,6 B.6,7 C.3 D. 死循环,例题 2007年秋填空题9, 9.以下程序运行时输出结果的第一行是_;第二行是_。 include int fun int *x , int n int i , j ; for ij0;in;i if *xi2 *xj *xi; return j ; main int a10 1,5,2,3,8,3,9,7,4,10,n ,i ; n funa , 10; for i 0 ; i n ; i printf“5d”,ai; ifi130 printf“n”; ,例题 当运行下列程序时,输入abcd,程序的输出结果是_0604国填9 insert char str int i; istrlenstr; whilei0 str 2*i stri;str2*i-1*;i; printf“sn”,str; main char str40; scanf“sn”,str; insertstr; ,3.构造类型数据,1基本类型数组一维、二维。,二维数组,定义,定义并初始化,类型名 数组名常量表达式1常量表达式2,类型名 数组名常量表达式1常量表达式2表达式列表;,引用,只能引用下标变量,注意,不能定义动态数组。,如int m, n ; int amn;,错误,3.构造类型数据,1基本类型数组一维、二维。,二维数组,注意,b.不可整体引用数组;,c.二维数组一般用双层循环扫描所有数组元素,以及其他运算。,a.只能在定义数组时初始化,以后不可以对数组整体赋值。,int a231,2,3,4,5 , 6;,正确,int a23; a231,2,3,4,5,6;,错误,d.二维数组在内存中连续存储,数组名是0行0列数组元素的地址,ai是第i行第0列元素的地址。,3.构造类型数据,1基本类型数组一维、二维。,例题下列数组定义中错误的是0604国 A.int x30; B.int x231,2,3,4,5,6; C.int x31,2,3,4,5,6; D.int x231,2,3,4,5,6;,例题若有声明”int a34,*pa0,*q4a;”,则下列叙述中错误的是_07秋江选26 A.a23与q23等价 B. a23与p23等价 C.a23与*(p11)等价 D.a23与pp11,*p等价,例如有下列程序0809国选35 include define N 4 void fun int aN, int b int i ; fori0;iN;i bi aii; main int xN1,2,3,4,5,6,7,8,9,10,yN, i; funx,y; fori0;iN;i printf“d”,yi; printf“n”; 程序运行的结果是,例题2007年春填空题11 以下程序运行后输出结果第一行_,第二行_,第三行 include “stdio.h“ define N 3 main int aNN,bN*N1,1,i,j; fori2;iN*N;i bi bi-1 b i-2 ; for i0;iN;i for j0;jN;j ajibi*Nj; for i0;iN;i for j 0 ; jN;j printf“5d“ ,aij; printf“n“; ,二维数组,e.二维数组的第一维方括号的常量表达式可以省略,此时第一维大小按以下规则决定,当初值的个数能被二维的常量表达式的值除尽时,所得商数就是第一维的大小;,当初值的个数不能被第二维的常量表达式的值除尽时,则,第一维的大小 初值个数/第二维常量表达式值 1,例如 int c3 1,2,3,4,5 ; 则数组c的第一维大小是多少,3.构造类型数据,1基本类型数组一维、二维。,字符数组一维,二维,有普通一维,二维数组的性质,特点,a可以初始化,也可以使用strcpy 赋值,char str10 a, b, c;,char str10 “abc“;,char str10;strcpy str , “abc“ ,b可以引用下标变量,也可以整体引用一维数组,c一般用于存储字符串。,d字符串的基本概念串结束符 , 内存单元地址,字符串,通常用一个字符数组来存放一个字符串,字符串总是以0存入数组。用字符串方式赋值比用字符逐个赋值也要多占一个字节,存放结束符。,3.构造类型数据,1基本类型数组一维、二维。,字符数组一维,二维,有普通一维,二维数组的性质,特点,e.字符串函数的使用,字符串长度strlen ,字符串赋值strcpy ,字符串连接st