程序員必備面試題

1、

使用main函數的參數,實現一個整數計算器,程序可以接受三個參數,第一個參數“-a”選項執行加法,“-s”選項執行減法,“-m”選項執行乘法,“-d”選項執行除法,後面兩個參數爲操作數。 例如:輸入test.exe -a 1 2 執行1+2輸出3
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv [])
{
   int num1 = atoi( argv[2]);
   int num2 = atoi( argv[3]);
   if (strcmp( "-a", argv [1]) == 0)
   {
      printf( "%d\n", num1 + num2);
   }
   else if (strcmp("-s" , argv[1]) == 0)
   {
      printf( "%d\n", num1 - num2);
   }
   else if (strcmp("-m" , argv[1]) == 0)
   {
      printf( "%d\n", num1 * num2);
   }
   else if(strcmp("-d" , argv[1]) == 0)
   {
      printf( "%d\n", num1 / num2);
   }
   system( "pause");
   return 0;
}

2、編寫函數判斷當前的機器大端小端。

#include <stdio.h>

int check_system()

{

   int a = 1;

   char*p = ( char*)&a;

   if (*p == 1)

       return 0;

   else

       return 1;

}

int main()

{

   if (check_system())

      printf( "大端\n" );

   else

      printf( "小端\n" );

   system( "pause");

   return 0;

}

 

3、判斷一個字符串是否爲另外一個字符串旋轉之後的字符串。 例如:給定s1 = AABCD和s2 = BCDAA,返回1,給定s1=abcd和s2=ACBD,返回0. AABCD左旋一個字符得到ABCDA AABCD左旋兩個字符得到BCDAA AABCD右旋一個字符得到DAABC AABCD右旋兩個字符得到CDAAB

#include

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

int is_move_str(char arr[], char *p )

{

           int n = strlen(arr );

           int m = strlen(p );

           if(m != n)

          {

                    return 0;

          }

          strncat( arr, arr , n);

           if(strstr(arr , p) == NULL)

          {

                    return 0;

          }

           else

                    return 1;

}

int main()

{

           char arr[20] = "abcdef" ;

           char *p = "efabcd" ;

           int ret = is_move_str(arr, p);

           if(ret == 1)

          {

                   printf( "ok\n");

          }

           else if (ret == 0)

          {

                   printf( "no\n");

          }

          system( "pause");

           return 0;

}


     


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章