C語言程式設計精髓第十章測試題

2021-10-04 22:41:03 字數 3555 閱讀 5700

題目內容:

從鍵盤輸入一串字元(假設字元數少於8個),以回車表示輸入結束,程式設計將其中的數字部分轉換為整型數並以整型的形式輸出。

函式原型為 int myatoi(char str);

其中,形引數組str對應使用者輸入的字串,函式返回值為轉換後的整型數。

解題思路的關鍵是:1)判斷字串中的字元是否是數字字元;2)如何將數字字元轉換為其對應的數字值;3)如何將每乙個轉換後的數字值加起來形成乙個整型數。

程式執行結果示例1:

input a string:7hg09y↙

程式執行結果示例2:

input a string:9w2k7m0↙

程式執行結果示例3:

輸入提示資訊:「input a string:」

輸入格式: 「%7s」

輸出格式:"%d\n"

#include

#include

#include

#define max 10

intmyatoi

(char num)

;int

main()

;printf

("input a string:");

scanf

("%7s"

,str)

;int j=0;

int len=

strlen

(str)

;for

(i=0

;i) n=

myatoi

(num)

;printf

("%d\n"

,n);

return0;

}int

myatoi

(char num)

return n;

}

題目內容:

用字元陣列作函式引數,程式設計實現在從鍵盤輸入的字串(假設長度小於80)中查詢與指定的子串,並輸出該子串在字串中首次出現的位置,如果該字元不存在,則輸出"not found!"。

函式原型:int searchstring(char s, char d)

函式功能:在字元陣列s中查詢子串d,返回d在s中首次出現的位置,若找不到,則返回-1。

程式執行結果示例1:

input a string:how are you!↙

input another string:are↙

searching results:5

程式執行結果示例2:

input a string:hello↙

input another string:are↙

not found!

程式執行結果示例3:

input a string:you are a student.↙

input another string:you↙

not found!

輸入第乙個字串的提示資訊:「input a string:」

輸入第二個字串的提示資訊:「input another string:」

輸入格式: gets()

輸出格式:「searching results:%d\n」

沒找到子串的輸出提示資訊: 「not found!\n」

#include

#include

#define max 100

intsearchstring

(char s,

char d)

;int

main()

intsearchstring

(char s,

char d)

if(strcmp

(tmp,d)==0

)}if(n==0)

return0;

return n+1;

}

輸出是對的,但是第乙個測試用例過不去。。。

題目內容:

輸入一串字元(字元數小於80),以回車表示輸入結束,程式設計計算並輸出這串字元中連續重複次數最多的字元和重複次數。如果重複次數最多的字元有兩個,則輸出最後出現的那乙個。

已知函式原型:

//函式功能:統計字串中連續重複次數最多的字元及其重複的次數

//函式引數:str指向待統計的字串,指標形參tag返回重複字元最後出現的下標位置

//函式返回值:返回字元重複的次數

int countrepeatstr(char str, int *tag);

求解思路:設定乙個計數器,遍歷字串中的所有字元,若str[i] == str[i+1],則計數器加1,同時判斷計數器的值是否大於記錄的最大重複次數max,若大於,則用計數器的值更新max,並記錄該字元最後出現的位置i+1.若str[i] != str[i+1],則計數器重新初始化為1。遍歷結束時,函式返回max的值。

程式執行結果示例1:

input a string:

2344455555↙

5:5程式執行結果示例2:

input a string:

sgf222257↙

2:4輸入提示資訊:「input a string:\n」

輸入格式: 用gets()輸入字串

輸出格式:"%c:%d\n"

#include

#include

#define max 80

intcountrepeatstr

(char str,

int*tag)

;int

main()

intcountrepeatstr

(char str,

int*tag)

else cnt=1;

}return maxn;

}

4凱撒密碼(4分)

題目內容:

凱撒密碼是羅馬擴張時期朱利斯•凱撒(julius caesar)創造的,用於加密通過信使傳遞的作戰命令,其原理很簡單,就是通過將字母表中的字母移動一定位置而實現加密。例如,每個字母按字母表順序向後移3位,如a加密後變成d,b加密後變成e,……x加密後變成a,y加密後變成b,z加密後變成c。請編寫乙個程式,將使用者從鍵盤輸入的文字字串(只包含a~z的字元且長度小於100)進行加密後輸出。

函式原型:void caesar(char c);

函式功能:計算凱撒密碼

程式的執行結果示例1:

程式的執行結果示例2:

input a string:xyz↙

abc輸入提示資訊:「input a string:」

輸入格式: 用 gets()函式

輸出格式:用 puts()函式

#include

#include

#define n 100

void

caesar

(char c)

;int

main()

void

caesar

(char c)

puts

(c);

}

C 程式設計第十章

軟體開發者將被開發的整個業務範圍稱作 問題域 按一下步驟建立物件層。1 將問題域和系統責任作為出發點 2 正確運用抽象原則 3 尋找候選物件的基本方法尋找候選物件的基本方法的主要策略是從問題域 系統邊界和系統責任三方找出可能候選物件。1 考慮問題域中可啟發分析人員發現物件的因素。2 考慮系統邊界可以...

第十章 網路程式設計

1.網路基礎概念 網路程式設計!程式設計 略2.ip協議 ip internet protocol 協議是網際層的主要協議,支援網間互連的資料報通訊。它提供主要功能有 1 無連線資料報傳送 2 資料報路由選擇和差錯控制 3.tcp udp 1 tcp transmission contorl pro...

C語言 第十章檔案編譯

1.預處理 e 進行預處理工作 工作內容 進行預處理 預處理指令 進行巨集替換和標頭檔案匯入或者條件編譯等 去掉注釋內容 不會自動生成檔案 o 可以指定生成的目標檔案 i2.編譯 s 檢查語法錯誤 生成匯程式設計序 工作內容 檢查源 或者經過預處理之後 的語法錯誤 生成匯程式設計序 s3.彙編 其實...