
计算机基础知识复习(二)
关于 计算机网络 软件工程方面的知识
Philtell
长风破浪会有时,直挂云帆济沧海
展开
-
带参宏定义
宏名和参数的括号间不能有空格宏替换只作替换,不做计算,不做表达式求解函数调用在编译后程序运行时进行,并且分配内存,宏定义在编译前进行,不分配内存宏的哑实结合不存在类型,也没有类型转换。函数只有一个返回值,利用宏则可以设法得到多个值宏定义说明宏名一般用大写使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例如数字大小通常用宏定义...原创 2018-09-25 20:01:26 · 456 阅读 · 0 评论 -
C语言指针与二维数组
设有m行n列的二维数组当二维数组的首地址给指针变量p以后,则访问某个元素a[i][j]可以用一下几种方式来访问*(p+i*n+j),p[i*n+j],*(a[0]+i*n+j)二维数组a不可赋值给一般指针变量p,只能赋值给指向二维数组的行指针变量#include <stdio.h>int main(){ int a[2][3]={{1,2,3},{4,5,6}}...原创 2018-12-13 17:02:43 · 512 阅读 · 0 评论 -
软件工程(吕云翔)概述问答题(一)
与计算机硬件相比,计算机软件有哪些特点?(1)计算机硬件是有形的设备,具有明显的可见性。但是人们却不能直接观察计算机软件的物理形态,只能通过他的实际运行情况来了解他的功能,特性和质量。(2)人类的逻辑思维和智力活动和技术水平是生产软件产品的关键。(3)计算机软件不存在像硬件一样的磨损和老化现象,他不会受引起计算机硬件老化的环境因素的影响,但是软件却存在着缺陷维护和技术更新的问题。(4)...原创 2019-02-27 17:31:30 · 7642 阅读 · 2 评论 -
软件工程(吕云翔)概述问答题(二)
1.可行性研究的内容有哪些?答:可行性研究主要是从技术、经济和社会三个方面对软件项目的可行性进行分析。技术可行性研究是对技术解决方案的实用性、技术资源的可用性和设备条件做出评估。经济可行性研究要对项目的开发总成本与开发系统将带来的经济效益之间的差值进行度量,从经济的角度去判断是否值得为软件开发项目进行投资。社会可行性研究从政策、法律和制度等社会因素方面考虑项目开发的合理性和意义。2.如何理解需...原创 2019-03-06 18:55:31 · 5326 阅读 · 0 评论 -
软件工程(吕云翔)概述问答题(三)
1.比较概要设计和详细设计的目标,并分别阐述概要设计和详细设计的内容。答:概要设计,得到软件系统的基本框架。它以需求规格说明书为基础,概要地说明软件系统的实现方案,包括目标系统的总体架构、每个模块的功能描述、数据接口描述及模块之间的调用关系、数据库、数据定义和数据结构等。详细设计,明确系统内部的实现细节。在进行详细设计的过程中,设计人员的工作涉及的内容有过程、数据和接口等。过程设计主要是指描述...原创 2019-03-06 19:28:40 · 10290 阅读 · 0 评论 -
软件工程(吕云翔)概述问答题(四)
2.在选择编程语言时,通常要考虑哪些因素?答:在选择编程语言时,通常需考虑以下因素。(1)待开发系统的应用领域,即项目的应用范围。(2)用户的要求。(3)软件开发人员的喜好和能力。(4)系统的可移植性要求。(5)算法和数据结构的复杂性。3.对标识符命名时,要注意哪些原则?答:对标识符进行命名时,要注意以下几点。(1)按照标识符的实际意义命名,使其名称具有直观性,能够体现标识符的语义...原创 2019-03-06 19:45:24 · 2219 阅读 · 0 评论 -
软件工程(吕云翔)概述问答题(五)
1.简述静态测试和动态测试的区别。答:按照执行测试时是否需要运行程序,软件测试可以划分为静态测试和动态测试。静态测试以人工测试为主,通过测试人员认真阅读文档和代码,仔细分析其正确性、一致性及逻辑结构的正确性,从而找出软件产品中的错误或缺陷。静态测试对自动化工具的依赖性较小,通过人脑的思考和逻辑判断来查找错误,因而可以更好地发挥人的主观能动性。与静态测试不同的是,动态测试需要通过实际运行被测程...原创 2019-03-06 20:01:58 · 6216 阅读 · 2 评论 -
软件工程(吕云翔)概述问答题(六)
1.为什么要进行软件维护?软件维护的作用有哪些?答:软件维护是软件产品生命周期的最后一个阶段。在产品交付并且投入使用之后,为了解决在使用过程中不断发现的各种问题,保证系统正常运行,同时使系统功能随着用户需求的更新而不断升级,软件维护的工作是非常必要的。概括地说,软件维护就是指在软件产品交付给用户之后,为了改正软件测试阶段未发现的缺陷,改进软件产品的性能,补充软件产品的新功能等,所进行的修改软件的...原创 2019-03-06 20:17:16 · 1795 阅读 · 0 评论 -
计算机网络(谢希仁)要点概括
计算机网络组成组成部分 硬件,软件,协议工作方式 边缘部分 和 核心部分功能组成 通信子网 和 资源子网功能数据通信资源共享提高可靠性负载均衡分布式处理分类分布范围 广域网 城域网 局域网 个人区域网传输技术 广播式网络 点对点网络拓扑结构 星形网络 总线型网络 环形网络 网状型网络使用者 公用网 专用网交换技术 电路交换 报文交换 分组交换传输介质 有...原创 2019-03-07 16:58:53 · 378 阅读 · 0 评论 -
计算机网络(谢希仁)第六版第一章
第一章概述1-01计算机网络向用户可以提供那些服务?连通性和共享1-02简述分组交换的要点。答:(1) 报文分组,加首部(2)经路由器储存转发(3)在目的地合并1-03试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。(1)电路交换: 端对端通信质量因约定了通信资源获得可靠保障,对连续传送大量数据效率高。(2)报文交换:无须预约传输带宽,动态逐段利用传输帶宽对突发式数据...原创 2019-03-07 19:26:55 · 736 阅读 · 0 评论 -
计算机网络(谢希仁)第六版第二章
第二章物理层2-01物理层要解决哪些问题?物理层的主要特点是什么?答:物理层要解决的主要问题:(I)物理层要尽可能地屏蔽掉物理设备和传输媒体,通信手段的不同,使数据链路层感觉不到这些差异,只考虑完成本层的协议和服务。(2)给其服务用户(数据链路层)在一条物理的传输媒体上传送和接收比特流(一般为串行按顺序传输的比特流)的能力,为此,物理层应该解决物理连接的建立、维持和释放问题。(3)在两...原创 2019-03-07 22:21:45 · 394 阅读 · 0 评论 -
编译原理知识点总括
编译过程概述词法分析语法分析语义分析中间代码生成中间代码优化目标代码生成源程序–&amp;gt;前端–&amp;gt;中间代码–&amp;gt;后端–&amp;gt;目标代码**单词,**具有语义的最小字符串概念: 词法分析器、语法分析器、正则表达式、NFA、DFA、词法单元、语法树算法:正则表达式 转 NFA (词法分析)NFA 转 DFA (词法分析)最小化D...原创 2019-03-11 16:53:37 · 805 阅读 · 0 评论 -
计算机网络(谢希仁)第六版第三章
第三章数据链路层 3-01数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与”数据链路接通了”的区别何在?答:数据链路与链路的区别在于数据链路出链路外,还必须有一-些 必要的规程来控制数据的传输,因此,数据链路比链路多了实现通信规程所需要的硬件和软件。“电路接通 了”表示链路两端的结点交换机已经开机,物理连接已经能够传送比特流了,但是,数据传输并不可靠,在物理连接基础上,再建...原创 2019-03-08 10:40:41 · 814 阅读 · 0 评论 -
计算机网络(谢希仁)第六版第五章
第五章 传输层5-01 试说明运输层在协议栈中的地位和作用,运输层的通信和网络层的通信有什么重要区别?为什么运输层是必不可少的?答:运输层处于面向通信部分的最高层同时也是用户功能中的最低层,向它上面的应用层提供服务 运输层为应用进程之间提供端到端的逻辑通信,但网络层是为主机之间提供逻辑通信(面向主机,承担路由功能,即主机寻址及有效的分组交换)。各 种应用进程之间通信需要“可靠或尽力面为”...原创 2019-03-08 11:05:15 · 1151 阅读 · 0 评论 -
计算机网络(谢希仁)第六版第六章
6-01因特网的城 名结构是怎么样的?它与目的的电话网的号码结构有何异同之处?答: (1) 域名的结构由标号序列组成,各标号之间用点隔开: ...三级域名。二级城名.顶级域名各标号分别代表不同级别的城名。 (2)电话号码分为国家号结构分为(中国+86)、区号、本机号。6-02域名系统的主要功能是什么?域名系统中的本地域名服务器、根域名服务器,顶级城名服务器以及权限城名权服务器有何区别...原创 2019-03-08 11:26:30 · 1735 阅读 · 0 评论 -
操作系统算法总结
作业调度算法FSFS(First-come First-served)先来先服务调度算法既可用于作业调度,也可用于进程调度按照先后次序来进行作业调度,优先考虑在系统中等待时间最长的作业等待时间越长,优先级越高优点:有利于CPU繁忙,有利于长作业缺点:不利于I/O繁忙SJF(Short-job first)短作业调度算法按照作业长短来计算优先级,作业越短,优先级越高优点:比FCF...原创 2019-03-12 22:14:20 · 1872 阅读 · 0 评论 -
徐涛政治押题
原创 2018-12-01 16:44:42 · 1100 阅读 · 2 评论 -
选择排序(链表表示)
#include <stdlib.h>typedef int keyteype;typedef struct Node{ keyteype data; Node *link;}*LinkList;void SHELLINKSORT(LinkList list){ LinkList save,r,p,q,s; //list指向头结点 save = list; while...原创 2018-11-27 10:22:13 · 734 阅读 · 0 评论 -
快速排序非递归算法
#define MaxN 1000typedef int keytype;void QUICKSORT(keytype K[],int n){ int i,j,left,right,pos=-1; int buf[MaxN][2];//数组buf用以保存下一趟快拍的起始和末尾位置 keytype temp; while(1){/*K[left]为分界元素*/ i = left;...原创 2018-11-27 10:21:37 · 1856 阅读 · 5 评论 -
文件包含
一个文件包含另一个文件的内容格式:#include "文件名"或#include <文件名>编译时以包含处理以后的文件为编译单位,被包含的文件是源文件的一部分。编译以后只得到一个目标文件.obj被包含的文件又被称为“标题文件”或“头文件”、“头部文件”,并且常用.h作扩展名。修改头文件后所有包含该文件的文件都要重新编译头文件的内容除了函数原型和宏定义外,还可以有结...原创 2018-09-25 20:36:00 · 401 阅读 · 0 评论 -
条件编译 预处理命令
有些语句希望在条件满足时才编译。格式:(1)#ifdef 标识符程序段1#else程序段2#endif或#ifdef程序段1#endif当标识符已经定义时,程序段1才参加编译。格式:(2)#ifndef 标识符#define 标识1程序段1#endif如果标识符没有被定义,则重定义标识1,且执行程序段1。格式:(3)#if 表达式1程序段1#elif...原创 2018-09-25 20:49:59 · 446 阅读 · 0 评论 -
位运算应用
&amp;amp;与运算应用按位或|异或运算^取反运算~左移运算&amp;lt;&amp;lt;右移运算&amp;gt;&amp;gt;无符号右移运算&amp;gt;&amp;gt;&amp;gt;负数以其正值的补码形式表示原创 2018-09-25 21:53:39 · 566 阅读 · 0 评论 -
结构体数组表示
定义结构体数组并初始化结构体成员#include <stdio.h>struct stud{ int num; char *name; char sex; float score;}boy[3]={ {101,"Li Ping",'M',45}, {102,"Zhang Ping",'M',62.5}, {103,"He fang",'F',92.5}};vo...原创 2018-09-26 09:23:50 · 619 阅读 · 0 评论 -
文件
文件概述文件是指 一组相关的数据的有序集合,文件通常驻留在外部存储介质(如磁盘)上的,在使用时才调入内存。可以从不同的角度对文件进行分类。从用户的角度,文件可以分为普通文件和设备文件两种。普通文件是指驻留在磁盘或其他的外部介质上的一个数据集,可以是源文件,目标文件,可执行程序,也可以是一组带输入处理的原始数据,或者是一组输出结果;设备文件是指与主机相关联的各种设备,如显示器,打印机,键盘等...原创 2018-09-26 18:30:28 · 648 阅读 · 0 评论 -
插入排序
第一个元素看成一个长度为1按值有序的子序列,然后只要一次从第二个元素开始逐个把其余的n-1个元素插入到某个按值有序的子序列中就可以了。#include <stdio.h>int main(){ int n,K[101]; printf("要输n的个数:\n"); scanf("%d",&n); printf("请输入%d个数值",n); for (int i...原创 2018-10-04 21:30:57 · 212 阅读 · 0 评论 -
折半插入排序
插入的基本思想①每次插入,都从前面的有序子表中查找出待插入元素应该被插入的位置; ②给插入位置腾出空间,将待插入元素复制到表中的插入位置。 注意到该算法中,总是边比较边移动元素,下面将比较和移动操作分离开来,即先折半查找出元素的待插入位置,然后再同意地移动待插入位置之后的所有元素。当排序表为顺序存储的线性表时,可以对直接插入排序算法作如下改进:由于是顺序存储的线性表,所以查找有序子表时可...转载 2018-10-04 21:52:59 · 1529 阅读 · 0 评论 -
希尔排序
flag = 0 说明对各子序列排序时都无元素交换的动作flag = 1 说明对各子序列排序时有元素交换的动作#include &lt;stdio.h&gt;#include &lt;string.h&gt;void SHELL_SORT(int key[],int n){ int gap = n; while(gap&gt;1){ gap = gap/2; int fla...原创 2018-10-05 10:00:39 · 253 阅读 · 0 评论 -
快速排序
快排是对冒泡排序的一种改进,是目前认为最好的内排序算法之一。核心思想:在当前排序的序列(ks,ks+1,…,kt)中任意选择一个元素作为分界元素或者基准元素,把小于或等于分界元素的所有元素都移到分界元素前面,把大于或等于的所有元素移到分界元素后边。这样,分界元素正好处在排序的最终位置上,并且把当前排序的序列划分成前后两个子序列(前一个子序列中所有元素都小于或等于分界元素,后一个子序列中的元素都...原创 2018-10-05 10:55:24 · 282 阅读 · 0 评论 -
堆排序之大顶堆
对于具有n个元素的序列,采用堆积排序方法需要进行n-1趟排序才能达到目的#include <stdio.h>void ADJUST(int a[],int i,int n){ a[0] = a[i]; for (int j = 2*i;j<=n;j*=2) //层层向下遍历,找到比自己大的孩子节点, //替换自己,最后把头结点也就是最大值,放到尾部a[i](数组末尾)...原创 2018-10-06 10:22:08 · 362 阅读 · 0 评论 -
单链表排序
算法思想:采用直接插入排序算法的思想,先构成只含一个数据结点的有序单链表,然后一次扫描剩下的结点p(直至p==NULL为止),在有序表中通过比较查找插入p的前驱结点pre,然后将p插入到*pre之后核心代码void Sort(LinkList *L){ LinkList *p,*r,*pre; p=L->next; r = p->next; //保持r是p的后继结点,以保...原创 2018-10-09 21:58:51 · 1848 阅读 · 0 评论 -
双链表的插入排序算法
#include <stdio.h>#include <stdlib.h>typedef struct Node{int data;struct Node *llink,*rlink;}*DLinkList;void INSLINKLIST(DLinkList list){ DLinkList save,p,q,r; p=list->rlink->...原创 2018-11-29 09:36:20 · 1463 阅读 · 0 评论 -
非递归算法求二叉树的深度
原理:1.采用层次遍历的方法,2.设置变量level记录当前结点所在层数,3.设置变量last指向当前层最右结点,4.每次层次遍历出队时,与last指针作比较,若两者相等,那么层数加1,并让last指向下一层最右结点,至少遍历完成.level的值即为二叉树的高度#include <stdio.h>#include <stdlib.h>typedef 1000...原创 2018-11-29 22:19:55 · 3911 阅读 · 2 评论 -
大顶堆插入新元素
typedef int keytype;void INSHEAP(keytype K[],int &n,keytype item){ int i,j; n++;//长度加一 i=n; while(i!=1){ j = i/2; //j为i的双亲结点 if (item < K[j]) { break; } K[j] = K[i]; //将k[j]下移...原创 2018-11-27 10:19:33 · 1303 阅读 · 0 评论 -
数据库问答题总汇
1.什么是差异数据库备份?2.简述SQLServer2008的两个系统数据库model和tempdb的功能。3.简述游标的基本功能和使用步骤,4.简述创建视图的意义和优点。1.差异数据库备份只是记录自上次数据库备份后发生更改的数据。差异数据库备份比数据库备份小,而且速度快。2.model是在SQLServer系统上创建数据库的模板。创建数据库时,新数据库的第一部分通过复制model数据库...原创 2019-03-13 16:53:44 · 1467 阅读 · 0 评论