[说明]
函数count months(DATE start, DATE
end)的功能是:计算两个给定日期之间所包含的完整月份数。
该函数先算出起止日期中所含的完整年数,再计算余下的完整月份数。
规定两个相邻年份的同月同日之间的问隔为1年。例如,2007.5.30—2008.5.30的间隔为1年。若相邻两年中前一年是闰年,并且日期是2月29日,则到下一年的2月28日为1年,即2008.2.29—2009.2.28的间隔为1年。
规定两个相邻月份的相同日之间的间隔为1个月,但需要特别考虑月末的特殊情况。例如,2007.1.29—2007.2.28的间隔为1个月,同理,2007.1.30—2007.2.28、2007.1.31—2007.2.28的间隔都是1个月。
计算起止日期间隔不足一年的完整月份数时,分两种情况:
(1)起止日期不跨年度。先用终止日期的月号减去起始日期的月号得到月份数,然后再根据情况进行修正。例如,起止日期为2008.3.31—2008.9.20,通过月号算出月份数为6。修正时,通过调用函数makevalid将2008.9.31改为2008.9.30,与终止日期2008.9.20比较后,将月份数修正为5。
(2)起止日期跨年度。计算方法如下例所示:对于起止日期2008.7.25—2009.3.31,先计算2008.7.25—2008.12.25的月份数为5,再算出2008.12.25—2009.3.25的月份数为3,因此2008.7.25—2009.3.31之间的完整月份数为8。
日期数据类型定义如下:
typedef struct {
int year; int month; int day; /*日期的年号(4位)、月和日号*/
}DATE;
程序中使用的函数cmp_date( )、isLeapYear(
)和makevalid( )说明如表11-8所示。
[简答题]阅读以下说明,回答问题。 【说明】 多媒体应用系统是由专家或开发人员利用计算机语言或多媒体创作工具制作的最终产品。目前,多媒体应用系统所涉及的应用领域主要有文化教育(教学软件)、电子出版、音像制作、影视制作、影视特技、开发系统、通信和信息咨询服务等。 (1)开发系统:是用来开发应用的工具性或支持类软件系统,如创作工具、数据库系统、著作语言、多媒体编辑器等。 (2)Title是一类多媒体应用的总称,主要指具有一定主题的应用型光盘产品,如大百科全书、词典、教科书、某一专题的介绍(如风光、古迹、邮票)等。 (3)演示系统:为某一单位或某一应用专门设计的演示系统,更加强调演示上的创意或应用上所要求的特殊效果,例如单位的介绍、产品的演示、某个科研项目表演等。 (4)教育培训:复杂的信息组织格式和交互是此类系统十分重要的特点。因为在教学过程中,不仅仅要求表演信息,而且还要不断地穿插测验、回答、习题等内容。 (5)娱乐:多媒体游戏、影视节目等均属于这一类,更强调交互性和实时性,并不一定要求很大的信息量和准确性。 (6)专门应用系统:此类系统为特定目的而设计,如多媒体会议系统、医学诊断系统等,本身具有鲜明的专业特色。 【问题】 综述多媒体应用设计的基本原则。
[填空题]
阅读以下说明和C语言函数,回答问题。
[说明]
下面待修改的C程序完成的功能是:对于给定的一个长正整数,从其个位数开始,每隔一位取一个数字(即取其个位、百位、万位等数字),形成一个新的整数并输出。例如,将该程序修改正确后,运行时若输入“14251382”,则输出的整数为“4532”。下面给出的C程序代码中有5个错误,请指出所有的错误。
[C程序代码]
01 #include <stdio.h>
02
03 int main( )
04
{
05 long n, num;
06 int
i;
07
08 do {
09 printf("清输入一个正整数: ");
10 scanf("%id", n);
11 }while(n<=0);
12 k=1;
13 for(i=1; n>=0; i++) {
14
if(i io 2=1) {
15 Rum=num+(n%10)*k;
16 k=k * 10;
17 }
18
n=n/10;
19 }
20
printf("新数据为: %d/n", num);
21 return 0;
22 }
[填空题]
阅读以下说明和C语言函数,填补空缺。
[说明]
已知1900年1月1日是星期一,下面的函数count_5_13(int
year)用于计算给定的年份year中有几个“黑色星期五”。“黑色星期五”指既是13日又是星期五的日期。
函数count_5_13(int
year)首先算出年份year的1月13日是星期几,然后依次计算每个月的13日是星期几,若是星期五,则计数。
程序中使用了函数isLeapYear(int
year),其功能是判断给定年份是否为闰年,返回值为1(或0)分别表示year是(或不是)闰年。
[C语言函数]
int Count_5_13(int year)
{
int date;
/*date为0表示星期日,为1~6分别表示星期一至星期六*/
long days=0;
/*days记录天数*/
int m, y, c=0;
/*c用于表示黑色星期五的个数*/
if(year<1900) return-1;
/*计算从1900年1月1日起,至给定年份year的1月13日间隔的天数*/
days=12;
for(y=1900; y<year; y++) {
days +=365;
if (iSLeapYear(Y)) (1)
;
}
date=((days%7)+1)%7;
/*算出给定年份year的1月13日是星期几+/
c=( (2)
)1:0;
for(m=1; (3) ; m++)
{
switch(m) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
days=31; break;
case 4: case 6: case 9: case 11:
days=30; break;
case 2: days=28;
购买搜题卡查看答案
[会员特权] 开通VIP, 查看 全部题目答案
[会员特权] 享免全部广告特权
请选择支付方式
-
微信支付
-
支付宝支付
立即支付
系统将自动为您注册账号
请使用微信扫码支付
请不要关闭本页面,支付完成后请点击【支付完成】按钮
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码