• 全部考试
  • 考试报名
  • 考试时间
  • 成绩查询
  • 网络课程
  • 考试真题
  • 模拟试题
  • 公文文档
  • 文档大全
  • 作文大全
  • 范文大全
  • 招聘大全
  • 当前位置: 勤学考试网 > 考试时间 > 正文

    [C语言字符串笔试题]字符串笔试题

    时间:2019-02-13 00:13:47 来源:勤学考试网 本文已影响 勤学考试网手机站

      C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。下面就由小编为大家介绍一下C语言字符串笔试题的文章,欢迎阅读。

      C语言字符串笔试题篇1

      对一个字符串重新排列,字母排在前面,数字排在后面,并不改变原来字母之间以及数字之间的字符顺序。

      [cpp] view plain copy print?

      #include

      #include

      #include

      #define N 30

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

      *函数名称: fun

      *创建时间: 2010.12.5

      *描 述: 对一个字符串重新排列,字母排在前面,数字排在后面,并不改变原来字母之间以及数字之间的字符顺序。

      *参 数: char * s,int *m

      *返 回 值: chLetter(数组chLetter[]的首元素地址)

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

      * char chNumber[N];

      * int i,j,k;

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

      char * fun(char * s,int *m) //参数m是通过调试才想到的

      {

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

      char chNumber[N]; //用来存放数字

      int i,j,k;

      i=0; //初始化

      j=0; //j用来记录字母的个数

      k=0; //k用来记录数字的个数

      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') //将数字存入chNumber[]

      {

      chNumber[k]=s[i];

      k++;

      }

      }

      chLetter[j]='';

      chNumber[k]='';

      *m=j+k; //用来返回最后输入和输出时字符的个数

      strcat(chLetter,chNumber);

      return chLetter;

      }

      //主函数

      void main()

      {

      char s[N];

      int i;

      int m;

      char *p;

      p=NULL;

      printf("请输入字符串(30字符以内):n");

      scanf("%s",s);

      p=fun(s,&m); //刚开始没定义出这个m来现限制指针p所指数组的长度就出现了后面两个字符乱码

      for (i=0; i

      {

      s[i]=p[i];

      }

      printf("结果为:");

      for (i=0; i

      {

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

      }

      printf("n");

      }

      C语言字符串笔试题篇2

      将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换为t2所指字符串。

      [cpp] view plain copy print?

      #include

      #include

      #include

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

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

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

      *函数名称: fun

      *创建时间: 2010.12.5

      *描 述: 将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换为t2所指字符串

      *参 数: char * s,char * t1, char * t2,int *m

      *返 回 值: w(数组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;

      }

      //主函数

      void main()

      {

      char s[N];

      char t1[T];

      char t2[T];

      int i;

      int m;

      char *p;

      p=NULL;

      printf("请输入字符串(20字符以内):");

      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("结果为:");

      for (i=0; i

      {

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

      }

      printf("n");

      }

      C语言字符串笔试题篇3

      将s所指的字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

      [cpp] view plain copy print?

      #include

      #include

      #include

      #define N 30

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

      *函数名称: fun

      *创建时间: 2010.12.6

      *描 述: 将s所指的字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。

      *参 数: char * s,int * m

      *返 回 值: return t,(t为指向数组的指针)

      *局部变量: char * t;

      * char temp[N];

      * int i,j=0;

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

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

      {

      char * t;

      char temp[N]; //临时的数组,用来存放t所指的数组

      int i,j=0;

      t=temp;

      for (i=0; i

      {

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

      {

      temp[j]=s[i]; //如果是偶数,赋值给t所指的数组

      j++;

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

      {

      break;

      }

      }

      }

      *m=j; //找到m的值即输出结果的长度

      t[j]='';

      return t;

      }

      //主函数

      void main()

      {

      char s[N];

      int i;

      int m;

      char *p;

      p=NULL;

      printf("请输入字符串(30字符以内):n");

      scanf("%s",s);

      p=fun(s,&m); //刚开始没定义出这个m来现限制指针p所指数组的长度就出现了后面两个字符乱码

      for (i=0; i

      {

      s[i]=p[i];

      }

      printf("结果为:");

      for (i=0; i

      {

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

      }

      printf("n");

      }

    • 考试时间
    • 范文大全
    • 作文大全
    • 课程
    • 试题
    • 招聘
    • 文档大全

    推荐访问