高手坐镇(11)

编程学堂

本期,我们主要解决全国计算机二级考试的相关疑难问题。求助信箱:pcw-chendx@vip.sina.com。

定时启动界面

QQ Lucky婷婷:小新哥哥,我在做模拟题时碰到一道难题,你帮我看看。大家都说你是高手中的高手,不要让我失望哟!题目如下所示:

阅读下面的程序段,然后简述该程序段所完成的功能。

Begin

Waitfor time '15:43'

Create View my_view

As Select order_date,book_number,book_id From orderform

Where book_number!< 25

End

该程序段的功能是:

编辑 陈邓新:妹子,这道题难不倒我^_^,我来给你简单分析一下题目的意思。

等到15:43时,显示界面my-View,该界面的数据来自数据库orderform表(查找book-Number不小于25的数据)。通俗地说,该程序段的功能是启动定时任务。

冲刺阶段怎么复习

QQ 4919**785:这段时间,我正在进行计算机二级考试的冲刺复习(C语言),想请教一下《电脑报》的高手,冲刺复习有什么需要注意的没有?还有,我是第一次参加这样的考试,给我分享一些考试经验吧!Thanks!

资深教师 李严同:我来谈谈吧。冲刺复习的时候,重点温习重要的知识点和以前做过的习题,这个时候最好不要再做大量的习题了,而是研究以前的习题,为什么会出错,现在重新做还会出错吗,等等。

通过近几年的观察,我列出了几个C语言必考的知识点:if与switch的转化、循环执行过程解读、数组元素与下标的使用、字符串排序、结构体综合应用、数组指针的使用(VB的必考知识点是载入控件、文件的状态、控件与文件的综合应用)。至于考试经验,我的总结如下:

上机:多模拟考试环境

最容易紧张的是上机考试,很多考生因为各种操作不当而出问题,多模拟考试环境,熟悉后就不会出现紧张的情况了。

笔试:按先易后难的规则答题

对考生而言,等级考试只有通过与不通过两种结果,因此不要纠结某些难题,确保所有较简单的题目全部做完、做好,只要这部分丢分少通过考试基本上就没有问题了。至于难题,有空余时间再考虑攻克。

为什么答案不是8

邮箱 Plyer:int a=1,b=2,c; c=a^(b<<2);,我计算这段程序的答案是8,可编译的结果是9,不知道哪里出错了?我在网上发帖没有人理,希望你们可以帮帮我!

资深教师 孙顾天:这是一道位运算题,梳理清楚它的内在逻辑就知道答案了。

先算括号内的数据,b换算成二进制是0000 0010,左移后变为0000 1000,然后再与a进行异或运算(参与运算的两个对应位相同,则为0,相异则为1),结果为0000 1001,换算成十进制数结果为9。

对于左移运算也可直接用此规则:左移1位相当于该数乘以2,左移2位相当于该数乘以4(2×2),依此类推。

统计各科成绩平均分

邮箱 看飞机:下图就是我要设计的程序(VB),作用是计算每门课程的平均分(平均分取整),并通过直方图显示出来。这道题我琢磨了好久,始终没有完整做出来,特来请教《电脑报》的老师!

11-f14-1-1.jpg

资深教师 孙顾天:你的代码我看了,存在一定的瑕疵,导致程序无法正常运行(本题主要考查文件的操作和图形控件的使用)。我将关键代码写给你(完整代码下载地址:http://www.icpcw.com/bzsoft):

Dim a(5, 10) As Integer

Dim s(5)

Private Sub Command1_Click()

Open App.Path & "\in5.txt" For Input As #1//导入成绩

For i = 1 To 5

For j = 1 To 10

Input #1, a(i, j)

Private Sub Command2_Click()

For i = 1 To 5

s(i) = 0

For j = 1 To 10

s(i) = a(i, j) + s(i)//计算成绩

Next j

s(i) = CInt(s(i) / 10)

Text1(i - 1) = s(i)

Private Sub Command3_Click()

For k = 1 To 5

Shape1(k - 1).Height = s(k) * 20

m = Line2.Y1

Shape1(k - 1).Top = Line2.Y2 - Shape1(k - 1).Height //运算

Shape1(k - 1).Visible = True

Next k

运算的优先级

邮箱 李优:*tmp++ = *p,*和++优先级是一样的。那么运算顺序是怎样的?我不是很明白!

资深教师 李严同:你都说了*和++优先级一样,那么结合顺序肯定是右结合,所以*tmp++=*p 就等于 *(tmp++)=*p 。这样梳理后就容易理解了吧!剩下的就好做了,你下来慢慢体会。