1、程序员下午试题2006下半年答案真题 120填空题第1题:参考答案:(1)转第七步 (2)栈S空,或等价的文字描述 (3)Gx,ynewcolor,或Gx,y=newcolor,或等价的文字描述 (4)第三步 (5)可以详细解答:第2题:参考答案:(1)!feof(fp) (2)in & stri!=0,或其等价形式 (3)tag=1 & tag=3,或其等价形式 (4)q+,或其等价形式 (5)candidatei+,或其等价形式详细解答:第3题:参考答案:(1)M.cols (2)M.rows (3)cpot0=0,或其等价形式 (4)cpotj-1+numj-1,或其等价形式 (5)M.
2、datat.c,或其等价形式详细解答:第4题:参考答案:(1)对文字标签中的文字,分别控制其粗体、斜体和下划线设置;或含义相同的文字描述 (2)将该文本框清空:弹出对话框,提示重新输入:光标定位于该文本框中;或含义相同的文字描述 (3)a(c)+a(c-1) (4)StrTemp (5) a(c)详细解答:试题四 本题考查Visual Basic中常用控件的属性设置及事件处理。 对于同一框架中的一组单选按钮,只能有一个被选中,用户选中一个时,另一个就自动呈现取消选中状态。这种效果是系统自动赋予的,无须编程。对于复选框,则可以同时选中多个,每个复选框是独立选择的,单击复选框就是改变该复选框的选中
3、状态。因此,复选框的Click事件的程序代码中,还需要判断是选中还是取消选中。 单选钮的属性为Value,其值为True表示选中,为False表示未选中(默认)。 复选框的属性为Value,其值为0表示未选中(默认),1表示选中,2表示禁用。 fontBold、fontltalic和fontUnderLine分别表示文字的粗体属性、斜体属性和下划线属性,因此应用4.1中,复选框chk1、chk2、chk3分别控制文字标签中文字的粗体、斜体和下划线设置。 应用4.2程序代码的功能是:若在文本框Txt1中输入的数值小于0或大于100,当光标离开此文本框时,将该文本框清空,弹出对话框并提示重新输入,
4、光标定位于该文本框中;否则,将其值复制到文本框Txt2中。 应用4.3在窗体中显示杨辉三角(每一行都是二项式展开的系数),观察元素的值可知,值不等于1的元素由其左上角和右上角的元素相加得到。例如,若已经计算出第四行的所有元素,如下所示,然后需求出第五行的所有元素,每行的元素存储在一维数组a中。 a(1) a(2) a(3) a(4) 第四行:1 3 3 1 第五行上的元素自左至右表示为a(1)、a(2)、a(3)、a(4)、a(5),如下所示。 a(1) a(2) a(3) a(4) 第四行: 1 3 3 1 第五行:1 4 6 4 1 a(1) a(2) a(3) a(4) a(5) 先设置
5、最后一个元素a(5)等于1,再根据第四行上的a(4)和a(3)求出第五行上的a(4), 根据第四行的a(3)和a(2)求出第五行上的a(3),依此类推,可求出第五行的每个元素(每行的第一个元素等于1,无需另外计算)。 推广至其他行,可计算出杨辉三角中的每个数并以串的方式输出,对应的程序代码如下: For j=2 To 9 计算出第2行到第9行的每个数并输出 a(j)=1 每行的最后一个数为1 For c=j-1 To 2 Step-1 a(c)=a(c)+a(c-1) 计算出值不等于1的元素 Next StrTemp= 字符串初始化,每行所有数串接成一个字符串输出 For C=1 To j S
6、trTemp=StrTemp & Str(a(c) & Space(5-Len(Str(a(C) Next CurrentX=(ScaleWidth-TextWidth(StrTemp)/2 Print StrTemp Next第5题:参考答案:(1)stud_infoi.link,或其等价形式 (2)!strcmp(p-cname,kc),或其等价形式 (3)sum+p-grade,或其等价形式 (4)*num=count,或其等价形式 (5)count!=0,或count0,或其等价形式详细解答:试题五 本题考查链表的查找运算。 函数time(char kc,int*num)的功能是统计选
7、修了课程名为kc的学生的人数,并返回该课程的平均成绩(若无人选修该课程,则平均成绩为0),参数num返回选修课程 kc的学生人数。 函数中用count计算选修课程kc的人数、用sum记录学生该课程的成绩总和除以学生人数即可得到平均成绩)。 stud_info为一个全局数组,stud_info0是第0个学生的信息,stud_info1是第1个学生的信息,依次类推。 对于每个学生,用一个单链表存储其选修的课程及成绩,链表的头指针为smd infoi link,显然,应遍历为每个学生建立的单链表。空(1)处应填入“stud infoilink”。 对于链表中的一个结点,应查看其课程名是否等于给定的课
8、程名kc,若相等,则将其成绩累加至sum。因此空(2)处应填入“!strcmp(p-cname,kc)”,空(3)处应填入“sum+p-grade。 由于需要参数*num返回选修课程比的人数,所以空(4)处应填入“*num=count”。 平均成绩等于成绩总和除以选课人数,因此,选课人数应不等于0,所以空(5)处填入“count0”或“count!=0”。第6题:参考答案:(1)virtual void (2)Decorator(t) (3)Decorator(t) (4)&f (5)&a详细解答:试题六 本题实际上使用了设计模式中的Decorator模式。 从代码可以分析得出,类SalesT
9、icket完成了票据正文的输出,FootDceorator和 HeadDecorator类都继承了Decorator,Decorator继承SalesTicket,FootDecorator和HeadDe- corator类在构造函数的时候都需要对其父类进行初始化,因此,空(2)和(3)应为 Decorator(t);这些类中都具有printTicket方法,根据SalesTicket类中方法的定义可以得出,此方法的返回值为void类型,分析主程序中h.printTicket()可以输出“这是票据的台头!这是票据正文!这是票据的脚注!”的结果,并且考虑到h.printTieket()的执行路径
10、为先执行cout这是票据的台头!第7题:参考答案:(1)x,Lasty (2)(i+1),或其等价形式 (3)(T-20)/180,或其等价形式 (4)ShpMeter.Top+ShpMeter.Height (5)200-T详细解答:第8题:参考答案:(1)super(t) (2)super(t) (3)new FootDecorator(new SalesTicket() (4)printTicket() (5)new HeadDecorator(null)详细解答:试题八 本题中的类HeadDecorator和FootDecorator都继承了Decortator类,因此在构造函数中需要
11、对Decorator类进行初始化,所以空(1)和(2)处应该为super(t)。类Main中空(3)和(4)处程序代码的输出为“这是票据的台头!这是票据正文!这是票据的脚注!”,由于T是一个headDecorator类的实例,因此空(4)处一定是printTicket方法的调用,类headDecorator将输出“这是票据的台头!”后调用其父类的printTicket方法,而仅仅只有FootDecorator类可以输出“这是票据的脚注!”,因此,当前父类的具体实例对象应该为FootDecorator的实例,所以空(3)处应该为new(FootDecorator(new SalesTicket)。空(5)同空(3)原理相同,但由于不需要输出票据的正文,因此在构造HeadDecorator对象的时候其参数为null即可。更多试卷请见麦多课文库
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1