A、自动变量
B、静态变量
C、外部变量
D、寄存器变量
第1题
[说明]
在多道程序系统中,进程是并发执行的。这些进程间存在着不同的相互制约关系,主要表现为同步和互斥两个方面。信号量机制是解决进程间同步与互斥的有效方法。下面是信号量应用实例。
下图所示代码是在μC/OS-II操作系统上运行的一个应用的主函数。该函数创建了任务Task1和Task2,其中Task1实现从键盘读入一个字符的功能,Task2将该字符输出到屏幕,它们使用信号量和一个公共变量buffer来传递该字符。
主函数、Task1和Task2中所调用的函数原型说明如下:
a.创建一个信号量:OS EVENT*OSSemCreate(INT16Uvalue);
b.创建一个任务:INT8U OSTaskCreate(void(*task)(void*pd),void*pdata,OS_STK *ptos,INT8U prio);
c.开始执行多任务:void OSStart(void);
d.从键盘读入一个字符:char scanc();
e.输出一个字符至屏幕:void printc(char ch);
f.发出一个信号量:INT8U OSSemPost(OS EVENT*pevent);
g.等待一个信号量:void OSSemPend(OS_EVENT*pevent,INT16U timeout,INT8U *err)
请简述什么是临界资源?什么是临界区?访问临界资源应遵循哪些原则?
第9题
猜数游戏:程序利用随机函数产生一个[1,10]内的随机整数,让用户反复猜测,直到猜对为止,程序能提示猜数范围,并统计猜数次数。 甲乙二人先后进行猜数游戏,记录二人猜中花费的次数。比较二人次数,次数少的获胜。当二者猜的次数相同,则输出 平局。 请按要求编程: 1、补充完善下面的int guess( )函数,函数的功能是: 随机函数先产生一个[1,10]内的随机整数,让用户输入猜测的数,当输入的数比随机数大时,输出提示“大了”;当输入的数比随机数小时,输出提示“小了”,让用户反复猜,直到猜对为止。该函数要求记录猜数的次数。返回值为猜中的数。 #include <stdio.h> #include <stdlib.h> #include <time.h> int guess() { int magic; //magic用于保存随机数 srand(time(0)); //用系统时间初始化随机函数 magic=rand()%10+1; //产生一个1到10的随机整数 .......... //请完善函数的功能 } 2、编写main()函数,完成如下功能: 输出提示:请甲开始猜数。 调用guess函数,获得甲猜中的数、猜的次数,并输出。 输出提示:请乙开始猜数。 调用guess函数,获得乙猜中的数、猜的次数,并输出。 比较二人次数,次数少的获胜。当二者猜的次数相同,则输出 平局。 输入、输出样例:提示: 1、随机函数每次产生的数不同,甲、乙要猜的数可能不同 2、guess函数只能用return语句返回一个值(猜中的数),猜中的次数无法直接return,可以设计1个全局变量,用于保存每次调用guess求出的猜中次数。 (可参阅附加例题“歌唱比赛程序“中全局变量min或max的作用) (也可参考本周课件“变量的作用域”中第一个学习内容“请先动手做2---”中的例题。)
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!