还剩19页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
全国计算机二级语C数组下标的下限是0言公共基础知识、数据构造与算法
1、完全二叉树是属于非线性构造,但其最佳存储方式是次序存储方式
2、次序存储构造中也许根节点不唯一,故也许不是线性构造
3、算法的有穷性是指,算法中的操作环节为有限个,且每个环节都能在有限时间内完毕
4、法复杂度包括算法的时间复杂度和算法的空间复杂度算法设计必须考虑执行算法所需要的资源,即时间与空间复杂度
5、算法的优劣取决于算法复杂度,与程序的环境无关,当算法被编程实现之后,程序的运行受到计算机系统运行环境的限制
6、循环队列中,由于指针超过队列地址最大值时会移动到队列最小地址处,因此队头指针可以不小于也可以不不小于队尾指针
7、链式存储构造中每个结点都由数据域与指针域两部分构成,增长了存储空间
8、循环队列是队列的一种次序存储构造,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一种位置
9、设循环队列为Ql:m,其初始状态为front二rear』通过一系列入队与退队运算后,front=X,rear=Y现要在该循环队列中寻找最大值的元素,最坏状况下需要比较的次数为1若XY,则次数为m-Y-X-12若XCY,则次数为Y-X-1算exp2;若expl非0,则求exp2值,作为体现式值
10、〃〃右移运算符,按位右移运算规则是将一种操作数先转换成二进制数,然后将二进制数各位右移若干位,移出的低位舍弃;并在高位补位,若为无符号数,右移时左边高位移入0例a=8=01000,执行a〉2后,a=00010=
211、在C语言中,乘除法优先级要高于加减法,另一方面,除法运算符〃/〃两边参与运算对象都是整数,运算成果要取整
12、逗号体现式的值为其中最终一种体现式的值
13、i++,先使用后自增自增和自减运算符的两种使用方法前置运算,运算符放在变量之前,规则是先使变量的值增(或减)b然后以变化后体现式的值参与其他运算后置运算,运算符放在变量之后,规则是变量先参与其他运算,然后再使变量的值增(或减)1例sum=pad=5;pAd=sum++,pAd++,++pAd;得:当(*口)=\时,结束循环,返回字符的码50\0ASCHosum=5,pad=5;pAd=5,sum=6,pAd=6,pAd=
714、计算5/2,成果取整数值2〃%〃运算符的两个操作值必须为整型数据
15、在C语言中,逻辑真值对应非0,分支构造的流程走向是根据体现式的值,并不仅仅是算数体现式的值
16、rand()产生随机整数
三、基本语句
1、复合语句可以包括多条语句,在其中可以定义局部变量
2、花括号对{}不仅用来表达函数的开头和结尾,也可以用于表达复合语句
3、C语言中的语句必须以分号〃;〃结束,因此空语句表达为〃;〃,不是空行
4、定义语句应当出目前执行语句的前面,在printf和scanf函数中都可以指定数据的宽度,scanf()的格式控制串可以使用其他非空白字符,如逗号,但在输入时必须输入这些字符,以保证匹配,复合语句可以由任意多条语句构成,可以使一条也可以没有
5、当(*5丘)=\0时,结束循环,返回字符\0的ASCH码
06、while循环语句一般形式为while(体现式){循环体},执行过程为,首先判断体现式,成立(非0)则执行循环体,不成立
(0)则退出循环
7、gets函数,getchar是用于从终端读入字符fputs函数用于把字符串输出到文献fwrite函数用于以二进制形式输出数据到文献
8、scanf()语句中用〃空格〃间隔不一样的字符串getchar()函数从终端读入一种字符作为函数值,把读入的字符赋给变量ch在输入时,空格、回车符都将作为字符读入,并且只有在顾客敲入回车键时,读入才开始执行gets函数的调用形式为gets(str_adr),其中stjadr是寄存输入字符串的起始地址,可以是字符数组名、字符数组元翥的地址或字符指针变量gets函数用来从终端键盘读入字符串(包括空格符),直到读入一种换行符为止getc()函数的调用形式为ch二getc(pf)其中pf是文献指针,函数的功能是从pf指定的文献中读入一种字符,并把它作为函数值返回
9、scanf函数中的格式控制字符串是为了输入数据用的,无论其中有什么字符,也不会输出到屏幕上scanf()的格式控制串可以使用其他非空白字符,如逗号,但在输入时必须输入这些字符,以保证匹配就可以°Printf函数可以输出常量也可以输出变量,Prinf函数可以用〃\%〃来输出百分号%
10、数组第一种数为0由printf输出的数据都隐含右对齐Printf输出数据所占的宽度由系统决定
11、条件运算符构成条件体现式的一般形式为体现式1体现式2体现式3其求值规则为假如体现式1的值为真,则以体现式2的值作为条件体现式的值,否则以体现式2的值作为整个条件体现式的值
四、选择构造
1、在C语言中,逻辑真值对应非
02、逻辑〃非〃(即运算符!)的运算级别是最高的;算术运算符优先级较高,关系和逻辑运算符优先级较低
3、for语句的一般形式为for(体现式1;体现式2;体现式3)语句其循环中的〃体现式1(循环变量赋初值)〃、〃体现式2(循环条件)〃和〃体现式3(循环变量增量)〃都是选择项,即可以缺省,但〃;〃不能缺省该题目中省略了〃体现式1(循环变量赋初值)〃和〃体现式3(循环变量增量)〃
4、只有运算对象均非零成果才为真逻辑与只有在〃〃符号两边操作均为真时,逻辑与为真II只要有一种对象非零成果就是真逻辑或当且只当〃I1〃符号两边操作至少有一种为真时,逻辑或成果为真
5、a!=b表达a不等于b时,运算成果为1,或者为
06、逻辑与运算符遵照〃短路求值〃方略,即只有在仅靠左操作数的值无法确定该逻辑体现式的成果时,才会求解右操作数例若有定义int a=0,b=0,c=0,d=0;,有C语言体现式(a++b++)c++:d++,如下有关其执行次序的论述对的是先执行a++,体现式a++的值为0,由此即可确定(a++b++)的值为0,因此执行d++
7、if语句中体现式为1直接执行为0执行else
五、循环构造
1、条件体现式的执行次数总是比循环体的执行次数多一次
2、设有如下代码do{while(条件体现式1)循环体A;}while(条件体现式2);while(条件体现式1)(do(}while(条件体现式2);假设体现式1与体现式2成立次数为nl与n2若rdn2,则循环体A执行次数为n2+l,B执行次数n2+l;若nl〈n2,则循环体A执行次数为nl,B执行次数nl
3、while循环语句一般形式为while(体现式){循环体},执行过程为首先判断体现式,成立(非0)则执行循环体,不成立
(0)则退出循环do・・・while循环语句一般形式为do{循环体}while(体现式),执行过程为首先执行循环体,之后判断体现式,成立(非0)则再一次执行循环体,不成立
(0)则退出循环
4、在条件相似的状况下,do…while循环比while…do多执行一次函数体两种循环都是在体现式为0时结束循环do-while循环由体现式真假判断与否退出循环,也可以用break语句退出循环
5、,while语句的语义是计算体现式的值,当值为真(非0)时,执行循环体语句.int k=0;whilek=lk++;whilek=l=while1,是死循环,执行无限次
6、只要合适地修改代码,就可以将do-while与while互相转换for语句使用最为灵活,它完全可以取代while语句;
7、s[k]-0为是s口数组的k所对应的字符串长度
8、在C语言中等于号用〃二二〃表达,一种〃二〃表达赋值分、数组、*与放在一起作用抵消,表达引用指针所指元素后的第个元素1*pt+i pti、2ttinclude stdio.hmain{int c
[6]={10,20,30,40,50,60},*p/s;p=c;s=c
[5];,,printf%d\n s-p;z}语句指将⑼元素的地址赋给指针变量;语句指将元素的地址赋给指针变量p=c;c ps=c
[5];c
[5]S、3#include stdio.hmain{int a
[5]={2,4,6,8,10},*p,**k;;P=a k=p;printf%d,*p++;,Hprintf%d\n,**k;}首先通过p=a使p指向数组的第1个元素,因此输出;在输出后来,由于即就指向数22p++,p组的第个元素,**1就是取出p所指向元素的值,而指向的是数组的第个元素,即输出2p
24、通过一条语句可以定义多种数组;数组阐明符的一对方括号中可以是整型常量,可以是整型4常量体现式;在引用数组元素时,下标体现式必须是整型的数组下标的下限是
0、不合法,应为;用字符串方式赋值比用字符逐一赋值要多5chara
[2]={“A“JB”};char a
[2]={A,B};占1个字节、数组下标的下限是
60、数组名背面括号的值必须是整形常量,不可以是变量
7、static内部静态变量是一直存在的,当函数被调用退出后,内部静态变量会保留数据,再8次调用该函数时,此前调用时的数值仍然保留着、函数的功能是将所指数组元素从大到小排序*/即指排序9void funfint*a,int n/*fun a func+4,6;从第个元素开始进行从大到小排序
5、数组阐明的一般形式为类型阐明符数组名[常量体现式]
10、指针的赋值首先基类型必须一致,二维数组名,是二维数组的首地址,其基类型是一种11s具有个元素的字符数组是一种字符指针变量,其基类型是一种字符,是一种行指针,10p k其基类型是具有个元素的字符型数组3
七、函数、程序中主函数不能被其他函数调用,函数可以放在程序开始,也可以放在中间,也可1C main以放在最终,位置不固定,但程序执行时必须从函数开始在程序的函数中不能定义另main C一种函数,可以申明或调用另一种函数每个程序中必须包括一种函数,但不一定是每C main个程序义献中必须有,顾客单独编写的某个函数也可以存储为一种程序文献C C、数学库中定义了函数的名称、参数个数与类型、返回值类型与详细的函数体编译预处理时,2预处理程序将查找指定的被包括文献,并将其复制到命令出现的位置上,不引用include math,h文献,文献编译时,编译器无法识别没有被定义的函数sin若要使用C数学库中的sin函数,需要在源程序的头部加上#include math.h通过引用math.h文献,阐明sin函数的参数个数和类型,以及函数返回值类型
3、函数调用时,函数名称是需要辨别大小写的;函数名不容许以数字开头;在函数中容许有多种语句,但每次调用只能有一种语句被执行return return、顾客自己定义的函数能调用库函数也可以调用自定义函数;对于不一样函数的形式参数可以4使用相似名称的标识符;有关函数的定义不可以嵌套,但函数的调用可以嵌套、不能将一种整数直接赋给指针变量作为地址函数的返回值可以是地址,即指针函数调用5中形参值的变化不会传递给实参、语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,6C而不能由形参传回来给实参在内存中,实参单元与形参单元是不一样的单元、程序必须由一种或一种以上的函数构成;函数调用可以作为一种独立的语句存在;若函数7C有返回值,必须通过语句返回return
8、语句fa
[2]50的作用是对从矶2]开始的5个元素进行从大到小排序
9、void fint*s{*s=k;}main{int m=3,*p=m;f p;printf,z%d,m,*p;指向调用函数将实参中的地址传递给形参指向田,则赋值给仍然m=3,p m,f,p ms,s km,m=5,p指向故输出m,5,
5、函数调用中发生的数据传送是单向的即只能把实参的值传送给形参,而不能把形参的值反10向地传送给实参因此在函数调用过程中,形参的值发生变化,而实参中的值不会变化指针A、在计算机内存中,用一种字节表达一种内存单元并为每一种存储单元编号,这个编号就是存1储单元的〃地址〃一种变量的地址称为该变量的〃指针〃专门用来寄存变量地址的变量,称为〃指针变量〃常量存储在编译文献中,不能取地址一种指针变量的地址只能赋给指向这种类型的指针变量,与其自身类型不一样,不能赋值,未赋初值的指针变量自动赋任意地址值、2所有地址值所占字节都是同样的,故指针变量所占内存大小同样;不能随意把一种地址寄存到任何一种指针变量中去,只能把具有相似类型的变量的地址,寄存到这个指针变量中,构造体变量与某个组员类型不一样,不能用同样的指针指向它们、3ttinclude stdio.hvoid fint*pjnt*q;mainint m=l,n=2*r=m;/fr,n;%,printf“d,%d m,n;void fint*p,int*q;P=P+1*q=*q+l;在函数中,执行是将所对应的地址加而*是将所指向的的地址所fint*p,int*q p=p+l p1,q=*q+1q n对应的值加因此的得知所对应的值没有变,而的值则为了L mn
3、假如是指针变量,则*表达变量所指向的地址的值;假如是指针变量,则表达变量4p p p p p的地址;假如是指针变量,*表达将所指的值加上而表达的是先将指针右移一位p pp+1p L*p+l再取所指向变量的值、虽然不一样基类型的指针变量占用字节数是相似的,不过不能混用5体现式不是非法的;语句是非法的6float a
[10],x;a+1a=x;
7、a二*ptr++表达把指针ptr对应地址单元里的值赋给a,再将ptr对应地址单元里的值加
1、定义指针后,必须指针进行初始化就进行赋值8pp9int x=2,*p=x;float y=
3.0;char z-c由于X是—,种整形变量,将X地址赋值给p指针后,对进行加一运算,指针的值相称于加整型变量的地址占个字节,此时指向了未知的内存pp44p地址,对未知内存地址进行操作具有安全隐患、把一种指针变量的值赋给另一种指针变量,但一定要保证这两个指针变量的基类型是相似的;10只要两个指针变量基类型相似,可以指向同一种对象、函数的返回值可以是地址,即指针函数调用中形参值的变化不会传递给实参不能将一种11整数直接赋给指针变量作为地址;函数可以返回地址值;变化函数形参的值,不会变化对应实参的值;当在程序的开头包括头文献时,可以给指针变量赋stdio.h NULL
12、指针是用来寄存地址的变量,用类型名*指针变量名的形式定义赋值时应将某个变量地址即赋给指针变量x、,;和;或;等价;语句执行后,指针并不是指向地址为的存储13p=NULL p=0p=10p=NULL;p0单元,而是具有一种确定的值」空、指针变量的赋值只能赋予地址,决不能赋予任何其他数据,否则将引起错误;;和14p=NULL;是等价的;指向同一数组的两指针变量进行关系运算可表达它们所值数组元素之间的关系p=0假如企图通过一种空指针来访问一种存储单元,将会得到一种出错信息
15、不可以取一种常数或体现式的地址赋值给同类型的指针变量;通过强制类型转换可以将一种类型的指针变量赋值给另一种类型的指针变量
16、若有定义语句inta
[2]
[3]/p
[3];则如下语句中对的的是A p=a;B p
[0]=a;C p
[0]=a[l]
[2];D p[l]=a;参照答案C【解析】选项错误,由于是指向一种指针数组,作为数组名,不能指向别的地方选项错A pB误,由于是一种指针,也就是;而是一种指向指针的指针选项对的,由于p
[0]int int*a int**C p
[0]是一种⑵是是类型吻合选项错误,由于作为数组名,不能取地址虽然能取,int*,int,int*,D a⑴是是类型不对因此选项对的p int*,a int***,C、没有对指针进行初始化,无效指针17int*p;scanf%d,p;
18、不容许把一种数赋予指针变量,被赋值的指针变量前不能再加*”阐明符
19、若有定义语句int a
[10]={0,1,2,3,4,5,6,7,8,9},*p=a;,如下选项中错误引用a数组元素的是其中0WiGOA**a+iB a[p-a]0p[i]D*a将数组的首地址赋给指针表达数组中第个元素的地址,引用其中元素为**p=a,a pa+i ai选项引用错误选项引用的元素为选项中表达后个地址的元素a+i,A p-a=O,B a
[0]C p[i]p i选项中取地址,取这个地址内的元素,即为本题选择选项a[i]D a[i]a[i]*a[i]a[i]A、函数的原型为;,函数的作用是在内存的动态存储辨别配一种长度为20malloc mallocsize size的持续空间
九、编译预处理和动态储存分派、预处理命令是以〃#〃号开头的命令,它们不是语言的可执行命令,这些命令应当在函数之1C外书写,一般在源文献的最前面书写,但不是必须在起始位置书写,因此错误语言的B,C预处理可以实现宏定义和条件编译等功能、宏定义写在函数的花括号外边,作用域为其后的程序,一般在文献的最开头宏定义必须位2于源程序中所有语句之前是错误的宏名一般用大写,但不是必须用大写,宏展开不占运行时间,只占编译时间,函数调用占运行时间分派内存、保留现场、值传递、返回值宏替代没有数据类型限制、在编译程序对源程序进行预处理时用替代标识符3#define N100C100N、不带参数的宏定义是用一种指定的标识符来代表一种字符串,其一般形式如下宏名4ttdefine替代文本需要注意在#€^^加、宏名和替代文本之间用空格隔开,在程序中,宏定12C义的定义位置一般写在程序的开头;宏名一般用大写字母表达,便于与变量名区别;宏定34义是用宏名来表达一种字符串,在宏展开时以该字符串取代宏名,这只是一种简朴的代换,预处理程序对它不做任何检查;宏定义不是语句,在行末不加分号,如加上分号则连分号也一5起替代宏定义必须写在函数之外,其作用域为从宏定义命令起到源程序结束,如要终止其6作用域可使用命令选项前多了一种#,缺乏〃替代文本〃〃宏名〃〃替代文本〃#undef Bdefine位置反了,不能将一种自定义标识符宏定义为关键字、5#define SUBaa-a d=SUBa+b*c;SUBa+b*c=a+b-a+b*c=、6fx x*x*xfa+l=a+l*a+l*a+l=3*a+l=10,fa+l=a+l*a+l*a+l=
64、在一种程序中,容许使用任意数量的命令行7include包括文献被修改了,包括该文献的源程序必须重新进行编译和连接、考察预处理命令行,预处理是在程序编译之前进行的预处理命令行的最终不能以分号表达8结束;是合法的宏定义命令行;在程序中但凡以由“开始的语句行都是预处理命#define MAX令行
十、构造体与共用体、类型名新类型名表达为一种已经有定义的类型标识符重新定义一种类型名1typedef、关键字的作用只是将语言中的已经有的数据类型作了置换,并不是增长新的类型;2typedef C可以用已存在的类型用一种新的名字来代表;用定义新的类型名后,原有类型typedef^typedef名仍有效;用可认为多种类型起别名,但不能为变量起别名typedef、3typedef structS{int g;char h;}T;可用定义构造体变量T、4typedef structabc{int n;double m;}ABC;ABC x,y;对已存在的类型使用一种新的名字typedef、使用阐明新类型名时,其格式是原类型名新类型名;在程序中,容许用5typedef typedef typedef来阐明一种新的类型名;使用阐明新类型名时,背面能加分号;在使用typedef typedef变化原类型的名称后,可以使用原类型名、的作用是用一种新的标识符来代表已存在的类型名;可以用阐明的新类型名6typedeftypedef来定义变量7^typedef intT
[10];T a
[20];新定义的类型为大小为的整型数组,定义的型变量等价于定义了一种整型行列T10T a
[20],2010二维数组
8、typedef struct Dateint year;int month;int day;}DATE;则如下论述中错误的是A DATE是顾客定义的构造体变量B structDate是顾客定义的构造体类型0DATE是顾客阐明的新构造体类型名D struct是构造体类型的关键字语言容许用阐明一种新类型名,其一般形式如下类型名新类型名;,题C typedeftypedef目中定义了新类型这种类型变量包括个组员,是这种新类型的名字是顾客Date,3DATE DATE阐明的新构造体类型名,不是构造体变量,选项论述对的,选项论述错误,选择选项C AA struct是顾客定义的构造体类型,选项论述对的是构造体类型的关键字,选项论述对Date BstructD的、语言中没有逻辑类型;若要保留带有多位小数的数据,可以用单精度类型也可以用双精度9C类型处理包括不一样类型的有关数据可以定义为构造体类型整数类型可以无误差的表达自然数一种构造体类型可以由多种称为组员或域的成分构成;构造体类型中的成分可以是构造体;
10.定义构造体时编译程序并不会给它分派内存空间;构造体中各个成分的类型可以是不一样样的
11、不能在定义构造体的同步,又用构造体类型名定义变量
十一、文献、文献是由数据序列构成,可以构成二进制文献或文本文献
12、fp=fopen,zres.txtz,,〃w〃;fputc,K+i,fp;fclosefp;执行打开文献、写入文献、再关闭文献的操作,由于函数使用模式写文献,res.txt fopen‘w因此每次打开后,都删除文献中的原有数据,再重新写入新数据res.txt、文献指针指向的是文献缓冲区,而不是文献自身位置,文献指针是指针类型的变量;函3fscanfO数作用是从指定的文献中格式化读数据,读取数据类型由格式控制符决定、文献指针是程序中用定义的指针变量;在语言中用一种指针变量指向一种文献,这个4FILE C指针称为文献指针通过文献指针就可对它所指的文献进行多种操作文献指针不是文献位置指针、文献指针是指针变量,存储的是文献缓存区首地址
5、所谓文献指针,实际上是指向一种构造体类型的指针变量,这个构造体中包具有文献的某些6信息,如缓冲区的地址,在缓冲区中目前存取的字符的位置,对文献是〃读〃还是〃写〃,与否出错,与否已经碰到文献结束标志等信息、当对文献的读写操作完毕之后,必须将它关闭,否则也许导致数据丢失;打开一种已存在7的文献并进行了写操作后,原有文献中的所有数据不一定被覆盖,也可以对源文献进行追加操作等在一种程序中当对文献进行了写操作后,不用先关闭该文献然后再打开,才能读到第1个数据,可以用函数进行重新定位即可语言中的文献可以进行随机读写fseek C
10、循环队列中的元素个数与队头指针和队尾指针的变化而变化
11、队列的修改是依先进先出的原则进行的
12、设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制构造
13、次序表具有如下两个基本特性1线性表中所有元素所占的存储空间是持续的;2线性表中各数据元素在存储空间中是按逻辑次序依次寄存的3在次序表中,每个元素占有相似的存储单元
14、设栈的次序存储空间为S0:49,栈底指针bottom二X,栈顶指针top二Y指向栈顶元素则栈中的元素个数为X-Y+
115、设栈的次序存储空间为Sl:m,初始状态为top=m+1X现通过一系列入栈与退栈运算后,top=20Y,则目前栈中的元素个数为m+l-20=m-19X-Y
16、设栈的次序存储空间为Sl:50,初始状态为top=0现通过一系列入栈与退栈运算后,top=20X,则目前栈中的元素个数为20X
二、程序设计基础
1、构造化程序设计的思想包括自顶向下、逐渐求精、模块化、限制使用goto语句
2、构造化程序包括的基本控制构造只有三种,即次序构造、选择构造与循环构造
3、在软件设计中使用的工具PAD图,不使用的工具数据流图DFD图
4、对象有如下某些基本特点标识唯一性、分类性、多态性、封装性、模块独立性好
5、多态性是指同一种操作可以是不一样对象的行为
6、整数类实例包括十进制常量用09表达,不能以0开头;八进制常〜量用0~7表达,必须用0开头;十六进制常量用09和A F(af)表达,〜〜〜必须以Ox或0X开头
7、字符实例的一般形式是用一对单引号括起来的一种字符此外ASCH码中尚有某些控制字符,C语言中用转义字符的形式来书写这些常,转义字符一反斜杠(\)开始,背面跟1个字符或字符序列
8、继承是面向对象的措施的一种重要特性,是使用已经有的类的定义作为基础建立新类的定义技术广义的说,继承是指可以直接获得已经有的性质和特性,而不必反复定义它们,因此说继承是指类之间共享属性和操作的机制
三、软件工程基础
1、软件指的是计算机系统中与硬件互相依赖的另一部分,包括程序、数据和有关的文档
2、软件具有如下特点
(1)软件是一种逻辑实体,具有抽象性;
(2)软件没有明显的制作过程;
(3)软件在有效期间不存在磨损、老化问题;
(4)对硬件和环境具有依赖性;
(5)软件复杂性高,成本昂贵;
(6)软件开发波及诸多的社会原因,如知识产权等
3、软件生命周期可以分为软件定义、软件开发与软件运行维护三个阶段重要活动阶段是可行性研究与计划阶段,需求分析,软件设计,软件实现,软件测试,运行和维护(同9)
4、计算机软件按功能分为应用软件、系统软件、支撑软件(或工具软件)系统软件是管理计算机的资源,提高计算机的使用效率,为顾客提供多种服务的软件,如操作系统、数据库管理系统、编译程序、汇编程序和网络软件等
5、数据定义语言负责数据的模式定义与数据的物理存取构建;数据操纵语言负责数据的操纵,包括查询及增、册h改等操作;数据控制语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能
6、软件工程包括3个要素措施、工具和过程
7、软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期
8、数据库系统的三级模式是概念模式、外模式和内模式概念模式是数据库系统中全局数据逻辑构造的描述,是全体顾客公共数据视图外模式也称子模式或顾客模式,它是顾客的数据视图,给出了每个顾客的局部数据描述内模式又称物理模式,它给出了数据库物理存储构造与物理存取措施
9、软件生命周期分为3个时期共8个阶段软件定义期,包括问题定义、可行性研究、需求分析;软件开发期,包括概要设计、详细设计、实现、测试;运行维护期,即运行维护阶段可行性研究属于软件定义期任务(同3)
10、可行性分析阶段可行性分析汇报需求分析阶段软件规格阐明书,初步的顾客手册软件设计阶段概要设计阐明书,详细设计阐明书,测试计划草稿软件实践阶段:顾客手册,操作手册等面向顾客的文档和单元测试计划软件测试阶段测试分析汇报
11、概要设计阐明书是总体设计阶段产生的文档集成测试计划是在概要设计阶段编写的文档需求规格阐明书是后续工作如设计、编码等需要的重要参照文档
12、需求分析阶段的工作可以分为4个方面需求获取、需求分析、编写需求规格阐明书和需求评审,包括确定软件系统的功能
13、
(1)在测试之前制定测试计划,并严格执行,测试用例的选择不可随意,应选择有代表性的,尽量发现迄今为止尚未发现的错误
(2)测试主线目的是尽量多地发现并排除软件中隐藏的错误
(3)软件测试是保证软件质量、可靠性的关键环节
14、在需求分析阶段可以使用的工具有数据流图DFD图,数据字典DD,鉴定树与鉴定表
15、数据流图中带箭头的线段表达的是数据流
16、数据字典(DD)所定义的对象都包括于数据流图(DFD图)
17、软件需求规格阐明书有如下几种方面的作用
①便于顾客、开发人员进行理解和交流;
②反应出顾客问题的构造,可以作为软件开发工作的基础和根据;
③作为确认测试和验收的根据
18、软件设计中模块划分应遵照的准则是高内聚低偶合、模块大小规模合适、模块的依赖关系合适
19、从技术观点上看,软件设计包括软件构造设计、数据设计、接口设计、过程设计
20、减少耦合性提高内聚性有助于提高模块的独立性(高内聚低耦合)
21、扇入指的是调用一种给定模块的模块个数
22、扇出指的是由一种模块直接调用的其他模块数
23、构造化程序的三种基本控制构造次序、选择和循环(反复)
24、在数据流图中,用标有名字的箭头表达数据流在程序流程图中,用标有名字的箭头表达控制流
25、软件测试的目的是为了发现错误而执行程序的过程程序调试的基本环节有错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误程序调试一般称为Debug,即排错软件测试的基本准则有所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充足注意测试中的群集现象、程序员应防止检查自己的程序、穷举测试不也许、妥善保留测试计划等文献
26、白盒测试又称为构造测试或逻辑驱动测试,对程序所有的逻辑途径进行测试
27、黑盒测试只是根据程序的功能阐明来设计测试用例在使用黑盒测试法时,手头只需要有程序功能阐明就可以了黑盒测试法等价类划分法、边界值分析法和错误推测法
四、数据库设计基础
1、数据库管理系统是数据库的机构,是一种在操作系统之上的系统软件
2、数据管理技术的发展经历了3个阶段人工管理阶段、文献系统阶段和数据库系统阶段特点人工管理阶段文献系统阶段数据库系统阶段人文献系统数据库管理系统管理者面向对某个应用程序某个应用程序现实世界象共享程无共享,冗余度共享性差,冗余度共享性大,冗余度小度大大独立性不独立,完全依独立性差具有高度的物理独立性赖于程序和一定的逻辑独立性构造化无构造记录内有构造,整整体构造化,用数据模体无构造型描述控制能由应用程序控制由应用程序控制由DBMS提供数据安全力性、完整性、并发控制和恢复
3、数据库应用系统中的关键问题是数据库的设计
4、数据库中反应顾客对数据规定的模式为外模式
5、数据模型一般由数据构造、数据操作及数据约束3部分构成
6、数据模型按照不一样的应用层次分为3种类型概念数据模型、逻辑数据模型、物理数据模型
7、数据模型成熟并大量使用的数据模型有层次模型、网状模型、关系模型和面向对象模型等
8、关系模型实体间的联络采用二维表来表达,简称表网状构造为网状模型实体间的联络;树状构造为层次模型实体间的联络;属性刻画了实体
9、在E—R图中实体集用矩形,属性用椭,联络用菱形
10、二维表中的一行称为元组候选键(码)是二维表中能唯一标识元组的最小属性集若一种二维表有多种候选码,则选定其中一种作为主键(码)供顾客使用表M中的某属性集是表N的候选键或者主键,则称该属性集为表M的外键(码)
11、1966年Boehm和Jacopini证明了程序设计语言仅仅使用次序、选择和反复(循环)三种基本控制构造就足以体现出多种其他形式构造的程序设计措施
12、关系模型中可以有3类完整性约束实体完整性约束、参照完整性约束和顾客定义的完整性约束实体完整性约束是指,若属性M是关系的主键,则属性M中的属性值不能为空值参照完整性约束是指,若属性(或属性组)A是关系M的外键,它与关系M的主码相对应,则对于关系M中的每个元组在A上的值必须为要么取空值;要么等于关系M中某个元组的主码值
13、用于查询的3个操作无法用老式的集合运算表达,引入的运算为投影运算、选择运算、笛卡尔积常用的扩充运算有交、除、连接及自然连接等并RS是将S中的记录追加到R背面交RS成果是既属于R又属于S的记录构成的集合上述两种操作中,关系R与S规定有相似的构造,故A、D选项错误自然连接去掉反复属性的等值连接自然连接规定两个关系中进行,比较的是相似的属性,并且进行等值连接除运算可以近似地看作笛卡尔积的逆运算当SXT=R时,则必有R+S=T,T称为R除以S的商设关系R有属性Mi,M…,关系S有属性+「…,M,此时有R2,Mn,Mn_s MLS+2,n…,M_(R)X S))由S中有属性~S兀Ml,M2,•••,-M n-sR“Ml,M2***M-n-s2,n soA和Al,T中属性为B和B1,在R元组中找到对应于S中两个元组的T中元组为f3与n2R中最终一种元组与S中无对应关系,因此在T中也不会出现投影,从关系模式中指定若干个属性构成新的关系二级语言C
一、C语言概述
1、构造化程序设计把一种复杂问题的求解过程分阶段进行,需要保证自顶向下、逐渐细化、模块化设计、构造化编码
2、函数体必须由{开始一种源程序文献可以包括预处理命令、全局申明、函数定义,程序总是从main函数开始执行的
3、算法不一定要包括所有三种基本构造,也可以只包括一种或两种
4、算法的复杂程序不是由操作环节多少决定的,而是准时间复杂度与空间复杂度来衡量
5、C编译程序把文献后缀为.c的源程序文献编译成文献后缀为.obj的二进制文献,链接将一种或多种目的文献与程序用到的库文献连接起来,形成一种可以在操作系统直接运行的执行程序.exe
6、一种算法应当具有如下五个重要的特性有穷性,确定性,输入,输出以及可行性
7、只有同步包括三种基本构造时,程序才是构造化程序一种构造化程序可以包括次序、分支、循环构造中的一种或多种
8、stdio.h文献中包括原则输入输出函数的函数阐明,预处理指令#include〈stdio.h〉是使程序可以去该文献中找到printf,scanf等函数以便使用
9、计算机能直接执行的程序是二进制的可执行程序,扩展名为.exe
10、算法的特性:
①有穷性一种算法(对任何合法的输入)在执行有穷步后可以结束,并且在有限的时间内完毕
②确定性算法中的每一步均有确切的含义
③可行性算法中的操作可以用已经实现的基本运算执行有限次来实现
④输入:一种算法有零个或者多种输入,零个输入就是算法自身确定了初始条件
⑤输出一种算法有一种或者多种输出,以反应出数据加工的成果
11、算法的描述有伪代码、流程图、N-S构造图等E-R是实体联络模型
12、C语言中的非执行语句不会被编译,不会生成二进制的机器指令C程序通过编译、连接环节之后才能形成一种真正可执行的二进制机器指令文献用C语言编写的程序称为,它以ASCII代码形式寄存在一种文本文献中C语言源程序经编译后生成后缀为.obj的目的程序
13、C语言的数值常量中不能夹带空格在C语言中运算符两侧的运算数据类型可以不一致,且成果与精度较高的保持一致,
14、C语言程序是由函数构成的可以单独进行编译每个C程序中必须包括一种main函数,但不一定是每个C程序文献中必须有,顾客单独编写的某个函数也可以存储为一种C程序文献
15、一种一般的C函数可以单独作为一种C的程序文献存在被包括到其他程序中
16、在复合语句中,不仅可以有执行语句,还可以有定义语句,定义语句应当出目前执行语句的前面
17、C语言中的某些语句可以不用分号,例如if语句
18、关键字不可用做顾客标识符
19、C语言的标识符分为3类:关键字、预定义标识符和顾客标识符常量不属于标识符
20、一条C语句对应转换成一条机器指令
二、运算符与体现式
1、sizeof是C语言中的一种操作符operator其作用就是返回一种对象或者类型所占的内存字节数
2、条件体现式x=体现式1体现式2体现式3的含义是先求解体现式1,若为非0真,则求解体现式2,将体现式2的值赋给X若体现式1的值为0假,则求解体现式3,将体现式3的值赋给x
3、C语言中没有运算符a%=b表达a=a%b c语言中〃的意思是按位异◊或
4、c语言中〃的意思是按位异或,运算符号按位或〃|〃,把两个数化为二进制,异为1,同为0,如10的二进制为000010103的二进制为0000001110^3=99的二进制为00001001〃〃按位与运算,同为1,异为
05、在VC
6.0平台中,整型int占有4个字节,double型数据占有8个字-+4-To
6、算术运算符+的优先级高于一=
7、十进制一一〉〉二进制:十进制除以2,记录余数直到除尽到0,其二进制为这些余数倒着排列10/2=5余0,5/2=2余1,2/2=1余0,1/2=0余1,则10的二进制为1010,由于二进制有8个字节,则10的二进制为00001010c
8、二进制——〉〉十进制:例000010011*274-1+0*273-1+0*272-1+1*271-1=9000011111*274-1+1*273-1+1*272-1+1*271-1=
159、explexp2,规则为对expl求值,若为0,则体现式为0,且不计。
个人认证
优秀文档
获得点赞 0