• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. C語言面試算法題附答案

        時間:2024-07-10 02:19:25 嵌入式培訓 我要投稿
        • 相關推薦

        2016年C語言面試算法題(附答案)

          1.求組合數: 求n個數(1....n)中k個數的組合....

        2016年C語言面試算法題(附答案)

          如:combination(5,3)

          要求輸出:543,542,541,532,531,521,432,431,421,321,

          /*

          求組合數: 求n個數(1....n)中k個數的組合....

          如:combination(5,3)

          要求輸出:543,542,541,532,531,521,432,431,421,321,

          */

          #include

          #include

          int pop(int *);

          int push(int );

          void combination(int ,int);

          int stack[3]={0};

          int top = -1;

          int main()

          {

          int n,m;

          n = 5;

          m = 3;

          combination(n,m);

          printf("\n");

          }

          void combination(int m,int n)

          {

          int temp = m;

          push(temp);

          while(1)

          {

          if(1==temp)

          {

          if(pop(&temp) && stack[0]==n)

          break;

          }

          else if(push(--temp))

          {

          printf("%d%d%d\n",stack[0],stack[1],stack[2]);

          pop(&temp);

          }

          }

          }

          int push(int i)

          {

          stack[++top]=i;

          if(top<2)

          return 0;

          else

          return 1;

          }

          int pop(int *i)

          {

          *i = stack[top--];

          if(top>=0)

          return 0;

          else

          return 1;

          }

          2.、用指針的方法,將字符串“ABCD1234efgh”前后對調顯示

          #include

          #include

          int main()

          {

          char str[]="ABCD123efgh";

          int length = strlen(str);

          char *p1= str;

          char *p2 = str+length -1;

          while(p1

          {

          char c = *p1;

          *p1 = *p2;

          *p2 = c;

          ++p1;

          --p2;

          }

          printf("str now is %s\n",str);

          return 1;

          }

          3.給定字符串A和B,輸出A和B中的最大公共子串。比如A="aocdfe" B="pmcdfa" 則輸出"cdf"

          #include

          #include

          #include

          char *commanstring(char shortstring[],char longstring[])

          {

          int i,j;

          char *substring = malloc(256);

          if(strstr(longstring,shortstring)!=NULL)

          return shortstring;

          for(i=strlen(shortstring)-1;i>0;i--)

          {

          for(j=0;j<=strlen(shortstring)-i;j++)

          {

          memcpy(substring,&shortstring[j],i);

          substring[i]='\0';

          if(strstr(longstring,substring)!=NULL)

          return substring;

          }

          }

          return NULL;

          }

          void main(void)

          {

          char *str1 = "aocdfe";

          char *str2 = "pmcdfa";

          char *comman = NULL;

          if(strlen(str1)>strlen(str2))

          comman= commanstring(str2,str1);

          else

          comman = commanstring(str1,str2);

          printf("the longest comman string is:%s\n",comman);

          }

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【C語言面試算法題附答案】相關文章:

        經典C語言面試算法題10-13

        嵌入式C語言面試題(附答案)06-15

        計算機二級C語言真題及答案09-26

        excel精選選擇題附答案09-17

        excel判斷題「附答案」08-03

        精選C++面試題及答案05-23

        華為C語言上機試題及答案07-01

        計算機二級C語言考試真題及答案09-30

        excel考試操作題「附答案」10-29

        江蘇高考語文真題附答案07-07

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲国产中文在线二区三区 | 亚洲欧美日韩精品一区二区 | 午夜免费视频.在线观看 | 亚州精品在线播放视频 | 在线观看免费无毒不卡 | 日韩亚洲欧美中文三级 |

            2016年C語言面試算法題(附答案)

              1.求組合數: 求n個數(1....n)中k個數的組合....

            2016年C語言面試算法題(附答案)

              如:combination(5,3)

              要求輸出:543,542,541,532,531,521,432,431,421,321,

              /*

              求組合數: 求n個數(1....n)中k個數的組合....

              如:combination(5,3)

              要求輸出:543,542,541,532,531,521,432,431,421,321,

              */

              #include

              #include

              int pop(int *);

              int push(int );

              void combination(int ,int);

              int stack[3]={0};

              int top = -1;

              int main()

              {

              int n,m;

              n = 5;

              m = 3;

              combination(n,m);

              printf("\n");

              }

              void combination(int m,int n)

              {

              int temp = m;

              push(temp);

              while(1)

              {

              if(1==temp)

              {

              if(pop(&temp) && stack[0]==n)

              break;

              }

              else if(push(--temp))

              {

              printf("%d%d%d\n",stack[0],stack[1],stack[2]);

              pop(&temp);

              }

              }

              }

              int push(int i)

              {

              stack[++top]=i;

              if(top<2)

              return 0;

              else

              return 1;

              }

              int pop(int *i)

              {

              *i = stack[top--];

              if(top>=0)

              return 0;

              else

              return 1;

              }

              2.、用指針的方法,將字符串“ABCD1234efgh”前后對調顯示

              #include

              #include

              int main()

              {

              char str[]="ABCD123efgh";

              int length = strlen(str);

              char *p1= str;

              char *p2 = str+length -1;

              while(p1

              {

              char c = *p1;

              *p1 = *p2;

              *p2 = c;

              ++p1;

              --p2;

              }

              printf("str now is %s\n",str);

              return 1;

              }

              3.給定字符串A和B,輸出A和B中的最大公共子串。比如A="aocdfe" B="pmcdfa" 則輸出"cdf"

              #include

              #include

              #include

              char *commanstring(char shortstring[],char longstring[])

              {

              int i,j;

              char *substring = malloc(256);

              if(strstr(longstring,shortstring)!=NULL)

              return shortstring;

              for(i=strlen(shortstring)-1;i>0;i--)

              {

              for(j=0;j<=strlen(shortstring)-i;j++)

              {

              memcpy(substring,&shortstring[j],i);

              substring[i]='\0';

              if(strstr(longstring,substring)!=NULL)

              return substring;

              }

              }

              return NULL;

              }

              void main(void)

              {

              char *str1 = "aocdfe";

              char *str2 = "pmcdfa";

              char *comman = NULL;

              if(strlen(str1)>strlen(str2))

              comman= commanstring(str2,str1);

              else

              comman = commanstring(str1,str2);

              printf("the longest comman string is:%s\n",comman);

              }