计组 一些概念机器字长、存储字长、数据字长机器字长是计算机一次能处理的二进制数的长度一个存储单元中二进制代码的位数称为存储字长,等于MDR的位数数据字长是数据总线一次能并行传送信息的位数,可以不等于MDR的位数注意:操作系统的位数是操作系统可寻址的位数,与机器字长是不一样的。一般可以通过寄存器的位数来判断机器字长。用于科学计算的计算机中,标志系统性能最有用的参数是MFLOPS因为用于科学计算的计算机主要就是评估浮点运算的性能。计算机的机器字长要看清是字节还是位透明寄存器汇编程序员可见状态寄存器
操作系统 什么是操作系统操作系统的定义用户角度上讲:管理应用程序为应用程序提供服务杀死应用程序资源管理上讲:管理外设、分配资源操作系统架层次结构:硬件之上应用程序之下外壳Shell内核kernel操作系统的内部组件:CPU调度器物理内存管理虚拟内存管理文件系统管理中断处理与设备驱动操作系统的特征:并发计算机系统中同时存在多个运行的程序,需要OS管理和调度并...
C++考试用(第九章) 不能在类声明中对数据成员初始化如果一个类中的所有成员都是公用的,那么可以在定义对象时对数据成员进行初始化;如:class Time{public: hour; minute; sec;}Time t1={14,56,30};如果类中有private或protected的数据成员,就不能用这种方法。利用构造函数实现数据成员的初始化构造函数与其他成员函数不同,不需要用户来调...
C++课程设计:员工管理系统 文件的写入模式都是覆盖式写入,你不管写入什么都是以写入的覆盖原有的。覆盖的字符可以是任何样子,可以覆盖各类空白字符。利用>>这个从文件中读入东西,那么他会自动跳过空白字符。并且把文件指针移动到停止读入的空白字符后的第一个字符位置。也就是说,类似这样:"Salesman is a pig""Manager is a shit"文件中有这么两句话,我们用文件读取(设定...
C++考试用(第八章) C++是一中基于过程和面向对象的混合型的语言;凡是以类对象为基本构成单位的程序称为基于对象的程序;面向对象程序设计主要特点:抽象、封装、继承和多态性;对象构成系统的基本单位。任何一个对象都应当具备属性和行为在C++中,每个对象都是由数据和函数组成封装和信息隐蔽把对象内部实现与外部行为分隔开来封装:一是将有关的数据和操作代码封装在一个对象中,形成一个基本单位,各个对象之间相对独立,...
编译原理第一章基础概念汇总(考试用) 第一章编译程序(编译器)具体实现从源程序到目标程序转换的程序。面向机器的语言(低级语言)汇编语言、机器语言面向人类的语言(高级语言)通用程序设计语言,代表:C、C++、JAVA数据查询语言形式化描述语言,代表:YACC的语言转换(预处理)高级语言之间的翻译编译高级...
简单计算器 利用栈来实现定义栈stack<class> s(变量名)压栈s.push(n);出栈s.pop();取栈顶s.top();判断栈空s.empty();#include<iostream>#include<stack>using namespace std;int main(){ stack<int> s; s...
回文数(int) 对于判断一个整数是不是回文数我们可以这么做int p(char* n) //判断回文(利用字符数组){ int len = strlen(n); for (int i = 0; i <= len / 2; i++) { if (n[i] != n[len - i - 1]) return 0; } return 1;}int main(){ sprintf...
进制转换 就连进制转换都这么有意思如果n是负数的时候,那么n%r得到的是一个负数,而不是一个正数那么,如果我们想要得到关于n为负数时的进制转换,那么就需要先把n变为正数特别的,如果n为0,那么它的任意进制转换都为0#include<iostream>using namespace std;int main(){ int n, r; cin >> n >&g...
A*B问题 对于A*B的解题让我收获还是很多和A+B一样,能够考虑不同的东西比如,进位的问题进位之后,进位的保留进位与当前数的关系还有数组一定要各种考虑不越界,不使用未定义行为。保证数组一切未定义行为都不会发生因此需要对一些隐含的事情,做出反应比如下面那句while()->如果没有i>=0的条件保证,就会使得i小于0,使用了超界数组,导致严重出错。#include<st...
A+B问题 mmp我这么简单的题我都写了这么久我太菜了描述题意:A、B是不超过500位的数据求A+B#include<iostream>#include<string.h>using namespace std;int a[505];int b[505];int c[505];int main(){ char t; memset(a, 0, size...
P1056 排座椅 P1056 排座椅还是不知道哪里错了#include<stdio.h>#include<string.h>#include<stdlib.h>int a[1005][1005];int line[1005];int lie[1005];int jilu[1005];int int_cmp(const void* _a, const v...
Minimize the Permutation(未改) Minimize the Permutation自始至终,我都不知道哪里错了。#include<stdio.h>#include<string.h>int a[105];int index[105];int index_new[105];int main(){ int q; scanf("%d",&q); for (int i1 =...
并查集 并查集通过一个一维数组实现其本质是维护一个森林开始时,森林中每个点都是孤立的,每个点就是一棵只有一个结点的树之后通过一些条件,逐渐将这个树合并为一棵大树。合并的过程就是“认爹”过程在“认爹”过程中需要遵循“靠左原则”和“擒贼先擒王”,在每次判断两个结点是否已经在同一棵树的时候,也要注意必须求其根源,中间的父亲结点是不能说明什么的,必须要找到祖宗结点,判断两个结点的祖宗是否是同一根结点才行...
树和堆 树不包含回路一棵树中的任意两个结点有且仅有唯一的一条路径联通一棵树如果有n个结点,那么它一定恰好有n-1条边在一棵树中加一条边会构成一个回路完全二叉树和满二叉树满二叉树完全二叉树我们用一个一维数组存储完全二叉树如果完全二叉树的一个父结点编号为k,那么他的左儿子的编号就是2k,右儿子的编号就是2k+1如果已知儿子的编号是x,那么它的父节点的编号就是x/2(取整)如果一棵完全...
链表 对于链表头指针的作用是便于插入与删除(头结点不记录data)如果没有头指针,那么插入第一个点和删除第一个点会变成一个麻烦的操作,需要特殊考虑插入需要在第一个点时进行特殊考虑int insert_index(node*& head, int index, node* p){ int i = 1; if (head == NULL) //对于链表如果为空时的特殊考虑 {...