计算机软考程序员备考程序设计知识点(

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

14计算机软考程序员备考:程序设计知识点(3)3.1顺序结构顺序结构用来描述一个计算或操作序列,表示从序列的第一个计算开始,顺序执行序列中的每个计算,直至序列的最后一个计算。通常,一个复杂的计算过程不能用一个简单的计算来表达,而需把复杂的计算描述成简单计算的序列。1.复合语句在C语言中,将顺序执行的语句序列,用花括号括起来,构成C语言的复合语句。在逻辑上视复合语句为单个语句,它也能用作其它结构语句的成分语句。在很多场合,复合语句内还会包含其它结构语句。2.表达式语句在顺序结构中,最频繁使用的是表达式之后接上一个分号。例如,在赋值表达式之后接上分号,完成用表达式的值更新某变量,习惯称这种表达式语句为赋值语句;在函数调用之后接上分号,完成指定的计算功能,习惯称这种表达式语句为函数调用语句。3.2常用输入输出库函数最基本的输入输出库函数有字符输入函数、字符输出函数、格式输入函数和格式输出函数。1.字符输入函数字符输入函数getchar()的功能是从标准输入设备上(通常是键盘终端)读取一个字符。该函数没有参数,对它的每次调用,就返回下一个输入字符的ASCII代码值。例如,执行语句ch=getchar();使变量ch得到输入字符的ASCII代码值。一般情况下,这里的变量ch为char型或int型。当程序在输入字符后,用ch判定输入文件是否结束时,变量ch必须是int型的。这是因为文件结束标记值是-1,是int型的。程序中常用EOF表示当前读人字符是文件结束标记,常量名EOF在文件Stdio.h中被定义为-1。2.字符输出函数字符输出函数ptuchar()有一个字符的ASCII代码值参数,函数调用putchar(ch)的功能是将以出值为其ASCII代码的字符输出到标准输出设备(通常是终端显示屏)上。这里ch可以是char型或int型数据。3.格式输入函数格式输入函数scanf()的作用是从标准设备读人字符序列,按格式控制字符率所包含的格式解释输入字符序列,并将解释结果存储到对应的变量中。调用格式输入函数scanf()的一般形式为scanf(格式控制字符串,变量地址,变量地址,……)格式控制字符串是字符串表达式,通常是由一对双引号括起来的字符串常量,直接用于解释输入字符序列。格式控制字符率可以包含:·空白类字符(空格符或制表符),它们使输入跳过空白类字符,直到遇到下一个非空白类字符。·普通字符(不包括%),它们要求输入字符流中下一个字符与它相同。·格式转换说明,以字符’%’开头至输入格式符结束的字符序列组成。格式转换说明引导对下一输入字符段进行转换。格式转换说明的一般形式为%[*][w][h/l/L]输入格式符输入格式符共有14个,有12种不同输入格式,其中大纲要求掌握的7种输入格式符的意义见表3.1。用方括号括住的内容是输入格式修饰说明,可以缺省,它们的意义是:(1)*--星号(赋值抑制符),对应的输入数据项按格式要求被输入,但结果不存储。带星号的格式转换说明不对应变量地址。用它来跳过一个输入数据项。(2)--整型常数(域宽说明),表示输入数据项的字符段的有效字符数。若实际输入字符段的字符数小于W,以实际有效字符为准。对于数值数据输入格式来说,输入域定义为从下一个非空白类字符起(因此可能跳过若干个空格符、制表符、换行符),到一个与数值数据相矛盾的字符,或直到输入了指定个数的字符数;对于字符率输入格式来15说,输入域定义为从下一个非空白类字符起,输入非空白类字符,直至遇到空白类字符,或直到输入了指定个数的非空白字符。(3)h/l/L长度修饰符,指明输入数据项的存储类型。h修饰格式符d,o,X时,表示输入的整数按短整型存储。l修饰格式符d,O,X时,表示输入的整数按长整型存储。l修饰格式符e,f时,表示输入的实数按double型存储。缺省时,对于格式符d,o,x,表示输入的整数按int整型存储;对于格式符e,f,表示输入的实数是按float型存储。3.3常用输入格式符表中格式符的意义d输入十进制形式的整型数据O以人进制形式输入整型数据X以十六进制形式输入整型数据C输入字符数据S输入字符串e,f输入实型数据说明:(1)格式控制字符率之后给出的是变量地址,而不是变量名(除非是指针)。如要为整型变量n输入数据,写成scanf(”%d,n)是不正确的,应写成scanf(”%d”,&n)(2)如果在格式控制字符串中除格式转换说明和空白符之外,还有其它字符,则在输入数据时应输入与这些字符相同的字符。例如,scanf(”%d,%d’’,&i,&j)则在为i,j输入数据时,紧接在第一个整型数据之后,需要有一个逗号字符,如输入1,2是正确的;而输入12等其它形式都是不正确的。(3)在用”%c”格式转换说明输入字符时,空白类字符和用转义字符表示的字符都能作为有效字符输入。要输入一串空白类字符之后的第一个非空白类字符,可采用格式”%C”。格式字符率中的空格符使输入跳过空白类字符到第一个非空白类字符,然后被C格式输入。(4)为整型变量输入整数时,若变量类型为短整型,则必须在格式符之前加长度修饰说明h;若变量类型为长整型,则必须在格式符之前加长度修饰说明1。(5)输入数值数据时,输入字符流中的前导空白类字符会被自动跳过,从空白类字符后的数值数据字符开始输入。构成数值数据的字符被输入转换成计算机的内部表示,并存储结果。若第一个非空白类字符不能构成数值字符,则立即结束输入。(6)S格式用来输入字符串,对应的变量地址为字符列表(数组)的首地址,该数组必须大到足以容纳可能输入的最长字符串。在输入字符流中,跳过前导的空白类字符,以非空白类字符开始,以后随的第一个空白类字符结束的非空白类字符的字符序列作为一个字符串。scanf()函数在输入的字符序列之后自动添加字符率结束标记符'\0'(因此,存储输入字符序列的字符数组的长度必须比实际最长字符串的字符数多1)。(7)e,f格式用未输入实数,对应的数据存储地址为实型数据存储地址。如格式转换说明中含有长度修饰说明1,则为double型变量地址;若无长度修饰说明,则为float型变量地址。输入数据的字符序列是由正负号(可有可无)、十进制数字串、带小数点的小数部分(可有可无)。以e或E开头的指数部分(可有可无)组成。(8)在跳过前导空白符后,正在输入数值数据和字符串时,遇以下情况,就认为该数据结束:16·遇空白类字符:空白符、制表符、换行符。·已读人由有效字符数所指定的字符数。如”%4d多至4个数字符。·对于输入数值数据,下一个字符不能构成正确的数据格式。如scanf(”%d%C%f,&i,&c,&x)假定变量i,c,x分别为int型、char型和float型。若输入字符列为:123a123x.26则变量i为123,变量c为字符a,变量x为123.0。(9)输入数据时,将字符流转换成内部表示后,存储到对应变量中。例如,scanf(”%3d%*4d%d”,&i,&j)如输入字符行为12345678将使变量i=123,j=78。其中数据456因赋值抑制符*的作用被跳过。一般从键盘读入数据,不指定输入数据项的有效字符数,数据项与数据项之间用空白符,或制表符,或回车符分隔。4.格式输出函数格式输出函数printf()的作用是将输出项接指定的格式排版输出到标准设备上(通常是终端显示屏)。调用printf()函数的一般形式为printf(格式控制字符串,表达式,表达式,……)其中格式控制字符率是字符串表达式,通常是由用一对双引号括起来的字符串常量。它包含三类字符:普通字符、转义字符和格式转换说明,它们的作用分别如下:(l)普通字符,要求按原样输出。(2)转义字符,要求技转义字符的意义输出,如’\n’,表示输出时回车换行,’\b’表示退格等。(3)格式转换说明,以字符%开头至格式符结束的字符列组成,其一般形式为%[-」「+」「」[#」「W][.p][h/l/L]输出格式符其中用方括号括住的内容是格式修饰说明,可以缺省(不出现),如%d、%7.5f等。每个格式转换说明对应一个输出项,输出项可以是常量、变量或表达式。格式转换说明的作用是将对应输出项的内容按格式符要求产生出字符列,并按格式修饰说明排版输出。输出格式符共有16个,有12种不同的格式,考试大纲只要求掌握表3.2所列的九种。3.4常用输出格式符表中格式符的意义d或i整型数据以十进制形式输出o无符号整型数据以八进制形式输出X无符号整型数据以十六进制形式输出U元符号整型数据以十进制形式输出C字符的ASCll码数据,输出对应的字符S输出字符串f以“整数部分.小数部分”形式输出实型数据e以[-]n.nnnnne±xx输出实型数据g以f或e格式输出说明:(1)x格式符同。格式符一样,把符号位作为数的一部分输出。对于x格式,用字符a、b、c、d、e、f(或A、B、C、D、E、F)表示9之后的六个十六进制数字符。(2)一个整数,只要它的位在0-255范围内,也可以用字符形式输出,输出以该整数为ASCII代码的字符。反之,一个字符数据也可以用整数形式输出,输出该字符的ASCII代码值。(3)f、e和g格式符用于输出实型数据,格式转换时有四舍五人处理。对于f格式,小数点后的数字个数可由格式修饰说明p指定,若p为0,不显示小数点。用e格式输出时,对于非0实数,小数点前有一17位非零数字,输出格式中的有效位数可由格式修饰说明p指定;字符e(或E)之后是指数,指数部分至少包含两个数字。若输出值的绝对值不小于1E+100,则指数部分多于两位数字。g格式能根据表示数据所需字符的多少自动选择f格式或e(或E)格式输出实数,选择是以输出时所需字符数多少为标准。格式修饰说明有七种,教材只介绍其中四种,它们的意义分别说明如下:(1)W域宽说明,W是一个十进制整数,表示输出字段的字符数。若转换后需要的字符个数比给出的W多,则以实际需要为准;若转换后需要的字符数比W少,就在左边用填充字符补足(若给出左边对齐标志(-),则在右边补填充字符人通常用空白符作填充字符,若十进制整数W之前有前导0(此0不表示以八进制数给出字段宽度),则以字符0作填充字符。(2)-左对齐标志,当转换后字符个数少于W时,在W所限定的字段宽度内,转换所得字符列左对齐,右边补填充符。缺省时,右对齐,左边补填充符。(3).p,其中p也是十进制整数。对于g或e格式输出,p指明输出精度(有效数字位数),可以缺省,缺省值依赖于系统的规定(下面的例子设p的缺省值为6)。对于f格式输出,p指明输出字符列的小数点之后的数字个数,可以缺省。对于S格式输出,p指明最多输出字符率的前p个字符,多余截断。缺省时,字符串的内容全部输出。对于d.i、O、u、x和X,表示至少出现的数字个数。同域宽说明一样,p也可以是字符*,而实际值由后面一个输出项的整数值给出,若该值为负值,相当于没有给出p。(4)l指明输出项的类型。长度修饰符l用于格式符d、i、o、u、X,表示对应的输出项是长整型或无符号长整型。以下是格式输出的一些例子。例如,inti=1234;longj=1234567L;printf(”%d,%+6d,%06d,%-6d,%5ld”,i,i,i,i,j)将输出:1234,+1234,00l234,1234,1234567注意:对于long型数据输出,必须在格式符之前有长度修饰符l,表明输出long型数据。若intk=045;longp=-1L;printf(”%#o,%4o,%6lo”,k,k,p)将输出:045,45,37777777777而printf(%#x,%4x,%6lx”,k,k,p)将输出:0x25,25,FFFFFFFF若unsignedintu=65535u;prinif(”%d,%4u,%ln’,u,u,p)将输出:-l,65535,4294967295若charch1=045,ch2=’a’;printf(”%c,%-3c,%2c”,ch1,ch2,ch2)将输出:%,a,a若chars[]==”ABCDEF’;printf(”%3s,%4.2s,%

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功