[计算机类试卷]软件水平考试(初级)程序员上午(基础知识)章节练习试卷1及答案与解析.doc

上传人:刘芸 文档编号:507345 上传时间:2018-11-29 格式:DOC 页数:42 大小:137KB
下载 相关 举报
[计算机类试卷]软件水平考试(初级)程序员上午(基础知识)章节练习试卷1及答案与解析.doc_第1页
第1页 / 共42页
[计算机类试卷]软件水平考试(初级)程序员上午(基础知识)章节练习试卷1及答案与解析.doc_第2页
第2页 / 共42页
[计算机类试卷]软件水平考试(初级)程序员上午(基础知识)章节练习试卷1及答案与解析.doc_第3页
第3页 / 共42页
[计算机类试卷]软件水平考试(初级)程序员上午(基础知识)章节练习试卷1及答案与解析.doc_第4页
第4页 / 共42页
[计算机类试卷]软件水平考试(初级)程序员上午(基础知识)章节练习试卷1及答案与解析.doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、软件水平考试(初级)程序员上午(基础知识)章节练习试卷 1及答案与解析 1 将十进制数 -35化成二进制数原码、补码、反码表示 (符号位和数值位共 8位 )。二进制数原码为: (6),补码为 (7);反码为 (8) ( A) 1 0100011 ( B) 1 0100001 ( C) 1 0110011 ( D) 100011 ( A) 1 1010101 ( B) 1 101110l ( C) 1 0011101 ( D) 0 1011101 ( A) 1 1011101 ( B) 1 101110l ( C) 1 1011100 ( D) 0 1011100 4 已知 x, z为带符号纯整

2、数, y为带符号纯小数,而且 X原 =Y补 =Z移=11111101,求出 x、 y、 z的十进制真值: X=(98), Y=(99), Z=(100)。 ( A) -127 ( B) 125 ( C) -125 ( D) 1 ( A) 1/128 ( B) -3/128 ( C) -127/128 ( D) 125/128 ( A) -1 ( B) 125 ( C) -125 ( D) 127 7 在常见的页面置换算法中, (29)选择暂时不使用的或者在最长时间内不再被访问的页面作 为被淘汰的页面, (30)总是选择淘汰最先进入内存的页面,而 (31)选择淘汰在最近一段时间内最久未用的页面。

3、在一个请求分页系统中,假如系统分配给一个作业的物理块数为 3,并且此作业的页面走向为 3, 4, 3, 2, 1, 3, 5, 1, 4,3, 1, 3,则采用 FIFO和 LRU算法的缺页次数分别是 (32), (33)。 ( A)轮循置换算法 ( B)最佳置换算法 ( C) LRU算法 ( D) FIFO置换算法 ( A)轮循置换算法 ( B)最佳置换算法 ( C) LRU算法 ( D) FIFO置换算法 ( A) 4 ( B) 5 ( C) 6 ( D) 7 ( A) 4 ( B) 5 ( C) 6 ( D) 7 11 在网络分层体系结构中,第 N层协议利用 (45)提供的服务向 (46

4、)提供服务,对等实体的含义是 (47),数据在同一个系统自上层传到下层,这种数据格式称为(48)。 ( A) (N-1)层协议 ( B) N层协议 ( C) (N+1)层协议 ( D)传输层 ( A) (N-1)层协议 ( B) N层协议 ( C) (N+1)层协议 ( D)应用层 ( A)上下通信的实体 ( B)执行同一层协议的实体 ( C)执行同一协议的两个实体 ( D)具有相同功能 的实体 ( A)协议数据单元 PDU ( B)服务数据单元 SDU ( C)帧 ( D)数据包 15 Windows是常见的具有图形界面的 (81)运行方式的操作系统。其中 Windows Server 20

5、03适用的场合是 (82)。将正在运行的应用程序窗口最小化后,该应用程序处于 (83)状态。 (84)是在体系结构上采用了客户机 /服务器模式的网络操作系统。 ( A)单任务 ( B)多任务 ( C)单用户 ( D)多用户 ( A)个人使用 ( B) Web应用服务器 ( C)实时计算 ( D)科学计算 ( A)运行 ( B)挂起 ( C)停止 ( D)退出 ( A) Windows 95 ( B) Windows NT ( C) Windows98 ( D) Dos 19 安全管理可分为几个级别,若任何一个用户进入系统时都必须进行注册,通常将这一级安全管理称之为 (192)安全管理。在进程状

6、态转换过程中,可能会引起进程阻塞的原因是 (193)。造成计算机系统出现死锁的原因是 (194)。 CPU不查询设备状态,当设备准备好肘,主动向 CPU提出传输请求, CPU响应的信息交换方式是(195)方式。 ( A)文件级 ( B)系统 级 ( C)用户级 ( D)目录级 ( A) I/O完成 ( B)时间片到 ( C)执行 V操作 ( D)执行 P操作 ( A)系统中有多个阻塞进程 ( B)资源数大大小于系统中的进程数 ( C)若干进程相互等待对方已占有的资源 ( D)系统中多个进程同时申请的资源总数大大超过系统资源总数 ( A)中断 ( B) DMA ( C)查询等待 ( D)程序控制

7、 23 阅读下列函数说明和 C代码,把应填入其中 n处的字句写在答卷的对应栏内。 23 【函数 1.1说明】 函数 strcpy(char * destination, char * source)将字符串 source复制到字符串destination。 【函数 1.1】 void strcpy (char * destination, char*source) while (1) ; 24 【函数 1.2说明】 函数 merge(int a, int n, int b, int m, int *c)是将两个从小到大有序数组 a和 b复制合并出一个有序整数序列 c,其中形参 n和 m分别是数

8、组 a和 b的元素个数。 【函数 1.2】 void merge(int a , int n, int b , int m, int *c) int i, j; for(i=j: 0; i n if( DelNodePtr = FindNode (item,ParNodePtr) = = NULL) (1) if(DelNodePtrright = = NULL) / 被删除结点只有一个子结点的情况 RepNodePtr = DelNodePtrleft; else if( DelNodePtrleft = = NULL) (2); else / 被删除结点有两个子结点的情况 TreeNode

9、 T * PofRNodePtr = DelNodePtr; RepNodePtr = DelNodePtrleft; while(RepNodePtrright ! = NULL) /定位左子树的最右结点 PofRNodePtr =RepNodePtr; RepNodePtr = RepNodePtrright; if(PofRNodePtr = = DelNodePtr) /左子树没有右子结点 (3); else /用左子顷的最右结点替换删除的结点 (4) RepNodePtrleft = DelNodePtrleft; RepNodePtrright = DelNodePtrright;

10、 if (5)/要删除结点是要结点的情况 root = RepNodePtr; else if ( DelNodePtrdata ParNodePtrData) ParNodePtrleft = RepNodePtr; else ParNodePtrright =RepNodePtr; FirstTreeNode ( DelNodePtr ) ;/释放内存资源 size; 79 阅读下列说明和 C+程序,将应填入 (n)处的字句写在对应栏内。 【程序 1说明】 程序 1中定义了数组的类模板,该模板使得对于任意类型的二维数组,可以在访问数组元素的同时,对行下标和列下标进行越界判断,并给出相应的提

11、示信息(C+语言本身不提供对下标越界的判断 )。 【程序 1】 #include iostream. h template class T class Array2D; template class T class Array2DBody friend (1); T * tempBody; int iRows, iColumns, iCurrentRow; Array2DBody(int Rows,int Cols) tempBody =(2); iRows = Rows; iColumns = Cols; iCurrentRow = -1; public: T row_ error = co

12、lumn_ error = false; try if ( iCurrentRow 0 iCurrentRow = iRows) row_ error = true; if( j 0 j = iColumns) column_error = true; if( row_error = = true column_ error = = true) (3); catch(char) if (row_error = = true) cerr “行下标越界 “ iCurrentRow “; if( colmnn_error = = true) cerr “列下标越界 “ j “; cout “n“;

13、return tempBody iCurrentRow * iColumns + j ; Array2 DBody ( ) delete tempBody; ; template class T class Array2D Array2DBody T tBody; public: Array2DBody T (4); Array2D(int Rows,int Cols): (5) ; void main( ) Array2D int al ( 10,20 ); Array2D double a2(3,5); int bl; double b2; b1=a1-510; /有越界提示:行下标越界

14、-5 b1=a11015; /有越界提示:行下标越界 10 b1=a114; /没有越界提示 b2=a226; /有越界提示:列下标越界 6 b2=a21020; /有越界提示:行下标越界 10列下标越界 20 b2=a214; /没有越界提 示 84 阅读以下说明和 C+程序,将应填入 (n)处的字句写在对应栏内。 【 C+程序】 #include stdio. h #include string. h #define Max 1000 class Bank int index; char date Max 10; / 记录交易日 iht amountMax; / 记录每次交易金额,以符号区

15、分存钱和取钱 int rest Max; / 记录每次交易后余额 static iht sum; / 账户累计余额 public: Bank( ) index =0; void deposit( char d , int m) /存入交易 strcpy ( date index , d); amount index = m; (1); rest index = sum; index+; void withdraw (char d , int m) /取出交易 strcpy( date index ,d); (2); (3); rest index = sum; index+; void dis

16、play( ); ; int Bank: sum = 0; void Bank: display ( ) /输出流水 int i; printf(“日期 存入 取出 余额 n“); for (4) printf(“ %8s“ ,datei ); if (5) printf(“ %6d“ , -amounti ); else printf( “%6d “,amounti ); printf( “% 6dn“ ,resti ); void main( ) Bank object; object. deposit ( “2006.2.5“, 1 00 ); object. deposit( “200

17、6.3.2“ , 200); object. withdraw( “2006.4.1“, 50); object. withdraw( “2006.4.5“, 80); object. display ( ); 本程序的执行结果如下: 日期 存入 取出 余额 2006.2.5 100 100 2006.3.2 200 300 2006.4.1 50 250 2006.4.5 80 170 89 阅读以下说明和 C+程序,将应填入 (n)处的字句写在对应栏内。 【说明】 以下程序的功能是计算三角形、矩形和正方形的周长并输出。 程序由 4个类组成:类 Triangle、 Rectangle和 Sq

18、uare分别表示三角形、矩形和正方形;抽象类 Figure提供了一个纯虚拟函数 getGirth(),作为计算上述 3种图形周长的通用接口。 【 C+程序】 # include iostream. h # include math. h class Figure public: virtual double getGirth() =0; /纯虚拟函数 ; class Rectangle: (1) protected: double height; double width; public: Rectangle(); Rectangle( double height, double width)

19、 thisheight = height; thiswidth = width; double getGirth ( ) return (2); ; class Square: (3) public: Square( double width) (4); ; class Triangle: (5) double la; double lb; double lc; public: Triangle( double la,double lb,double lc) thisla = la; thisLb = lb; thislc = lc; double getGirth ( ) return la

20、 + lb + lc; ; void main( ) Figure * figures 3 = new Triangle ( 2,3,3 ),new Rectangle (5,8) , new Square (5) ; for (inti =0;i 3;i+) cout “figures “ i “ girth =“ ( figures i ) getGirth ( ) end1; 94 阅读下列程序说明和 C+程序,把应填入其中 (n)处的字句,写对应栏内。 【说明】 下面的程序实现了类 String的构造函数、析构函数和赋值函数。 已知类 String的原型为: class String

21、public: String(coust char * str = NULL); /普通构造函数 String( const String /拷贝构造函数 String(void); /析构函数 String /赋值函数 private: char * m_data; / 用于保存字符串 ; /String 的析构函数 String: String (void) (1); /String 的普通构造函数 String: :String( const char * str) if (2) m_data = new char1; *m_data = 0; else int length = str

22、len(str); m_data = new ehar length + 1 ; strepy(m_data, str); /拷贝的构造函数 String: String( const String m_data = new char length + 1 ; strepy(m_data, other, m_data); /赋值函数 String delete m_clara; /释放原有的内存资源 int length = strlen( other, m_data); m_data = new chart length + 1 ; (4); return (5); 99 阅读以下说明和 C

23、+程序,将应填入 (n)处的字句写在对应栏内。 【说明】 下面程序的功能是计算并输出某年某月的天数,函数 IsLeap Year()能够判断是否是闰年。 【 C+程序】 # include iostream using namespace std; (1) Month Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec ; class Date public: Date( int year, Month m_ month) thisyear = year; if( (2) ) month: Jan; else month = m

24、_ month; ; Date(); bool IsLeap Year( ) return (year%4= =0 ; int CaculateDays( ) switch(m_month ) case (3) ; 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 Sop: case Nov: return 30; private: int year; Month m

25、onth; ; void main( ) Date day(2000,Feb); cout day. (5) ( ); 104 阅读下列程序说明和 C+程序,把应填入其中 (n)处的字句,写在对应栏内。 【说明】 阅读下面几段 C+程序回答相应问题。 104 比较下面两段程序的优缺点。 for (i=0; i N; i+ ) if (condition) /DoSomething else /DoOtherthing if (condition) for (i =0; i N; i+ ) /DoSomething else for (i=0; i N; i+ ) /DoOtherthing 1

26、05 下面的程序各自独立,请问执行下面的四个 TestMemory 函数各有什么样的结果 ? void GetMemory(char * p) p = (char * )malloc(100); void TestMemory (void) char *str = NULL; GetMemory (str); strcpy(str, “hello world“); prinff(str); char * GetMemory (void) char p = “hello world“; return p; void TestMemory (void) char * str = NULL; str

27、 = GetMemory( ); printf(str); void GetMemory(char * * p, int num) * p = (char * )malloc(num); void TestMemory (void) char * str = NULL; GetMemory( strcpy( str, “hello“ ); printf(sir); void TestMemory (void) char *str = (char * )malloe(100); strepy (str, “hello“ ); free ( str ); if(str ! = NULL) stre

28、py( str, “world“ ); printf(str); 106 阅读以下说明和 C+代码,将应填入 (n)处的字句写在对应栏内。【说明】 某网络游戏存在战士 (Fighter)、野蛮人 (Savage)、白法师 (White Witch)三种角色,它们具有 Role接口,角色的类图关系如图 1.1所示。现要将黑法师 (BlackWitch)角色加入此网络游戏以实现功能扩充。已知某第三方库已经提供了法师 (Witch)类,且完全满足系统新增的黑法师角色所需的功能,但法师 (Witch)不是由 Role派生而来,它提供的接口不能被系统直接使用。代码 8-1既使用了法师 (Witch),又

29、遵循了Role规定的接口,既避免了从头开发一个 新的黑法师类,又可以不修改游戏中已经定义的接口。代码 8-2根据用户指定的参数生成特定的角色实例,并对之进行显示操作。 游戏中定义的接口与黑法师 (BlackWitch)提供的显示接口及其功能见表1.1。 【代码 8-1】 class BlackWitch: public (1) private: (2) m_BlackWitch; public: void display( ) m_BlaekWitch. (3) ; ;【代码 8-2】 class Factory public: (4) getRolelnstance( int type) /

30、生成特定类实例 switch (type) case 0: return new Fighter; case 1: return new Savage; case 2: return new WhiteWitch; case 3: return new BlackWitch; default: return NULL; ;void main(int arge,ehar * argv ) if(arge ! =2) cout “error parameters !“ end1; return; int type = atoi(argv 1 ); Factory factory; Role * s

31、; s = factory. (5); if(s = = NULL) cout “Error get the instance !“ end1; return; s- display( ); delete s; return; 软件水平考试(初级)程序员上午(基础知识)章节练习试卷 1答 案与解析 1 【正确答案】 A 2 【正确答案】 B 3 【正确答案】 C 【试题解析】 -35=-(32+2+1),所以二进制原码为 1 0100011,变反加一后得到补码 1 1011101;将原码各位取反,得到反码 1 1011100。 4 【正确答案】 C 5 【正确答案】 B 6 【正确答案】 B

32、【试题解析】 X原码的首位是 1,所以 X为负数,化真值为十进制得到 -0111 1101=-125。 Y补码的首位为 1,所以 Y也是负数, Y的真值等于 Y的补码减 2,即 1.1111 101-10=-0.000 0011=-3/128。对于定点整数 Z=1111 1101-10000000=0111 1101=125。 7 【正确答案】 D 8 【正确答案】 C 9 【正确答案】 C 10 【正确答案】 A 【试题解析】 最佳置换算法选择暂时不使用的或者在最长时间内不再被访问的页面作为被淘汰的页面,这是一种理想的算法,用于衡量其他算法的好坏。总是选择淘汰最先进入内存的页面的算法是先进先出置换算法 (FIFO);最近最久未使用置换算法 (LRU)选择淘汰在最近一段时间内最久 未用的页面。采用 FIFO算法时,在第 5、 6、 7、 9、 11、 12次页面请求时发生缺页中断,采用 LRU算法时,在第 5、 7、 9、 10次页面请求时发生缺页中断。

展开阅读全文
相关资源
猜你喜欢
相关搜索

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

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