版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
習題一C語言概述
習題二
常量、變量及數(shù)據(jù)類型
習題三運算符與表達式
習題四基本輸入、輸出
習題五選擇結(jié)構(gòu)程序設計
習題六循環(huán)結(jié)構(gòu)程序設計
習題七數(shù)組
習題八字符數(shù)組與字符串
習題九函數(shù)
習題十結(jié)構(gòu)體與共用體
習題十一指針
習題十二文件管理
習題十三編譯預處理
第一部分章節(jié)同步訓練習題習題一C語言概述
一、填空題
1.應用程序myfile.c中只有一個函數(shù),這個函數(shù)的名稱是_______。2.一個函數(shù)由_______和_______兩部分組成。3.在一個C源程序中,注釋部分兩側(cè)的分界符分別是_______和_______。4.在C語言中,輸入操作是由庫函數(shù)_______完成的,輸出操作是由庫函數(shù)_______完成的。5.通過文字編輯建立的源程序文件的擴展名是_______;編譯后生成目標程序文件,擴展名是_______;鏈接后生成可執(zhí)行程序文件,擴展名是_______;運行得到結(jié)果。6.?C語言程序的基本單位或者模塊是_______。7.?C語言程序的語句結(jié)束符是_______。8.編寫一個C程序,上機運行,要經(jīng)過________、________、_______和_______幾個步驟。9.符合結(jié)構(gòu)化原則的三種基本控制結(jié)構(gòu)是:_______、_______和_______。10.程序流程圖中菱形框表示的是_______。二、選擇題1.一個C程序的執(zhí)行是從()。A.本程序的main函數(shù)開始,到main函數(shù)結(jié)束B.本程序文件的第一個函數(shù)開始,到本程序文件的最后一個函數(shù)結(jié)束C.本程序的main函數(shù)開始,到本程序文件的最后一個函數(shù)結(jié)束D.本程序文件的第一個函數(shù)開始,到本程序main函數(shù)結(jié)束
2.以下不是C語言特點的是()。A.?C語言簡潔、緊湊,使用方便、靈活B.?C語言允許直接訪問物理地址,能進行位操作,能實現(xiàn)匯編語言的大部分功能,可以直接對硬件進行操作C.?C語言具有結(jié)構(gòu)化的控制語句D.?C語言中沒有運算符3.以下敘述不正確的是()。A.一個C源程序可由一個或多個函數(shù)組成B.一個C源程序必須包含一個main函數(shù)C.在C程序中,注釋說明只能位于一條語句的后面D.?C程序的基本組成單位是函數(shù)4.?C語言規(guī)定:在一個源程序中,main函數(shù)的位置()。A.必須在程序的開頭 B.必須在系統(tǒng)調(diào)用的庫函數(shù)的后面C.可以在程序的任意位置 D.必須在程序的最后5.一個C語言程序是由()。A.一個主程序和若干個子程序組成 B.函數(shù)組成C.若干個過程組成 D.若干個子程序組成6.?C編譯程序是()。A.將C源程序編譯成目標程序的程序B.一組機器語言指令C.將C源程序編譯成應用軟件D.?C程序的機器語言版本7.以下敘述中正確的是()。A.?C語言的源程序不必通過編譯就可以直接運行B.?C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進制的機器指令C.?C源程序經(jīng)編譯形成的二進制代碼可以直接運行D.?C語言中的函數(shù)不可以單獨進行編譯8.用C語言編寫的代碼程序()。A.可立即執(zhí)行 B.是一個源程序C.經(jīng)過編譯即可執(zhí)行 D.經(jīng)過編譯解釋才能執(zhí)行三、簡答題1.?C語言程序的總體結(jié)構(gòu)是怎樣的?2.?C語言程序的基本單位是什么?它的結(jié)構(gòu)又如何?3.主函數(shù)main()在程序中的地位如何?程序總是從哪個函數(shù)開始執(zhí)行,到哪個函數(shù)執(zhí)行完后結(jié)束?4.什么是算法?算法有些什么特性?計算機如何表示算法?5.執(zhí)行一個C語言程序的一般過程是什么?四、編程題1.請參照《教材》例1-1,編寫一個C程序,輸出以下信息:************VeryGood!************2.請參照《教材》例1-2,設計一個C語言程序,計算10+20+50的和。習題二
常量、變量及數(shù)據(jù)類型
一、填空題
1.?C程序中數(shù)據(jù)有_______和_______之分,其中,用一個標識符代表一個常量的稱為_______常量。C語言規(guī)定在程序中對用到的所有數(shù)據(jù)都必須指定其_______類型,對變量必須做到先_______,后使用。2.?C語言所提供的基本數(shù)據(jù)類型包括:單精度型、雙精度型、_______、_______、_______。3.?5.4321E2在常規(guī)表示法中表示為_______,327.876在科學表示法中表示為_______。4.寫出下列數(shù)所對應的其他進制數(shù)。(1)?32D?=?_________B?=?________O?=?________H(2)?75D?=?_________B?=?________O?=?________H5.?C的字符常量是用_______引號括起來的_______個字符,而字符串常量是用_______引號括起來的_______序列。6.?C語言中,字符型數(shù)據(jù)和_______數(shù)據(jù)之間可以通用。7.字符串"abcke"長度為_______,占用_______個字節(jié)的空間。
8.假設已指定i為int型變量,f為float型變量,d為double型變量,e為long型變量,有式子:10+'a'+i*f-d/e,則結(jié)果為_______型。9.若有定義:charc=‘\010’;則變量c中包含的字符個數(shù)為_______。二、選擇題1.以下選項中屬于C語言的數(shù)據(jù)類型是()。A.復數(shù)型 B.邏輯型
C.雙精度型D.集合型2.下列常數(shù)中不能作為C的常量的是()。A.0xA5 B.2.5e-2
C.3e2 D.05823.?C語言中的標識符只能由字母、數(shù)字和下劃線三種字符組成,且第一個字符()。A.必須為字母 B.必須為下劃線C.必須為字母或下劃線
D.可以是字母、數(shù)字和下劃線中任一種字符4.設C語言中,一個int型數(shù)據(jù)在內(nèi)存中占2個字節(jié),則unsignedint型數(shù)據(jù)的取值范圍為()。
A.?0~255 B.?0~32767
C.?0~65535 D.?0~21474836475.以下正確的C語言標識符是()。A.#define B._123 C.%d D.\n6.為求出s=10!的值,則變量s的類型應當為()。A.intB.unsigedC.longD.以上三種類型均可7.在C語言中,合法的字符常量是()。A.'\084'
B.'\x48' C.'ab'
D."\0"8.下列不正確的轉(zhuǎn)義字符是()。A.'\\'
B.'\"
C.'074'
D.'\0
9.若有說明語句:charc='\72',則變量c()。A.包含1個字符 B.包含2個字符C.包含3個字符 D.說明不合法,c的值不確定10.已知字母A的ASCII碼為十進制數(shù)65,且c2為字符型,則執(zhí)行語句c2='A'+'6'-'3';后,c2中的值為()。A.?D B.?68 C.不確定的值D.?C三、簡答題
1.?C語言中用到的數(shù)據(jù)類型都有哪些?是如何劃分的?2.?C語言為什么規(guī)定對所有用到的變量要“先定義,后使用”?這樣做有什么好處?3.字符常量與字符串常量有什么區(qū)別?4.指出下列變量名中,哪些是合法的?哪些是非法的?如果是非法的,請說明理由。Int,char,345,ABdf,c&d,string*,_322,alpf_beat,JOHN.smith,3ab習題三運算符與表達式
一、填空題
1.若有定義:intx=3,y=2;floata=2.5,b=3.5;則表達式:(x+y)%2+(int)a/(int)b的值為_______。2.若s為整型變量,且s=6,則表達式s%2+(s+1)%2的值為_______。3.?5/3的值為_______,5.0/3的值為_______。4.將下面的語句補充完整,使得ch1和ch2都被初始化為字母D,但要用不同的方法:
charch1=_______;charch2=_______;
5.自增運算符
++?和自減運算符
--?只能用于_______,不能用于常量或表達式。
6.?++?和
--?的結(jié)合方向是“自_______至_______”。
7.賦值運算符的作用是將一個數(shù)據(jù)賦給一個_______。
8.假設所有變量均為整型,則表達式(a=2,b=5,a++,b++,a+b)的值為_______。9.若a是int型變量,則執(zhí)行表達式a=25/3%3后,a的值為_______。10.若x和n均是int型變量,且x和n的初值均為5,則執(zhí)行表達式x+=n++后,x的值為_______,n的值為_______。
11.若x和a均是int型變量,則執(zhí)行表達式(1)后的x值為_______,執(zhí)行表達式(2)后的x值為_______。(1)?x=(a=4,6*2)(2)?x=a=4,6*212.若a、b和c均是int型變量,則執(zhí)行表達式a=(b=4)+(c=2)后,a值為_______,b值為_______,c值為_______。13.若有代數(shù)式
,則正確的C語言表達式是_______。二、選擇題1.在C語言中,要求運算數(shù)必須是整型的運算符是()。A./ B.++ C.!?= D.%2.設有說明:charw;intx;floaty;doublez;則表達式w*x+z-y值的數(shù)據(jù)類型為()。A.?float B.?Char C.?int D.?double3.若有定義:inta=7;floatx=2.5,y=4.7;則表達式x+a%3*(int)(x+y)%2/4的值是()。A.?2.500000 B.?2.750000 C.?3.500000 D.?0.0000004.以下能正確地定義整型變量a,b和c,并為其賦初值5的語句是()。A.?inta=b=c=5, B.?inta,b,c=5;C.?inta=5,b=5,c=5; D.?a=b=c=5;5.設以下變量均為int類型,則值不等于7的表達式是()。A.?(x=y=6,x+y,x+1) B.?(x=y=6,x+y,y+1)C.?(x=6,x+1,y=6,x+y) D.?(y=6,y+1,x=y,x+1)6.設X,Y,Z和K都是int型變量,則執(zhí)行表達式:X=(Y=52,Z=26,K=32)后,X的值為()。A.4 B.26 C.32 D.527.逗號表達式“(a=3*5,a*4),a+15”的值是()。A.15 B.60 C.30 D.不確定三、閱讀程序,寫出運行結(jié)果1.main(){charc1,c2;c1=97;c2=98;printf("%c%c\n",c1,c2);printf("%d%d\n",c1,c2);
}2.main(){ chari,j,m,n;i=8;j=10
m=++i;
n=j++;
printf("%d,%d,%d,%d\n",i,j,m,n);}
3.
main()
{intx=8,y,z;
y=z=x;
x=y==z;
printf("%d",x);}
4.main(){doublex;x=(int)8.4;
printf("%f\n",x);
}
四、計算下列表達式的值1.?a+b%3*(int)(a-b)/4(設a=13.6,b=8)2.?(x+y)/2+(int)x%(int)y(設x=4.5,y=2.5)3.?z*=3+6,z/z=z/2,z+=z-=z*=z(設z=6)習題四基本輸入、輸出
一、填空題1.?C語句分為五種:_______、函數(shù)調(diào)用語句、_______、空語句和_______。2.一條基本語句的最后一個字符是_______。3.復合語句又稱分程序,是用_______括起來的語句。4.使用標準輸入輸出庫函數(shù)時,程序的開頭要有如下預處理命令:_______。5.?getchar函數(shù)的作用是從終端輸入_______個字符。6.?printf函數(shù)的作用是向終端_______若干個任意類型的數(shù)據(jù)。7.?printf函數(shù)中的“格式控制”,包括_______和_______兩種信息。8.?scanf函數(shù)中的“格式控制”后面應當是變量_______,而不是變量名。9.在用scanf函數(shù)中輸入數(shù)據(jù)時,如果在“格式控制”字符串中除了格式說明以外還有其他字符,則應在對應位置輸入與這些字符相同的_______。10.在用“%c”格式輸入字符時,空格字符和“轉(zhuǎn)義字符”都作為有效字符_______。11.在輸入數(shù)據(jù)時,遇到以下情況時該數(shù)據(jù)認為結(jié)束:遇_______,或按_______或_______;按指定的寬度結(jié)束;遇非法輸入。12.輸入數(shù)據(jù)時不能規(guī)定_______。二、選擇題1.以下不屬于流程控制語句的是()。A.表達式語句 B.選擇語句
C.循環(huán)語句 D.轉(zhuǎn)移語句2.?putchar函數(shù)可以向終端輸出一個()。A.整型變量表達式值 B.實型變量值C.字符串 D.字符或字符型變量值3.?getchar函數(shù)的參數(shù)個數(shù)是()。A.1 B.0C.2D.任意4.以下程序的輸出結(jié)果是()。
main() { printf("\n*s1=%15s*","chinabeijing");
printf("\n*s2=%-5s*","chi");
}
A.*s1=chinabeijing*
B.*s1=chinabeijing*?*s2=**chi* ???*s2=chi*C.*s1=*chinabeijing* D.*s1=chinabeijing*?*s2=chi* ?*s2=chi*5.?printf函數(shù)中用到格式符%5s,其中數(shù)字5表示輸出的字符串占用5列。如果字符串長度大于5,則輸出按方式();如果字符串長度小于5,則輸出按方式()。A.從左起輸出該字串,右補空格
B.按原字符長從左向右全部輸出C.右對齊輸出該字串,左補空格
D.輸出錯誤信息6.已有定義inta=-2;和輸出語句:printf("%8x",a);以下敘述中正確的是()。A.整型變量的輸出格式符只有%d一種B.%x是格式符的一種,它可以適用于任何一種類型的數(shù)據(jù)C.%x是格式符的一種,其變量的值按十六進制輸出,但%8x是錯誤的D.%8x不是錯誤的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度7.若inta,b;scanf("%d%d",&a,&b);不可以用()作為輸入的分隔符。A., B.空格鍵
C.回車鍵 D.Tab鍵
8.已有如下定義和輸入語句,若要求a1,a2,c1,c2的值分別為10,20,A和B,當從第一列開始輸入數(shù)據(jù)時,正確的數(shù)據(jù)輸入方式是()。
inta1,a2;charc1,c2;
scanf("%d%d",&a1,&a2);
scanf("%c%c",&c1,&c2);
A.1020AB<CR>
B.1020<CR> AB<CR>
C.1020AB<CR>
D.1020AB<CR>9.閱讀以下程序,當輸入數(shù)據(jù)的形式為25,13,10<CR>時,正確的輸出結(jié)果為()。
main() {intx,y,z; scanf("%d%d%d",&x,&y,&z);printf("x+y+z=%d\n",x+y+z); }A.x+y+z=48 B.x+y+z=35 C.x+z=35 D.不確定值10.已有程序段和輸入數(shù)據(jù)的形式如下,程序中輸入語句的正確形式應當為()。 main() { inta;floatf; printf("\nInputnumber:");
輸入語句
printf("\nf=%f,a=%d\n",f,a);
} Inputnumber:4.52<CR>
A.scanf("%d,%f",&a,&f); B.scanf("%f,%d",&f,&a);
C.scanf("%d%f",&a,&f); D.scanf("%f%d",&f,&a);11.根據(jù)定義和數(shù)據(jù)的輸入方式,輸入語句的正確形式為()。
已有定義:floatf1,f2;
數(shù)據(jù)的輸入方式:4.52
3.5A.scanf("%f,%f",&f1,&f2); B.scanf("%f%f",&f1,&f2);C.scanf("%3.2f%2.1f",&f1,&f2); D.scanf("%3.2f%2.1f",&f1,&f2);12.閱讀以下程序,若運行結(jié)果為如下形式,則輸入、輸出語句的正確內(nèi)容是()。
main() { intx;floaty; printf("enterx,y:");
輸入語句
輸出語句 }
輸入形式 enterx,y:23.4
輸出形式 x+y=5.40A.scanf("%d,%f?",&x,&y); printf("\nx+y=%4.2f",x+y);B.scanf("%d%f",&x,&y); printf("\nx+y=%4.2f",x+y);C.scanf("%d%f",&x,&y); printf("\nx+y=%6.1f",x+y);D.scanf("%d%3.1f",&x,&y); printf("\nx+y=%4.2f",x+y);13.以下說法中正確的是()。A.輸入項可以為一實型常量,如scanf("%f",3.5);B.只有格式控制,沒有輸入項,也能進行正確輸入,如scanf("a=%d,b=%d");C.當輸入一個實型數(shù)據(jù)時,格式控制部分應規(guī)定小數(shù)點后的位數(shù),如scanf("%4.2f",&f);D.當輸入數(shù)據(jù)時,必須指明變量的地址,如scanf("%f",&f);14.有輸入語句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);為使變量a的值為1,b為3,c為2,則從鍵盤輸入數(shù)據(jù)的正確形式應當是()。A.132<回車> B.1,3,2<回車>C.a=1b=3c=2<回車> D.a=1,b=3,c=2<回車>15.已有如下定義和輸入語句,若要求a1,a2,c1,c2的值分別為10,20,A和B,則當從第一列開始輸入數(shù)據(jù)時,正確的數(shù)據(jù)輸入方式是()。
inta1,a2;charc1,c2; scanf("%d%c%d%c",&a1,&c1,&a2,&c2);A.10A20B<CR> B.10A20B<CR>C.10A20B<CR> D.10A20B<CR>三、閱讀程序,寫出運行結(jié)果
1.
main()
{shorti;
i=-4;
printf("\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\n",i,i,i,i);}
2.
main()
{ intd=-2;
printf("*d(1)=%d*d(2)=%3d*d(3)=%-3d*\n",d,d,d);
printf("*d(4)=%o*d(5)=%7o*d(6)=%-7o*\n",d,d,d);}
3.
main()
{intx=1,y=2;
printf("x=%dy=%d*sum*=%d\n",x,y,x+y);
printf("10Squaredis:%d\n",10*10);}
4.
main(){floata=123.456;doubleb=8765.4567;
printf("(1)%f\n",a);printf("(2)%14.3f\n",a);printf("(3)%6.4f\n",a);printf("(4)%lf\n",b);printf("(5)%14.3lf\n",b);printf("(6)%8.4lf\n",b);printf("(7)%.4f\n",b);}四、編程題1.編寫程序,從鍵盤上輸入三個數(shù)分別給變量a、b、c,求它們的平均值。并按如下形式輸出:averageof**,**and**is**.**。其中,三個
**
依次表示a、b、c的值,**.**
表示a,b,c的平均值。2.1.31英里=1.609千米,地球與月球之間的距離大約是238857英里,請編寫C程序,在屏幕上顯示出地球與月球之間大約是多少千米?3.設圓半徑r=1.5,圓柱高h=3,求圓周長、圓面積、圓球表面積、圓球體積、圓柱體積。用scanf輸入數(shù)據(jù),輸出計算結(jié)果(保留小數(shù)點后兩位數(shù)字)。請編寫程序。4.輸入一個華氏溫度,要求輸出攝氏溫度。公式為c?=?5(F?-?32)/9,取小數(shù)點后兩位數(shù)字。5.編寫C程序,從鍵盤輸入一個字符,在屏幕上顯示出其前后相連的三個字符。習題五選擇結(jié)構(gòu)程序設計
一、填空題1.關(guān)系表達式的運算結(jié)果是_______值。C語言沒有邏輯型數(shù)據(jù),以_______代表“真”,以_______代表“假”。2.?C語言提供的三種邏輯運算符是_______、_______、_______。其中優(yōu)先級最高的為_______,優(yōu)先級最低的為_______。3.邏輯運算符兩側(cè)的運算對象不但可以是0和1,或者是0和非0的整數(shù),也可以是任何類型的數(shù)據(jù)。系統(tǒng)最終以_______和_______來判定它們屬于“真”或“假”。4.設y為int型變量,則描述“y是偶數(shù)”的表達式是_______。5.設x,y,z均為int型變量,則描述“x或y中有一個小于z”的表達式是_______。6.條件“2<x<3或x<-10”的C語言表達式是_______。7.判斷char型變量ch是否為大寫字母的正確表達式是_______。8.當a=3,b=2,c=1時,表達式f=a>b>c的值是_______。9.當a=5,b=4,c=2時,表達式a>b!=c的值是_______。10.已知A=7.5,B=2,C=3.6,表達式A>B&&C>A||A<B&&!C>B的值是_______。11.若a=6,b=4,c=2,則表達式?!(a-B.+c-1&&b+c/2的值是_______。12.若有intx,y,z;且x=3,y=-4,z=5,則表達式(x&&y)==(x||z)的值為_______。13.若有intx,y,z;且x=3,y=-4,z=5,則表達式!(x>y)+(y!=z)||(x+y)&&(y-z)的值為_______。14.若有inta=3,b=4,c=5,x,y;則表達式:!(x=a)&&(y=b)&&0的值為_______。15.?if(!k)a=3;語句中的!k可以改寫為_______,使其功能不變。16.在if語句中又包含一個或多個if語句稱為_______。17.為了避免在嵌套的條件語句if-else中產(chǎn)生二義性,C語言規(guī)定:else子句總是與________配對。如果if與else數(shù)目不一樣,為實現(xiàn)設計者的目的,可以加_______來確定配對關(guān)系。18.條件運算符是C語言中唯一的一個_______目運算符,其結(jié)合性為_______。19.假設條件表達式的格式為:表達式1?表達式2:表達式3;若表達式2和表達式3的類型不同,此時條件表達式的值的類型為二者中較_______的類型。20.在switch語句中,switch后面括弧內(nèi)的“表達式”,可以為_______類型。21.若a=1,b=2,則表達式a>b?a:b+1的值是_______。22.若w=1、x=2、y=3、z=4,則條件表達式w<x?w:y<z?y:z的值是_______。23.若有以下if語句:if(a<b)min=a;elsemin=b;可用條件運算符來處理的等價式子為_______。24.若x=1,y=2,z=3,則表達式(x<y?x:y)==z++的值是_______。25.設有變量定義:inta=5,c=4;則(--a==++c)?--a:c++的值是_______,此時c的存儲單元的值為_______。二、選擇題1.邏輯運算符兩側(cè)運算對象的數(shù)據(jù)類型()。A.只能是0或1
B.只能是0或非0正數(shù)C.只能是整型或字符型數(shù)據(jù)
D.可以是任何類型的數(shù)據(jù)2.以下關(guān)于運算符優(yōu)先順序的描述中正確的是()。A.關(guān)系運算符<算術(shù)運算符<賦值運算符<邏輯與運算符B.邏輯與運算符<關(guān)系運算符<算術(shù)運算符<賦值運算符C.賦值運算符<邏輯與運算符<關(guān)系運算符<算術(shù)運算符D.算術(shù)運算符<關(guān)系運算符<賦值運算符<邏輯與運算符3.下列運算符中優(yōu)先級最高的是()。A.< B.+ C.&& D.!=4.為判斷字符變量c的值不是數(shù)字也不是字母時,應采用下述表達式()。A.c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122B.!(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122)C.c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122D.!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)5.能正確表示“當x的取值在[1,100]和[200,300]范圍內(nèi)為真,否則為假”的表達式是()。A.(x>=1)&&(x<=100)&&(x>=200)&&(x<=300)B.(x>=1)||(x<=100)||(x>=200)||(x<=300)C.(x>=1)&&(x<=100)||(x>=200)&&(x<=300)D.(x>=1)||(x<=100)&&(x>=200)||(x<=300)6.設x、y和z是int型變量,且x=3,y=4,z=5,則下面表達式中值為0的是()。A.'x'&&'y‘ B.x<=yC.x||y+z&&y-z D.!((x<y)&&!z||1)7.已知x=43,ch='A',y=0;則表達式(x>=y&&ch<'B'&&!y)的值是()。A.0 B.語法錯誤 C.1 D.“假”8.設有:inta=1,b=2,c=3,d=4,m=2,n=2;執(zhí)行(m=a>B.&&(n=c>d)后n的值為()。A.1 B.2 C.3 D.4
9.以下不正確的if語句形式是()。A.if(x>y&&x!=y); B.if(x==y)x+=y;C.if(x!=y)scanf("%d",&x)elsescanf("%d",&y);D.if(x<y){x++;y++;}10.已知intx=10,y=20,z=30;以下語句執(zhí)行后x,y,z的值是()。 if(x>y) z=x;x=y;y=z;A.x=10,y=20,z=30 B.x=20,y=30,z=30C.x=20,y=30,z=10D.x=20,y=30,z=2011.以下if語句語法正確的是()。
A.if(x>0
B.if(x>0)
printf(“%f”,x)
{x=x+y;printf("%f",x);}
elseprintf(“%f”,-x);
elseprintf("%f",-x);
C.if(x>0) D.if(x>0)
{x=x+y;printf(“%f”,x);};
{x=x+y;printf("%f",x)}
elseprintf("%f",-x); elseprintf("%f",-x);12.請閱讀下面程序:下面描述中正確的是()。A.程序有語法錯誤,不能通過編譯
B.程序可以通過編譯,但不能通過鏈接C.輸出***
D.輸出$$$
main() { inta=5,b=5,c=0; if(a==b+c) printf("***\n");
else printf("$$$\n"); }13.請閱讀下面程序:
main() { inta=5,b=0,c=0; if(a=b+c) printf("***\n"); else printf("$$$\n"); }下面描述中正確的是()。A.程序有語法錯誤,不能通過編譯 B.程序可以通過編譯,但不能通過鏈接C.輸出*** D.輸出$$$14.以下程序的運行結(jié)果是()。
main() { intm=5; if(m++>5) printf("%d\n",m);
else printf("%d\n",m--); }A.4 B.5 C.6 D.7三、閱讀程序,寫出運行結(jié)果1.若運行時輸入:2<回車>,則以下程序的運行結(jié)果是_______。
main(){ charClass; printf("Enter1for1stclasspostor2for2ndpost"); scanf("%c",&Class); if(Class=='1') printf("1stclasspostageis19p"); else printf("2ndclasspostageis14p");}2.main(){ if(2*2==5<2*2==4)printf("T");elseprintf("F");}3.main(){ inta=2,b=3,c;c=a;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;printf("%d\n",c);}4.main(){ inta,b,c;ints,w,t;s=w=t=0;a=-1;b=3;c=3;if(c>0)s=a+b;if(a<=0){if(b>0)if(c<=0)w=a-b;}elseif(c>0)w=a-b;elset=c;printf("%d%d%d",s,w,t);}
5.switch(grade){ case'A':printf("85--100\n"); case'B':printf("70--84\n"); case'C':printf("60--69\n"); case'D':printf("<60\n");
default:printf("error!\n");}?若grade的值為?'C',則輸出結(jié)果是_______。6.main(){ intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf("a=%d,b=%d",a,b);}
四、程序填空1.以下程序?qū)斎氲乃膫€整數(shù),按從小到大的順序輸出。請在_______內(nèi)填入正確內(nèi)容。main()
{ intt,a,b,c,d;
printf("inputa,b,c,d:")scanf("%d,%d,%d,%d",【1】);if(a>b){【2】}if(【3】){t=a;a=c;c=t;}if(a>d){t=a;a=d;d=t;}if(【4】){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(c>d){t=c;c=d;d=t;}printf("%d,%d,%d,%d",a,b,c,d);}2.以下程序是計算某年某月有幾天。其中判別閏年的條件是:能被4整除但不能被100整除的年是閏年,能被400整除的年也是閏年。請在_______內(nèi)填入正確內(nèi)容。
main()
{ intyy,mm,len;
printf("pleaseinputyear,month:");
scanf("%d%d",&yy,&mm);
switch(mm)
{ case1:
case3:
case5:case7:case8:case10:case12:【1】;break;case4:case6:case9:case11:len=30;break;case2:if(yy%4==0&&yy%100!=0||yy%400==0)【2】;else【3】
;break;default:printf("inputerror");break;} printf("thelengthof%d%dis%d\n",yy,mm,len);}
五、編程題1.試編程,判斷輸入的正整數(shù)是否既是5又是7的整倍數(shù)。若是,則輸出yes,否則輸出no。2.編寫程序,要求輸入整數(shù)x、y和z,若x2+y2+z2大于1000,則輸出x2+y2+z2千位以上的數(shù)字,否則輸出三數(shù)之和。3.有一個函數(shù),定義如下,編一個程序,輸入一個x值,輸出y值。4.已知銀行整存整取存款不同期限的月息利率分別為:0.315%期限一年0.330%期限二年0.345%期限三年0.375%期限五年0.420%期限八年編寫一個程序,要求輸入存錢的本金和期限,求到期時能從銀行得到的利息與本金的合計。5.編寫一個簡單計算器程序,輸入格式為:data1opdata2。其中,data1和data2是參加運算的兩個數(shù),op為運算符,它的取值只能是?+、-、*、/。習題六循環(huán)結(jié)構(gòu)程序設計
一、簡答題1.簡述三種循環(huán)while、do-while和for語句的執(zhí)行過程。2.?break和continue語句在循環(huán)中的作用是什么?3.簡述while語句和do-while語句的區(qū)別。二、選擇題1.?C語言中while和do-while循環(huán)的主要區(qū)別是()。A.do-while的循環(huán)體至少無條件執(zhí)行一次B.while的循環(huán)控制條件比do-while的循環(huán)控制條件嚴格C.do-while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)D.do-while的循環(huán)體不能是復合語句2.以下描述中正確的是()。A.由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復合語句B.?do-while循環(huán)由do開始,用while結(jié)束,在while(表達式)后面不能寫分號C.在do-while循環(huán)體中,一定要有能使while后面表達式的值變?yōu)榱?“假”)的操作C.?do-while循環(huán)中,根據(jù)情況可以省略while3.設有程序段:
intk=10;
while(k)k=k-1;則下面描述中正確的是()。A.?while循環(huán)執(zhí)行10次 B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行 D.循環(huán)體語句執(zhí)行一次
4.已知inti=1;執(zhí)行語句while(i++<4);后,變量i的值為()。A.3 B.4 C.5 D.65.語句while(!E);中的表達式?!E等價于()。A.E==0 B.E!=1 C.E!=0 D.E==1
6.下面程序段的運行結(jié)果是()。
a=1;b=2;c=2; while(a<b<c){ t=a;a=b;b=t;c--; } printf("%d,%d,%d",a,b,c);A.1,2,0 B.2,1,0 C.1,2,1 D.2,1,1
7.下面程序的運行結(jié)果是()。
#include<stdio.h>
main()
{ intnum=0; while(num<=2) { num++; printf("%d\n",num); }
}8.以下能正確計算1
×
2
×
3
×?…?×
10的程序段是()。A.do{i=1;s=1; B.do{i=1;s=0; s=s*i; s=s*i; i++; i++; }while(i<=10); }while(i<=10);C.i=1;s=1; D.i=1;s=0; do{s=s*i; do{s=s*i; i++; i++; }while(i<=10); }while(i<=10);9.下面程序的運行結(jié)果是()。#include<stdio.h> main() { inty=10; do{y--;}while(--y);
printf("%d\n",y--); }A.-1 B.1 C.8 D.010.下面有關(guān)for循環(huán)的正確描述是()。A.
for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況B.?for循環(huán)是先執(zhí)行循環(huán)體語句,后判斷表達式C.在for循環(huán)中,不能用break語句跳出循環(huán)體D.在for循環(huán)的循環(huán)體語句中,可以包含多條語句,但必須用花括號括起來11.對for(表達式1;;表達式3)可理解為()。A.for(表達式1;0;表達式3) B.for(表達式1;1;表達式3)C.for(表達式1;表達式1;表達式3)D.for(表達式1;表達式3;表達式3)12.下列說法中正確的是()。A.?break用在switch語句中,而continue用在循環(huán)語句中B.?break用在循環(huán)語句中,而continue用在switch語句中C.?break能結(jié)束循環(huán),而continue只能結(jié)束本次循環(huán)D.?continue能結(jié)束循環(huán),而break只能結(jié)束本次循環(huán)13.以下說法中正確的描述是()。A.?continue語句的作用是結(jié)束整個循環(huán)的執(zhí)行B.只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同D.從多層循環(huán)嵌套中退出時,只能使用goto語句14.若i為整型變量,則以下循環(huán)執(zhí)行次數(shù)是()。for(i=2;i==0;)printf("%d",i--);A.無限次 B.0次 C.1次 D.2次15.以下for循環(huán)的執(zhí)行次數(shù)是()。
for(x=0,y=0;(y=123)&&(x<4);x++)A.是無限循環(huán) B.循環(huán)次數(shù)不定 C.執(zhí)行4次 D.執(zhí)行3次16.以下不是無限循環(huán)的語句為()。A.?for(y=0,x=1;x>++y;x=i++)i=xB.?for(;;x++=i);C.?while(1){x++;}D.?for(i=10;;i--)sum+=i;17.執(zhí)行語句for(i=1;i++<4;);后變量i的值是()。A.3 B.4 C.5 D.不定18.關(guān)于下面程序段,其中描述正確的是()。
for(t=1;t<=100;t++)
{ scanf("%d",&x); if(x<0)continue; printf("%3d",t);
}A.當x<0時,整個循環(huán)結(jié)束B.當x≥0時,什么也不輸出C.?printf函數(shù)永遠也不執(zhí)行 D.最多允許輸出100個非負整數(shù)19.關(guān)于下面程序段,其中描述正確的是()。x=3;do{ y=x--; if(!y){printf("*");continue;}
printf("#");}while(1<=x<=2);A.將輸出## B.將輸出##*C.是死循環(huán) D.含有不合法的控制表達式三、閱讀程序,寫出運行結(jié)果1.
main() { inta,s,n,count; a=2;s=0;n=1;count=1; while(count<=7){n=n*a;s=s+n;++count;} printf("s=%d",s); }2.
main()
{ inti; for(i=1;i<=5;i++)
{ if(i%2)printf("*"); elsecontinue; printf("#");
} printf("$\n"); }3.
main() { inti,j; for(i=4;i>=1;i--) { for(j=1;j<=i;j++)putchar('#'); for(j=1;j<=4-i;j++)putchar('*');
putchar('\n'); }}4.若運行以下程序時,從鍵盤輸入“2473<回車>”,則下面程序的運行結(jié)果是(
)。 #include<stdio.h> 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; } printf("\n"); }四、程序填空1.下面程序的功能是在輸入的一批正整數(shù)中求出最大者,輸入0結(jié)束循環(huán)。請在_______內(nèi)填入正確內(nèi)容。main(){ inta,max=0;scanf("%d",&a);while(【1】){if(max<a)【2】;scanf("%d",【3】);}printf("%d",【4】);}2.下面程序的功能是求1至1000之間滿足“用3除余2;用5除余3;用7除余2”的數(shù),且一行只打印5個數(shù)。請在_______內(nèi)填入正確內(nèi)容。 main(){ inti=1,j=0; do { if(【1】) {
printf("%4d",i); j=j+1; if(【2】)printf("\n"); } i=i+1; }while(【3】);}3.以下程序的功能是計算:m?=?1?-?3?+?5?-7?+?…?+?99?-?101的值。請在_______內(nèi)填入正確內(nèi)容。
main()
{ inti,t=1,s;
【1】;
for(i=1;
【2】;
【3】)
{s=
【4】;
t=-t;
}
printf("%d\n",s);
}4.以下程序的功能是輸入n值,輸出如圖1-1所示高為n的直角三角形圖形。請?zhí)羁?。圖1-1第4題輸出圖形main(){ inti,j,n;printf("\nPleaseEntern:");scanf("%d",&n);for(i=1;
【1】;i++){for(j=1;
【2】;j++)printf("");for(j=1;
【3】;j++)printf("*");
【4】;}}五、編程題1.編寫程序計算下列算式的值:…(x>1)直到某一項A≤0.000001時為止。輸出最后C的值。2.有一分數(shù)序列:
,
,
,
,
,
,…求出這個數(shù)列的前20項之和。3.求
的值。4.從鍵盤輸入的字符中統(tǒng)計數(shù)字字符的個數(shù),用換行符結(jié)束循環(huán)。5.編寫程序,輸出用1元人民幣兌換成1分、2分和5分硬幣的不同兌換方法。6.打印如圖1-2所示的鉆石圖形。圖1-2第6題輸出圖形7.一球從100米高度自由下落,每次落地后返回原高度的一半,再落下。求它在第10次落地時共經(jīng)過多少米?第10次反彈多高?習題七數(shù)
組
一、填空題1.構(gòu)成數(shù)組的各個元素必須具有相同的_______。C語言中數(shù)組的下標必須是正整數(shù)、0或_______。如果一維數(shù)組的長度為n,則數(shù)組下標的最小值為_______,最大值為_______。
2.在C語言中,一維數(shù)組的定義方式為:類型說明符數(shù)組名_______。3.已知數(shù)組b定義為intb[]={9,6,3};,則b的各元素的值分別是_______,最小下標是_______,最大下標是_______。4.在C語言中數(shù)組名是一個_______,不能對其進行加、減及賦值操作。5.已知數(shù)組T是一個有10個單元的整型數(shù)組,正序輸出T中的10個元素的值的語句為:for(j=0;j<10;j++)printf("%d",T[j]);下面的語句試圖按相反的順序顯示輸出T中的10個元素的相反數(shù)。請補充完整下面的語句:for(_______;_______;j--)printf("%d",_______);6.已知:inta[][3]={1,2,3,4,5,6,7};則數(shù)組a的第一維的大小是_______,元素a[0][2]的值為_______,元素a[1][1]的值為_______。二、選擇題1.在C語言中,引用數(shù)組元素時,其數(shù)組下標的數(shù)據(jù)類型允許是()。A.整型常量 B.整型表達式C.整型常量或整型表達式 D.任何類型的表達式2.要說明一個有10個int元素的數(shù)組,應當選擇語句()。A.inta[10]; B.inta(10); C.inta[9] D.inta[11]3.以下對數(shù)組的定義正確的是:()。A.floatb[5.0] B.floatb[5] C.floatb(5) D.floatb[]4.對以下說明語句的理解正確的是()。inta[10]={6,7,8,9,10};A.將5個初值依次賦給a[1]至a[5]B.將5個初值依次賦給a[0]至a[4]C.將5個初值依次賦給a[6]至a[10]D.因為數(shù)組長度與初值的個數(shù)不相同,所以此語句不正確5.已知:inta[10];則對a數(shù)組元素的正確引用是()。A.a[10] B.a[3.5] C.a(5) D.a[10-10]6.以下能對一維數(shù)組a進行正確初始化的語句是()。
A.inta[10]=(0,0,0,0,0); B.inta[10]={}
C.inta[]={0}; D.inta[10]={10*1};7.以下能對一維數(shù)組a進行正確初始化的語句是()。
A.inta[5]; B.inta[3];
a={0,1,2,3,4};
for(i=0;i<3;i++)
scanf("%d",a);
C.inta[3]={0,1,2,3}; D.inta[5];
for(i=0;i<5;i++)
scanf("%d",&a[i]);8.在C語言中,二維數(shù)組元素在內(nèi)存中的存放順序是()。A.按行存放 B.按列存放
C.由用戶自己定義 D.由編譯器決定
9.以下對二維數(shù)組a的說明正確的是()。A.inta[3][] B.floata(3,4) C.doublea[1][4] D.floata(3)(4)10.已知:inta[3][4];則對數(shù)組元素引用正確的是()。A.a[2][4] B.a[1,3] C.a[2][0] D.a(2)(1)11.已知:inta[3][4]={0};則下面敘述正確的是()。A.只有元素a[0][0]可得到初值0B.此說明語句是錯誤的C.數(shù)組a中的每個元素都可得到初值,但其值不一定為0D.數(shù)組a中的每個元素均可得到初值012.以下語句正確的是()。A.inta[1][4]={1,2,3,4,5}; B.floatx[3][]={{1},{2},{3}};C.longb[2][3]={{1},{1,2},{1,2,3}};D.doubley[][3]={0};13.以下能對二維數(shù)組元素a進行初始化正確的語句是()。A.inta[2][]={{1,0,1},{5,2,3}};B.inta[][3]={1,2,3},{4,5,6}};C.inta[2][4]={{1,2,3},{4,5},{6}};D.inta[][3]={{1,0,1},{},{1,1}};14.以下對一維整型數(shù)組a的說明正確的是()。A.inta(10); B.intn=10,a[n];C.intn; D.#defineSIZE10; scanf("%",&n); inta[SIZE]; inta[n];15.要定義一個int型一維數(shù)組art,并使其各元素具有初值89,-23,0,0,0,定義語句不正確的是()。A.intart[5]={89,-23};B.intart[]={89,-23};C.intart[5]={89,-23,0,0,0};D.intart[]={89,-23,0,0,0};16.以下各組選項中,均能正確說明二維實型數(shù)組a的是()。A.floata[3][4]; B.floata(3,4);?floata[][4]; ?floata[3][4];?floata[3][]={{1},{0}}; floata[][]={{0},{0}};C.floata[3][4]; D.floata[3][4];?floata[][4]={{0},{0}}; ?floata[3][];?floata[][4]={{0},{0},{0}}; ?floata[][4];1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版游戲版權(quán)采購合同示范文本3篇
- 湘潭大學《體育基礎(chǔ)》2023-2024學年第一學期期末試卷
- 2024年版經(jīng)營權(quán)作抵押借款協(xié)議樣例版B版
- 二零二五版戶外廣告資源代理合作框架協(xié)議3篇
- 2024消防設備研發(fā)與制造合同范本3篇
- 二零二五年度藝術(shù)品收藏交易合同3篇
- 2025年度智慧養(yǎng)老服務平臺建設與運營合同3篇
- 桐城師范高等??茖W校《表演基礎(chǔ)》2023-2024學年第一學期期末試卷
- 二零二五版板房租賃合同含物業(yè)管理及保潔服務3篇
- 四川文軒職業(yè)學院《機械工程材料B》2023-2024學年第一學期期末試卷
- 上海紐約大學自主招生面試試題綜合素質(zhì)答案技巧
- 辦公家具項目實施方案、供貨方案
- 2022年物流服務師職業(yè)技能競賽理論題庫(含答案)
- ?;钒踩僮饕?guī)程
- 連鎖遺傳和遺傳作圖
- DB63∕T 1885-2020 青海省城鎮(zhèn)老舊小區(qū)綜合改造技術(shù)規(guī)程
- 高邊坡施工危險源辨識及分析
- 中海地產(chǎn)設計管理程序
- 簡譜視唱15942
- 《城鎮(zhèn)燃氣設施運行、維護和搶修安全技術(shù)規(guī)程》(CJJ51-2006)
- 項目付款審核流程(visio流程圖)
評論
0/150
提交評論