计算机软件基础复习参考题2.docx
- 文档编号:5629982
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:30
- 大小:44.61KB
计算机软件基础复习参考题2.docx
《计算机软件基础复习参考题2.docx》由会员分享,可在线阅读,更多相关《计算机软件基础复习参考题2.docx(30页珍藏版)》请在冰豆网上搜索。
计算机软件基础复习参考题2
计算机软件基础复习参考题一
√1、算法的描述方法很多,常用的有:
自然语言、类语言、流程图、N-S结构图等。
2、常用流程图符号:
起止框
处理框
输入输出框
判断框
流程指示线
3、程序设计的关键在于设计出一个好的算法。
4、程序中/*……*/表示注释,其位置可以放在程序的任何地方。
5、算法和程序的主要区别是什么?
答:
1、算法是有穷的,而程序是无穷的。
2、算法是不可执行的,程序是可以执行的。
3、算法和程序的描述方法不一样。
程序是用计算机语言目来描述的。
6、计算机的解题基本过程。
答:
提出问题---构造模型---选择方法---编写程序----上机调试、运行-----分析结果
7、用C语言编写的程序,计算机是直接执行的这样的程序称为源程序。
8、源程序必须翻译成机器语言,这一工作由“编译系统”来完成。
9、扩展名代表的文件。
。
C------源文件。
OBJ------目标文件
。
EXE------执行文件
10、C语言的数据结构是以数据类型的形式描述出来的。
√11、三种基本的数据类型:
整型、实型、字符型
12、C语言中的常量有整型、实型、字符型、字符串
13、整型常量一般占2字节。
实型常量一般占4字节。
所有的转义字符在内存中均占1字节。
字符串的长度为为串中字符的个数,但在内存中所占的字节应比长度多1
14、实型常量的两种书写形式浮点实数和定点实数。
15、字符型常量有用单括号括起来的单个字符和C语言还允许以一个“\”开头的控制字符。
16、转义字符有哪些,及其含义。
答:
\n换一行\o字符串结束\f换一页
\\反斜杠字符\’单撇 号字符\”双撇 号字符
\ddd1到3位八进制所代表的字符
\xhh1到2位十六进制所代表的字符
17、字符串常量是用双撇 号括起来的若干字符序列。
18、为了识别各个变量,每个变量都有一个名字,这个名字为标识符。
19、变量名只能由字母,下划线、数字构成,只能下划线和字母开头。
20、标识符的注意事项答:
1、C语言中大写字母和小写字母是两个不同字符。
2、标识符命名不得为C语言中称为保留字的专用名词。
21、变量必须遵守先定义、后使用原则。
22、变量的表示方法答:
整型变量:
基本整型:
int长整型Long短整型short实型变量:
单精度实型:
float双精度实型double
字符型变量:
char
23、表达式书写的注意事项。
答:
1、所有字符必须写在同一边。
2、乘号“*”不能省
3、所有括号为圆括号,且配对4、函数的自变量用圆括号括起来,三角函数的自变量用弧度。
24、C语言提供了两种类型转换的方法:
答1隐式转换2显式转换
25、两整数相除其商为整数,%两边的运算对象为整数,其于数也为整数。
26、=为C语言的赋值运算符。
27、在定义时不能连续给变量a,b,c赋初值。
28、自加、自减运算符只能用于变量,不能用于常量和表达式。
29、单独出现的i++或++i的作用相当于i=i+1,但和其他量进行运算时就不同。
30、逗号表达式的执行过程是:
从左到右计算每个表达式,逗号表达式的值为最后一个表达式值,即表达式n的值。
31、程序的三种基本结构:
答1、顺序结构2、循环结构3、选择结构
32、;作为语句的结束标志。
33、字符输入输出函数。
getcharputchar
34、格式输入输出函数scanfbrintf
35、格式控制字符。
%d整型格式%c字符型格式%f实型格式
36、scanf函数使用注意事项
答:
1、sanf函数输入实型数据时不能规定精度2、sanf函数中,格式控制字符串后面对应的是“变量地址”,而不是变量名。
3、“%c”格式输入时只能接收一个字符。
37、C语言提供的关系运算符有哪些。
>>=<<===!
=
38、关系表达式的值即真为1,假为0。
39、两个实数不能用==来判断。
40、C语言提供的逻辑符有!
&&||。
41、逻辑表达式中,优先顺序为
!
----*、/、%----+、----->、>=、<、<=----==、!
=-----&&------||
42、if语句有几种形式?
答单分支语句、双分支语句、嵌套的if语句
43、if与else配对,else总是与最近的if配对。
44、?
:
是C语言中唯一一个三目运算符。
45、if语句只有两个分支可供选择,swich是一种实现多分支结构。
46、循环结构有三种形式答:
条件循环、直到型循环、次数循环
47、for语句的书写形式for(表达式1;表达式2表达式3)循环语句S
48、表达式非0才循环,是三种循环的共同之处。
49、break与cantinue的区别在于:
continue只结束本次循环重新进行下次循环判断,而break结束整个循环。
√50、if与循环结构,不得交叉可以并列,也可以内嵌。
51、数组的命名规则答:
1、数组名的命名规则同变量名.
2、数组元素下标从0开始,最大值为长度减1。
3、常量表达式可以为常量和符号常量,不得包含变量。
4、数组名后面不能是圆括号。
52、数组元素在引用时,下标不得超界。
53、二维数组在内存中的排列顺序是按行存入的。
54、在定义数组时,若给出了全部元素值,则第一维的长度可以不写。
55、字符数组中的一个元素存放一个空间。
26、常见的字符串函数。
字符输入函数gets字符输出函数puts
长度strlen字符串连接函数strcat
27、字符大小的比较数字字符<大写字母<小字字母
28、用预编译命令“#include”将用的函数有关信息包括到用户程序中,位置应放在程序开头,且命令结尾不得有“;”。
29、C语言规定,不能在一个函数内部再定义其他函数,即C语言不允许函数的嵌套定义。
函数的首部结尾结有“;”。
30、一个完整的C程序可由1个主函数main组成,或由1个主函数和若干个子函数构成。
31、程序的执行总是从主函数开始到主函数结束。
√32、C语言中数据传递方式有四种;单向值传递方式、地址传递方式、返加值传递方式、全局变量传递方式。
33、一个变量的作用域是指该变量在程序中的有效范围。
34、C语言中访问地址的方式有直接存取方式和间接存取方式。
35、int*p说明p是一个指向整型的指针变量,在p的存储空间中可以存放一个整型变量的地址。
36、C语言有两个专门的指针运算符&和*,它们都是单目运算符。
37、C语言规定,数组名是数组的首地址,也即元素X[O]
38、用指针表示一个字符串分两步:
答:
1、先定义一个指向字符型的指针。
2、让该指针指向某一字符串,也就是说将一个串的首地址赋给一个指针变量。
39、“。
”是C语言中的成员运算符,它的优先级最高。
41、结构变量所占用的存储空间是所有成员所占空间之和。
42、数据——我们把计算机加工的对象叫数据。
43、数据组织的三个层次——数据、数据节点、数据项。
44、数据结构研究的主要内容归纳起来有三点
答:
1、数据的罗辑结构。
2数据的物理结构3数据的逻辑结构和特理结构之间的相互运算。
√45、数据的逻辑结构分两类:
线性结构和非线性结构。
46、数据的物理结构是数据在计算机内的存储表示也称存储结构。
√47、数据的物理结构可分两类,顺序存储结构和非顺序存储结构。
√48、数据的逻辑结构和物理结构之间的相互运算是通过算法来实现的。
49、一个算法的时间复杂度是求解问题的算法所耗时间的程度。
50、常见的时间复杂度以及它们之间的关系由小到大依次为:
常数阶O
(1)、对数阶O(log2n)、线性阶O(n)、线性对数阶O(nlog2n)、平方阶O(n2)、立方阶O(n3)、指数阶O(2n)等。
51、同时间复杂度一样,算法的空间复杂度粗略的来讲是算法消耗空间的程度。
52、空间复杂度为O
(1),即所耗辅助空间与问题的规模无关。
53、同一线性表中的数据节点具有相同的属性。
54、线性表的存储结构有两种:
顺序存储结构、链式存储结构
55、可以看出线性表的这种顺序存储结构使得线性表中逻辑上相邻的数据节点在物理上也相邻。
56、线性表中数据节点在一连续空间中存放,所以很容易计算出各节点存储地址,其地址为:
Loc(ai)=Loc(a0)+i*d(0≤i≤n-1)
√57、顺序表上顺序查找成功的平均查找次数为(表长+1)/2
58、在线性表中插入一个数据节点的平均需移动线性表中一半节点。
59、插入运算的时间复杂度与n有关。
T(n)=0(n)
60、线性表中删除一个节点,约平均需移动线性表中一半节点。
61、单链表中每个节点有两个成员:
数据域和指针域。
62、单链表只能沿链从前向后访问表中节点,无法找到某节点前面的其他节点.而循环单链表可以通过任一点来访问表中的其他节点。
63、若经常进行的运算为查找运算,以顺序存储为宜。
64、若经常进行的运算为插入、删除运算,以链式存储为宜。
65、顺序存储结构在程序执行之前必须给出空间长度,对数据量事先固定的问题用顺序存储为好。
66、顺序存储空间利用率高,而链式相应少一些。
67、栈是一种先进后出的线性表。
68、栈也有顺序存储结构和链式存储结构,分别称为顺序栈和链栈。
69、进栈和退栈的运算:
答:
进栈有以下步骤
1)、先判断栈是否已满,若满,则进行上溢处理,否则进行2)。
2)、栈顶指针上移1个节点。
3)将X加入到top所指位置。
退栈有以下步骤:
1)、检查栈是否为空,若栈空,则进行下溢处理,否则进行2)。
2)保留被删元素到变量X中。
3)栈顶指针下移1个节点。
70、队列是一种先进先出的线性表。
71、入队和出队的远算答:
入队运算:
1)、先判断队列满吗?
若满则退出;否则进行第二步;
2)、队尾指针下移一个节点位置。
3)、在队尾指针的位置加入X。
出队运算:
1)、判断队列为空?
若空则退出;否则进行第二步。
2)、保留队头元素内容到X变量中。
3)、队头指针下移1个节点位置。
72、计算机系统用牺牲一个空间的办法来解决当front=rear时,既是循环队列为空,又是循环队列为满这一矛盾的。
73、循环队列空的条件是:
front=rear
满的条件是:
front=(rear+1)%m
74、求元素Ai,j的地址一般形式为:
数组首地址+Ai,j元素前已存入元素的个数*各元素的字节数。
75、所谓的压缩存储是指对零元素不分配空间,相同元素只分配一个空间。
76、三对角阵公式:
已知i和j,求K,k=2i+j
77、树的有关名词:
节点的度:
节点的孩子称为节点的度。
树的度:
树中节点最大的度为该树的度。
叶子节点:
度为0的点称为叶子节点。
双亲节点:
一个节点的双亲节点是这个节点的父亲节点。
树的高度:
树的层数为树的高度。
78、二叉树的三种基本遍历方法:
先序遍历、后序遍历和中序遍历。
79、哈夫曼树的性质:
答:
1)、给定权值的哈夫曼树不唯一;2)权值越大的节点离根节点就越近。
3)、哈夫曼树中无度为1的节点。
4)、哈夫曼树节点总个数n=2x叶子节点个数-1=2x权值个数-1=2n0-1。
80、一个二叉排序中序遍历的结果是一个递增序列。
81、根据排序文件所处位置的不同,可将排序分为内部排序和外部排序两大类。
82、内部排序的时间主要用在关键字的比较和交换上,外部排序的时间主要用在外存的访问次数。
83、直接插入排序最好情况的时间复杂度为O( n)。
84、螺旋模型是一种风险驱动模型。
它将瀑布模型与原型模型结合起来,加入了风险分析,从而弥补了前两种模型的不足.
√85、软件生存周期由软件定义、软件开发和软件维护三个时期组成。
86、结构化分析方法是面向数据流进行需求分析的方法,使用数据流图DFD和数据字典DD构成系统的逻辑模型,适用于数据处理类型的软件定义。
87、良好的程序设计风格需遵循以下准则:
答:
节俭化、模块化、简单化、结构化、文档化、格式化。
88、软件测试的基本原则答:
1)、尽早地、不断地进行软件测试;2)、设计测试用例时,要给出测试的预期结果。
3)、开发小组和测试小组分开。
4)、要设计非法输入的测试用期。
5)、在对程序修改后要进行回归测试。
6)、程序中尚未发现的错误的数量往往与在该段程序中已发现的错误的数量成正比。
√89、软件测试的步骤答:
1)单无测试2)集成测试3)确定测试4)系统测试。
90、需要进行软件维护的原因答:
1)、改正程序中的错误和缺陷。
2)、改进设计以适应新的软、硬件环境。
3)、增加新的应用范围。
91、软件维护工作的分类答:
1)、改正性维护;2)、适应性维护;3)、完善性维护;4)、预防性维护。
1、冒泡法:
#defineN4
Voidbustor(intx[],intn)
{inti,j,m,k;
for(i=1,i<=n-1;i++)
{k=1;
for(j=1;j<=n-i;j++)
if(x[j]>x[j+1])
{m=x[j];
x[j]=x[j+1];
x[j+1]=m;
k=0;}
If(k==1)break;}}
2、直接选择排序
#defineN6
voidsestor(intx[],intn)
{inti,j,k,m;
for(i=1;I<=n-1;i++)
{k=i;
for(j=i+1;j<=n;j++)
if(x[j] if(k! =1) {m=x[i]; x[i]=x[k]; x[k]=m;}}} main() {inta[N+1],i; for(i=1;i<=N;i++) scanf(“%d”,&a[i]); sestor(a,N); for(i=1;i<=N;i++)printf(“%d”,a[i]); printf(“\n”);} 1、判断哪个错误(B) A、while (2);2;B、do2;while(0)C、for(;0;)1;D、1; 2、哪个保留字不正确? B)A、ifB、CharC、floatD、default 3、以下哪个结果为1。 (D)A、3%5B、3/5.0C、3/5D、3<5 4、以下哪个表达式不正确? A A、3E1.0B、1.0E3C、.2ED、3E-2 5、以下哪个是字符常量? (B)A、“A”B、‘x\10’C、‘oa’D、.a 6、设a,b,c,d分别为char,int,float,double问a+b*c/d最后的结果为什么类型? 答: double型 7、intn+i;以下哪个错误(C) A、n=(i-1)B、n=n++C、i=(n+1)++D、n=i<0 8、intx=8;while(--x>6)printf(“*”)的结果是多少? ( * ) 9、for(k=2;++k<4;k++)++k;k为多少? 答: k=6 10、for(i=0,j=10;(j>0)&&(i<4);i++,j--);循环几次? 答: 四次 11、inti=0,j=10;printf(“%d”,“%d/n”;--i;j--),输出结果i,j为多少? 答: i=9,j=10 12、程序: intx=2; doprintf(“%d”,x--); while[! (--x)] 输出结果是多少? 答: 2,0 13、以下程序输出结果是多少? #include main() {inti=1,j=3; printf(″%d,″,i++); {inti=0; i+=j*2; printf(″%d,%d″,i,j);} printf(″%d,%d″,i,j);}答: 1,6,3,2,3 14、以下程序段输出是多少? main() {intx=2,y=-1,z=2 if(x if(y elsez+=1; printf(“%d\n”,z)}答: 输出为2 15、以下程序段输出是多少? main() {intx=11; while(x>10&&x<50) {x++; if(x/3){x++,break;} elsecontinue;} printf(“%d\n”,x);}答: 输出为13 16.main() {intk,m=0; for(k=ok<2;k++) {m++; if(m%2)continue; m++;} printf("m=%d\n",m);}输出结果m=3 √17.完形填空 输出1000以内能被3整除,且个位为6的所有整数, main() {inti,m; forli=o;i<=99;i++) {m=i*10+6; if(m%3! =0)continue printf("%d;"m);}} 18.键盘输入的若干个学生成绩,统计并输入最高和最低成绩,当输入负数时跳出.main() {floatx,max,min; scanf(%f",&x); max=min=x while(x>=0) if(x if(x>max)max=x; scanf(“%f",&x);} printf(“\nmax=%f,min=%f"max,min);} 19.char;a[]="123"b[]={'1''2''3'}以下哪个正确? (D) Aa[3]是不可知的任意字符B数组ab的长度相等 CB[3]为”、0“D数组a长度大于b 20.chars[]="123\0"的长度为5 21.main() {inti,x=10,a[10]b[3] for(i=0,i<10;i++)a[i]=i; for(i=2;i>=0;i--),b[i]=a[i*(i+1)] for(i=0;i<3;i++)x+=b[i]*2, printf("%d\n"x);}求输出: 26 22.main() {inta[2][2],i,j; for(i=0;i<2;i++) for(j=0;j<2;i++) {a[i][j]=i+j printf("%d"a[i][j]}}结果为0112 23.main() {chars1[]="abcdabdABCD",s2[20] intk=0,j=0; while(s,[k]! ='A')S2[j+1]=s1[k++]; S2[j]=0 pintf("%s\n",s2); 24.指针 main() intm,n=2,*p=&m,完成m=n功能的语句是(B) Am=*pB*p=*&n; Cm=&n;格式Dm=&p; 25.intx[8]={5,4,3,2,1},*p=x;则*p+6=11. 26.int*[8]{1.2.3.456}*p=x则值为5的表达式 A*P+5=6B*(p+4)C*p+5=5Dp+4 27.以下程序为递归函数 intf(intn) {ifn==1)return (1); elsereturn(f(n-1)+1);} main() {inti,j=0; for(i=1;i<5;i++),j+=f(i); printf("%d\n"j);}结果为10 28计算xn的程序。 doublef(doublex,intn) {inti; doublez=1.0; if(Y==0)return(1.0); elsefor(i=1i<=n;i++) z=z*x; return(z);} 29.voidf(int*a,intb[]) {b[*a]=*a+b; main() {intx=1,y[5]={1.2.3.4.5.},*p=y; f(&x,p); printf("%d/n",(p+x));}结果为b[1]=y[1]=7 30.intb=1 intf(int*a) {b+=a;return(b);} main() {inta=2,b=3; a+=f(&b); printf("%d\n",a);}输出结果为6 31.下列程序运行后的输出结果是DCBAEF voidfun(char*p1,intn) {chart,*p2; p2=p1+n-1; while(p1 {t=*p1;*p1++=*p2;*p2--=t;}} main() {char*p=″ABCDEF″; fun(p,4); printf(″%s\n″,p);} √32.下列程序的运行结果是: ABCDEFFEDCBA #definesqstack_maxsize20 typedefstructsqstack {chardata[sqstack_maxsize]; inttop; }SqStackTp; main() {SqStackTpsq; inti;charch; Init
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机软件 基础 复习 参考