还剩39页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
语言基础知识总结C主要内容数据类型
1.C.简单的算术运算和表达式
2.键盘输入和屏幕输出
3.选择控制结构
4.循环控制结构5总结风格分条罗列,主要是知识点,有例题不多数表;格式控制字符串包括格式转换说明符,需要原样输出的普通字符2函数的格式转换说明符3printf输出带符号十进制整数,整数符号省略%d-输出无符号十进制整数%u-输出无符号八进制整数,不输出前导符%o-0输出无符号十六进制整数小写,不输出前导符%x-Ox输出无符号十六进制整数大写,不输出前导符%X-Ox输出一个字符%c-输出字符串%s—一以十进制小数形式输出实数,包含单,双精度,隐含位小数,但并非全是有效%f6数字,单精度有效位,双精度位716以指数形式输出实数小写表示指数部分,小数点前有且仅有一位非数字%e-e0以指数形式输出实数大写表示指数部分%E-E自动选取或格式中宽度较小的一种使用,不输出无意义的%g—f e0%%—输出%输出值参数表需要输出的数据项的列表,可以是变量或表达式,逗号隔开,类型与格4式转换说明符相匹配每个格式转换说明符与输出值参数表中的输出值参数一一对应,没有输出值参数,格式5控制字符串就不需要格式转换说明符例从键盘输入一个大写英文字母,将其转换为小写字母和其十进制码值显示在6ASCII屏幕上#includestdio.hvoid mainchar ch;printfHPlease entera key:1;ch=getchar;ch=ch+32;printf,,%c,%d\n,,ch,ch;//printf,%cn,ch«=»putcharch,printfn\n«=»putchar\n,}函数中的格式修饰符在%和格式符中间插入格式修饰符,用于输出格式的微调,7printf如指定输出域宽、精度、左对齐等英文字母一修饰格式符时,,用于输出型数据1d,o,x,u long英文字母修饰格式符时,用于输出型数据L—f,e,g long double英文字母修饰格式符时,用于输出型数据h-d,o,x short输出域宽为整数,输出时占列,若当数据宽度小于时,域内右靠齐,m—m m m0,m左补空格,当数据宽度大于时,修饰符失效,按实际宽度输出,若有前导符左边多余m m0,位补若输出数据在域内左靠齐0;m0,显示精度为大于等于的整数,精度修饰符位于最小域宽修饰符之后,由圆点和.n—n0整数构成,对于浮点数,用于指定输出的浮点数小数位数;对于字符串,用于指定从字符串左侧开始截取的子串字符个数使用常量定义编程从键盘输入圆的周长和面积,使其输出数据保留两位小数8const pi,#includestdio.hvoid mainconst double pi=
3.14159;double r,circum,area;printfPlease enterr:n;scanfn%lf\r;circum=2*pi*r;area=pi*r*r;输出没有宽度和精度的值:;printfprintf,circum=%f,area=%f\n,,,circum,area;输出没有宽度和精度的值:;printf〃域宽为占个字符宽度,小数点也算printfcircum=%
7.2f,area=%
7.2nn”,circum,area;7,7一个字符,精度为小数点后保留位2,
2.数据的格式化键盘输入12函数的一般格式:格式控制字符串,参数地址表;1scanf scanf格式控制字符串包括格式转换说明符,分隔符2格式转换说明符以%开始,以格式字符结束,用于指定各参数的输入格式3函数的格式转换说明符4scanf输入十进制整数%d—输入八进制整数%o—输入十六进制整数%x-输入一个字符,空白字符包括空格、回车、制表符也作为有效字符输入%c—输入字符串,遇到第一个空白字符包括空格、回车、制表符时结束%s—%£或%-输入实数,以小数或指数形式输入均可%%一输入一个%参数地址表由若干变量的地址组成的列表,用逗号分隔5函数中的格式修饰符在%和格式符中间插入格式修饰符6scanf英文字母一加在格式符之前,用于输入型数据;加在之前,用于输入1d,o,x,u longf,e型数据double英文字母加在格式符之前,用于输入型数据L-f,e longdouble英文字母加在格式符时,用于输入型数据h-d,o,x short输出域宽为正整数,指定输入数据的宽度,系统自动按此宽度截取所需数据显示m-m精度为或正整数,没有精度格式修饰符,输入时不能规定精度忽略输入修.n-n0scanf饰符*一表示对应的输入项在读入后不赋给相应的变量函数输入数值型数据时,被认为输入结束的几种情况遇空格符、回车符、制表7scanf符;达到输出域宽;遇非法字符输入如果函数的格式控制字符串中存在除格式转换说明符以外的其他字符,必须将这8scanf些字符原样输入#includestdio.hvoid mainint a,b;scanfH%d%dn,a,b;〃以空格作为分隔符,等价于scanf%d%d”,a,b,等价于scanfn%d%d\a,b,〃实际输入吐空格、回车符、制表符都可作为分隔符,即输入printfa=%d,b=%d\n\a,b;:12空格回车制表符均可,3412341234#includestdio.hvoid mainint a,b;scanf%d,%d”,a,b;〃输入时必须以逗号作为分隔符,即只能输入12,34printfna=%d,b=%d\n,,,a,b;#includestdio.hvoid mainint a,b;scanfa=%d,b=%d”,a,b;〃输入时必须将Ha=n和“b=原样输入,即只能输入:a=12,b=34printfa=%d,b=%d\nn,a,b;#includestdio.hvoid mainint a,b;scanf%2d%2d”,a,b;〃输入时将前两位数读入存到a中,接着两位存到b中,然后结束读取,即输入或结果一样1234,123456printfna=%d,b=%d\nn,a,b;#includestdio.hvoid main{int a,b;scanfn%d%d\a,b;printfa=\%d\,b=V%d\”\n”,a,b;〃输出a=12\b二34”}#includestdio.hvoid mainint a,b;@诅”%加%心@,切;//任意字符都可作为分隔符,即输入或或51%12,34123412+34结果都一样printfn a=%d,b=%d\n,a,b;#includestdio.hvoid mainint a,b;scanf”%2d%*2d%d”,a,b;〃忽略两位,输入123456〃输出printfa=%d,b=%d\n”,a,b;a=12,b=56对于程序#includestdio.hvoid mainint a,b;scanfn%d%d”,a,b;printfna=%d,b=%d\nn,a,b;如果输入回车,则结果程序在遇到非法字符时,会导致程序输入终止,此时1234a a=12,b=3,a会读入会读入a12,b3如果输入回车,则结果程序在遇到非法字符时,会导致程序输入终123a a=123,b=-858993460,a止,此时会读入而未能读入指定数据项数a123,b如果在函数中忘记在变量前加取地址运算符,会导致非法内存访问scanf
13.%c格式符使用几种情况用%格式读入字符时,空格字符和转义字符包括回车都会被当做有效字符读入1例键盘输入一个整数加法算式操作数操作数输出操作数操作数计算结果1+2,1+2=#includestdio.hvoid mainint datal,data2;〃输入空格+空格回车〃输出char op;12312-858993460=858993448printfuEnter datal+data2\n;//输入12空格3回车〃输出123=15scanf”%d%c%d\datal,op,data2;〃输入12+3回车〃输出:12+3=15printfn%d%c%d=%d\nn,data1,op,data2,data1+data2;先输入一个数据后再输入字符型变量时,输入一个数据后,输入的回车符将被当做有效2字符读给字符型变量例编程从键盘先后输入型、型和型数据,要求每输入一个数据就显示这个数int charfloat据的类型和数据值#includestdio.h void maininta;char b;float c;printfHPlease inputan integer:n;scanfn%dn,a;printf integer:%d\n\a;〃在输入一个整型数据后,输入的回车符被当做有效字符读给了字符型变量了b printfC^Pleaseinput a character:n;scanfH%cn,b;printf1*chracter:%c\nn,b;printfHPlease inputa floatnumber:*;scanfn%f;c;printfHfloat:%f\nn,c;格式符存在问题的解决方法
14.%c用函数将数据输入时存入缓冲区中的回车符读入,以避免被后面的字符型变量作1getchar为有效字符读入#includestdio.hvoid maininta;char b;float c;printfHPlease inputan integer:n;scanfn%dn,a;printfninteger:%d\n n,a;;//将存于缓冲区中的回车符读入,避免在后面作为有效字符读入getchar//函数的返回值是一个回车符,已经避免了错误,不需要再将其赋给字符型变量getchar使用printfnPlease inputa character:;scanf%c”,b;printfH chracter:%c\nn,b;printfHPlease inputa floatnumber:n;scanfu%f;c;printfnfloat:%f\nn,c;在%前面加一个空格,将前面数据输入时存于缓冲区的回车符读入,避免被后面的字2符型变量作为有效字符读入#includestdio.h void main inta;char b;float c;printfHPlease inputan integer:n;scanfn%dn,a;printf integer:%d\n\a;printfC^Please inputacharacter:n;scanfH%c;b;//在%c前面加空格,将存于缓冲区中的回车符读入printf1*chracter:%c\nn,b;printfHPlease inputa floatnumber:*;scanfn%f;c;printfHfloat:%f\nn,c;}〃解释在%前加空格为什么能将存于缓冲区中的回车符读入c因为如果函数的格式控制字符串中存在除格式转换说明符以外的其他字符,必须将这些scanf字符原样输入,所以在%c前加空格,就必须在输入字符型数据前先原样输入空格,而空格,回车符,制表符在函数输入数值型数据时都代表输入结束,由实践可知,空格符、回车符、制表符在输入scanf时等效所以,缓冲区中的回车将代替需要原样输入的空格,因此,实际上,在%©前增加空格或者Tab键都可以完成,并且与增加的数量无关,且可以混合增加*经典例题编程实现键盘任意输入字符,统计字母、数字、空格、其他字符数量首选字3符串的方法#includestdio.h#define N100int mainchar a[N];int i,m=0,n=0,b=0,c=0;请输入字符:printf\n;getsa;fori=0;a[i]!=\0;i++ifa[i]=,ala[i]=!z,||a[i]=,A,a[i]=,Z!m++;else ifa[i]=0a[i]=9n++;else ifa[i]==,f b++;else c++;printf字母个数:%d\nH,m;printff数字个数%d\nH,n;空格个数printf%d\n\b;其他字符个数:printf%d\n;c;return0;单个字符输入的方法,但是要解决缓冲区的问题#includestdio.hint maincharch;inta,b,c,d;a=b=c=d=0;请输入字符字printf do{ch=getchar;〃清除缓冲区的回车键,不然会当做第二个字符读入getchar;ifch!=,//用Tab键控制输入结束,他在程序中只会出现一次并且统计一次,{〃然后结束,所以要去掉它,可以使用语句,也可在前面初始化为if d=-lifch=,a,ch=,z,||ch=,A,ch=,Z,a++;else ifch=,0ch=,9,b++;else ifch==C++;else d++;}whilech!=*;printf字母个数:%d\nH,a;printf数字个数:%d\nn,b;空格个数printf%d\n\c;其他字符个数:printf%d\n;d;return0;〃解释你可以把控制结束改成其他任意字符,包括字母、数字、/;都可以,就是不能直Tab接使用回车控制结束,因为你在实际键盘输入时,需要打回车才能把前面的字符读入,当你输完回车后,就已经换行了,再回车就达不到你要的效果了,不可能把他读入,但是他会留在缓冲区下一次使用,所以说,理论上任意字符都可以控制结束,但是不能直接使用回车再回车的方法,而函数一次只能读一个字符,当你回车读入字符后,回车符就会留在缓冲区下getchar一次使用,你可以试试,你把这行语句注释,然后一次输入两个字符再回车的话,那getchar么这时他也只能读入第一个字符,第二个字符和回车就会计入第二次、第三次的结果总结这种方式与用字符串的区别在于,字符串可以统计任何字符,但是这种方式不能统计你用来控制结束的字符,比如说,你用/控制结束,那么就不能统计/的数量了,而且你要把他去掉,因为在整个程序中/只会出现一次,然后就结束了**当程序中出现两次或以上的键盘输入时,就有可能出现缓冲区的问题,只有一次输入,回车直接结束没有这种问题.考点题型字符串常量的长度问题15字符串常量的长度是1ab\\c\td\376”AA7B12C8D14//a b\\c\td\3762语句printf%d”,strlenabs\nol2\l\\;的输出结果是CA11B10C9D8//a bs\n o12\1\\.考点题型赋值运算、关系运算的混合运算问题16设的值均为执行的值是1m,n,a,b,c,d0,m=a==b||n=c==d,m,n CA0,0B0,l C1,0D1,1//”==是算术运算符,■”是赋值运算符,优先级算术运算符,赋值运算符,先判断a==b是否正确正确则为真,把赋给是或运算,前面已经为真,所以||后面的就不会再运算了,结果就为真1所以不变m=l,n=0初值依次为经计算〈后,的值为2inta,b,m,n;4,3,2,1,m=a=bn=m nm,n CA1,1B1,0C0,1D0,0为假,是并,前面已经为假,后面就不会再运算了,结果就为假,把赋给即//a=b0m,m=0,n=l不变
四、选择控制结构.沃思提出“数据结构+算法=程序”只在面向过程的语言如语言成立1C.算法的正确性衡量方法2有穷性确定性有效性允许没有输入或者有多个输入必须有一个或者多个输出
12345.算法的描述方法3自然语言描述流程图描述结构化流程图描述伪码描述123NS
4.关系表达式:用作判断条件,结果只有真和假等价于表示假,非表示真,4,n%2!=0n%2,005分支结构当条件成立时,执行操作,否则执行操作;如果操作为空,即为单分支结P AB B构;如果操作不为空,即为双分支结构;如果操作中又包含另一选择结构,则构成多分支选择B B结构;.单分支例题计算输出两整数最大值6单分支一般形式:表达式语句if PA#includestdio.h void main inta,b,max;printfnEnter a,b:n;scanfH%d%dH,a,b;//单分支:表达式语句ifab if P Amax=a;〃单分支:表达式语句ifa=b ifP Amax=b;printfnmax=%d\nM,max;.双分支例题计算输出两整数最大值7双分支一般形式:表达式语句ifP1语句else2#includestdio.h voidmain inta,b,max;printfnEnter a,b:n;scanfH%d%dH,a,b;ifab二max a;else二max b;printfn max=%d\nn,max;.条件运算符是语言中唯一的三元运算符,需要三个操作数8C,条件运算符例题计算输出两整数最大值9条件运算符一般形式表达式表达式表达式含义若表达式为非则结果为表达式12:310,2的值,否则是表达式3的值#includestdio.h voidmaininta,b,max;printfHEnter a,b:n;scanfn%d%dn,a,b;max=aba:b;printfnmax=%d\nn,max;多分支控制条件语句一般形式表达式语句表达式语句表达
10.if11else if22•••else if式语句语句m melse m+1条件语句在语法上只允许每个条件分支中带一条语句,而要在分支里处理多条语句就要使1L用花括号,构成复合语句.随机数的使用方法12符号常量在头文件#近代©由加力中定义,标准规定不1RAND_MAX151C RAND_MAX大于双字节整数的最大值32767随机函数产生的是一个在之间的整数,即[]之间的整数2rand〜RAND_MAX0,327673利用求余运算可将函数生成的随机数变化到利用可将随机数rand%b rand4rand%b+a的取值范围平移到[]例产生的随机数a,a+b-l1-100rand%100+
1.例题猜数游戏计算机想一个数,人猜对了提示否则提示并告诉大小13Right!,Wrong!,#includestdio.h#includestdlib.h voidmain int magic,guess;//随机数magic=rand;printfHPlease guessa number:1;scanfH%dn,guess;ifguessmagic〃多分支printfHWrong!Too big!\n;〃复合语句else ifguessmagicprintfnWrong!Too small!\nn;else{printfHRight!\nn;printfThe numberis:%d\nn,magic;语句用于多路选择,一般情况大于三种,用开关语句代替条件语句
1.switch语句一般形式2switch表达式switch常量case1:可执行语句序列//注意语句序列不使用花括号1常量case2:可执行语句序列2常量case n:可执行语句序列ndefault:可执行语句序列n+1语句相当于一系列的语句3switch if-else后圆括号内的表达式只能是型或型4switch char int关键字后接常量,类型与表达式类型一致,常量的值必须互不相同4case常量与中间至少有一个空格,常量后面是冒号5case本身并没有条件判断的功能,若后面的语句省略不写,则表示它与后续执6case casecase行相同的语句语句的执行过程7switch第一步,计算后表达式的值switch第二步,将表达式的值依次与后的常量比较case第三步,如果相等,执行后的代码段,执行完毕,可使用语句跳出case breakswitch语句如果没有语句,不会再比较,程序将依次执行下面的后的语句,直到遇到或break casebreak者的}为止switch.例题编程实现简单计算器功能15#includestdio.hvoid main{intdatal,data2;char op;printfnEnter your expression:;scanfH%d%c%dH,datal,op,data2;switchopcaseprintfn%d+%d=%d\nH,data l,data2,data l+data2;break;caseprintf1,%d-%d=%d\n,,data1,data2,data1-data2;break;casecase x:case X’:printf%d*%d=%d\n,data1,data2,data1*data2;break;case7:〃也可写成的好处if0==data2data2==0,W0==data2{〃因为赋值表达式左值必须是变量,如果把=二误写成二,会提示错误printfnDivisionby zero!\nn;else{printfn%d/%d=%d\nH,datal,data2,datal/data2;break;default:printfnInvalid operator!\nH;这句一般不需要,因为没有就会依次执行下面的步骤直到或者//break;break breakswitch的}〃这里已经是的}了switch.例题编程实现简单计算器功能,能进行浮点数运算,操作数与运算符之间可加入任意多个16空格#includestdio.h#includemath.hvoid mainfloatdatal,data2;char op;printfEnter yourexpression:1;scanfH%f%c%f,datal,op,data2;switchop{caseprintfn%f+%f=%f\nn,datal,data2,datal+data2;break;」caseprintfn%f-%f=%f\nn,datal,data2,datal-data2;break;casecase x:case X:pri ntf%f*%f=%f\n”,data1,data2,data1*data2;break;caseiffabsdata2=1e-7printfHDivision byzero!\nn;else{printfn%f/%f=%f\n,datal,data2,datal/data2;break;default:printfnInvalid operator!\nH;〃内存中的浮点数所表示的精度是有限的,所以比较实型变量与是否相等时,不能像data20整型变量与比较那样直接用相等关系运算符与比较,而应使用如下方式判断实型变量0data2的值是否位于附近的一个很小的区间内,即.逻辑运算符和逻辑表达0iffabsdata2v=le-717式逻辑非!,单目运算符,右结合,优先级最高逻辑与:,双目运算符,左结合,优先级较高逻辑或||,双目运算符,左结合,优先级较低例判断某一年是否是闰年的条件year能被整除,但不能被整除;14100能被整除1400逻辑表达式:year%4==0year%100!=0||year%400=0或:year%4==0year%100!=0||year%400==
0.特别注意在计算含有逻辑运算符和||的表达式时,通常尽量使用最少的操作数来确18定表达式的值,这就意味着表达式中的某些操作数可能不会被计算例〉中,仅在条件表达式为真时,才会计算后面的值ifa lb++2c--!=0al.程序测试19程序测试只能证明程序有错,不能证明程序无错1例编程输入三角形三边长判断他们能否构成三角形,能构成什么三角形2a,b,c,#includestdio.h#includemath.h#define EPSle-1voidmain float a,b,c;int flag=l;printfnEnter a,b,c:n;scanfn%f,%f,%f;a,b,c;ifa4-bcb+caa+cbiffabsa-b=EPSfabsb-c=EPSfabsc-a=EPS等边printfflag=O;else iffabsa-b=EPS||fabsb-c=EPS||fabsc-a=EPS等腰printfflag=O;〈二〈二iffabsa*a+b*b-c*c EPS||fabsb*b+c*c-a*a EPS||fabsa*a+c*c-b*bv=EPS直角printfflag=O;ifflag一般printfprintf三角形\n”;else{不是三角形printf\n;例编程将输入的百分制成绩转换为五分制成绩输出3#includestdio.hvoid mainintscore,mark;printfHEnter score:;scanfn%dn,score;ifscore0||score100〃这个语句很重要,如果去掉,边界测试会出错mark=-l;if101〜109,〜-9else{mark=score/10;switchmarkcase10:case9:优!pri ntf%d-\n”,score;break;case8:良!printf%d-\n”,score;break;case7:中!pri ntf%d-\n,score;break;case6:printf%d-及格!\n,score;case5:case4:case3:case2:case1:case0:printf”%d-不及格!\n”,score;break;default:printfnInput error!\nH;.对输入非法字符的检查与处理20例输入两个整型数,计算并输出两个整数的最大值1#includestdio.hvoid main{inta,b,max;printfnEnter a,b:n;scanfH%d,%dn,a,b;max=aba:b;printfHmax=%d\nn,max;}〃隐含问题在下Visual C++.如果输入则输出
13.2,
13.如果输入则输出21,
3.
23.如果输入则输出3q-858993460〃解决办法#includestdio.hvoid maininta,b,max,ret;do{printfHEnter a,b:n;ret=scanfn%d,%dH,a,b;〃返回在遇到非法字符前已成功读入的数据项数ifret!=2〃但是scanf函数不做类型检查,所以输入1,
3.2会输出3printfHInput error!\nH;whilegetchar!=\n;else{max=aba:b;printf,,max=%d\n,,max;}whileret!=2;.位运算符的使用21位运算是对字节或字内的二进制数位进行测试、抽取、设置或移位等操作1位运算的操作对象只能是和类型2char int语言中共有种位运算符,只有按位取反是单目运算符,其他都是双目运算符3C6关系运算和逻辑运算的结果耍么是要么是而位运算结果可为任40,1,意值,但每一位都只能是或1种位运算符56按位取反〜用于加密处理,一次求反加密,二次求反解密左移位«右移位»按位与按位异或八用于对字节中某位清零按位或I用于对字节中某位置1按位取反6〜1=0,〜0=1例〜5=-6〜00000101是的补码11111010-6按位与』700=0,01=01=1例将的最低位不变,其余位清零15151=1000011110000000100000001按位或口=二80|0=0,01,1|11例将的最高位不变,其余位均置151151127=12700001111|01111111是的补码01111111127按位异或八二八例人9000,01=1/7=035=600000011A00000101是的补码000001106)左移位10表示把的每一位向左平移位,右边空位补例x«n xn0将左移、、位的二进制补码如下15123初始字节内容00001111对应十进制15左移1位字节内容00011110对应十进制30左移2位字节内容00111100对应十进制6001111000对应十进制左移位字节内容1203)右移位11表示把的每一位向右移位,当为有符号数时,左边空位补符号位值一算术移x»n xn x位当为无符号位时,左边空位补一逻辑移位x例将右移、、位的二进制补码如下1:15123初始字节内容00001111对应十进制15右移1位字节内容00000111对应十进制7右左移2位字节内容00000011对应十进制3右移3位字节内容00000001对应十进制1例将右移位的二进制补码如下2:-15123初始字节内容11110001对应十进制-15右移1位字节内容11111000对应十进制-8右左移2位字节内容11111100对应十进制-4对应十进制右移位字节内容-2311111110)无论左移位还是右移位,从一端移走的位不移入另一端,移走的位的信息就丢失了12)左移位和右移位可以分表代替整数的乘法和除法,左移位相当于乘以八右移为13n2n,n相当于除以八2n)例写出运行结果14#includestdio.h X0000000000001100()1111111111110011voidmain反码1000000000001100int x=12,y=8;〜x反码加一1000000000001101-13printf,,%5d%5d%5d\nHJx,x||y,xy;printf%5u%5d%5d\n,〜x,x|y,xy;printf,,%5d%5d%5d\n,x,x|y,xy;)011输4294967283128-13128
五、循环控制结构循环包括计数控制的循环和条件控制的循环
1..结构化程序设计的三种基本结构顺序结构、选择结构、循环结构
2.循环结构的类型31)当型循环结构:for语句(适合循环次数已知,计数控制的循环))直到型循环结构:语句、语句(适合循环次数未知,条件控制的循环)2while do-while语句
4.while1)一般形式为(循环控制表达式)while(I语句系列|循环体}I)循环控制表达式在执行循环体之前测试2)执行过程3计算循环控制表达式的值如果循环控制表达式的值为真,那么执行循环体中的语句,并返回步骤1如果循环控制表达式的值为假,就退出循环,执行循环体后面的语句语句
5.do-while1)一般形式为do(I语句系列|循环体(循环控制表达式);}while)循环控制表达式在执行循环体之后测试2)执行过程3执行循环体中的语句计算循环控制表达式的值如果循环控制表达式的值为真,那么返回步骤1如果循环控制表达式的值为假,就退出循环,执行循环体后面的语句语句
3.14,-
0.56,
18.
05.字符常量字符型常量、用单引号括起来的任意字符eg:父X;
9.字符串常量用双引号括起来的一个或多个字符eg:“Hello”“Y78”
6.在程序中,整型常量可以用十进制、八进制、十六进制形式表示,但编译器都会自动将其7C转换成二进制存储.整型常量的类型长整型、短整型、有符号、无符号
8.不同进制的整型常量的表示形式91)十进制0〜9数字组合,可带正负号eg:256,-128,0,+7)八进制:开头,后面跟数字组合200〜7eg:021,-017)十六进制()开头,后跟()数字组合30x0X0〜9,a〜f A〜F eg:0xl2,-0xlF不同类型的整形常量的表示形式
10.)有符号整型常量默认型定义为有符号整数,无需1int signedeg:10,-30,02)无符号整形常量常量值后跟u或U,只能表示〉=0的数eg:30u,256U3)长整型常量常量值后跟1或L eg:-2561,1024L4)无符号长整型常量常量值后跟LU、Lu、1U、ki eg:301u程序中,实型常量两种表示形式小数、指数
11.C.不同形式的实型常量的表示形式:12)十进制表示形式数字和小数点组成,必须要有小数点,整数部分可省略1eg:
0.123,-
12.35,.98)指数形式:或代表以为底的指数,左边是数值部分(有效数字,可以是整数、2e E10e小数,不能省略),右边是指数部分(必须是整数形式)e eg:
3.45e-
6.实型常量有单精度和双精度之分,无有符号和无符号之分
13.不同类型的实型常量表示形式141)单精度实型常量常量值后跟F或f eg:
1.25F,
1.25e-2f2)双精度实型常量(double):实型常量默认按双精度处理eg:
0.123,-
12.35,.983)长双精度实型常量(longdouble):常量值后跟L或1eg:
1.25L.变量在程序执行过程中可以改变的量15,变量在必须先定义后使用,定义时需要声明变量的类型和变量名,一般形式类型关键字变16量名;.关键字是语言预先规定具有特殊意义的单词,类型关键字用于声明变量的类型17C标准语言编写的程序都是以作为开头,指定了程序执行的起点,在程序中只18C mainC C能出现一次,称为主函数程序总是从函数开始执行,与他在程序中的位置无关,函数主体部分称为语句,19c mainmain用{}括起来,一般语句以;结束C.变量的类型决定了编译器为其分配内存单元的字节数、数据在内存单元中的存放形式、该20类型变量合法的取值范围以及该类型变量可参与的运算种类.变量名是用户定义的标识符,用于标识内存中具体的存储单元,存放的数据称为变量的值
10.语句行末加分号将导致死循环例:1while2i=l;whileiv=n;〃行末加分号导致死循环sum+=i;i++;相当于〃当输入大于的值,循环体中没有语句可以改变控制i=l;whileiv=n1n变量{〃使得循环条件为永真,导致死循环isum+=i;i++;语句和语句的区别
11.while do-while先判断后执行,有可能一次都不执行,先执行后判断,至少执行一次1while do-while例2n=101;n=101;whilen100do二%printfnn=%d\nn,n;printfn d\n”,n;n++;n++;}whilen100;〃结果输出循环执行一次n=101,〃循环一次也不执行例分别用和语句编程,输入一组数据,然后显示每次输入数据进行3while do-while累加运算的结果,输入结束语句实现do-while#includestdio.hvoid mainint num,sum=0;do{printfnEnter num:;scanfn%d,num;二sum+num;printfnsum=%d\n,,,sum;}whilenum!=0;语句实现while#includestdio.hvoid main〃给赋任意非值都可以intnum=l,sum=0;num0whilenum!=OprintfnEnter num:H;scanfn%dn,num;sum+=num;printfnsum=%d\nH,sum;.计数控制的循环循环次数事先已知的循环121例1编写一个程序,从键盘输入n,计算输出n!#includestdio.hvoid maininti,n,sum=l;printfEnter n:;scanfH%dn,n;fori=l;i=n;i++二sum*i;printfH%d!=%ld\nn,n,sum;例编写一个程序,从键盘输入计算输出22:n,1!,2!……n!#includestdio.hvoid maininti,n,sum=l;printfHEnter n:H;scanfn%dn,n;fori=l;iv=n;i++二sum*i;printfH%2d!=%ld\n,\i,sum;例键盘输入编程计算3n,l!+2!+3!+……+n!#includestdio.hvoid mainintterm=l,sum=O,i,n;printfHEnter n:H;scanfn%dn,n;fori=l;i=n;i++{二term*i;sum+=term;printfl!+2!+3!+……+%d!=%ld\nn,n,sum;.条件控制的循环循环次数事先未知,由条件控制131例1输入两个整型数,计算并输出两个整型数的最大值,如若输入非法字符,提示错误并重新输入〃解释非法字符,需要输入数字时,字符相对它来说就是非法字符,而需要输入字符型,数字对它不是非法字符,所有都是合法#includestdio.hvoid maininta,b,max,ret;printfEnter a,b:n;ret=scanfn%d%d,a,b;〃判断数据个数或格式是否错误whileret!=2〃清除缓冲区中的错误数据whilegetchar!=\n;printf Entera,b:n;ret=scanfH%d%dn,a,b;max=aba:b;printf,,max=%d\n,,,max;//注意函数不做参数类型匹配检查,当输入时,返回不会导致重新输入但scanf
13.2scanf2,是,此后的小数点仍留在缓冲区,如果此后还需输入内容,就要先清除缓冲区内容例先由计算机想一个之间的数请人猜,若猜对,则计算机提示结束游戏,22:1-100Right!否则提示并告诉人是大是小,直到猜对为止,记录人猜的次数,反应猜数的水平Wrong!,#includestdio.h#includestdlib.hvoid mainint magic;int guess;int counter=0;magic=rand%100+1;do{printfnPlease guessa magicnumber:1;scanfH%dn,guess;counter++;ifguessmagicprintfWrong!Too big!\nn;else ifguessmagicprintfHWrong!Too small!\n;else{printf,,Right!\nM;}whileguess!=magic;printfncounter=%d\nH,counter;.随机数的使用14随机数的产生a.rand符号常量在头文件#由武由.中定义,标准规定不1RAND_MAX4659111C RAND_MAX大于双字节整数的最大值32767随机函数产生的是一个在之间的整数,即[]之间的整数2rand〜RAND_MAX0,32767利用求余运算可将函数生成的随机数变化到3rand%b rand利用可将随机数的取值范围平移到[]4rand%b+a a,a+b-l随机数的产生b.srandtimeNULL用直接产生的随机数只是一个伪随机数,反复调用产生的随机数序列是一样的,而1rand且每次都只用第一个随机化使程序每次运行时产生不同的随机数序列的过程2随机化的实现通过调用标准库函数为函数设置随机数种子来实现3srand rand随机数种子的设置4法1每次通过用户输入来完成随机化,srandl,srand2,srandseed,输入seed法的通过函数读取计算机的时钟值,并把该值设置为随机数种子2:time srandtimeNULL函数返回以秒计算的当前时间值,即一个代表时间的字符串,使用作为5time NULLtime的参数时,的返回值被转换成一个无符号整数,可作为随机数发生器的种子timeNULL使用函数时,必须在程序开头将头文件包含到程序中6time vtime.h,.例先由计算机想一个之间的数请人猜,若猜对,则计算机提示结束151-100Right!游戏,否则提示并告诉人是大是小,直到猜对为止,记录人猜的次数,反应猜数的Wrong!,水平#includestdio.h#includestdlib.h#includetime.hvoid mainint magic;int guess;int counter=0;srandtimeNULL;magic=rand%100+1;do{printfnPlease guessa magicnumber:1;scanfH%dn,guess;counter++;ifguessmagic printf1Wrong!Too big!\nH;else ifguessmagic printfnWrong!Too small!\nn;else{printfnRight!\nn;}whileguess!=magic;printf^counter=%d\n^,,counter;}.例先由计算机想一个之间的数请人猜,若猜对,则计算机提示屏幕输出多少161-100Right!次成功,结束游戏,否则提示并告诉人是大是小,最多猜次,超过就结束,要避免非法字符的Wrong!,10输入#includestdio.h#includestdlib.h#includetime.hvoid mainintmagic;int guess;int counter=0;保存函数的返回值int ret;//scanfsrandtimeNULL;magic=rand%100+1;do{printfnPlease guessa magicnumber:1;ret=scanfn%dn,guess;〃若存在输入错误,则重新输入whileret!=l{清楚缓冲区中的内容whilegetchar!=\n;//printfnPlease guessa magicnumber:*;ret=scanfn%dn,guess;〃若存在非法字符,则重新输入counter++;ifguessmagic printfnWrong!Too big!\nH;else ifguessmagicprintfC^WronglToo small!\n;else{printfuRight!\nn;}whileguess!=magiccounter10;printfHcounter=%d\nn,counter;}延伸拓展先由计算机想一个之间的数请人猜,若猜对,则计算机提示屏幕输出多1-100Right!少次成功,结束游戏,否则提示并告诉人是大是小,最多猜次,超过就继续猜下一个数,每次运Wrong!,10行程序,可反复猜多个数,直到操作者想停时结束,要注意避免非法字符输入的问题#includestdio.h#includestdlib.h#includetime.hvoid main{intmagic;int guess;int counter;保存用户输入的答案char reply;//保存函数的返回值int ret;//scanf srandtimeNULL;do{二%magic rand100+1;counter=0;do{printfHPlease guessa magicnumber:n;ret=scanfn%dH,guess;〃若存在输入错误,则重新输入whileret!=l〃清楚缓冲区中的内容whilegetchar!=\n;printfnPlease guessa magicnumber:*1;ret=scanfH%dH,guess;〃若存在非法字符,则重新输入counter++;ifguessmagicprintfnWrong!Too big!\nH;else ifguessmagicprintfnWrong!Too small!\nn;else{printfnRight!\nn;}whileguess!=magiccounter10;printfncounter=%d\n,counter;printfnDo youwant tocontinueY/N ory/nn;scanfH%cn,reply;//%c前有一个空格,读取缓冲区中的回车符}whilereply==Y||reply==y;.设计一个简单计算器,允许连续做多次算术运算17#includestdio.h#includemath.h voidmainfloatdatal,data2;char op;char reply;do{printfnPlease enteryourexpression:\nn;scanfH%f%c%F,datal,op,data2;〃加空格可在操作数和运算符之间加任意多个空白符switchop caseprintf,,%f+%f=%f\n,,datal,data2,datal4-data2;break;caseprintfn%f-%f=%f\nn,datal,data2,datal-data2;break;casecase X:case x:printf%f*%f=%f\n”,datal,data2,datal*data2;break;case7iffabsdata2=1e-7printfHDivision byzero!\nn;else{printfH%f7%f=%f\nn,datal,data2,datal/data2;break;default:printfHInvalid operator!\n;printfnDo youwant tocontinueY/y orN/nM;scanfn%c”,reply;〃加空格清除缓冲区中的回车符whilereply==,Y,||reply==y,;.嵌套循环18一个循环语句放在另一个循环语句中构成的循环称为嵌套循环嵌套循环的总循环次1数等于外层循环次数和内层循环次数的乘积为避免造成混乱,嵌套循环的内层和外层的循2环控制变量不要同名例键盘输入编程计算3n,1!+2!+3!+……+n!#includestdio.hvoid mainintterm,sum=O,ij,n;printfnEnter n:n;scanfn%dn,n;fori=l;i=n;i++term=1;forj=l;j=i;j++term*=j;sum+=term;)printf(l!+2!+3!+……+%d!=%ld\n,\n,sum);)累加求和构成规律191)当累加项较为复杂或者前后项之间无关时,需要单独计算每个累加项)当累加项前项与后项之间有关时,根据前项计算后项2#includestdio.h()voidmain{inti,n;long term=l,sum=O;printf(HEnter n:n);scanf(n%dn,n);()for i=l;iv=n;i++{term=term*i;sum=sum+term;)printfCl!+2!+3!+……%d=%ld\nn,n,sum);)语句
20.goto1)功能使程序无条件跳转到语句标号所标识的语句去执行,所跳过的语句不再执行2)一般形式
①向前跳转
21.break)功能
①用于退出结构1switch
②用于退出由和语句构成的循环体while,do-while for)原理当执行循环体遇到语句时福环体将立即终止,从循环语句后的第一条语句开2break始继续执行)应用语句通常与联合使用,表明在任何条件下跳转到紧接循环语句后的第一条语3break if句语句
22.continue)功能跳过后面尚未执行的语句,开始下一次循环,只结束本次循环,不终止整1continue个循环)例题2#includestdio.hvoid maininti,n;fori=l;i=5;i++printfnPlease entern:n;scanfn%dn,n;ifn0continue;printfnn=%d\n,,,n;printfProgram isover!\nH;.函数23exit标准库函数用于控制程序的流程,调用时,需要加头文件1exit stdlib.h一般形式:2exitcode;功能终止整个程序的执行,强制返回操作系统,并将血型参数的值传给调用进程3code一般为操作系统,当的值为或宏常量表示程序出现某种错误后退出code0EXIT_FAILURE,的比较
24.goto,break,continue,exit都用于控制程序的流程,前三个是流程控制语言,是标准函1goto,break,continue,exit exitC数功能:语句可以向任意方向跳转,语句只限定流程跳转到循环语句之后1goto break的第一条语句,语句结束本次循环,直接终止所有程序continue exit语句和函数都可用于终止整个循环的执行,不能终止整个循环2break,goto exitcontinue在嵌套循环下,语句和语句只对包含他们的最内层循环语句起作用,不能用3break continue语句跳出多重循环,只能一层一层的跳出break使用语句的两种特定情形4goto
①快速跳出多重循环
②跳向共同的出口位置,进行退出前的错误处理工作.例题韩信点兵:25x%5=lx%6=5x%7==4x%ll==10
①穷举法循环条件自定义,不具实际意义
②break退出循环循环条件省略,满足条件结束循环
③exitO结束程序循环条件省略,满足条件结束整个程序
④使用标志变量循环条件为标识变量为最佳方法0,#includestdio.hvoid mainintx;int find=0;forx=l;!find;x+4-ifx%5=1x%6=5x%7=4x%11=10printfx=%d\nn,x;,变量名的命名规则23)标识符只能由英文字母、数字、下划线组成1)标识符必须以字母或下划线开头2)不允许使用关键字为标识符命名3C)标识符可以包含任意多个字符,但一般会有最大长度限制,预编译器有关,一般不会4超过,最好不超过个字符8注意标识符区分大小写(合法)eg:x y3_imax ELSEX A_to_B(不合法)eg:7x int#No badone re-input.标准规定所有变量必须在第一条可执行语句之前定义24C.在同一条语句中可以同时定义多个相同类型变量,多个变量之间用逗号分隔,没有顺序要25求.在使用标准输入/输出函数时,必须在程序开头加上编译预处理命令26>中为头文件,是为为为
27.vstdio.h stdiostd standard,!input,o output,h head.编译预处理命令的作用将在输入/输出函数的头文件包含到用户源文件中28#include stdio.h
29.%d按十进制整数个格式输出,%f按十进制小数格式输出,一般输出6位小数,%c输出一个字符八换行,双引号内字符原样输出n.不同类型的数据在内存中占用不同大小的存储单元,他们所能表示的数据的取值范围各不30相同,不同类型的数据表示形式及其可以参与的运算种类也不同.定义整型变量时,只要不指定为无符号型,其隐含类型为有符号型,通常省略不写31signed程序中每个变量的值都是按字节编址,都被存储在内存中特定的存储单元中,这个存储空
32.C间实际是一个线性地址表,即每个字节的存储空间对应一个唯一的地址个字节等于个二进制位,即个位为一个字节,一个字节可以表示的整数最小为最大
33.1880,即个位可以表示之间的数,一个二进制位的值只能是或255,80-
2551.同种类型在不同的平台所占字节数不同,要计算数据类型所占内存空间的字节数需要用34()运算符sizeof是语言关键字,不是函数名,(变量名)计算一个变量所占内存的字节数
35.sizeof Csizeof.计算不同类型运算符的表达式时,要考虑运算符的优先级和结合性
36.正数的反码、补码与原码都相同,负数的补码等于反码加
371.在计算机内存中负数都是用补码来表示
38.对于实数,无论小数海曙指数形式,在计算机内存中都采用浮点形式来存储39,浮点数分为阶码、尾数两部分,实数()为尾数(无论正负,规定用存小数),40N=S*pow r,j,S为阶码(无论正负,必须是整数)是基数()j,r eg:
10.0111=
0.100111^pow2,
10.阶码所占位数决定实数的取值范围,尾数所占位数决定实数的精度,尾数的符号决定实数41的正负,阶码和尾数的字节大小与编译器有关型变量能接收实型常量的位有效数字,型变量能接收位42foat7double
16.运算符的优先级单目运算〈算术运算v关系运算〈逻辑运算〈条件运算<赋值运算〈逗43号运算.素数又称质数,指在大于的自然数中,除和本身不能被其他自然数整除的数
4411.合数指在自然数中除和本身外还能被其他自然数整除的数
451.因子所有能整除这个数的数,不包括自身,但包括
461.闰年能被整除但不能被整除,或能被整除474100400
二、简单的算术运算和表达式find=l;).类型溢出261)原因当运算的结果超出了类型所能表示的数的上界,导致进位到达了最前面的符号位或者更多进位的丢失,就会发生类型溢出)解决办法采用取值范围更大的数据类型来定义变量
2.结构化程序设计的基本思想27)采用顺序、选择和循环三种基本结构作为程序设计的基本单元,语法结构具有个特性14
①只有一个入口
②只有一个出口
③无不可达语句,即不存在永远执行不到的语句
④无死循环,即不存在永远都执行不完的循环)尽量避免使用语句,因为它破坏了结构化设计风格,并且容易带来错误的隐患2goto)采用自顶向下、逐步求精的模块化程序设计方法进行结构化程序设计3条件运算符是语言提供的唯一一个三元运算符,语言中没有事运算符L C C.只有计算相反数是一元运算符,其余运算符都是二元运算符
2.一元运算符也叫单目运算符,二元运算符也叫双目运算符,三元运算符也叫三目运算符
3.整数除法的结果是整数,浮点数除法的结果是浮点数
4.求余运算限定参与运算的两个操作数必须为整型,余数的符号与被除数的符号相同,不能对5两个实型数进行求余运算.所有的算术运算符中只有一元的去相反数运算符为右结合,其余的结合性都为左结合
6.同一优先级的运算符进行混合运算时,从左向右依次进行
7.运算符的优先级单目运算,算术运算〉关系运算〉逻辑运算〉条件运算〉赋值运算〉逗号8运算,计算并输出一个三位整数的个位、十位、百位数字之和9#includestdio.hvoid mainintx=321;inta,b,c,sum;a=x%10;//a=lb=x/10%10;〃b=2c=x/100;//c=3sum=a+b+c;printf,a=%d,b=%d,c=%d\nsum=%d\n,,a,b,c,sum;涉及算术运算的复合赋值运算符有个:
10.
5.增运算符也称自增运算符,减运算符也称自减运算符,都是一元运算符,只有一个操作1111数必须是变量不能是常量或表达式.自增自减运算符作为前缀时,先执行加或减然后使用;自增自减运算符作为后缀时,先1211使用再执行加或减11;.考虑优先级与结合性的实例13《=》《=》m=-n++m=-n++m=-n,n=n+l;//正面:-和++都是一元运算符,优先级相同,此时要考虑结合性,结合性都是右结合的,所以先算++后算-//反面如果等价就不合法了,因为表达式不能进行自增操作m=-n++函数和函数都是的标准输入/输出函数,为取地址运算符
14.scanf printfC.宏常量与宏替换15在程序中直接使用的常数称为幻数,将幻数定义为宏常量或常量是为了提高程序1const的可读性和可维护性宏常量也称符号常量,没有数据类型,编译器不对其进行类型检查,只进行字符串替换2宏定义一般形式标识符字符串标识符被称为宏名,宏名与字符串之间可有多3#define个空白符,不加等号,结尾不加分号宏常量是由宏定义编译预处理命令来定义,宏名替换成字符串的过程称为宏替换,宏替4换不做任何语法检查当宏定义是一个表达式时,调用时,是一个数就可以直接带入,而是表达式也要看成是5一个数代进宏定义表达式中,而看成一个数这就要求把调用的数加上圆括号,为了减少不必要的错误,最好都加上圆括号)宏替换的过程是将宏名原样替换成字符串,而不是直接计算出值,所以要用调用后的6结果参与其他运算就需要把调用的结果加上圆括号)例题7#define N2//N=2#define MN+l〃M=2+1#define NUM2*M+1〃NUM=2*2+1+1=6#includestdio.hvoid main{inti;fori=l;i=NUM;i++;printf%d\n”,i;〃执行完空循环,i=7i—;//i=6printfn%d\nH,i;例题8#includestdio.h#define fxx*x voidmainint b;b=f4+4;解释见//b=4+4*4+4=24,5printfnb=%d\nH,b;例题9#includestdio.h#define fxx*x voidmainint b;b=f4+4/2+2;printfub=%d\nH,b;〃b=4+4*4+4/2+2=21解释见6例题10#includestdio.h#define fxx*x voidmainint b;b=f4+4;printf,,b=%d\n,\b;〃b=4+4*4+4=64例题11#includestdio.h#define fxx*x voidmainintb;b=f4+4/2+2;〃b=4+4*4+4/2+2=16printfnb=%d\nn,b;常量
16.const常量只能在定义时赋初值,因为编译器将其放在只读存储区,不允许在程序中修1const改常量的定义一般形式:类型名标识符=字符串;//将标识符声明为具有该数据2const const类型的常量const是一种类型修饰符,常量具有数据类型,编译器要对其进行类型检查3const const.表达式中的自动类型转换17表达式中,操作数类型相同,运算的结果类型与操作数类型相同1表达式中,操作数类型不相同,编译器自动将所有操作数进行类型提升,转换成同一2C类型,所占字节最大,再计算.赋值中的自动类型转换18赋值运算符左侧变量与右侧表达式类型不同时,发生自动类型转换右侧表达式的值转1换成左侧变量的类型.强制类型转换19强制类型转换运算符是一元运算符1强制类型转换也称强转,是将表达式的值转换为任意类型,并不改变变量本身的数据类2型强转一般形式:类型表达式3演示强制类型转换运算符的使用4#includestdio.hvoid mainintm=5;printf,m/2=%d\nn,m/2;//m=2printf,,floatm/2=%f\n,\floatm/2;//m=
2.000000printfnfloatm/2=%^n,\floatm/2;//m=
2.500000只是将强转为实型数据,并不改变的数据类型printfm=%d\n”,m;//m=5,mm,常用的标准数学函数20使用标准数学函数,要在程序开头加上编译预处理命令:1C#includemath.h例已知三角形三边长为计算三角形的面积2a,b,c,#includestdio.h#includemath.hvoid mainfloata,b,c,s,area;printfnInput a,b,c:n;scanfn%f,%f,%f;a,b,c;s=a+b+c/2;area=floatsqrts*s-a*s-b*s-c;printfnarea=%f\nH,area;.赋值运算符的左侧不能出现表达式,变量与变量之间可以赋值21例若有定义下列表达式中哪一个是合法的、言赋值表达式、1:inta,b,c;CCD Aa=7+b=c=7Ba=b++=c=7Ca=b=7,c=12Da=3,b=a+5,c=b+
2、表达式不能做左值、表达式不能做左值、逗号表达式、依次赋值//A7+b Bb++C a=12D例下面不正确的赋值语句是2:BAa=++a Ba=b++=10Ca+=b Da=la、算术运算符优先级高于赋值运算符,先算区再将其结果赋给//D1a例若有下列定义以下选项错误的赋值表达式是3:inta=3,b=2,c=l;AAa=b=4=3Ba=b=c+1Ca=b=4+c Da=l+b=c=4〃A、先计算圆括号里的值等于4,然后按照赋值表达式的顺序从右向左计算,将3赋值给4这是不对的,即赋值号左侧只能是变量,不能出现表达式b=4
三、键盘输入和屏幕输出.字符常量:1把字符放在一对单引号内,适用于多数可打印字符.转义字符2以反斜线\开头,也是放在一对单引号内,适用于控制字符如回车符,换行符.常用的转义字符31,\n!—换行响铃报警提示音回车不换行8H-2\r—9,\,-----个双引号3,\o,—空字符—个单引号10V—水平制表4W—一个反斜线11N—垂直制表5W—问号12”—退格6W—到位八进制码值所代表的字符13Mdd1—13ASCII走纸换页7,\f—到位十六进制码值所代表的字符14,Vxhh1—12ASCII是将光标移到下一行起始位置八是将光标移到当前行的起始位置
4.\n,r是水平制表符,相当于按下键,每次按下键并不是从当前光标位置向后移动一个
5.\t,Tab Tab宽度,而是移到下一个制表位Tab实际移动的宽度视当前光标位置距相邻的下一个制表位的距离而定.制表位,屏幕上的一行被分为若干个域,相邻域之间的交接点称为制表位,每个域的宽度就6是一个宽度,多数习惯上为Tab4,当转义序列出现在字符串中时,是按单个字符计数的
7.一个整形数在内存中是以二进制形式存储的,而一个字符在内存中也是以其对应的码8ASCII的二进制形式存储的,但型数据在内存中只占一个字节,而型数据在位系统中占个字节,位系统占charint162324个字节.在码取值范围内,型数据可以和型数据进行混合运算,型数据也能以型9ASCII charint charint输出,直接输出其对应的码的十进制值ASCII字符的输入/输出
10.和是标准函数库中专门用于字符输入/输出的函数,功能是只能输入1getchar putcharC/输出一个字符例从键盘输入一个大写英文字母,将其转换为小写字母显示在屏幕上2#includestdio.hvoid maincharch;〃键盘输入一个字符,再按回车表示输入结束,字符存入变量注意:ch=getchar;ch,getchar没有参数,直接返回读入的字符ch=ch+32;第二次按回车,将显示转换后的结果putcharch;//注意内一定要有参数,参数就是待输出的字符,可以是可打印字符,putcharCn;//putchar也可是转义字符.数据的格式化屏幕输出11函数的一般格式:格式控制字符串;或者格式控制字符串,输出值参1printf printfprintf。
个人认证
优秀文档
获得点赞 0