程序员历年答案分析2005---2011年全部详细答案(11)
时间:2025-04-19
时间:2025-04-19
续的两个条件:一是位置仍然为空(a[i][j+k]==0),二是找到的空座位数小于r,所以(2)
空应填“k<r”。
If(k>=R) { /*查找第i排连续的R个空座位*/
For(c=0;c<R;c++) { /*查找其余的R*(R-1)个座位*/
For(t=1;t<R;t++)
如果在第i排找到了连续的R个座位,当然也就需要继续查找剩余的R*(R-1)个座位。
本题在此处采取的是两个for循环的嵌套,外循环次数为R,内循环次数为R-1,当无法找
到连续的空位,或连续空位列数不够时,循环都要停止。在此基础上,也就很容易通过简单
的分析得出(3)(4)空的答案。
If(a[_(3)_][j+c]!=0) break;
If (t<R) break;
}/*for*/
If(_(4)_)FOUND=1;
}/*if*/
也就是说该程序在此步骤是从第i排第j列开始查找的,所以此时空座位元素的下标应
为[i+t][j+c],即(3)空应填“i+t”。接下来的程序是用来判断是否找到了满足要求的R*R
空座位方阵。找到了将FOUND值设为1.显而易见,当外循环的循环变量c等于R时,说明
循环没有被中途终止,即找到了所需方阵。所以(4)空应填“c==R”。
_(5)_
}/*while*/
(5)空出现在while循环的最后一句,通读程序,我们发现整个过程中,while循环的循
环变量j,始终未发生变化,要使while循环继续下去,此处应填“j++”。
●试题八
【试题答案】(1)enum(2)this->year(3)month(4)IsleapYear(5)CaculateDays
【考查知识点】本题考查的是C++语言程序编写。
【解析】通读程序后,我们逐空加以分析:
(1)空所在的语句是用来定义变量Month的,根据语句中所列举的成员,我们可以看出这
是一个枚举型变量,所以(1)空应填如C++枚举变量的关键字“enum”。
(2)空所在的语句是Date类的构造函数,结合上下文可知他是对Date类的成员变量year
及month的定义初值。因为成员变量year的名称和传入参数的名称相同。为在构造函数中
使用私有变量year必须加上this指针所以此处应填写“this->month”。
(3)空是处于成员方法CaculateDates中的switch语句。根据后面的case语句的值可知,
它是根据month变量的值来进行条件分支,所以应填入“month”。
(4)空的作用是确定二月的天数,所以他首先应判断是否为闰年,为了实现这个判断,前
面已经定义了成员方法IsLeapDays,所以此处直接调用即可,即(4)空填入“IsleapYear”。
(5)空在主程序中,他首先定义了一个Date对象,然后输出其天数,这里显然调用的是前
面定义的成员方法CaculateDays,所以此处应填“CaculateDays”。
2005年下半年试题解析
上午试题解析
●试题答案(1)C
【考查知识点】本题考查的是对Word的应用。
【解析】该按钮是Word中的打印预览按钮。
●试题答案(2)C