《C語言開發(fā)入門教程》—習(xí)題答案_第1頁
《C語言開發(fā)入門教程》—習(xí)題答案_第2頁
《C語言開發(fā)入門教程》—習(xí)題答案_第3頁
《C語言開發(fā)入門教程》—習(xí)題答案_第4頁
《C語言開發(fā)入門教程》—習(xí)題答案_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、.C語言開發(fā)入門教程習(xí)題答案第1章 初識(shí)C語言一、 填空題1、 匯編語言、高級(jí)語言2、 .c3、 Stadio.h4、 return5、 編譯、鏈接二、 判斷題1、 2、 3、 4、 5、三、 選擇題1、A 2、B 3、C、D 4、D 5、B 四、簡(jiǎn)答題1、printf(),該函數(shù)用于輸出一行信息,可以簡(jiǎn)單理解為向控制臺(tái)輸出文字或符號(hào)等。printf()括號(hào)中的內(nèi)容稱為函數(shù)的參數(shù),括號(hào)內(nèi)可以看到輸出的字符串“Hello, worldn”,其中“n”表示換行操作,它不會(huì)輸出到控制臺(tái)。2、注釋是對(duì)程序的某個(gè)功能或者某行代碼的解釋說明,它只在C語言源文件中有效,在編譯時(shí)會(huì)被編譯器忽略。五、編程題1、

2、參考答案#includevoid main()printf(我喜歡C語言!);getchar(); /等待輸入一個(gè)字符,起到讓運(yùn)行結(jié)果界面暫停第2章 數(shù)據(jù)類型與運(yùn)算符一、 填空題1、 0、0x/0X2、 下劃線3、 原碼、反碼、補(bǔ)碼4、 構(gòu)造類型、空類型5、 獲取數(shù)據(jù)字節(jié)數(shù)二、 判斷題1、 2、 3、 4、 5、三、 選擇題1、A、B、D 2、B 3、B 4、C 5、D四、簡(jiǎn)答題1、在C語言中根據(jù)運(yùn)算符進(jìn)行運(yùn)算需根據(jù)變量的個(gè)數(shù)可以將運(yùn)算符分為單目運(yùn)算符、雙目運(yùn)算符和三目運(yùn)算符,其區(qū)別與示例如下表:名稱運(yùn)算所需變量個(gè)數(shù)范例單目運(yùn)算符1個(gè)+、-、!、sizeof、雙目運(yùn)算符2個(gè)+、-、*、/、%、

3、=、三目運(yùn)算符3個(gè)?:2、在進(jìn)行自增(+)和自減(-)的運(yùn)算時(shí),如果運(yùn)算符(+或-)放在操作數(shù)的前面則是先進(jìn)行自增或自減運(yùn)算,再進(jìn)行其他運(yùn)算。反之,如果運(yùn)算符放在操作數(shù)的后面則是先進(jìn)行其他運(yùn)算再進(jìn)行自增或自減運(yùn)算。五、編程題1、參考答案#includevoid main()float a = 1.5, b = 2.6, h = 5;float s;s = (a + b)*h;printf(梯形的面積為:%.2fn, s); /%.2f輸出小數(shù)點(diǎn)后2位數(shù)字getchar();2、參考答案 #includevoid main()int a = 3, b = 4;a = ab;b = ba;a =

4、ab;printf(a = %d, b = %dn, a, b);getchar();第3章 流程控制一、 填空題1、 break2、 順序3、 循環(huán)4、 if、ifelse、ifelse ifelse 5、 3二、 判斷題1、 2、 3、 4、 5、三、 選擇題1、C 2、A、C 3、B、C、D 4、D 5、A四、簡(jiǎn)答題1、跳轉(zhuǎn)語句l break當(dāng)它出現(xiàn)在switch條件語句中時(shí),作用是終止某個(gè)case并跳出switch結(jié)構(gòu)。當(dāng)它出現(xiàn)在循環(huán)語句中,作用是跳出當(dāng)前循環(huán)語句,執(zhí)行后面的代碼l continue在循環(huán)語句中,立即終止本次循環(huán),并執(zhí)行下一次循環(huán)。 l goto語句可以跳出外層循環(huán),需

5、要對(duì)外層循環(huán)添加標(biāo)記,然后使用goto語句可以跳轉(zhuǎn)到標(biāo)記的語句處。2、for與while的相同之處都是完成一定次數(shù)的循環(huán);其不同之處是:whie一般用于未知次數(shù)的循環(huán);for一般用于次數(shù)已知的循環(huán);兩者聲明變量的作用域不同,如果定義一個(gè)變量i,在while循環(huán)后i的值會(huì)存在,但for循環(huán)后,i的值不存在了;五、編程題1、參考答案#includevoid main()int x = 5;if (x % 2 = 0)printf(%d為偶數(shù)n,x);elseprintf(%d為奇數(shù)n,x);getchar();2、參考答案#includevoid main()int i, sum = 0;for

6、(i = 0; i 100; i+) /控制i在1-100之間if (i % 2 != 0) /如果是奇數(shù)sum += i; /就加起來printf(sum = %dn, sum);getchar();第4章 函數(shù)一、 填空題1、 return2、 有參、無參3、 scanf()4、 遞歸5、 全局、局部二、 判斷題1、 2、 3、 4、 5、三、 選擇題1、B 2、D 3、A、B、C 4、B、C 5、A、B、C四、簡(jiǎn)答題1、l 局部變量局部變量就是在函數(shù)內(nèi)部聲明的變量,它只在本函數(shù)內(nèi)有效,也就是說,只能在本函數(shù)內(nèi)使用它。此外,局部變量只有當(dāng)它所在的函數(shù)被調(diào)用時(shí)才會(huì)被使用,而當(dāng)函數(shù)調(diào)用結(jié)束時(shí)局

7、部變量就會(huì)失去作用。l 全局變量全局變量(包括main()函數(shù)),它不屬于哪一個(gè)函數(shù),而是屬于源程序。因此全局變量可以為程序中的所有函數(shù)所共用。它的有效范圍從定義處開始到源程序結(jié)束。2、l 外部函數(shù)可以被其他源文件調(diào)用的函數(shù)稱為外部函數(shù),在調(diào)用外部函數(shù)之前,需要在當(dāng)前源文件中定義外部函數(shù)。定義外部函數(shù)的方式是在函數(shù)的返回值類型前面添加extern關(guān)鍵字。l 內(nèi)部函數(shù)函數(shù)只在它的定義文件中有效,該類函數(shù)稱為內(nèi)部函數(shù)。在定義內(nèi)部函數(shù)時(shí),需要在函數(shù)的返回值類型前面添加static關(guān)鍵字(又稱為靜態(tài)函數(shù))。它不可以被別的源文件調(diào)用,只在當(dāng)前源文件中有效。五、編程題1、參考答案#includeint _

8、sum(int i)if (i = 1)return 1;if (i 1)return i + _sum(i - 1); /函數(shù)自身調(diào)用自身void main()int sum;sum = _sum(10);printf(sum = %dn, sum);getchar();2、參考答案#define _CRT_SECURE_NO_WARNINGS /scanf()函數(shù)是不安全的,調(diào)用它要關(guān)閉安全檢查#include#includeint sum(int a,int b)return a + b;void main()int a,b,he;scanf(%d%d, &a,&b);/用戶從鍵盤輸入數(shù)

9、據(jù)he = sum(a, b);printf(he = %dn, he);system(pause); /包含在stdlib.h頭文件中,也可以讓運(yùn)行結(jié)果界面暫停第5章 數(shù)組一、 填空題1、 集合2、 首3、 變量4、 下標(biāo)5、 9二、 判斷題1、 2、 3、 4、 5、三、 選擇題1、D 2、A 3、C 4、A、C 5、A、B、C、D四、簡(jiǎn)答題1、一維數(shù)組指的是只有一個(gè)下標(biāo)的數(shù)組,其定義方式如下所示:類型說明符 數(shù)組名常量表達(dá)式;其初始化有三種方法:l 直接對(duì)數(shù)組中的所有元素賦值;如int i5=1,2,3,4,5;l 只對(duì)數(shù)組中的一部分元素賦值;如int i5=1,2,3;l 對(duì)數(shù)組全部元

10、素賦值,但不指定長(zhǎng)度;如int i=1,2,3,4;2、一維數(shù)組和二維數(shù)組區(qū)別如下l 一維數(shù)組只有一個(gè)下標(biāo),二維數(shù)組有兩個(gè)下標(biāo);l 二維數(shù)組有行與列之分,一維數(shù)組則沒有;l 賦值時(shí)一維數(shù)組下標(biāo)可以略,二維數(shù)組可以省略第一個(gè)下標(biāo),第二個(gè)下標(biāo)不能省略。五、編程題1、參考答案#include#includeint _max(int a5) /數(shù)組作為函數(shù)參數(shù)int i;int max = a0;for (i = 1; i 5; i+)if (max ai)max = ai;return max;void main()int a5 = 3, 4, 6, 9, 13 ;printf(max = %dn,

11、 _max(a);system(pause); 2、參考答案 #include#includevoid _sort(int a, int n)int i, j, temp;for (i = 0; i n - 1; i+)for (j = 0; j aj + 1)temp = aj;aj = aj + 1;aj + 1 = temp;void main()int i;int b = 25, 24, 12, 76, 101, 96, 28 ;printf(排序前:);for (i = 0; i 7; i+)printf(%d , bi);_sort(b, 7); /數(shù)組名作為函數(shù)參數(shù)printf(

12、n排序后:);for (i = 0; i 7; i+)printf(%d , bi);system(pause);第6章 指針 一、 填空題1、 指針2、 字符數(shù)3、 &4、 函數(shù)指針5、 二級(jí)指針二、 判斷題1、 2、 3、 4、 5、三、 選擇題1、C 2、A 3、B 4、C 5、A四、簡(jiǎn)答題1、在程序運(yùn)行過程中,數(shù)據(jù)都是保存在內(nèi)存中的,內(nèi)存是以字節(jié)為單位的連續(xù)存儲(chǔ)空間,每個(gè)字節(jié)都有一個(gè)編號(hào),這個(gè)編號(hào)稱為地址。變量也是有地址的,專門用于存放其他變量的地址,這種變量稱為指針變量,通常簡(jiǎn)稱指針。通過指針可以操作它指向的內(nèi)存中的變量。取內(nèi)存的地址或取內(nèi)存中的值進(jìn)行運(yùn)算。如char arr10,*

13、p;p = arr;arr是大小為10的指針數(shù)組,p是指向這個(gè)數(shù)組的指針。2、數(shù)組指針是指向數(shù)組的指針,數(shù)組中存儲(chǔ)的是統(tǒng)一的其他數(shù)據(jù)類型的變量;指針指向這一塊內(nèi)存的首地址。可以通過指針的移動(dòng)來依次訪問數(shù)組中的元素。指針數(shù)組是指數(shù)組中存儲(chǔ)的是指針,數(shù)組中指針的數(shù)據(jù)類型必須一致,指針數(shù)組的定義方式與普通數(shù)組類似,只需在類型前面加上“*”,如int*arr10; 存儲(chǔ)了10個(gè)int類型的指針。五、編程題1、參考答案#define _CRT_SECURE_NO_WARNINGS /scanf()函數(shù)是不安全的,調(diào)用它要關(guān)閉安全檢查#include#includevoid swap(int *a, in

14、t *b)int temp ;temp = *a;*a = *b;*b = temp;void main()int a, b;printf(請(qǐng)輸入兩個(gè)數(shù):n);scanf(%d%d, &a, &b);swap(&a, &b);printf(交換后:n%d %dn, a, b);system(pause);2、參考答案#include#includevoid copystr(char *form1, char *form2)while (*form1)*form2 = *form1;form2+;form1+;*form2 = 0;void main()char str120 = Hello W

15、orld;char str220 = I am Chinese;printf(復(fù)制前:nstr1:%snstr2:%sn, str1, str2);copystr(str1, str2);printf(復(fù)制后:nstr1:%snstr2:%sn, str1, str2);system(pause);第7章 字符串 一、 填空題1、 strlen()2、 換行3、 b4、 strcmp() 5、 字符串二、 判斷題1、 2、 3、 4、 5、三、 選擇題1、A 2、C 3、A、C、D 4、C、D 5、A四、簡(jiǎn)答題1、字符串比同等字符數(shù)組多占一個(gè)字符的內(nèi)存空間。2、Puts()函數(shù)接收的參數(shù)是一個(gè)

16、字符串指針,該指針指向要輸出的字符串,并且會(huì)自動(dòng)在字符串末尾追加換行符n,調(diào)用成功時(shí)返回int類型的數(shù),否則返回EOF。strcat()函數(shù)在使用前,第一個(gè)參數(shù)對(duì)應(yīng)的字符數(shù)組必須要有足夠的空間來容納連接后的字符串,否則會(huì)造成緩沖區(qū)溢出。五、編程題1、參考答案#define _CRT_SECURE_NO_WARNINGS /gets()也要關(guān)閉安全檢查#include#include#includevoid main()char s1100, s2100;int i;printf(請(qǐng)輸入兩個(gè)字符串:n);gets(s1);gets(s2);i = strcmp(s1, s2);if (i 0)p

17、rintf(第1個(gè)字符串較大n);else if (i 0)printf(第2個(gè)字符串較大n);elseprintf(兩個(gè)字符串相等n);system(pause);2、 參考答案#define _CRT_SECURE_NO_WARNINGS /gets()也要關(guān)閉安全檢查#include#include#includevoid main()int a, b, c;char s1100, s2100,s3100;gets(s1);gets(s2);gets(s3);a = atoi(s1);b = atoi(s2);c = atoi(s3);printf(s1+s2+s3 = %dn, a +

18、 b + c);system(pause);第8章 預(yù)處理一、 填空題1、 #define2、 #include3、 #if/#else/#endif、#ifdef、#ifndef4、 #include 、#include “文件名”5、 880二、 判斷題1、 2、 3、 4、 5、三、 選擇題1、C 2、D 3、B 4、B 5、B四、簡(jiǎn)答題1、預(yù)處理指令有三種:宏定義、文件包含、條件編譯。宏定義使用#define來表示,當(dāng)一些常量在程序中頻繁使用,為了避免書寫錯(cuò)誤,可以使用宏定義來表示。文件包含是指在C語言程序中經(jīng)常會(huì)使用到一些函數(shù),這些函數(shù)需要引用相關(guān)的頭文件,引用方式為#include

19、或者是#include stdio.h。條件編譯是指C語言程序?yàn)榱送瓿赡承┕δ?,只有在指定條件下才進(jìn)行編譯。2、條件編譯的格式有三種。第一種是#if/#else/endif指令,只有符合判斷條件才會(huì)執(zhí)行相應(yīng)的編譯。第二種是#ifdef指令,如果想判斷某個(gè)宏是否被定義可以使用該指令。 第三種是#ifndef指令,用來判斷某個(gè)宏是否被定義,如果沒有定義那么就會(huì)編譯#ifndef到#endif中間的內(nèi)容,否則就跳過。五、編程題1、參考答案#define _CRT_SECURE_NO_WARNINGS /gets()也要關(guān)閉安全檢查#include#include#define FUNC(x,y) x

20、%yvoid main()int a, b;scanf(%d%d, &a, &b);printf(兩個(gè)數(shù)的余數(shù)為:%dn, FUNC(a, b);system(pause);2、 參考答案#define _CRT_SECURE_NO_WARNINGS /gets()也要關(guān)閉安全檢查#include#include#define PI 3.1415926#define CIR_S(r) PI*r*r#define CIR_L(r) 2*PI*rvoid main()float r;printf(請(qǐng)輸入圓的半徑:n);scanf(%f, &r);printf(圓的面積:%.2fn, CIR_S(r

21、);printf(圓的周長(zhǎng):%.2fn, CIR_L(r);system(pause);第9章 結(jié)構(gòu)體與共用體四、 填空題1、 構(gòu)造2、 struct3、 union4、 stu.num5、 8五、 判斷題1、 2、 3、 4、 5、六、 選擇題1、A 2、A C 3、C 4、B 5、 D四、簡(jiǎn)答題1、結(jié)構(gòu)體類型的定義方式如下所示:struct 結(jié)構(gòu)體類型名稱數(shù)據(jù)類型 成員名1;數(shù)據(jù)類型 成員名2;數(shù)據(jù)類型 成員名n;共用體在定義上與結(jié)構(gòu)體類型十分相似,共用體類型的定義方式如下所示:union 共用體類型名稱 數(shù)據(jù)類型 成員名1; 數(shù)據(jù)類型 成員名2; 數(shù)據(jù)類型 成員名n;2、在程序執(zhí)行的任何

22、特定時(shí)刻,結(jié)構(gòu)體變量中的所有成員是同時(shí)駐留在該結(jié)構(gòu)體變量所占用的內(nèi)存空間中,而共用體變量?jī)H有一個(gè)成員駐留在共用體變量所占用的內(nèi)存空間中。五、編程題1、參考答案#define _CRT_SECURE_NO_WARNINGS #include#include/存儲(chǔ)學(xué)生信息的結(jié)構(gòu)體struct STint ID;char name20;float score3;/_avg()求平均成績(jī)的函數(shù)float _avg(struct ST *s, int n) int i, j;int sum = 0;float avg;for (i = 0; i n; i+)for (j = 0; j 3; j+)sum

23、 += si.scorej;return (sum / n) / 3;/_get()函數(shù)找最高分學(xué)生,輸出該學(xué)生的信息void _get(struct ST* s, int n)int i, j;int max = 0; int index = 0;for (i = 0; i max)max = si.score0 + si.score1 + si.score2;index = i;printf(n最高分學(xué)生信息:n);printf(學(xué)號(hào):%dn, (s + index)-ID);printf(姓名:%sn, (s + index)-name);printf(成績(jī):%.2f,%.2f,%.2f

24、n, sindex.score0, sindex.score1, sindex.score2);void main()int i, j;float avg;struct ST sts20;/輸入學(xué)生信息for (i = 0; i 20; i+)printf(請(qǐng)輸入第%d個(gè)學(xué)生信息:n,i+1);scanf(%d, &stsi.ID); scanf(%s, );for (j = 0; j 3; j+)scanf(%f, &stsi.scorej); /輸入各科成績(jī)printf(3門課的總平均成績(jī)?yōu)椋?.2fn, _avg(sts, 20);_get(sts, 20);syste

25、m(pause);第10章 數(shù)據(jù)結(jié)構(gòu)一、 填空題1、數(shù)據(jù)域 指針域 2、指針3、棧頂 棧底4、棧5、入隊(duì) 出隊(duì)二、 判斷題1、 2、 3、 4、 5、三、 選擇題1、 B 2、B 3、D 4、D 5、D四、 簡(jiǎn)單題1、 鏈表是一種常用的線性存儲(chǔ)結(jié)構(gòu),它由一系列節(jié)點(diǎn)組成,節(jié)點(diǎn)可以在運(yùn)行時(shí)動(dòng)態(tài)生成,鏈表可以充分利用計(jì)算機(jī)內(nèi)存空間,靈活實(shí)現(xiàn)內(nèi)存動(dòng)態(tài)管理。2、 棧是只允許在其一端進(jìn)行插入和刪除操作的線性表,它遵循的是后進(jìn)先出原則;而隊(duì)列是一個(gè)線性表,元素是從表的一端進(jìn)行插入,從表的另一端進(jìn)行刪除,它遵循的是先進(jìn)先出的原則。五、 編程題1、參考答案#define _CRT_SECURE_NO_WARNI

26、NGS #include#includestruct Node /結(jié)點(diǎn)int data;struct Node* next;struct Link /鏈表頭int length;struct Node* head;void _init(struct Link* L) /初始化L-length = 0;L-head = NULL;struct Link* _create()int ret = 1;struct Link* pHead = (struct Link*)malloc(sizeof(struct Link);_init(pHead); /初始化鏈表struct Node* pNode

27、= NULL, *temp = NULL;printf(請(qǐng)輸入數(shù)據(jù),輸入0結(jié)束n);while (ret)scanf(%d, &ret);if (ret)pNode = (struct Node*)malloc(sizeof(struct Node);pNode-data = ret;pNode-next = NULL;if (temp = NULL)temp = pNode;elsetemp-next = pNode;if (pHead-head = NULL)pHead-head = temp;temp = pNode;pHead-length+;elsebreak;return pHead;/求鏈表的結(jié)點(diǎn)數(shù)int _getcount(struct Link* pHead)int count = 0;struct Node* tem

溫馨提示

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

評(píng)論

0/150

提交評(píng)論