C語言題型彙總(題型1) 持更

2021-10-06 09:59:06 字數 4058 閱讀 6933

題型1 賦值,比大小,ascii表內問題,字串函式

題型2 數學問題,幾何圖形,自定義函式(方法/子函式)

題型3 指標,結構體,鍊錶,檔案讀寫

題型3適合已經學會語法的盆友~

賦值問題:

如果定義乙個變數,沒有賦初值,預設是auto的,數值是隨機的;如果定義為static,沒有賦初值,那麼一開始是0;

1.求三個數的最大值輸入

1)通過scanf函式(通過鍵盤輸入引數)

2)通過命令列引數輸入三個數(注意編寫argc小於3的異常)儲存

1)直接通過scanf,賦值到初始化後的變數

2)儲存在一維陣列裡

比大小演算法

1)隨意設定三個數之中某乙個為max,然後進行for迴圈比較

#陣列形式

#include

#include

intmain

(int argc,

char

** ar**)

else

}printf

("max= %d\n"

,max)

;return0;

}}

2.關於ascii表的題目1)ascii表中字母移動,解碼 將「china」中每個字母向後移動4個字母,變成「glmre」

重點概念:ascii碼中數字和字母的對應

​ 數字和字元可以直接替換,可以直接相加

#include

//字元和數字可以直接替換

//c1=c1+4;

//c2=c2+4;

//putchar可以直接輸出字串到stdout

2)有一行電文,電文被譯成密碼,編個程式來解碼(第乙個字母變成第26個字母,第i個變成第(26-i+1)個字母,非字母字元不變。

#include

//a 65-90 a 97-122

intmain()

else

if(ch[j]

>=

'a'&& ch[j]

<=

'z')

else new[j]

=ch[j]

; j++;}

n=j;

printf

("解碼後:");

for(

int i=

0;i)printf

("\n");

return0;

}//注意 gets不會檢查是否溢位

//gets最後以'\0'結尾

getc 和putc/gets和puts用途比較廣泛,互動的流可以是標準輸出輸入流也可以是檔案。而getchar和putchar一般用在標準輸入輸出。

gets和scanf stirng的區別:scanf如果識別到空格會認為字串結束,gets不會,只會識別回車為字串終止符,所以想要輸入"hi hello"這種,要用gets

getc(stdin)用法: 庫函式,取字元

int

getc

(file*stream)

從指定的流 stream 獲取下乙個字元(乙個無符號字元),並把位置識別符號往前移動。

c=

getc

(stdin);

printf

("%d"

,c);

**putc(c,stdout)**用法:

c 庫函式,輸出字元

int

putc

(int

char

, file* stream)

把引數char指定的字元(乙個無符號字元)寫入到指定的流 stream 中,並把位置識別符號往前移動。

**gets()**用法

c 庫函式

char

*gets

(char

* str)

或者到達檔案末尾時,它會停止,具體視情況而定。

!但該函式不會考慮資料邊界,所有從鍵盤輸入的字元都被拷貝到buffer,很容易造成溢位。可以用fgets來代替。但引數有三個,比較麻煩。

getchar()和==putchar()==用法

c 庫函式

int

getchar

(void

)

從標準輸入 stdin 獲取乙個字元(乙個無符號字元)。這等同於getc帶有 stdin 作為引數。

char c;

//也可以int c;

printf

("請輸入字元:");

c =getchar()

;printf

("輸入的字元:");

putchar

(c);

如何識別字串:並輸出該字串帶有的所有字元型別數量:字母,數字,空格…

#include

intmain()

else

else

else}}

}printf

("countbuchstabe: %d\n"

,countbuchstabe)

;printf

("countzahl:%d\n"

,countzahl)

;printf

("countspace:%d\n"

,countspace)

;return0;

}//使用while((c=getchar())!='\n')來使操作者一次性輸入字串,但其實在內部,檢測的還是一步一步檢測,以字元為單位

getchar()

//讀入兩個字元給a1,a2

putchar()

;printf()

;#輸出兩個字元

//三個函式區分

#include

intmain()

{char a1,a2;

//int a1,a2;

printf

("輸入a1,a2\n");

a1=getchar()

;a2=

getchar()

;printf

("用putcharc輸出\n");

putchar

(a1)

;putchar

(a2)

;printf

("\n");

printf

("用printf輸出\n");

printf

("%c%c\n"

,a1,a2)

;//printf("%d%d\n",a1,a2);

return0;i

//printf中如果採用%d來輸出字元,則會輸出ascii對應的int值

//a1 a2可以使用int或char來定義,不會影響後面putchar和getchar的函式

//字元佔乙個位元組byte,整型變數佔2或4個位元組byte,因此整型變數可以輸出字元的範圍是0-127 整型可以有0-256個,但字元只有1byte

//在輸入a1和a2時中間不可以有空格,也不可以分行,否則a2=空格或換行符,則在putchar時無法顯示內容

陣列常見題型方式彙總(1)

不要求資料表是已經排好序的。從線性資料表中的第乙個 或者最後乙個 記錄開始查詢。以此將記錄的關鍵字與查詢的關鍵字進行比較。當某個記錄的關鍵字與查詢關鍵字相等的時候,即查詢成功。反之,查完所有記錄都沒有與之相等的關鍵字,則查詢失敗。順序 int linsearch int num,int x,int ...

學校的C語言題型

二 計算階乘的函式 三 計算字串長度的函式 非函式類 1 單行順序顛倒函式 include define n 10 void fun int a,int n int main void 法2 include intmain 2 二維陣列顛倒函式void exchange int a 3 3 3 數之...

C語言經典題型 喝汽水問題

喝汽水,1瓶汽水1元,2個空瓶可以換一瓶汽水,給20元,可以喝多少瓶汽水。這個問題是個經典的c語言問題,用簡單的程式可以實現,如下 include include define n 20 inttotal int num return x int main 這裡定義了乙個巨集,是為了方便我們修改資料...