网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

阅读以下说明和C语言程序,将应填入(n)。

【说明】

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

拨入或拨出标记通话开始时间通话结束时间对方号码 注1:数据字段以一个空格作为分隔符。

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

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

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

例如“o23:01:1200: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)。【说明】某电信公司记录了每个用户的详细通话情况(每次通话数据记录在一行),现将某用户某月的通话数据存入一个文本文件dial.txt,其数据格式如下:拨入或拨出标记通话开始时间通话结束时间对方号码 注1:数据字段以一个空格作为分隔符。注2:拨入和拨出标记均为小写字母。拨入标记为i,表示其他用户呼叫本机,本机用户不需付费:拨出标记为o,表示本机呼叫其他用户,此时本机用户需要付费。注3:通话开始和结束时间的格式均为HH:MM:SS。其中HH表示小时,取值00~ 23;MM表示分钟,取值00~59;SS表示秒,取值00~59。从通话开始到结束这段时间称为通话时间,假定每次通话时间以秒为单位,最短为1秒,最长不超过24小时。注4:跨月的通话记录计入下个月的通话数据文件。例如“o23:01:1200: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.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;elseinterval=t_end-t_start;c= (4) ; /*计算完整分钟数表示的通话时间*/if (interval % 60)(5);fee+=c*0.08;}fclose(fin);printf("fee=%.2lf\n",fee);return 0;} ” 相关考题
考题 阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。【说明】已知头指针分别为La和lb的有序单链表,其数据元素都是按值非递减排列。现要归并La和Lb得到单链表Lc,使得Lc中的元素按值非递减排列。程序流程图如下所示:

考题 某电信公司手机的A类收费标准如下:不管通话时间多长,每部手机每月必须缴纳月租费50元,另外,每通话1分交费0.4元。(1)写出每月应缴费用y(元)与通话时间x(分)之间的关系式;(2)某手机用户这个月通话时间为152分,他应缴费多少元?(3)如果该手机用户本月预交了200元的话费,那么该用户本月可通话多长时间?

考题 阅读下列程序说明和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…}

考题 ●试题二阅读以下说明和流程图,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某城市电信局受理了许多用户申请在指定电话上开设长话业务。长话包括国内长途和国际长途。电信局保存了长话用户档案和长话业务档案。长话用户档案的记录格式为长话业务档案的记录格式为电话用户每次通话的计费数据都自动地记录在电信局程控交换机的磁带上。计费数据的记录格式为该电信局为了用计算机自动处理长话收费以提高工作效率,开发了长话计费管理系统。该系统每月能为每个长话用户打印出长话缴费通知单。长话缴费通知单的记录格式为流程图描述了该系统的数据处理过程。该系统每天对原始的计费数据进行分类排序,并确定每个通话记录的通话类型(市话/国内长途/国际长途),再根据话费单价文件算出每个通话记录应收取的话费。因此,形成的日计费文件中,增加了两个数据项:通话类型和话费。该系统每日对日计费文件进行累计(按电话号码和通话类型,对该类型的话费进行累计,得到该电话号码该通话类型的当月话费总计),形成月计费文件。月计费文件经过长话出账处理形成长话账单文件。长话账单文件的记录格式为长话账单文件经过处理5和处理6的处理后,就可以形成长话缴费通知单。【问题1】(1) 请说明流程图1中的文件F0、F1分别是哪个文件。(2) 处理1和处理5分别按照哪些数据项进行分类?【问题2】处理4能发现哪些错误(不需考虑设备故障错误)?【问题3】说明处理6的功能。【流程图】(如图3所示)图 3

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

考题 阅读以下说明、Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】IC卡和200卡都是从电话卡派生的。下面的程序将电话卡定义为抽象类。其中 balance为双精度变量,代表电话卡中的余额;cardNumber是长整型变量,代表电话卡的卡号;password是整型变量,代表电话卡的密码;connectNumber是字符串变量,代表电话卡的接入号码;connected是布尔变量,代表电话是否接通。performDial()实现各种电话接通后的扣除费用的操作。其中200卡每次通话扣除0.5元的通话费用和附加费用;IC卡每次通话扣除0.9元的通话费。TimeLeft()方法用于测试电话卡余额还可以拨打电话的次数。performConnection()用于电话接入操作,如果卡号和密码正确,则接通;否则,接不通。【程序】abstract class PhoneCard{doubte balace;(1) perfermDial();double getBalance(){ return balance; }double TimeLeft(){double current=balance;int times=0;do{(2)times++;}white(balance>=0);balance=current;return times-1;}}abstract class Number_PhoneCard extends PhoneCard{long cardNumber:int password;String connectNumber;Boolean connected;Boolean performConnection(long cn, int pw){if(cn==cardNumber (3) ){connected=true;return true;}else return false;}}class IC Card (4){boolean performDial(){if(balance>0.9){balance-=0.9;return true;}else return false;}}class D200_Card (4){static double additoryFee;static{ additoryFee=0.1; }boolean performDial(){if(balance>(0,5+additeryFee)){(5)return true;}else return false;}}

考题 ()阅读下列说明和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); }

考题 试题三(共 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;}

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