第4章循环 习题答案

合集下载

汇编语言程序设计(第四版)第4章【课后答案】

汇编语言程序设计(第四版)第4章【课后答案】

汇编语言程序设计(第四版)第4章【课后答案】汇编语言程序设计第四版【课后习题答案】--囮裑為檤第4章基本汇编语言程序设计〔习题4.1〕例题4.2如果要求算术右移8位,如何修改程序。

〔解答〕思路:首先由最高位字节向次低位字节传送……次低位字节向最低位字节传送(共7次);再判最高位字节符号位,如为0,送00h到最高位字节;如为1,送ffh到最高位字节。

传送可参考例题4.2,不过应从第一号字节送第零号字节,……最高位字节向次低位字节传送;也可以用循环来完成:.model small.stack 256.dataqvar dq 1234567887654321h.code.startupmov cx,7mov si,1again: mov al, byte ptr qvar[si]mov byte ptr qvar[si-1],alinc siloop againtest al,80hjz ezzmov bl,0ffhjmp doneezz: mov bl,0done: mov byte ptr qvar[7],bl.exit 0end〔习题4.2〕例题4.2如果要求算术左移7位,如何用移位指令实现。

〔解答〕思路:可设计外循环体为8个字节左移一次,方法是:最低位字节算术左移一次,次低位字节至最高位字节依次带CF 位循环左移一次(内循环共8次),外循环体控制执行7次即可。

.model small.stack 256.dataqvar dq 1234567887654321h.code.startupmov dx, 7 ;外循环次数mov ax, byte ptr qvar[0] ;最低位字节送axlpp: shl ax, 1 ;最低位字节左移一次,其d7移入CF位mov si, 1mov cx, 7 ;内循环次数again: rcl byte ptr qvar[si], 1 ;高位字节依次左移P50inc siloop againdec dxjnz lpp.exit 0.end〔习题4.3〕将AX寄存器中的16位数连续4位分成一组,共4组,然后把这4组数分别放在AL、BL、CL和DL寄存器中。

第4章习题答案

第4章习题答案

(2)SRAM 芯片和 DRAM 芯片各有哪些特点?各自用在哪些场合?
(3)CPU 和主存之间有哪两种通信方式?SDRAM 芯片采用什么方式和 CPU 交换信息?
(4)为什么在 CPU 和主存之间引入 Cache 能提高 CPU 访存效率?
(5)为什么说 Cache 对程序员来说是透明的?
(6)什么是 Cache 映射的关联度?关联度与命中率、命中时间的关系各是什么?
EEPROM (Electrically EPROM) 多模块存储器(Multi-Module Memory) 双口 RAM (Dual Port RAM) 程序访问的局部化
空间局部性(Spatial Locality) 命中时间(Hit Time) 失靶损失(Miss Penalty) Cache 槽或 Cache 行 (Slot / Line) 全相联 Cache(Fully Associative Cache) 多级 Cache(Multilevel Cache) 代码 Cache(指令 Cache) 先进先出 (First-In-First-Out,FIFO) Write Through(写直达、通过式写、直写) Write Back (写回、回写) 物理存储器(Physical Memory) 虚页号(Virtual Page number ) 物理地址(Physical address) 物理页号(Page frame) 重定位(Relocation) 页表基址寄存器(Page table base register) 修改位(Modify bit / Dirty bit) 访问方式位(Access bit) 交换(swapping) / 页面调度(paging) LRU 页(Least Recently Used Page) 分页式虚拟存储器(Paging VM) 段页式虚拟存储器(Paged Segmentation VM)

生理学 第四章血液循环练习题及答案

生理学 第四章血液循环练习题及答案

第四章血液循环一、填空题1.在一个心动周期中,心室的射血是由于①收缩的作用,心室充盈主要依靠②作用,心房起着③的作用。

2.第一心音标志着心室① ,第二心音标志着心室②。

3.调节或影响心输出量的因素有①、②、③和④。

4.心室肌的前负荷是①或②,后负荷是③。

5.心室肌细胞动作电位可分为五期,分别称为①、②、③、④和⑤。

6.钠通道因其激活、失活均很迅速,称为①通道,其阻断剂是②。

7.快反应细胞是指①、②和③细胞等,它们的动作电位0期去极化是由④内流引起的,去极化的速度⑤。

8.慢反应细胞是指①、②和③细胞等,它们的动作电位0期去极化是由④内流引起的,去极化的速度⑤。

9.心肌细胞的生理特性有①、②、③和④。

10.心室肌细胞的兴奋周期可分为①、②和③期。

在④期,其兴奋性将暂时丧失或极低;在⑤期,其兴奋性低于正常;在⑥期,其兴奋性高于正常。

11.心脏的正常起搏点是①,除此之外的各部位统称为②。

由窦房结细胞所控制的心律称为③,若为窦房结以外各点控制的心律称为④。

12.兴奋在①传导最慢。

这是由于该处细胞的体积②,细胞间连接膜通道数量③,细胞膜电位④,0期除极幅度⑤及除极速度⑥所致。

13.心电图的P波代表①,QRS 综合波代表②,T波代表③。

14.大动脉管壁的弹性可缓冲血压的波动,即防止收缩压①,舒张压②,以维持③。

15.中心静脉压的高低取决于①和②之间的相互关系。

16.在毛细血管动脉端,有效滤过压①,组织液② ;而在毛细血管静脉端,有效滤过压③,组织液④。

17.在微循环中,迂回通路的作用是①,直接通路的作用是②;动-静脉短路的作用是③。

18.对动脉血压进行快速调节的反射是① ,其感受器是②和③;其反射效应是使心率④,外周血管阻力⑤ ,血压⑥;其生理意义是⑦。

19.在临床上,肾上腺素常用于①,而去甲肾上腺素常用于②。

20.肾血流量长期减少,可使肾素分泌量①,血管紧张素生成②,导致③。

21.血管内皮生成的舒血管物质主要有①和②,血管内皮生成的缩血管物质称为③。

第四章 习题答案

第四章 习题答案

第四章的习题及答案4-1 设有一台锅炉,水流入锅炉是之焓为62.7kJ ·kg -1,蒸汽流出时的焓为2717 kJ ·kg -1,锅炉的效率为70%,每千克煤可发生29260kJ 的热量,锅炉蒸发量为4.5t ·h -1,试计算每小时的煤消耗量。

解:锅炉中的水处于稳态流动过程,可由稳态流动体系能量衡算方程:Q W Z g u H s +=∆+∆+∆221体系与环境间没有功的交换:0=s W ,并忽 动能和位能的变化, 所以: Q H =∆设需要煤mkg ,则有:%7029260)7.622717(105.43⨯=-⨯m解得:kg m 2.583=4-2 一发明者称他设计了一台热机,热机消耗热值为42000kJ ·kg -1的油料0.5kg ·min -1,其产生的输出功率为170kW ,规定这热机的高温与低温分别为670K 与330K ,试判断此设计是否合理?解:可逆热机效率最大,可逆热机效率:507.06703301112max =-=-=T T η 热机吸收的热量:1m in210005.042000-⋅=⨯=kJ Q热机所做功为:1m in 102000m in)/(60)/(170-⋅-=⨯-=kJ s s kJ W该热机效率为:486.02100010200==-=Q W η 该热机效率小于可逆热机效率,所以有一定合理性。

4-3 1 kg 的水在1×105 Pa 的恒压下可逆加热到沸点,并在沸点下完全蒸发。

试问加给水的热量有多少可能转变为功?环境温度为293 K 。

解:查水蒸气表可得始态1对应的焓和熵为:H 1=83.93kJ/kg, S 1=0.2962kJ/kg.K 末态2对应的焓和熵为:H 2=2675.9kJ/kg, S 2=7.3609kJ/kg.K)/(0.259293.839.267512kg kJ H H Q =-=-=)/(0.522)2962.03609.7(15.2930.25920kg kJ S T H W sys id =-⨯-=∆-∆=4-4如果上题中所需热量来自温度为533 K 的炉子,此加热过程的总熵变为多少?由于过程的不可逆性损失了多少功? 解:此时系统的熵变不变)./(0647.7K kg kJ S sys =∆炉子的熵变为)./(86.45330.2592K kg kJ T H T Q S sur -=-=∆-==∆ )./(205.286.40647.7K kg kJ S t =-=∆ )/(0.646205.215.2930kg kJ S T W t l =⨯=∆=4-5 1mol 理想气体,400K 下在气缸内进行恒温不可逆压缩,由0.1013MPa 压缩到1.013MPa 。

汽车发动机原理第4章 课后习题答案

汽车发动机原理第4章 课后习题答案

第四章复习思考题1.说明汽油机燃烧过程各阶段的主要特点。

答:燃烧过程:(1)着火落后期:它对每一循环都可能有变动,有时最大值是最小值的数倍。

要求:为了提高效率,希望尽量缩短着火落后期,为了发动机稳定运行,希望着火落后期保持稳定(2)明显燃烧期:压力升高很快,压力升高率在0.2-0.4MPa/(°)。

希望压力升高率合适(3)后燃期:湍流火焰前锋后面没有完全燃烧掉的燃料,以及附在气缸壁面上的混合气层继续燃烧。

希望后燃期尽可能的短。

2.爆燃燃烧产生的原因是什么?它会带来什么不良后果?答:燃烧室边缘区域混合气也就是末端混合气燃烧前化学反应过于迅速,以至在火焰锋面到达之前即以低温多阶段方式开始自然,引发爆燃爆燃会给柴油机带来很多危害,发生爆燃时,最高燃烧压力和压力升高率都急剧增大,因而相关零部件所受应力大幅增加,机械负荷增大;爆燃时压力冲击波冲击缸壁破坏了油膜层,导致活塞、气缸、活塞环磨损加剧,爆燃时剧烈无序的放热还使气缸内温度明显升高,热负荷及散热损失增加,这种不正常燃烧还使动力性和经济性恶化。

3.爆燃和早燃有什么区别?答:早燃是指在火花塞点火之前,炽热表面点燃混合气的现象。

爆燃是指末端混合气在火焰锋面到达之前即以低温多阶段方式开始自然的现象。

早燃会诱发爆燃,爆燃又会让更多的炽热表面温度升高,促使更加剧烈的表面点火。

两者相互促进,危害更大。

另外,与爆燃不同的时,表面点火即早燃一般是在正常火焰烧到之前由炽热物点燃混合气所致,没有压力冲击波,敲缸声比较沉闷,主要是由活塞、连杆、曲轴等运动件受到冲击负荷产生震动而造成。

4.爆燃的机理是什么?如何避免发动机出现爆燃?答:爆燃着火方式类似于柴油机,同时在较大面积上多点着火,所以放热速率极快,局部区域的温度压力急剧增加,这种类似阶越的压力变化,形成燃烧室内往复传播的激波,猛烈撞击燃烧室壁面,使壁面产生振动,发出高频振音(即敲缸声)。

避免方法:适当提高燃料的辛烷值;适当降低压缩比,控制末端混合气的压力和温度;调整燃烧室形状,缩短火焰前锋传播到末端混合气的时间,如提高火焰传播速度、缩短火焰传播距离。

第4章_数组c++_习题答案解析

第4章_数组c++_习题答案解析

习题4一、单项选择题1.若有说明inta[3][4];则a数组元素的非法引用是【】A.a[0][2*1]B.a[1][3]C.a[4-2][0]D.a[0][4]【答案】D【解析】数组下标从0开始,a[0][4]的列下标越界。

2.在C++语言中,引用数组元素时,其数组下标的数据类型允许是【】A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式【答案】C3.以下不正确的定义语句是【】A.doublex[5]={2.0,4.0,6.0,8.0,10.0};B.inty[5]={0,1,3,5,7,9};C.charc1[]={′1′,′2′,′3′,′4′,′5′};D.charc2[]={x1′0′x,a′′x,8′′};【答案】B【解析】初始值的个数大于数组的大小,系统会出现编译错误。

4.对以下说明语句的正确理解是【】inta[10]={6,7,8,9,10};A.将5个初值依次赋给a[1]至a[5]B.将5个初值依次赋给a[0]至a[4]C.将5个初值依次赋给a[6]至a[10]D.因为数组长度与初值的个数不相同,所以此语句不正确【答案】B5.若有说明:inta[][4]={0,0};则下面不正确的叙述是【】A.数组a的每个元素都可得到初值0B.二维数组a的第一维大小为1C.当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小D.只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值【答案】D【解析】二维数组初始化时,行大小可以省略,被省略的大小根据初值的个数系统来确定,本题中,有2个初值说明是1行4列,所以第一维为1。

元素a[0][0]和a[0][1]赋初值为0,其余元素初值系统默认为0。

6.以下能对二维数组c进行正确的初始化的语句是【】A.intc[3][]={{3},{3},{4}};B.intc[][3]={{3},{3},{4}};C.intc[3][2]={{3},{3},{4},{5}};D.intc[][3]={{3},{},{3}};【答案】B【解析】二维数组初始化时,行大小可以省略,列大小不可以省略,所以A答案错误。

第4章 MATLAB程序流程控制_习题答案

第4章  MATLAB程序流程控制_习题答案

第4章 MATLAB程序流程控制习题4一、选择题1.下列关于脚本文件和函数文件的描述中不正确的是()。

A A.函数文件可以在命令行窗口直接运行B.去掉函数文件第一行的定义行可转变成脚本文件C.脚本文件可以调用函数文件D.函数文件中的第一行必须以function开始2.下列程序的输出结果是( )。

Dy=10;if y==10y=20;elseif y>0y=30enddisp(y)A.1 B.30 C.10 D.203.有以下语句:a=eye(5);for n=a(2:end,:)for循环的循环次数是()。

CA.3 B.4 C.5 D.104.设有程序段k=10;whilekk=k—1end则下面描述中正确的是()。

AA.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次5.有以下程序段:x=reshape(1:12,3,4);m=0;n=0;for k=1:4if x(:,k)<=6m=m+1;elsen=n+1;endend则m和n的值分别是()。

CA.6 6 B.2 1 C.2 2 D.1 26.调用函数时,如果函数文件名与函数名不一致,则使用()。

A A.函数文件名B.函数名C.函数文件名或函数名均可D.@函数名7.如果有函数声明行为“function [x,y,z]=f1(a,b,c)”,则下述函数调用格式中错误的是()。

BA.x=f1(a,b,c) B.[x,y,z,w]=f1(a,b,c)C.[x,b,z]=f1(a,y,c) D.[a,b]=f1(x,y,z)8.执行语句“fn=@(x)10*x;",则fn是()。

AA.匿名函数B.函数句柄C.字符串D.普通函数9.执行下列语句后,变量A的值是( )。

D>> f=@(x,y) log(exp(x+y));〉〉 A=f(22,3);A.22,3B.22 C.3 D.2510.程序调试时用于设置断点的函数是()。

数据结构(C语言版)第三四章习题答案解析

数据结构(C语言版)第三四章习题答案解析

第3章栈和队列习题1.选择题(1)若让元素1,2,3,4,5依次进栈,则出栈次序不可能出现在()种情况。

A.5,4,3,2,1 B.2,1,5,4,3 C.4,3,1,2,5 D.2,3,5,4,1(2)若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为()。

A.i B.n-i C.n-i+1 D.不确定(3)数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素个数的公式为()。

A.r-f B.(n+f-r)%n C.n+r-f D.(n+r-f)%n (4)链式栈结点为:(data,link),top指向栈顶.若想摘除栈顶结点,并将删除结点的值保存到x中,则应执行操作()。

A.x=top->data;top=top->link; B.top=top->link;x=top->link;C.x=top;top=top->link; D.x=top->link;(5)设有一个递归算法如下int fact(int n) { //n大于等于0if(n<=0) return 1;else return n*fact(n-1); }则计算fact(n)需要调用该函数的次数为()。

A. n+1 B. n-1 C. n D. n+2 (6)栈在()中有所应用。

A.递归调用 B.函数调用 C.表达式求值 D.前三个选项都有(7)为解决计算机主机与打印机间速度不匹配问题,通常设一个打印数据缓冲区。

主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。

该缓冲区的逻辑结构应该是()。

A.队列 B.栈 C.线性表 D.有序表(8)设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次进入栈S,一个元素出栈后即进入Q,若6个元素出队的序列是e2、e4、e3、e6、e5和e1,则栈S的容量至少应该是()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1:/*编写程序,实现从键盘输入学生的平时成绩、期中成绩、期末成绩,计算学生的学期总成绩。

学生的学期总成绩=平时成绩*15%+期中成绩*25%+期末成绩*60%。

*/#include<stdio.h>void main (){float a,b,c,sum;printf("输入同学的成绩\n");scanf("%f,%f,%f",&a,&b,&c);sum=a*0.15+b*0.25+c*0.6;printf("同学的总成绩是%4.2f",sum);}2:/*编写程序,输入一个数,判断该数是奇数还是偶数。

*/#include<stdio.h>void main (){int a;printf("输入个数:");scanf("%d",&a);if(a%2==0)printf("是偶数!");elseprintf("是奇数!");}3:/*编写程序,从键盘输入三个数,输出其中最小的数。

*/#include"stdio.h"void main(){int min,a,b,c;printf("请输入三个整数用逗号分开:");scanf("%d,%d,%d",&a,&b,&c);min=a;//给min 初始化一个值之后才可进行比较if(min>b){min=b;if(min>c)min=c;}else if(min>c){min=c;}printf("最小的数为%d\n",min);}4:/*编写程序,接受用户通过键盘输入的1~13 之类的整数,将其转换成扑克牌张输出,1 转换为字符A,2~9 转换为对应的字符,10 转换为T,11 转换为J,12 转换为Q,13 转换为K,要求使用switch 语句实现。

*/#include <stdio.h>void main(){char a;printf("输入一个数字\n");scanf("%d",&a);switch(a){case 1:printf("A\n");break;case 2:printf("%d\n",a);break;case 3:printf("%d\n",a);break;case 4:printf("%d\n",a);break;case 5:printf("%d\n",a);break;case 6:printf("%d\n",a);break;case 7:printf("%d\n",a);break;case 8:printf("%d\n",a);break;case 9:printf("%d\n",a);break;case 10:printf("T");break;case 11:printf("J");break;case 12:printf("Q");break;case 13:printf("K");break;default:printf("error\n");}}5:/*编写程序,接收用户输入的年份和月份,输出该月天数*/ #include <stdio.h>void main(){int a,b,c;printf("输入年份,月份\n");scanf("%d,%d",&b,&a);c=b%4;if(a==1||a==3||a==5||a==7||a==8||a==10||a==12)printf("这个月有31 天\n");if(a==4||a==6||a==9||a==11)printf("这个月有30 天\n");if(a==2&&c==0)printf("这个月有28 天\n");if(a==2&&c!=0)printf("这个月有29 天\n");if(a>12)printf("只有12 个月\n");}6:/*编写程序,计算s 的近似值,使其误差小于10^-6* s=1+1/x^1+1/x^2+1/x^3^……(x>1)*/#include <stdio.h>#define ep 1.0e-6void main(){double x, s,a;s=1.0;a=1.0;printf("输入一个数x=");scanf("%lf",&x);do{a=a/x;s=s+a;}while(a>1.0e-6);printf("s 的近似值=%lf",s);}7:/*编写程序,当x=0.5 时,按下面的公式计算e^x 的近似值,使其误差小于10^-6 * e^x=1+x/1!+x^2/2!+x^3/3!+……*/#include <stdio.h>#include <math.h>void main ()#define M_E 2.71828182845904523536#define ep 1.0e-6{double fact,sum,a;int i=1;sum=1;a=1;fact=pow(M_E,0.5);do{a=a*0.5/i;sum=sum+a;i++;}while (fabs(sum-fact)>ep);printf ("%lf\n",sum);}8:/*编写程序,输出所有大写英文字母及它们的ASCII 码,代码值分别用八进制、十六进制、十进制的形式输出。

*/#include <stdio.h>void main (){char a='A',i;for(i=1;i<27;i++){printf("%c:Octal:%o\tHex:%x\tDecimal:%d\n",a,a,a,a);a=a+1;}}9:/*编写程序,实现输入n 个整数,输出其中最小的数,并指出其是第几个数。

*/#include <stdio.h>void main(){int min;int count=0,min_count;int a;int flag=1;char b;printf("以a,b,c.这样的形式输入任意n 个数:");do{scanf("%d%c",&a,&b);count++;if(flag)//这个选择语句就是为了给min 赋一个初始值方便后面比较{min=a;min_count=count;flag=0;}if(min>a){min=a;min_count=count;}}while(b!='.');printf("最小的数为第%d 个,值为%d",min_count,min);}/*回文整数是指正读和反读相同的整数,编写一个程序,输入一个整数判断是否为回文整数*/#include <stdio.h>void main (){int i=0,num,fact;printf("输入你想判断的数字\n");scanf ("%d",&num);fact=num;while(0!= num){i = i*10 + num%10;num=num/10;}if (fact==i)printf ("%d 是回文整数\n",fact);elseprintf ("%d 不是回文整数\n",fact);}11:/*编写程序,找出所有三位的升序数。

所谓升序数,是指其个位数大于十位数,且十位数又大于百位数的数。

例如,279 就是一个三位升序数*/#include <stdio.h>void main (){int a=100,h,t,g;do{h=a/100;t=a/10%10;g=a%10;if (g>t&&t>h)printf("%d\t",a);a++;}while(a<=999);12:/*如果一个数的各因子之和正好等于该数本身,则该数称为完数。

如6 的影子为1、2、3,其和为6,则 6 完数。

编写程序,找出2~100 之间的所有完数。

*/#include <stdio.h>void main ()int i,j,sum;sum=0;for(i=2;i<=100;i++){for(j=1;j<i;j++){if(i%j==0)sum=j+sum;}if(sum==i){printf("%d\t",i);}sum=0;}}13:/*输入n 值,打印下列高为n 的直角三角形。

*****************/#include <stdio.h>void main(){int n,i,j;printf("输入高");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=2*n-2*i;j++){printf(" ");}for(j=1;j<=2*i-1;j++){printf("*");}printf("\n");}}/*猴子吃桃问题。

猴子第一天摘下若干桃子,当即吃了一半,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半多一个。

到第十天早上想再吃时,就只剩下一个桃子了。

求一天一个摘了多少个桃子。

*/#include <stdio.h>void main(){int i,x;i=1;x=1;do{x=(x+1)*2;i++;}while(i<10);printf("有%d 个桃子",x);}15:/*已知大鱼5 元一条,中鱼3 元一条,小鱼1 元三条,现用100 元买100 条鱼,求能买大鱼、中鱼、小鱼各多少条。

相关文档
最新文档