02244 计算机软件基础(一)(实践)复习资料
计算机软件基础(一)复习资料

计算机软件基础复习参考题一、基本概念题√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 字节。
字符串的长度为为串中字符的个数,但在内存中所占的字节应比长度多114、实型常量的两种书写形式浮点实数和定点实数。
15、字符型常量有用单括号括起来的单个字符和C语言还允许以一个“\”开头的控制字符。
16、转义字符有哪些,及其含义。
答:\n 换一行\o 字符串结束\f 换一页\\ 反斜杠字符\‟单撇号字符\”双撇号字符\ddd 1到3位八进制所代表的字符\xhh 1到2位十六进制所代表的字符17、字符串常量是用双撇号括起来的若干字符序列。
18、为了识别各个变量,每个变量都有一个名字,这个名字为标识符。
19、变量名只能由字母,下划线、数字构成,只能下划线和字母开头。
202、标识符命名不得为C语言中称为保留字的专用名词。
02243计算机软件基础(一)

软件工程概念
软件工程是指导计算机软件开发和维护的工程学 科,承受工程的概念、原理、技术和方法来开发 与维护软件。
贯穿于这一学科的根本线索是软件生命期学说, 它告知软件研制者和维护者“什么时候做什么以 及怎么做”。
软件生命期就象人的寿命一样,从诞生算到死亡, 从产生开发要求算到软件报废为止。包括:软件 预备、需求分析、软件开发和软件维护四个时期。
时程序的规模和简洁度也急剧增长。 早期手工作坊式的软件开发方式因无法适应这种
变化而形成了“软件危机”。主要表现在: 开发本钱和进度估量不准确,生产效率低。 用户对软件系统不满足的现象常常发生。 软件产品的质量不行靠。 软件常常是不行维护的。 软件本钱在计算机系统总本钱中的比例上升。
第 26 页
第 14 页
软件技术分类
计算机 软件技术
软件及实现技术 软件开发方法与技术
程序设计语言 编译技术 操作系统及有用程序 数据库技术 软件工具 软件工程 程序设计方法 数据构造和算法
第 15 页
1.3 程序与程序设计语言
程序:是使计算机完成某种任务的一个有序的命令〔指 令语句〕和数据的集合。
写程序就像写文章,要解决两个问题: 1.明确自己要表达的是什么 2.用一种语言把它表达出来
它负责对计算机系统的各种软硬件资源进展 治理和安排,为用户供给友好的计算机使用 界面和平台。 在裸机上配置操作系统之后就构成了操作系 统虚拟机。 全部其它的程序都在扩大后的机器上运行。
第 23 页
应用程序 操作系统虚拟机
裸机
操作系统 用户程序
第 24 页
1.6 数据库技术
数据库是一种强大的数据处理技术。 它把应用中全部的数据有构造地集中在一起,
程序设计语言是编写计算机程序所用的语言。 程序设计语言进展的三个阶段:
计算机软件技术基——复习

查找方法的比较
1、相同之处: 都适合于以向量作存储结构的线性表 2. 不同之处: ⑴平均查找长度:顺序查找 > 分块查找 > 对分查找 ⑵表的结构: 顺序查找 对有序表、无序表均可 对分查找 仅适合于有序表 分块查找 要求逐段有序 ⑶存储结构: 顺序查找 分块查找 对分查找 只适合于向量,不适合于链表
O I I O
队
• 队的定义 • 访问算法 • 顺序队 1、基本操作: 出队:front++ 入队:rear++ 2、循环队列判断队空、队满的条件 3、基本运算
队的结构和运算——顺序队
出队 a1 a2 a3 入队 an
...
队头指针front
队尾指针 rear
front :队头指针,指向队头元素之前 rear:队尾指针,指向队尾元素
DATA
指针
①在链表中找到第 i-1 个结点 ② i 结点指针域赋给i-1结点的指针域 next(p)←next (next(p)) ③释放i 结点
特殊线性表——栈和队
进栈 出栈
• 栈的定义和基本操作 s[n-1] an top • 顺序栈 a n-1 栈顶 1、判断栈空、栈满的条件 2、进、出栈top的操作 3、栈的基本运算 • 链栈的结构及基本运算
计算机软件技术基础
复习
第一章
概
论
• 计算机的应用领域 • 计算机语言的发展阶段 • 软件的定义
第二章 常用数据结构及其运算
• 数据结构及相关概念(数据元素、逻辑 结构、物理结构,逻辑结构、物理结构 有那些主要常见类型) • 算法分析——算法、算法复杂度
线性表
• 线性结构的定义与特征 • 线性表的插入与删除操作(在两种存储结 构下)
s[0] a1 栈底
《计算机软件技术基础》复习答案.docx

《计算机软件技术基础》复习题——答案1.线性表的链式存储结构与顺序存储结构相比优点是一CD2. 线性表是具有n 个C 的有限序列。
A.表元索B.字符C.数据元索E.信息项3. 若长度为n 的线性表采用顺序存储结构,在其第I 个位置插入一个新元索的算法的时间复杂度为 C (lWIWn+1)A. 0(0)B. 0(1)C. 0(n)D. 0(n 2)4. 设A 是一个线性表(g 弧…,弘),采用顺序存储结构,则在等概率的前提下,平均每插入一个元素需耍移动的元素个数为 B ,平均每删除一•个元素需要移动的元索个数为A ;若元索插在eh 与茹】之间(OWTWn-1)的概率为"匸",则平均每插入一个 n(n +1)元素所要移动的元索个数为C5•下列函数屮,按它们在 ms 时的无穷人阶数,最大的是—D6•将卜•图所示的s 所指结点加到p 所指的结点之后,其语句应为:DA.所有的操作算法实现简单B.便于随机存取C.便于插入和删除 1).便于利川零散的存储器空间D.数据项C.2n + \D ・3n +14A . C. 10g/7n/2 B. nlog/7 D. n! nextnextnextA. s->next 二p+1; p->next 二s;B. (*p). next 二s; (*s) • next= (*p)•next;C. s->next 二p->next; p->next 二s->next; D ・ s->next 二p->next; p->next.=s;7. 将两个齐有n 个元索的有序表归并为一个有序表吋,其最少的比较次数是_ A 。
A. n B. 2n~l C. n~lD. 2n8. 卜面的程序段是合并两个无头结点链表(ha 和hb)为一个无头结点链表ha 的过程,作为 参数的两个链表都是按结点的data 域由人到小链接的。
计算机软件基础复习资料

计算机软件基础复习资料计算机软件基础复习资料随着信息技术的飞速发展,计算机软件的应用已经渗透到我们生活的方方面面。
无论是工作、学习还是娱乐,我们都离不开各种各样的软件。
因此,掌握计算机软件基础知识是非常重要的。
本文将为大家提供一些计算机软件基础的复习资料,希望能够帮助大家更好地理解和应用计算机软件。
一、计算机软件的分类计算机软件主要分为系统软件和应用软件两大类。
系统软件是为了管理和控制计算机硬件资源而设计的软件,例如操作系统、编译器等。
应用软件则是为了满足用户特定需求而开发的软件,例如办公软件、图像处理软件等。
二、操作系统操作系统是计算机系统中最基本的软件之一,它负责管理和控制计算机的硬件资源,并提供用户与计算机硬件之间的接口。
常见的操作系统有Windows、Linux、macOS等。
在复习操作系统的时候,需要掌握操作系统的功能、特点以及常用命令等内容。
三、编程语言编程语言是计算机软件开发的基础,它是一种用于描述计算过程的形式化语言。
常见的编程语言有C、C++、Java、Python等。
在复习编程语言的时候,需要了解编程语言的语法、数据类型、控制结构等基本概念,并通过编写简单的程序来加深理解。
四、数据库管理系统数据库管理系统(DBMS)是一种用于管理和组织数据的软件,它提供了对数据的存储、检索、更新等操作。
常见的数据库管理系统有MySQL、Oracle、SQL Server等。
在复习数据库管理系统的时候,需要了解数据库的基本概念、关系模型、SQL语言等内容,并通过实际操作来熟悉数据库的使用。
五、网络与互联网网络与互联网已经成为现代社会的重要组成部分,它们提供了人们之间进行信息交流和资源共享的平台。
在复习网络与互联网的时候,需要了解网络的基本概念、协议、通信方式等内容,并通过实际操作来熟悉网络的配置和使用。
六、图形图像处理图形图像处理是计算机软件应用的一个重要领域,它涉及到图像的获取、处理、存储和显示等方面。
计算机软件技术基础复习资料

1.算法的基本特征(2)1个或以上的输出(3)确定性(4)有限性(5)有效性3.算法设计基本方法(1)列举法(2)归纳法(3)递推法(4)递归法(5)减半递推技术(6)回溯法数据结构是讨论计算机系统中数据的组织形式及其相互关系它把客观事物采用计算机进行识别、存储和加工所进行的描述,统称数据树结构,它的逻辑特征是:有且仅有一个称为根的元素无直接前驱,其他元素有且仅有一个直接前驱,所有数据元素(除根元素)都存在一条从根元素到该元素的路径。
\①“下溢”现彖。
当队列为空时,做出队列运算产生的溢出现彖。
“卞溢”属于正常现彖,常用作程序控制转移的条件。
②“真上溢”现彖。
当队列满时,做进队列运算产生空间溢出的现象。
“真上溢”是一种出错状态,应设法避免。
③“假上溢”现彖。
由于入队和出队操作中,头尾指针只增加不减小,致使被删元素的空间永远无法重新利用。
当队列中实际的元素个数远远小于向量空间的规模时,也可能由于尾指针已超越向量空间的上界而不能做入队操作,该现象称为“假上溢”现象。
为了避免假上溢浪费存储空间,我们需要使用循坏队列。
设每个数组元素占S个存储单元,则在行优先存储中,二维数组Amn的每个元素的存储地址可用下列计算公式算出:Loc(aij)=Loc(a 11) + ((i-l)*n+(j-l))*S顺序存储分为:紧缩格式存储和非紧缩格式存储两二叉树的性质性质1在二叉树的第k层上,最多有2k个结点(k^l)。
性质2深度为k的二叉树最多有2k个结点(k^l)。
性质3对于任意一棵二叉树T,如果其度为0 (即叶子结点或称终端结点)的结点数为nO,度为2的结点数为n2, 则有:n0 = n2+l 即在二叉树中,度为0的结点总是比度为2的结点多一个。
有关图结构的重要术语(1)完全图:不考虑顶点到其自身的边或弧,若图中每对顶点之间都恰连有一条边,我们把它称作完全图。
对于一个具有n个顶点的无向完全图来说,其边的数目为n (ii-l) /2;而对于一个具有n个顶点的有向完全图来说,其弧的数目为n (ml )。
《计算机软件基础》复习题库带答案文档

《计算机软件基础》复习题库带答案文档《计算机软件基础》复习题库(带答案)1.与顺序存储结构相比,线性列表的链式存储结构具有CD的优点。
a、所有运算算法都易于实现。
C.易于插入和删除b.便于随机存取d、易于使用的分散存储空间2.线性表是具有n个c的有限序列。
a.表元素d.数据项b、性格c.数据元素e.信息项3.如果长度为n的线性表采用顺序存储结构,则在其第i个位置插入新元素的算法的时间复杂度为C.(1)≤我≤n+1)a.o(0)c.o(n)b.o(1)d.o(n)二4.设a是一个线性表(a1,a2,?,an),采用顺序存储结构,则在等概率的前提下,平均每插入一个元素需要移动的元素个数为b,平均每删除一个元素需要移动的元素个数为a、如果元素插入AI和AI+1(0)之间≤ 我≤ n-1),概率为2(n?i)n(n?1),则平均每插入一个元素所要移动的元素个数为Cn?122n?1c.3a。
a、 lognc。
二n/2Bn2D3n?145.下列函数中,按它们在N最大的是d。
b.nlognd.n!6.将下图中s表示的节点添加到P表示的节点后,语句应为:D。
nextnextpsnexta.s->next=p+1;p->next=s;b、(*p)。
next=s;(*s)。
next=(*p)。
下一个c、 s->next=p->next;p->next=s->next;d、 s->next=p->next;p->next=s;7.将两个各有n个元素的有序表归并为一个有序表时,其最少的比较次数是a。
a.nc.n-1b、 2n-1d.2n8.以下程序部分是将两个无头节点链表(HA和Hb)合并为无头节点链表HA的过程。
作为参数的两个链表根据节点的数据字段从大到小进行链接。
合并后,新链表的节点仍以这种方式链接。
请填写下面的空白框以使程序正确运行。
#definenull0typedefstructnode{Word文档可以自由复制和编辑intdata;structnode*下一步;}node,linklisttype;链接列表类型*h,*p;h=(linklisttype*)malloc(sizeof(linklisttype));h->next=null;p=h;while(ha!=null&&hb!=null)if(ha->data>=hb->data){/*首先插入较大的元素*/p->next=(1);p=(2);(3);}否则{p->next=(4);p=(5);(6);}}if(ha==null)(7);if(hb==null)(8);ha=h->next;free(h);参考答案:(1)ha(2)p->next(3)哈=哈->下一步(6)hb=hb->next(8)p->next=ha(4) hb(5)p->下一步(7)p->next=hb9.如果表a中的所有元素(A1、A2、an)与表B(即A1=BK、A2=BK+1、an=BK+n-1)中的顺序子表(BK、BK+1、BK+n-1)完全相同,则表示表a包含在表B中。
计算机软件技术基础知识点储备

第一章:概述1、程序=算法+数据结构2、算法的几个基本特征:能行性确定性有穷性拥有足够的情报3、算法的复杂度主要包括:时间复杂度和空间复杂度第二章:数据结构1、逻辑结构:数据集合中各数据元素之间所固有的逻辑关系(集合结构、线性结构、树形结构、图状结构),可以看作是从具体问题抽象出来的数据模型。
2、物理(存储)结构:在对数据进行处理时,各数据元素在计算机中的存储关系,可分为以下四种:顺序存储结构(存储空间连续)、链式存储结构、索引结构、散列结构3、数据结构的运算是指对数据结构中的结点进行操作的集合,包括插入、删除、更新、检索、排序等。
4、数据元素是数据的基本单位5、有时数据元素可由若干个数据项(数据的属性)组成,在这种情况下,数据项组成的数据元素称为记录,数据项是具有独立含义的最小标识单位,不可分割6、顺序存储结构:通常定义一维数组来表示线性表的顺序存储空间7、顺序表的插入异常处理:(m为线性表的空间大小,n为线性表的长度<=m,插入的位置为i,i表示在第i个元素之前插入)⑴当存储空间已满(即n=m)时为上溢错误,不能进行插入,算法结束;⑵当i>n时,认为在最后一个元素之后(即第n+1个元素之前)插入;⑶当i<1时,认为在第1个元素之前插入函数的代码实现:void insert(int *v,int m,int n,int i, int b){int k;if(n==m) cout<<”出现上溢错误!”<<endl;if(i>n) i=n+1;if(i<1) i=1;for(k=n;k>=i;k--){v[k]=v[k-1];v[i-1]=b;n=n+1;}}8、顺序表的删除异常处理:⑴当线性表为空(即n=0)时为下溢错误,不能进行删除,算法结束;⑵当i<1或i>n时,认为不存在该元素,不进行删除。
函数的代码实现:void delete(int *v, int m,int n, int i){int k;if(n==0) cout<<”出现下溢错误!”<<endl;if((i<1)||(i>n)) cout<<”线性表里不存在该元素,不进行删除操作!”<<endl; for(k=i;k<=n;k++)v[k-1]=v[k];n=n-1;}9、栈(相当于一个井)的相关概念⑴先进后出(后进先出)⑵栈顶允许插入与删除⑶栈底不允许插入与删除10、队列(相对于排队买饭)的相关概念⑴先进先出⑵队尾允许插入⑶对头允许删除11、链式存储每个结点由两部分组成:数据域和指针域12、单链表的插入函数实现在包含元素x的结点前插入新元素bvoid insert(int x,int b){node *p,*q;p=new node;p->number=b;if(head==NULL){head=p;p->next=NULL;}if(head->number==x){P->next=head;Head=p;}q=head;while((q->next!=NULL)&&(((q->next)->number)!=x)) q=q->next;p->next=q->next;q->next=p;}13、单链表的删除函数实现删除包换元素x的结点void delete(int x){node *p,*q;if(head==NULL) cout<<”没有要删除的元素!”<<endl;if((head->number)==x){p=head->next;delete head;head=p;}q= head;while(((q->next)!=NULL)&&(((q->next)->number)!=x))q=q->next;if(q->next==NULL) cout<<”没有要删除的元素!”<<endl; p=q->next;q->next=p->next;delete p;}14、循环链表的插入函数实现在包含元素x的结点前插入新元素bvoid insert(int x,int b){node *p,*q;p=new code;p->number=b;q=head;while((q->next!=NULL)&&(((q->next)->numbe)r!=x))q=q->next;p->next=q->next;q->next=p;}15、循环链表的删除函数实现删除包含元素x 的结点void delete(int x){node *p,*q;q=head;while((q->next!=NULL)&&(((q->next)->number)!=x))q=q->next;if(q->next==head) cout<<”没有要删除的元素”<<endl;p=q->next;q->next=p->next;delete p;}16、单链表与循环链表的区别⑴单链表的头指针指向线性表第一个元素的结点;而循环链表的头指针指向表头结点,表头结点的指针域指向链表的第一个结点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《02244 计算机软件基础(一)(实践)》复习资料
一、程序填空题。
(每空3分,共30分,)
1、下面程序的功能是计算1到100之间的奇数之和,请将下面程序补充完成。
#include <stdio.h>
void main()
{ int sum=0,i;
for (i=1;i<=100;i++)
{ if (____________)
sum=sum+________;
}
printf(”奇数之和为%d\n”,__________);
}
2、下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n, 并输出m,n中的较大者,请将下面的程序补充完整.
#include <stdio.h>
void main()
{ int m_____ , n ______;
char c;
while((c=getchar())!=‘\n’)
{ if (c>=‘A’&&c<=‘Z’) m++;
if(c>=‘a’&&c<=‘z’) _______;
}
printf(“%d ”, m<n?n:m);
}
3、下列程序的功能是从键盘上输入若干员工的工资,统计并输出最高工资和最低工资,当输入负数时程序结束。
请填空。
#include <stdio.h>
void main()
{ float x,max,min;
scanf(“%f”,&x);
________________;
while(_________)
{ if(x___max) max=x;
if(x<min) min=x;
________________;
}
printf(“max=%f,min=%f\n”,max,min);
}
二、读下列程序,写出运行结果。
(每小题10分,共30分)
1、下面程序的运行结果是_____________________
#include <stdio.h>
double fun(double a,double b,double c)
{
double t;
t=a;
if(t>b) t=b;
if(t>c) t=c;
return t;
}
void main()
{
double x,y,z;
x=2.1;y=3.14;z=7.0;
printf("%f\n",fun(x*2,y,z+2));
}
2、下面程序的运行结果是_____________________。
#include <stdio.h>
void main()
{ int x=1,a=0,b=0;
switch(x)
{ case 0:b++;
case 1:a++;
case 2:a++;b++; }
printf(”a=%d,b=%d\n”,a,b);}
3、下面程序的运行结果是_____________________。
#include <stdio.h>
void main()
{ int x=6;
while(x>=0)
{ printf(“*”);
x--;
x--;}
}
三、应用题。
(每空5分,共15分)
下面的算法是利用折半查找法的思想,在一个长度为n的有序表中插入一个元素x,并保持表的有序性。
试在算法中的________处填上正确的内容,完成该运算。
#define M 100
int r[M+1];
void insert(int x, int n)
{ int low=0, high=n-1,mid,i, find=0
while(low<=high) && !find)
{ mid=(1) ;
if(x<r[mid]) high=mid-1;
else is(x>r[mid]) low=(2) ;
else find=1;
}
if(low>high)
{ for(i=n-1;i>=low;i--)
r[i+1]=r[i];
r[low]=(3) ; }
}
四、编程题。
(共25分)
1、设计一个程序,输入浮点数x的值,按下列公式计算并输出y的值。
(7分) x (x<=1)
y= 2x-1 (1<x<10)
3x-11 (x>=10)
2、从键盘输入十个浮点数,找出其中的最大值。
(用数组来实现) (8分)
3、从键盘输入一个字符串,请分别统计其中字母‘q’和‘t’的个数。
(10分)
复习资料答案
一、程序填空题(每小题10分,共30分)
1、i%2!=0 (4分)
i (3分)
sum (3分)
2、=0 (3分)
=0 (3分)
n++; (4分)
3、max=min=x; (2分)
x>0 (3分)
> (2分)
scanf(“%f ”,&x); (3分)
二、读下列程序,写出运行结果。
(每小题10分,共30分)
1、(10分)
2、(10分)
3、(10分)
三、应用题。
(每空5分,共15分)
(1)(low+ high)/2 (5分)
(2) mid +1 (5分)
(3) x (5分)
四、编程题。
(共25分)
1、设计一个程序,输入浮点数x的值,按下列公式计算并输出y的值。
(7分) x (x<=1)
y= 2x-1 (1<x<10)
3x-11 (x>=10)
#include <stdio.h> //1分
main() //1分
{ float x,y;
scanf(“%f”,&x); //1分
if(x<=1) y=x ; //1分
else if(x>1&&x<10) y=2*x-1; //1分
else y=3*x-11; //1分
printf(“y=%f”,y); //1分
}
2、从键盘输入十个浮点数,找出其中的最大值。
(用数组来实现) (8分)
#include <stdio.h> //1分
main()
{ float a[10],m; //1分
int i;
for(i=0;i<=9;i++) //1分
{ scanf("%f",&a[i]); //1分
}
m=a[0]; //1分
for(i=1;i<=9;i++) //1分
if(m<a[i]) m=a[i]; //1分
printf("最大值:%f",m); //1分
}
3、从键盘输入一个字符串,请分别统计其中字母‘q’和‘t’的个数。
(10分)#include <stdio.h> //1分
main()
{
char arr[100]; //1分
int i,n1,n2; //1分
n1=n2=0; //1分
gets(arr); //1分
for(i=0;arr[i]!=’\0’;i++) //1分
{
if(arr[i]==’q’) n1++; //1分
if(arr[i]==’t’) n2++; //1分}
printf(“字母q的个数:%d\n”,n1); //1分printf(“字母t的个数:%d\n”,n2); //1分}。