基本的なプログラミングのインタビュー

1. 「abcd」などの文字列を反転させ、「dcba」に変更します。

1  / * 文字列を反転* / 
2 #include <stdio.h>
 3 #include < 文字列 .h>
 4 #include <stdlib.h>
 5  
6  char * str_reverse(char * src)
 7  {
 8      char * dest = NULL ;
 9  
10      int len = strlen(src);
 11      dest =(char *)malloc(len + 1);   // \ 0にスペースを割り当てる
12      char * d = dest;
 13      charSRC =&S * [lenは1。];
 14      ながら(LEN =!0 15      {    
 16          * ++ = D * S -カントン;
 17。          len-- ;
 18れる     }
 19。      * D = ' \ 0 ' ;    // この場合、D最後の要素を
指す'0'または '\ 0' 20      return dest; // ヒープメモリへのポインターを返すことができ、スタックは機能しません
21  }
 22  
23  int main(int argc、const  char * argv [])
 24  {
 25      char* src = " ABCDEF " ;
 26      char * dest = str_reverse(src);
 27      printf(" %s \ n " 、dest);
 28  
29      free(dest);   // ヒープメモリを解放してメモリリークを回避する
30  
31      return  0 ;
 32 }
str_reverse.c
1 #include <stdio.h>
 2 #include < string .h>
 3 #include <stdlib.h>
 4  
5  int main(int argc、const  char * argv [])
 6  {
 7      char str [] = " ABCDEFG " ;
8      int len = strlen(str);
9  
10      文字 t;  // 中于量
11      int i;
12      のための式(I = 0 ; I <= LEN / 2 ; iが++ 13     {
 14          t = str [i];
15          str [i] = str [len-i- 1 ];
16          str [len-i- 1 ] = t;
17      }
 18      printf(" %s \ n " 、str);
19は     0を返し ます20 }
str_reverse.c

関連知識:文字列と文字配列

データ型文字列はC言語には存在しませんが、文字配列を使用して文字列を保存しています

文字列ポインタ変数自体は、文字列の最初のアドレスを格納するために使用される変数です。文字列自体は、最初のアドレスで始まり '\ 0'で終わる連続したメモリ空間に格納されます。

文字ポインタは全体として割り当てることができます:

char * ps =” C言語”; char * ps; ps =” C言語”;と書くことができます。

文字配列は、宣言されて初期化されたときにのみ、全体として割り当てることができます。

配列モードchar st [] = {” C言語”}; char st [20]として書き込むことはできません; St = {” C言語”};初期化後、文字配列の各要素には1つずつしか割り当てることができません。

2. 2つのスタックでキューの機能を実装する

アイデア:

最初は空の2つのスタックをAとBとします。

エンキュー:

新しい要素をスタックAにプッシュします。

出発:

(1)スタックBが空かどうかを判別します。

(2)空でない場合、スタックBの一番上の要素がポップアウトされます。空の場合、Aのすべての要素がPOPアウトされ、Bにプッシュされます。その後、一番上の要素がPOPアウトされ、Aが1つ下に移動します。単位。

 

3.マクロを使用してスワップを実装する

算数

a = a + b;
b = a- b;
a = ab;
#define swap1(x、y)(y)=(x)+(y); (x)=(y)-(x); (y)=(y)-(x);

 

4.マクロは2つのパラメーターを入力し、小さい方のパラメーターを返します

#define MIN(x、y)((x)<(y)?(x):( y))

 

5.線形テーブルaとbは2つの順序付き昇順線形テーブルです。2つの順序付き線形テーブルを1つの順序付き昇順線形テーブルhにマージするプログラムを作成します。

 

6. 2つの配列とそのサイズ、および動的に開発されたメモリを指定し、交差を見つけて、その交差を動的メモリドンタイに入れ、交差の数を返します。

 

7.単一の連続テーブルの確立、「a」〜「z」の26文字を連続テーブルに挿入し、フラッシュバックして印刷します。

 

8.ソフトウェアの時間のスペースまたは時間のスペースの例を挙げてください。

1 ---> 時間优
 2  void swap(int a、int b)
 3  {
 4      int c;
5      c = a;
6      a = b;
7      b = c;
8  }
 9 ---> 空优
 10  void swap(int a、int b)
 11  {
 12      a = a + b;
13      b = a- b;
14      a = a- b;
15 }
スワップ

 

9. C言語を使用して、ライブラリ関数を使用せずに整数を文字列に変換する

 

10.最小の公開文字列を見つける

 

11. 2つの文字列str1とstr2のサイズを比較する関数を記述し、それらが等しい場合は0を返し、str1がstr2より大きい場合は1を返し、str1がstr2より小さい場合は-1を返します。

 

おすすめ

転載: www.cnblogs.com/y4247464/p/12683418.html