C语言笔试题带答案6.doc(8)

2019-01-07 14:11

printf(”x=%o”,x); }

答案:【15】x=11

评析:在对无符号数的右移是高位补0。

(16)函数delete(s,i,n)是作用是从字符串s中删除从第i个字符开始的n个字符,请填空。

void delete(char s[],int i,int n)

{ int j,k,length=O;

while(s[1ength])

【16】 ; –i: j=i; }

if( 【17】 )

{ k=i+n;

if(i+n<=length)

while(k

s[j++]=s[k++];

s[j]=?\0?; }

答案:【16】length++

【17】i

评析:第一个循环极有可能是计算串的长度,在i<=length时字符才被删除,被删除的是从第i个到第i+n或最后一个间的所有字符。删除前,应判断i<=length。由于已经进行了一i运算,故实际应填入i

(17)下述函数统计一个字符串中的单词个数,单词是指处在空格之间的字符序列,请填空。

int word(char*s)

{ int num=O,flag=O; while(*s)

{ if( 【18】 ==”)flag=O;

else if( 【19】 ){flag=1;num++} }

return 【20】 ; }

答案:【18】*s++

【19】flag==O或*(s-1)==”

【20】num

评析:在统计字符串单词个数的算法中,本题的flag是为了记录一个单词是否结束。第18空应填*s++;如果某个字符不是空格,则必需判断它是否是单词,如是,则使得flag的标志为1,num的值加1。本题判断方法是:先判断s所指向的字符是否为空格,如果是则使得flag=O,否则判断前一个字符是否是空格,如果是则说明这个字符是一个单词的开始,将flag标志为1,num的值加1,如果不是,则不必记录。故第19空应flag==O或*(s-1)==”;最后一个空格需填写的是返回的单词的个数,即num。 来自IT公司面试手册


C语言笔试题带答案6.doc(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:两位数乘三位数(应用题)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: