通过海量题库、编程比赛和实时排名,系统化提升您的编程能力。
"考研真题" 试卷中 2023年考研408计算机统考真题在线评测(附答案) 中有题目如下:
第1题
(7分)采用swap 指今实现进程互斥。lock为TRUE时,不可进入临界区; lock 为FALSE 时,可以进入临界区。某学生写的代码如下:
bool lock = FAlSE;//共享变量 ...... // 进入区 bool key = TRUE; if (key == TRUE) swap (key,lock); // 临界区 ...... // 退出区 lock=TRUE; ......
newSwap (boola, bool *b){ bool temp =*a; *a=*b; *b=temp; }
(1)请修改代码,正确实现互斥(不增加语句条数)
(2)是否可以用函数newSwap(&a&b)代替swap 指令?为什么?
[参考答案]
(1)修改进入区代码: if (key == TRUE) 改为 while (key == TRUE)(2分)
修改退出区代码:lock=TRUE; 改为 lock=FALSE;(2分)
(2)不可以代替swap指令。(1分)
因为 newSwap函数的执行不具备原子性,执行newSwap 的过程中,可能会切换为其他线程,从而导致无法正确实现线程互斥。(2分)
所属试卷:2023年考研408计算机统考真题在线评测(附答案)
下列运算符中,优先级最高的是( )。
信息隐蔽的概念与下述哪一种概念直接相关( )。
若要使用C数学库中的sin函数,需要在源程序的头部加上
给定程序中,函数fun的功能是:计算下式前n项的和作为
有以下程序:程序的运行结果是。
有以下程序:程序运行后的输出结果是( )。
已知函数定义def demo(x,y,op): ret
可以使用内置函数_______查看包含当前作用域内所有
以下程序时将矩阵a、b的和存入矩阵c中并按矩阵形式输出
以下为 u盘插入usb接口后执行fdisk –l的结果
在 Linux 系统中,压缩文件后生成后缀为.gz文件
RedHat Linux使用 ls -all 命令将列
要强制杀死某个进程用什么命令
select 'Abc'='abc';的结果为
单链表的存储密度( )。
删除数据表中的一条记录用以下哪一项( )
使用CREATE TABLE语句的( )子句,在创建基
如图,2段链路的数据传输速率为100Mbps,时延带宽
C语言中,数组元素的下标下限为_____。
假设输入的所有数的绝对值都不超过1000,程序总是会正
(RMQ 区间最值问题)给定序列a0,⋯,an-1,和
以下选项中叙述错误的是
函数fun的功能是:在有n个元素的结构体数组std
一只小猪要买 N件物品 (N 不超过 1000)。它要
对于一个 1到 n的排列 P(即 1到 n中每一个数在
输入1:6 10 1 6 4 5 3 2输出1:___
下面的故事与( )算法有着异曲同工之妙。从前有座山,山
若有变量 int a, float x, y, 且 a
输入:4 61 2 102 3 203 4 304 1
(烽火传递) 烽火台又称烽燧,是重要的军事防御设施,一
更多选择题
更多填空题
第十章 C++流
第九章 C++模板
第八章 C++运算符重载
C++语言程序设计真题5
C++语言程序设计真题4
C++语言程序设计真题3
C++语言程序设计真题2