鸭子tv国产极品在线观看_成人69视频在线播放_91精品免费在线观看_亚洲AT永久偷窥无码精品_国产精品自产拍在线观看涩浪潮久

江蘇省高校計(jì)算機(jī)等級(jí)考試命題研究院 江蘇省高校計(jì)算機(jī)等級(jí)考試輔導(dǎo)
上機(jī)VC++2009春試題3

2009春上機(jī)3

:改錯(cuò)題

 以下程序中函數(shù)fun(char  (*ss)[N],int *n)的功能是:查找ss所指向的字符串?dāng)?shù)組中長(zhǎng)度最短的字符串,將最短字符串的行號(hào)存放在指針n所指向的數(shù)組中(可能有多個(gè)長(zhǎng)度相同的字符串均為最短字符串),函數(shù)的返回值為長(zhǎng)度最短的字符串的個(gè)數(shù)

#include <iostream.h>

#include <string.h>

#define M 5

#define N 20

 

int fun(char (*ss)[N], int *n)

{int j=0,k=0,len,minlen;

for(int i=0;i<M;i++){                       //for循環(huán)的作用是查找字符長(zhǎng)度最短字符長(zhǎng)度

  len=strlen(ss[i]);                             //len保存字符串長(zhǎng)度

  if(i==0)               //判斷第一個(gè)字符

  {minlen=len;n[j++]=0;k=1;

   break;             //此處不能用break,因?yàn)闀?huì)直接跳出for循環(huán),而改為continue,表示執(zhí)行下一次循環(huán)

  }

  if(len>minlen){                                   //因?yàn)榍笞钚?shù),所以要用<

     minlen=len;j=0;

          n[j++]=i;k=1;

  }

  else if(len==minlen){                          //字符的長(zhǎng)度等于最小長(zhǎng)度就將下標(biāo)放入n數(shù)組中

    n[j++]=i;k++;

  }

}

          return k;

}

 

void main()

{char ss[M][N]={"Beijing","Nanjing","Shanghai","Tianjin","Chongqin"};

  int n[M],k;

  cout<<"給定的字符串為:";

  for(int i=0;i<M;i++)                     //for循環(huán)輸出ss數(shù)組中的值

           cout<<ss[i]<<'\t';

  cout<<endl;

  k=fun(&ss,n);                        //語法錯(cuò)誤,數(shù)組創(chuàng)地址直接寫數(shù)組名字

  cout<<"其中最短字符串有"<<k<<"個(gè),它們是:";

  for(i=0;i<k;i++)

           cout<<ss[i]<<'\t';     //數(shù)組n中存放的是最短字符的下標(biāo),所以應(yīng)該輸出為ss[n[i]]

  cout<<endl;

 

}