不卡AV在线|网页在线观看无码高清|亚洲国产亚洲国产|国产伦精品一区二区三区免费视频

學(xué)習(xí)啦 > 創(chuàng)業(yè)指南 > 職場(chǎng) > 筆試題 > C語(yǔ)言字符串筆試題

C語(yǔ)言字符串筆試題

時(shí)間: 護(hù)托1061 分享

C語(yǔ)言字符串筆試題

  C語(yǔ)言的運(yùn)算非常靈活,功能十分豐富,運(yùn)算種類遠(yuǎn)多于其它程序設(shè)計(jì)語(yǔ)言。下面就由學(xué)習(xí)啦小編為大家介紹一下C語(yǔ)言字符串筆試題的文章,歡迎閱讀。

  C語(yǔ)言字符串筆試題篇1

  對(duì)一個(gè)字符串重新排列,字母排在前面,數(shù)字排在后面,并不改變?cè)瓉?lái)字母之間以及數(shù)字之間的字符順序。

  [cpp] view plain copy print?

  #include

  #include

  #include

  #define N 30

  /***********************************************

  *函數(shù)名稱: fun

  *創(chuàng)建時(shí)間: 2010.12.5

  *描 述: 對(duì)一個(gè)字符串重新排列,字母排在前面,數(shù)字排在后面,并不改變?cè)瓉?lái)字母之間以及數(shù)字之間的字符順序。

  *參 數(shù): char * s,int *m

  *返 回 值: chLetter(數(shù)組chLetter[]的首元素地址)

  *局部變量: char chLetter[N];

  * char chNumber[N];

  * int i,j,k;

  ************************************************/

  char * fun(char * s,int *m) //參數(shù)m是通過(guò)調(diào)試才想到的

  {

  char chLetter[N]; //用來(lái)存放字母

  char chNumber[N]; //用來(lái)存放數(shù)字

  int i,j,k;

  i=0; //初始化

  j=0; //j用來(lái)記錄字母的個(gè)數(shù)

  k=0; //k用來(lái)記錄數(shù)字的個(gè)數(shù)

  for (i=0; i

  {

  if (s[i] >= 'A' && s[i] <= 'Z' //將字母存入chLetter[]

  || s[i] >= 'a' && s[i] <= 'z')

  {

  chLetter[j]=s[i];

  j++;

  }

  if (s[i] >= '0' && s[i] <='9') //將數(shù)字存入chNumber[]

  {

  chNumber[k]=s[i];

  k++;

  }

  }

  chLetter[j]='';

  chNumber[k]='';

  *m=j+k; //用來(lái)返回最后輸入和輸出時(shí)字符的個(gè)數(shù)

  strcat(chLetter,chNumber);

  return chLetter;

  }

  //主函數(shù)

  void main()

  {

  char s[N];

  int i;

  int m;

  char *p;

  p=NULL;

  printf("請(qǐng)輸入字符串(30字符以內(nèi)):n");

  scanf("%s",s);

  p=fun(s,&m); //剛開(kāi)始沒(méi)定義出這個(gè)m來(lái)現(xiàn)限制指針p所指數(shù)組的長(zhǎng)度就出現(xiàn)了后面兩個(gè)字符亂碼

  for (i=0; i

  {

  s[i]=p[i];

  }

  printf("結(jié)果為:");

  for (i=0; i

  {

  printf("%c",s[i]);

  }

  printf("n");

  }

  C語(yǔ)言字符串筆試題篇2

  將s所指字符串中最后一次出現(xiàn)的與t1所指字符串相同的子串替換為t2所指字符串。

  [cpp] view plain copy print?

  #include

  #include

  #include

  #define N 30 //s所指字符串的最大長(zhǎng)度

  #define T 2 //t1和t2所指字符串的長(zhǎng)度

  /***********************************************

  *函數(shù)名稱: fun

  *創(chuàng)建時(shí)間: 2010.12.5

  *描 述: 將s所指字符串中最后一次出現(xiàn)的與t1所指字符串相同的子串替換為t2所指字符串

  *參 數(shù): char * s,char * t1, char * t2,int *m

  *返 回 值: w(數(shù)組w[]的首元素地址)

  *局部變量: char w[N];

  * char temp[T];

  * char t1temp[T];

  * int i,j,k,l;

  ************************************************/

  char * fun(char * s,char * t1, char * t2,int *m) //m的作用和第一題一樣,沒(méi)m最后兩個(gè)字符會(huì)亂碼(想尋求其他方法)

  {

  char w[N]; //用來(lái)存放處理后的字符串

  char temp[T]; //用來(lái)存放從s所指字符串中截取的子串

  char t1temp[T]; //用來(lái)存放t1所指字符串

  int i,j,k,l;

  //向t1temp中存入t1所指字符串

  for (i=0; i

  {

  t1temp[i]=t1[i];

  }

  t1temp[T]='';

  //求m所指的值

  for (i=0;i

  {

  if (s[i]=='')

  {

  *m=i;

  }

  }

  //尋找相同時(shí)的最后一個(gè)字符的下標(biāo)

  for (i=0; i

  {

  l=0;

  for (j=i; j<(i+T); j++,l++) //截取長(zhǎng)度為T的子串存到temp[]中

  {

  temp[l]=s[j];

  }

  temp[T]='';

  if (strcmp(t1temp,temp) == 0)

  {

  k=i; //k記錄相同時(shí)的最后一個(gè)字符的下標(biāo)

  }

  }

  for (i=0; i

  {

  j=0;

  if (i>=k && i<(k+T)) //在找到的k點(diǎn)處開(kāi)始換值

  {

  w[i]=t2[j]; //換值

  j++;

  }

  else

  {

  w[i]=s[i];

  }

  }

  return w;

  }

  //主函數(shù)

  void main()

  {

  char s[N];

  char t1[T];

  char t2[T];

  int i;

  int m;

  char *p;

  p=NULL;

  printf("請(qǐng)輸入字符串(20字符以內(nèi)):");

  scanf("%s",s);

  printf("請(qǐng)輸入將要被替換的子字符串(僅限兩個(gè)字符):");

  scanf("%s",t1);

  printf("請(qǐng)輸入將要用來(lái)替換的字字符串(僅限兩個(gè)字符):");

  scanf("%s",t2);

  p=fun(s,t1,t2,&m);

  for (i=0; i

  {

  s[i]=p[i];

  }

  printf("結(jié)果為:");

  for (i=0; i

  {

  printf("%c",s[i]);

  }

  printf("n");

  }

  C語(yǔ)言字符串筆試題篇3

  將s所指的字符串中ASCII值為奇數(shù)的字符刪除,串中剩余字符形成一個(gè)新串放在t所指的數(shù)組中。

  [cpp] view plain copy print?

  #include

  #include

  #include

  #define N 30

  /***********************************************

  *函數(shù)名稱: fun

  *創(chuàng)建時(shí)間: 2010.12.6

  *描 述: 將s所指的字符串中ASCII值為奇數(shù)的字符刪除,串中剩余字符形成一個(gè)新串放在t所指的數(shù)組中。

  *參 數(shù): char * s,int * m

  *返 回 值: return t,(t為指向數(shù)組的指針)

  *局部變量: char * t;

  * char temp[N];

  * int i,j=0;

  ************************************************/

  char * fun(char * s,int * m)

  {

  char * t;

  char temp[N]; //臨時(shí)的數(shù)組,用來(lái)存放t所指的數(shù)組

  int i,j=0;

  t=temp;

  for (i=0; i

  {

  if (s[i]%2==0 )

  {

  temp[j]=s[i]; //如果是偶數(shù),賦值給t所指的數(shù)組

  j++;

  if (s[i]=='') //找到m的值先要找出輸入了多少個(gè)字符

  {

  break;

  }

  }

  }

  *m=j; //找到m的值即輸出結(jié)果的長(zhǎng)度

  t[j]='';

  return t;

  }

  //主函數(shù)

  void main()

  {

  char s[N];

  int i;

  int m;

  char *p;

  p=NULL;

  printf("請(qǐng)輸入字符串(30字符以內(nèi)):n");

  scanf("%s",s);

  p=fun(s,&m); //剛開(kāi)始沒(méi)定義出這個(gè)m來(lái)現(xiàn)限制指針p所指數(shù)組的長(zhǎng)度就出現(xiàn)了后面兩個(gè)字符亂碼

  for (i=0; i

  {

  s[i]=p[i];

  }

  printf("結(jié)果為:");

  for (i=0; i

  {

  printf("%c",s[i]);

  }

  printf("n");

  }

3173164