帮我做下

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了帮我做下相关的知识,希望对你有一定的参考价值。

1. 至今为止,计算机中的所有信息仍以二进制方式表示的理由是______。
A.物理器件性能决定 B. 运算速度快
C. 节约元件 D. 信息处理方便
2. 下列数中最大的数是______。
A. 10010101B B. 227Q C. 96H D. 143D
3. 已知[X]补=1.1011,则其值为______。
A.-0.1011 B.-0.0101 C.0.1011 D.0.0101
4. 在浮点数编码中______,在机器数中不出现是隐含的。
A.基数 B.符号 C.尾数 D.阶码
5. 计算机问世至今,新型机器不断推陈出新,但不管怎样更新,依然保有“存储程序”的概念,最早提出这种概念的是______。
A.贝尔 B.帕斯卡 C.巴贝奇 D.冯. 诺依曼
6. 运算器虽由许多部件组成,但其核心部件是______。
A.算术逻辑运算单元 B.数据总线 C.多路开关 D.累加寄存器
7. 在主存和CPU之间增加cache存储器的目的是______。
A. 增加内存容量 B. 解决CPU和主存之间的速度匹配问题
C. 提高内存可靠性 D. 增加内存容量,同时加快存取速度
8. 有一信息码为1011011,则该代码的奇校验码为______。(假设校验位加在传送码的右边)
A. 10110110 B. 11011011 C. 10110111 D. 01011011
9. 若浮点数的阶码与尾数都用补码表示,则判断运算结果为规格化数的方法是______。
A. 阶符与数符相同 B. 阶符与数符相异
C. 数符与尾数小数点后第一位数字相异 D. 数符与尾数小数点后第一位数字相同
10. 若一台计算机的字长为4个字节,则表明该机器______。
A. 能处理的数值最大为4位十进制数
B. 能处理的数值最多由4位二进制数组成
C. 在CPU中运算的结果最大为2的32次方
D. 在CPU中能够作为一个整体加以处理的二进制代码为32位
11. 计算机的存储器采用分级方式是为了______。
A. 减少主机箱的体积 B. 解决容量、价格、速度三者之间的矛盾
C. 保存大量数据方便 D. 操作方便
12. 根据传送信息的种类不同,系统总线分为______。
A. 地址线和数据线 B. 地址线、数据线和控制线
C. 地址线、数据线和响应线 D. 数据线和控制线
13. 下列元件中,存取速度最快的是______。
A. 寄存器 B. Cache C. 内存 D. 外存
14. 在计算机系统中,表征系统运行状态的部件是______。
A. 程序计数器 B. 累加寄存器 C. 中断寄存器 D. 程序状态字
15. 在微型机系统中,外围设备通过______与主板的系统总线相连接。
A. 适配器   B. 设备控制器  C. 计数器   D. 寄存器
16. 存储器是计算机系统的记忆设备,主要用于______。
A. 存放程序 B. 存放程序和数据 C. 存放微程序 D. 存放软件
17. 某存储器芯片的存储容量为8K×8位,则它的地址线和数据线引脚相加的和为______。
A. 13 B. 12 C. 22 D. 21
18. 某DRAM芯片,其存储容量为512K×8位,该芯片的地址线和数据线数目分别为______ 。
A.8,512 B.512,8 C.18,8 D.19,8
3. 填写下列代码的奇偶校验位,现设为奇校验。
1010000__; 0011001__; 0100110__; 1010101__; 0101010__
4. 有一个(7,3)CRC码,其出生成多项式X4+X3+X2+1,计算信息码110的CRC(冗余循环)码。(写出计算步骤)
5.若某机器的字长n=8,已知:x=+0.11011,y=-0.01010,采用变形补码计算x+y、x-y。写出计算过程,同时指出计算结果是否溢出,若无溢出写出运算结果的真值;若发生溢出,指出是正溢出还是负溢出。
6. 设某机器浮点数的阶码为3位,阶符1位,尾数为6位,数符2位,均用补码表示。有两个浮点数,X=+0.101011*2101,y=-0.100001*2100,求x+y=?(若有舍入,采用0舍1入)
7. 设X=-0.1011,Y=-0.1101,请用BOOTH法计算X*Y的值。
8. 设X=0.1001,Y=-0.1101,请用原码加减交替法求X÷Y的值。

三、简答题
1. 分别简述冯•诺依曼存储器与哈佛存储器结构的设计思想。
2. 3种机器数原码、反码、补码的主要区别有哪些?
3. 什么是半加器与全加器?并分别写出相应的逻辑表达式。
4. 简述原码、补码移位的规则。
5. 简述原码一位乘法与补码一位乘法(booth)的运算规则。
6. 简述存储单元地址与存储单元内容的区别。

1d 2b 3b 4d 5d 6a 7b 8d 9b 10c 11b 12b 13b 14d 15b 16b 17d 18c 计算机原理中的知识或或者是微机原理 实际原因 简答题做一道 诺依曼存储器既可以存数据,又可以存指令。但哈佛用两个存储器分别存数据和指令。 参考技术A 哇!!!!不会追问

不要谦虚啊,帮帮忙啊~~~~~~

参考技术B 太难了 参考技术C 我只知道选择题答案:dbbddabdbcbbbdbbdc

会的帮做下!

实验项目名称:实现模拟进程调度的程序

方案设想:用计算机编程语言,任选C、C++或者VC或VB、JAVA等都可以用来设计本道程序,系统平台可以是Linux也可以是windows;实现一个简单模拟进程调度,给出5个进程,然后按照任选一种调度算法来调度进程。

#include <stdio.h>

typedef struct procedure

/*char[15] procName;进程名*/
int procID; /*进程的内部标志*/
int priority; /*进程的优先权数规定,小数级别高*/
int needTime; /*总共所需执行的时间片数*/
int cpuTime; /*已经执行情况的次数*/
char procStatus; /*进程状态,-r运行,-w就绪,-f完成*/
struct procedure * nextProc; /*指向下一个进程的指针*/
proc,*procPoint;

procPoint CreatePCBList(int n); /*创建进程链表*/
void PrintPCBList(procPoint PCBList); /*打印进程链表*/
void DestroyPCBList(procPoint PCBList); /*释放进程链表空间*/
void RoundRabin(procPoint PCBList); /*时间片调度算法,每执行一次,needTime-1,cpuTime+1*/
void compositor(proc **_PCBList); /*连表排序,由小优先级到大*/
void priority(procPoint PCBList,procPoint finishList); /*优先级调度算法,priority小,优先级高*/
/**********************************************/
main()

int num=0;
char method;
procPoint PCBList,finishList;
printf("input the numbers of procedure:");
scanf("%d",&num);
PCBList = NULL;
finishList = NULL;

PCBList = CreatePCBList(num);
/* PrintPCBList(finishList);*/
/*选择算法*/
printf("\\nwhat method do you want to use? (r / p)======[r-RoundRabin; p-Priority]");
do

scanf("%c",&method);
printf("\\n");

while (method != \'r\' && method != \'p\');
printf("\\nPCB procID priority needTime cpuTime procStatus nextProc");
if (method == \'r\')
RoundRabin(PCBList);
else
priority(PCBList,finishList);
DestroyPCBList(PCBList);
DestroyPCBList(finishList);
getchar();

/*********************************************/

/*创建进程链表*/
procPoint CreatePCBList(int n)

int k;
procPoint PCBList = NULL;
procPoint PCBTail,newProc;
PCBTail=PCBList;
while (PCBTail->nextProc != NULL)

PCBTail = PCBTail -> nextProc;

printf("intput the %d procedures\' [priority] [needTime] and [status](w-wait/f-finish):\\n",n);
for (k=0;k<n;k++)

newProc = (procPoint)malloc(sizeof(struct procedure));
if(k==0) PCBList=newProc;
scanf("%d,%d,%c",&newProc -> priority,&newProc -> needTime,&newProc -> procStatus);
newProc -> procID = k;
newProc -> cpuTime = 0;
newProc -> nextProc = NULL;
PCBTail -> nextProc = newProc;
PCBTail = newProc;

printf("\\nthe PCB list has been created as below:\\n");
printf("\\nPCB procID priority needTime cpuTime procStatus nextProc");
PrintPCBList(PCBList);
return PCBList;

/*打印进程链表*/
void PrintPCBList(procPoint PCBList)

int n=0;
procPoint PCBTail = NULL;
PCBTail = PCBList;
while (PCBTail != NULL)

printf("\\nPCB[%d] %d %d %d %d %c",n,PCBTail->procID,PCBTail->priority,PCBTail->needTime,PCBTail->cpuTime,PCBTail->procStatus);
PCBTail = PCBTail -> nextProc;
if (PCBTail != NULL)

printf(" %d",PCBTail->procID);

else
printf(" NULL");
n=n++;

printf("\\n");

/*释放进程链表空间*/
void DestroyPCBList(procPoint PCBList)

procPoint thisProc;
while (PCBList != NULL)

thisProc = PCBList;
PCBList = PCBList -> nextProc;
free(thisProc);
printf("...one procedure despost!\\n");

printf("procedure list space released successfuly!\\n");

/*======================================*/
/*时间片调度算法,每执行一次,needTime-1,cpuTime+1*/
void RoundRabin(procPoint PCBList)

int allF = 1; /*标志每此循环后是否还有未结束进程,有则为1*/
procPoint thisProc;
thisProc = PCBList;
while (allF == 1)

thisProc = PCBList;
allF = 0;
while (thisProc !=NULL)

if (thisProc -> procStatus != \'f\')

thisProc -> cpuTime += 1;
thisProc -> needTime -= 1;
if (thisProc -> needTime <= 0)
thisProc -> procStatus = \'f\';
else
allF = 1;

thisProc = thisProc -> nextProc; /*指针指向下一进程*/

PrintPCBList(PCBList); /*打印一次循环后的结果*/
getchar();



/*===========================================*/
/*排序链表,由小到大*/
void compositor(proc ** _PCBList)
/*修改成指针的指针时,此处多次出现不匹配错误,原因是:相应的函数声明未修改*/

procPoint p,q,r;
procPoint PCBList;
PCBList = *_PCBList;

if (PCBList == NULL || PCBList ->nextProc == NULL)

return;


p = PCBList;
q = p -> nextProc;
r = q -> nextProc;
while (r != NULL)

if (q -> priority > r ->priority)

q -> nextProc = r->nextProc;
p -> nextProc = r;
r -> nextProc = q;

p = q;
q = r;
r = r -> nextProc;


p = PCBList -> nextProc;
if (PCBList -> priority > p -> priority)

PCBList -> nextProc = p -> nextProc;
p -> nextProc = PCBList;
PCBList = p;
*_PCBList = p;



/*优先权调度算法--约定小数优先,每执行一次,优先数+2,cputime+1,needtime-1*/
void priority(procPoint PCBList,procPoint finishList)

procPoint thisProc,p,q,fPointer;
thisProc = PCBList;
while (thisProc != NULL)

/*将状态为\'f\'的进程放入已完成队列,并从就绪队列中删除*/
if (PCBList -> procStatus == \'f\')

if (finishList == NULL)

finishList = PCBList;
PCBList = PCBList -> nextProc;
finishList -> nextProc = NULL;

else

fPointer = finishList;
while (fPointer -> nextProc != NULL)

fPointer = fPointer -> nextProc;

fPointer -> nextProc = PCBList;
PCBList = PCBList ->nextProc;
fPointer = fPointer -> nextProc;
fPointer -> nextProc = NULL;


compositor(&PCBList);
/*此处出错,PCBList在函数中的改变未传递回来*/
PCBList -> priority += 2; /*进程的优先权数规定,小数级别高*/
PCBList -> needTime -= 1; /*总共所需执行的时间片数*/
PCBList -> cpuTime += 1; /*已经执行情况的次数*/
if (PCBList -> needTime <= 0)

PCBList -> procStatus = \'f\';

PrintPCBList(PCBList);
PrintPCBList(finishList);
thisProc = PCBList;
getchar();

参考技术A 你自己做吧,百度可不是用来做作业的.

以上是关于帮我做下的主要内容,如果未能解决你的问题,请参考以下文章

大神帮我做下这个题要用C语言不要C++

那个大哥能帮小弟做一下下面的题我做了不对,请用java和python帮我做一下我看看是那里不懂。

谁帮我做下这几个题实在不会

shell中的SED与正则式(帮我做下这些题目,谢谢)

数据结构题、大哥大姐帮我做下题吧。万分感谢啊

谁能帮我做下这道C语言编程题,明天就要交了,好心人帮帮忙,谢谢了~~~~求救呀·~~~