【计算机类职业资格】初级程序员下午试题-32及答案解析.doc
《【计算机类职业资格】初级程序员下午试题-32及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】初级程序员下午试题-32及答案解析.doc(7页珍藏版)》请在麦多课文档分享上搜索。
1、初级程序员下午试题-32 及答案解析(总分:120.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.说明 下面的流程图用于计算一个英文句子中最长单词的长度(即单词中字母个数)MAX。假设该英文句子中只含字母、空格和句点“.”,其中句点表示结尾,空格之间连续的字母串称为单词。 流程图 (分数:15.00)_二、B试题二/B(总题数:1,分数:15.00)2.说明 下面的程序利用递归算法计算 x 和 y 的最大公约数。 函数 2.1 main ( ) int x,y,k,t; scanf(“ % d% d“ , if(xy) t=x;x=y; y=t; U (1)
2、/U; while(k! =0) y=x; U(2) /U; k=y%x; prinff( “% d“ ,x); 函数 2.2 说明 函数 fun(char *str,char *substr 的功能是计算子串 sugbstr 在串 str 中出现的次数。 函数 2.2 fun(ehar * str, char * substr) int x,y,z; U(3) /U; for(x=0;str x ! = /O;x + + ) for(y=x,z=0;sabstrz = =stry;U (4) /U,y+ +) if( (5) = =/0) num + +; break; return(num
3、); (分数:15.00)_三、B试题三/B(总题数:1,分数:15.00)3.说明 用链式存储结构实现的栈称为链栈。若链栈元素的数据类型为 datatype,以 LinkStack 记链栈结构,其类型定义为: typedef struct node datatype data; stmct node * next; StackNode, * LinkStack; 由于栈的主要操作都是在栈顶进行的,因此我们把链表的头部作为栈顶。设 top 为栈顶指针,即:LinkStack top。 下面各函数的功能说明如下: (1)LinkStack Init_LinkStack():建立并返回空的链栈;
4、(2)int Empty_LinkStack(LinkStack top):判断 top 所指链栈是否空; (3)LinkStack Push_LinkStack(LinkStacktop,datatypex):将数据 x 压人 top 所指链栈的栈顶,返回新栈指针; (4)LinkStack Pop_LinkStack (LinkStacktop, datatype*x):弹出 top 所指链栈的栈顶元素 x,返回新栈指针。 函数 LinkStaek Init_LinkStack( ) returnNULL; int Empty_LinkStack ( LinkStaek top) if(t
5、op = = NULL) return 1; else return 0; LinkStaek Push_LinkStaek( LinkStaektop, datatype X) StaekNode *s; s=malloc (sizeof(StaekNode) ); U(1) /U= x; U(2) /U= top; U (3) /U; return top; LinkStaek Pop_LinkStack (LinkStacktop, datatype * x) StaekNode *p; if(top = = NULL) return NULL; else * x =U (4) /U;
6、p = top; U (5) /U; free (p); return top; (分数:15.00)_四、B试题四/B(总题数:1,分数:15.00)4.说明若矩阵 Amn中存在某个元素 aij满足:a ij是第 i 行中最小值且是第 j 列中的最大值,则称该元素为矩阵A 的一个鞍点。下面程序的功能是输出 A 中所有鞍点,其中参数 A 使用二维数组表示,m 和 n 分别是矩阵A 的行列数。程序void saddle (int A , int m, int n) int i,j,min;for (i=0;i m;i + + ) min:U (1) /U;for (j=1; jn; j+ +)i
7、f(Aijmin)U (2) /U;for (j=0; jn; j+ +)if (U (3) /U) p=0;while (pmif (p = m)printf (“%d,%d,%d/n“,i,j,min);问题 1 将函数代码中的(1)(4)处补充完整问题 2在上述代码的执行过程中,若 A 为矩阵*,则调用 saddle(A,3,3)后输出是U (5) /U。(分数:15.00)_五、B试题五/B(总题数:1,分数:15.00)5.说明我国现行使用的公民身份证号码有两种,分别遵循两个国家标准:GB 11643-1989和GB 11643-1999。CB 11643-1989中规定的是 15
8、位身份证号码,排列顺序从左至右依次为:六位数字地址码,六位数字出生日期码,三位数字顺序码,其中出生日期码不包含世纪数。GB 11643 -1999中规定的是18 位身份证号码,是特征组合码,它由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。其中,校验码 C 由本体码按如下过程求得:(1)计算校验码和 S=a18W18+a17W17+a2w2,其中 i 表示 18 位身份证号,码每一位的序号,从右至左,最左侧为 18,最右侧为 1;ai表示身份证号码第 i 位上的号码;w i表示第 i 位上的权值,其值为 2i-1
9、模11 的结果;(2)计算校验码值 R,其值为校验和模 11 的结果;(3)根据下面对应关系找出校验码 C:R 0 1 2 3 4 5 6 7 8 9 10C 1 0 X 9 8 7 6 5 4 3 2由上述计算过程可以看出,18 位身份证号码中可能包含非数字的字母 X(代表数字 10)。下面的应用程序基于这一算法实现了身份证号码的升位查询:(分数:15.00)_六、B试题六/B(总题数:1,分数:15.00)6.说明 本程序使用类来管理员工的通讯地址信息。已知程序的输出为: 输出记录:5 姓名:王丽华 街道地址:中华路 15 号 市:襄樊市 省;湖北省 邮政编码:430070 C+程序 #i
10、nclude iostream, h #include string, h class employee. protected: char name10; char street 20 ; char city10; charU (1) /U10; char post7; int no; U (2) /U: U(3) /U(char ,char ,char ,char ,char ,int); void changename ( char n ) strcpy ( name, n); void changestreet( char s ) strcpy(street,s) ; void chan
11、gecity ( char c ) strcpy ( city, c ); void changeprov( char p ) strcpy(prov,p); void changeno(int nnm) U (4) /U; void display( ); ; employee:U (3) /U(char n ,char s ,char c ,char p1 ,char p2 ,int nam) strcpy(name,n); strcpy ( street, s); strcpy ( city, c); strcpy ( prov, p1 ); strcpy ( post, p2 ); n
12、o = nam; void employee: display( ) cont “输出记录: “ no endl; cout “姓名: “ name endl; coot “街道地址: “ street endl; cout “市: “ city endl; cout “省: “ prov endl; cout “邮政编码: “ post endl; void main( ) employee cmp(“王华“ ,“中华路 15 号“ ,“武汉市“,“湖北省“,“430070“, 1 ); emp. changename( “五丽华“ ); emp. changecity ( “襄樊市“ );
13、 emp. changeno(5); U(5) /U;(分数:15.00)_七、B试题七/B(总题数:1,分数:15.00)7.说明 设某单位 Acess 数据库中有一张员工信息表,其中记录了员工编号、姓名、性别等基本信息。下面的应用程序利用数据控件(Data)实现了对这张表中记录的增加、删除和修改操作。其运行界面如下: (分数:15.00)_八、B试题八/B(总题数:1,分数:15.00)8.说明 本程序的功能是给公司的员工 Tom,Jack,Green 增加薪水。三人的职位分别是 programmer, Manager,CEO。 程序由 6 个类组成:WorkerTest 是主类,prog
14、rammer,Manager,CEO 三个类,薪水增加的规则是 programmer 的涨幅是 5%;Manager 的是 10%;CEO 也是 Manager,但是它除了有 Manager 的涨幅,还有 1000 元的 bonus。接口 SalaryRaise 提供了一个增加薪水的方法 raise()。 java 程序 public class WorkerTest public WorkerTest( ) public static void main( String args) Programmer programmer = new Programmer( “Tom“ ,3000); M
15、anager manager = new Manager( “Jack“ ,4000); CEO ceo = new CEO( “Green“ ,4000); Worker worker = new Worker3; programmer, raise( ); manager, raise( ); ceo. raise( ); worker0 = programmer; worker 1 = manager; worker2 = ceo; for ( int i = 0 ;i worker, length; i + + ) System. out. prinfln (“ Name:“ + wo
16、rker i. getName ( ) +“ / tSalary:“ + worker i. getSalary (); public interface SalaryRaise void raise( ); public class Worker public String name; public doubleU (1) /U; public Worker( ) public String getName( ) return name; public void setName( String name) this. name = name; public double getSalary(
17、 ) return salary; public void setSalary(double salary) this. salary = salary; public class Programmer extends Worker implementsU (2) /U public Programmer( ) public void raise( ) double pets=0.05; double sala = this. getSalary( ) * (1 + pers); this. setSalary (sala); public Programmer( Siring name, d
18、ouble salary) t this. name = name; this. salary = salary; public class Manager extendsU (3) /Uimplements SalaryRaise public Manager( ) public Manager(String name, double salary) this. name = name; this. salary = salary; public void raise( ) double pets = 0.1; double sala = this. getSalary() * (1 + p
19、ers); this. setSalary(sala); public class CEO extends Manager implements SalaryRaise public CEO() public CEO( String name,double salary) this. name = name; this. salary = salary; public void raise( ) double bonus = 1000; U(4) /U; double sala = this. getSalary( ); U (5) /U; this. setSalary(sala); (分数
20、:15.00)_初级程序员下午试题-32 答案解析(总分:120.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.说明 下面的流程图用于计算一个英文句子中最长单词的长度(即单词中字母个数)MAX。假设该英文句子中只含字母、空格和句点“.”,其中句点表示结尾,空格之间连续的字母串称为单词。 流程图 (分数:15.00)_正确答案:()解析:(1)MAX0 (2)L+1 (3)MAXL (4) (5)L0 解析本题用到的三个变量及其作用分别为:A,存放输入的一个字符;MAX,存放当前为止最长单词的长度;L,存放当前单同的长度。 (1)使用变量 MAX应先赋予初值,由
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 初级 程序员 下午 试题 32 答案 解析 DOC
