首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数isLegal(char*ipaddr)的功能是判断以点分十进制数表示的IPv4地址是否合法。参数ipaddr给出表示IPv4地址的字符串的首地址,串中仅含数字字符和“.”。若IPv4地址合法则返回1,否则返回0。判定为合法的条件是:每个十进制数的值位
函数isLegal(char*ipaddr)的功能是判断以点分十进制数表示的IPv4地址是否合法。参数ipaddr给出表示IPv4地址的字符串的首地址,串中仅含数字字符和“.”。若IPv4地址合法则返回1,否则返回0。判定为合法的条件是:每个十进制数的值位
admin
2018-04-19
70
问题
函数isLegal(char*ipaddr)的功能是判断以点分十进制数表示的IPv4地址是否合法。参数ipaddr给出表示IPv4地址的字符串的首地址,串中仅含数字字符和“.”。若IPv4地址合法则返回1,否则返回0。判定为合法的条件是:每个十进制数的值位于整数区间[0,255],两个相邻的数之间用“.”分隔,共4个数、3个“.”。例如,192.168.0.15、1.0.0.1是合法的,192.168.1.256、1.1.1是不合法的。
【C函数】
int isLegal(char*ipaddr)
{
int flag;
int curVal; //curVal表示分析出的一个十进制数
int decNum=0,dotNum=0;//decNum用于记录十进制数的个数
//dotNum用于记录点的个数
char*p= (1)__________;
for(;*p;p++) {
curVal=0;flag=0;
while(isdigit(*p)) { //判断是否为数字字符
curVal=(2)___________ +*p一'0';
(3)___________;
flag=1;
}
if(curVal>255){
return 0;
}
if(flag)f
(4)___________j
}
if(*p=’.’){
dotNum++;
}
}
if((5)__________){
return 1;
}
return 0;
}
选项
答案
(1)ipaddr (2)curVal*10或其等价形式 (3)p++或其等价形式 (4)decNum++或其等价形式 (5)4=decNum&&3=dotNum或其等价形式
解析
本题考查C程序的基本结构、运算逻辑和指针的简单应用。
函数isLegal(char*ipaddr)的功能是判断以点分十进制数表示的IPv4地址是否合法。
由于IPv4地址是以字符串的方式提供的,因此需要通过扫描字符串,解析出每个十进制数。
由于说明中已保证函数所处理的字符串中仅包含数字字符和“.”,因此代码的运算逻辑中不考虑其他字符。
在for语句中通过指针p来访问每个字符,所以空(1)所在语句需要将指针参数ipaddr的值赋给p。
一个整数可表示为一个多项式,例如198=1*10*10+9*10+8=((0+1)*10+9)*10+8,因此从左到右每得到l位数字,就进行一次计算,直到最后一位数字。在解析字符串中的一个整数时,先令curVal=0,此后每得到一位数字(即*p一’0’),就令curVal*l0+*p一’0’并用该表达式的值更新curVal,直到遇到一个“.”。空(2)处应填入“curVal*10”,空
(3)处应填入“p++”,以读取下一字符。
根据说明,需要对从字符串中解析出的整数进行计数,flag用来标识是否解析出一个整数,若是,则在空(4)处填入“decNum++”实现计数。若该整数超过255,则可以确定是非法的地址。
当完成字符串分析后,应该正好有4个[0,255]范围内的整数和分隔这些数的3个点(个数用dotNum表示),因此空(5)处应填入“4=decNum&&3=dotNum”或其等价形式。
转载请注明原文地址:https://www.kaotiyun.com/show/o2jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Excel中,设单元格A1中的值为100,B1中的值为200,A2中的值为300,B2中的值为400,若在A3单元格中输入函数“=SUM(A1:B2)”,按回车键后,A3单元格中的值为()。
操作系统的功能不包括______。
在Excel中,函数“=AVERAGE(A1,.B4)”的含义是()。
用普通电话线拨号上网,必须有的一个关键设备是(15)。
在Word2007的绘图工具栏上选定矩形工具,按住(36)________________按钮可绘制正方形。
为使双击指定类型的文件名就能调用相应的程序来打开处理它,需要将这种文件类型与相应的程序建立文件(23)。
内存用于存放计算机运行时的指令、程序、需处理的数据和运行结果。但是,存储在(2)中的内容是不能用指令修改的。
在数据库中能够唯一地标识一个记录被称为______。
180的正约数(能整除180的自然数,包括l和180本身)的个数是________。
网页留言效果如下图所示,网页文档如下,请参照表格给出的说明在下划线处填写正确的答案到答题纸对应的栏内。[上图网页中的元素说明] [HTML文本]<!DOCrYPEHTMLPUBLIC“-//W3C//DTDHTML
随机试题
高频超声探头对超声波穿透力的影响是
关于嵌体洞斜面的叙述正确的是
下面关于定价预定利率、预订费用率与保险费率的关系,正确的是( )。
我国《银行业从业人员职业操守》于()起正式通过并实施。
我国经济体制改革的目标是( )
TheBushadministrationisgoingtoproposefar-reachingnewruleswhichwouldgivepeoplewithdisabilitiesgreateraccesstot
在SQL语言中,删除一个表的命令是(22)。
在软件设计中不使用的工具是()。
阿文是某食品贸易公司销售部助理,现需要对2015年的销售数据进行分析,根据以下要求,帮助她完成此项工作。在“订单明细”工作表中,完成下列任务:①根据B列中的产品代码,在C列、D列和E列填入相应的产品名称、产品类别和产品单价(对应信息可在“产品
Canyouspotagoodmarriage?IwasprettysureIcould,startingwithmyown.MyhusbandandIrarelyargued,wehadsimilarca
最新回复
(
0
)