C-語言期末復(fù)習(xí)題_第1頁
C-語言期末復(fù)習(xí)題_第2頁
C-語言期末復(fù)習(xí)題_第3頁
C-語言期末復(fù)習(xí)題_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上一、簡答題1、請問指針有哪些類型?指針的類型,跟他所指向的數(shù)據(jù)結(jié)構(gòu)有關(guān),基本類型的指針指向基本類型的數(shù)據(jù)結(jié)構(gòu)。2、函數(shù)式宏定義和函數(shù)調(diào)有什么不同? (1)函數(shù)式宏定義的參數(shù)沒有類型,預(yù)處理器只負(fù)責(zé)做形式上的替換,而不做參數(shù)類型檢查,所以傳參時要格外小心。 (2)調(diào)用真正函數(shù)的代碼和調(diào)用函數(shù)式宏定義的代碼編譯生成的指令不同。 (3)函數(shù)式宏定義要注意格式,尤其是括號。 (4)若函數(shù)參數(shù)為表達(dá)式,則普通函數(shù)的調(diào)用與函數(shù)式宏定義的替換過程是不一樣的。 (5)函數(shù)式宏定義往往會導(dǎo)致較低的代碼執(zhí)行效率。3、請問指針編程有哪些優(yōu)點? (1)提高傳輸速度,又節(jié)省大量內(nèi)存。

2、 (2)可以用來做數(shù)據(jù)類型轉(zhuǎn)換,比較常用于通訊緩沖區(qū)的填充。 (3)可以用在大量分支處理的實例當(dāng)中。 (4)在數(shù)據(jù)結(jié)構(gòu)中,鏈表、樹、圖等大量的應(yīng)用都離不開指針。4、C語言中,變量為什么要先定義后使用? (1)對于編譯器處理更方便。 (2)不容易出錯。 (3)程序更清晰。5、二維數(shù)組的初始化定義的正確形式有哪些?請舉例說明 (1)分行賦初值例如:int a23= 1,3,4,2,3,1,7,9,0 (2)按順序初始化例如:int a23=1,3,4,2,3,1,7,9,0; (3)省略一維長度的賦值例如:int a3=1,3,4,2,3,1,7,

3、9,0; (4)對數(shù)組的前幾行元素初始化,其他元素自動初始化為0例如:int a23= 1,2,3 6、while與do while相同點與不同點是什么? (1)while語句是先測試條件再執(zhí)行語句,條件不符后終止;do while語句是先執(zhí)行語句再測試條件,條件不符后終止,所以do while循環(huán)至少執(zhí)行一次7、請寫出一個C程序的構(gòu)成 (1)C程序是由若干個函數(shù)構(gòu)成的 (2)每個函數(shù)(包括主函數(shù))的定義分為兩個部分:函數(shù)說明部分和函數(shù)體。 (3)C程序中的語句最后總要有一個“分號(;)”,作為每個語句的結(jié)束。 (4)可以用“”括住任

4、意字符,稱為“注釋”。 (5)C程序的書寫格式很靈活,在一行上可以書寫多個語句,一個語句也可以寫在多行上。 (6)C程序的執(zhí)行總是從主函數(shù)開始,并在主函數(shù)中結(jié)束。 (7)主函數(shù)可以調(diào)用任何非主函數(shù);任何非主函數(shù)都可以相互調(diào)用,但是不能調(diào)用主函數(shù)8、C語言的語句有哪幾種? (1)表達(dá)式語句 (2)函數(shù)調(diào)用語句 (3)控制語句 (4)復(fù)合語句 (5)空語句 9、運行C程序的步驟 編輯(預(yù)處理)編譯鏈接運行10、算法的特征 (1)有窮性(2)確切性(3)輸入(4)輸出(5)可行性11、C語言變量的儲存類別分為哪四種? (1)auto(自動)

5、(2)extern(外部)(3)static(靜態(tài))(4)register(寄存器)12、函數(shù)的嵌套調(diào)用和遞歸調(diào)用有什么區(qū)別? 遞歸調(diào)用 是自己調(diào)用自己,函數(shù)嵌套可以是調(diào) 用其他函數(shù)。13、請描述一個算法,求1+4+7+100的和#include<stdio.h>void main()    int i;    int sum = 0;    for(i=1;i<=100;i+=3) &#

6、160;          sum += i;        printf("%dn",sum);    return;14、循環(huán)結(jié)構(gòu)中break語句和continue語句的作用是什么?二者有何區(qū)別 (1)作用:break語句通常用在循環(huán)語句和開關(guān)語句中。continue語句的作用是跳過循環(huán)體中剩余的語句而強(qiáng)行執(zhí)行下一次循環(huán)。 (2)區(qū)別

7、:continue語句只結(jié)束本次循環(huán),而不是終止整個循環(huán)的執(zhí)行。break語句則是結(jié)束整個循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立。15、指針與地址有什么聯(lián)系?在使用指針的過程中應(yīng)注意哪些細(xì)節(jié)? (1)聯(lián)系:指針和地址最大的區(qū)別就是指針是有類型的,地址是沒有類型的。指針是由地址和類型兩部分構(gòu)成的。 (2)注意細(xì)節(jié):指針變量和普通變量概念使用方式相混淆指針變量的賦值(初始化,傳遞地址)方式有誤指針變量的類型與所指元素的類型不一致指針移動不恰當(dāng)指針在使用過程中發(fā)生了不必要的導(dǎo)致錯誤的改變多重的指針指向指針,導(dǎo)致形成難以理清的邏輯關(guān)系.16、C語言中參數(shù)傳遞有什么特點?我們應(yīng)當(dāng)注意些什么? (1)數(shù)

8、值傳遞:被調(diào)用函數(shù)中對形參的操作不影響主調(diào)用函數(shù)中的實參值。  (2)地址傳遞:可以通過被調(diào)用函數(shù)中對形參的操作來修改主調(diào)用函數(shù)中的實參值。 注意事項:用malloc 或new申請內(nèi)存之后,應(yīng)該立即檢查指針值是否為NULL。防止使用指針值為NULL 的內(nèi)存。17、C語言中進(jìn)行函數(shù)聲明的作用是什么? (1)把函數(shù)的名字,函數(shù)類型以及形參的類型、個數(shù)和順序通知編譯系統(tǒng),以便在調(diào)用該函數(shù)時進(jìn)行對照檢查,它不包括函數(shù)體。18、字符常量與字符串常量有什么區(qū)別? (1)形式上:字符常量是單引號引起的一個字符;字符串常量是雙引號引起的若干個字符; (2)含義上:字符常量相當(dāng)于一

9、個整型值,可以參加表達(dá)式的運算;字符串常量代表一個地址值(該字符串在內(nèi)存中存放的位置); (3)占內(nèi)存大小:字符常量只占一個字節(jié);字符串常量占若干個字節(jié),(至少一個字符結(jié)束標(biāo)志)19、C語言中如何表示“真”與“假” (1)定義假為0,真為1。(2)建立自己的枚舉類型20、字符數(shù)組與字符串是否相同?若不相同,有何區(qū)別? 不相同。(1)字符指針中存的是字符串第一個字符的首地址。而字符數(shù)組中存的整個字符串 (2)字符數(shù)組只能在定義是進(jìn)行初始化;char a="abc"不可以chara10 a10="abc"而字符指針可以。21、關(guān)鍵字與一般

10、標(biāo)識符有什么不同? (1)關(guān)鍵字是標(biāo)識符的一種。標(biāo)識符是指: 可以當(dāng)作變量名, 函數(shù)名等的。 (2)標(biāo)識符是非常多的(但C語言支持最長的標(biāo)識符是32個)而關(guān)鍵字只有32個。22、使用swicth的注意事項。 (1)switch語句后面的小括號只能寫整數(shù)類型的表達(dá)式,否則會報錯。 (2)switch小括號后面不要加分號,可以加分號加在大括號后面。23、請用兩種方式寫出如何判斷某一年為閏年的C語句。 (1)#include<stdio.h>main() int n;printf(“請輸入年份:n");scanf(“%d",&a

11、mp;n);if(n%100=0)if(n%400=0)printf(“是閏年");elseprintf(“不是閏年");elseif(n%4=8)printf(“是閏年");elseprintf(“不是閏年") (2)#include<stdio.h>int main()int a;scanf("%d",&a);if(a%400=0|a%4=0&&a%100)printf("yes");else printf("no");ret

12、urn 0;24、if語句中條件表達(dá)式可以是任意合法的表達(dá)式嗎?switch語句中break的作用是什么? (1)if語句中的表達(dá)式不限于邏輯表達(dá)式,可以是任意的數(shù)值類型。 (2)當(dāng)break用于開關(guān)語句switch中時,可使程序跳出switch而執(zhí)行switch以后的語句;如果沒有break語句,則會從滿足條件的地方開始執(zhí)行,直到switch結(jié)構(gòu)結(jié)束。25、C語言循環(huán)結(jié)構(gòu)主要有哪幾種?每種循環(huán)結(jié)構(gòu)的一般形式分別是什么樣的? (1)dowhile :先循環(huán),在判斷 (2) while :先判斷后循環(huán) (3)for:一般可以代替上面兩個26、預(yù)處理命令主要有哪幾種?

13、每種預(yù)處理命令的一般形式是什么樣的? (1)宏定義命令:#define、#undef,用來定義和解除宏。 (2)文件包含命令:#include "文件名" 或者 #include <文件名>。 (3)條件編譯:#ifdef、#else、#endif、#elif 等。27、請寫出C語言標(biāo)識符的命名規(guī)則(1)必須用字母或下劃線開頭。(2)只能是字母、下劃線、數(shù)字的組合,不能出現(xiàn)其他符號。例如¥_st,就是個錯誤的標(biāo)識符,它出現(xiàn)了“¥”符號。(3)大小寫的含義是不同的,例如標(biāo)識符 和是不同的。(4)標(biāo)識符的名稱不能是C

14、語言中的關(guān)鍵字,關(guān)鍵字是具有特定含義的標(biāo)識符,用戶只能根據(jù)系統(tǒng)的規(guī)定使用它們。 28、請簡述while型循環(huán)和until型循環(huán)的區(qū)別WHILE型和UNTIL型語句本質(zhì)上是等價的,當(dāng)型循環(huán)有時稱為前測試型循環(huán),直到型循環(huán)有時稱為后測試型循環(huán).29、C語言中的語句有哪幾類?(1)表達(dá)式語句(2)函數(shù)調(diào)用語(3)控制語句(4)復(fù)合語句(5)空語句 30、局部變量和全局變量有何區(qū)別?全局變量就是整個源程序都有效的變量;而局部變量會在其所屬.二、編程題1、以下4種水果,1蘋果2梨3桔子4芒果,單價分別是2.0元/公斤,2.5元/公斤,3.0元/公斤,4.5元/公斤,請輸入水果編號,重量,計算應(yīng)

15、付款。 解答:#include<stdio.h>#include<windows.h>int main() double weight,pay,price;int num;printf("請輸入水果編號、重量:");scanf("%d%lf",&num,&weight);switch(num)case 1:price=2;break;case 2:price=2.5;break;case 3:price=3;break;case 4:p

16、rice=4.5;break;default:printf("你輸入的編號有誤!n");exit (0);pay=weight*price;printf("應(yīng)付款:%.2lfn",pay);return 0;2、輸入某學(xué)生成績(成績分為100分制,可以為89.5,如果輸入的成績不在0-100之間,請給出錯誤提示)經(jīng)處理后給出學(xué)生的等級,等級分類如下:90分以下(包括90分):A80至90分(包括80分):B70至80分(包括70分):C60至70分(包括60分):D60分以下:E#include "stdio.h&

17、quot;void main ()double key;printf("請輸入學(xué)生成績n");scanf("%lf",&kay);if(key>=0 && key=<60)printf("分?jǐn)?shù)等級:En');else if(key>=60&&key=<69)printf("分?jǐn)?shù)等級:Dn');else if(key>=70&&key=<79)printf(&q

18、uot;分?jǐn)?shù)等級:Cn');else if(key>=80&&key=<89)printf("分?jǐn)?shù)等級:Bn');else if(key>=90&&key=<100)printf("分?jǐn)?shù)等級:An');elseprintf("輸入有誤請重新輸入:");scanf("%If",&key);3、編程實現(xiàn)求1-10之間的所有數(shù)的乘積并輸出。#include <stdio.h>void main(

19、0;) int i;long sum=1;for(i=1; i<=10; i=i+1)sum=sum*i;printf(“the sum of odd is :%ld”,sum);4、從鍵盤輸入兩個數(shù),求出其最大值(要求使用函數(shù)完成求最大值,并在主函數(shù)中調(diào)用該函數(shù))。#include <stdio.h>int max(int x,int y) return (x > y) ?

20、0;x : y;int main() int a,b;printf("輸入兩個整數(shù)(空格隔開):");scanf("%d%d",&a,&b);printf("最大數(shù):%dn",max(a,b);return 0;5、已知函數(shù)y=f(x),編程實現(xiàn)輸入一個x值,輸出y值。 2x+1 (x<0)y=0 (x=0)2x-1 (x>0)#include<stdio.h>void main() float x;scanf(“%f”,x);if(x

21、<0)printf(“y=%f”,2*x+1);else if(x=0)printf(“y=%f”,x);elseprintf(“y=%f”,2*x-1);6、輸出100-200之間既不能被3整除也不能被7整除并統(tǒng)計這些整數(shù)的個數(shù),要求每行輸出8個數(shù)。#include<stdio.h>#include<conio.h>void main()clrscr();int n;n=0;for(int i=100;i<=200;i+)if(i3!=0&&i7!=0)n+;printf("ad=dt",n,i);7、小明媽媽給他買了若

22、干塊巧克力,小明第一天吃了一半,還不過癮,又多吃了一塊,第二天又將剩下的巧克力吃掉一半,又多吃一塊,以后每天都吃了前一天剩下的一半零一塊。到第10天再想吃時,只剩下一塊了。編程計算小明媽媽總共給小明買了多少塊巧克力?#include<stdio.h>int cho(int);void main() printf("%dn",cho(1);int cho(int y)/*返回第y天吃之前的數(shù)量*/if(10=y) return 1;return (cho(y+1)+1)*2;8、寫程序

23、,其中自定義一函數(shù),用來判斷一個整數(shù)是否為素數(shù)。主函數(shù)輸入一個數(shù),輸出是否為素數(shù)?#include <stdio.h>void sushu(int n);int main()int n;scanf("%d",&n);sushu(n);void sushu(int n)int i,m=1;for(i=2;i<n/2;i+)if(n%i=0)m=0;break;if(m=1)printf("sushu");elseprintf("fsushu&

24、quot;);9、一個百萬富翁遇到一個陌生人,陌生人找他談一個換錢的計劃,該計劃如下:我每天給你十萬元,而你第一天只需給我一分錢,第二天我仍給你十萬元,你給我二分錢,第三天我仍給你十萬元,你給我四分錢,,你每天給我的錢是前一天的兩倍,直到滿一月(30天),百萬富翁很高興,欣然接受了這個契約。請編寫一個程序計算這一個月中陌生人給了百萬富翁多少錢?百萬富翁給陌生人多少錢?#include<iostream>int main()unsigned long sum1, sum2;int b=2;for(int i=0;i<30;i+)sum1+=b;b*=2;sum1=100;sum2=*30;printf("富翁共收到%ld。n富翁共給出%ld。n",sum2,sum1);return 0;10、從鍵盤輸入兩個正整數(shù)x,y,求它們的最大公約數(shù)。#include <stdio.h>int gcd(int x,int&#

溫馨提示

  • 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

提交評論