【计算机类职业资格】计算机水平考试初级程序员2007年上半年下午真题及答案解析.doc

上传人:eveningprove235 文档编号:1339340 上传时间:2019-10-17 格式:DOC 页数:11 大小:76KB
下载 相关 举报
【计算机类职业资格】计算机水平考试初级程序员2007年上半年下午真题及答案解析.doc_第1页
第1页 / 共11页
【计算机类职业资格】计算机水平考试初级程序员2007年上半年下午真题及答案解析.doc_第2页
第2页 / 共11页
【计算机类职业资格】计算机水平考试初级程序员2007年上半年下午真题及答案解析.doc_第3页
第3页 / 共11页
【计算机类职业资格】计算机水平考试初级程序员2007年上半年下午真题及答案解析.doc_第4页
第4页 / 共11页
【计算机类职业资格】计算机水平考试初级程序员2007年上半年下午真题及答案解析.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、计算机水平考试初级程序员 2007 年上半年下午真题及答案解析(总分:129.00,做题时间:90 分钟)1.B试题一/B 阅读以下说明和流程图,回答问题 1 和问题 2。 【说明】 为便于管理,每本正式出版的图书都印有国际标准书号。标准书号由“ISBN”和 10 个数字组成,其格式为:ISBN 组号-出版者号-书名号-校验码。其中,校验码是根据前面 9 个数字计算得到的,用于计算机自动校验。假设标准书号的 10 个数字依次是 a(1),a(2),a(10),则校验码 a(10)的设置应使 S=10*a(1)+9*a(2)+8*a(3)+1*a(10)能被 11 整除。如果校验码 a(10)应

2、设置成 10,则规定以“X”表示之。例如,信息处理技术员考试大纲的标准书号为:ISBN 7-302-11191-X。第 1 段上的数字“7”是国际 ISBN 中心分配给中国ISBN 中心管理的组号。第 2 段上的“302”表示清华大学出版社。标准书号的校验过程如图 1-1 所示,计算校验码的过程如图 1-2 所示,其中,Mod(S,11)表示 S 除以 11 得到的余数。 【流程图】 (分数:12.00)_2.【问题 2】 设“程序员考试大纲”标准书号前 9 个数字为 7-302-08493,请写出其校验码。(分数:12.00)_二、B试题二/B(总题数:1,分数:15.00)3.【说明】 下

3、面待修改的 C 程序完成的功能是:对于给定的一个长正整数,从其个位数开始,每隔一位取一个数字(即取其个位、百位、万位等数字),形成一个新的整数并输出。例如,将该程序修改正确后,运行时若输入“14251382”,则输出的整数为“4532”。 下面给出的 C 程序代码中有五个错误,请指出所有的错误。 【C 程序代码】 01 #include stdio.h 02 03 int main() 04 05 long n, num; 06 int i; 07 08 do 09 printf(“请输入一个正整数:“); 10 scanf(“%ld“, n); 11 while(n = 0); 12 k =

4、 1; 13 for (i = 1; n = 0; i+) 14 if (i % 2 = 1) 15 num= num+ (n % 10) * k; 16 k = k * 10; 17 18 n = n / 10; 19 20 printf(“新数据为: %d /n“,num); 21 return 0; 22 (分数:15.00)_三、B试题三/B(总题数:1,分数:15.00)4.【说明】 函数 count months(DATE start,DATE end)的功能是:计算两个给定日期之间所包含的完整月份数。 该函数先算出起止日期中所含的完整年数,再计算余下的完整月份数。 规定两个相邻年

5、份的同月同日之间的间隔为 1 年。例如,2007.5.302008.5.30 的间隔为 1 年。若相邻两年中前一年是闰年,并且日期是 2 月 29 日,则到下一年的 2 月 28 日为 1 年,即 2008.2.292009.2.28 的间隔为 1 年。 规定两个相邻月份的相同日之间的间隔为 1 个月,但需要特别考虑月末的特殊情况。例如,2007.1.292007.2.28 的间隔为 1 个月,同理,2007.1.302007.2.28、2007.1.312007.2.28 的间隔都是 1 个月。 计算起止日期间隔不足一年的完整月份数时,分如下两种情况。 (1)起止日期不跨年度。先用终止日期的

6、月号减去起始日期的月号得到月份数,然后再根据情况进行修正。例如,起止日期为 2008.3.312008.9.20,通过月号算出月份数为 6。修正时,通过调用函数 makevalid 将 2008.9.31 改为 2008.9.30,与终止日期 2008.9.20 比较后,将月份数修正为 5。 (2)起止日期跨年度。计算方法如下例所示:对于起止日期 2008.7.252009.3.31,先计算 2008.7.252008.12.25 的月份数为 5,再算出 2008.12.252009.3.25 的月份数为 3,因此 2008.7.252009.3.31 之间的完整月份数为 8。 日期数据类型定

7、义如下:typedef struct int year; int month; int day; /*日期的年号(4 位)、月和口号*/ DATE; 程序中使用的函数 cmp_date()、isLeap Year()和 makevalid()说明如下。 (分数:15.00)_四、B试题四/B(总题数:1,分数:15.00)5.【说明】 函数 sort (NODE *head)的功能是;用冒泡排序法对单链表中的元素进行非递减排序。对于两个相邻结点中的元素,若较小的元素在前面,则交换这两个结点中的元素值。其中,head 指向链表的头结点。排序时,为了避免每趟都扫描到链表的尾结点,设置一个指针 en

8、dptr,使其指向下趟扫描需要到达的最后一个结点。例如,对于图 4-1(a)的链表进行一趟冒泡排序后,得到图 4-1(b)所示的链表。 (分数:15.00)_五、B试题五/B(总题数:1,分数:15.00)6.【应用说明】 某应用的登录界面如下: (分数:15.00)_六、B试题六/B(总题数:1,分数:15.00)(以下试题六至试题八任选一题)阅读下列说明和 C+代码,请回答问题 1 至问题 3。【说明】已知下列程序运行时的输出应为:1:11:11:1【C+程序】01 #include iostream02 using namespace std;03 class Stock04 prote

9、ct:05 U (1) /U;06 Stock(iht n, int pr=1)07 shares = n; share_val=pr;08 ;09 voidStock();10 public:11 /成员函数12 void output()13 U(2) /U shares “:“ share val endl;14 15 private:16 /成员变量17 int shares;18 int share_val;19 ;2021 void main()22 Stock a(1); a.output();23 Stock b; b.output();24 Stock c = Stock()

10、; c.output();25 (分数:15.00)(1).【问题 1】请补齐下述代码中的空缺 1 和 2。(分数:5.00)_(2).【问题 2】类 Stock 的定义中有两处错误,请指出错误所在行号并给出该行修改后的完整结果。(分数:5.00)_(3).【问题 3】指出该代码是否存在内存泄漏。(分数:5.00)_七、B试题七/B(总题数:1,分数:15.00)7.【应用说明】 某交通灯演示程序启动后,其运行窗口中包括红绿灯标志以及当前红绿灯状态剩余秒数的动态显示(如下图)。红灯与绿灯持续的时间分别为 30 秒与 40 秒。持续时间结束时,立即变更红绿灯,并重新显示剩余秒数。 (分数:15.

11、00)_八、B试题八/B(总题数:1,分数:15.00)阅读以下说明和 Java 代码,请回答问题 1 和问题 2。【说明】己知类 Stock 和类 cxyjava 都定义在 cxyjava.java 文件中,类 Stock 的定义中第 14 行前共有四行出现了错误,将下面代码修改正确并完善后的输出结果为:0:01:23【Java 代码】01 public class Stock02 static 03 shares = 0;04 share val = 0.0;O5 06 public Stock()getData();07 public Stock(int n, iht pr=0)08 s

12、hares = n;09 share val = pr;10 getData();11 12 public void getData() 13 System.out.println(shares + “:“+share_val);14 15 private int shares;16 private int share_val;17 ;1819 public class cxyjava20 public static void main(String args) 21 Stock a =U (1) /U;22 Stock b = new Stock(1,23);23 /其他无输出代码省略24

13、25 (分数:15.00)(1).【问题 1】请指出错误所在行号并给出该行修改后的完整结果。(分数:7.50)_(2).【问题 2】请补齐第 21 行代码中的空缺。(分数:7.50)_计算机水平考试初级程序员 2007 年上半年下午真题答案解析(总分:129.00,做题时间:90 分钟)1.B试题一/B 阅读以下说明和流程图,回答问题 1 和问题 2。 【说明】 为便于管理,每本正式出版的图书都印有国际标准书号。标准书号由“ISBN”和 10 个数字组成,其格式为:ISBN 组号-出版者号-书名号-校验码。其中,校验码是根据前面 9 个数字计算得到的,用于计算机自动校验。假设标准书号的 10

14、个数字依次是 a(1),a(2),a(10),则校验码 a(10)的设置应使 S=10*a(1)+9*a(2)+8*a(3)+1*a(10)能被 11 整除。如果校验码 a(10)应设置成 10,则规定以“X”表示之。例如,信息处理技术员考试大纲的标准书号为:ISBN 7-302-11191-X。第 1 段上的数字“7”是国际 ISBN 中心分配给中国ISBN 中心管理的组号。第 2 段上的“302”表示清华大学出版社。标准书号的校验过程如图 1-1 所示,计算校验码的过程如图 1-2 所示,其中,Mod(S,11)表示 S 除以 11 得到的余数。 【流程图】 (分数:12.00)_正确答案

15、:()解析:(1)(11-I)*aI(或 I*a(11-I) (2)9 (3)S+(11-I)*aIS(或 S+(I+1)*a(10-I)S) (4)MOD(11-R,11)2.【问题 2】 设“程序员考试大纲”标准书号前 9 个数字为 7-302-08493,请写出其校验码。(分数:12.00)_正确答案:()解析:9 分析 制订标准书号的目的是实现图书的国际统一编码,以便于实现计算机化的图书管理信息系统,使出版社内的图书管理、书库中的图书管理以及书店的图书销售管理具有更高的工作效率和管理水平。 标准书号采用分段编码,总长度是统一的,而段的长度是不统一的。例如,中国的出版者号规定为27 位数

16、字。对较大的出版社分配比较短的码,留出较长的书名号为较多的书进行编码。 标准书号的最后一位是校验码。设置校验码可以大大减少录入错误造成的管理混乱。 校验码一般由计算机程序产生。当操作人员录入前 9 个数字后,计算机就会自动启动计算校验码的过程,输出正确的校验码。 在书店(或书库),不论是建库还是查询检索,在手工输入带校验码的标准书号后,计算机就会自动启动校验过程,判断是否输入错误。 计算校验码的过程中,首先要计算 S=10*a(1)+9*a(2)+8*a(3)+2*a(9),这就要采用循环。在循环前应设置初始值 S=0,在循环体内应执行 S+(11-I)*a(1)S 或 S+ (I+1)*a(

17、10-I)S(其中的乘号“*”不要丢失)。该循环应对循环变量 I=19 进行(步长默认为 1),因此,(2)处应填9,(3)处填 S+(11-I)*a(I)S 或 S+(I+1)*a(10-I)S。 接着再计算该 S 值除以 11 的余数 R。显然 0R二、B试题二/B(总题数:1,分数:15.00)3.【说明】 下面待修改的 C 程序完成的功能是:对于给定的一个长正整数,从其个位数开始,每隔一位取一个数字(即取其个位、百位、万位等数字),形成一个新的整数并输出。例如,将该程序修改正确后,运行时若输入“14251382”,则输出的整数为“4532”。 下面给出的 C 程序代码中有五个错误,请指

18、出所有的错误。 【C 程序代码】 01 #include stdio.h 02 03 int main() 04 05 long n, num; 06 int i; 07 08 do 09 printf(“请输入一个正整数:“); 10 scanf(“%ld“, n); 11 while(n = 0); 12 k = 1; 13 for (i = 1; n = 0; i+) 14 if (i % 2 = 1) 15 num= num+ (n % 10) * k; 16 k = k * 10; 17 18 n = n / 10; 19 20 printf(“新数据为: %d /n“,num);

19、21 return 0; 22 (分数:15.00)_正确答案:()解析:错误 1:变量 k 没有声明(或定义)。 错误 2:变量 num 没有初始化,或者 num 应初始化为 0。 错误 3:第 10 行 scanf 函数参数错,或者“scanf(“%1d“,n);”中的 n 应该为“”。由于变量 num 没有赋初值,该语句运行的结果导致 num 的值是不确定的。 在本题给出的程序中,出现了如下错误。 (1)使用的变量 k 没有定义(语法错误,编译程序报告:k 是未定义的标识符)。 (2)变量 num 没有赋初始值就直接使用(动态语义错误),应将其初始值设为 0。由于 num是局部变量,使用

20、变量 num 的语句为“num=num+(n%10)*k”,系统不保证对其进行初始化,导致程序的运行结果不确定。 (3)第 14 行,误把“=”作为关系运算符“等于”(语法错误), (4)第 10 行,输入变量时忘记使用地址符号(动态语义错误),运行时变量 n 不能正确接收输入的数据。 (5)第 13 行,循环条件错误,导致无穷循环。 考生应多上机调试程序,这样就可以熟悉常见的程序错误,从而提高编程水平和效率。三、B试题三/B(总题数:1,分数:15.00)4.【说明】 函数 count months(DATE start,DATE end)的功能是:计算两个给定日期之间所包含的完整月份数。

21、该函数先算出起止日期中所含的完整年数,再计算余下的完整月份数。 规定两个相邻年份的同月同日之间的间隔为 1 年。例如,2007.5.302008.5.30 的间隔为 1 年。若相邻两年中前一年是闰年,并且日期是 2 月 29 日,则到下一年的 2 月 28 日为 1 年,即 2008.2.292009.2.28 的间隔为 1 年。 规定两个相邻月份的相同日之间的间隔为 1 个月,但需要特别考虑月末的特殊情况。例如,2007.1.292007.2.28 的间隔为 1 个月,同理,2007.1.302007.2.28、2007.1.312007.2.28 的间隔都是 1 个月。 计算起止日期间隔不

22、足一年的完整月份数时,分如下两种情况。 (1)起止日期不跨年度。先用终止日期的月号减去起始日期的月号得到月份数,然后再根据情况进行修正。例如,起止日期为 2008.3.312008.9.20,通过月号算出月份数为 6。修正时,通过调用函数 makevalid 将 2008.9.31 改为 2008.9.30,与终止日期 2008.9.20 比较后,将月份数修正为 5。 (2)起止日期跨年度。计算方法如下例所示:对于起止日期 2008.7.252009.3.31,先计算 2008.7.252008.12.25 的月份数为 5,再算出 2008.12.252009.3.25 的月份数为 3,因此

23、2008.7.252009.3.31 之间的完整月份数为 8。 日期数据类型定义如下:typedef struct int year; int month; int day; /*日期的年号(4 位)、月和口号*/ DATE; 程序中使用的函数 cmp_date()、isLeap Year()和 makevalid()说明如下。 (分数:15.00)_正确答案:()解析:(1)years-,或其等价形式 (2)12 - r.month,或其等价形式 (3) /*计算年数*/ 显然,上式算出的年份数可能产生误差(多算一年,即 end 的月号和日期要小于 start 的日期),因此可能需将 yea

24、rs 减去 1 后进行修正。因此,空(1)处应填入“years-”。 接下来计算月份数。由题目中的说明,计算起止日期间隔不足一年的完整月份数时,分如下两种情况。 (1)起止日期跨年度。计算方法如下例所示:对于起止日期 2008.7.252009.3.31,先计算 2008.7.252008.12.25 的月份数为 5,再算出 2008.12.252009.3.25 的月份数为 3,因此 2008.7.252009.3.31 之间的完整月份数为 8。以下代码处理该情况: if (r.year end.year) /*跨年度时,先计算到 12 月的月份数*/ months = U(2) /U; r

25、.month = 12; 因此,空(2)处应填入“12-r.month”。 (2)起止日期不跨年度。先用终止日期的月号减去起始日期的月号得到月份数,然后再根据情况进行修正。例如,起止日期为 2008.3.312008.9.20,通过月号算出月份数为 6。修正时,通过调用函数 makevalid 将 2008.9.31 改为 2008.9.30,与终止日期 2008.9.20 比较后,将月份数修正为 5。以下代码处理该情况: months += (end.month + 12 - r.month) % 12; r.year = end.year; r.month = end.month; mak

26、evalid(U (3) /U); /*将日期 r 修正为有效日期*/ if (cmp_date(r,end) 0) /*修正月份数*/ U (4) /U; 根据函数 makevalid 的接口说明,其实参应取变量 r 的地址,因此空(3)处填入“ while (U (1) /U) /*查找表尾结点*/ ptr = ptr - next; endptr = ptr; /*令 endptr 指向表尾结点*/ 显然,空(1)处应填入“ptr-next”,这样循环结束时,ptr 指向表尾结点。若填入“ptr”,则循环结束时,ptr 为空指针。 进行冒泡排序时,从头至尾依次比较逻辑上相邻的两个结点的数

27、据,如果小元素在前大元素在后,则交换。这样,经过一趟扫描,就将最大元素交换到了表的最后。下一趟可将次大元素交换到最大元素之前。显然,空(2)处应填入“head-next”。 由于程序设置的endptr 用于指示出每趟扫描需到达的最后一个结点,ptr 用于依次扫描链表中的结点,因此空(3)处的循环条件为“ptr != endptr”。 显然,指针 preptr 起的作用是指向 ptr 的前驱结点,因此,ptr 每向后修改一次,相应地 preptr 就要修改一次,空(4)处应填入“ptr”。本趟循环结束后,下一趟扫描也就确定了,因此在空(5)处填入“preptr”。五、B试题五/B(总题数:1,分

28、数:15.00)6.【应用说明】 某应用的登录界面如下: (分数:15.00)_正确答案:()解析:(1)from Users (2)Adodc1.Recordset(“UserID“) (3)txtUserID.Text (4)txtPassword.Text=pwd (5)frmApp.Show 分析 本题考查 VB 开发数据库应用能力。 代码中的空(1)处是典型的 SQL 查询语句,应填入“from Users”。 一般情况下,用户登录某系统时,都要输入用户名和口令,与系统记录的用户名和口令进行比较,通过后才能登录系统。参照“pwd=Adodc1.Recordset(“Pswd“)”,空

29、(2)处应填入“Adodc1.Recordset(“UserlD“)”,从数据库中取出用户名与用户在登录界面输入的用户名txtUserlD.Text 进行比较,若相同,则再取出该用户的口令进行比对,因此空(3)处应填入“txtUserID.Text“。空(4)处用于比较口令,填入“txtPassword.Text= pwd“,空(5)处填入“frmApp.Show“。六、B试题六/B(总题数:1,分数:15.00)(以下试题六至试题八任选一题)阅读下列说明和 C+代码,请回答问题 1 至问题 3。【说明】已知下列程序运行时的输出应为:1:11:11:1【C+程序】01 #include ios

30、tream02 using namespace std;03 class Stock04 protect:05 U (1) /U;06 Stock(iht n, int pr=1)07 shares = n; share_val=pr;08 ;09 voidStock();10 public:11 /成员函数12 void output()13 U(2) /U shares “:“ share val endl;14 15 private:16 /成员变量17 int shares;18 int share_val;19 ;2021 void main()22 Stock a(1); a.ou

31、tput();23 Stock b; b.output();24 Stock c = Stock(); c.output();25 (分数:15.00)(1).【问题 1】请补齐下述代码中的空缺 1 和 2。(分数:5.00)_正确答案:()解析:(1)Stock():shares(1),share_val(1) 或 Stock():share_val(1),shares(1) (2)cout(2).【问题 2】类 Stock 的定义中有两处错误,请指出错误所在行号并给出该行修改后的完整结果。(分数:5.00)_正确答案:()解析:错误 1 第 4 行,修改为:public: 错误 2 第 9

32、 行,修改为:Stock()(3).【问题 3】指出该代码是否存在内存泄漏。(分数:5.00)_正确答案:()解析:否,或不存在内存泄漏 分析 已知程序的输出全部为 1,根据主程序中 Stock b;这一语句可以判断出:类 Stock 有默认的构造函数,且该构造函数将初始化类中的一些成员变量。所以(1)处应该填写的内容为 Stock 的构造函数,因为该构造函数的函数体内没有语句,所以只能采用初始化列表的方式对成员变量进行初始化。成员函数 output 输出成员变量的值,因此(2)处应该填写标准的输出 cout。 由于类至少需要一个共有的构造函数,因此,第 4 行的 protected 应该更改

33、为 public:,而析构函数不能有返回类型,因此第 9 行应该去掉 void。 main 函数中对类的使用没有通过 new 操作符生成 stock 类的对象,因此不存在内存泄露,并且 main 函数中三种对象的生成方式是等价的。七、B试题七/B(总题数:1,分数:15.00)7.【应用说明】 某交通灯演示程序启动后,其运行窗口中包括红绿灯标志以及当前红绿灯状态剩余秒数的动态显示(如下图)。红灯与绿灯持续的时间分别为 30 秒与 40 秒。持续时间结束时,立即变更红绿灯,并重新显示剩余秒数。 (分数:15.00)_正确答案:()解析:(1)True (2)GreenT=GreenT-1 (3)

34、Call LoadNumber (40),或 LoadNumber (40) (4)N/10 (5)N-i*10 分析 试题中对开发过程以及所用的技术都已做了详细描述。 将图像文件装入图像框时,一般都需要注意图像人小的匹配问题。如果图像框的 Stretch(伸展)属性的值设置为 True,则待装的图像文件就会自动改变大小以适应图像框。因此,(1)处应填 True。 题中的程序代码有三个过程块。 第一个过程是公共模块,用于定义全局变量。由于红绿灯标志 Light、红灯剩余时间 RedT 和绿灯剩余时间 GreenT,在计时器的每次定时过程中都要使用,而且退出该过程后依然需要保持其值,下次再进入该

35、过程时将继续在此基础上使用,所以,这三个整型变量都需要在该公共模块中定义成全局变量,并进行初始化:灯的标志为绿色(1),绿灯持续时间为 40 秒,红灯持续时间为 0 秒。 第二个过程是计时器的定时过程,每秒执行一次。因此,需要根据当前红绿灯的状态,对图像框中的数字图像文件进行更新,有时,还需要转变红绿灯的显示。 该过程的执行逻辑可以先用结构化的文字描述如下(注意用缩格体现层次)。 如果当前为绿灯,则 绿灯剩余时间减 1 如果绿灯时间非 0(绿灯持续) 则按绿灯剩余时间更新图像框 如果绿灯剩余时间为 0(绿灯转红灯) 则关闭绿灯而显示红灯,并设置红灯标志以及红灯剩余时间 如果当前为红灯,则 红灯

36、剩余时间减 1 如果红灯时间非 0(红灯持续) 则按红灯剩余时间更新图像框 如果红灯剩余时间为0(红灯转绿灯) 则关闭红灯而显示绿灯,并设置绿灯标志以及绿灯剩余时间 从以上分析可以知道,(2)处应填 GreenT=GreenT-1(绿灯剩余时间减 1)。 在程序中,红灯与绿灯用两个圆的形状宋实现。如果红灯形状的风格属性设置成实心,且填充属性设置成红色,则红灯形状就会在运行时亮起红色。如果红灯形状的风格属性设置成空心,且填充属性设置成透明,则运行时红灯就不亮了。绿灯的情况也是这样。 程序中,按照红绿灯的剩余时间更新图像框采用了子过程 LoadNumber 来实现。该子过程的参数就是当前灯的剩余时

37、间。 绿灯持续时,就应该用调用语句 Call LoadNumber (GreenT)来更新图像框; 红灯持续时,就应该用调用语句 Call LoadNumber (RedT)来更新图像框; 红灯刚亮时,就应该用调用语句 Call LoadNumber (30)来更新图像框; 绿灯刚亮时,就应该用调用语句 Call LoadNumber (40)来更新图像框。因此,(3)处应填写 Call LoadNumber (40)。调用语句中的 Call 也可以省略。 程序中的第三个过程就是子过程 LoadNumber。形式参数 N 就是灯的剩余时间,N 的数值就是在图像框中显示的两位数字所表示的值。 因

38、此,在该过程中,应先根据数值 N 求出其十位数字(可能为 0)和个位数字。 N/10 的整数部分Int(N/10)就是 N 的十位数。因此,(4)处应填 N/10。 已知 N 的十位数为 i,则 N 的个位数 j 便是 N-i*10。因此,(5)处应填写 N-i*10。 在图像框 Image1 中装入指定图像文件的语句是: Image1.Picture=LoadPicture(“图像文件名“) 对指定的 i,需要装入图像文件 Ni.bmp。其中的 i 应该用数值 i 所对应的字符来代替。 数值变量 i 所对应的字符为 str(i),但其中可能含有空格,而文件名中,有没有空格将会改变所指的文件。

39、所以,还需要删除其中的空格。函数 Trim 能删除字符串前后的所有空格(当然本题中只要删除前导空格就可以了,因为尾部并不存在空格)。 “N“04 share val = 0.0;O5 06 public Stock()getData();07 public Stock(int n, iht pr=0)08 shares = n;09 share val = pr;10 getData();11 12 public void getData() 13 System.out.println(shares + “:“+share_val);14 15 private int shares;16 pr

40、ivate int share_val;17 ;1819 public class cxyjava20 public static void main(String args) 21 Stock a =U (1) /U;22 Stock b = new Stock(1,23);23 /其他无输出代码省略24 25 (分数:15.00)(1).【问题 1】请指出错误所在行号并给出该行修改后的完整结果。(分数:7.50)_正确答案:()解析:错误 1:第 1 行,修改为:class Stock 错误 2:第 2 行,修改为: 错误 3:第 4 行,修改为:share val:=0; 或 share

41、_val=(int)0.0; 错误 4:第 7 行,修改为:public Stock(int n,int pr)(2).【问题 2】请补齐第 21 行代码中的空缺。(分数:7.50)_正确答案:()解析:new Stock(),或者 new Stock(0,0) 分析 Java 代码中,一个文件只能有一个和文件同名的公共类,因此第一行的 Stock 类不能为公共类,需要去掉 public 修饰符。因为静态的初始化区域只能对类的静态变量进行 初始化,而 shares 和 share_val 不是静态变量,因此需要把第二行的 static 去掉,并且静态初始化区只在加载类的时候初始化一次。因为 Java 是强类型的语言,share_val 是整形变量,因此第 4 行给 share_val 赋值 0.0 会出现类型错误,因此需要增加强制类型转换或把 0.0 更改为 0。第 7 行Stock 类的构造函数没有默认值的语法,因此需要将默认值去掉。 程序输出的第一行为 0:0,而成员变量的初始化值都为 0,因此仅需要调用构造函数 Stock()即可,也可明确指定初始化构造函数的参数值Stock(0,0)。

展开阅读全文
相关资源
猜你喜欢
  • BS ISO 10197-1994 Micrographics - Reader-printers for transparent microforms - Characteristics《缩微摄影技术 透明显微胶片阅读-打印机 特性》.pdf BS ISO 10197-1994 Micrographics - Reader-printers for transparent microforms - Characteristics《缩微摄影技术 透明显微胶片阅读-打印机 特性》.pdf
  • BS ISO 10198-1994 Micrographics - Rotary camera for 16 mm microfilm - Mechanical and optical characteristics《缩微图形学 16 mm缩微胶卷用旋转式摄影机 机械和光学特性》.pdf BS ISO 10198-1994 Micrographics - Rotary camera for 16 mm microfilm - Mechanical and optical characteristics《缩微图形学 16 mm缩微胶卷用旋转式摄影机 机械和光学特性》.pdf
  • BS ISO 10203-2017 Iron ores - Determination of calcium - Flame atomic absorption spectrometric method《铁矿石 钙含量测定 火焰原子吸收光谱法》.pdf BS ISO 10203-2017 Iron ores - Determination of calcium - Flame atomic absorption spectrometric method《铁矿石 钙含量测定 火焰原子吸收光谱法》.pdf
  • BS ISO 10204-2017 Iron ores Determination of magnesium Flame atomic absorption spectrometric method《铁矿石 镁含量测定 火焰原子吸收光谱测定法》.pdf BS ISO 10204-2017 Iron ores Determination of magnesium Flame atomic absorption spectrometric method《铁矿石 镁含量测定 火焰原子吸收光谱测定法》.pdf
  • BS ISO 10223-2005 Textile machinery and accessories - Flat warp knitting machines - Numbering of guide bars《纺织机械和附件 平型经编机 导纱梳栉编号》.pdf BS ISO 10223-2005 Textile machinery and accessories - Flat warp knitting machines - Numbering of guide bars《纺织机械和附件 平型经编机 导纱梳栉编号》.pdf
  • BS ISO 10225-2013 Gas welding equipment Marking for equipment used for gas welding cutting and allied processes《气焊设备 气焊 切割和相关工艺用设备标记》.pdf BS ISO 10225-2013 Gas welding equipment Marking for equipment used for gas welding cutting and allied processes《气焊设备 气焊 切割和相关工艺用设备标记》.pdf
  • BS ISO 10227-1997 Human human surrogate impact (single shock) testing and evaluation - Guidance on technical aspects《人 人替身冲击(一次冲击)试验和评价 技术特点指南》.pdf BS ISO 10227-1997 Human human surrogate impact (single shock) testing and evaluation - Guidance on technical aspects《人 人替身冲击(一次冲击)试验和评价 技术特点指南》.pdf
  • BS ISO 10228-2011 Cross-country skis Binding mounting area Requirements for test screws《越野滑雪 捆扎部位 试验螺钉的要求》.pdf BS ISO 10228-2011 Cross-country skis Binding mounting area Requirements for test screws《越野滑雪 捆扎部位 试验螺钉的要求》.pdf
  • BS ISO 10241-1-2011 Terminological entries in standards General requirements and examples of presentation《标准中的术语条目 一般要求和表示实例》.pdf BS ISO 10241-1-2011 Terminological entries in standards General requirements and examples of presentation《标准中的术语条目 一般要求和表示实例》.pdf
  • 相关搜索

    当前位置:首页 > 考试资料 > 职业资格

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1