欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】初级程序员下午试题-107及答案解析.doc

    • 资源ID:1330069       资源大小:66.50KB        全文页数:18页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】初级程序员下午试题-107及答案解析.doc

    1、初级程序员下午试题-107 及答案解析(总分:90.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)流程图说明下列流程图用泰勒(Taylor)展开式sinx=x-x3/3!+x5/5!-x7/7!+(-1)n*x2n+1/(2n+1)!+计算并打印 sinx的近似值。其中用 (0)表示误差要求。流程图(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_二、试题二(总题数:1,分数:15.00)说明函数 void convert(char *a,int n)是用递归方法将一个正整数 n按逆序存放到一个字符数组 a中,例如 n=123,在

    2、 a中的存放为3、2、1。函数 2.1void convert(char *a,int n)int i;if(i=n/10)! =0) convert( (1) ,i);*a= (2) ;函数 2.2说明函数 int index(char *s,char *t)检查字符串 s中是否包含字符串 t,若包含,则返回 t在 s中的开始位置(下标值),否则返回-1。函数 2.2int index(char *s, char *t)int i,j=0;k=0;for(i=0; si!=/0;i+)for ( (3) ;(tk!=/0)(sj!=/0) ( (4) );j+,k+);if( (5) ) r

    3、eturn (i);return (-1);(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_三、试题三(总题数:1,分数:15.00)函数说明 3.1假设以带头结点的单循环链表作非递减有序线性表的存储结构。函数 deleteklist(LinkList head)的功能是删除表中所有数值相同的多余元素,并释放结点空间。函数 3.1Void deleteklist (LinkList head)LinkNode *p,*q;p=head-next;while (p!=head)q=p-next;while( (1) )(2) ;free(q);q=p-n

    4、ext; p=p-next;函数说明 3.2已知一棵完全二叉树存放于一个一维数组 Tn中,Tn中存放的是各结点的值。下面的程序的功能是:从 T0开始顺序读出各结点的值,建立该二叉树的二叉链表表示。函数 3.2#includeistream.htypedef struct node int data;stuct node leftChild,rightchild;BintreeNode; typedef BintreeNode *BinaryTree;void ConstrucTree(int T , int n, int i, BintreeNode *ptr)if(i=n) (3) ; /*

    5、置根指针为空*/elseptr=(BTNode*) malloc(sizeof(BTNode)ptr-data=Ti; ConstrucTree (T,n, 2*i+1, (4) );ConstrucTree (T,n, (5) ,ptr-rightchild);main(void)/*根据顺序存储结构建立二叉链表*/Binarytree bitree; int n;printf(“please enter the number of node: /n%s“; n);int *A=(int*)malloc (n*sizeof (int) ;for (int i=0; in; i+) scanf

    6、(“%d“ ,A+i); /*从键盘输入结点值*/for (int i=0; in; i+) printf(“%d“,Ai);ConstructTree (A,n, 0,bitree);(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_四、试题四(总题数:1,分数:15.00)说明从文件 in.dat中读取一篇英文文章存入到字符串数组 xx中,以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组 xx中,最后把结果 xx输出到文件 OUT6.DAT中。原始数据文件存放的格式是:每行的宽度

    7、均小于 80个字符,含标点符号和空格。函数#includestring.h#includeconio .h#includectype.h#includestdio.hchar xx5080;int maxline = 0 ; /*文章的总行数*/int ReadDat (void) ;void WriteDat (void) ;void StrOL(void)char *p1,*p2,t 80;int i;for (i=0; imaxline; i+)p1=xxi;t0=0;while (*p1) p1+;while (p1=xx i)while (! isalpha (*p1) p1 ! =

    8、xx i) p1-;p2 =p1;while( (1) )p1-;if (p1=xx i)if (isalpha (*p1) p1-;else if (! isalpha (* (p1+1;) break;p2+;(2) ;strcat (t,p1+1) ;strcat (t, “ “) ;strcpy (xx i ,t) ;void mainif( (3) )printf (“数据文件 in.dat不能打开! /n/007“) ;return;StrOL ();writeDat ();getch;int ReadDat (void)FILE *fp;int i=0;char *p;if (f

    9、p=fopen (“e:/a/in.dat “ , “r“) =NULL) return 1;while (fgets (xx i , 80, fp) ! =NULL) p=strchr (xx i , /n) ;if(p)*p=0i+ ;maxline= (4) ;fclose (fp);return 0; void WriteDat (void)FILE *fp;int i; fp=fopen(“e: /a/out6 .dat“ ,“w“);for (i=0; i( (5) ) ; i+)printf(“%s/n“ ,xx i);fprintf (fp, “%s/n“, xxi);fclo

    10、se(fp); (分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_五、试题五(总题数:1,分数:15.00)说明设计一个日期类 Date,包括年、月、日等私有数据成员。要求实现日期的基本运算,如某日期加上天数、某日期减去天数、两日期相差的天数等。在 Date类中设计如下重载运算符函数。Date operator+(int days):返回某日期加上天数得到的日期。Date operator-(int days):返回某日期减去天数得到的日期。int operator-(Date b):返回两日期相差的天数。C+程序#includeiostream. hi

    11、nt day_tab212=31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,31, 29, 31,30, 31, 30, 31, 31,30,31,30,31;/day_tab二维数组存放各月天数,第一行对应非闰年,第二行对应闰年class Dateint year,month,day;/年,月,日int leap (int); /判断是否为闰年int dton (Date); Date ntod (int);Public:Date()Date(int y,int mint d)year=y;month=m;day=d;void setday (i

    12、ntd) day=d;void setmonth (int m)month=m;void setyear(int y)year=y;int getday()return day;int getmonth()return month;int getyear() return year;Date operator+(int days) /+运算符重载函数static Date date;int number= (1) ;date=ntod (number); return date;Date operator-(int days) /-运算符重载函数statis Date date;int num

    13、ber= (2) ; number-=days;date=ntod (number);return date;int operator-(Date b) /-运算符重载函数int days= (3) ;return days;void disp()coutyear“.“month“,“dayendl; int Date:leap (int year)if( (4) ) /是闰年return 1; /不是闰年elsereturn 0;int Date:dton (Date d) /求从公元 0年 0月 0日到 d日期的天数int y,m,days=0;for (y=1;y=d.year;y+)i

    14、f( (5) )days+=366; /闰年时加 366天else days+=365; /非闰年时加 365天for (m=0;md.mont.h-1;m+)if (leap (d.year)days+=day_tab 1 m;elsedays+=day_tab 0m;days+=d.day;return days;Date Date:ntod (int n) /将从公元 0年 0月 0日的天数转换成日期int y=1,m=1,d,rest=n,1p;while (1)if (leap (y)if (rest-366)break;else rest-=366;else /非闰年if (res

    15、t=365)break;else rest-=365;y+; y-;1p=leap (y); while (1)if (1p) /闰年if (restday_tab 1m-1)rest-=day_tab 1 m-1; else break;else /非闰年if(restday_tab0 m-1)rest-=day_tab0m-1;else break;m+:d=rest;return Date (y; m, d); void main()Date now(2003, 10,1),then (2005,6,5);cout“now:“; now. disp();cout“then:“; then

    16、 .disp();cout“相差天数:“(then-now)endl;Date d1=now+1000,d2=now-1000;cout“now+1000:“; d1. disp();cout“now-1000:“; d2. disp();(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_六、试题六(总题数:1,分数:15.00)说明下面程序是为汽车市场编制的一个程序的一部分。其中 automobile是基类。Java程序class MainJavapublic static void main (String agrcar sedan=new car;

    17、 sedan.initialize (24, 20.0, 4);System.out.println(“The sedan can travel“+ (1) +“miles./n“); System.out .println(“The sedan has“+ (2) +“doors./n“); class automobileprotected int miles_per_gallon; /汽车每加仑行驶公里数(3) double fuel_capacity; /油箱容积public void initialize (int in_mpg, int in_fuel)miles_per_gall

    18、on=in_mpg;fuel_capacity=in_fuel;public int get_mpg() /提供一辆特定汽车每加仑公里数return miles_per_gallon;public double get_fuel() /提供油箱容积return fuel_capacity;public double travel_distance() /计算满油箱情况下的可行驶总公里数return (4) ; class car (5) private int Total_doors;public void initialize(int in_mpg, double in_fuel, int

    19、doors)Total_doors=doors;miles_per_gallon=in_mpg;fuel_capacity=in_fuel;public int doors()return Total_doors;(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_初级程序员下午试题-107 答案解析(总分:90.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)流程图说明下列流程图用泰勒(Taylor)展开式sinx=x-x3/3!+x5/5!-x7/7!+(-1)n*x2n+1/(2n+1)!+计算并打印 sinx的近似值。其中用

    20、(0)表示误差要求。流程图(分数:15.00)填空项 1:_ (正确答案:x*x)解析:填空项 1:_ (正确答案:x-t)解析:填空项 1:_ (正确答案:|t|:)解析:填空项 1:_ (正确答案:s+2s)解析:填空项 1:_ (正确答案:(-1)*t*x2/(s*(s-1))解析:解析 本题的关键是搞清楚几个变量的含义。很显然变量 t是用来保存多项各项的值的,变量 s和变量 x2的作用是什么呢?从流程图的功能上看,需要计算 1!、3!、5!,又从变量 s的初值置为 1可知,变量 s主要用来计算这些数的阶乘,但没有其他变量用于整数自增的,这样就可以判断 s是用来存储这些奇数的,即 s值依

    21、次为 1、3、5,。但 X2的功能还不明确,现在可以不用管它。空(2)的作用是给 t赋初值,即给它多项式的第一项,因此应填写“xt”。空(3)处需填写循环条件,显然当 t的绝对值小于 (0)时就表示已经达到误差要求,因此空(3)应填入“|t|;”。由变量 s的功能可知,空(4)应当实现变量 s的增加,因此空(4)应填入“s+2s”。空(5)应当是求多项式下一项的值,根据多项式连续两项的关系可知,当前一项为 t时,后一项的值为(-1)*t*x*x/(s*(s-1)。但这样的话,每次循环都需要计算一次 x*x,计算效率受到影响,联想到变量 x2还没用,这时就可以判断 x2就是用来存储 x*x的值,

    22、使得每次循环者少进行一次乘法运算。因此空(1)处应填入“x*x”,空(5)处应填入“(-1)*t*x2/(s*(s-1)”。二、试题二(总题数:1,分数:15.00)说明函数 void convert(char *a,int n)是用递归方法将一个正整数 n按逆序存放到一个字符数组 a中,例如 n=123,在 a中的存放为3、2、1。函数 2.1void convert(char *a,int n)int i;if(i=n/10)! =0) convert( (1) ,i);*a= (2) ;函数 2.2说明函数 int index(char *s,char *t)检查字符串 s中是否包含字符

    23、串 t,若包含,则返回 t在 s中的开始位置(下标值),否则返回-1。函数 2.2int index(char *s, char *t)int i,j=0;k=0;for(i=0; si!=/0;i+)for ( (3) ;(tk!=/0)(sj!=/0) ( (4) );j+,k+);if( (5) ) return (i);return (-1);(分数:15.00)填空项 1:_ (正确答案:a+1)解析:填空项 1:_ (正确答案:n%10+/0)解析:填空项 1:_ (正确答案:j=i,k=0)解析:填空项 1:_ (正确答案:tk=sj)解析:填空项 1:_ (正确答案:tk=/0

    24、或!tk)解析:解析 函数 1采用递归方法将一个正整数 n按逆序存放到一个字符数组 a中,递归调用为convert(a+1,i),所以空(1)填 a+1。按逆序输出字符保存在数组 a中为*a_n%10+/0,即空(2)填n%10+/0。函数 2检查字符串 s中是否含有字符串 t是在 for循环中实现的。空(3)应填 j=i,k=0。如果两个字符串中含有相同的字符,则字符串 s和字符串 t都指向下一个字符,循环继续,直到字符串 t结束。所以空(4)应填 tk=sj,空(5)应填 tk=/0或!tk。三、试题三(总题数:1,分数:15.00)函数说明 3.1假设以带头结点的单循环链表作非递减有序线

    25、性表的存储结构。函数 deleteklist(LinkList head)的功能是删除表中所有数值相同的多余元素,并释放结点空间。函数 3.1Void deleteklist (LinkList head)LinkNode *p,*q;p=head-next;while (p!=head)q=p-next;while( (1) )(2) ;free(q);q=p-next; p=p-next;函数说明 3.2已知一棵完全二叉树存放于一个一维数组 Tn中,Tn中存放的是各结点的值。下面的程序的功能是:从 T0开始顺序读出各结点的值,建立该二叉树的二叉链表表示。函数 3.2#includeistr

    26、eam.htypedef struct node int data;stuct node leftChild,rightchild;BintreeNode; typedef BintreeNode *BinaryTree;void ConstrucTree(int T , int n, int i, BintreeNode *ptr)if(i=n) (3) ; /*置根指针为空*/elseptr=(BTNode*) malloc(sizeof(BTNode)ptr-data=Ti; ConstrucTree (T,n, 2*i+1, (4) );ConstrucTree (T,n, (5) ,

    27、ptr-rightchild);main(void)/*根据顺序存储结构建立二叉链表*/Binarytree bitree; int n;printf(“please enter the number of node: /n%s“; n);int *A=(int*)malloc (n*sizeof (int) ;for (int i=0; in; i+) scanf(“%d“ ,A+i); /*从键盘输入结点值*/for (int i=0; in; i+) printf(“%d“,Ai);ConstructTree (A,n, 0,bitree);(分数:15.00)填空项 1:_ (正确答案

    28、:q!=head q-data=p-data)解析:填空项 1:_ (正确答案:p-next=q-next)解析:填空项 1:_ (正确答案:pt=NULL)解析:填空项 1:_ (正确答案:ptr-leftchild)解析:填空项 1:_ (正确答案:2*i+2)解析:解析 这一题共有两个程序,第一个函数是考查链表操作,第二个程序是使用递归法创建链式存储的二叉树。先看第一个函数。这个函数由于 while循环实现对链表的遍历,在这个 while循环中又嵌套着一个 while循环,内循环实现了删除相同元素的功能。由说明和程序可知,p 指针指向当前遍历结点,q 指向当前结点的后继结点,如果这两个结

    29、点的数据域相等,则将其删除。这个循环何时结束呢?显然,当各结点的数据域不相等时要结束,或者当 q指向链表头结点时,整个链表已经遍历完了也要结束,因此空(1)处应填写“q!=head q-data=p-data”或其等价形式。如果指针 p和指针 q所指的结点的数据域相等,则要将指针 q所指的结点删除,从内存中释放空间必须使指针 q所指的结点的后继结点接到指针 p所指的结点后,因此空(2)处应填写“p-next=q-next”。再来分析第二个程序。这个程序由两个函数组成,函数 main()实现数据输入,函数 ConstrucTree(int T,int n,int i,BintreeNode *p

    30、tr)用于建立二叉链表。根据空(3)所在语句的注释,很容易填写空(3),当 i=n 时,就说明二叉树不存这个结点,即将根指针置空,因此空(3)应填写“ptr=NULL”。当 in 时,先生成一个结点,将数组 T第 i个元素数据填入该结点,接下来建立结点的左子树和右子树。根据完全二叉树的顺序存储的定义,可以第 i个元素左子树根结点为 2*i+1,右子树的根结点为 2*i+2。因此第一条递归调用是建立左子树,第二条递归调用是建立右子树。因此空(4)应填写“ptr-leftchild”,空(5)应填写“2*i+2”。四、试题四(总题数:1,分数:15.00)说明从文件 in.dat中读取一篇英文文章

    31、存入到字符串数组 xx中,以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组 xx中,最后把结果 xx输出到文件 OUT6.DAT中。原始数据文件存放的格式是:每行的宽度均小于 80个字符,含标点符号和空格。函数#includestring.h#includeconio .h#includectype.h#includestdio.hchar xx5080;int maxline = 0 ; /*文章的总行数*/int ReadDat (void) ;void WriteDat (void) ;void StrOL(void

    32、)char *p1,*p2,t 80;int i;for (i=0; imaxline; i+)p1=xxi;t0=0;while (*p1) p1+;while (p1=xx i)while (! isalpha (*p1) p1 ! =xx i) p1-;p2 =p1;while( (1) )p1-;if (p1=xx i)if (isalpha (*p1) p1-;else if (! isalpha (* (p1+1;) break;p2+;(2) ;strcat (t,p1+1) ;strcat (t, “ “) ;strcpy (xx i ,t) ;void mainif( (3)

    33、 )printf (“数据文件 in.dat不能打开! /n/007“) ;return;StrOL ();writeDat ();getch;int ReadDat (void)FILE *fp;int i=0;char *p;if (fp=fopen (“e:/a/in.dat “ , “r“) =NULL) return 1;while (fgets (xx i , 80, fp) ! =NULL) p=strchr (xx i , /n) ;if(p)*p=0i+ ;maxline= (4) ;fclose (fp);return 0; void WriteDat (void)FILE

    34、 *fp;int i; fp=fopen(“e: /a/out6 .dat“ ,“w“);for (i=0; i( (5) ) ; i+)printf(“%s/n“ ,xx i);fprintf (fp, “%s/n“, xxi);fclose(fp); (分数:15.00)填空项 1:_ (正确答案:isalpha(*p1)p1!=xxi)解析:填空项 1:_ (正确答案:*p2=0)解析:填空项 1:_ (正确答案:ReadDat())解析:填空项 1:_ (正确答案:i)解析:填空项 1:_ (正确答案:maxline)解析:解析 在主函数中首先调用函数 ReadDat(),从文件 in

    35、.dat中读取一篇英文文章存入到字符串数组 xx中,所以空(3)应填入“ReadDat()”。用变量 maxline表示文章的行数,所以空(4)应填入“i”。函数 StrOL()的功能是以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排,然后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组 xx中,采用的算法是先让两字符指针都指向串尾,然后使一指针(p1)往前移动,当出现不是字母时则表示在 p1+1与 p2之间是一个单词,并将该单词存入一变量(t1),最后将 t1连接到新串中(t);接着再往前找第二个单词,依次类推,直到字符串头。for 循环中的第一个 while循环将字符指针

    36、移到串尾,在第二个 while循环中,首先要去掉不是字母的字符,将p2也指向串尾,然后向前找一个单词及 p1所指向的应为字母,且要保证仍然在本行,所以空(1)可填入“isalpha(*p1)p1!=xxi”(或等价形式),这样 p1+1与 p2之间是一个单词,要作字符串处理,p2加 1,指向字符串结束标记,所以空(2)应填入“*p2=/0”或者“*p2=0”。最后通过调用函数 Writedat()把结果 XX输出到文件中,空(5)为输入的行数,显然应填入“maxline”。五、试题五(总题数:1,分数:15.00)说明设计一个日期类 Date,包括年、月、日等私有数据成员。要求实现日期的基本运

    37、算,如某日期加上天数、某日期减去天数、两日期相差的天数等。在 Date类中设计如下重载运算符函数。Date operator+(int days):返回某日期加上天数得到的日期。Date operator-(int days):返回某日期减去天数得到的日期。int operator-(Date b):返回两日期相差的天数。C+程序#includeiostream. hint day_tab212=31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,31, 29, 31,30, 31, 30, 31, 31,30,31,30,31;/day_tab二维数

    38、组存放各月天数,第一行对应非闰年,第二行对应闰年class Dateint year,month,day;/年,月,日int leap (int); /判断是否为闰年int dton (Date); Date ntod (int);Public:Date()Date(int y,int mint d)year=y;month=m;day=d;void setday (intd) day=d;void setmonth (int m)month=m;void setyear(int y)year=y;int getday()return day;int getmonth()return mont

    39、h;int getyear() return year;Date operator+(int days) /+运算符重载函数static Date date;int number= (1) ;date=ntod (number); return date;Date operator-(int days) /-运算符重载函数statis Date date;int number= (2) ; number-=days;date=ntod (number);return date;int operator-(Date b) /-运算符重载函数int days= (3) ;return days;v

    40、oid disp()coutyear“.“month“,“dayendl; int Date:leap (int year)if( (4) ) /是闰年return 1; /不是闰年elsereturn 0;int Date:dton (Date d) /求从公元 0年 0月 0日到 d日期的天数int y,m,days=0;for (y=1;y=d.year;y+)if( (5) )days+=366; /闰年时加 366天else days+=365; /非闰年时加 365天for (m=0;md.mont.h-1;m+)if (leap (d.year)days+=day_tab 1 m

    41、;elsedays+=day_tab 0m;days+=d.day;return days;Date Date:ntod (int n) /将从公元 0年 0月 0日的天数转换成日期int y=1,m=1,d,rest=n,1p;while (1)if (leap (y)if (rest-366)break;else rest-=366;else /非闰年if (rest=365)break;else rest-=365;y+; y-;1p=leap (y); while (1)if (1p) /闰年if (restday_tab 1m-1)rest-=day_tab 1 m-1; else

    42、break;else /非闰年if(restday_tab0 m-1)rest-=day_tab0m-1;else break;m+:d=rest;return Date (y; m, d); void main()Date now(2003, 10,1),then (2005,6,5);cout“now:“; now. disp();cout“then:“; then .disp();cout“相差天数:“(then-now)endl;Date d1=now+1000,d2=now-1000;cout“now+1000:“; d1. disp();cout“now-1000:“; d2. d

    43、isp();(分数:15.00)填空项 1:_ (正确答案:dton(*this)+days)解析:填空项 1:_ (正确答案:dton(*this))解析:填空项 1:_ (正确答案:dton(*this)-dton(b)-1)解析:填空项 1:_ (正确答案:year%4=0year%100!=0|year%400=0)解析:填空项 1:_ (正确答案:leap(y))解析:解析 本题程序中对运算符进行重载。其中运算符+表示某日期加上若干天后的日期,第一个“-”表示某日期减去若干天后的日期,第二个“-”表示两日期相差的天数。函数 leap()判断指定的年份是否为闰年,闰年的条件有两个,一是

    44、能被 4整除,但不能被 100整除,或者既能被 100整除,又能被 400整除,所以空(4)应填入“year%4=0 year%100 !=0|year%400=0”。函数 dton()将指定的日期转换成从 0年 0月 0日起的天数,空(5)用来判断之前的年份是否为闰年,调用函数 leap(),所以填入“leap(y)”。函数 ntod将指定的 0年 0月 0日起的天数转换成对应的日期。“+”运算符重载时,先将当前日期转换为从 0年 0月 0日起的天数,再加上要加的天数,最后将天数再转换成对应的日期。所以空(1)应填入“dton(*this)+days”。第一个“-”运算符重载时,先将当前日期转换为从 0年 0月 0日起的天数,再减去要减的天数,最后将天数再转换成对应的日期。而天数的相减由语句“number-=days”完成,所以空(2)应填入“dton(*this)”。第二个“-”运算符重载时,先将两个比较的日期都转换为从 0年 0月 0日起的天数,再相减,所以空(3)应填入“dton(*this)-dton(b)-1”。六、试题六(总题数:1,分数:15.00)说明下面程序是为汽车市场编制的一个程序的一部分。其中 automobile是基类。Java程序class MainJavapublic static void main (String ag


    注意事项

    本文(【计算机类职业资格】初级程序员下午试题-107及答案解析.doc)为本站会员(hopesteam270)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开