【计算机类职业资格】计算机水平考试初级程序员2012年上半年下午真题及答案解析.doc
《【计算机类职业资格】计算机水平考试初级程序员2012年上半年下午真题及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】计算机水平考试初级程序员2012年上半年下午真题及答案解析.doc(6页珍藏版)》请在麦多课文档分享上搜索。
1、计算机水平考试初级程序员 2012 年上半年下午真题及答案解析(总分:90.00,做题时间:150 分钟)一、问答题(总题数:6,分数:90.00)1.阅读以下说明和流程图,填补流程图中的空缺(1)(5),将解答填入答题纸的对应栏内。 说明 已知数组 A1:n中各个元素的值都是非零整数,其中有些元素的值是相同的(重复)。为删除其中重复的值,可先通过以下流程图找出所有的重复值,并对所有重复值赋 0 标记。该流程图采用了双重循环。 处理思路:如果数组 A 某个元素的值在前面曾出现过,则该元素赋标记值 0。例如,假设数组 A 的各元素之值依次为 2,5,5,1,2,5,3,则经过该流程图处理后,各元
2、素之值依次为 2,5,0,1,0,0,3。 流程图 (分数:15.00)_阅读以下说明、C 程序代码和问题 1 至问题 3,将解答写在答题纸的对应栏内。(分数:15.00)(1).说明 1 设在某 C 系统中为每个字符型数据分配 1 个字节,为每个整型 (int)数据分配 4 个字节,为每个指针分配 4 个字节,sizeof(x)用 于计算为 x 分配的字节数。 C 代码 #include #include int main() int arr5=10,20,30; char mystr=“JustAtestn“; char *ptr=mystr; printf(“%d %d %dn“,siz
3、eof(int),sizeof(unsigned int),sizeof(arr); printf(“%d %dn“,sizeof(char),sizeof(mystr); printf(“%d %dn“,sizeof(ptr),sizeof(*ptr),strlen (ptr); return 0; 问题 1(8 分) 请写出以上 C 代码的运行结果。(分数:5.00)_(2).说明 2 const 是 C 语言的一个关键字,可以用来定义“只读”型变量。 问题 2(4 分) (1)请定义一个“只读”型的整型常量 size,并将其值初始化为 10; (2)请定义一个指向整型变量 a 的指针 p
4、tr,使得 ptr 的值不能修改,而 ptr 所指向的目标变量的值可以修改(即可以通过 ptr 间接修改整型变量 a 的值)。 注:无需给出整型变量 a 的定义。(分数:5.00)_(3).问题 3(3 分) 某 C 程序文件中定义的函数 f 如下所示,请简要说明其中 static 的作用,以及形参表“const int arr”中 const 的作用。 static int f(const int arr) /*函数体内的语句省略*/ (分数:5.00)_2. 阅读以下说明和 C 函数,填补 C 函数中的空缺(1)(6),将解答写在答题纸的对应栏内。 说明 函数 numberOfwords
5、(char message)的功能是计算存储在 message 字符数组中的一段英文语句中的单词数目,输出每个单词(单词长度超过 20 时仅输出其前 20 个字母),并计算每个英文字母出现的次数(即频数),字母计数时不区分大小写。 假设英文语句中的单词合乎规范(此处不考虑单词的正确性),单词不缩写或省略,即不会出现类似 dont 形式的词,单词之后都为空格或标点符号。 函数中判定单词的规则是: (1)一个英文字母串是单词; (2)一个数字串是单词; (3)表示名词所有格的撇号()与对应的单词看作是一个单词。 除上述规则外,其他情况概不考虑。 例如,句子“The l990s witnessed
6、many changes in peoples concepts of conservation.”中有 10 个单词,输出如下: The 1990s witnessed many changes in peoples in peoples concepts of conservation 函数 numberOfwords 中用到的部分标准库函数如下表所述。 (分数:15.00)_3. 阅读以下说明和 C 函数,填补 C 函数中的空缺(1)(5),将解答写在答题纸的对应栏内。 说明 函数 SetDiff(LA,LB)的功能是将 LA 与 LB 中的共有元素从 LA 中删除,使得 LA 中仅保留
7、与 LB 不同的元素,而 LB 不变,LA 和 LB 为含头结点的单链表的头指针。 例如,单链表 LA、LB 的示例如图 4-1 中的(a)、(b)所示,删除与 LB 共有的元素后的 LA 如图 4-1 中的(c)所示。 函数 SetDiff(LinkList LA,LinkList LB)的处理思路如下: (1)从 LA 的第一个元素结点开始,令 LA 的第一个元素为当前元素。 (2)在 LB 中进行 J 顷序查找,查找与 LA 的当前元素相同考,方法是令 LA 的当前元素先与 LB 的第一个元素进行比较,若相等,则结束在 LB 中的查找过程,否则继续与 LB 的下一个元素比较,重复以上过程
8、,直到 LB 中的某一个元素与 LA 的当前元素相等(表明查找成功),或者到达 LB 的表尾(表明查找失败)为止。 (3)结束在 LB 表的一次查找后,若在 LB 中发现了与 LA 的当前元素相同者,则删除 LA 的当前元素,否则保留 LA 的当前元素。 (4)取 LA 的下一个元素为当前元素,重复(2)、(3),直到 LA 的表尾。 (分数:15.00)_4. 阅读以下说明和 C+代码,填补 C+代码中的空缺(1)(6),将解答写在答题纸的对应栏内。 说明 已知某公司按周给员工发放工资,其工资系统需记录每名员工的员工号、姓名、工资等信息。其中一些员工是正式的,按年薪分周发放(每年按 52 周
9、计算);另一些员工是计时工,以小时工资为基准,按每周工作小时数核算发放。 下面是实现该工资系统的 C+代码,其中定义了四个类:工资系统类 PayRoll,员工类 Employee,正式工类 Salaried 和计时工类 Hourly,Salaried 和 Hourly 是 Employee 的子类。 (分数:15.00)_5. 阅读以下说明和 Java 代码,填补 Java 代码中的空缺(1)(6),将解答写在答题纸的对应栏内。 说明 己知某公司按周给员工发放工资,其工资系统需记录每名员工的员工号、姓名、工资等信息。其中一些员工是正式的,按年薪分周发放(每年按 52 周计算):另一些员工是计时
10、工,以小时工资为基准,按每周工作小时数核算发放。 下面是实现该工资系统的 Java 代码,其中定义了四个类:工资系统类PayRoll,员工类 Employee,正式工类 Salaried 和计时工类 Hourly,Salaried 和 Hourly 是 Employee 的子类。 (分数:15.00)_计算机水平考试初级程序员 2012 年上半年下午真题答案解析(总分:90.00,做题时间:150 分钟)一、问答题(总题数:6,分数:90.00)1.阅读以下说明和流程图,填补流程图中的空缺(1)(5),将解答填入答题纸的对应栏内。 说明 已知数组 A1:n中各个元素的值都是非零整数,其中有些元
11、素的值是相同的(重复)。为删除其中重复的值,可先通过以下流程图找出所有的重复值,并对所有重复值赋 0 标记。该流程图采用了双重循环。 处理思路:如果数组 A 某个元素的值在前面曾出现过,则该元素赋标记值 0。例如,假设数组 A 的各元素之值依次为 2,5,5,1,2,5,3,则经过该流程图处理后,各元素之值依次为 2,5,0,1,0,0,3。 流程图 (分数:15.00)_正确答案:(1)n1 (2)Ai (3)i+1 (4)Aj (5)Aj)解析: 在处理大批数据记录时,删除重复记录(关键词重复的记录)是常见的操作。本题源自这种应用。删除重复记录算法可分两步进行。第一步将重复出现的多余元素标
12、记为 0;第二步再删除所有的 0 元素。本题流程图只做第一步处理。 本流程图采用了对 i 和i 的双重循环,对每个元素 Ai,需要查看其后面的各个元素(用 Aj表示)是否与 Ai相同。因此,外层循环应对 i1,n1 进行,从而在(1)处应填“nl”。内层循环应对,j=i+1,n 进行,从而在(3)处应填“i+1”。 在外循环处理中首先应判断 Ai是否已经标记为 0,若是则无需进一步处理。因此,(2)处应填“Ai”。而在内循环处理中首先应判断Aj是否已经标记为 0,若是则无需进一步处理。因此,(4)处应填“Aj”。如果发现元素重复(即 Ai=Aj),则需要再将 Aj赋值为 0(标记),因此(5)
13、处应填“Aj”。阅读以下说明、C 程序代码和问题 1 至问题 3,将解答写在答题纸的对应栏内。(分数:15.00)(1).说明 1 设在某 C 系统中为每个字符型数据分配 1 个字节,为每个整型 (int)数据分配 4 个字节,为每个指针分配 4 个字节,sizeof(x)用 于计算为 x 分配的字节数。 C 代码 #include #include int main() int arr5=10,20,30; char mystr=“JustAtestn“; char *ptr=mystr; printf(“%d %d %dn“,sizeof(int),sizeof(unsigned int)
14、,sizeof(arr); printf(“%d %dn“,sizeof(char),sizeof(mystr); printf(“%d %dn“,sizeof(ptr),sizeof(*ptr),strlen (ptr); return 0; 问题 1(8 分) 请写出以上 C 代码的运行结果。(分数:5.00)_正确答案:(4 4 20 1 11 4 1 10)解析: sizeof 是 C 语言提供的一个关键字,sizeof(x)用于计算为 x 分配的字节数,其结果与系统或编译器相关。若 x 是数组名时,用于计算整个数组所占用存储空间的字节数;若 x 是指针,则无论其指向的目标数据是什么类
15、型,x 所占用的存储空间大小都相同(在同一系统或编译环境中);若 x 是结构体变量或类型,则需要根据系统规定的对齐要求来计算为 x 所分配空间的字节数。 根据说明,系统为每个字符型数据分配 1 个字节,为每个整型(int)数据分配 4 个字节,为每个指针分配 4 个字节,那么 sizeof(int)、sizeof(unsigned int)是计算整型数据和无符号整型数据的存储空间大小,sizeof(arr)是计算数组 arr的字节数,它们的值分别为 4、4 和 20。 sizeof(char)计算一个字符数据所占用的字节数,根据说明应为 1。sizeof(mystr)计算为字符数组 mystr
16、 分配的空间大小,该数组的大小由字符串”JustAtesth”决定,该字符串的长度为 10,还有一个串尾结束标志字符0,因此 sizeof(mystr)的值为 11。 ptr 是指向字符数组 mystr 的指针,显然 sizeof(ptr)的结果为 4。由于*ptr 指向了一个字符数据,因此sizeof(*ptr)的结果为 1,函数 strlen(ptr)计算 ptr 所指字符串的长度,结果为 10。(2).说明 2 const 是 C 语言的一个关键字,可以用来定义“只读”型变量。 问题 2(4 分) (1)请定义一个“只读”型的整型常量 size,并将其值初始化为 10; (2)请定义一个
17、指向整型变量 a 的指针 ptr,使得 ptr 的值不能修改,而 ptr 所指向的目标变量的值可以修改(即可以通过 ptr 间接修改整型变量 a 的值)。 注:无需给出整型变量 a 的定义。(分数:5.00)_正确答案:(1) const int size = 10; 或 int const size = 10; (2) int * const ptr = )解析: 在 C 语言中,const 关键字的一个作用是限定一个变量的值不能被改变,使用 const 可以在一定程度上提高程序的安全性和可靠性。 const int size = 10; 或 int const size = 10; 以上代
18、码都可以定义一个“只读”型的整型常量 size 并将其值初始化为 10。 当 const 用于修饰指针,常见的情形如下:(1)const 修饰的是指针所指向的对象,该对象不可改变,指针变量可改变。 const int *p; /或 int const *p; (2) const 修饰的是指针,该指针变量不可改变,其指向的对象可改变。 int *const p; (3)const 修改的是指针以及指针所指向的对象,都不可改变。 const int *const p;(3).问题 3(3 分) 某 C 程序文件中定义的函数 f 如下所示,请简要说明其中 static 的作用,以及形参表“const
19、 int arr”中 const 的作用。 static int f(const int arr) /*函数体内的语句省略*/ (分数:5.00)_正确答案:(static 的作用:说明 f 是内部函数,只能在本文件中调用它。 const 的作用:在函数 f 中不能修改数组元素的值,若有修改,编译时会报错。)解析: 关键字 static 用于修饰函数中的局部变量时,是通知编译器将该变量的存储空间安排在全局存储区,这样在下一次调用函数时还保留上一次对该变量的修改结果。 当一个源程序由多个源文件组成时,用 static 修饰的全局变量和函数,其作用域为当前文件,对其他源文件不可见,即它们不能被其他
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 计算机水平 考试 初级 程序员 2012 上半年 下午 答案 解析 DOC
