程序员-下午题-10下

Similar documents
第3章.doc

新版 明解C++入門編

C 1

untitled

untitled

FY.DOC

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

untitled

生成word文档

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

chp6.ppt

c_cpp

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

Microsoft Word - 01.DOC

C/C++语言 - C/C++数据

untitled

ebook39-5

JavaIO.PDF

C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1

untitled

Microsoft PowerPoint - 10 模板 Template.pptx

<4D F736F F D20CDF8B9A42DCFC2CEE7CCE22D3038CFC2>

untitled

全国计算机技术与软件专业技术资格(水平)考试

10-下-监理师下午试卷

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3

生成word文档

《C语言程序设计》教材习题参考答案

<4D F736F F D20CDF8B9A42DCFC2CEE7CCE22D3039C9CF>

Microsoft PowerPoint - string_kruse [兼容模式]

Java

NOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p

希赛网 ( 专注软考 PMP 通信 建造师 教资等考试 希赛网, 专注于软考 PMP 通信 建造师 教资等考试的专业 IT 知识库和在线教育平台, 希赛网在线题库, 提供历年真题 模拟试题 章节练习 知识点练习 错题本练习等在线做题服务, 更有能力评估报告, 让你告别

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

全国计算机技术与软件专业技术资格(水平)考试

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

Chapter 9: Objects and Classes

生成word文档

《C语言程序设计》第2版教材习题参考答案

Microsoft Word - ch04三校.doc

C++ 程式設計

<4D F736F F D20D6D02D30332D CFC2B5E7D7D3C9CCCEF1C9E8BCC6CAA6CFC2CEE7CCE2>

epub 33-8

C++ 程序设计 OJ4 - 参考答案 MASTER 2019 年 5 月 30 日 1

,,,,,,,,,, ( http: \ \ www. ncre. cn,, ) 30,,,,,,,, C : C : : 19 : : : /16 : : 96 : : : ISBN 7

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

3.1 num = 3 ch = 'C' 2

untitled

javaexample-02.pdf

CC213

提问袁小兵:

(6) 要 求 付 款 管 理 员 从 预 订 表 中 查 询 距 预 订 的 会 议 时 间 两 周 内 的 预 定, 根 据 客 户 记 录 给 满 足 条 件 的 客 户 发 送 支 付 余 款 要 求 (7) 支 付 余 款 管 理 员 收 到 客 户 余 款 支 付 的 通 知 后, 检

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2

<4D F736F F D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF>

《大话设计模式》第一章

untitled

ebook39-6

迅速在两个含有大量数据的文件中寻找相同的数据

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

untitled

untitled

<4D F736F F D20D6D02D30322D CFC2CDF8C2E7B9A4B3CCCAA6CFC2CEE7CCE2>

新・明解C言語入門編『索引』

Microsoft Word - 新1-12.doc

<4D F736F F D20B3F52D30322D CFC2CDF8C2E7B9DCC0EDD4B1CFC2CEE7CCE2>

生成word文档

Guava学习之Resources

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

Chapter12 Derived Classes

期中考试试题讲解

Microsoft Word cppFinalSolution.doc

Microsoft Word - CPE考生使用手冊 docx

生成word文档

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题

《计算概论》课程 第十九讲 C 程序设计语言应用

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

untitled

生成word文档


[剑指offer] 面试题43:n个骰子的点数(Java),[剑指offer] 面试题42: 翻转单词顺序 VS左旋转字符串(Java),[剑指offer] 面试题41:和为s的两个数字VS和为s的连续序列

EJB-Programming-4-cn.doc

立 志 于 打 造 最 贴 近 考 生 实 际 的 辅 导 书 计 算 机 考 研 之 数 据 结 构 高 分 笔 记 率 辉 编 著 周 伟 张 浩 审 核 讨 论 群 :

Chapter 9: Objects and Classes

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

Microsoft Word - 实用案例.doc

nooog

C/C++ 语言 - 循环

内 容 提 要 指 针 持 久 动 态 内 存 分 配 字 符 串 ( 字 符 数 组 ) 2

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

Microsoft PowerPoint - ds-1.ppt [兼容模式]

目 录 实 验 一 : 熟 悉 Java 开 发 环 境... 1 实 验 二 : 类 与 面 向 对 象... 7 实 验 三 : 继 承 和 多 态 实 验 四 : 异 常 处 理 实 验 五 : 流 文 件 及 基 于 文 本 的 应 用... 23

Strings

<4D F736F F D C4EAD0C5CFA2CFB5CDB3BCE0C0EDCAA6CFC2CEE7CAD4BEED>

Transcription:

全国计算机技术与软件专业技术资格 ( 水平 ) 考试 2010 年下半年程序员下午试卷 ( 考试时间 14:00~16:30 共 150 分钟 ) 请按下述要求正确填写答题纸 1. 在答题纸的指定位置填写你所在的省 自治区 直辖市 计划单列市的名称 2. 在答题纸的指定位置填写准考证号 出生年月日和姓名 3. 答题纸上除填写上述内容外只能写解答 4. 本试卷共 6 道题, 试题一至试题四是必答题, 试题五至试题六选答 1 道 每题 15 分, 满分 75 分 试题号 一 ~ 四 五 ~ 六 选择方法 必答题 选答 1 题 5. 解答时字迹务必清楚, 字迹不清时, 将不评分 6. 仿照下面例题, 将解答写在答题纸的对应栏内 例题 2010 年下半年全国计算机技术与软件专业技术资格 ( 水平 ) 考试日期是 (1) 月 (2) 日 因为正确的解答是 11 月 13 日, 故在答题纸的对应栏内写上 11 和 13 ( 参看下表 ) 例题 解答栏 (1) 11 (2) 13 2010 年下半年程序员下午试卷第 1 页 ( 共 10 页 )

试题一 ( 共 15 分 ) 阅读以下说明和流程图, 回答问题 1 至问题 4, 将解答填入答题纸的对应栏内 说明 下面的流程图中有两个判断条件 A>0 和 B>0 这些判断条件的各种组合情况如下表 所示 表中 Y 表示相应的条件成立,N 表示相应的条件不成立 每一列表示一种条件组 合, 并在列首用相应的序号来表示 流程图 条件 序号 1 2 3 4 A>0 Y Y N N B>0 Y N Y N 问题 1 (4 分 ) 当遇到哪几种条件组合时, 流程图能执行 1 i?( 写出相应的序号即可 ) 问题 2 (4 分 ) 当遇到哪几种条件组合时, 流程图能执行 2 j?( 写出相应的序号即可 ) 问题 3 (6 分 ) 当遇到哪几种条件组合时, 流程图能执行 3 k?( 写出相应的序号即可 ) 问题 4 (1 分 ) 该流程图共有多少条实际执行路径? 2010 年下半年程序员下午试卷第 2 页 ( 共 10 页 )

试题二 ( 共 15 分 ) 阅读以下说明和 C 函数, 将应填入 (n) 处的语句或语句成分写在答题纸的对应栏内 说明 1 函数 deldigit(char *s) 的功能是将字符串 s 中的数字字符去掉, 使剩余字符按原次序构成一个新串, 并保存在原串空间中 其思路是 : 先申请一个与 s 等长的临时字符串空间并令 t 指向它, 将非数字字符按次序暂存入该空间, 最后再拷贝给 s C 函数 void deldigit(char *s) char *t = (char *)malloc( (1) ); /* 申请串空间 */ int i, k = 0; if (!t) return; for(i = 0; i < strlen(s); i++) if (!(*(s+i)>='0' && *(s+i)<='9') ) t[k++] = (2) ; (3) = '\0'; /* 设置串结束标志 */ strcpy(s,t); free(t); 说明 2 函数 reverse(char *s, int len) 的功能是用递归方式逆置长度为 len 的字符串 s 例如, 若串 s 的内容为 abcd, 则逆置后其内容变为 dcba C 函数 void reverse(char *s, int len) char ch; if ( (4) ) ch = *s; *s = *(s+len-1); *(s+len-1) = ch; reverse( (5) ); 2010 年下半年程序员下午试卷第 3 页 ( 共 10 页 )

试题三 ( 共 15 分 ) 阅读以下说明和 C 代码, 回答问题 1 和问题 2, 将解答写在答题纸的对应栏内 说明 1 下面代码的设计意图是 : 将保存在文本文件 data.txt 中的一系列整数 ( 不超过 100 个 ) 读取出来存入数组 arr[], 然后调用函数 sort() 对数组 arr 的元素进行排序, 最后在显示屏输出数组 arr 的内容 C 代码 行号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 代码 #include<stdio.h> void sort(int a[], int n) /* 对 n 个元素的整型数组 a 按递增方式排列 */ /* 此处代码省略 */ return; int main() int i, num = 0; int arr[100]; FILE fp; fp = fopen("data.txt", "r"); if (!fp) return -1; while(!feof(fp)) fscanf(fp, "%d", arr[num++]); sort(arr[], num); for(i=0; i < num; ) fprintf(stdout, "%d ", arr[i++]); fclose(fp); return 0; 问题 1 ( 9 分 ) 以上 C 代码中有三处错误 ( 省略部分的代码除外 ), 请指出这些错误所在的代码行 号, 并在不增加和删除代码行的情况下进行修改, 写出修改正确后的完整代码行 2010 年下半年程序员下午试卷第 4 页 ( 共 10 页 )

说明 2 下面是用 C 语言书写的函数 get_str 的两种定义方式以及两种调用方式 定义方式 1 void get_str(char* p) p = (char *) malloc(1+sizeof("testing")); strcpy(p, "testing"); 定义方式 2 void get_str(char** p) *p =(char *) malloc(1+sizeof("testing")); strcpy(*p, "testing"); 调用方式 1 调用方式 2 int main( ) int main( ) char* ptr = NULL; char* ptr = NULL; get_str(ptr); get_str(&ptr); if (ptr) if (ptr) printf("%s\n", ptr); printf("%s\n", ptr); else else printf("%p\n", ptr); /* 输出指针的值 */ printf("%p\n", ptr); return 0; return 0; 问题 2 ( 6 分 ) 若分别采用函数定义方式 1 2 和调用方式 1 2, 请分析程序的运行情况, 填充下 面的空 (1)~(3) 若采用定义方式 1 和调用方式 1, 则输出为 00000000 若采用定义方式 1 和调用方式 2, 则 (1) 若采用定义方式 2 和调用方式 1, 则 (2) 若采用定义方式 2 和调用方式 2, 则 (3) 2010 年下半年程序员下午试卷第 5 页 ( 共 10 页 )

试题四 ( 共 15 分 ) 阅读以下说明和 C 函数, 将应填入 (n) 处的语句或语句成分写在答题纸的对应栏内 说明 已知单链表 L 含有头结点, 且结点中的元素值以递增的方式排列 下面的函数 DeleteList 在 L 中查找所有值大于 mink 且小于 maxk 的元素, 若找到, 则逐个删除, 同 时释放被删结点的空间 若链表中不存在满足条件的元素, 则返回 -1, 否则返回 0 例如, 某单链表如图 4-1 所示 若令 mink 为 20 maxk 为 50, 则删除后的链表如 图 4-2 所示 图 4-1 链表结点类型定义如下 : typedef struct Node int data; struct Node *next; Node, *LinkList; 图 4-2 C 函数 int DeleteList (LinkList L, int mink, int maxk) /* 在含头结点的单链表 L 中删除大于 mink 且小于 maxk 的元素 */ (1) *q = L, *p = L->next; /*p 指向第一个元素结点 */ int deltag = 0; while ( p ) if ( p->data <= mink ) else q = p; p = (2) ; if ( p->data < maxk ) /* 找到删除满足条件的结点 */ q->next = (3) ; free(p); p = (4) ; deltag = 1; else break; if ( (5) ) return -1; return 0; 2010 年下半年程序员下午试卷第 6 页 ( 共 10 页 )

试题五 ( 共 15 分 ) 阅读以下说明和 C++ 代码, 将应填入 (n) 处的语句或语句成分写在答题纸的对应栏内 说明 某数据文件 students.txt 的内容为 100 名学生的学号和成绩, 下面的程序将文件中的数据全部读入对象数组, 按分数从高到低进行排序后选出排名前 30% 的学生 C++ 代码 #include <iostream> #include <fstream> #include <string> using namespace std; class Student private: string sno; // 学号 int credit; // 分数 public: Student(string a,int b) sno = a; credit = b; Student() int getcredit(); void out(); ; (1) ::getcredit() return credit; (2) ::out() cout << "SNO: " << sno << ", Credit=" << credit << endl; class SortStudent public: void sort(student *s, int n); SortStudent() ; void SortStudent::sort(Student *s,int n) for(int i = 0; i < n-1; i++) for(int j = i+1; j < n; j++) if(s[i]. (3) < s[j]. (4) ) Student temp = s[i]; s[i] = s[j]; s[j] = temp; 2010 年下半年程序员下午试卷第 7 页 ( 共 10 页 )

int main(int argc, char* argv[]) const int number = 100; // 学生总数 ifstream students; students.open("students.txt"); if(!students.is_open()) throw 0; Student *teststudent = (5) [number]; int k = 0; string s; while (getline(students,s,'\n')) // 每次读取一个学生的学号和成绩 Student student(s.substr(0,s.find(',')), atoi(s.substr(s.find(',')+1).c_str())); teststudent[k++] = student; students.close(); (6) ; ss.sort(teststudent,k); cout <<"top 30%: "<<endl; for(k = 0; k < number * 0.3; k++) teststudent[k].out(); delete []teststudent; return 0; 2010 年下半年程序员下午试卷第 8 页 ( 共 10 页 )

试题六 ( 共 15 分 ) 阅读以下说明和 Java 代码, 将应填入 (n) 处的语句或语句成分写在答题纸的对应栏内 说明 某数据文件 students.txt 的内容为 100 名学生的学号和成绩, 下面的程序将文件中的数据全部读入对象数组, 按分数从高到低进行排序后选出排名前 30% 的学生 Java 代码 import java.io.*; class Student private String sno; // 学号 private int Credit; // 分数 public int getcredit() return Credit; public String tostring() return "sno = " + this.sno + ", Credit = " + this.credit; Student(String sno, int Credit) (1) = sno; (2) = Credit; public class SortStudent void sort(student[] s) //Sort the array s[] in decending order of Credit for (int i = 0; i < s.length-1; i++) for (int j = i+1; j < s.length; j++) if (s[i]. (3) < s[j]. (4) ) Student tmp = s[i]; s[i] = s[j]; s[j] = tmp; 2010 年下半年程序员下午试卷第 9 页 ( 共 10 页 )

public static void main(string argv[]) Student[] teststudent = new Student[size]; try BufferedReader in = new BufferedReader(new FileReader("students.txt")); boolean done = false; int i = 0; while (!done) String s = in.readline(); // 每次读取一个学生的学号和成绩 if (s!= null) String tmp[] = s.split(","); teststudent[i++] = (5) (tmp[0], Integer.parseInt(tmp[1])); else done = true; in.close(); (6) = new SortStudent(); ss.sort(teststudent); System.out.println("top 30%:"); for (int j = 0; j < size * 0.3; j++) System.out.println(testStudent[j]); catch (IOException e) System.out.println("io error!"); catch (NumberFormatException e) System.out.println("not a number!"); (7) int size = 100; // 学生总数 2010 年下半年程序员下午试卷第 10 页 ( 共 10 页 )