四川大学系统级编程-2017-A卷答案
四川大学2018—2019学年第2学期大二计算机专业《汇编语言程序设计》考试试卷(附答案)

四川大学2018—2019学年第2学期《汇编语言程序设计》考试试卷(A卷)(闭卷时间120分钟)院/系年级专业姓名学号1、简述计算机系统组成。
2、程序中用什么语句来结束程序的执行?用什么语句来表示程序的结束和指出程序执行的起点?3、除了用4CH号系统功能调用结束程序的执行并退出,还有哪些办法?4、把下列二进制数转换为十六进制数和十进制数。
(1)01101101 (2)10110010 (3)1111115、下列各数均为十进制数,请采用8位二进制补码运算,并回答标志寄存器FLAGS中CF和OF的值,运算结果所代表的十进制数是多少?如果用16位二进制补码运算,其结果所代表的十进制数是多少?FLAGS中CF和OF的值呢?(1)85+69 (2)85+(-69) (3)85-(-69) (4)85-(69)6、下面的程序能否输出字符0~9?如不能,应如何修改?CODE SEGMENTASSUME CS:CODEK=30HJ DW 0START: MOV DL, KMOV AH, 2INT 21HK=K+1INC JCMP J, 10JNZ STARTMOV AH, 4CHINT 21HCODE ENDSEND START7、在宏定义中有时需要LOCAL 伪操作,为什么?8、根据以下要求写出输入输出指令:(1) 读61H端口(2) 写20H端口(3) 读3F8H端口(4) 写3F9H端口9、主程序从键盘输入一个八位的二进制数,对其作求补码操作,用子程序对求补后的值以二进制形式显示。
(正数的补码=输入)10、编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字母。
四川大学2018—2019学年第2学期《汇编语言程序设计》考试试卷(A卷)参考答案1、计算机由中央处理器CPU,存储器,输入系统,输出系统组成,由系统总线连接在一起。
CPU包括运算器和控制器,运算器执行指令,控制器负责计算机的控制。
2017年四川大学874答案解析

数据结构与算法一单项选择题1.[解析]:C. 数据元素之间有三种关系:线性表中数据元素关系为一对一,一个元素只可能有一个直接前驱和一个直接后继;树中数据元素关系为一对多,一个元素可能有一个直接前驱和多个直接后继;图中数据元素关系为多对多,一个元素可能有多个直接前驱和多个直接后继。
2.[解析]:C. 顺序表一般指数组,查找序号为i的元素只需按下标读取即可,与元素个数无关,这个就是顺序表的随机存取特性。
3.[解析]:B. A选项和D选项进出栈操作顺序栈会更方便一点,链栈还需申请内存空间或释放空间。
C选项,二者都会出现栈空的情况。
链栈不会出现栈上溢的情况,每次入栈都是动态分配一个结点空间,而顺序栈的空间是提前申请好的,运行时一般不可更改,所以可能会出现上溢,也就是栈满无法入栈的情况。
4.[解析]:D.略5.[解析]:B. 当基本有序情况下,插入排序迭代n次即可完成6.[解析]:C. 要使图连通,边数最少为顶点数减17.[解析]:B. 度为5,每个结点有5个孩子指针,共有n个结点,5*n个指针域,由树的性质:结点个数=边个数+1,所有实际在使用的指针只有n-1个,所有有4*n+1个空指针域8.[解析]:A. 已选取点集合为{1,2,3},B,C选项中的边会构成环路,D选项中(4,5)和已知点集合不相连,故也排除9.[解析]:A. 快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值都不小于基准值,如此作为基准的元素调整到排序后的正确位置。
递归快速排序,将其他n-1个元素也调整到排序后的正确位置。
最后每个元素都是在排序后的正确位置,排序完成。
所以快速排序算法的核心算法是分区操作,即如何调整基准的位置以及调整返回基准的最终位置以便分治递归。
10.[解析]:D. 该图若含有顶点个数大于1的强连通分量,则有环路,无法形成拓扑排序11.[解析]:C. wpl = (4+5+6)*2 + (2+3)*3 = 4512.[解析]:B. 中序遍历二叉排序树得到的是有序序列13.[解析]:C. n = n0+n1+n2+n3 = 1*n1 + 2*n2 + 3*n3 + 1得:n0 = n2 + 2*n3 + 1= 614.[解析]:B. 冒泡、插入、堆排序空间复杂度均为O(1),归并排序为O(n)15.[解析]:C. 这里注意一下队头指针和队尾指针的指向和常见的稍有不同,如下图,a为队次项,所以k = n^(1/2),17.[解析]:A. 画出无向图后。
四川大学Python程序设计期末考试考题A卷

1、利用所学知识在计算机屏幕上绘制一幅海上日出的图画。
2、编写一个GUI程序,在程序的主界面上放置三个按钮,分别是《绘制直线》、《绘制矩形》、《绘制圆形》。
当用户点击《绘制直线》按钮时,弹出一个新的窗口,在这个新窗口中让用户输入直线的起点和终点坐标,然后根据用户输入的坐标在这个新窗口绘制一条直线。
当用户点击《绘制矩形》按钮时,弹出一个新的窗口,在这个新窗口中让用户输入矩形的左上角和右下角的坐标,然后根据用户输入的坐标在这个新窗口绘制一个矩形。
当用户点击《绘制圆形》时,弹出一个新的窗口,在这个新窗口中让用户输入圆心的坐标和圆的半径,然后根据用户输入的坐标在这个新窗口绘制一个圆形。
3、编写一个程序模拟掷骰子,使用随机数生成器来产生介于1和6之间的数字来表示投掷的骰子的哪一面向上,最后,使用tkinter模块中的Canvas控件绘制相应的骰子面。
图形可以参考下图:4、使用Account类来模拟一台ATM机。
创建一个有10个账户的数组,其id为0,1,…,9,并初始化为100元。
系统提示用户输入一个id,如果输入的id不正确,就要去用户输入正确的id。
一旦接受一个id就显示如下面运行实例所示的主菜单。
1表示查看当前的余额,2表示取钱,3表示存钱,4表示退出主菜单。
一旦退出,系统就会提示再次输入id。
所以,系统一旦启动就不会停止。
下图为查看余额和取款的示例。
编程实现上诉要求的功能。
Enter an id:4Main menu1:check balance2:withdraw3:deposit4:exitEnter a choice:1The balance is 100.0Main menu1:check balance2:withdraw3:deposit4:exitEnter a choice:2Enter an amount to withdraw:3。
2017高级语言程序设计考卷A及参考答案

…………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线……………………试卷装订线………………装订线内不要答题,不要填写考生信息………………试卷装订线……………………装订线………………装订线内不要答题,不要填写信息………………装订线…………武汉理工大学考试试题答案(A卷)2017 ~2018 学年1 学期高级语言程序设计课程二、程序阅读题(本大题共 6 小题,每小题4分,共24 分)1.332.73.924.215.46.14三、程序填空题(本大题共2小题,每空3分,共18 分)1.(1)j==i (2)k!=i && k!=j (3)100*i+10*j+k2.(1)month (2)table[i] (3)year%4==0 && year%100!=0 || year%400==0 四、程序编写题(本大题共 3 小题,每小题10 分,共30 分)1.#include <iostream>using namespace std;int main(){ int i,a,b,t,two=0,five=0;cin>>a>>b;for (i=a;i<=b;i++){ t=i;while (t%2==0){ two++; t=t/2; }while (t%5==0){ five++; t=t/5; }}cout<<(two>five?five:two)<<endl;return 0;}2.int fun(int x){int sum = 0;while (x != 0){sum = sum * 10 + (x% 10);x =x / 10;}return sum;}3.double average(LinkList head) {int n=0,s=0;LinkList p;if (head==NULL) return 0;p=head;while (p->next){s=s+p->data;n++;p=p->next;}return 1.0*s/n;}。
(完整word版)四川大学系统级编程-2017-A卷答案

2017F-SLP-A卷答案一.每题2分,共40分BACBD ACAACDADAB CBDBB二.每题5分,共10分int NegativeNum (int x){return ~((~x) &(~0x80000000));}int SetByte (int x,int n){return x|(0xFF 〈〈(n〈〈3));}三.共13分9分(每两个填空1分)+——-—--——--—--——-———-—-——-------—+|unknown | 0xffff1004+-—--——-—-—-—-—-——-—---———-—-—-—-+| 3 | 0xffff1000+—-—-—————--—-—-———-—--—-———---—-+|unknown |0xffff0ffc+------—-——-—-—-——--———--——-——---+| unknown |0xffff0ff8+—---———-——---—---—----————-———-—+|unknown |0xffff0ff4+——-—--—--—————-—-———-———————--——+| 2 |0xffff0ff0+---———-—-—--—-----———-——-———-——-+| 0x08048407 | 0xffff0fec+—----——--————---——-——-——-----—-—+|0xffff0ff8 |0xffff0fe8+-—--—-—-———----—--—-—--—--——--——+| unknown |0xffff0fe4+-----——--—------——--——--—-—-—---+| 1 | 0xffff0fe0+—-—--—--—---—————————--—-———-—--+| 0x08048432 | 0xffff0fdc+-———---——----—-----————--————---+|0xffff0fe8 |0xffff0fd8+-——--——--—-——-——-—-——-——-——-———-+|unknown |0xffff0fd4+-—-———-—-—-———--—--——----—-—-—-—+| 0 | 0xffff0fd0+-————--—--—--——--—--——----——————+| 0x08048407 | 0xffff0fcc+---——-—-—--——-—————-—---—----—-—+| 0xffff0fd8 | 0xffff0fc8+-——-—--————-———-—-————-—----—-——+| 0 | 0xffff0fc4+--———-—-----————-—-----——--—-——-+| unknown | 0xffff0fc0+--—---—--———--—--——-——--———--———+esp: 0xffff0fcc (2分)ebp:0xffff0fd8 (2分)四.共12分This problem illustrates some of the subtle effects of memory aliasing, and it cannot be used to swap two values (2 scores).As the commented code below shows,the effects will be to set the value at xp to zerowhen xp equals to xy。
四川大学《程序设计语言(1)1347》17春在线作业1

一、单选题(共 20 道试题,共 60 分。
) V 1. 十进制数2403转换成十六进制数为()A. 963B. 369C. 953D. 3592. 下面程序的运行结果是()。
x = 5:y = 3 PRINT x = y ENDA. 0B. 5C. 3D. –13. 针对QBASIC语言的特点,下面的叙述正确的是()。
A. 一个程序中,可以没有主程序模块,但不能有两个以上主程序模块。
B. 行号和标号由字符序列后加上“:”组成,行号为纯数字。
C. 语句都是由语句定义符和语句体构成。
D. 每一个模块必须有一个结束语句。
4. 在下面四个字符串中,哪一个是合法的字符串常量()。
A. dB. “ 169 ”C. 计算机D. 1695. 以下四个变量名中,哪一个是非法的变量名()。
A. foodB. areaC. 3moonD. b16. 下列数据中,不合法的C语言实型数据的是()A. 0.123B. 123e3C. 2.1e3.5D. 789.07.A. 7 7B. 34 7C. 7 34D. 34 348. 在C程序中,在求逻辑值时,用()表示逻辑表达式值为“真”,又用()表示逻辑表达式值为“假”。
()A. 1 0B. 0 1C. 非0 非0D. 1 19. 下面四个表达式中,其值为0的是()。
A. 3 / 4B. 4 MOD 3C. 3 4D. 3 MOD 410. 下列叙述中正确的是()A. C语言编译时不检查语法B. C语言的子程序有过程和函数两种C. C语言的函数可以嵌套定义D. C语言的函数可以嵌套调用11. 下面能正确表示八进制数的是()A. 0x16B. 029C. -114D. 03312. 下面有关for循环的正确描述是()A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判断表达式C. 在for循环中,不能用break语句跳出循环体D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来13. 下列可用于C语言用户标识符的一组是()A. void, define, WORDB. a3_b3, _123,CarC. For, -abc, IF CaseD. 2a, DO, sizeof14. 下列说法中错误的是() A)只能在循环体内使用break语句 B)在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环 C)在while和do…while 循环中,continue语句并没有使整个循环终止 D)continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环判断A. 只能在循环体内使用break语句B. 在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环C. 在while和do…while循环中,continue语句并没有使整个循环终止D. continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环判断15. 以下说法正确的是()A. C语言程序总是从第一个的函数开始执行B. 在C语言程序中,要调用函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分16. 语句 PRINT “3.5” +“6.5” +“42”执行的结果是()。
操作系统A卷试题及答案_2007-11

四川大学期末考试试题A 卷(闭卷)(2007-2008学年第1学期)课程号: 31112520 课程名称: 软件开发环境工具(A 卷) 任课教师: 黄 武适用专业年级: 软件工程学院 2005级 学号:姓名:一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分 1.执行者(Actor )与用例之间的关系是( C ) (A )包含关系(B )泛化关系(C )关联关系(D )扩展关系2.在类图中,下面哪个符号表示继承关系( C3.在类图中,“ #”表示的可见性是( B ) (A )Public(B )Protected(C )Private(D )Package4.在类图中,下面哪个符号表示接口( C )5.UML 类图包含多少个抽象层次( B ) (A )1(B )3(C )5(D )76.下面哪个视图属于UML 语言的交互图( D ) (A )行为图(B )状态图(C )实现图(D )顺序图7.UML 语言包含几大类图形( B ) (A )3(B )5(C )7(D )98.OOSE 方法是由下面哪位科学家提出的( D ) (A )Booch(B )Rumbaugh(C )Coad(D )Jacobson(B)(A)(D)(B) (A) (D)9.下面那个类图的表示是错误的( D )10.什么概念被认为是第二代面向对象技术的标志( A ) (A )用例(B )UML 语言(C )活动图(D )组件图11.下面哪个符号代表包图( A )12.下面哪个符号表示链式状态( D )13.生命线是UML 视图中哪个图形的组成部分( D ) (A )类图(B )状态图(C )活动图(D )顺序图14.在UML 的顺序图中,通常由左向右分层排列各个对象,正确的排列方法是( A ) (A )执行者角色 控制类用户接口 业务层 后台数据库 (B )执行者角色 用户接口 控制类业务层后台数据库 (C )执行者角色 控制类用户接口 后台数据库 业务层 (D )执行者角色用户接口业务层控制类后台数据库15.在UML 协作图中,有多少种关联角色的构造型( C ) (A )1(B )3(C )5(D )716.多对象是UML 哪个视图中的概念( C ) (A )类图(B )状态图(C )协作图(D )组件图17.在类图中,那种关系表达总体与局部的关系( D ) (A )泛化(B )实现(C )依赖(D )聚合18.在UML 中,接口有几种表达方式( A ) (A )2(B )4(C )6(D )8(B)(A)(C)(D)(B) (A) (C) (D)(B)(A) (C)(D)19.下面哪个图形代表活动( D )20.下面哪个UML 视图是描述一个对象的生命周期的( B ) (A )类图(B )状态图(C )协作图(D )顺序图二、多项选择题(本大题共10小题,每小题2分,共20分 )在每小题列出的五个备选项中有二个至五个是符合题目要求的,请将其代码填写在题后的括号内。
2017春操作系统期末考试试题及答案A卷

四川大学期末考试试题(闭卷)(2016——2017学年第 2 学期)A卷课程号:304019030 课序号:课程名称:操作系统原理任课教师:成绩:共享内存,又可写入的目的。
实现写时复制,需要操作系统支持请求分页机制,并在缺页中断处理程序做相应的处理。
2.什么是系统颠簸(抖动,thrashing)?请解释产生的原因,以及解决该问题的方法。
答:系统颠簸是指系统频繁地忙于页面换出换入。
产生的原因是系统物理内存不足,导致缺页中断发生频率过高。
解决方法是增加系统内存,或者减少并发的进程数量。
3.请简单阐述输入/输出控制的几种方式。
答:轮询,中断,DMA,通道4.在现代操作系统中,采取哪些措施来隔离不同的进程,让进程不能破坏操作系统本身,也不能破坏其他的进程?答:内核态、用户态;各种陷阱;系统调用;分页内存管理,独立的逻辑地址空间5.请比较信号量和条件变量之间的区别。
答:信号量有值而条件变量无值;执行wait操作时,信号量会先减少值,小于0才会阻塞进程,而条件变量则直接阻塞进程;执行signal操作时,信号量会增加值,当小于等于0时唤醒一个进程,而条件变量直接唤醒一个阻塞的进程。
三、在下图所示的汽车过窄桥的例子中,会发生死锁现象。
(12分)a)请描述该例子中死锁发生的4个必要条件b)给出2种死锁预防的解决方案,并指明是摒弃的哪个条件。
答:a) 互斥:一段桥面一个时刻只能允许一辆车占用;非抢占:一辆车占用了一段桥面不能被剥夺;占有并等待:右边车占用了右边的桥面,申请左边的桥面;循环等待:左边的车等待右边车释放右边的桥面,反之亦然。
b) 互斥:将桥面修宽,双向2车道;非抢占:桥上安装一个吊车,将死锁的车子吊起来;占有并等待:一次只能一辆车上桥四、很多操作系统和硬件环境提供CAS(CompareAndSet,TestAndSet)原语。
CAS原语可以用于实现并发环境下的原子性操作。
CAS原语的伪代码如下,其含义为,比较a指向的内容和b是否相同,如果相同,则设置*a为c,并返回1,否则返回0。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2017F-SLP-A卷答案
一.每题2分,共40分
BACBD ACAAC
DADAB CBDBB
二.每题5分,共10分
int NegativeNum (int x) {
return ~((~x) & (~0x80000000));
}
int SetByte (int x,int n) {
return x|(0xFF <<(n<<3));
}
三.共13分
9分(每两个填空1分)
+--------------------------------+
| unknown | 0xffff1004
+--------------------------------+
| 3 | 0xffff1000
+--------------------------------+
| unknown | 0xffff0ffc
+--------------------------------+
| unknown | 0xffff0ff8
+--------------------------------+
| unknown | 0xffff0ff4
+--------------------------------+
| 2 | 0xffff0ff0
+--------------------------------+
| 0x08048407 | 0xffff0fec
+--------------------------------+
| 0xffff0ff8 | 0xffff0fe8
+--------------------------------+
| unknown | 0xffff0fe4
+--------------------------------+
| 1 | 0xffff0fe0
+--------------------------------+
| 0x08048432 | 0xffff0fdc
+--------------------------------+
| 0xffff0fe8 | 0xffff0fd8
+--------------------------------+
| unknown | 0xffff0fd4
+--------------------------------+
| 0 | 0xffff0fd0
+--------------------------------+
| 0x08048407 | 0xffff0fcc
+--------------------------------+
| 0xffff0fd8 | 0xffff0fc8
+--------------------------------+
| 0 | 0xffff0fc4
+--------------------------------+
| unknown | 0xffff0fc0
+--------------------------------+
esp: 0xffff0fcc (2分)
ebp: 0xffff0fd8 (2分)
四.共12分
This problem illustrates some of the subtle effects of memory aliasing, and it cannot be used to swap two values (2 scores).
As the commented code below shows, the effects will be to set the value at xp to zero when xp equals to xy.
1*xp = *xp + *xp; // 2x
2*xp = *xp - *xp; // 2x – 2x = 0
3*xp = *xp - *xp; // 0 – 0 = 0 (4 scores)
This example illustrates that our intuition about program behavior can often be wrong. We naturally think of the case where xp and yp are distinct but overlook the possibility that they might be equal. Bugs often arise due to conditions the programmer does not anticipate.
五.
1.(5分)答:如编译执行环境是逐行访问内存,如C语言,则此代码有良好的空间局部性。
如果如编译执行环境是逐列访问内存,如matlab,且N较大,则该代码需跨行读取数据,则此代码空间局部性就较差。
2. (10分)
A.16*16*4
B.256, 每行一个cold miss
C.25%, 每4个整数产生一个cold miss
D.25%, cache 大小没有什么影响
六.
1. 【备注:非标准化考试】
1)CSAPP:
中文:computer system: a programmer’s perspective
英文:深入理解计算机系统
2)可以(不限于)从下面的角度
A)整个计算机系统的核心部件:软件(如编译器和OS)和硬件(CPU、存储系统登)
B)程序的生命周期
2.
1)概念:An exception is an abrupt change in the control flow in response to some change in the processor’s state.(说明:以上是教材/授课课件的答案。
也可以用中文)
2)类型:四个
英文:interrupt,trap,fault,abort
中文:中断,陷入,故障,终止
3)画图:可以用下面的任何一个
A)
B)。