學習啦 > 創(chuàng)業(yè)指南 > 職場 > 筆試題 > C語言字符串筆試題

C語言字符串筆試題

時間: 護托1061 分享

C語言字符串筆試題

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

  C語言字符串筆試題篇1

  對一個字符串重新排列,字母排在前面,數(shù)字排在后面,并不改變原來字母之間以及數(shù)字之間的字符順序。

  [cpp] view plain copy print?

  #include

  #include

  #include

  #define N 30

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

  *函數(shù)名稱: fun

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

  *描 述: 對一個字符串重新排列,字母排在前面,數(shù)字排在后面,并不改變原來字母之間以及數(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是通過調(diào)試才想到的

  {

  char chLetter[N]; //用來存放字母

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

  int i,j,k;

  i=0; //初始化

  j=0; //j用來記錄字母的個數(shù)

  k=0; //k用來記錄數(shù)字的個數(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; //用來返回最后輸入和輸出時字符的個數(shù)

  strcat(chLetter,chNumber);

  return chLetter;

  }

  //主函數(shù)

  void main()

  {

  char s[N];

  int i;

  int m;

  char *p;

  p=NULL;

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

  scanf("%s",s);

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

  for (i=0; i

  {

  s[i]=p[i];

  }

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

  for (i=0; i

  {

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

  }

  printf("n");

  }

  C語言字符串筆試題篇2

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

  [cpp] view plain copy print?

  #include

  #include

  #include

  #define N 30 //s所指字符串的最大長度

  #define T 2 //t1和t2所指字符串的長度

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

  *函數(shù)名稱: fun

  *創(chuàng)建時間: 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最后兩個字符會亂碼(想尋求其他方法)

  {

  char w[N]; //用來存放處理后的字符串

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

  char t1temp[T]; //用來存放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;

  }

  }

  //尋找相同時的最后一個字符的下標

  for (i=0; i

  {

  l=0;

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

  {

  temp[l]=s[j];

  }

  temp[T]='';

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

  {

  k=i; //k記錄相同時的最后一個字符的下標

  }

  }

  for (i=0; i

  {

  j=0;

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

  {

  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("請輸入字符串(20字符以內(nèi)):");

  scanf("%s",s);

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

  scanf("%s",t1);

  printf("請輸入將要用來替換的字字符串(僅限兩個字符):");

  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語言字符串筆試題篇3

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

  [cpp] view plain copy print?

  #include

  #include

  #include

  #define N 30

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

  *函數(shù)名稱: fun

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

  *描 述: 將s所指的字符串中ASCII值為奇數(shù)的字符刪除,串中剩余字符形成一個新串放在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ù)組,用來存放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的值先要找出輸入了多少個字符

  {

  break;

  }

  }

  }

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

  t[j]='';

  return t;

  }

  //主函數(shù)

  void main()

  {

  char s[N];

  int i;

  int m;

  char *p;

  p=NULL;

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

  scanf("%s",s);

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

  for (i=0; i

  {

  s[i]=p[i];

  }

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

  for (i=0; i

  {

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

  }

  printf("n");

  }

3173164