首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 软件考试 > 考试试题 >

09年5月程序员笔试精选试题(附答案及解析)(4)

2009-05-09 

    个人解析下:

  首先我们从for (j=0;j<5;j++)看起,往下是

  {

  if (a[j]==0)

  break;

  printf("M",a[j]);

  }

  提示: 把a[5][5]二维数组中的每列中从左至右第一个为零的数之前的数输出!

  for (i=0;i<5;i++) 就是5行

  #include

  #include

  fun(char *w,int n)

  {

  char t,*sl,*s2;

  s1=w;

  s2=w+n-1;

  while (s1  {

  t=*s1++

  *s1=*s2--

  *s2=t;

  }

  }

  main()

  {

  char *p;

  p="1234567";

  fun (p,strlen(p));

  puts(p);

  }

  答案:1711717

  提示: 主要是认清楚S1=? S2=? 首先 S1=W,这S1存的是字符串W的首地址,而S2=W+N-1=P+7-1 OK,也就是W中最后一个字符的地址·

  阅读下列函数说明和C函数,将应填入__(n)__处的字句写在答题纸的对应栏内。

  [函数1.1说明]

  函数palindrome(chars[])的功能是:判断字符串s是否为回文字符串,若是,则返回0,否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:“LEVEL”是回文字符串,而“LEVAL”不是。

  [函数1.1]

  int palindrome(char S[])

  { char *pi,*pj;

  pi=S;pj=s+strlen(S)-1:

  while ( pi  pi++; pj--;

  }

  if(__ (2)__)return-1;

  else return 0;

  }

    [函数1.2说明]

  函数f(char *str,char del)的功能是;将非空字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。

  例如若str的值为“33123333435”,del的值为‘3’,调用此函数后,将输出三个子字符串,分别为“12”、“4”和“5”。

  [函数1.2]

  void f(char*str,char del)

  { int i,j,len;

  len = strlen(str);

  i = 0;

  while (i  while (__(3)__) i++;    /*忽略连续的标志字符*/

  /*寻找从str开始直到标志字符出现的一个子字符串*/

  j = i + 1;

  while (str[j] !=del && str[j] !=’\0’) j++;

  __ (4)__="\0";         /*给找到的字符序列置字符串结束标志*/

  printf(" %s\t",&str): ’

  __ (5)__;

  }

  }

  答案:

  (1)*pi == *pj

  (2)pi  (3)str== del

  (4)str[j]

  (5) i = j+1

  提示: 首先看第一题 条件:pi=S;pj=s+strlen(S)-1:pi就是首地址啦,pj就是末地址啦,我们需要把第一个和最后一个比较,第二和倒二比···....OK,那while ( pi  第二题,有注释哦·不懂就提出来·不过偶想大家都会滴·

 

3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.net/exam/

热点排行