第六章循环控制作业
- 格式:docx
- 大小:16.24 KB
- 文档页数:8
操作系统第六章练习题一、选择题1. 在操作系统中,下列关于进程状态的描述,错误的是()。
A. 运行态是指进程正在占用CPUB. 阻塞态是指进程因等待某事件而暂时停止运行C. 就绪态是指进程已经具备运行条件,等待CPU调度D. 空闲态是指进程已经执行完毕,等待被系统回收2. 在操作系统中,下列关于进程调度算法的描述,正确的是()。
A. 先来先服务(FCFS)调度算法可能导致饥饿现象B. 短作业优先(SJF)调度算法是非抢占式的C. 优先级调度算法中,优先级高的进程一定能立即获得CPUD. 时间片轮转调度算法适用于分时系统3. 在操作系统中,下列关于进程同步与互斥的描述,错误的是()。
A. 临界区是指进程中访问共享资源的代码段B. 信号量是一种用于实现进程同步与互斥的机制C. Peterson算法可以保证两个进程互斥进入临界区D. 生产者消费者问题可以通过信号量机制解决二、填空题1. 在操作系统中,进程的五大状态包括:____、____、____、____和____。
2. 在进程同步与互斥中,信号量的值表示了____资源的使用情况。
3. 在操作系统中,死锁产生的四个必要条件是:____、____、____和____。
三、简答题1. 请简述进程与线程的区别。
2. 请说明进程调度的主要目标。
3. 请阐述银行家算法的基本思想及其应用场景。
四、编程题1. 编写一个程序,实现进程的创建、撤销和切换。
2. 编写一个程序,使用信号量机制解决生产者消费者问题。
3. 编写一个程序,模拟进程的优先级调度算法。
五、案例分析题进程最大需求量已分配资源量P1 R1=3, R2=2 R1=1, R2=0P2 R2=2, R3=2 R2=1, R3=1P3 R3=2, R4=2 R3=1, R4=0P4 R1=4, R4=3 R1=2, R4=2(1)系统当前可用资源为:R1=1, R2=1, R3=1, R4=1(2)系统当前可用资源为:R1=0, R2=1, R3=1, R4=12. 假设有一个系统采用时间片轮转调度算法,时间片长度为50ms。
软件⼯程第6章-课后作业参考(附答案)第六章作业题参考答案3.画出下列伪码程序的程序流程图和盒图: STARTIF p THENWHILE q DO f END DO ELSEBLOCK g nEND BLOCK END IF STOP 答:(1)流程图如图6-1所⽰:图6-1从伪码变成的程序流程图(2)该程序的盒图如图6-2所⽰:图6-2 从伪码变成的程序盒图4.下图给出的程序流程图代表⼀个⾮结构化的程序,请问:(1)为什么说它是⾮结构化的?(2)设计⼀个等价的结构化程序。
(3)在(2)题的设计中你使⽤附加的标志变量flag吗?若没⽤,请再设计⼀个使⽤flag 的程序;若⽤了,再设计⼀个不⽤flag 的程序。
答:(1)通常所说的结构化程序,是按照狭义的结构程序的定义衡量,符合定义规定的程序。
图⽰的程序的循环控制结构有两个出⼝,显然不符合狭义的结构程序的定义,因此是⾮结构化的程序。
(2)使⽤附加的标志变量flag,⾄少有两种⽅法可以把该程序改造为等价的结构化程序,图6-3描绘了等价的结构化程序的盒图。
(a)解法1(b)解法2图6-3 与该图等价的结构化程序(⽤flag)(3)不使⽤flag把该程序改造为等价的结构化程序的⽅法如图6-4所⽰。
图6-4 与该图等价的结构化程序(不⽤flag)8.画出下列伪码程序的流图,计算它的环形复杂度。
你觉得这个程序的逻辑有什么问题吗?C EXAMPLELOOP:DO WHILE X>0A=B+1IF A>10THEN X=AELSE Y=ZEND IFIF Y<5THEN PRINT X,YELSE IF Y=2THEN GOTO LOOPELSE C=3END IFEND IFG=H+REND DOIF F>0THEN PRINT GELSE PRINT KEND IFSTOP答:(1)该伪码的流程图如图6-8所⽰:图6-8 程序流程图根据该程序流程图,可得该程序流图如图6-9所⽰:图6-9 程序流图环形复杂度V(G)=流图中的区域数=流图中判定结点数⽬+1=6+1=7 (判定结点为:1、3、6、8、10、11)(2)该算法问题在于控制最外层循环的变量Z不仅没有经过初始化,并且在该循环内部没有任何有可能该变Z的语句。
1.t为int类型,进入下面的循环之前,t的值为0while( t=l ){ ……}则以下叙述中正确的是( B )(A) 循环控制表达式的值为0 (B) 循环控制表达式的值为1(C) 循环控制表达式不合法(D) 以上说法都不对2.有以下程序main( ){ int i,s=0;for(i=1;i<10;i+=2) s+=i+1;printf(“%d\n”,s);}程序执行后的输出结果是 ( D )。
(A) 自然数1~9的累加和 (B) 自然数1~10的累加和(C) 自然数1~9中的奇数之和 (D) 自然数1~10中的偶数之和3.以下程序段的输出结果是( C )。
int x=3;do{ printf("%3d",x-=2); }while(!(- -x));(A)1 (B)30 (C)1 -2 (D)死循环4.以下程序中,while循环的循环次数是( D)。
main(){ int i=0;while(i<10){ if(i<1) continue;if(i==5) break;i++;}......}(A) 1 (B) 10(C) 6 (D) 死循环,不能确定次数5.下面程序的输出是( B )。
(A)741 (B)852 (C)963 (D)875421main(){int y=9;for(;y>0;y--){if(y%3==0){printf("%d",--y);continue;}}}6.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是( A)。
for (i=5;i;i--)for(j=0;j<4;j++){...}(A)20 (B)25 (C)24 (D)307.执行语句: for(i=l;i++<4;;);后,变量i的值是(C)。
(A) 3 (B) 4 (C) 5 (D) 不定8.假定a和b为int型变量,则执行以下语句后b的值为( D )。
循环水安全作业规程范本第一章总则第一条根据《循环水安全管理办法》的要求,为确保循环水安全,保障生产作业人员的身体健康和生命安全,制定本作业规程。
第二条本作业规程适用于循环水系统的日常操作、检修和维护作业。
第三条循环水系统的日常操作、检修和维护作业,应由具备相应操作资质和专业知识的人员进行。
第四条所有参与循环水系统相关作业的人员,必须经过培训,并具备相关操作技能,且持证上岗。
第五条循环水系统的作业人员应时刻关注工作环境,做到安全第一,杜绝违章操作,确保人员及设备安全。
第六条循环水系统的作业人员应遵守相关法律法规和公司的安全管理制度,并定期接受安全教育和培训。
第二章作业前准备第七条作业前,作业人员应做好以下准备工作:(一)查看循环水系统的运行状态,了解系统的工艺参数和操作规程。
(二)检查循环水系统的安全装置和监控设备是否正常,必要时通知维护人员进行检修。
(三)携带必要的个人防护设备,如安全帽、防护眼镜、防护手套等。
(四)核查所需的工具和备件是否齐全,并确保其完好无损。
(五)确保所需的作业区域有良好的通风条件,并清除垃圾和杂物,确保工作场所整洁。
第三章操作规程第八条循环水系统的操作应按照以下规程进行:(一)在进行任何操作前,必须确认系统已经停止工作,并进行相应的隔离操作。
(二)严禁擅自更改系统的工艺参数和操作方式,必要时应及时报告主管或工程师。
(三)在进行维护和检修作业时,必须按照相关标准和规范进行,严禁使用不合格的工具和备件,确保作业质量。
(四)作业人员必须时刻关注循环水系统的运行状态和参数,一旦发现异常情况,应立即停止作业并向上级报告。
(五)作业人员离开作业场所时,必须关闭设备,切断电源,并进行必要的锁定和标识。
第九条循环水系统的作业人员应加强对设备的日常巡视,保持设备清洁,发现故障和隐患时,应及时报告并进行修复。
第十条循环水系统的作业人员应定期对设备进行保养和维护,包括清洗、更换滤网、检修阀门等,确保设备的正常运行。
内容提要❖第一节销售与收款业务流程❖第二节销售与收款流程中的内部控制▪一、销售与收款业务流程及内部控制概述▪二、建立客户控制记录▪三、销售折让与退货管理❖第三节应收账款流程的管理❖销售与收款业务流程通常以下业务活动:一、销售与收款业务流程及内部控制概述一、销售与收款业务流程及内部控制概述❖1 询价报价▪报价需要制作报价单,其内容有:产品名称、品种、规格、型号、价格、交货方式和售后服务等信息。
❖2 合同创建▪合同是一种具有法律效力的契约,一些企业在向顾客销售商品前要求与顾客签订合同,合同是一份向顾客销售商品或提供劳务时签订的概括性协议,通常会说明货物的数量和运输上的大体时间要求。
❖3 订单录入▪订单录入就是创建销售订单文件。
在收到客户任何形式(电话、传真、E-MAIL等)和任何格式的订购单后,都要据此创建一个标准的销售订单文件。
销售订单文件成为整个销售与收款业务流程中各业务环节作业依循的基础。
对销售订单审核是主要的控制。
•价格•存货数量❖3 订单录入❖4 信用审查▪客户的信用至关重要,在货物发运之前,客户的信用必须得到确认。
▪信用部门被授权根据客户的信用等级决定是继续执行该笔销售还是终止该笔销售。
▪为了确保业务流程中的权责分离,订单录入职能必须与信用审查职能相分离。
❖4 信用审查❖5 产成品管理▪即库存管理,这项职能负责按拣货单要求提选货物。
▪根据销售订单文件编制拣货单。
▪及时更新存货数据,对已拣货订单回写拣货标记,并将货物拣货单传给装运部门。
▪货物交送运输部门时,需要其确认接收。
❖5 产成品管理❖6 装运发货▪ERP依据销售订单文件自动编制装运文件,为客户准备并交货的所有相关信息均包含在交货文件内。
装运文档是销售业务是否实现的重要标志。
▪将产成品管理部拣出的货物与随货物所附的拣货单核对▪随货物附一份包装清单▪为运输单位编制一份提货单❖6 装运发货❖7 开单▪开单也即开销售发票。
ERP会从销售订单文件或交货文件中复制很多相关资料,以供开单之用。
第六章循环控制6.1 选择题1.C语言用( )表示逻辑“真”值。
A)true B)t或y C)非零整数值 D)整数02.语句while(!e);中的条件!e等价于( )。
A)e==0 B)e!=1 C)e!=0 D)~e3.以下for循环是( )。
for(x=0,y=0;(y!=123)&&(x<4);x++);A)无限循环 B)循环次数不定C)执行4次 D)执行3次4.下面有关for循环的正确描述是( )A)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环体语句,后判定表达式C)在for循环中,不能用break语句跳出循环体D)for循环体语句中,可以包含多条语句,但要用花括号括起来5.对于for(表达式1;;表达式3)可理解为()A)for(表达式1;1;表达式3)B)for(表达式1:1;表达式3)C)for(表达式1;表达式1;表达式3)D)for(表达式1;表达式3;表达式3)6.下面程序段的运行结果是( )x=y=0;while(x<15) y++, x+=++y;printf(“%d,%d”’y’x);A)20,7 B)6,12 C)20,8 D)8,207.下面程序段的运行结果是( )int n=0;while(n++<=2); printf(“%d”,n);A)2 B)3 C)4 D)有语法错8.下面程序的功能是将从键盘输入的一批正整数中求出最大者,输入0结束循环选择填空。
#include<stdio.h>main(){int a,max=0;scanf(“%d”,&a);while(( )){if(max<a)max=a;scanf(“%d”,&a);}printf(“%d”,max);}A)a==0 B)a C) !a==1 D)!a9.下面程序的运行结果是( ).#include<stdio.h>main(){int num=0;while(num<=2){num++;printf(“%d\n”,num);}}A)1B)1 2C)1 2 3D)1 2 3 410.C语言中while和do-while循环的主要区别是( ).A)do-while的循环体至少无条件执行一次B)while的循环控制条件比的循环控制条件严格C)do-while允许从外部转到循环体内D)do-while的循环体不能是复合语句11.以下能正确计算1*2*3*……*10的程序是( ).A) do{i=1;s=1; B)do{i=1;s=0;s=s*i; s=s*i;i++; i++;}while(i<=10); }while(i<=10);C) i=1;s=1; D) i=1;s=0;do{s=s*i; do{s=s*i;i++; i++;}while(i<=10); }while(i<=10);12.以下描述正确的是( ).A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。
B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。
C)在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。
D)do-while循环中,根据情况可以省略while13.若有如下语句int x=3; do {printf(“%d\n”,x-=2);} while(!(--x));则上面程序段( ).A)输出的是1 B)输出的是1和-2C)输出的是3和0 D)是死循环14.下面程序的运行结果是( ).#include <stdio.h>main(){int y=10;do{y--;}while(--y);printf(“%d\n”,y--);}A)-1 B)1 C)8 D)015.下面程序运行结果是( ).# include<stdio.h>main(){ int a=1,b=10;do{b-=a ; a++ ; } while ( b--<0) ;printf ( “ a=%d , b=%d\n”,a,b);}A) a=3 , b=11 B) a=2,b=8 C)a=1,b=-1 D)a=4,b=916.下面有关for循环的正确描述是( ).A)for循环只能用于循环次数已经确定的情况。
B)for循环是先执行循环体语句,后判断表达式。
C)在for循环中,不能用break语句跳出循环体。
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来。
17.以下for循环的执行次数是( ).for(x=0,y=0;(y=123)&&(x<4);x++);A)是无限循环B)循环次数不定C)执行4次D)执行3次18.以下不是无限循环的愈句为( ).A)for(y=0,x=1;x>++y;x=i++) I=xB)for( ; ;x++=I);C)while(1){x++; }D)for(I=10; ;I--) sum+=I;19.执行语句for(I=1;I++<4; );后变量I的值是( ).A)3B)4C)5D)不定20.下面程序的功能是计算1至50中是7的倍数的数值之和,请选择填空。
#include<stdio.h>main(){int I,sum=0;for(i=1;i<=50;i++)if( ) sum+=i;printf(”%d”,sum);}A)(int)(i/7)==i/7B) (int) i/7==i/7C)i%7=0D) i%7==021.下面程序的运行结果是( ).#include<stdio.h>main(){int i;for(i=1;i<=5;i++)switch(i%5){case0:printf(“﹡”);break;case1:printf(“#”);break;default:printf(”\n”);case2:printf(“&”);}}A)#&&&* B)#& C)# D)#&& &&* & *&*22.下面程序的运行结果是( ).#include<stdio.h>main(){int x,i;for(i=1;i<=100;i++){x=1;if(++x%2= =0)if(++x%3= =0)if(++x%7= =0)printf(“%d”,x)}}A)39 81 B)42 84 C)26 68 D)28 7023.下面程序的运行结果是( ).#include<stdio.h>main(){int i,b,k=0;for(i=1;i<=5;i++){b=i%2;while(b- ->=0) k++;}printf(“%d,%d”,k,b);}A)3,-1 B)8,-1 C)3,0 D)8,-224.以下正确的描述是( ).A)continue语句的作用是结束整个循环的执行B)只能在循环体内和switch语句体内使用break语句C)在循环体内使用break语句或continue语句的作用相同D)从多层循环嵌套中退出时,只能使用goto语句25.下面程序的运行结果是( ).#include<stdio.h>main(){ int k=0;char c=’A’;do{ switch(c++){ case ‘A’:k++;break;case ‘B’:k--;case ‘C’:k+=2;break;case ‘D’:k=k%2;continue;case ‘E’:k=k*10;beak;default:k=k/3;}k++;}while(c<’G’);pfintf(“k=%d\n”,k);}A)k=3 B)k=4 C)k=2 D)k=026.下面程序的运行结果是( ).#include”stdio.h>”main(){ int I;for (i=1;i<=5;i++){ if(i%2) printf(“*”);else continue;printf(“#”);}printf(“$\n”);}A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$27.下面程序的运行结果是( ).main(){ int i,j,a=0;for(i=0;i<2;i++){ for (j=0; j<4; j++){if (j%2) break;a++;}a++;}printf(“%d\n”,a);}A)4 B)5 C)6 D)728.c语言中( )。
A)不能使用do-while语句构成的循环B)do-while语句构成的循环必须用break语句才能退出C)do—whiLe语句构成的循环,当while语句中的表达式值为非零时结束循环D)do—while语句构成的循环,当while语句中的表达式值为零时结束循环29.C语言中while和do-while循环的主要区别是( )。
A)do—while的循环体至少无条件执行一次B)while的循环控制条件比do—while的循环控制条件严格C)do—while允许从外部转到循环体内D)do-while的循环体不能是复合语句30.以下程序的输出结果是( )。
#include<stdio.h>main(){int num=0;while(num<=2){num++;printf("%d\n",num);}}A.1B.1C.1D.12 2 23 346.2 填空题}1.下列程序运行后的输出结果是【】#include<stdio.h>main(){int i,j;for(i=4;i>=1;i--){printf("*");for(j=1;j<=4-i;j++)printf("*");printf("\n");}2.下列程序运行后的输出结果是【】。
#include<stdio.h>main(){int i,j,k;for(i=1;i<=6;i++){for(j=1;j<=20-2*i;j++)printf("");for(k=1;k<=i;k++)printf("");for(K=1;k<=i;k++)printf("%4d",i);printf("\n");}}3.当运行以下程序时,从键盘出入China#<CR>,则下面程序的运行结果是【】. #include<stdio.h>main( ){int v1=0,v2=0,charch;while((ch=getchar())! =’# ’)switch(ch){case’a’:case’h’:default:v1++case ’o’:v2++}printf(“%d,%d\n”,v1,v2);}。