试题三(共 15 分)阅读以下说明和 C 语言程序,将应填入 (n) 处的字句写在答题纸的对应栏内。[说明]某电信公司记录了每个用户的详细通话情况(每次通话数据记录在一行) ,现将某用户某月的通话数据存入一个文本文件“dial.txt” ,其数据格式如下:拨入或拨出标记 通话开始时间 通话结束时间 对方号码注 1:数据字段以一个空格作为分隔符。注 2:拨入和拨出标记均为小写字母。拨入标记为“i”,表示其他用户呼叫本机,本机用户不需付费;拨出标记为“o” ,表示本机呼叫其他用户,此时本机用户需要付费。注 3:通话开始和结束时间的格式均为:HH:MM:SS。其中 HH 表示小时,取值 00~23;MM 表示分钟,取值 00~59;SS 表示秒,取值 00~59。从通话开始到结束这段时间称为通话时间,假定每次通话时间以秒为单位,最短为 1 秒,最长不超过 24 小时。注 4:跨月的通话记录计入下个月的通话数据文件。例如“o 23:01:12 00:12:15 …”表示本次通话是本机呼叫其他用户,时间从 23时 01 分 12 秒至次日的 0 时 12 分 15 秒,通话时间为 71 分 03 秒。 下面程序的功能是计算并输出该用户本月电话费(单位:元)。通话计费规则为:1. 月通话费按每次通话费累加;2. 每次的通话费按通话时间每分钟 0.08 元计算,不足 1 分钟时按 1 分钟计费。 对于每次的拨出通话,程序中先分别计算出通话开始和结束时间相对于当日 0 点 0分 0 秒的时间长度(以秒为单位) ,然后算出本次通话时间和通话费。 例如,若输入文件 dial.txt 的数据如下所示,则输出 fee = 7.44。o 14:05:23 14:11:25 82346789i 15:10:00 16:01:15 13890000000o 10:53:12 11:07:05 63000123o 23:01:12 00:12:15 13356789001[C 程序代码]#include stdio.hFILE *fin;int main(){char str[80];int h1,h2,m1,m2,s1,s2;long t_start,t_end, interval;int c;double fee = 0;fin = fopen("dial.txt","r");if (!fin)return -1;while (!feof(fin)) {if (!fgets(str,80,fin)) break;if ( (1) ) continue;h1 = (str[2] - 48) * 10 + str[3] - 48;m1 = (str[5] - 48) * 10 + str[6] - 48;s1 = (str[8] - 48) * 10 + str[9] - 48;h2 = (str[11] - 48) * 10 + str[12] - 48;m2 = (str[14] - 48) * 10 + str[15] - 48;s2 = (str[17] - 48) * 10 + str[18] - 48;t_start = h1*60*60 + m1*60 + s1; /* 通话开始时间 */t_end = h2*60*60 + m2*60 + s2; /* 通话结束时间 */if ( (2) ) /* 若通话开始和结束时间跨日 */interval = (3) - t_start + t_end;elseinterval = t_end - t_start;c = (4) ; /* 计算完整分钟数表示的通话时间 */if (interval % 60)(5) ;fee += c * 0.08;}fclose(fin);printf("fee = %.2lf\n",fee);return 0;}

试题三(共 15 分)

阅读以下说明和 C 语言程序,将应填入 (n) 处的字句写在答题纸的对应栏内。

[说明]

某电信公司记录了每个用户的详细通话情况(每次通话数据记录在一行) ,现将某用户某月的通话数据存入一个文本文件“dial.txt” ,其数据格式如下:

拨入或拨出标记 通话开始时间 通话结束时间 对方号码

注 1:数据字段以一个空格作为分隔符。

注 2:拨入和拨出标记均为小写字母。拨入标记为“i”,表示其他用户呼叫本机,本机用户不需付费;拨出标记为“o” ,表示本机呼叫其他用户,此时本机用户需要付费。

注 3:通话开始和结束时间的格式均为:HH:MM:SS。其中 HH 表示小时,取值 00~23;MM 表示分钟,取值 00~59;SS 表示秒,取值 00~59。从通话开始到结束这段时间称为通话时间,假定每次通话时间以秒为单位,最短为 1 秒,最长不超过 24 小时。

注 4:跨月的通话记录计入下个月的通话数据文件。

例如“o 23:01:12 00:12:15 …”表示本次通话是本机呼叫其他用户,时间从 23时 01 分 12 秒至次日的 0 时 12 分 15 秒,通话时间为 71 分 03 秒。 下面程序的功能是计算并输出该用户本月电话费(单位:元)。

通话计费规则为:

1. 月通话费按每次通话费累加;

2. 每次的通话费按通话时间每分钟 0.08 元计算,不足 1 分钟时按 1 分钟计费。 对于每次的拨出通话,程序中先分别计算出通话开始和结束时间相对于当日 0 点 0分 0 秒的时间长度(以秒为单位) ,然后算出本次通话时间和通话费。 例如,若输入文件 dial.txt 的数据如下所示,则输出 fee = 7.44。

o 14:05:23 14:11:25 82346789

i 15:10:00 16:01:15 13890000000

o 10:53:12 11:07:05 63000123

o 23:01:12 00:12:15 13356789001

[C 程序代码]

#include <stdio.h>

FILE *fin;

int main()

{

char str[80];

int h1,h2,m1,m2,s1,s2;

long t_start,t_end, interval;

int c;

double fee = 0;

fin = fopen("dial.txt","r");

if (!fin)

return -1;

while (!feof(fin)) {

if (!fgets(str,80,fin)) break;

if ( (1) ) continue;

h1 = (str[2] - 48) * 10 + str[3] - 48;

m1 = (str[5] - 48) * 10 + str[6] - 48;

s1 = (str[8] - 48) * 10 + str[9] - 48;

h2 = (str[11] - 48) * 10 + str[12] - 48;

m2 = (str[14] - 48) * 10 + str[15] - 48;

s2 = (str[17] - 48) * 10 + str[18] - 48;

t_start = h1*60*60 + m1*60 + s1; /* 通话开始时间 */

t_end = h2*60*60 + m2*60 + s2; /* 通话结束时间 */

if ( (2) ) /* 若通话开始和结束时间跨日 */

interval = (3) - t_start + t_end;

else

interval = t_end - t_start;

c = (4) ; /* 计算完整分钟数表示的通话时间 */

if (interval % 60)

(5) ;

fee += c * 0.08;

}

fclose(fin);

printf("fee = %.2lf\n",fee);

return 0;

}


相关考题:

●试题四阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。【函数】void QuickSort(int A[],int s,int t){int i=s,j=t+1,temp;int x=A[s];do{do i++;while (1) ;do j--;while(A[j]x);if(ij){temp=A[i]; (2) ; (3) ;}}while(ij);A[a]=A[j];A[j]=x;if(si-1) (4) ;if(j+1t) (5) ;}

阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。【说明】已知头指针分别为La和lb的有序单链表,其数据元素都是按值非递减排列。现要归并La和Lb得到单链表Lc,使得Lc中的元素按值非递减排列。程序流程图如下所示:

阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。[说明]完成以下中序线索化二叉树的算法。[函数]Typedef int datatype;Typedef struct node {Int ltag, rtag;Datatype data;*lchild,* rchild;}bithptr;bithptr pre;void inthread ( p );{if{inthread ( p->lchild );if ( p->lchild==unll ) (1);if ( P->RCHILD=NULL) p->rtag=1;if (2){if (3) pre->rchild=p;if ( p->1tag==1 )(4);}INTHREAD ( P->RCHILD );(5);}}

阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。[说明]设学生某次考试的成绩按学号顺序逐行存放于某文件中,文件以单行句点“.”为结束符。下面的流程图读取该文件,统计出全部成绩中的最高分max和最低分min。

阅读下面的说明,回答问题1~问题4,将解答填入答题纸对应的解答栏内。[说明]阅读以下说明,回答问题1~问题4,将解答填入答题纸对应的解答栏内。windows Server 2003是一个多任务多用户的操作系统,能够以集中或分布的方式实现各种应用服务器角色,是目前应用比较广的操作系统之一。Windows内置许多应用服务功能,将下表中(1)~(5)处空缺的服务器名称填写在答题纸对应的解答栏内。(1)

阅读下列程序说明和C++程序,把应填入其中(n)处的字句,写在对应栏内。【说明】阅读下面几段C++程序回答相应问题。比较下面两段程序的优缺点。①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…}

阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。[说明]下面的流程图用于计算一个英文句子中最长单词的长度(即单词中字母个数)MAX。假设该英文句子中只含字母、空格和句点“.”,其中句点表示结尾,空格之间连续的字母串称为单词。[流程图]

阅读以下关于软件测试的说明,回答司题l至问题3,将解答填入答题纸的对应栏内。【说明】使用在汽车、飞机中的嵌入式软件, 日于直接影响人的生命及财产安全,测试要求更为严格。语句覆盖、判定覆盖、条件覆盖和MC/DC覆盖是通常对这类软件的要求。以下是一段C语言代码,请仔细阅读并回答相关问题:【问题1】(6分)请根据测试要求,简要说明语句覆盖、判定覆盖、条件覆盖和MC/DC覆盖的含义。将答案填写在答题纸的对应栏中。【问题2】(5分)画出以上代码的流程图,将答案填写在答题纸的对应栏中。【问题3】(4分)请根据【说明】中的C语言代码,计算满足MC/DC覆盖要求的用例数量及条件取值范围,将答案填写在答题纸的对应栏中.

●试题二阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】该程序运行后,输出下面的数字金字塔【程序】includestdio.hmain (){char max,next;int i;for(max=′1′;max=′9′;max++){for(i=1;i=20- (1) ;++i)printf(" ");for(next= (2) ;next= (3) ;next++)printf("%c",next);for(next= (4) ;next= (5) ;next--)printf("%c",next);printf("\n");}}

●试题一阅读下列说明和流程图,将应填入(n)的字句写在答题纸的对应栏内。【说明】下列流程图(如图4所示)用泰勒(Taylor)展开式sinx=x-x3/3!+x5/5!-x7/7!+…+(-1)n×x 2n+1/(2n+1)!+…【流程图】图4计算并打印sinx的近似值。其中用ε(0)表示误差要求。

试题四(共20 分) 阅读以下说明和 C 语言代码, 回答问题 1 至问题3, 将解答填入答题纸的对应栏内。 试题四(共20 分)阅读以下说明和 C 语言代码, 回答问题 1 至问题3, 将解答填入答题纸的对应栏内。【说明】在实时系统中, 许多控制软件需要将数据封装到一个数据结构中, 以节省存储空间。对于位操作,使用汇编语言实现其访问比较容易,但会增加编程难度,因此现在普遍采用 C 语言实现。使用高级语言编程要特别注意结构的存储格式以及编译器的特性。本题所使用的编译器对变量按声明顺序分配地址。分析图 4-1所示的 C 语言代码,回答以下问题。【问题 1】 (8 分)如果处理机按 16 位以大端方式(big_endian)编址,请在图 4-2 所示的存储器图表中填入 myRadarData 数据的存储内容(十六进制表示)。【问题 2】 (8分)在图 4-1 所示的程序中,第 22 行的语句执行完成后,下列语句的结果是多少?请将应填入(n)处的内容写在答题纸的对应栏中。q-X = (1)q-Y = (2)q-Z = (3)q-U = (4)若再执行一次q++,则下列语句的结果又是多少?请将应填入(n)处的内容写在答题纸的对应栏中。q-X = (5)q-Y = (6)q-Z = (7)q-U = (8)【问题 3】 (4 分)内存空间常划分为代码段(text) 、数据段(data) 、bss 段(bss) 、堆区(heap)和栈区(stack) ,那么图 4-1 中 myRadarData 数组的存储空间应分配在哪个段中?指针变量 p、q 应分配在哪个段中?

试题三(共 15 分)阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。

表a列出了 GSM系统中的网元设备,试从表b中选取最恰当的有关设备目的或功能的描述,将应填入(n)处的对应字母写在答题纸的对应栏内。

图2-1是基于软交换的网络分层模型。请将选项应填入(n)处的字句写在答题纸对应的解答栏内。

(a)智能网概念模型中分布功能平面模型如下图所示,请根据此图将应填入(n)处的 字句写在答题纸的对应栏内。

(1)请写出CDMA系统中干扰裕量与小区负载的关系式。(2)表6-2为GSM系统的网络关键性能指标(KPI)的名称和要求,请将表6-2补充完整,将应填入(n)处的字句写在答题纸的对应栏内。(3分,每空1分)

下图是基于软交换的网络分层模型简图,请根据简图将应填入(n)处的字句写在答题 纸的对应栏内。(图中(6)是(4)与媒体网关交互时可以使用的控制协议)

()阅读下列说明和C语言程序,将应填入 (n)处的语句写在答题纸的对应栏内。[说明]有一个一维数组cj,内放20个学生成绩,求平均成绩。函数ave用来求20个学生的平均成绩。[C语言函数]float ave(float a[20]){ int i;float aver,sum= (1) ;for(i=1;i20;i++) sum= (2) ;aver= (3) ;return( (4) );}main(){ float cj[20],aver;int i;printf(“input 20 cj:\n”);for(i=0;i20;i++) scanf(“%f”,cj[i]);printf(“\n”);aver= (5) ;printf(“average cj is %6.2f”,aver);}

()阅读下列说明和C语言程序,将应填入 (n)处的语句写在答题纸的对应栏内。[说明]下面程序是一个带参数的主函数,其功能是显示在命令行中输入的文本文件内容。[C语言函数]#include"stdio.h"main(argc,argv) int argc; char *argv[]; { (1) ; if((fp=fopen(argv[1],”r’’))== (2) ) { printf(”file not open!\n”);exit(0);} while( (3) ) putchar( (4) ); (5); }

图6-1是下一代网络的体系结构简图,请根据此简图将应填入(n)处的字句写在答题纸的对应栏内。

图6-1是基于软交换的网络分层模型简图,其中(1)、(2)为网络层次,(3)、(4)、(5)、(6)为软交换系统中的设备,(7)(8)为软交换系统中相关设备之间的协议。请根据简图将应填入(n)处的字句写在答题纸的对应栏内,括号内的数字相同处代表同一字句,(n)相同者只计1分)。

下图是基于软交换的网络分层模型简图,其中(1)、(2) 为网络层次,(3)、(4)、(5)为软交换系统中的设备。请根据简图将应填入( )处的字句 写在答题纸对应的解答栏内,括号内数字相同处代表同一字句,( n )相同者只计2分)基于软件交换的网络分层模型简图

阅读下列说明和C++-代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。【C++代码】 #include using namespace std; class invoice{ public: (1){ cout

阅读下列说明,补充(1)-(9),将解答填入答题纸的对应栏内。

阅读下列说明和C++代码,回答问题,将解答填入答题纸的对应栏内。【说明】某航空公司的会员积分系统将其会员划分为:普卡 (Basic)、银卡(Silver)和金卡 (Gold) 三个等级。非会员 (NonMember) 可以申请成为普卡会员。会员的等级根据其一年内累积 的里程数进行调整。描述会员等级调整的状态图如图 5-1 所示。现采用状态 (State) 模式实现上述场景,得到如图 5-2 所示的类图。【问题1】(15分)阅读上述说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。

阅读下列说明和 Java 代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某软件公司欲开发一款汽车竞速类游戏,需要模拟长轮胎和短轮胎急刹车时在路面上 留 下的不同痕迹,并考虑后续能模拟更多种轮胎急刹车时的痕迹。现采用策略(Strategy) 设 计模式来实现该需求,所设计的类图如图 5-1 所示。

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 某文件管理系统中定义了类OfficeDoc和DocExplorer,当类OfficeDoc发生变化时,类DocExplorer的所有对象都要更新其自身的状态,现采用观察者(Observer)设计模式来实现该需求,所设计的类图如图6-1所示。

阅读下列说明和?C++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】阅读下列说明和?Java代码,将应填入?(n)?处的字句写在答题纸的对应栏内。【说明】某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种类可能不同,但其制作过程相同。前台服务员?(Waiter)?调度厨师制作套餐。现采用生成器?(Builder)?模式实现制作过程,得到如图?6-1?所示的类图。