C語言程序設(shè)計(jì)各章練習(xí)題_第1頁
C語言程序設(shè)計(jì)各章練習(xí)題_第2頁
C語言程序設(shè)計(jì)各章練習(xí)題_第3頁
C語言程序設(shè)計(jì)各章練習(xí)題_第4頁
C語言程序設(shè)計(jì)各章練習(xí)題_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、。 C 語言程序設(shè)計(jì)各章練習(xí)題 2016 年 12 月匯編 第第 1-31-3 章章 C C 語言基礎(chǔ)、編程規(guī)范、順序結(jié)構(gòu)程序設(shè)計(jì)語言基礎(chǔ)、編程規(guī)范、順序結(jié)構(gòu)程序設(shè)計(jì) 編程題編程題 1 1:設(shè):設(shè) a a 和和 b b 均為均為 intint 型變量,編寫一個程序,通過鍵盤讀入型變量,編寫一個程序,通過鍵盤讀入 a,ba,b 的值,然后交換的值,然后交換 a,ba,b 的值。要求屏幕顯示“輸入的值。要求屏幕顯示“輸入2 2 個整數(shù),用空格隔開”的提示語句,并且輸出交換前個整數(shù),用空格隔開”的提示語句,并且輸出交換前a,ba,b 的值,交換后的值,交換后 a,ba,b 的值。的值。 附加要求:

2、(1)允許定義第 3 個變量,實(shí)現(xiàn)交換; (2)不允許定義第 3 個變量,實(shí)現(xiàn)交換。 第第 4 4 章選擇結(jié)構(gòu)程序設(shè)計(jì)章選擇結(jié)構(gòu)程序設(shè)計(jì) 編程題編程題 2 2:根據(jù)下列函數(shù)關(guān)系寫程序,要求提示輸入:根據(jù)下列函數(shù)關(guān)系寫程序,要求提示輸入 x x 的值,輸出的值,輸出 y y 的值。的值。 1 x 2 y 2 x2 x 2 y 2 x 2 2 x 0 x 0 x 0 編程題編程題 2 2:根據(jù)下列函數(shù)關(guān)系寫程序,要求提示輸入:根據(jù)下列函數(shù)關(guān)系寫程序,要求提示輸入 x x 的值,輸出的值,輸出 y y 的值。的值。 x 2 2 x 0 x 0 2 2 編程題編程題 3 3:求:求 ax ax +bx

3、+c=0+bx+c=0 方程的解。方程的解。 (只輸出(只輸出 b b -4ac=0-4ac=0 的求解結(jié)果,小于的求解結(jié)果,小于 0 0,輸出“不予,輸出“不予 求解求解! !” ) 第第 5 5 章章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 編程題編程題 4 4:編程計(jì)算:編程計(jì)算i。要求提示鍵盤輸入。要求提示鍵盤輸入 n n,如,如 n n 為負(fù)數(shù),不予計(jì)算,直接返回。為負(fù)數(shù),不予計(jì)算,直接返回。 i1 n 編程題編程題 5 5:編程序計(jì)算:編程序計(jì)算 n n! ,要求,要求 n n 從鍵盤輸入,如從鍵盤輸入,如 n n 小于小于 0 0,不予計(jì)算。,不予計(jì)算。 編程題編程題 6 6:從鍵盤輸

4、入一個數(shù):從鍵盤輸入一個數(shù) n n,判斷,判斷 n n 是否是素?cái)?shù)。是否是素?cái)?shù)。 編程題編程題 6 6: 編寫程序輸出編寫程序輸出 11001100 之間的偶數(shù),之間的偶數(shù), 要求屏幕顯示時要求屏幕顯示時 5 5 個偶數(shù)一行,個偶數(shù)一行, 每個數(shù)占每個數(shù)占 5 5 位,位, 右對齊。右對齊。 編程題編程題 7 7:編程計(jì)算:編程計(jì)算 100100 到到 10001000 之間有多少個數(shù)其各位數(shù)字之和是之間有多少個數(shù)其各位數(shù)字之和是 5 5,并將其輸出。,并將其輸出。 編程題編程題 8 8:求滿足下列條件的三位數(shù):求滿足下列條件的三位數(shù)n n,它除以,它除以1111(整數(shù)相除)所得到的商等于(整

5、數(shù)相除)所得到的商等于n n 的各位數(shù)的各位數(shù) 字的平方和,且其中至少有二位數(shù)字相同的數(shù)。字的平方和,且其中至少有二位數(shù)字相同的數(shù)。 編程題編程題 9 9:有一些十進(jìn)制整數(shù)對:有一些十進(jìn)制整數(shù)對 abab 和和 cdcd 具有如下特性:具有如下特性:abab cd=bacd=ba dcdc,其中,其中 a a b b 且且 c c d d。 如:如:1212 42=2142=21 2424。請編程找出。請編程找出 30503050 之間滿足上述等式所有之間滿足上述等式所有 m m,n n 值,并按上述等式的格值,并按上述等式的格 。1 。 式輸出。式輸出。 (用(用* *表示)表示) 編程題編

6、程題 1010:從鍵盤上輸入一個整數(shù),從鍵盤上輸入一個整數(shù),然后把這個整數(shù)的各位逆序輸出。然后把這個整數(shù)的各位逆序輸出。例如,例如,輸入輸入 123456123456, 輸出輸出 654321654321。 第第 6 6 章章數(shù)組數(shù)組 編程題編程題 1111:有一個已排好序的數(shù)組:有一個已排好序的數(shù)組 int a11=-5,-3,0,6,8,12,16,28,66,88;int a11=-5,-3,0,6,8,12,16,28,66,88;,要求輸,要求輸 入一個數(shù)后,按原來排序的規(guī)律將它插入數(shù)組中。入一個數(shù)后,按原來排序的規(guī)律將它插入數(shù)組中。 編程題編程題 1212:輸入一個字符串(字符個數(shù)

7、為小于:輸入一個字符串(字符個數(shù)為小于100100) ,統(tǒng)計(jì)其中字母、數(shù)字、空格以及其它,統(tǒng)計(jì)其中字母、數(shù)字、空格以及其它 符號的個數(shù),并將大寫字母改為小寫字母,輸出改變后的字符串。符號的個數(shù),并將大寫字母改為小寫字母,輸出改變后的字符串。 (提示:(提示:A A 的的 ASCIIASCII 值為值為 6565,a a 的的 ASCIIASCII 值為值為 9797) 編程題編程題 1212:輸入一行字符(字符數(shù)組的個數(shù)小于:輸入一行字符(字符數(shù)組的個數(shù)小于100100) ,統(tǒng)計(jì)其中字母、數(shù)字以及其它符號,統(tǒng)計(jì)其中字母、數(shù)字以及其它符號 的個數(shù)。的個數(shù)。 (注:數(shù)組限定字符個數(shù)小于(注:數(shù)組限

8、定字符個數(shù)小于 100100) 編程題編程題 1212:輸入一行字符,輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、分別統(tǒng)計(jì)出其中英文字母、數(shù)字、數(shù)字、空格和其他字符的個數(shù)??崭窈推渌址膫€數(shù)。 (注:(注: 字符個數(shù)不受限制)字符個數(shù)不受限制) 第第 7 7 章函數(shù)章函數(shù) 編程題編程題 1313:編寫一個子函數(shù):編寫一個子函數(shù) int fun ( int n) int fun ( int n),其功能是判斷整數(shù),其功能是判斷整數(shù) n n 是否為素?cái)?shù),是否為素?cái)?shù),n n 是是 素?cái)?shù),返回值為素?cái)?shù),返回值為 1 1;n n 不是素?cái)?shù),返回值為不是素?cái)?shù),返回值為 0 0。調(diào)用該函數(shù),將。調(diào)用該函數(shù),將

9、100200100200 之間的素?cái)?shù)全部輸之間的素?cái)?shù)全部輸 出,要求屏幕上每個數(shù)占出,要求屏幕上每個數(shù)占 4 4 位,每行顯示位,每行顯示 5 5 個素?cái)?shù),左對齊。個素?cái)?shù),左對齊。 (循環(huán)、條件分支、子函數(shù)、(循環(huán)、條件分支、子函數(shù)、 變量的值傳遞、屏幕顯示格式控制)變量的值傳遞、屏幕顯示格式控制) 編編程程題題1414:主主函函數(shù)數(shù)中中定定義義兩兩個個數(shù)數(shù)組組intint a5=5,4,8,-1,2,b10=1,-1,2,4,8,4,0,9,3,7;a5=5,4,8,-1,2,b10=1,-1,2,4,8,4,0,9,3,7;用子函數(shù)實(shí)現(xiàn)從小到大的冒泡排序,用子函數(shù)實(shí)現(xiàn)從小到大的冒泡排序,

10、子函數(shù)為子函數(shù)為 voidvoid bubble(intbubble(int ,int);,int);要求在主函數(shù)中顯示排序前、要求在主函數(shù)中顯示排序前、后的數(shù)組后的數(shù)組 a a 和和 b b 的元素。的元素。 (循環(huán)、條件分支、子函數(shù)、數(shù)組、地址傳遞)(循環(huán)、條件分支、子函數(shù)、數(shù)組、地址傳遞) 編編程程題題1515:主主函函數(shù)數(shù)中中定定義義兩兩個個數(shù)數(shù)組組intint a5=5,4,8,-1,2,b10=1,-1,2,4,8,4,0,9,3,7;a5=5,4,8,-1,2,b10=1,-1,2,4,8,4,0,9,3,7;用子函數(shù)實(shí)現(xiàn)從小到大的選擇法排用子函數(shù)實(shí)現(xiàn)從小到大的選擇法排 序,子函

11、數(shù)為序,子函數(shù)為 voidvoid sort(intsort(int ,int);,int);要求在主函數(shù)中顯示排序前、后的數(shù)組要求在主函數(shù)中顯示排序前、后的數(shù)組 a a 和和 b b 的元的元 素。素。 (循環(huán)、條件分支、子函數(shù)、數(shù)組、地址傳遞)(循環(huán)、條件分支、子函數(shù)、數(shù)組、地址傳遞) 編程題編程題 1616:用遞歸函數(shù)計(jì)算:用遞歸函數(shù)計(jì)算 n!n!。 編程題編程題 1717:編寫一個子函數(shù):編寫一個子函數(shù) int int factfact ( ( int n)int n),計(jì)算,計(jì)算 n n 的階乘。調(diào)用該函數(shù)計(jì)算的階乘。調(diào)用該函數(shù)計(jì)算 1 1!+2+2! +3+3!+ +n+n! ,要

12、求,要求 n n 從鍵盤輸入,如輸入從鍵盤輸入,如輸入 n n 小于小于 0 0,不予計(jì)算。,不予計(jì)算。 (循環(huán)、遞歸函數(shù))(循環(huán)、遞歸函數(shù)) 編程題編程題 1818:將:將1616 進(jìn)制或進(jìn)制或 8 8 進(jìn)制或進(jìn)制或 2 2 進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)(字符數(shù)組、字符串函數(shù)、子函進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)(字符數(shù)組、字符串函數(shù)、子函 數(shù)、字符數(shù)、字符 ASCIIASCII 值與值與 1010 進(jìn)制數(shù)的轉(zhuǎn)換,指數(shù)函數(shù)的調(diào)用)進(jìn)制數(shù)的轉(zhuǎn)換,指數(shù)函數(shù)的調(diào)用) 編程題編程題 1818:編程實(shí)現(xiàn)八進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)(注:用字符數(shù)組:編程實(shí)現(xiàn)八進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)(注:用字符數(shù)組n100n100接收輸入,輸入的接

13、收輸入,輸入的 八進(jìn)制數(shù)肯定正確,無須檢測;八進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)的子函數(shù)為八進(jìn)制數(shù)肯定正確,無須檢測;八進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)的子函數(shù)為int htoi(charint htoi(char hnum );hnum );) 編程題編程題 1818:編寫一個子函數(shù),將:編寫一個子函數(shù),將 1616 進(jìn)制數(shù)轉(zhuǎn)換為進(jìn)制數(shù)轉(zhuǎn)換為 1010 進(jìn)制數(shù)。進(jìn)制數(shù)。 編程題編程題 1919:編寫一個子函數(shù),主函數(shù)用字符數(shù)組作為實(shí)參,統(tǒng)計(jì)字符串中字母、數(shù)字、空:編寫一個子函數(shù),主函數(shù)用字符數(shù)組作為實(shí)參,統(tǒng)計(jì)字符串中字母、數(shù)字、空 格以及其他符號的個數(shù),要求主函數(shù)中顯示字符串與統(tǒng)計(jì)結(jié)果。格以及其他符號的個數(shù),要求主函

14、數(shù)中顯示字符串與統(tǒng)計(jì)結(jié)果。 編程題編程題 2020:編寫一個子函數(shù),主函數(shù)輸入一行字符,子函數(shù)找出字符串中最長的單詞,并:編寫一個子函數(shù),主函數(shù)輸入一行字符,子函數(shù)找出字符串中最長的單詞,并 。2 。 顯示結(jié)果。顯示結(jié)果。 編程題編程題 2121:用遞歸法將一個整數(shù):用遞歸法將一個整數(shù) n n 轉(zhuǎn)換為字符串。例如:輸入轉(zhuǎn)換為字符串。例如:輸入483483,輸出字符串“,輸出字符串“483483” ,n n 的位數(shù)不確定。的位數(shù)不確定。 編程題編程題 2222:寫一個子函數(shù),將輸入的字符串按反序存放,在:寫一個子函數(shù),將輸入的字符串按反序存放,在 mainmain 中輸入和輸出字符串。中輸入和輸

15、出字符串。 第第 8 8 章指針章指針 編程題編程題 2323:編寫一個子函數(shù):編寫一個子函數(shù) mystrcmp(char *s1,char *s2)mystrcmp(char *s1,char *s2)實(shí)現(xiàn)實(shí)現(xiàn) 2 2 個字符串的比較。個字符串的比較。 編程題編程題 2323:編程實(shí)現(xiàn)兩個字符串連接起來,不要用:編程實(shí)現(xiàn)兩個字符串連接起來,不要用 strcatstrcat 函數(shù)。函數(shù)。 編程題編程題 2323:用函數(shù)調(diào)用實(shí)現(xiàn)字符串的復(fù)制。:用函數(shù)調(diào)用實(shí)現(xiàn)字符串的復(fù)制。 編程題編程題 2323: 寫一個函數(shù),寫一個函數(shù), 求一個字符串的長度。求一個字符串的長度。 在在 mainmain 函數(shù)中

16、輸入字符串,函數(shù)中輸入字符串, 并輸出其長度。并輸出其長度。 編程題編程題 2424:寫一個用矩形法求定積分的通用函數(shù),分別計(jì)算:寫一個用矩形法求定積分的通用函數(shù),分別計(jì)算sinxdx、 cosxdx、 exdx 1 0 1 1 2 0 編程題編程題 2525:輸入一個字符串,內(nèi)有數(shù)字和非數(shù)字字符,如:輸入一個字符串,內(nèi)有數(shù)字和非數(shù)字字符,如: A123x456 A123x456 17960?302tab587617960?302tab5876, 將其中連續(xù)的數(shù)字作為一個整數(shù),依次用數(shù)組存放這些數(shù),統(tǒng)計(jì)有多少個整數(shù),并輸出這將其中連續(xù)的數(shù)字作為一個整數(shù),依次用數(shù)組存放這些數(shù),統(tǒng)計(jì)有多少個整數(shù),

17、并輸出這 些數(shù)。些數(shù)。 編程題編程題 2626:主函數(shù)輸入整數(shù)的個數(shù),用指針變量動態(tài)申請內(nèi)存,并用鍵盤按任意次序輸入:主函數(shù)輸入整數(shù)的個數(shù),用指針變量動態(tài)申請內(nèi)存,并用鍵盤按任意次序輸入 n n 個整數(shù),用子函數(shù)個整數(shù),用子函數(shù) void bubble(int ,int)void bubble(int ,int)實(shí)現(xiàn)從小到大的冒泡排序。實(shí)現(xiàn)從小到大的冒泡排序。 第第 9 9 章章結(jié)構(gòu)結(jié)構(gòu) 編程題編程題 2727:建立一個鏈表,每個結(jié)點(diǎn)包括:學(xué)號、姓名、性別、年齡,輸入一個年齡,如:建立一個鏈表,每個結(jié)點(diǎn)包括:學(xué)號、姓名、性別、年齡,輸入一個年齡,如 果鏈表中的結(jié)點(diǎn)所包含的年齡等于此年齡,則將此

18、結(jié)點(diǎn)刪去。果鏈表中的結(jié)點(diǎn)所包含的年齡等于此年齡,則將此結(jié)點(diǎn)刪去。 編程題編程題 2828:1313 個人圍成一圈,從第一個人開始順序報(bào)號,凡報(bào)到個人圍成一圈,從第一個人開始順序報(bào)號,凡報(bào)到3 3 者退出圈子,找出最后者退出圈子,找出最后 留在圈子中的人原來的序號。要求用鏈表實(shí)現(xiàn)。留在圈子中的人原來的序號。要求用鏈表實(shí)現(xiàn)。 編程題編程題 2929:閱讀鏈表操作相關(guān)函數(shù),完成指定的操作函數(shù)。:閱讀鏈表操作相關(guān)函數(shù),完成指定的操作函數(shù)。 #include stdio.h 鏈表內(nèi)容僅限表頭表尾添加、刪 #include malloc.h 除、查詢、顯示、保存,不考排 #include string.h

19、 序、中間節(jié)點(diǎn)的插入和刪除 struct Student char name20; int num; int math; struct Student *next; ; struct Student *Create(struct Student *head); /生成數(shù)據(jù)鏈表 void ShowList(struct Student *head); /void ShowList(struct Student *head); /顯示鏈表顯示鏈表 void saveList(struct Student *head); /void saveList(struct Student *head); /

20、保存鏈表數(shù)據(jù)保存鏈表數(shù)據(jù) void AddTail(struct Student *head,struct Student *temp); /void AddTail(struct Student *head,struct Student *temp); /表尾添加元素表尾添加元素 struct Student *AddHead(struct Student *head,struct Student *temp); /struct Student *AddHead(struct Student *head,struct Student *temp); / 表頭添加表頭添加 元素元素 struc

21、t Student *DeleteSomeone(struct Student *head); /struct Student *DeleteSomeone(struct Student *head); /刪除元素刪除元素 void FindSomeone(struct Student *head); /void FindSomeone(struct Student *head); /查詢元素查詢元素 struct Student *DeleteHead(struct Student *head);/struct Student *DeleteHead(struct Student *head

22、);/刪除表頭刪除表頭 void DeleteTail(struct Student *head);/void DeleteTail(struct Student *head);/刪除表尾刪除表尾 void main() 。3 。 struct Student *head=NULL,*temp=NULL; int choice; do printf(1:創(chuàng)建數(shù)據(jù)鏈表n); printf(2:添加鏈表單元n); printf(3:刪除鏈表單元n); printf(4:查詢鏈表單元n); printf(5:刪除表頭n); printf(6:刪除表尾n); printf(7:退出n); printf

23、(請輸入功能選擇:); scanf(%d,/cinchoice; if(choice=1) head=Create(temp); ShowList(head); saveList(head); else if(choice=2)/表頭添加元素 temp=(struct Student *)malloc(sizeof(struct Student); printf(姓名:); scanf(%s,temp-name); printf(學(xué)號:); scanf(%d, printf(成績:); scanf(%d, AddTail(head,temp);/ head=AddHead(head,temp)

24、; ShowList(head); saveList(head); else if(choice=3) /刪除元素 head=DeleteSomeone(head); ShowList(head); saveList(head); else if(choice=4) /查找元素 FindSomeone(head); else if(choice=5) /刪除表頭 head=DeleteHead(head); ShowList(head); saveList(head); else if(choice=6) /刪除表尾 DeleteTail(head); ShowList(head); save

25、List(head); 。4 。 else if(choice=7) printf(謝謝使用!n); else printf(非法輸入,請輸入 17 之間的數(shù)!n); while(choice!=7); struct Student *Create(struct Student *head)/包含讀文件創(chuàng)建鏈表 struct Student *pS,*pEnd; FILE *fp; fp=fopen(e:list.txt,r); if(fp!=NULL)/表明已有鏈表數(shù)據(jù),直接讀入 int flag; while(1) pS=(struct Student *)malloc(sizeof(st

26、ruct Student); flag=fscanf(fp,%s %d %d,pS-name, if(flag=EOF) break; if(head=NULL) head=pS; else pEnd-next=pS; pEnd=pS; if(head!=NULL) pEnd-next=NULL; printf(已從文件中讀入數(shù)據(jù)創(chuàng)建鏈表!n); delete pS; fclose(fp); if(head=NULL) while(1) pS=(struct Student *)malloc(sizeof(struct Student); printf(姓名:);scanf(%s,pS-nam

27、e); if(strcmp(pS-name,000) printf(學(xué)號:);scanf(%d, printf(成績:);scanf(%d, else break; if(head=NULL) 。5 。 head=pS; else pEnd-next=pS; pEnd=pS; pEnd-next=NULL; delete pS; return head; void ShowList(struct Student *head)/顯示鏈表上的數(shù)據(jù) printf(學(xué)生姓名學(xué)號成績:n); while(head) printf(%20s,head-name); printf(%6d,head-num)

28、; printf(%5dn,head-math); head=head-next; void saveList(struct Student *head)/保存鏈表上的數(shù)據(jù) FILE *fp; fp=fopen(e:list.txt,w); if(fp=NULL) printf(無法創(chuàng)建文件 e:list.txt!); return; while(head) fprintf(fp,%s %d %dn,head-name,head-num,head-math); head=head-next; fclose(fp); void AddTail(struct Student *head,struc

29、t Student *temp)/加在表尾 struct Student *last; while(head) last=head; head=head-next; last-next=temp; temp-next=NULL; 。6 。 struct Student *AddHead(struct Student *head,struct Student *temp)/加在表頭 struct Student *first; first=head; head=temp; head-next=first; return head; struct Student *DeleteSomeone(st

30、ruct Student *head) struct Student *temp; int xnum,flag=0; printf(請輸入學(xué)號:); scanf(%d, if(head=NULL) printf(表為空!n); return head; if(head-num=xnum) temp=head; head=head-next; delete temp; return head; Student *first=head; while(head) if(head-next=NULL) break; if(head-next-num=xnum) temp=head-next; head

31、-next=temp-next; delete temp; flag=1; break; head=head-next; if(flag=0) printf(未發(fā)現(xiàn)!n); return first; void FindSomeone(Student *head)/按學(xué)號查找 int xnum,flag=0; 。7 。 printf(請輸入學(xué)號:); scanf(%d, while(head) if(head-num=xnum) printf(%20s,head-name); printf(%6d,head-num); printf(%4dn,head-math); flag=1; break

32、; head=head-next; if(flag=0) printf(未發(fā)現(xiàn)!n); struct Student *DeleteHead(struct Student *head) if(head=NULL) printf(表為空!n); return head; if(head-next=NULL) delete head; head=NULL; return head; else struct Student *first=head; head=head-next; delete first; return head; void DeleteTail(struct Student *h

33、ead) if(head=NULL) printf(表為空!n); if(head-next=NULL) delete head; head=NULL; 。8 。 else struct Student *temp,*end; end=head; while(end-next!=NULL) temp=end; end=end-next; temp-next=NULL; 第第 1010 章章文件文件 編程題編程題 3030: 編程實(shí)現(xiàn):編程實(shí)現(xiàn): 有一個文本文件有一個文本文件“ “a.txta.txt” ”, 里面有大小寫英文字母、里面有大小寫英文字母、 數(shù)字和其它符號。數(shù)字和其它符號。 要求分

34、別統(tǒng)計(jì)其中大寫字母、小寫字母、數(shù)字以及其它字符的個數(shù)。要求分別統(tǒng)計(jì)其中大寫字母、小寫字母、數(shù)字以及其它字符的個數(shù)。 編程題編程題 3030:從鍵盤輸入一串字符,并以:從鍵盤輸入一串字符,并以 # # 結(jié)束,將其中的大寫字母全部轉(zhuǎn)換成小寫字母,結(jié)束,將其中的大寫字母全部轉(zhuǎn)換成小寫字母, 并輸出到計(jì)算機(jī)并輸出到計(jì)算機(jī) D D 盤文件盤文件 “test.txttest.txt”中保存?!敝斜4妗?(提示:一串字符并不意味著一行字符,(提示:一串字符并不意味著一行字符, 另外一串字符的具體字符個數(shù)是不定的。另外一串字符的具體字符個數(shù)是不定的。 ) 編程題 31:從鍵盤輸入一個字符串, 將其中的小寫字母

35、全部轉(zhuǎn)換為大寫字母, 然后輸出到 C 盤“test”文件中保存,輸入的字符串以“! ”結(jié)束。 編程題 32:有兩個磁盤文件“A”和“B” ,各存放一行字母,要求把這兩個文件中的信息合 并(按字母順序排列) ,輸出到一個新文件“C”中去。 編程題 33:有5 個學(xué)生,每個學(xué)生有3 門課程的成績,從鍵盤輸入學(xué)號、姓名、 3 門課程成 績,計(jì)算每個學(xué)生的平均成績,將原有數(shù)據(jù)和平時成績存放在磁盤文件“stud”中。 。9 。 第第 1-31-3 章章 C C 語言基礎(chǔ)、編程規(guī)范、順序結(jié)構(gòu)程序設(shè)計(jì)語言基礎(chǔ)、編程規(guī)范、順序結(jié)構(gòu)程序設(shè)計(jì) 一、選擇題一、選擇題 1. C 語言是一種( C C )程序設(shè)計(jì)語言。

36、 A. 低級 B. 面向?qū)ο驝.C. 高級高級D. 智能 2. 下列特性中,(D D )不是 C 語言的特征。 A.運(yùn)行效率高 B.結(jié)構(gòu)化程序設(shè)計(jì)C.能直接訪問物理地址D.D.類型檢測嚴(yán)格類型檢測嚴(yán)格 3下列標(biāo)識符中,( D D )不是 C 的關(guān)鍵字; A. intB. floatC. charD. scanfD. scanf 4下列標(biāo)識符中,(D D )不是 C 的關(guān)鍵字; A. sizeofB. shortC. longD. defineD. define 5下列標(biāo)識符中,(D D )不是 C 的關(guān)鍵字; A. gotoB. breakC. autoD. printfD. printf 6

37、下列標(biāo)識符中,(D D )不是 C 的關(guān)鍵字; A. staticB. structC. voidD. includeD. include 7下列自定義標(biāo)識符中,(C C )是不符合規(guī)定。 A. point1xB. _point1x C. 2pointxC. 2pointxD. pointx_2 8下列自定義標(biāo)識符中,(C C )是不符合規(guī)定。 A. MAXB. _MIN C. MAX$C. MAX$D. MIN_2 9下列自定義標(biāo)識符中,(D D )是不符合規(guī)定。 A. point1_B. _point1x C. pointxD. pointx_D. pointx_ # # 10下列自定義標(biāo)

38、識符中,(A A )是不符合規(guī)定。 A. 2_point1xB. _point1x C. pointxD. pointx_2 11下列四個選項(xiàng)中,是不合法的用戶標(biāo)識符的選項(xiàng)是( C C ) AP_0_abcgotogototemp 12下面是不正確的字符串常量的是( A A) A A abcabc “1212”“0”“” 13. 已知 int a; float f; scanf(“a=%d,f=%f”, 為了把 10 和 3.14 分別賦值給 a 和 f,則正確的輸入為(C C) A10,3.14 B. 10 3.14C. a=10,f=3.14C. a=10,f=3.14 D. a=10 f

39、=3.14 14輸入語句為:scanf(%f,%fn,下列鍵盤輸入(D D)是正確的。 A1 2; B1,2n; C12; D1,2; 15輸入語句為:scanf(a=%f,b=%f,從鍵盤輸入( D D)是正確的。 A1 2; B1,2; C12;D Da=1,b=2a=1,b=2; 16 輸入語句為: scanf(a=%f,b=%fn,從鍵盤輸入 (D D) 是正確的。 A1 2; B1,2; C12; D Da=1,b=2na=1,b=2n; 17輸入語句為:scanf(a=%fb=%f,從鍵盤輸入(D D)是正確的。 A1 2; B1,2; C12;D Da=1b=2a=1b=2; 1

40、8double PI=3.1415926, 輸出語句為:printf(%3.2lf,PI);下列輸出結(jié)果( D D)是 正確的。 A3.1415926; B3.2; C3.1; D D3.143.14; 19double PI=3.1415926, 輸出語句為:printf(%5.4lf,PI);下列輸出結(jié)果(B B)是 。10 。 正確的。 A3.1415926;B B3.14153.1415; C3.1416; D5.4; 20double PI=3.1415926, 輸出語句為:printf(%3.4lf,PI);下列輸出結(jié)果()是 正確的。 A3.1415926; B3.141; C3

41、.1415; D3.1416; 21設(shè) x,y 均為 float 型變量,則下列不合法的賦值語句是() A+xy=(x%2)/10 Cx*=y+8x=y=0 22double PI=3.1415926, 輸出語句為:printf(%4.2lf,PI);下列輸出結(jié)果()是 正確的。 A3.1415926; B4.2; C3.141; D3.14; 23. int a=-1;C 語言整型數(shù)分配 4 個字節(jié),在計(jì)算機(jī)中下列十六進(jìn)制表示的(A A)是正確 的。 Affffffff; B80000001; C10000001; D00000001; 24 int a=1;C 語言整型數(shù)分配 4 個字節(jié),

42、在計(jì)算機(jī)中下列十六進(jìn)制表示的a()是正確 的。 A00000001; B10000001; C80000000; Dffffffff; 25 int a=-1;C 語言整型數(shù)分配 4 個字節(jié),在計(jì)算機(jī)中下列十六進(jìn)制表示的a()是正確 的。 A10000001; B-00000001; C-1; Dffffffff;* 26 int a=-1;C 語言整型數(shù)分配 4 個字節(jié),在計(jì)算機(jī)中下列十六進(jìn)制表示的a()是正確 的。 A-ffffffff; B80000001; Cffffffff; D-1;* 27設(shè)有下列變量說明:char a; int x; float y; double z;則表達(dá)式

43、 a*x-z+y 的值的數(shù) 據(jù)類型為() 。* Afloatcharintdouble 28已知字母 a 的 ASCII 碼為十進(jìn)制數(shù) 97,且設(shè) ch 為字符型變量,則表達(dá)式ch=a+8-3 的值為() Afa C.d102 29已知 ch 是字符型變量,下列不正確的賦值語句是() Ach=a+bch=0ch=a+bch=5+9 30若 s 是 int 型變量,則表達(dá)式 s=25/3%3 的值為() A25123 31若 s 是 int 型變量,則表達(dá)式 s%2+(s-1)%2 的值為() A0112 32若 s 是 int 型變量,則表達(dá)式 s%2+(s+1)%2 的值為() A012不確

44、定 33下列表達(dá)式中,不能正確表達(dá)代數(shù)式 2xy 含義的 C 語言表達(dá)式是() ab Ax/a/b*y*22*x*y/a/b2*x*y/a*bx*y/b/a*2 34若 x、i、j、k 均為 int 變量,則計(jì)算表達(dá)式 x=(i=4,j=16,k=32);后,x 的值為() A. 4 B. 16 C. 32 D. 52 35. 已知 int a=6,b=6; 執(zhí)行 b=(+b)+(a+);后,a 和 b 的值為() 。 A. a=7,b=13 B. a=7,b=14 C. a=6,b=13 D. a=6,b=14 。11 。 36若有定義:int x=5,y=2; 則計(jì)算表達(dá)式 y+=y=x*

45、=y 后, y 的值為() A1616710 37若 a 是 int 型變量,且其初值為 6,則計(jì)算表達(dá)式 a+=a-=a*a 后,a 的值為() A-30-60-246 38若 x 的初值為 7,執(zhí)行語句 x+=x-=x+x;后,x 的值為() A21-1414-21 39C 語言的編譯系統(tǒng)對宏命令的處理是() A在程序運(yùn)行時進(jìn)行的 B在程序連接時進(jìn)行的 C和 C 程序中的其他語句同時進(jìn)行編譯的 D在對源程序中其他成分正式編譯之前進(jìn)行的 40以下正確的敘述是() AC 語言的預(yù)處理功能是指完成宏替換和包含文件的調(diào)用 B預(yù)處理指令只能位于C 源程序文件的首部 C凡是 C 源程序中行首以“#”標(biāo)

46、識的控制行都是預(yù)處理命令 DC 語言的編譯預(yù)處理就是對源程序進(jìn)行初步的語法檢查 41以下在任何情況下計(jì)算平方數(shù)時都不會引起二義性的宏定義是() A#define POWER(x) x*x#define POWER(x) (x)*(x) C#define POWER(x) (x*x)#define POWER(x) (x)*(x) 42以下有關(guān)宏替換的敘述中錯誤的是() A宏替換不占用運(yùn)行時間 B宏替換只是字符替換 C宏替換在編譯之前進(jìn)行 D宏名必須用大寫字母表示 43. 下列程序段的運(yùn)行結(jié)果為() 。 void main() char c1,c2; c1=A+5-3; c2=A+6-3; pr

47、intf(“%d,%c”,c1,c2) A. C,DB. 67,D C. B,C D. 無確定值 二、填空題二、填空題 1在 C 語言中,實(shí)型變量可以分為兩種類型,它們是和。 2若 x,a 為整型變量,則計(jì)算表達(dá)式 x=(a=4,6*2)后的 x 值為,計(jì)算表達(dá)式 x=a=4,6*2 后的 x 值為。 3 若 x 和 n 均是 int 型變量, 且 x 和 n 的初值均為 5, 則計(jì)算表達(dá)式 x+=n+后 x 的值, n 的值為。 三、閱讀下列程序,在下劃線上寫出輸出結(jié)果三、閱讀下列程序,在下劃線上寫出輸出結(jié)果 1程序段: #define MUL(x) (x)*(x)*(x) main( )

48、printf(“%d”,MUL(1+2)+3); 。12 。 的結(jié)果是。 2程序段: #define y(t) (t)*(t) main( ) printf(“%d”,y(1+2)+3); 的結(jié)果是。 3以下程序的輸出結(jié)果是以下程序的輸出結(jié)果是(19) 21(19) 21。 #include #define M(x,y,z) x*y+z void main() int a=2,b=3,c=4; printf(%dn, M(a+b,b+c,c+a);/知識點(diǎn):宏定義是編譯時先替換,運(yùn)行時才計(jì)算 第第 4 4 章選擇結(jié)構(gòu)程序設(shè)計(jì)章選擇結(jié)構(gòu)程序設(shè)計(jì) 一、選擇題一、選擇題 1若 x 是 int 型變量

49、,則表達(dá)式 x%2+(x+1)%2 的值為() 。 A012不確定 2設(shè)有定義 int a=3,b=4,c=5,則表達(dá)式 a|b+c Bif (x=y) x+=y; Cif (x!=y)x=1 else x=2; Dif (xb) switch(x) case 1: switch(y) case 0: a+; break; case 1:b+; break; case 2:a+;b+;break; printf(“%d,%d ”,a,b); /*輸出結(jié)果:*/ 2以下程序的運(yùn)行結(jié)果是。 #include void main( ) int x=5; if (x+5) printf(“%dn”,x

50、); else printf(“%dn”,x-); 四、程序填空四、程序填空 1下列程序的功能是實(shí)現(xiàn)輸出a,b,c 三個數(shù)中的最大值。請為程序填空。 #include void main( ) int a=5,b=4,c=8; ; 。14 。 if () u=a; else u=b; if () v=u; else; printf(“v=%dn”, v); 2下列程序的功能是根據(jù)下列函數(shù)關(guān)系,輸入x 的值,計(jì)算 y 的值。請為程序填空。 x(x 5)2 x 10 y 4x1 x 2 x 6x 1 #include void main( ) int x, y; scanf(“%d”,); if

51、() y=x*(x+5); else if () y=4*x; else ; printf(“%dn”, y); 第第 5 5 章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)章循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 一、選擇題一、選擇題 1執(zhí)行語句 for (i=1;i+=0); 中循環(huán)體的執(zhí)行次數(shù)() A1234 C. 循環(huán)體執(zhí)行一次 D. 循環(huán)體一次也不執(zhí)行 。15 。 4設(shè) i 為整型變量,則語句for (i=2;i=0;) a=3;中循環(huán)體的執(zhí)行次數(shù)為() A無限次0 次1 次2 次 5設(shè)有下列程序段: x=1; do x=x*x; while (!x) 則該循環(huán)是() A死循環(huán)循環(huán)執(zhí)行一次循環(huán)執(zhí)行二次語句錯誤 6設(shè)有程序段: int

52、 k=10; while (k=0) k-; 則下列描述中正確的是() Awhile 循環(huán)執(zhí)行 10 次while 循環(huán)執(zhí)行無限次 Cwhile 循環(huán)執(zhí)行 0 次while 循環(huán)執(zhí)行 1 次 7程序段: x=y=0; while (x+y; x=i+) i=x; Bfor(; ;x+=i) ; Cfor (i=10; ; i-) a+=i; Dwhile (1) a+;; 10程序段 i=11; do i+; while (i=10); 執(zhí)行后 i 的值為() A1112 C. 10不確定 11執(zhí)行語句 for (i=1;i+3;);后變量 i 的值的是() A34 C. 5不確定 12for

53、 (x=0,y=0;(y=123)時,表達(dá)式 1 執(zhí)行次,表 達(dá)式 3 執(zhí)行了次。 三、三、 閱讀下列程序,在下劃線上寫出輸出結(jié)果閱讀下列程序,在下劃線上寫出輸出結(jié)果 1.設(shè)有程序段 k=1;n=263; do k*=n % 10; n/=10; while (n); 其運(yùn)行結(jié)束后 k 的值為,循環(huán)結(jié)束后 n 的值是。 2寫出以下程序的運(yùn)行結(jié)果。 #include main( ) int y=10; do y-; while (-y); printf(“%d, ”,y-); 3.閱讀下列程序,在下劃線上寫出輸出結(jié)果。 #include main( ) int y= -10; do y+; wh

54、ile (+y); printf(“%d, ”,y+); /*輸出結(jié)果: */ 4以下程序的運(yùn)行結(jié)果是。 #include void main( ) int i; for (i=1;i=5;i+) switch(i %5) 。17 。 case 0: printf(“*”);break; case 1: printf(“#”);break; default: printf(“,”); case 2: printf(“ 四、程序填空四、程序填空 1下列程序的功能是采用“順序查找法”查找數(shù)組中是否存在元素x。請為程序填空。 #include void main( ) int a8= 9, 1, 3

55、, 2, 6, 4, 7, 8; int i, x; scanf (“%d”,); for (i=0; i=8; i+) if (x=ai) printf(“Found! The Index is: %dn”,-i); ; if () printf(“not found!”; 第第 6 6 章章數(shù)組數(shù)組 一、選擇題一、選擇題 1在 C 語言中引用數(shù)組元素時,其數(shù)組下標(biāo)的數(shù)據(jù)類型可以是() 。 A整型常量整型表達(dá)式 C整型常量或整型表達(dá)式任何類型的表達(dá)式 2. 以下能對一維數(shù)組 a 進(jìn)行正確初始化的語句是() 。 Aint a10=(0,0) int a10= ; Cint a =0; int

56、a10=10*1; 3若有說明:int a10;則對 a 數(shù)組元素的正確引用是() Aa10A3.5 C. a(5)A10-10 4若有說明:int a34;則對 a 數(shù)組元素的正確引用是() Aa24A2,4 C. a1+10A(2) (1) 5若有以下說明:int a 3=1,2,3,4,5,6,7;則數(shù)組 a 的第一維的大小是() A43 C. 2不確定 6二維數(shù)組 x 有 m 列,若元素 x00是第一個元素,則 xij在數(shù)組中的位置是() Ai*m+jj*m+i C. i*m+j-1i*m+j+1 7下面能正確進(jìn)行字符串賦值操作的是() 。18 。 Achar a5=“ABCDE”;

57、Bchar a5=A, B, C, D, E; Cchar *a;a= “ABCDE”; Dchar *a;scanf(“%s”,a); 8若有定義:int a5;則數(shù)組 a 中首元素的地址可以表示為() A 則數(shù)組所占的空間是: () A 4 個字節(jié) B. 5 個字節(jié) C. 6 個字節(jié) D. 7 個字節(jié) 11. 下面各行語句中正確的是() 。 A. char s5=”ABCDE”; B. char s6; s=”ABCDE”; C. char *s=”ABCDE” D. char *s; scanf(“%s”,s) 12以下正確的定義語句是() Aint a14=1,2,3,4,5;floa

58、t x3 =1,2,3; Clong b23= 1,1,2,1,2,3;double y 3=0; 13若有以下說明:int a34=0;則下列正確的敘述是() A只有元素 a00可得到初值 0 B此說明語句不正確 C數(shù)組 a 中各元素都可得到初值,但其值不一定為0 D數(shù)組 a 中各元素都可得到初值0 14兩個數(shù)組 a 和 b 進(jìn)行如下初始化 char a =”abcdef”; char b =a, b, c, d, e, f 15. 則下列敘述正確的是() Aa 和 b 數(shù)組完全相同a 和 b 長度相同 C. a 和 b 中都存放字符串a(chǎn) 數(shù)組比 b 數(shù)組長度長 16以下不能對二維數(shù)組a 進(jìn)行正確初始化的語句是() Aint a23=0;int a 3=1,2,0; Cint a23=1,2,3,4,5,6;int a3=1,2,3,4,5,6; 17

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論