免费智能真题库 > 历年试卷 > 程序员 > 2017年上半年 程序员 下午试卷 案例
  第2题      

 
【说明】
函数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) {
(4)
}

if (*p = ’.’) {
dotNum++;
}

}

if ((5)) {
return 1;
}

return 0;
}
 
问题:2.1   (共15分)
阅读以下说明和C函数,填补函数中的空缺,将解答填入答题纸的对应栏内。
 
 
 

   题号导航      2017年上半年 程序员 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
 
第2题    在手机中做本题