1、计算机水平考试初级程序员 2005 年上半年下午真题及答案解析(总分:120.00,做题时间:150 分钟)一、试题一至试题三是必答题,试题四至试题五选(总题数:8,分数:120.00)试题一(15 分,每空 3 分) 阅读以下说明和流程图,回答问题 1 至问题 2,将解答填入答题纸的对应栏内。 说明 设 8 位二进制代码 B0B1.B7 中的最高位 B0 为奇偶校验位。对于任何给定的代码B1B2.B7, 可按下式计算偶校验位: B0 = B1B2.B7 其中,“”表示“异或”运算。 下面的流程图描述了计算偶校验位的过程。 流程图 (分数:15.00)(1).问题 1 将流程图中的(1)(4)
2、处补充完整。(分数:7.50)_(2).问题 2 若按下式计算奇校验位,则上述流程图中的(1)处应填 (5) 。 B0 = B1B2.B71(分数:7.50)_1.试题二(15 分,每空 3 分) 阅读以下函数说明和 C 语言函数,将应填入 (n) 处的字句写在答题纸的对应栏内。 函数 2.1 说明 函数 int fun1(int m,int n)的功能是:计算并返回正整数 m 和 n 的最大公约数。 函数 2.1 int fun1(int m,int n) while( (1) ) if ( m n ) m = m - n; else n = n - m; (2) ; 函数 2.2 说明 函
3、数 long fun2(char *str)的功能是:自左至右顺序取出非空字符串 str 中的数字字符形成一个十进制整数(最多 8 位)。 例如,若字符串 str 的值为“f3g8d5.ji2e3p12fkp”,则函数返回值为 3852312。 函数 2.2 long fun2(char *str) int i = 0; long k = 0; char *p = str; while ( *p != 0 else month = m_month; ; Date(); bool IsLeapYear() return (year % 4 = 0 ; int CaculateDays() swi
4、tch( (3) ) case Feb: if( (4) ) return 29; else return 28; case Jan: case Mar: case May: case Jul: case Aug: case Oct: case Dec: return 31; case Apr: case Jun: case Sep: case Nov: return 30; ; private: int year; Month month; ; void main() Date day(2000,Feb); cout n ) m = m - n; else n = n - m; (2) ;
5、函数 2.2 说明 函数 long fun2(char *str)的功能是:自左至右顺序取出非空字符串 str 中的数字字符形成一个十进制整数(最多 8 位)。 例如,若字符串 str 的值为“f3g8d5.ji2e3p12fkp”,则函数返回值为 3852312。 函数 2.2 long fun2(char *str) int i = 0; long k = 0; char *p = str; while ( *p != 0 import java.applet.*; public class HelloApplet extends (1) public void paint( (2) )
6、g.drawString(message,10,20); message = “welcome back ! “; public void (3) () message = “Welcome ! “; private (4) message; HTML 文档 Test HelloApplet 小程序(分数:15.00)_正确答案:(1) Applet (2) Graphics g (3) init (4) String (5) HelloApplet.class)解析:6.试题七(15 分,每空 3 分) 阅读以下说明及 Visual Basic 程序代码,将应填入(n)处的字句写在答题纸的对
7、应栏内。 说明 某个文本文件中存放了若干个非零数值有效数据,每个数据占一行,最后一行以数字“0”作为结束标志。下面的程序用于计算该文件中这些数据之和,其运行窗口如下: (分数:15.00)_正确答案:(1)Drivel .Drive (2)Dirl .Path (3)fso (4)MyTextFile ( 5)d0 )解析:7.试题八(15 分,每空 3 分) 阅读以下说明和 C+程序,将应填入 (n) 处的字句写在答题纸的对应栏内。 说明 下面程序的功能是计算并输出某年某月的天数。 C+程序 #include using namespace std; (1) MonthJan, Feb, M
8、ar, Apr,May,Jun, Jul, Aug, Sep,Oct,Nov,Dec; class Date public: Date(int year, Month m_month) (2) = year; if(m_month Dec) month = Jan; else month = m_month; ; Date(); bool IsLeapYear() return (year % 4 = 0 ; int CaculateDays() switch( (3) ) case Feb: if( (4) ) return 29; else return 28; case Jan: case Mar: case May: case Jul: case Aug: case Oct: case Dec: return 31; case Apr: case Jun: case Sep: case Nov: return 30; ; private: int year; Month month; ; void main() Date day(2000,Feb); cout year (3) month (4) IsLeapYear( ) (5) CaculateDays)解析: