c語言期末復習_第1頁
c語言期末復習_第2頁
c語言期末復習_第3頁
c語言期末復習_第4頁
c語言期末復習_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

會計學1c語言期末復習改錯、填空多考點:#include<math.h>

預處理#defineN10宏定義floatff(floata,floatb,floatc);

函數(shù)聲明main()主函數(shù){inti,j,a[10],*p,sum,x=1;變量定義sum=0;賦值scanf(“%d”,&a[0]);輸入語句,參數(shù)是地址if(i==0)for(;;),while語句的考察,注意表達式的判斷,循環(huán)體語句的判斷。輸出語句}}第1頁/共35頁函數(shù)調用intss(inta,intb[],int*q){}main(){intx,s[10],y;ss(x,s,&y);

實參和形參個數(shù)相同,類型相同。}第2頁/共35頁雙層循環(huán)inta[5][6]for(i=0;i<5;i++)for(j=5;j>=0;j--)i,j的范圍if(i%2==0)奇數(shù)位對應偶數(shù)下標a[i][j]=i+j+1;規(guī)律第3頁/共35頁總體上必須清楚的:

1)程序結構是三種:順序結構

,循環(huán)結構(三個循環(huán)結構),選擇結構(if和

switch)。

2)讀程序都要從main()入口,然后從最上面順序往下讀(碰到循環(huán)做循環(huán),碰到選擇做選擇)。

3)計算機的數(shù)據(jù)在電腦中保存是以二進制的形式。數(shù)據(jù)存放的位置就是他的地址。

4)二進制如何劃成十進制。第4頁/共35頁概念常考到的:

1、編譯預處理不是C語言的一部分,不占運行時間。C語言編譯的程序稱為源程序,它以ASCII數(shù)值存放在文本文件中。

2、每個C語言程序中main函數(shù)是有且只有一個。

3、在函數(shù)中不可以再定義函數(shù)。定義不可嵌套,但調用可以。

4、break可用于循環(huán)結構和switch語句。5、優(yōu)先級:單目(++,--,!)>算術表達式>關系表達式>邏輯表達式>三目>賦值。

第5頁/共35頁14.C語言的下列運算符中,優(yōu)先級最高的運算符是(

)。A.++ B.+= C.|| D.!=下列敘述正確的是()

A為提高程序運行速度可在源程序中加入一些宏定義

B一個C語言源程序只能有一條預處理命令C宏定義不占用程序運行時間,但與程序中的語句一樣需要編程D宏定義中的宏名必須用大寫字母表示

AC第6頁/共35頁第一章1)合法的用戶標識符由字母,數(shù)字,下劃線組成。并且第一個必須為字母或則是下劃線。關鍵字不可以作為用戶標識符號。main

define

scanf

printf都是關鍵字。If是可以做為用戶標識符。因為If中的第一個字母大寫了,所以不是關鍵字。

2)實型數(shù)據(jù)的合法形式:

2.333e-1就是合法的,且數(shù)據(jù)是2.333×10-1。

考試口訣:e前e后必有數(shù),e后必為整數(shù)。2.3小數(shù)點前后可省略其中一個。

3)字符數(shù)據(jù)的合法形式::

'1'是字符占一個字節(jié),"1"是字符串占兩個字節(jié)(含有一個結束符號‘\0’)。

'0'的ASCII數(shù)值表示為48,'a'的ASCII數(shù)值是97,'A'的ASCII數(shù)值是65。4)char是1字節(jié),int是2字節(jié),long是4字節(jié),float是4個字節(jié),double是8字節(jié)

第7頁/共35頁

5)在轉義字符中,’\x6d’十六進制數(shù)。

‘\141’八進制數(shù)。

‘\108’是非法的,因為不可以出現(xiàn)8。

6)強制類型轉換:

一定是(int)a不是

int(a),類型上一定有括號的。

注意(int)(3.6+3.6)=7和(int)

3.6+3.6=6.6的區(qū)別。

7)表達式的考查:

是表達式就一定有數(shù)值。

賦值表達式:表達式左邊一定是一個變量。

自加、自減表達式:假設a=5,++a(是為6),

a++(為5);考試口訣:++在前先加后賦,++在后先賦后加。

逗號表達式:優(yōu)先級別最低;表達式的數(shù)值逗號最右邊的那個表達式的數(shù)值。(2,3,4)的表達式的數(shù)值就是4。

8)位運算的考查:會有一到二題考試題目。

<<左移一位表示乘以2,2位乘4,3位乘8;>>右移一位表示除以2,2位除4,3位除6。

9)%(求余)符號兩邊要求是整數(shù)。

10)取整丟小數(shù)的情況:1、(int)1.6=1;2、1/2=0;

第8頁/共35頁18.(

)為正確的變量名。A.-k15 B.int C.k_5 D.k.jeep19.(

)為正確的字符常量。A.''\\'' B."\24m" C."c" D.'M'22.以下選項中,合法的實型常數(shù)是(

)。A.E-3 B..2E1 C.1E.5 D.1.5E29.語句

k=(m=5,n=++m);運行之后,變量k、m、n的值依次為(

)。A.5,5,6 B.5,6,5 C.6,6,5 D.6,6,635.若有定義:intm=4,n=5;floatk;,則以下符合C語言語法的表達式是(

)。A.(m+n)*=k B.m=(n==5) C.k=float(n)/m D.n%2.544.若有定義

inti=1,j=9;則表達式

(++j)*(i--)的值為(

)。A.0 B.10 C.9 D.8cDBDBB第9頁/共35頁第二章

1)printf函數(shù)的格式考查:

%d對應int整型;%c對應char字符;%f對應float單精度;

%ld對應

longint;%lf對應double。寬度的,左對齊等修飾。

%.3f

2)scanf函數(shù)的格式考察:

注意該函數(shù)的第二個部分是&a這樣的地址,不是a;

scanf(“%d%d%*d%d”,&a,&b,&c);跳過輸入的第三個數(shù)據(jù)(b沒賦值)。輸入語句不能出現(xiàn)%6.2f,只能是%6f。

3)putchar,getchar函數(shù)的考查:

char

a;a=getchar()是沒有參數(shù)的,從鍵盤得到你輸入的一個字符給變量a。

putchar(‘y’)把字符y輸出到屏幕中。

4)如何實現(xiàn)兩個變量x,y中數(shù)值的互換(要求背下來)

不可以把

x=y,y=x;要用中間變量

t=x;x=y;y=t。5)while((c=getchar())!=’\n’)

注意點:括號在這里的重要性。

第10頁/共35頁52.

若已定義:inta=5,b=9,c=6;則語句

b++;++c;a=b-c;運行后a的值為(

)。A.5 B.3 C.2 D.454.若已定義

floatx;要從鍵盤輸入數(shù)據(jù)36.582給變量x,則應選用(

)語句。A.scanf("%2.3f",&x); B.scanf("%6f",&x);C.scanf("%6.3f",&x); D.scanf("%5.3f",&x);58.若已定義

inta=11;執(zhí)行以下語句后的輸出結果是(

)。

printf("a=%d,a=%o,a=%x\n",a,a,a);A.a=11,a=11,a=b B.a=11,a=13,a=bC.a=11,a=13,a=c D.a=11,a=12,a=1361.以下程序段的運行結果是(

)。

inta=1;printf("%d,%d,%d\n",a,++a,a++);3,3,1 B.1,2,2C.1,2,3 D.3,2,1BBBA第11頁/共35頁66.有以下程序:main(){intc;while((c=getchar())!='\n'){switch(c-'2'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);default:putchar(c+2);break;}}}當輸入:247<回車>,程序的輸出結果是(

)。689 B.6689C.66778 D.66887B第12頁/共35頁c語言中是用非0表示邏輯真的,用0表示邏輯假的。

1)關系表達式:

表達式的數(shù)值只能為1(表示為真),或0(表示假)

關系的表達是為真的時候得到1。如

9>8這個是真的,所以表達式的數(shù)值就是1;a>b>c的問題

2)邏輯表達式:

為1(表示為真),0(表示假)

a)!>&&>||

優(yōu)先的級別。

b)不完全計算問題。

c)要表示

x是比0大,比10小的方法。0<x<10是不可以的。

一定要用

(0<x)&&(x<10)。

第13頁/共35頁36.若有定義:inta=6;則語句

a*=a-=a/=3;運行后,a的值是(

)。A.10 B.0 C.34 D.2446.若已定義

inta=3,b=2,c=1;則語句

++a||++b&&++c;運行后b的值為(

)。A.0 B.3 C.1 D.248.若已定義:inta=2,b=2;則表達式

(a+(b++),b)的值是(

)。A.2 B.3 C.4 D.669.若已定義

intx=-16,y=-12,z;語句z=x<=y;運行后z的值為(

)。.t. B.1 C..f. D.071.若定義

inta=2,b=3;則表達式

!a||b的值為(

)。A.0 B.1 C.2 D.3BBCBB第14頁/共35頁73.下列表達式()不能用來判斷整型變量x中的值是否為奇數(shù)。A.x%2==1 B.!(x%2==0) C.!(x%2) D.x%274.若有定義:inta=3,b=2,c=3;則值為0的表達式是(

)。A.(a-b)==(c/b) B.a>=cC.c-b||a+b&&(b*c-a-c) D.(b*c-a-c)&&(b*c-a-b)80.已定義

doublek=3.6;則正確的賦值表達式是(

)。A.k=double(-3.6) B.k%3C.k=k*(-1.0)=-3.6 D.k+=k-=(k=1.2)*(k=3)89.若有定義:floatx=2,y=4,h=3;下列表達式中與(x+y)*h/2.0計算結果不相符的是(

)。(x+y)*h/2 B.(x+y)*h*1/2C.(1/2)*(x+y)*h D.h/2*(x+y)CDDc第15頁/共35頁1)if語句

else是與最接近的if且沒有else配套的相組合的。

2)條件表達式:

條件表達式1?表達式2:表達式3

注意是條件判斷為真時執(zhí)行表達式2的數(shù)值,當是假時執(zhí)行表達式3的數(shù)值。

3)switch語句:

a)一定要注意:有break和沒有break的差別,沒有break時候,只要有一個case匹配了,剩下的都要執(zhí)行,有break則是直接跳出了

swiche語句。

b)switch只可以和break一起用,不可以和continue用。第三章第16頁/共35頁79.以下程序運行后,a的值是(

)。main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}}A.101 B.100 C.8 D.7c第17頁/共35頁98.以下程序段運行后變量k的值為(

)。inta=3,b=2;

intk;k=(--a==b++)?a:b+1;A.0 B.1 C.2 D.399.以下程序的運行結果是(

)。voidmain(){intn=9;switch(n--){default:printf("%d",n++);case8:case7:printf("%d",n);break;case6:printf("%d",n++);case5:printf("%d",n);}}A.8 B.7 C.89 D.87cc第18頁/共35頁101.

以下程序的運行結果是(

)。voidmain(){inta;if(a=6)printf("%d\n",a);elseif(a>6)printf("%d\n",a+2);elseprintf("%d\n",a+3);}A.運行時產(chǎn)生錯誤信息

B.9 C.8 D.6D第19頁/共35頁103.若有定義:inta=2,b=3,c=1;則以下程序段的運行結果是(

)。

if(a>b)if(a>c)printf("%d",a);elseprintf("%d",b);printf("%d",c);A.31 B.21 C.3 D.1D第20頁/共35頁第四章

1)三種循環(huán)結構:for;while();

do-while()三種。

a)for(;;)語句1;循環(huán)當中必須是兩個分號,千萬不要忘記。

b)寫程序的時候一定要注意,循環(huán)一定要有結束的條件,否則成了死循環(huán)。

c)

do-while()循環(huán)的最后一個while();的分號一定不能夠丟。(當心上機改錯)

2)break:退出整個循環(huán)。

continue:結束本次循環(huán),就是循環(huán)體內剩下的語句不再執(zhí)行,跳到循環(huán)開始,然后判斷循環(huán)條件,進行新一輪的循環(huán)。

3)嵌套循環(huán)

就是有循環(huán)里面還有循環(huán),這種比較復雜,要一層一層一步一步耐心的計算,一般記住兩層是處理二維數(shù)組的。

第21頁/共35頁105.下列程序段中,非死循環(huán)的是(

)。A.inti=100;while(1){i=i%100+1;if(i>=100)break;}C.ints=10;while(++s%2+s%2)s++;B.intk=0;do{++k;}while(k>=0);D.for(;;)A第22頁/共35頁108.以下程序段運行后,循環(huán)體中的

n+=3;語句運行的次數(shù)為(

)。inti,j,n=0;for(i=1;i<=3;i++)

{for(j=1;j<=i;j++)

{n+=3;printf("%d\n",n);}}A.6次

B.9次

C.12次

D.1次A第23頁/共35頁114.以下程序的運行結果是(

)。

voidmain(){ints=0,i=0;while(i<10){i++;if(i%2==0)s+=i;}printf("%d\n",s);

}A.20 B.30 C.25 D.45B第24頁/共35頁115.以下程序的運行結果是(

)。

voidmain(){intx=5;do{printf("%2d",x--);}while(!x);}A.54321B.43210C.5D.4C第25頁/共35頁116.以下程序的運行結果是(

)。

voidmain(){inti,j,k=0;for(i=3;i>=1;i--)

{for(j=i;j<=3;j++)

k+=i*j;

}

printf("%d\n",k);

}A.19 B.29 C.6 D.25D第26頁/共35頁inta[10];

1、a表示數(shù)組名,是數(shù)組的首地址,也就是元素a[0]的地址。

2、a是地址常量,所以只要出現(xiàn)a++,或者是a=a+2賦值的都是錯誤的。

3、a+1是跳一列。

inta[3][3]

1、a是a[0][0]的地址。

2、a+1是跳一行。

3、a[0]、a[1]、a[2]也都是地址常量,不可以對它進行賦值操作,a[0]+1,a[1]+1,a[2]+1都是跳一列。數(shù)組第27頁/共35頁二維數(shù)組做題目的技巧:

如果有a[3][3]={1,2,3,4,5,6,7,8,9}這樣的題目。

步驟一:把他們寫成:第一列第二列第三列

a[0]

1

2

3

->第一行

a[1]

4

5

6

—>第二行

a[2]

7

8

9->第三行

步驟二:

*(a[0]+1)我們就知道是第一行的第一個元素往后面跳一列,那么這里就是a[0][1]元素,所以是2。

*(a[1]+2)我們就知道是第二行的第一個元素往后面跳二列。那么這里就是

a[1][2]元素,所以是6。

一定記?。褐灰嵌S數(shù)組的題目,一定是寫成如上的格式,再去做題目,這樣會比較簡單。

第28頁/共35頁數(shù)組的初始化,二維的,行標可以不寫,列標一定要寫。

inta[]={1,2}合法。inta[][4]={2,3,4}合法。但inta[4][]={2,3,4}非法。二維數(shù)組中的行指針

inta[1][2];

a現(xiàn)在就是一個行指針,a+1跳一行數(shù)組元素。

a[0],a[1]現(xiàn)在就是一個列指針。a[0]+1跳一個數(shù)組元素。

還有記住脫衣服法則:

a[2]

變成*(a

溫馨提示

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

評論

0/150

提交評論