[28][13][单选]学校教务处在学生选课系统中编写了如下程序供学生在网上使用:
PROCESS P(i,j // 学生学号为 i,课程号为 j int r; // 局部变量 r = search(i; // 找到课程 j 并返回该课程学生余量 if (r > 0 { confirm(i,j; // 确认学生选课成功,记录 r = r - 1; modify(j; // 将课程的余量修改为 r printf("恭喜您选课成功!"; } else printf("对不起,没有该课程或选课已满。"; 请问,该选课程序在使用时
选课学生少于选课系统可能发生死锁
选课学生能够正常选课,选课数与初始相符
选课学生数可能会超出课程容量
选课学生选不了课,系统会报错
答案
选课学生数可能会超出课程容量
解析
根据编写的程序可知,判断课程是否可选,主要取决于局部变量 r 的值。当学生在选课的时候,只要选了所选的课程,课程余量就需要减 1,不能等到学生选择成功后才修改课程余量的值,否则选课学生数可能会超出课程容量,故答案选 C。
转载请注明出处。