版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言復(fù)習(xí)提綱第一單.程序設(shè)計(jì)語(yǔ);1機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言。.高級(jí)語(yǔ)言翻譯成機(jī)器語(yǔ)言的兩種方式:編譯方式、解釋方式。.算法+數(shù)據(jù)結(jié)構(gòu)=程序.結(jié)構(gòu)化程序設(shè)計(jì)的?:種基本結(jié)構(gòu):順序結(jié)構(gòu)、分支(選擇)結(jié)構(gòu)、循環(huán)結(jié)構(gòu).算法的表示方法:自然語(yǔ)言、傳統(tǒng)的程序流程圖、N-S流程圖。.結(jié)構(gòu)化程序設(shè)計(jì)的32字原則:.C語(yǔ)言的產(chǎn)生及發(fā)展:UNIX操作系統(tǒng).C語(yǔ)言的特點(diǎn)P]3頁(yè):.C語(yǔ)言由函數(shù)組成,有且僅有一個(gè)main函數(shù)..函數(shù):說(shuō)明部分、函數(shù)體。.條復(fù)雜語(yǔ)句分行行寫(xiě),用反斜杠(\)續(xù)行。.注釋用/*……*/第二章.單字符輸入/出:getcharO,putchar(字符變量)。.字符串:gets(字符數(shù)組名)、puts(數(shù)組名)。式化輸入:scanf(“格式控制符”,地址列表);格式控制符:枇、%d、%o、%x、%s、%f若輸入long型、double型應(yīng)加1,如%Id、%lo,%lf格式%s輸入字符串不包含空格,且對(duì)應(yīng)地址表列是字符數(shù)組名。默認(rèn)分隔符:空格、回車(chē)、Tab鍵(也可按域?qū)捊厝。└袷娇刂品g不宜加其它字符,如加入其它字符,輸入時(shí)應(yīng)原樣輸入,否則數(shù)據(jù)接收錯(cuò)誤。如:scanf("%d,%d",&a,&b);輸入數(shù)據(jù)時(shí)兩數(shù)據(jù)間要有逗號(hào);scanf("%d%d”,&a,&b);%(1間有兩個(gè)空格,則輸入數(shù)據(jù)時(shí)至少有兩個(gè)空格。輸入函數(shù)中%f格式不能帶小數(shù),如:scanf(“%7.2f”,&a)是錯(cuò)誤的。%c格式輸入單字符,空格字符和轉(zhuǎn)義字符都作為有效字符接收。%*d表示跳過(guò)它對(duì)應(yīng)的輸入數(shù)據(jù)。式化輸出:printf("格式控制符”,輸出列表);格式控制符部分可加入其它字符,原樣輸出。如:提示語(yǔ)或使輸出結(jié)果清楚顯示輸出列表:可以是變量、常量、表達(dá)式、函數(shù)調(diào)用等。轉(zhuǎn)義字符:P19頁(yè),以斜杠(\)開(kāi)始,作為一個(gè)字符,如求字符串長(zhǎng)度:ajk\\gk\bl\Ok\nlj",長(zhǎng)度為7。注意:輸出long、double型數(shù)據(jù),用%ld、%lf可設(shè)定輸出寬度,m和n,如:%5d、%6.2f,%.2f
? 負(fù)號(hào)表示域內(nèi)向左對(duì)齊,如I:%-12d第三章.常量:整型常量:235、0235、-0x235(前可加負(fù)號(hào)),長(zhǎng)整型:-121、-0651、0x551等。實(shí)型常量:小數(shù)形式、指數(shù)形式。字符常量:用單引號(hào),如'c'(注意轉(zhuǎn)義字符).字符串常量:用雙引號(hào),如“hglhg"、“a”,內(nèi)存占用為實(shí)際長(zhǎng)度加1。符號(hào)常量:無(wú)參宏(#define)。.變量:標(biāo)識(shí)符命名規(guī)則:4條(P37頁(yè))。各種類(lèi)型變量的長(zhǎng)度。數(shù)據(jù)類(lèi)型轉(zhuǎn)換:自動(dòng)、強(qiáng)制。注:強(qiáng)制類(lèi)型轉(zhuǎn)換只得到所需類(lèi)型的結(jié)果值,原變量或表達(dá)式的類(lèi)型仍為原類(lèi)型。如(float)(x+y).各種運(yùn)算符運(yùn)算規(guī)則及其優(yōu)先級(jí)P51頁(yè)。.補(bǔ)充--邏輯表達(dá)式的優(yōu)化運(yùn)算:&&運(yùn)算:只要算出第一個(gè)表達(dá)式為0,第二個(gè)表達(dá)式不再運(yùn)算。I運(yùn)算:只要算出第一個(gè)表達(dá)式為1,第二個(gè)表達(dá)式不再運(yùn)算。如:inti=0,j=0,a=6;if((++i>0)II(++j>0)) a++;printf(%d%d%dn,i,j,a);結(jié)果i為1,j為0,a為7。.其它運(yùn)算符:條件運(yùn)算、逗號(hào)運(yùn)算、氏度運(yùn)算符(形式:sizeof表達(dá)式或sizeof(數(shù)據(jù)類(lèi)型))第四章.if,while,for中的表達(dá)式,一般是邏輯或關(guān)系表達(dá)式,也可以是任意類(lèi)型表達(dá)式.如while(a=5)…..如果有多條語(yǔ)句,必須用大括號(hào)括起,構(gòu)成復(fù)合語(yǔ)句。.switch語(yǔ)句中case后面只能是常量值:若執(zhí)行完某case后的語(yǔ)句沒(méi)遇到break,則繼續(xù)執(zhí)行下一個(gè)case語(yǔ)句。.循環(huán)程序:注意循環(huán)變量的初值、修正值、循環(huán)條件等,以及循環(huán)中用到的某些變量賦初值,如求累加和變量。5.?般是先判斷條件,再執(zhí)行循環(huán)體;但do—while語(yǔ)句是先執(zhí)行一遍循環(huán)體,再判斷條件。.break、continue語(yǔ)句。.本章主:要是算法構(gòu)思。(先考慮好需要那些變量,即數(shù)據(jù)結(jié)構(gòu),再考慮怎樣求解問(wèn)題)第五章.數(shù)組定義:inta[10];或inta[N](N需要事先定義為符號(hào)常量:defineN10);
數(shù)組長(zhǎng)度必須是常出值,不能是變量,可以是在程序開(kāi)始前定義的符號(hào)行心,進(jìn)行長(zhǎng)度定義。.下標(biāo)引用:O~N-L切記不能引用到N.(inta[5]; a[5]=10;這種引用是錯(cuò)誤的).數(shù)組初始化時(shí)可省略長(zhǎng)度定義。.數(shù)組定義后如沒(méi)有給任何一個(gè)元素賦初值,對(duì)于static類(lèi)型,各元素初值為0;對(duì)于auto類(lèi)型,各元素值不定..數(shù)組不能整體賦值。數(shù)組中各元素值的輸入/出,應(yīng)使用循環(huán)程不逐個(gè)輸入/出;字符數(shù)組例外(gets,puts)?.數(shù)組中的兩種排序方法:.if泡法:外循環(huán)為i=0;i〈nT;內(nèi)循環(huán)為j=0;j<n-l-i;循環(huán)中比較a[j]和a[j+l]兩個(gè)元素,并互換。(考試內(nèi)容)?選擇法:外循環(huán)為i=0;i〈nT;內(nèi)循環(huán)為)=hj<n;內(nèi)循環(huán)開(kāi)始前,先賦初值min=i:循環(huán)中比較a[min]和a[j]兩個(gè)元素,不互換,只讓min=j;內(nèi)循環(huán)結(jié)束后再進(jìn)行互換,a[i]和a[min]互換。(不做考試內(nèi)容,但是希望同學(xué)們記住這種好的排序方法).二維數(shù)組:按行存放;賦初值的5種情況P83頁(yè)。.字符數(shù)組:通常定義較長(zhǎng)長(zhǎng)度,如:chars[50];通常用于存放字符串,結(jié)束標(biāo)志為*\0'..可用了符串常過(guò)為其初始化,如:chars[]=?sdkhg"; 也可由鍵盤(pán)輸入,如gets(s);輸出用puts(s);注意:chars[5]={匕','d'g'w,};此種形式不是字符串,無(wú)字符串結(jié)束標(biāo)志,僅僅是普通一維字符數(shù)組,不能用puts輸出,只能用眥格式逐個(gè)輸出.字符數(shù)組的輸入/出還有兩種形式:%c,%s..字符串函數(shù):strcpy(si,s2).?strcat(si,s2)、strcmp(sl,s2)、strclen(s),strupr(s),strlwr(s)第六章.函數(shù)定義:intfunc(inta,inty);如定義時(shí)沒(méi)指明函數(shù)類(lèi)型,如:fun(inta);默認(rèn)是int型,返回值不確定。.聲明:函數(shù)定義在前,使用在后,可省略函數(shù)聲明,反之需要在使用前聲明。函數(shù)聲明的幾種變通形式。?函數(shù)聲明后加分號(hào),而函數(shù)定義后沒(méi)有分號(hào)。.函數(shù)調(diào)用:函數(shù)名(實(shí)參表):實(shí)參與形參個(gè)數(shù)、類(lèi)型、位置一致。形參與實(shí)參占據(jù)不同的存儲(chǔ)單元;形參只在函數(shù)調(diào)用時(shí)才為其分配存儲(chǔ)單元,函數(shù)調(diào)用結(jié)束后釋放。實(shí)參與形參之間是傳伯調(diào)用,單向傳遞關(guān)系,形參值改變,不會(huì)影響實(shí)參值。補(bǔ)充:函數(shù)可嵌套調(diào)用,不可嵌套定義。嵌套調(diào)用:一個(gè)函數(shù)內(nèi)部又調(diào)用另外一個(gè)函數(shù)。遞歸調(diào)用:一個(gè)函數(shù)調(diào)用它自身。(考試不作要求)
.數(shù)組作為函數(shù)參數(shù):voidfunc(inta[],intn);?傳遞的是實(shí)參數(shù)組的首地址。調(diào)用時(shí)實(shí)參是數(shù)組名,如func(a,10):.多維數(shù)組:voidfunc(inta[][5],intn);(可省略第一維,但不能省略其它高維)..從作用域角度,變量分為:全局變巾、局部變同部變量:在函數(shù)內(nèi)滯定義,只能在該函數(shù)中使用,包括函數(shù)的形參和復(fù)合語(yǔ)句中定義的變量,main函數(shù)中定義的變量也是局部變量,不能被其它函數(shù)使用。不同函數(shù)內(nèi)定義的同名變量,互不影響,因其作用域不同,內(nèi)存空間獨(dú)立。全局變量:在函數(shù)外部定義,作用域從定義開(kāi)始到木文件結(jié)束。其間的所有函數(shù)都可以使用它,可在各函數(shù)間傳遞值,但容易帶來(lái)副作用,降低模塊獨(dú)立性。.變量的存儲(chǔ)類(lèi)別:auto、static.,register,extern.局部變量的存儲(chǔ)類(lèi)別:auto、static,register.auto型的生存周期時(shí)函數(shù)被調(diào)期間,兩次調(diào)用之間不保留值。voidfunc(intn){staticinta=l;a+=n;printfC4%d;\a);)main()voidfunc(intn){staticinta=l;a+=n;printfC4%d;\a);)main(){intb=2;func(b);func(b);)程序運(yùn)行結(jié)果為3,5,.全局變量的存儲(chǔ)類(lèi)別:static,extern。全局變量總是存放在靜態(tài)存儲(chǔ)區(qū)間,生存期是整個(gè)程序運(yùn)行期間,只賦一次初值,在程序運(yùn)行前初始化,默認(rèn)初值為0。用extern對(duì)全局變量加以小明,可以將其作用域擴(kuò)充到整個(gè)文件或其它文件。例:PH3頁(yè)、P114頁(yè).定義全局變量時(shí)加I:static,可將其作用域限制在本文件中,不能被其它文件使用。例:P114頁(yè)..函數(shù)的作用域是全局的,可被其它函數(shù)調(diào)用。函數(shù)存儲(chǔ)類(lèi)別:static,extern.默認(rèn)為extern型。#defineSQR(x)x*xmain(){inta,k=3;a=++SQR(k+l);printf(,"%d\n',,a);)#defineSQR(x)x*xmain(){inta,k=3;a=++SQR(k+l);printf(,"%d\n',,a);)替換后的表達(dá)是為a=++k+1*k+1第七章(內(nèi)容不作期末考試要求,但是等級(jí)考試要考).預(yù)處理命令以開(kāi)頭,末尾不加分號(hào)。在程序編譯之前處理..宏替換:將函數(shù)中出現(xiàn)宏名的地方用宏體進(jìn)行替換。?宏體可以是數(shù)字、也可以是組成C表達(dá)式或語(yǔ)句的其它字符,還可以引用已定義的其它
宏名O?宏的作用域:定義宏之后到本源文件結(jié)束,可用#undef提前結(jié)束。無(wú)參宏(符號(hào)常量):#definePI3.14注意:函數(shù)中雙引號(hào)內(nèi)的宏名不替換,如printN“PI”);有參宏:#define宏名(形參表)宏體引用:宏名(實(shí)參表)注意有參宏如果宏偉和"數(shù)沒(méi)用括號(hào)括起,可能有副作用。分析有參宏的程序時(shí),必須先將宏替換后的友達(dá)式寫(xiě)到紙上,再分析結(jié)果。文件包含:4include〈文件名》搜索系統(tǒng)標(biāo)準(zhǔn)目錄include"文件名”先搜索當(dāng)前口錄,找不到再搜索系統(tǒng)標(biāo)準(zhǔn)目錄第八章.指針的基本概念:指針三地址;.指針常量:某已知變量的地址,或數(shù)組名等,:inta,b[5]:此時(shí)&a和b就是指針常量(固定值)..指針變量:如inta,*p=&a;chars[9],*q=s;?賦值:必須賦地址值,如inta,*p; p=&a;如p=2001;是錯(cuò)誤的。.間接訪問(wèn):*p5:等同于a5;.指針作為函數(shù)的參數(shù),傳遞的是實(shí)參變量的地址,如:voidfunc(int*p). 調(diào)用時(shí)用某變量的地川"?,或拈的指計(jì)作為實(shí)參,如主調(diào)函數(shù)中有定義inta,*q;q=&a;則可用&a或q作為實(shí)參進(jìn)行調(diào)用,即func(&a);或func(q);都是將變量,1的地址傳遞給形參指針p.使指針p指向變舊入函數(shù)中使用*P就是對(duì)a的間接訪問(wèn),就可以改變a的值,或者將結(jié)果放入a中。但形參變量本身改變,反過(guò)來(lái)不會(huì)影響實(shí)參指針值..指針與一維數(shù)組:inta[10],*p=a;則a代表數(shù)組忤地址,是指針泡心,? 元素的表示方法:a[i]、*(a+i)、p[i],*(p+i)? 元素地址:&a[i]、a+i、&p[i]、p+I?區(qū)別:a實(shí)指針常量,只不能變,而p是指針變量,可進(jìn)行增減運(yùn)算;所以常通過(guò)p的增減運(yùn)算來(lái)快速訪問(wèn)數(shù)組a,如:while(p<a+5) scanf(“%d”,p++);或wh或e(p〈a+5){(*p)++;printf("%d,”,*p++);)?理解(*p)++、*p++、*(p++)、p++的含義。? 執(zhí)行p++后指針撥動(dòng)的單元數(shù)(由元素類(lèi)型決定)7.一維數(shù)組作為函數(shù)形參,實(shí)際上就是一個(gè)指針變量,如:func(inta[],intn);等同于func(int*a,intn);?函數(shù)聲明的幾種變通形式,P144頁(yè)。
? 所以指針a在函數(shù)中值可以改變,如*@++,不同于函數(shù)內(nèi)定義的數(shù)組如:intb[5];這里b是指針常量。8.指針與字符串:char*p,s[50]="fdjfjdfj”;p=s;? 可用P間接訪問(wèn)字符串,如指針?lè)ǎ篺or(;*p!='O';p++)或下表法:for(i=0;p[i]!='\O':i++)9.指針形參在函數(shù)間傳遞字符串:voidcopy(char*sl,char*s2){whi1e(*s1++=*s2++);}調(diào)用時(shí)用名或向某字符串的指針做實(shí)參,如:char*p="sdgygkh";charss[50];func(ss,p);函數(shù)調(diào)用的靈活形式:func(ss+2,p)或func(ss,p+2)注意:輸入字符串常用gets函數(shù),但參數(shù)應(yīng)是字符數(shù)組名,或已指向某字符數(shù)組的指針,如:chars[50],*p;gets(s):是正確的,而gets(p)是錯(cuò)誤的,因?yàn)閜沒(méi)被賦地址值,無(wú)任何指向。改正:p二s; gets(p);注意:以下的10、11、12、13節(jié)所列內(nèi)容不作期末考試要求,但是等級(jí)考試要考,同學(xué)們?nèi)绻n下有時(shí)間最好看看.數(shù)組指針與多維數(shù)組:inta[3][4];int(*p)[4];p=a;P指向a的整行,此時(shí)*p就代表a[0];如果執(zhí)行p++,則p指向下一行,即*p代表a[l],p跳過(guò)單元數(shù)為2*4=8個(gè)字節(jié)。? 引用元素的兩種形式:或(*p)[j]兒個(gè)等價(jià)關(guān)系式:由x[i]等價(jià)于*(x+i)和&x[i]等價(jià)于x+i得出:等價(jià)(*(a+i))[j]等價(jià)*(a[i]+j)等價(jià)*(*(a+i)+j)等價(jià)*(a+i)+j等價(jià)指針形參在函數(shù)間傳遞多維數(shù)組:intfunc(int(*b)[4],intn);等價(jià)于intfunc(intb[][4],intn):調(diào)用時(shí)用二維數(shù)組名做實(shí)參,如:func(a,3):11.指針數(shù)組:char*s[3]:表示數(shù)組s有3個(gè)元素,每一個(gè)元素都是一個(gè)指針變質(zhì),都可以指向一個(gè)字符串。賦初值:char*s[3]={“sdgg",“ww“,“q"}:或單獨(dú)賦值:s[0]="sdgg”;s[l]="ww";s[2]="q";用于指向多個(gè)字符串。也可用字符數(shù)組存儲(chǔ)多個(gè)字符串,只是占用內(nèi)存空間大。.指向指針的指針:二級(jí)指針,char**p;?用于訪問(wèn)指針數(shù)組,或在函數(shù)間傳遞指針數(shù)組,通常就是傳遞多個(gè)字符串。.char*s[3]={"sdgg","ww","q"};char**p;p=s;p指向數(shù)組s的首地址,此時(shí)*p代表s[0],即指向第0個(gè)字符串,*p和s[()]都是第0個(gè)字符串的首地址,可用gets(*p)或gets(p[i])來(lái)輸入字符串,用puls(*p)或puls(p[i])來(lái)輸出字符串。在函數(shù)間傳遞多個(gè)字符串的參數(shù)形式:func(char**s,intn)或func(char*s[],intn)或func(chars[][],intn)
總結(jié):1、通常在主調(diào)函數(shù)中定義指針數(shù)組指向多個(gè)字符串。2、函數(shù):func(char**s,intn)或func(char*s[],intn)傳遞多個(gè)字符串首地址:3、在函數(shù)內(nèi)的使用形式:s[i]或*(s+i),都代表第i個(gè)串首地址,或*s++;4、一般都是整串操作,循環(huán)一般使用字符串個(gè)數(shù)進(jìn)行控制,如:for(i=0:i<n;i++){s[i]……}字符串操作函數(shù):strlenOstrcpyO、strcmpO.返回指針值的函數(shù):char*func(char*s,charch)?切記:返回的是地址,在主調(diào)函數(shù)中應(yīng)使用指針類(lèi)型變量接收函數(shù)返回值,如:char*p,a[]="asdgg";p=func(a,*d*);.動(dòng)態(tài)內(nèi)存分配:掌握malloc函數(shù)的使用方法。第九章1.結(jié)構(gòu)體:struct,.定義的幾種形式P177頁(yè)。成員可以是任意類(lèi)型。成員引用:結(jié)構(gòu)體變量名.成員名占用內(nèi)存大小為:各成員占用內(nèi)存之和。結(jié)構(gòu)體數(shù)組:同普通數(shù)組-樣使用。初始化時(shí)注意雙重括號(hào)。結(jié)構(gòu)體指針:(他).成員名或P成員名只能用結(jié)構(gòu)體變量地址賦值,不能賦某成員的地址,如:p=&:是錯(cuò)誤的。通常定義變量或形參時(shí)必須加上slruci,如:voidfunc(structstudent*p){structstudenta[4],temp; }.共用體:union,定義形式同結(jié)構(gòu)體。成員引用:共用體變;止名.成員名占用內(nèi)存大小為:共用體中較長(zhǎng)的成員的長(zhǎng)度。某?時(shí)刻只有?個(gè)成員起作用,最后?個(gè)存放的成員值有效。結(jié)構(gòu)體類(lèi)型與共用體類(lèi)型可互相嵌套使用,即結(jié)構(gòu)體成員的類(lèi)型也可以是共用體類(lèi)型,反之亦然。.枚舉類(lèi)型:如:enuniweek{sun,mon,tues,wen,thur,fri,sat}day;枚舉元素就是枚舉變量的可能取值,如:day,mon;枚舉元素視為常量,其值就是序號(hào)(0'n-1)。也可以在定義時(shí)改變其值,如:enums{a=3,b=l,c=2};.類(lèi)型標(biāo)識(shí)符自定義:typedof如:typedefintINTEGER;typedefstruct{ }STU;typedefintARR[10];以后可直接使用INTEGER、ARR、STU類(lèi)型進(jìn)行變量定義,書(shū)寫(xiě)簡(jiǎn)略。?注意:只能為類(lèi)t另起新名,不能創(chuàng)造新類(lèi)型,也不能為變量或函數(shù)重新命名(define)。第十章文件(內(nèi)容不作期末考試要求,但是等級(jí)考試要考).流式文件:文本文件、二進(jìn)制文件。?文本文件:若干字符序列,較長(zhǎng),可用type命令或記事本查看。
?二進(jìn)制文件:若干字節(jié)序列,短,存取速度快,不能用type或記事本等查看。.文件操作:讀操作、寫(xiě)操作。使用有關(guān)文件函數(shù)來(lái)完成,需包含頭文件stdio.h.操作步驟:①定義文件類(lèi)型指針②打開(kāi)文件③檢測(cè)指針④讀/寫(xiě) ⑤關(guān)閉文件..打開(kāi)文件時(shí)的使用方式各6種,P207頁(yè)。5.讀/寫(xiě)函數(shù):fgetc(fp)>fputc(ch,fp)、fread(*p,size,n,fp),fwrite(*p,size,n,fp)fgets(*str,n,fp)■.fputs(*str,fp)fscanf(fp,“格式控制符”,地址列表)、fprintf(fp,“格式控制符”,輸出列表),以上函數(shù)是簡(jiǎn)要書(shū)寫(xiě),具體參考P238頁(yè)。6.三個(gè)標(biāo)準(zhǔn)設(shè)備文件指針:stdin、stdout、stderr7、有關(guān)文件操作函數(shù)ferror(fp)、feof(fp),clearerr(fp);10.控制循環(huán):while((ch=fgetc(fp))!=EOF)或while(!feof(fp))EOF是在頭文件中定義的符號(hào)常量,值為-1代表文件結(jié)束。C語(yǔ)言程序設(shè)計(jì)第廣3章練習(xí)題?、選擇題1、一個(gè)C語(yǔ)言程序總是從
A、主過(guò)程開(kāi)始執(zhí)行 B、主函數(shù)開(kāi)始執(zhí)行C、子程序開(kāi)始執(zhí)行 D、主程序開(kāi)始執(zhí)行2、若num、a、b和c都是int型變量,則執(zhí)行表達(dá)式nuin=(a=4,b=16,c=32)后num的值為A、4A、4C、32B、D、1652下面四個(gè)選項(xiàng)中,均是C語(yǔ)言關(guān)鍵字的選項(xiàng)是.A、A、autoenumincludeswitchtypedefcontinuesignedunionscanfifstructtype4、下面四個(gè)選項(xiàng)中,均是合法整型常量的選項(xiàng)是160 -Oxffff Oil B、-Oxcdf Ola OxeC、-01 986,012 0668 D、-0x48a 2e5 Ox5、下面四個(gè)選項(xiàng)中,均是合法浮點(diǎn)數(shù)的選項(xiàng)是A、+le+l5e-9.403e2-6012e-4-8e5C、123e1.2e-4+2e-lD、~e3.8e~45.e-06、下面四個(gè)選項(xiàng)中,均是合法轉(zhuǎn)義字符的選項(xiàng)是A、’\\‘''n'B、'\'''017'C、''018''\f''xab'D、'\\0'''101''xlf'7、下面正確的字符常量是A、'\X17'B、'\80'C、'\\'D、"\n"8、下面四個(gè)選項(xiàng)中,均是正確的八進(jìn)制數(shù)和十六進(jìn)制數(shù)的選項(xiàng)是一A>-10Ox8f-OilOabc-017Oxc010-0x11Oxfl0al2-0x123-Oxa9、下面四個(gè)選項(xiàng)中,均是正確的數(shù)值常量或字符常量的選項(xiàng)是A、0.0Of8.9eB、"a"3.9E-2.5lei'C、'3'011OxFFOO0aD、+001Oxabcd2e250.2Inxcosx10、若有代數(shù)式 ,則正確的c語(yǔ)言表達(dá)式是2*ln(x)*cos(x)/3*x2*1n(x)*cos(x)/(3*x)C、2*1og(x)*cos(x)/3*xD、2*log(x)*cos(x)/(3*x)11、若有說(shuō)明語(yǔ)句:charchi=''065';charch2="2";charch3=,2);則:chi中—,ch2中,ch3中A、包含1個(gè)字符 B、包含2個(gè)字符C、包含3個(gè)字符 D、字符個(gè)數(shù)不確定,說(shuō)明不正確12、若有運(yùn)算符:>、*二、?:、%、sizeof,則將它們按運(yùn)算的優(yōu)先級(jí)排列的正確次序?yàn)?由低至高) A、*=->?:-*%-?>-*sizeofB、?: sizeofC、*=-?>-??:fsizeof-*%D、*=-??; A%fsizeof13、若有以下類(lèi)型說(shuō)明語(yǔ)句:chara:intb;floatc:doubled:則表達(dá)式a*b+d-c的結(jié)果類(lèi)型為A、floatB、charC、intD、double14、若有變量說(shuō)明:inta=0,b=0,c=0:,以下符合C語(yǔ)言語(yǔ)法的賦值表達(dá)式是A、a=9+b+c=a+9 B、a=9+b:c=a+9:C、a=(9+b,b++) D、a-9+b++=a+715、已知字母A的AS的I碼為(65)”,變量chi為字符型,則執(zhí)行語(yǔ)句chi='A'+'6'」3';后,chi中的值為A、DB、68C、一個(gè)不確定的值D、C16、以下運(yùn)算符中優(yōu)先級(jí)最高的運(yùn)算符是A、&&B、++C、?:D、!=17、若有定義:intk=7;floata=2.5,b=4.7;則表達(dá)式a+k%3*(int)(a+b)%2/4的值是 A、2,500000 B、2.7500000C、3.500000 D、0.00000018、sizeof(float)是A、雙精度型表達(dá)式B、一個(gè)整型表達(dá)式C、一個(gè)函數(shù)調(diào)用 D、一個(gè)不合法的表達(dá)式19、設(shè)變量y為門(mén)。at類(lèi)型,x為int類(lèi)型,則以下能實(shí)現(xiàn)將y中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五入運(yùn)算的表達(dá)式是A、y=(y*100+0.5)/100.0B、x=y*100+0.5,y=x/100.0C、y=y*100+0.5/100.0D、y=(y/100+0.5)*100.020、設(shè)int類(lèi)型的數(shù)據(jù)長(zhǎng)度為2個(gè)字節(jié),則unsignedini類(lèi)型數(shù)據(jù)的取值范圍是A、0-255 B、0?65535C、-32768?+32767 D、-256?+25521、若有以下定義,則能得到值為3的表達(dá)式是(intm=7,n=12)A、n%=(m%=5) B、n%=(m-m%5)n%=m-m%5D、(n%=m)'(m%=5)22、若有說(shuō)明:inta二l,b=2,c=3,d=4;則表達(dá)式*b?a:資d?c:d的值是A、4B、3C、2D、123、若x為int類(lèi)型,則逗號(hào)表達(dá)式(x=4*5,x*5),x+25的結(jié)果是,x的值是A、20B、100C、表達(dá)式不正確D、4524、putchar函數(shù)可以向終端輸出一個(gè)A、整型變量值 B、實(shí)型變量值C、字符串 D、字符或字符型變量值25、若有以下變量說(shuō)明和數(shù)據(jù)的輸入方式,則正確的輸入語(yǔ)句為‘代表空格)變量說(shuō)明:floatxl,x2;數(shù)據(jù)的輸入方式:4.52〈回車(chē))3.5<回車(chē))A、scanf(*%f,%f*,&xl,&x2);B、scanf(*%f%f*,&xl,&x2);C、scanfC%3.2fu_j%2.lf\&xl,&x2);D、scanff%3.2f%2.ir,&xl,&x2);26、若運(yùn)行以下程序時(shí),從鍵盤(pán)輸入25,13,10〈回車(chē)),則輸出結(jié)果為main(){intal,a2,a3;scanf("%d%d%d”,&al,&a2,&a3);printf(*a1+a2+a3=%d\n*,al+a2+a3);}A、al+a2+a3=48 B、al+a2+a3=25B、al+a2+a3=10 D、不確定值27、已知a、b、c為int類(lèi)型變量,若有輸入語(yǔ)句:scanf("a=%db=%dc=%d",&a,&b,&c);為使a值為1,b值為3,c值為2,從鍵盤(pán)輸入數(shù)據(jù)的正確形式應(yīng)當(dāng)是A、132〈回車(chē)》 B、a二1b二3c=2〈回車(chē))C、1<回車(chē)>3〈回車(chē)》2〈回車(chē)》 D、a=l<回車(chē)>b=3〈回車(chē)》c=2〈回車(chē))28、以下能正確定義整型變量x、y和z并為其賦初值5的語(yǔ)句是A、intx=y=z=5; B、intx,y,z=5;C、intx=5,y=5,z=5;D,x=5,y=5,z=5;29、執(zhí)行下面程序段后,x的值是intx;printf(*%d\n*,(x=3*5,x+5)):A、10B、15C、20D、530、下面程序段的輸出結(jié)果是inta=023:printf―a);A、23B、17C、18D、2431、已知ch是字符型變量,則不正確的賦值語(yǔ)句是A、ch=5+9; B、ch='\0';C、ch='7'+'9'; D、ch='a+b';32、設(shè)x,y是float型變量,則不正確的賦值語(yǔ)句是A、++x; B、y=int(5);C、x*=y+1; D、x=y二0;33、設(shè)有說(shuō)明:doubleb=0.5,c=l.5;inta=10;則正確使用了C語(yǔ)言庫(kù)函數(shù)的賦值語(yǔ)句是A、c=asin(c)+fabs(a); B、b=logl0(b)+pow(b);C、c=sqrt(b-c); D>a=(int)(atan2((double)a,b)+exp(b-0.2));34、以下程序段的輸出結(jié)果是inti=l,j=4,k=2;floatx=5.5,y=9.0,z;z=(i+j)/k+sqrt((double)y)*1.2/k+x;printfz);A、9.800000 B、9.300000C、8.500000 D、8.00000035、若a為int類(lèi)型變量,則執(zhí)行以下程序段后a的值為a=5;a*=a/=a++;A、2B、1C、40D、336、若a和b均為int型變量,則執(zhí)行以下程序斷后x的輸出是x=15;y=15;printfx%=(y%=2)):0B、1C、6C、1237、若x為tinsignedint類(lèi)型變量,則執(zhí)行以下程序段后x的值是x=65535:printfx);A、65535B、1C、無(wú)定值D>-138、以卜語(yǔ)句的執(zhí)行結(jié)果是printfC%d\n*,NULL);A、1B、0C、-1無(wú)定值39、若x為int類(lèi)型變量,則執(zhí)行以下程序段后的輸出結(jié)果是x=OxDEF;printf(*%4d,%4o,%4x\n*,x,x,x):A、3567,6757,defB、3567,6757,xdefC、3567,06757,OxdefD、3567,6757,Odef40、若a、b、c均為int型變量,則執(zhí)行以下程序段后的輸出結(jié)果為b=(a=10,a+5,c=10);printf(*a=%d,b=%d,c=%d\n*,a,b,c);c=(a=10,b=5,a+b);printf(*a=%d,b=%d,c=%d\n*,a,b,c);A、a=10,b=15sc=10B、a=10,b=10,c=10a=10,b=5,c=10a=10,b=5,c=10C、a=10,b=10,c=10D>a=10,b=10,c=10a=10,b=5,c=15a=10,b=5,c二541、若al、a2、a3、a4均為char類(lèi)型變量,則執(zhí)行以下程序段后的輸出結(jié)果為—al=,T:a2-2';a3='3';a4=,4';printf al);printf(*%2c\n*,a2);printf(*%3c\n*,a3):printf("%4c\n",a4);A、1B、1C、1 D、輸出格式的描述符不正確22023300344000442、執(zhí)行語(yǔ)句printf("Theprogram'snameisc:\\tools\book.txt^):后的輸出是A、Theprogram,snameisc:toolsbook,txtB、Theprogram'snameisc:\toolsbook,txtC>Theprogram5snameisc:\\toolsbook,txtD、Theprogram'snameisc:\toolook.txt43、設(shè)a、b、c、d均是int類(lèi)型變量,為了使以下程序段的輸出為:1234+123+12+1,正確的輸入形式應(yīng)當(dāng)是scanf("%4d+%3d+%2d+%ld”,&a,&b,&c,&d);printf("%4d+%3d+%2d+%ld”,a,b,c,d);A、123412312K回車(chē)〉 B、1234123412341234〈回車(chē)>C、1234+1234+1234+1234<回車(chē)> D、1234+123+12+1〈回車(chē)>44、設(shè)cl、c2均是char類(lèi)型變量,則以下不正確的函數(shù)調(diào)用是A、scanf("cl/cc2=%c”,&cl,&c2); getchar()C、putchar(c2); D、putchar(cl,c2)45、邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的數(shù)據(jù)A、只能是0或1 B、只能是0或非0正數(shù)C、只能是整型或字符型數(shù)據(jù)D、可以是任何類(lèi)型的數(shù)據(jù)46、判斷char型變量cl是否為大寫(xiě)字母的正確表達(dá)式是A、'A'〈=cl<='Z' B、(cl〉='A')&(cl<:='Z')C,(cl〉='A')&&(cl〈='Z')D,CA'<=cl)ANDCZ'>=cl)47、執(zhí)行以下程序段后的a值是,b的值是,c的值是inta=5,b=6,c=l,x=2,y=3,z=4:c=(a=c〉x)&&(b=y>z);As0B、6C、1D、548、設(shè)i、j、和k是int型變量,且i=3,j=4,k=5,則以下值為0的表達(dá)式是A、'i'&&'j' B、i<=jC、i||j+k&&j-k D、!((i<j)&&!kl|1)49、設(shè)ch是char類(lèi)型變量,其值是A,則以下表達(dá)式的值是ch=(ch>=,A'&&ch<='Z")?(ch+32):chA、ZB、AC、aD、z50、若希望當(dāng)num的值為奇數(shù)時(shí),表達(dá)式的值為“真”,num的值為偶數(shù)時(shí),表達(dá)式的值為“假”。則以下不能滿(mǎn)足要求的表達(dá)式是A、num%2=l B、!(num%2==0)C、!(num%2) D、num%2二、填空題1、C源程序的基本單位是。2、一個(gè)C語(yǔ)句中至少應(yīng)包含一個(gè)o3、在C語(yǔ)言中,輸入操作可以由庫(kù)函數(shù)完成,輸出操作可以由庫(kù)函數(shù)完成。4、若x是int型變量,且x=6,則表達(dá)式斕2+(x+l)%2的值為,5、若a、b、c均是int型變量,則執(zhí)行表達(dá)式c=(a=5)-(b=2)+a后,c的值為。6、若有定義:inty=7;floatx=2.5,z=4.7;,則表達(dá)式x+(int)(y/3*(int)(x+z)/2)%4的值為?7、若采用十進(jìn)制數(shù)的表示形式,則077為,0111為,0x29為,Oxab為8、設(shè)x為float型變量,y為double型變量,a為int型變量,b為long型變量,c為char型變量,則表達(dá)式x+y*a/x+b/y+c的結(jié)果類(lèi)型為。9、若有說(shuō)明intx=10,y=20:請(qǐng)寫(xiě)出下面各printf語(yǔ)句對(duì)應(yīng)的輸出結(jié)果。①printf(*%3d\n*,x+y);②printf(飛3o\n”,x*y);③printf(*%3o\n*,x%y);④printf(*%3x\n*,(x%y,x-y,x+y));10、設(shè)有以下變量說(shuō)明:inta=5,b=10;floatx=3.5,y=10.8;charcl='A',c2=,B';請(qǐng)根據(jù)以下輸出格式和結(jié)果,完成printf語(yǔ)句中的填空。①a=5,b=10,x+y=14.3printf("二):②x-y=-7.31-?a-b=-5printfC1);?cl=A*or65(ASCII)-c2='B'or66(ASCII)printf(**,);11、齊仃說(shuō)明:inta=123;floatb=456.78;doublec=-123.45678;請(qǐng)寫(xiě)出以卜各printf語(yǔ)句的輸出結(jié)果。①printf("%.3f%.3e%lf\n*,b,b,c):②printf("%8.3f%8.3e%g\n”,b,b,c);③printf("%u%T0.3f%-10.3e\n*?a,b,c);12、若al和a2都是double型變量,且al的初值為3.0,a2的初值為2.0,則表達(dá)式pow(a2,fabs(al))的值為。13、假設(shè)變量x和y均為整型,以卜.語(yǔ)句可以不借助任何變量把x、y中的值進(jìn)行交換。請(qǐng)?zhí)羁?。x+= :y=x- : x-= ;14、已有定義intm;floatn,k;charchi,ch2;,為使m=3,n=6.5,k=12.6,chl=,a*,ch2='A',對(duì)應(yīng)的scanf語(yǔ)句是,輸入數(shù)據(jù)的方式是o15、已有定義inta,b;floatk;,為將-10賦給a,將12賦給b,410.34賦給k;則對(duì)應(yīng)以下scanf語(yǔ)句的數(shù)據(jù)輸入形式是。scanf(飛o%x%e”,&a,&b,&k);16、在C語(yǔ)言中,&作為雙目運(yùn)算符時(shí)表示的是,而作為單目運(yùn)算符時(shí)表示的是一o17、設(shè)x、y、z均為int型變量,且x=3,y=-4,z=5,請(qǐng)寫(xiě)出下面每個(gè)表達(dá)式對(duì)應(yīng)的結(jié)果。①、(x&&y)==(x||z)②、!(x>y)+(y!=z)||(x+y)&&(y-z)③、x++-y+(++z)18、設(shè)x、y、z均為int類(lèi)型變量,請(qǐng)用C語(yǔ)言的表達(dá)式描述以下命題。①、x或y中有一個(gè)小于z②、X、y和Z中只有兩個(gè)為負(fù)數(shù)③、y是奇數(shù)19、以下程序的輸出結(jié)果為main()(intx,y,z=246;x=z/100%9;y=(-l)&&(-l);printf(*%d,%d\n”,x,y);C語(yǔ)言程序設(shè)計(jì)第4章練習(xí)題二?選擇題51、以下正確的if語(yǔ)句是A、if(n>0)printf(*%f\n)printf("%f”,-n);if(n>0){n=n+m;printf(*%f*,n); }elseprintf-n);if(n>0){n=n+m;printf(*%f*,n); };elseprintf-n);if(n>0){n=n+m;printfn)}:elseprintf-n):52、以下程序main(){intxl=3,x2=0,x3=0:if(xl=x2+x3)printf("****");seprintfC#tt##0: }A、輸出:****B、輸出:####C、存在語(yǔ)法錯(cuò)誤D、無(wú)輸出結(jié)果53、為了避免在嵌套的條件語(yǔ)句if-else中產(chǎn)生二義性,C語(yǔ)言規(guī)定:else子句總是與.A、縮排位置相同的if配對(duì) B、其之前最近且不帶else的if配對(duì)C、其之前最近的if配對(duì)D、第一個(gè)if配對(duì)54、若w、x、y、z、k均為int類(lèi)型變量,則執(zhí)行下面語(yǔ)句后的k的值是w=l;x=2; y=3; z=4;k=(w<x)?w:x;k=(k<y)?k:y;k=(k<z)?k:z;A>1B>2C>3D、455、R0程序段所表示的數(shù)學(xué)函數(shù)關(guān)系是x=-l;if(a1=0)if(a>0)x=l;elsex=0:r-1(a<0)1r1(a<0)A、x={o(a=0)B、x=-1-1(a=0)I1(a>0)1L0(a>0)ro(a<0)--1(a<0)C、X=Y-i(a=0)D、x=J1(a=0)Ii(a>0)L0(a>0)56、以下關(guān)于switch語(yǔ)句和break語(yǔ)句的描述中正確的是—A、在switch語(yǔ)句中必須使用break語(yǔ)句B、break語(yǔ)句只能用于switch語(yǔ)句體中C、break語(yǔ)句只能用于循環(huán)語(yǔ)句中D、在switch語(yǔ)句中使用break語(yǔ)句或continue語(yǔ)句的作用相同57、設(shè)有說(shuō)明:inta=l,b=O;則執(zhí)行以下語(yǔ)句后的輸出結(jié)果是switch(a){case1:switch(b){case0:printf(***0**\n");break;case1:printf(***1 ;break;)case2:printf(w**2**\n"):break:A、**0**B、**0****2**C、**0**D、switch語(yǔ)句中存在語(yǔ)法錯(cuò)誤**1****2**58、設(shè)有程序段intx=10;whi1e(x=0)x=x-l;A、while循環(huán)執(zhí)行10次 B、循環(huán)是無(wú)限循環(huán)C、循環(huán)體語(yǔ)句一次也不執(zhí)行 D、循環(huán)體語(yǔ)句只執(zhí)行一次59、語(yǔ)句while(!y)中的表達(dá)式!y等價(jià)于A、y—0 B>y!=lC、y!=0D、y—160、以下關(guān)于do-while循環(huán)不正確的描述是A、dO-while的循環(huán)體至少執(zhí)行一次B、do-while循環(huán)由do開(kāi)始,用觀hile結(jié)束,在while(表達(dá)式)后面不能寫(xiě)分號(hào)C、在do-while循環(huán)體中,一定要有能使while后面表達(dá)式的值變?yōu)榱?"假")的操作D>do-while的循環(huán)體可以是復(fù)合語(yǔ)句61、設(shè)x、y均是int類(lèi)型變量,且x值為100,則關(guān)于以下for循環(huán)的正確判斷是for(y=100:x!=y:++x,y++)printf("****\n"):A、循環(huán)體只執(zhí)行一次 B、是無(wú)限循環(huán)C、循環(huán)體一次都不執(zhí)行D、for語(yǔ)句中存在語(yǔ)法錯(cuò)誤62、以下程序段中的do-whi1e循環(huán)m=-l;do{m二m*m;}while(!m);A、是死循環(huán)B、執(zhí)行二次C、執(zhí)行一次D、有語(yǔ)法錯(cuò)誤63、以下關(guān)于for循環(huán)的正確描述是A、for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況B、for循環(huán)是先執(zhí)行循環(huán)體語(yǔ)句,后判斷表達(dá)式C、在for循環(huán)中,不能用break語(yǔ)句跳出循環(huán)體D、for循環(huán)的循環(huán)體語(yǔ)句中,可以包含多條語(yǔ)句,但必須用花括號(hào)括起來(lái)64、語(yǔ)句for(表達(dá)式1;;表達(dá)式3)等價(jià)于A、for(表達(dá)式1:0:表達(dá)式3)B、for俵達(dá)式1:1;表達(dá)式3)C、for俵達(dá)式1:表達(dá)式1:表達(dá)式3)Dsfor(表達(dá)式1;表達(dá)式3:表達(dá)式3)65、若k為整型變量,則以下for循環(huán)的執(zhí)行次數(shù)是for(k=2;k=0:)printf(飛d”,k一);A、無(wú)限次B、0次C、1次D、2次66、以下程序段的執(zhí)行結(jié)果是intx=-3;do{printf(飛d\n”,x++);}while(!x);TOC\o"1-5"\h\z-3 D、-3-2 -2C>陷入死循環(huán) -i67、執(zhí)行以下程序段后,y的值是,x的值是intx=l,y=10;x++;}while(y—<0);A、9B、8C、-2D、2E、4F、368、執(zhí)行以下程序段后a的值是_ _,b的值是inta,b;for(b=l,a=l;b<=50:b++){if(a>=10)break;if(a%2==l){a+=5;continue;)a-=3; }A、10B、6C、7D、8E、469、以下程序段的執(zhí)行結(jié)果是inta,b;for(a=l;a<5;a+=2){for(b=l;b<5;b++)printf(*%2d*,a*b);if(b=5)printf("\n"):)A、1 2 3 43 6 9 12C> 2 3 4 6 9D、2 3 46 9 1210 15 20B、16123 4121570、以下程序段中是死循環(huán)的是A、intn=l;while(!n)n++;C、intn=l;do{n++;}while(n);71、下而程序的運(yùn)行結(jié)果是.main(){intm=0;
while(m<=2)
{m++;printf(*%d\n*?m);B、intn=l;do{n一;}while(n);D、for(n=5;n<l;);A、1 B、D、123472、以下能正確計(jì)算1X2X3X…X10的程序段是A、do{k=l;n=l;n=n*k;k++;}while(k<=10);k=l;n=l;B、do{k=1;n=0;n=n*k;k++;)while(k<=10);k=l;n=0;do{n=n*k:k++;(while(k<=10);do{n=n*k:k++:}while(k<=10):73、下面程序的功能是計(jì)算1至10之間的奇數(shù)之和以及偶數(shù)之和。請(qǐng)選擇填空。main(){intx,y,z,k;x=z=0;for(k=0;k<=10;k+=2){x+=k;z+=y;)prinlf("偶數(shù)之和=%d\n*.x);printf("奇數(shù)之和二%d\n",);}①、A、y=k—B、y=k+lC、y=k++D、y=k-l②、A、z-10B、zC、z-11D、z-y74、下面程序段的功能是計(jì)算1000!的末尾含有多少個(gè)零。請(qǐng)選擇填空。(提示:只要算出1000!中含有因數(shù)5的個(gè)數(shù)即可。)for(m=0,n=5:n<=1000;n+=5){t=n;while()(m++: t=t/5; }}A、t%5B、t=t%5==0C、t%5==0D、t%5!=075、若有以下程序段:for(m=l;m<=100;m++){scanf(飛d”,&y):if(y<0)continue;printf(*%3d*,m); }正確的描述是A、當(dāng)y<0時(shí)整個(gè)循環(huán)結(jié)束B(niǎo)、y>=0時(shí)什么也不輸出C、printf函數(shù)永遠(yuǎn)也不執(zhí)行D、最多允許輸出100個(gè)非負(fù)整數(shù)76、以下程序段等價(jià)于for(k=100:k<=200:k++){if(k%3==0)continue:printf(*%4d*,k):)for(k=100:(k%3)&&k<=200:k++)printf(*%4d*,k);for(k=100;(k%3)||k<=200;k++)printf(*%4d*,k);for(k=100;k<=200;k++)if(k%3!=0)printf(*%4d*,k);for(k=100;k<=200;k++){if(k%3)printf(*%4d*,k);elsecontinue;break;)二、填空題20、以下程序的功能是:輸入三個(gè)整數(shù)nl、n2、n3,按從大到小的順序進(jìn)行輸出。請(qǐng)?zhí)羁?。main(){intnl,n2,n3,temp:scanf(*%d%d%d*,&nl,&n2,&n3):if(){temp=n2: n2=n3: n3=temp; }if(){temp=nl; nl=n2; n2=temp; }printf(*%d,%d,%d\n*,nl,n2,n3);21、以下程序的功能是:輸入一個(gè)小寫(xiě)字母,按字母排列順序后移5個(gè)位置后輸出(如把'a'變?yōu)椤海?w'變成'b')。請(qǐng)?zhí)羁铡?include"sldio.h"main(){charcl;cl=getchar();if(cl>=,a,&&cl<=,u*)elseif(cl>=,v*&&cl<=,z*)putchar(cl);}22、輸入一個(gè)字符,如果它是一個(gè)大寫(xiě)字母,則把它變成小寫(xiě)字母:如果它是一個(gè)小寫(xiě)字母,則把它變成大寫(xiě)字母:其它字符不變。請(qǐng)?zhí)羁?。main()(charchi;scanfchi);if()chl=chl+32;elseif(chl>=,a&&chl<='z')printf(*%c*,chi);}23、閱讀下面的程序并回答問(wèn)題。main(){intm,n,x,y;scanf(*%d,%d",&x,&y);m=l:n=l:if(x>0)m=m+l;if(x>y)n=m+n;elseif(x==y)n=5;elsen=2*m;printf(*m=%d,n=%d*?m,n); }問(wèn)題:為了使輸出『4,x的輸入值應(yīng)當(dāng)為,y的輸入值應(yīng)當(dāng)為o24、以卜.程序的功能是:根據(jù)輸入的三條邊的值判斷是否能組成三角形,若能組成則輸出三角形的面積和三角形的類(lèi)型。請(qǐng)?zhí)羁?。^include"math,h”main(){floatal,a2,a3;floats,area:scanf(*%f%f%f*,&al,&a2,&a3);if(){s=(al+a2+a3)/2:area=sqrt(s*(s-al)*(s-a2)*(s-a3)):printfarea);if()printf("等邊三角形”);elseif()printf("等腰三角形”):elseif((a1*a1+a2*a2==a3*a3)II(a1*a1+a3*a3==a2*a2)II(a2*a2+a3*a3-a1*a1))printf("直角三角形”);elseprintf("一般三角形”);}elseprintf("不能組成三角形”);}25、以下程序的功能是判斷輸入的年份是否是閏年。請(qǐng)?zhí)羁?。main(){intyear,yes:scanf("%d”,&year):if(year%400==0)year=l:elseif()yes=l;elseif(yes)printf(*%dis”,year);elseprintf(*%disnot”,year);printf(*aleapyear.\n*);26、以下程序段根據(jù)輸入的截止日期(年:yend,月:mend,日:dend)和出生日期(byear,bmonth,bday),計(jì)算出實(shí)際年齡。請(qǐng)?zhí)羁?。intyend,mend,bend,byear,bmonth,bday,age:age=yend-byear:if(mendbmonth)age—:elseif(mendbmonth&&dendbday)age一;27、如果運(yùn)行以下程序段時(shí)輸入字符“t”,則程序段的運(yùn)行結(jié)果是main(){charcl;scanf&cl);cl=(cl>=,A*&&cl<=,Z*)?(cl+32):cl;cl=(cl>=,a*&&cl<=,z*)?(cl-32):cl;printfcl);}28、以下程序的功能是找出x、y、z三個(gè)數(shù)中的最小值。請(qǐng)?zhí)羁铡ain(){intx=4,y=5,z=8;intu,v;u=x<y?;v=u<z?:printfv);29、若運(yùn)行以下程序時(shí),輸入下面指定數(shù)據(jù),則運(yùn)行結(jié)果為#include<stdio.h>main(){intch;while((ch=getchar())!=*\n){switch(ch-,r){case0:putchar(ch+3):putchar(ch+3):break;putchar(ch+3):default:putchar(ch+1);break;))printf("\n");)輸入數(shù)據(jù)(從第?列開(kāi)始):1234<回車(chē))30、將以卜嵌套的if語(yǔ)句改寫(xiě)成對(duì)應(yīng)的switch語(yǔ)句,使其完成相同的功能。請(qǐng)?zhí)羁铡?假設(shè)mark的取值在1至100之間。)if語(yǔ)句:if(mark<60)k=l;elseif(mark<70)k=2;elseif(mark<80)k=3;elseif(mark<90)k=4;elseif(mark<=100)k=5:switch語(yǔ)句:switch(){k=l;break;: k=2: break;: k=3: break;: k=4: break; k=5;)31、將以卜.含有switch語(yǔ)句的程序段改寫(xiě)成對(duì)應(yīng)的含有非嵌套if語(yǔ)句的程序段,請(qǐng)?zhí)羁铡:衧witch語(yǔ)句的程序段:ints,t,m;t=(int)(s/10);switch(t){case10:m=5;break;m=4:break:case8:m=3:break:case7:m=2:break:case6:m=l:break:default:m=0;含有非嵌套if語(yǔ)句的程序段:ints,m;if()m=5;if((s<100)&&(s>=90))if((s<90)&&(s>=80))m=3;if((s<80)&&(s>=70))m=2;if((s<70)&&(s>=60))m=l;if()32、用switch語(yǔ)句實(shí)現(xiàn)以下數(shù)學(xué)關(guān)系,請(qǐng)?zhí)羁铡?-1(x<0)y=J0 (x=0)一1 (x>0)switch(x<0){case1:y=T:case0:switch(x==0){case1:y=0; y=l;33、將以下含有switch語(yǔ)句的程序段改寫(xiě)成對(duì)應(yīng)的含有嵌套if語(yǔ)句的程序段,請(qǐng)?zhí)羁?。含有switch語(yǔ)句的程序段:ints,t,m;t=(int)(s/10);switch(t){case10:m=5;break;case9:m=4;break;case8:m=3:break:case7:m=2:break:case6:m=l:break:default:m=0:含有嵌套if語(yǔ)句的程序段:ints,m;if()m=0;elseif(s<70)m=l;elseif(s<80)m=2;elseif(s<90)m=3;elseif(s<100)m=4;34、設(shè)x和y均為int類(lèi)型變量,則以下for循環(huán)中的scanf語(yǔ)句最多可執(zhí)行的次數(shù)是.for(x=0,y=0;y!=123&&x<3;x++)scanf(*%d*,&y);35、設(shè)a、b、c均是int類(lèi)型變量,則執(zhí)行以下for循環(huán)后,c的值為for(a=l,b=5;a<=b;a++)c=a+b:36、以下程序的運(yùn)行結(jié)果為main(){intj=5:while(j<=15)if(++j%2!=1)continue;else printf(*%d",j);printf(*\n*);}37、設(shè)chi為char類(lèi)型變量,若從鍵盤(pán)上由第一列輸入以卜數(shù)據(jù):right?〈回車(chē)>則以下三個(gè)程序段的輸出結(jié)果分別是,,。①、c=getchar();while(c!=’?’){putchar(c); c=getchar(); }②、while((c=getchar())!='?')putchar(++c):③、while(putchar(getchar( ?,):38、下面程序段的功能是統(tǒng)計(jì)從鍵盤(pán)輸入的字符中的數(shù)字字符個(gè)數(shù),用換行符'\n'結(jié)束循環(huán),請(qǐng)?zhí)羁?。intn=0,c:c=getchar():while(){if()n++;c=getchar();)39、以下do-while語(yǔ)句中循環(huán)體的執(zhí)行次數(shù)是a=10; b=0;do{b+=2; a-=2+b;}while(a>=0);40、以下程序段的運(yùn)行結(jié)果是x=2;do{ ; x一;}while(!x==0);41、下面程序段是找出整數(shù)的所有因子,請(qǐng)?zhí)羁?。scanf(飛d",&x):for(;: ){if(x%i=0)printf("%3d",i):i++:)42、設(shè)雞兔共有30只,腳共有90個(gè),下面程序段是計(jì)算雞兔各有多少只,請(qǐng)?zhí)羁?。for(x=l;x<=29;x++){y=30-x;if()printf(*%d,%d\n”,x,y):)43、若用以下形式表示for循環(huán)語(yǔ)句:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)循環(huán)體語(yǔ)句則執(zhí)行語(yǔ)句for(i=0;i<3;i++)prinlf("*");時(shí),表達(dá)式1執(zhí)行次,表達(dá)式3執(zhí)行次。44、卜'面程序的功能是計(jì)算1-3+5-7+……-99+101的值,請(qǐng)?zhí)羁?。main(){inti,t-l,s=0:for(i=l:i<=101:i+=2)(:s=s+t:; }printf(飛d\n”,s):)45、以下程序的功能是求出下面算式中的X、Y、Z的值,請(qǐng)?zhí)羁?。算式:XYZ+YZZ532main(){intx,y,z,k,result=532;for(x=l;x<10;x++)for(y=l;y<10;y++)for(z= ;;z++){k=()+(100*y+10*z+z);if(k==result)printf(^X=%d,Y=%d,Z=%d\n”,x,y,z);))46、下面程序的功能是求1000以?xún)?nèi)的所有完全數(shù),請(qǐng)?zhí)羁铡?說(shuō)明:一個(gè)數(shù)如果恰好等于它的因子之和(除自身外),則稱(chēng)該數(shù)為完全數(shù),例如:6=1+2+3,6為完全數(shù)。)main(){inta,i,m:for(z=l:a<=1000:a++){for(;i<=a/2:i++)if(!(a%i));if(m=a) printf(*%4d*,a);47、下面程序的運(yùn)行結(jié)果是#include,sldio.h"main(){inti,j;for(i=4;i>=l;i){for(j=l;j<=i;j++)printf(*#*):for(j=l:j<4-i;j++)putchar(**'):putchar(1\n):)}48、下面程序的功能是計(jì)算100至1000之間有多少個(gè)數(shù)其各位數(shù)字之和是5,請(qǐng)?zhí)羁?。main(){inti,s,k,count=0;for(i=100;i<=1000;i++){s=0;k=i;while(){s=s+k%10;k=; }if(s!=5)count++;)printfcount);}49、下面程序的功能是打印100以?xún)?nèi)個(gè)位數(shù)為6且能被3整除的所有數(shù),請(qǐng)?zhí)羁?。main(){inti,j;for(i=0;:i++){j=i*10+6:if()continue:printf(*%d\j);)C語(yǔ)言程序設(shè)計(jì)第5章練習(xí)題一、選擇題77、以下對(duì)一維數(shù)組a的正確說(shuō)明是A、chara(10);B、inta[];C、intk=5,a[k];D、chara[]={'a','b','c'};78、若有說(shuō)明語(yǔ)句:inta[2][4];,則對(duì)a數(shù)組元素的正確引用是A、a[0][3]B、a[0][4]C、a[2][2]D、a[2][2+1]79、以卜.能對(duì)二維數(shù)組y進(jìn)行初始化的語(yǔ)句是A、staticinty[2][]={{!,0,1},{5,2,3));B、staticinty[][3]={{1,2,3},{4,5,6}};C、staticinty[2][4]={{1,2,3},{4,5},{6}};D、staticinty[][3]={{1,0,1,0},{},{1,1}};80、若有說(shuō)明語(yǔ)句:inty[][4]={0,0}:則下面敘述不正確的是A、數(shù)組y的每個(gè)元素都可得初值0B、二維數(shù)組y的行數(shù)為1C、該說(shuō)明等價(jià)于inty[][4]={0};D、只有元素y[0][0]和可得到初值0,其余元素均得不到初值081、以下各組選項(xiàng)中,均能正確定義二維實(shí)型數(shù)組s的選項(xiàng)是A、floats[3][4]; B、floats(3,4);floats[][4]; floats[][]={{0};{0});floats[3][]={{!},{0}};floats[3][4];C、floats[3][4]; D、floats[3][4];staticfloats[][4]={{0),{0}};floats[3][];autofloats[][4]={{0},{0},{0}};floats[][4];82、若有說(shuō)明語(yǔ)句:inta[][3]={1,2,3,4,5,6,7,8};,則a數(shù)組的行數(shù)為A>3B、2C、無(wú)確定值D、183、若二維數(shù)組y有m列,則在y[i][j]前的元素個(gè)數(shù)為A、j*m+i B、i*m+jC、 D、i*m+j+l84、下面程序中有錯(cuò)誤的行是main(){int x[3]={l);int k;scanf&x):for (k=l; k<3;k++)x[0]=x[0]+x[i];8^ printf("x[0]=%d\n",x[0]);)A、3B、6C、7D、585、若有以下語(yǔ)句,則正確的描述是charx[]="12345”:chary[]={T','2','3','4','5'};A、x數(shù)組與y數(shù)組的長(zhǎng)度相同B、x數(shù)組長(zhǎng)度大于y數(shù)組長(zhǎng)度C、x數(shù)組長(zhǎng)度小于y數(shù)組長(zhǎng)度D、x數(shù)組等價(jià)于y數(shù)組86、以下不正確的數(shù)組定義語(yǔ)句是A、doublex[5]={2.0,4.0,6.0,8.0,10.0};B、inty[5]={0,1,3,5,7,9};C、charchi[]=1','2','3','4','5'};D、charch2[]={'\xl0','\xa','\x8'}:87、以下正確的數(shù)組定義語(yǔ)句是A、chara[5]={T','2','3','4','5','\0'};B、intb[2][]={{1},{2});C、floatc[][3]={1,2,3,4,5};D、chard⑸—CHINA%88、判斷字符串strl是否大于字符串str2,應(yīng)當(dāng)使用A、if(strl>str2)B、if(strcmp(strl,str2))C、if(strcmp(str2,strl)>0)D、if(strcmp(strl,str2)>0)89、下面程序段的運(yùn)行結(jié)果是charx[5]"\'b,,'\0','c',printfx):A、‘a(chǎn)''b'B、abC、ab=cD、abc90、有兩個(gè)字符數(shù)組a,b,則以下能正確為a,b進(jìn)行賦值的語(yǔ)句是A、gets(a,b);B、scanf(飛s%s”,&a,&b);C、getchar(a);getchar(b);D、gets(a);gets(b);91、有字符數(shù)組si[80]和s2[80],則以下能正確對(duì)si,s2進(jìn)行輸出的語(yǔ)句是A、puts(si,s2)B>printf(*%s,%s”,si,s2);C、putchar(si,s2):D>puts(si),puts(s2):92、以下程序段的運(yùn)行結(jié)果是chara[7]="abcdef”;charb[4]="ABC":strcpy(a,b);printfa[5]);A、l-jB、\0C、eD、f93、以下描述正確的是A、兩個(gè)字符串所包含的字符個(gè)數(shù)相同時(shí),才能比較字符串B、字符個(gè)數(shù)多的字符串比字符個(gè)數(shù)少的字符串大C、字符串"STOP-"與"STOP"相等D、字符串"That"小于字符串"The"94、以下對(duì)字符數(shù)組的描述中錯(cuò)誤的是A、字符數(shù)組中可以存放字符串B、字符數(shù)組中的字符串可以整體輸入、輸出C、可以在賦值語(yǔ)句中通過(guò)賦值運(yùn)算符”一對(duì)字符數(shù)組整體賦值D、不可以用關(guān)系運(yùn)算符對(duì)字符數(shù)組中的字符串進(jìn)行比較95、若有語(yǔ)句:charsl[10],s2[10]={"books"},則能將字符串books賦給數(shù)組si的正確語(yǔ)句是 A、si二{"books"}; B、strcpy(si,s2);C、sl=s2; D、strcpy(s2,si);96、以下printf語(yǔ)句的輸出結(jié)果是printf(*%d\n*,strlen(*school*);A、7B、6C、存在語(yǔ)法錯(cuò)誤D、不定值97、下面程序的功能是將字符串s中所有的字符c刪除。請(qǐng)選擇填空。^include<stdio.h>main(){chars[80]:inti,j:gets(s);for(i=j=0;s[i]!=>\0J;i++)if(s[i]!=,c*)s[j]=\0\puts(s);)A、s[j++]=s[i] B,s[++j]=s[i]C、s[j]=s⑴; D、s[j]=s⑴:98、當(dāng)運(yùn)行以下程序時(shí)候,從鍵盤(pán)輸入:ab<回車(chē))c〈回車(chē))def〈回車(chē)>則下面程序的運(yùn)行結(jié)果是一:include<stdio.h>#defineN6main(){charchi[N];intk=0;for(:k<N;chi[k]=getchar(),k++):for(k=0;k<N;k++)putchar(chi[k]);A、abcdefB、aC、bD、abbcccddder99、下面程序的運(yùn)行結(jié)果是ttinclude<stdio.h>ttinclude<string.h>main(){charx[80]="AB”,y[80]=*LMNP*:(98題答案:)intn=0;strcat(x,y);while(x[n++]!=*\0*)y[n]=x[n];puts(y);)A、LB B、ABLMNPC、AB D、LBLMNP二、填空題50、在C語(yǔ)言中,二維數(shù)組元素在內(nèi)存中的存放順序是。51、若有定義:doublex[3][5];,則x數(shù)組中行下標(biāo)的下限為,列下標(biāo)的上限為52、若二維數(shù)組a有m列,則計(jì)算任一元素a[i][j]在數(shù)組中相對(duì)位置的公式為—。(設(shè)a[0][0]是數(shù)組的第一個(gè)元素)53、若有定義:inta[3][4]={{l,2},{0},{4,6,8,10}};,則初始化后,得到的初值是,得到的初值是o54、若有說(shuō)明:chars[20];,如果想從鍵盤(pán)上把字符串:Thisisabook.輸入到數(shù)組s中,應(yīng)當(dāng)調(diào)用的函數(shù)是,函數(shù)調(diào)用語(yǔ)句的形式是O55、請(qǐng)寫(xiě)出卜面各printf語(yǔ)句的結(jié)果。①、printf(*%s\n*,strcat(^school*,*student*));②、printf(*%d\n*,strlen(*CHINA*)+strlen(*C*));③、printf("%d\n”,strcmp(*The*?"The")):56、根據(jù)卜面說(shuō)明和要求,完成對(duì)應(yīng)的填空。①、若有:charstrl[10],str2[]={*student*}:能把str2中的字符串賦給strl的串函數(shù)調(diào)用語(yǔ)句是 ②、若有:charstrl[20]={*agood*},str2[]=(“student”);能把str2中的字符串接到strl中的字符串后面的串函數(shù)調(diào)用語(yǔ)句是57、下面程序?qū)⒍S數(shù)組a的行和列元素互換后存到另一個(gè)二維數(shù)組b中。請(qǐng)?zhí)羁铡ain(){inta[2][3]={{1,2,3},{4,5,6});intb[3][2],i,j;printf(*arraya:\n*);for(i=0;i<=l;i++){for(j=0;;j++){printf(*%5d*,a[i][j]);printf(*\n*);)printf(*arrayb:\n*);for(i=0;:i++){for(j=0:j<=l;j++)printf(*%5d*,b[i][j]);printf(*\n*);58、下面程序可求出矩陣a的兩條對(duì)角線上的元素之和。請(qǐng)?zhí)羁?。main(){staticinta[3][3]={1,3,6,7,9,11,14,15,17};intsuml=0,sum2=0,i,j;for(i=0;i<3;i++)for(j=0:j<3;j++)if(i==j)suml+=a[i][j];for(i=0:i<3:i++)for(;;j)if(i+j==2)sum2+=a[i][j]?printf(*suml=%d,sum2=%d\n*,suml,sum2);}59、下面程序的功能是將二維數(shù)組a中每個(gè)元素向右移一列,最右一列換到最左
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 云南省玉溪市2025-2026學(xué)年八年級(jí)上學(xué)期期末考試信息技術(shù) 試題(解析版)
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)果汁飲料行業(yè)發(fā)展前景預(yù)測(cè)及投資方向研究報(bào)告
- 養(yǎng)老院環(huán)境衛(wèi)生與消毒管理制度
- 企業(yè)薪酬福利管理制度
- 2026河南安陽(yáng)新東投資集團(tuán)有限公司招聘11人參考題庫(kù)附答案
- 臨保食品安全管理制度
- 2026湖北省定向中國(guó)政法大學(xué)選調(diào)生招錄考試備考題庫(kù)附答案
- 2026湖南株洲市第三中學(xué)面向高校畢業(yè)生招聘教師參考題庫(kù)附答案
- 2026甘肅蘭州海關(guān)技術(shù)中心酒泉實(shí)驗(yàn)室招聘非在編人員2人參考題庫(kù)附答案
- 2026福建福州市殘疾人聯(lián)合會(huì)招聘1人參考題庫(kù)附答案
- 房屋租賃合同txt
- 加工中心點(diǎn)檢表
- 水庫(kù)清淤工程可行性研究報(bào)告
- THBFIA 0004-2020 紅棗制品標(biāo)準(zhǔn)
- GB/T 25630-2010透平壓縮機(jī)性能試驗(yàn)規(guī)程
- GB/T 19610-2004卷煙通風(fēng)的測(cè)定定義和測(cè)量原理
- 精排版《化工原理》講稿(全)
- 中層管理干部領(lǐng)導(dǎo)力提升課件
- 市場(chǎng)營(yíng)銷(xiāo)學(xué)-第12章-服務(wù)市場(chǎng)營(yíng)銷(xiāo)課件
- 小微型客車(chē)租賃經(jīng)營(yíng)備案表
- 風(fēng)生水起博主的投資周記
評(píng)論
0/150
提交評(píng)論