C語言習(xí)題-答案_第1頁
C語言習(xí)題-答案_第2頁
C語言習(xí)題-答案_第3頁
C語言習(xí)題-答案_第4頁
C語言習(xí)題-答案_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C語言章節(jié)習(xí)題目錄C語言章節(jié)習(xí)題 1第一章C語言概述 2第三章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 3第四章順序結(jié)構(gòu)程序設(shè)計(jì) 4第五章選擇結(jié)構(gòu)程序設(shè)計(jì) 11第六章循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 21第7章數(shù)組習(xí)題 33第8章函數(shù)習(xí)題 41第九章預(yù)處理 48第十章指針 49第一章C語言概述一、選擇題:1、一個(gè)C程序的執(zhí)行是從(A)。A本程序的main函數(shù)開始,到main函數(shù)結(jié)束B本程序文件的第一個(gè)函數(shù)開始,到本程序文件的最后一個(gè)函數(shù)結(jié)束C本程序的main函數(shù)開始,到本程序文件的最后一個(gè)函數(shù)結(jié)束D本程序文件的第一個(gè)函數(shù)開始,到本程序main函數(shù)結(jié)束2、在C語言中,每個(gè)語句必須以(D)結(jié)束。A.

回車符

B.

冒號

C.

逗號

D.

分號3、C語言規(guī)定:在一個(gè)源程序中,main函數(shù)的位置(C)。A.必須在最開始

B.必須在系統(tǒng)調(diào)用的庫函數(shù)的后面C.可以任意

D.

必須在最后4、一個(gè)C語言程序是由(B)。A.一個(gè)主程序和若干子程序組成

B.函數(shù)組成C.若干過程組成

D.若干子程序組成5、下列說法中錯(cuò)誤的是(D)。A.

主函數(shù)可以分為兩個(gè)部分:主函數(shù)說明部分和主函數(shù)體B.

主函數(shù)可以調(diào)用任何非主函數(shù)的其他函數(shù)C.

任何非主函數(shù)可以調(diào)用其他任何非主函數(shù)D.

程序可以從任何非主函數(shù)開始執(zhí)行6、用C語言編寫的源文件經(jīng)過編譯,若沒有產(chǎn)生編譯錯(cuò)誤,則系統(tǒng)將(B)。A.

生成可執(zhí)行目標(biāo)文件

B.

生成目標(biāo)文件C.

輸出運(yùn)行結(jié)果

D.

自動(dòng)保存源文件二、填空題:1、C語言只有(37)個(gè)關(guān)鍵字和

(9)種控制語句。2、每個(gè)源程序有且只有一個(gè)(main)函數(shù),系統(tǒng)總是從該函數(shù)開始執(zhí)行C語言程序。3、C語言程序的注釋可以出現(xiàn)在程序中的任何地方,它總是以

(\*)

符號作為開始標(biāo)記,以(*\)

符號作為結(jié)束標(biāo)記。4、C語言中,輸入操作是由庫函數(shù)(scanf)完成的,輸出操作是由庫函數(shù)(printf)

完成的。5、系統(tǒng)默認(rèn)的C語言源程序文件的擴(kuò)展名是(.c),經(jīng)過編譯后生成的目標(biāo)文件的擴(kuò)展名是(.obj),經(jīng)過連接后生成的可執(zhí)行文件的擴(kuò)展名是(.exe)。6、C語言的標(biāo)識符只能由字母、數(shù)字和(下劃線)三種字符組成。第三章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式一、選擇題:1、以下選項(xiàng)中,不正確的C語言浮點(diǎn)型常量是(C)。A.160.

B.0.12

C.2e4.2

D.

0.02、以下選項(xiàng)中,(D)是不正確的C語言字符型常量。A.'a'

B.'\x41'

C.'\101'

D."a"3、在C語言中,字符型數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中,以字符的(C)形式存儲(chǔ)。A.

原碼

B.

反碼

C.ASCII碼

D.BCD碼4、若x、i、j和k都是int型變量,則計(jì)算下面表達(dá)式后,x的值是(C)。x=(i=4,j=16,k=32)A.4

B.16

C.32

D.525、算術(shù)運(yùn)算符、賦值運(yùn)算符和關(guān)系運(yùn)算符的運(yùn)算優(yōu)先級按從高到低依次為(B)。A.

算術(shù)運(yùn)算、賦值運(yùn)算、關(guān)系運(yùn)算

B.

算術(shù)運(yùn)算、關(guān)系運(yùn)算、賦值運(yùn)算C.

關(guān)系運(yùn)算、賦值運(yùn)算、算術(shù)運(yùn)算

D.

關(guān)系運(yùn)算、算術(shù)運(yùn)算、賦值運(yùn)算6、表達(dá)式!x||a==b等效于(D)。A.!((x||a)==b)

B.!(x||y)==b

C.!(x||(a==b))

D.(!x)||(a==b)7、設(shè)整型變量m,n,a,b,c,d均為1,執(zhí)行(m=a>b)&&(n=c>d)后,m,n的值是(B)。A.0,0

B.0,1

C.1,0

D.1,18、設(shè)有語句inta=3;,則執(zhí)行了語句a+=a-=a*=a;后,變量a的值是(B)。A.3

B.0

C.9

D.-129、在以下一組運(yùn)算符中,優(yōu)先級最低的運(yùn)算符是(D)。A.*

B.!=

C.+

D.=

10、設(shè)整型變量i值為2,表達(dá)式(++i)+(++i)+(++i)的結(jié)果是(B)。A.6

B.12

C.15

D.

表達(dá)式出錯(cuò)11、若已定義x和y為double類型,則表達(dá)式x=1,y=x+3/2的值是(C)。A.1

B.2

C.2.0

D.2.512、設(shè)a=1,b=2,c=3,d=4,則表達(dá)式:a<b?a:c<d?a:d的結(jié)果為(D)。A.4

B.3

C.2

D.113、設(shè)a為整型變量,不能正確表達(dá)數(shù)學(xué)關(guān)系:10<a<15的C語言表達(dá)式是(A)。A.10<a<15

B.a==11||a==12||a==13||a==14C.a>10&&a<15

D.!(a<=10)&&!(a>=15)14、設(shè)f是實(shí)型變量,下列表達(dá)式中不是逗號表達(dá)式的是(D)。A.f=3.2,1.0

B.f>0,f<10

C.f=2.0,f>0

D.f=(3.2,1.0)

15、表達(dá)式18/4*sqrt(4.0)/8值的數(shù)據(jù)類型是(C)。A.int

B.float

C.double

D.不確定16、已知字母A的ASCII碼為十進(jìn)制數(shù)65,且c2為字符型,則執(zhí)行語句C2=’A’+’6’-‘3’;后c2中的值是(A)。A.D

B.68

C.不確定的值

D.C17、以下用戶標(biāo)識符中,合法的是(B)。A.int

B.nit

C.123

D.a+b18、C語言中,要求運(yùn)算對象只能為整數(shù)的運(yùn)算符是(A)。A.%

B./

C.>

D.*19、若有說明語句:charc='\72';則變量c在內(nèi)存占用的字節(jié)數(shù)是(A)。A.1

B.2

C.3

D.420、字符串"ABC"在內(nèi)存占用的字節(jié)數(shù)是(B)。A.3

B.4

C.6

D.821、要為字符型變量a賦初值,下列語句中哪一個(gè)是正確的(B)。A.chara="3";

B.chara=’3’;

C.chara=%;

D.chara=*;22、下列不正確的轉(zhuǎn)義字符是(C)。A.\\

B.\'

C.074

D.\0二、填空題:1、C語言中的邏輯值“真”是用

1表示的,邏輯值“假”是用

0

表示的。2、若x和n都是int型變量,且x的初值為12,n的初值為5,則計(jì)算表達(dá)式x%=(n%=2)后x的值為0。3、設(shè)c='w',a=1,b=2,d=-5,

則表達(dá)式'x'+1>c,'y'!=c+2,-a-5*b<=d+1,b==a=2的值為

1

、0

、1

、1。4、設(shè)floatx=2.5,y=4.7;inta=7;,表達(dá)式x+a%3*(int)(x+y)%2/4的值為

2.5

。5、判斷變量a、b的值均不為0的邏輯表達(dá)式為a!=0&&b!=0,值為1。6、求解賦值表達(dá)式a=(b=10)%(c=6),表達(dá)式值為4、a、b、c的值依次為1,0,6

。7、求解逗號表達(dá)式x=a=3,6*a后,表達(dá)式值為18、x、a的值依次為3,3

。三、編程題:1、設(shè)長方形的高為1.5,寬為2.3,編程求該長方形的周長和面積。2、編寫一個(gè)程序,將大寫字母A轉(zhuǎn)換為小寫字母a。1.main(){floatx=1.5,y=2.3;printf(“areais%6.2f\n”,x*y);}2.main(){charc=’A’;printf(“%d”,c+32);}第四章順序結(jié)構(gòu)程序設(shè)計(jì)基礎(chǔ)練習(xí)(A)一、填空題1、C語句分為五種:控制語句、函數(shù)調(diào)用語句、表達(dá)式語句、空語句和復(fù)合語句。2、一個(gè)基本語句的最后一個(gè)字符是;。3、復(fù)合語句又稱分程序,是用{}括起來的語句。4、使用C語言庫函數(shù)時(shí),要用于預(yù)編譯命令#include將有關(guān)的“頭文件”包括到用戶源文件中。5、使用標(biāo)準(zhǔn)輸入輸出庫函數(shù)時(shí),程序的開頭要有如下預(yù)處理命令:#include<stdio.h>。6、{a=3;c+=a-b;}在語法上被認(rèn)為是1條語句。7、getchar函數(shù)的作用是從終端輸入1個(gè)字符。8、如果從鍵盤輸入字符’a’并按回車鍵,請寫出以下程序運(yùn)行效果a。#include<stdio.h>main(){putchar(getchar());}9、以下程序的輸出結(jié)果為i:dec=-4,oct=177774,hex=fffc,unsigned=65532。 main() { shorti; i=-4; printf(“\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\n”,i,i,i,i); }10、以下程序的輸出結(jié)果為*3.140000,3.142*。 main() { printf(“*%f,%4.3f*\n”,3.14,3.1415); }11、以下程序的輸出結(jié)果為c:dec=120,oct=170,hex=78,ASCII=x。 main() { charc=‘x’; printf(“c:dec=%d,oct=%o,hex=%x,ASCII=%c\n”,c,c,c,c); }12、已有定義intd=-2;執(zhí)行以下語句后的輸出結(jié)果是*d(1)=-2*d(2)=-2*d(3)=-2**d(4)=177776*d(5)=177776*d(6)=177776* 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);13、以下程序的輸出結(jié)果為x=1y=2*sum*=310Squaredis:100 main() { intx=1,y=2; printf(“x=%dy=%d*sum*=%d\n”,x,y,x+y); printf(“10Squaredis:%d\n”,10*10); }14、以下程序的輸出結(jié)果為(1)123.456000(2)□□□□□□□123.457(3)123.4560(4)8765.456700(5)□□□□□□8765.457(6)8765.4567(7)8765.4567 #include<stdio.h> 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ù)體實(shí)際上就是一個(gè)復(fù)合語句。(對)2、C語言本身不提供輸入輸出語句,輸入和輸出操作是由函數(shù)來實(shí)現(xiàn)的。(對)3、putchar函數(shù)可以向終端輸出一個(gè)整數(shù)數(shù)據(jù)。(錯(cuò))4、考慮到printf和scanf函數(shù)使用頻繁,系統(tǒng)允許在使用這兩個(gè)函數(shù)時(shí)可不加#include命令。(對)5、任何表達(dá)式都可以加上分號而成為有意義的語句。(對)三、選擇題1、以下不屬于流程控制語句的是(A)。A)表達(dá)式語句B)選擇語句C)循環(huán)語句D)轉(zhuǎn)移語句2、putchar函數(shù)可以向終端輸出一個(gè)(D)。A)整型變量表達(dá)式值B)實(shí)型變量值C)字符串D)字符或字符型變量值3、getchar函數(shù)的參數(shù)個(gè)數(shù)是(B)。A)1B)0C)2D)任意4、以下程序的輸出結(jié)果是(D)。 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,則輸出按方式(B)。;如果字符串長度小于5,則輸出按方式(C)。A)從左起輸出該字串,右補(bǔ)空格B)按原字符長從左向右全部輸出C)右對齊輸出該字串,左補(bǔ)空格D)輸出錯(cuò)誤信息6、已有定義inta=-2;和輸出語句:printf(“%8lx”,a);以下正確的敘述是(D)。A)整型變量的輸出格式符只有%d一種B)%x是格式符的一種,它可以適用于任何一種類型的數(shù)據(jù)C)%x是格式符的一種,其變量的值按十六進(jìn)制輸出,但%8lx是錯(cuò)誤的D)%8lx不是錯(cuò)誤的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度

7、以下C程序正確的運(yùn)行結(jié)果是(C)。 main() { longy=-43456; printf(“y=%-8ld\n”,y); printf(“y=%-08ld\n”,y); printf(“y=%08ld\n”,y); printf(“y=%+8ld\n”,y); }A)y=-43456 B)y=-43456y=-43456 y=-43456y=-0043456 y=-0043456y=-43456 y=+-43456C)y=-43456 D)y=-43456y=-43456 y=-0043456y=-0043456 y=00043456y=-43456 y=+434568、以下C程序正確的運(yùn)行結(jié)果是(D)。 main() { inty=2456; printf(“y=%3o\n”,y); printf(“y=%8o\n”,y); printf(“y=%#8o\n”,y); }A)y=2456 B)y=4630y=2456 y=4630y=########2456 y=########4630C)y=2456 D)y=4630y=2456 y=4630y=02456 y=04630

基礎(chǔ)練習(xí)(B)一、填空題1、printf函數(shù)的作用是向終端輸出若干個(gè)任意類型的數(shù)據(jù)。2、printf函數(shù)中的“格式控制”,包括格式說明和普通字符兩種信息。3、scanf函數(shù)中的“格式控制”后面應(yīng)當(dāng)是變量地址,而不是變量名。4、在用scanf函數(shù)中輸入數(shù)據(jù)時(shí),如果在“格式控制”字符傳中除了格式說明以外還有其他字符,則應(yīng)在對應(yīng)位置輸入與這些字符相同的字符。5、在用”%c”格式輸入字符時(shí),空格字符和“轉(zhuǎn)義字符”都作為有效字符輸入。6、在輸入數(shù)據(jù)時(shí),遇以下情況時(shí)該數(shù)據(jù)認(rèn)為結(jié)束:遇空格、或按“回車”或“跳格”鍵;按指定的寬度結(jié)束;遇非法輸入。7、輸入數(shù)據(jù)時(shí)不能規(guī)定精度。8、如果在%后有一個(gè)“*”附加說明符,表示跳過它指定的列數(shù)。二、選擇題1、若inta,b;scanf(“%d%d”,&a,&b);不可以用(A)作為輸入的分隔符。A),B)空格C)回車D)TAB鍵2、若x,y均定義為int型,z定義為double型,以下不合法的scanf函數(shù)調(diào)用語句是(B)。A)scanf(“%d%lx,%le”,&x,&y,&z);B)scanf(“%2d*%d%lf”,&x,&y,&z);C)scanf(“%x%*d%o”,&x,&y);D)scanf(“%x%o%6.2f”,&x,&y,&z);3、已有如下定義和輸入語句,若要求a1,a2,c1,c2的值分別為10,20,A和B,當(dāng)從第一列開始輸入數(shù)據(jù)時(shí),正確的數(shù)據(jù)輸入方式是(D)。 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>4、閱讀以下程序,當(dāng)輸入數(shù)據(jù)的形式為25,13,10<CR>正確的輸出結(jié)果為(D)。 main() {intx,y,z; scanf(“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\n”,x+y+z); }A)x+y+z=48B)x+y+z=35C)x+z=35D)不確定值5、已有程序段和輸入數(shù)據(jù)的形式如下,程序中輸入語句的正確形式應(yīng)當(dāng)為(D)。 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);6、根據(jù)定義和數(shù)據(jù)的輸入方式,輸入語句的正確形式為(B)。 已有定義: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);7、閱讀以下程序,若運(yùn)行結(jié)果為如下形式,輸入輸出語句的正確內(nèi)容是(B)。 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);8、以下說法正確的是(D)。A)輸入項(xiàng)可以為一實(shí)型常量,如scanf(“%f”,3.5);B)只有格式控制,沒有輸入項(xiàng),也能進(jìn)行正確輸入,如scanf(“a=%d,b=%d”);C)當(dāng)輸入一個(gè)實(shí)型數(shù)據(jù)時(shí),格式控制部分應(yīng)規(guī)定小數(shù)點(diǎn)后的位數(shù),如scanf(“%4.2f”,&f);D)當(dāng)輸入數(shù)據(jù)時(shí),必須指明變量的地址,如scanf(“%f”,&f);9、有輸入語句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);為使變量a的值為1,b為3,c為2,從鍵盤輸入數(shù)據(jù)的正確形式應(yīng)當(dāng)是(D)。A)132<回車>B)1,3,2<回車>C)a=1b=3c=2<回車>D)a=1,b=3,c=2<回車> }10、已有如下定義和輸入語句,若要求a1,a2,c1,c2的值分別為10,20,A和B,當(dāng)從第一列開始輸入數(shù)據(jù)時(shí),正確的數(shù)據(jù)輸入方式是(A)。 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>11、已有定義intx;floaty;且執(zhí)行scanf(“%3d%f”,&x,&y);語句,若從第一列開始輸入數(shù)據(jù)12345678<回車>,則x的值為(B),y的值為( B)。(1)A)12345 B)123 C)45 D)345(2)A)無定值 B)45.000000 C)678.000000 D)123.000000三、編程:1、編寫程序,從鍵盤上輸入三個(gè)數(shù)分別給變量a、b、c,求它們的平均值。并按如下形式輸出:averageof**、**and**is**.**。其中,三個(gè)**依次表示a、b、c的值,**.**表示a,b,c的平均值。2、輸入9時(shí)23分并把它化成分鐘后輸出。(從零點(diǎn)整開始計(jì)算)。1、參考答案main(){floata,b,c,t;printf(“pleaseinputa,b,c:\n”);scanf("%f,%f,%f",&a,&b,&c);t=(a+b+c)/3;printf("averageof%6.2f、%6.2fand%6.2fis%6.2f\n”,a,b,c,t);}2、參考答案main(){inth,m,s;printf(“pleaseinputh,m:\n”);scanf("%d,%d",&h,&m);s=h*60+m;printf("total%dminute\n”,s);}第五章選擇結(jié)構(gòu)程序設(shè)計(jì)基礎(chǔ)練習(xí)(A)一、填空題1、關(guān)系表達(dá)式的運(yùn)算結(jié)果是邏輯值。C語言沒有邏輯型數(shù)據(jù),以1代表“真”,以0代表“假”。2、邏輯運(yùn)算符!是單目運(yùn)算符,其結(jié)合性是由右結(jié)合性。3、C語言提供的三種邏輯運(yùn)算符是&&、||、!。其中優(yōu)先級最高的為!,優(yōu)先級最低的為||。4、邏輯運(yùn)算符兩側(cè)的運(yùn)算對象不但可以是0和1,或者是0和非0的整數(shù),也可以是任何類型的數(shù)據(jù)。系統(tǒng)最終以0和非0來判定它們屬于“真”或“假”。5、設(shè)y為int型變量,請寫出描述“y是偶數(shù)”的表達(dá)式(y%2==0)。6、設(shè)x,y,z均為int型變量,請寫出描述“x或y中有一個(gè)小于z”的表達(dá)式x<z||y<z。7、條件“2<x<3或x<-10”的C語言表達(dá)式是x<-10||x>2&&x<3。8、判斷char型變量ch是否為大寫字母的正確表達(dá)式是(ch>=‘A’)&&(ch<=‘Z’)。9、當(dāng)a=3,b=2,c=1時(shí),表達(dá)式f=a>b>c的值是0。10、當(dāng)a=5,b=4,c=2時(shí),表達(dá)式a>b!=c的值是1。11、已知A=7.5,B=2,C=3.6,表達(dá)式A>B&&C>A||A<B&&!C>B的值是0。12、若a=6,b=4,c=2,則表達(dá)式!(a-b)+c-1&&b+c/2的值是1。13、有intx,y,z;且x=3,y=-4,z=5,則表達(dá)式(x&&y)==(x||z)的值為1。14、有intx,y,z;且x=3,y=-4,z=5,則以下表達(dá)式的值為1。 !(x>y)+(y!=z)||(x+y)&&(y-z)15、有inta=3,b=4,c=5,x,y;,則以下表達(dá)式的值為0。 !(x=a)&&(y=b)&&016、if(!k)a=3;語句中的!k可以改寫為k==0,使其功能不變。二、選擇題1、邏輯運(yùn)算符兩側(cè)運(yùn)算對象的數(shù)據(jù)類型(D)。A)只能是0或1B)只能是0或非0正數(shù)C)只能是整型或字符型數(shù)據(jù)D)可以是任何類型的數(shù)據(jù)2、以下關(guān)于運(yùn)算符優(yōu)先順序的描述中正確的是(C)。A)關(guān)系運(yùn)算符<算術(shù)運(yùn)算符<賦值運(yùn)算符<邏輯與運(yùn)算符B)邏輯與運(yùn)算符<關(guān)系運(yùn)算符<算術(shù)運(yùn)算符<賦值運(yùn)算符C)賦值運(yùn)算符<邏輯與運(yùn)算符<關(guān)系運(yùn)算符<算術(shù)運(yùn)算符D)算術(shù)運(yùn)算符<關(guān)系運(yùn)算符<賦值運(yùn)算符<邏輯與運(yùn)算符3、下列運(yùn)算符中優(yōu)先級最高的是(B)。A)< B)+ C)&& D)!=4、為判斷字符變量c的值不是數(shù)字也不是字母時(shí),應(yīng)采用下述表達(dá)式(D)。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、能正確表示“當(dāng)x的取值在[1,100]和[200,300]范圍內(nèi)為真,否則為假”的表達(dá)式是(C)。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、設(shè)x、y和z是int型變量,且x=3,y=4,z=5,則下面表達(dá)式中值為0的是(D)。A)‘x’&&‘y’B)x<=yC)x||y+z&&y-zD)!((x<y)&&!z||1)7、已知x=43,ch=‘A’,y=0;則表達(dá)式(x>=y&&ch<‘B’&&!y)的值是(C)。A)0 B)語法錯(cuò) C)1 D)“假”8、設(shè)有:inta=1,b=2,c=3,d=4,m=2,n=2; 執(zhí)行(m=a>b)&&(n=c>d)后n的值為(B)。A)1 B)2 C)3 D)49、以下不正確的if語句形式是(C)。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的值是(B)。 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=10 D)x=20,y=30,z=2011、以下if語句語法正確的是(B)。A)if(x>0)printf(“%f”,x)elseprintf(“%f”,-x);B)

if(x>0){ x=x+y;printf(“%f”,x); }elseprintf(“%f”,-x);C)

if(x>0){ x=x+y;printf(“%f”,x); };elseprintf(“%f”,-x);D)

if(x>0){ x=x+y;printf(“%f”,x) }elseprintf(“%f”,-x);12、請閱讀以下程序: main() { inta=5,b=5,c=0; if(a==b+c) printf(“***\n”); else printf(“$$$\n”); } 以下程序(C)。A)有語法錯(cuò)不能通過編譯 B)可以通過編譯但不能通過連接C)輸出*** D)輸出$$$三、寫出下列程序的運(yùn)行結(jié)果1、若運(yùn)行時(shí)輸入:2<回車>,則以下程序的運(yùn)行結(jié)果是2ndclasspostageis14p。 #include<stdio.h> voidmain(void) { charClass; printf(“Enter1for1stclasspostor2for2ndpost”); scanf(“%c”,&Class); if(Class==‘1’) printf(“1stclasspostageis19p”); else printf(“2ndclasspostageis14p”); }2、若運(yùn)行時(shí)輸入:4.4<回車>,則以下程序的運(yùn)行結(jié)果是SellingPrice(0.30)$5.72。 #include<stdio.h> voidmain(void) { floatCostPrice,SellingPrice; printf(“EnterCostPrice$:”); scanf(“%f”,&CostPrice); if(CostPrice>=5) { SellingPrice=CostPrice+CostPrice*0.25; printf(“SellingPrice(0.25)$%6.2f”,SellingPrice); } else { SellingPrice=CostPrice+CostPrice*0.30; printf(“SellingPrice(0.30)$%6.2f”,SellingPrice); } }3、以下程序的運(yùn)行結(jié)果是F。 main() { if(2*2==5<2*2==4) print(“T”); else printf(“F”); }能力提高(B)一、選擇題1、若希望當(dāng)A的值為奇數(shù)時(shí),表達(dá)式的值為“真”,A的值為偶數(shù)時(shí),表達(dá)式的值為“假”,則以下不能滿足要求的表達(dá)式是(D)。A)A%2==1 B)!(A%2==0) C)!(A%2) D)A%22、下列運(yùn)算符中優(yōu)先級最低的(A),優(yōu)先級最高的是(C)。A)?: B)&& C)+ D)!=3、請閱讀以下程序: main() { inta=5,b=0,c=0; if(a=b+c) printf(“***\n”); else printf(“$$$\n”); } 以下程序(D)。A)有語法錯(cuò)不能通過編譯 B)可以通過編譯但不能通過連接C)輸出*** D)輸出$$$4、以下程序的運(yùn)行結(jié)果是(C)。 main() { intm=5; if(m++>5) printf(“%d\n”,m); else printf(“%d\n”,m--); }A)4 B)5 C)6 D)7二、根據(jù)程序的功能,將以下程序補(bǔ)充完整1、以下程序?qū)斎氲乃膫€(gè)整數(shù),按從小到大的順序輸出。請?jiān)趦?nèi)填入正確內(nèi)容。 main() { intt,a,b,c,d;printf(“inputa,b,c,d:”) scanf(“%d,%d,%d,%d”,&a,&b,&c,&d); if(a>b){ t=a;a=b;b=t; } if(a>c){t=a;a=c;c=t;}if(a>d){t=a;a=d;d=t;}if(b>c){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); }三、編程:1、試編程判斷輸入的正整數(shù)是否既是5又是7的整倍數(shù)。若是,則輸出yes;否則輸出no。

2、編制程序要求輸入整數(shù)x、y和z,若x2+y2+z2大于1000,則輸出x2+y2+z2千位以上的數(shù)字,否則輸出三數(shù)之和。3、編寫程序,輸入三角型的三條邊長,求其面積。注意:對于不合理的邊長輸入要輸出數(shù)據(jù)錯(cuò)誤的提示信息。1、參考答案main(){intx;if(x%5==0&&x%7==0)printf(“yes”);elseprintf(“no”);}2、參考答案main(){intx,y,z,a,b;scanf(“%d%d%d”,&x,&y,&z);a=x*x+y*y*z*z;if(a>1000){b=a/1000;printf(“%d”,b);}elseprintf(“%d”,x+y+z);}3、參考答案#include<math.h>main(){floata,b,c,s,area;scanf(“%f,%f,%f”,&a,&b,&c);if(a+b>c&&b+c>a&&a+c>b){s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“area=%7.2f\n”,area);}elseprintf(“bunengzhuchengsanjiaoxing\n”);}第2講基礎(chǔ)練習(xí)(A)一、填空題1、在if語句中又包含一個(gè)或多個(gè)if語句稱為if語句的嵌套。2、為了避免在嵌套的條件語句if-else中產(chǎn)生二義性,C語言規(guī)定:else子句總是與其之前最近的未配對的if配對。如果if與else數(shù)目不一樣,為實(shí)現(xiàn)設(shè)計(jì)者的企圖,可以加花括號關(guān)系。3、條件運(yùn)算符是C語言中唯一的一個(gè)三目運(yùn)算符,其結(jié)合性為從右至左。4、假設(shè)條件表達(dá)式的格式為:表達(dá)式1?表達(dá)式2:表達(dá)式若表達(dá)式2和表達(dá)式3的類型不同,此時(shí)條件表達(dá)式的值的類型為二者中較高的類型5、在switch語句中,switch后面括弧內(nèi)的“表達(dá)式”,可以為任何類型。6、若a=1,b=2,則表達(dá)式a>b?a:b+1的值是3。7、若w=1、x=2、y=3、z=4,則條件表達(dá)式w<x?w:y<z?y:z的值是1。8、若有以下if語句:if(a<b)min=a;elsemin=b;可用條件運(yùn)算符來處理的等價(jià)式子為min=(a<b)?a:b;。9、若x=1,y=2,z=3,則表達(dá)式(x<y?x:y)==z++的值是0。10、設(shè)有變量定義:inta=5,c=4;則(--a==++c)?--a:c++的值是5,此時(shí)c的存儲(chǔ)單元的值為6。二、判斷題1、在switch語句中,每一個(gè)的case常量表達(dá)式的值可以相同。(錯(cuò))2、在switch語句中,各個(gè)case和default的出現(xiàn)次序影響執(zhí)行結(jié)果。(對)3、在switch語句中,多個(gè)case可以共用一組執(zhí)行語句。(對)4、條件表達(dá)式能取代一般if的語句。(錯(cuò))5、case后的常量表達(dá)式類型一定與表達(dá)式類型匹配。(對)三、寫出以下程序的運(yùn)行結(jié)果1、main() -1{ inta=2,b=3,c; c=a; if(a>b)c=1; elseif(a==b)c=0; elsec=-1; printf(“%d\n”,c); }2、main()200 { 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); }3、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é)果是60-69〈60error!能力提高(B)一、寫出下列程序的運(yùn)行結(jié)果1、#include<stdio.h>551 voidmain(void) { intx,y=1,z; if(y!=0)x=5; printf(“\t%d\n”,x); if(y==0)x=4; elsex=5; printf(“\t%d\n”,x); x=1; if(y<0) if(y>0)x=4; elsex=5; printf(“\t%d\n”,x); }2、#include<stdio.h>4-2404-2 voidmain(void) { intx,y=-2,z; if((z=y)<0)x=4; elseif(y==0)x=5; elsex=6; printf(”\t%d\t%d\n”,x,z);if(z=(y==0)) x=5; x=4; printf(“\t%d\t%d\n”,x,z); if(x=z=y)x=4; printf(“\t%d\t%d\n”,x,z); }3、#include<stdio.h>a=2,b=1 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); }二、根據(jù)程序的功能,將以下程序補(bǔ)充完整以下程序計(jì)算某年某月有幾天。其中判別閏年的條件是:能被4整除但不能被100整除的年是閏年,能被400整除的年也是閏年。請?jiān)趦?nèi)填入正確內(nèi)容。 main() { intyy,mm,len; printf(“year,month=”); scanf(“%d%d”,&yy,&mm); switch(mm) { case1: case3: case5: case7: case8: case10: case12:len=31;break; case4: case6: case9: case11:len=30;break; case2: if(yy%4==0&&yy%100!=0||yy%400==0)len=29; elselen=28; break; default:printf(“inputerror”);break; } printf(“thelengthof%d%dis%d\n”,yy,mm,len);

第六章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)基礎(chǔ)練習(xí)(A)一、選擇題1、C語言中while和do-while循環(huán)的主要區(qū)別是(A)。A)do-while的循環(huán)體至少無條件執(zhí)行一次B)while的循環(huán)控制條件比do-while的循環(huán)控制條件嚴(yán)格C)

do-while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)D)do-while的循環(huán)體不能是復(fù)合語句2、以下描述中正確的是(C)。A)由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內(nèi)不能使用復(fù)合語句B)

do-while循環(huán)由do開始,用while結(jié)束,在while(表達(dá)式)后面不能寫分號C)在do-while循環(huán)體中,一定要有能使while后面表達(dá)式的值變?yōu)榱悖ā凹佟保┑牟僮鱀)

do-while循環(huán)中,根據(jù)情況可以省略while3、設(shè)有程序段 intk=10; while(k)k=k-1; 則下面描述中正確的是(A)。 A)while循環(huán)執(zhí)行10次 B)循環(huán)是無限循環(huán) C)循環(huán)體語句一次也不執(zhí)行 D)循環(huán)體語句執(zhí)行一次4、下列循環(huán)語句中有語法錯(cuò)誤的是(D)。A)while(x=y)5;B)while(0);C)do2;while(x==b);D)dox++while(x==10);5、已知inti=1;執(zhí)行語句while(i++<4);后,變量i的值為(C)。A)3B)4C)5D)66、語句while(!E);中的表達(dá)式!E等價(jià)于(A)。 A)E==0 B)E!=1 C)E!=0 D)E==17、下面程序段的運(yùn)行結(jié)果是(A)。 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,18、下面程序的運(yùn)行結(jié)果是(C)。 #include<stdio.h> main() { intnum=0; while(num<=2) { num++; printf(“%d\n”,num); } } A)1 B)1 C)1 D)1 2 2 2 3 39、以下能正確計(jì)算1×2×3×…×10的程序段是(C)。 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);10、下面程序的運(yùn)行結(jié)果是(D)。 #include<stdio.h> main() { inty=10; do{y--;}while(--y); printf(“%d\n”,y--); } A)-1 B)1 C)8 D)011、已知inti=1,j=0;執(zhí)行下面語句后j的值是(D)。while(i)switch(i){case1:i+=1;j++;break;case2:i+=2;j++;break;case3:i+=3;j++;break;default:i--;j++;break;}A)1B)2C)3D)死循環(huán)12、若運(yùn)行以下程序時(shí),從鍵盤輸入2473<回車>,則下面程序的運(yùn)行結(jié)果是(A)。 #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”); } A)668977 B)668966 C)66778777 D)6688766二、填空題1、執(zhí)行下面程序段后,k值是36。 k=1;n=263; do{k*=n%10;n/=10;}while(n);2、下面程序的運(yùn)行結(jié)果是s=254。 #include<stdio.h> 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); }3、下面程序段的運(yùn)行結(jié)果是**。 x=2; do{printf(“*”);x--;}while(!x==0);4、運(yùn)行以下程序時(shí),從鍵盤鍵入China#<CR>(<CR>代表回車),則下面程序的運(yùn)行結(jié)果是5,5。 #include<stdio.h> main() { intv1=0,v2=0;charch; while((ch=getchar())!=‘#’) switch(ch) { case‘a(chǎn)’: case‘h’: default:v1++; case‘o’:v2++; } printf(“%d,%d\n”,v1,v2); }三、編程:1、編程求1*3*5*7*9的值

2、編寫程序計(jì)算下列算式的值:直到某一項(xiàng)A<=0.000001時(shí)為止。輸出最后C的值。

3、從鍵盤輸入的字符中統(tǒng)計(jì)數(shù)字字符的個(gè)數(shù),用換行符結(jié)束循環(huán)。1、參考答案:main(){inti;longp=1;do{p=p*i;i=i+2;}while(i<=9);printf(“1*3*5*9=%ld\n”,t);}2、參考答案:#defineE0.000001main(){floatx,y=1,s=0;printf("Pleaseenterx=");scanf("%f",&x);while(1/y>E){s=s+1/y;y=y*x;}printf("S=%f\n",s);}3、參考答案:main(){intn=0;charc;c=getchar();while(c!=’\n’ ){if(c>=’0’&&c<=’9’)n++; c=getchar(); }printf(“%d\n”,n);}

能力提高(B)一、選擇填空題1、下面程序的功能是將從鍵盤輸入的一組字符中統(tǒng)計(jì)出大寫字母的個(gè)數(shù)m和小寫字母的個(gè)數(shù)n,并輸出m、n中的較大者,請選擇填空。 #include<stdio.h> main() { intm=0,n=0; charc; while((A)!=‘\n’) { if(c>=‘A’&&c<=‘Z’)m++; if(c>=‘a(chǎn)’&&c<=‘z’)n++; } printf(“%d\n”,m<n?A); } (1)A)c=getchar() B)getchar() C)scanf(“%c”,c) (2)A)n:m B)m:n C)m:m D)n:n2、下面程序的功能是在輸入的一批正整數(shù)中求出最大者,輸入0結(jié)束循環(huán),請選擇填空。 #include<stdio.h> main() { inta,max=0; scanf(“%d”,&a); while(B) { if(max<a)max=a; scanf(“%d”,&a); } printf(“%d”,max); }A)a==0 B)a C)!a==1 D)!a3、下面程序的功能是計(jì)算正整數(shù)2345的各位數(shù)字平方和,請選擇填空。 #include<stdio.h> main() { intn,sum=0; n=2345; do{ sum=sum+B; n=C; }while(n); printf(“sum=%d”,sum); }(1)A)n%10 B)(n%10)*(n%10) C)n/10 D)(n/10)*(n/10)(2)A)n/1000 B)n/100 C)n/10 D)n%10二、讀懂程序,并按照程序的功能將程序補(bǔ)充完整1、下面程序的功能是用“輾轉(zhuǎn)想除法”求兩個(gè)正整數(shù)的最大公約數(shù)。請?zhí)羁铡?#include<stdio.h> main() { intr,m,n; scanf(“%d%d”,&m,&n); if(m<n)r=m,m=n,n=r; r=m%n; while(r){m=n;n=r;r=m%n;} printf(“%d\n”,n); }2、下面程序的功能是用do-while語句求1至1000之間滿足“用3除余2;用5除余3;用7除余2”的數(shù),且一行只打印五個(gè)數(shù)。請?zhí)羁铡?#include<stdio.h> main() { inti=1,j=0; do{ if(i%3==2&&i%5==3&&i%7==2) { printf(“%4d”,i); j=j+1; if(j%5==0)printf(“\n”); } i=i+1; }while(i<1000); }3、等差數(shù)列的第一項(xiàng)a=2,公差d=3,下面程序的功能是在前n項(xiàng)和中,輸出能被4整除的所有的和。請?zhí)羁铡?#include<stdio.h> main() { inta,d,sum; a=2;d=3;sum=0; do{ sum+=a; a+=d; if(sum%4==0)printf(“%d\n”,sum); }while(sum<200); }第2講基礎(chǔ)練習(xí)(A)一、

選擇題1、下面有關(guān)for循環(huán)的正確描述是(D)。A)

for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況B)

for循環(huán)是先執(zhí)行循環(huán)體語句,后判斷表達(dá)式C)

在for循環(huán)中,不能用break語句跳出循環(huán)體D)

for循環(huán)的循環(huán)體語句中,可以包含多條語句,但必須用花括號括起來2、對for(表達(dá)式1;;表達(dá)式3)可理解為(B)。A)for(表達(dá)式1;0;表達(dá)式3) B)for(表達(dá)式1;1;表達(dá)式3) C)for(表達(dá)式1;表達(dá)式1;表達(dá)式3) D)for(表達(dá)式1;表達(dá)式3;表達(dá)式3)3、下列說法中正確的是(C)。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)。4、以下正確的描述是(B)。A)

continue語句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行B)

只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句C)

在循環(huán)體內(nèi)使用break語句或continue語句的作用相同D)

從多層循環(huán)嵌套中退出時(shí),只能使用goto語句5、若i為整型變量,則以下循環(huán)執(zhí)行次數(shù)是(B)。for(i=2;i==0;)printf(“%d”,i--); A)無限次 B)0次 C)1次 D)2次6、以下for循環(huán)的執(zhí)行次數(shù)是(C)。for(x=0,y=0;(y=123)&&(x<4);x++) A)是無限循環(huán) B)循環(huán)次數(shù)不定 C)執(zhí)行4次 D)執(zhí)行3次7、以下不是無限循環(huán)的語句為(A)。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;8、執(zhí)行語句for(i=1;i++<4;);后變量i的值是(C)。 A)3 B)4 C)5 D)不定9、下面程序段(D)。 for(t=1;t<=100;t++) { scanf(“%d”,&x); if(x<0)continue; printf(“%3d”,t); } A)當(dāng)x<0時(shí)整個(gè)循環(huán)結(jié)束 B)x>=0時(shí)什么也不輸出 C)printf函數(shù)永遠(yuǎn)也不執(zhí)行 D)最多允許輸出100個(gè)非負(fù)整數(shù)10、下面程序段(C)。 x=3; do{ y=x--; if(!y){printf(“x”);continue;} printf(“#”); }while(1<=x<=2); A)將輸出## B)將輸出##* C)是死循環(huán) D)含有不合法的控制表達(dá)式二、寫出下列程序的運(yùn)行結(jié)果1、#include<stdio.h>*#*#*#$ main() { inti; for(i=1;i<=5;i++) { if(i%2)printf(“*”); elsecontinue; printf(“#”); } printf(“$\n”); }2、#include<stdio.h>#### ###* ##** #*** 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’); } }3、#include<stdio.h>2,3 main() { inti,k=0; for(i=1;;i++) { k++; while(k<i*i) { k++; if(k%3==0)gotoloop; } }loop:printf(“%d,%d”,i,k); }三、編程:1、求1-3+5-7+……-99+101的值。解:main(){inti,t=1,s=0;for(i=1;i<=101;i+=2){t=t*i;s=s+t;t=t>0?-1:1;}printf("%d\n",s);}能力提高(B)一、寫出下列程序的運(yùn)行結(jié)果1、#include<stdio.h>x=8 main() { inti,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if(j%2)continue; x++; } x++; } printf(“x=%d\n”,x); }2、#include<stdio.h>i=6,k=4 main() { inti,j,k=19; while(i=k-1) { k-=3; if(k%5==0){i++;continue;} elseif(k<5)break; i++; } printf(“i=%d,k=%d\n”,i,k); }二、根據(jù)程序的功能將程序補(bǔ)充完整下面程序的功能是求1至1000之間滿足“用3除余2;用5除余3;用7除余2”的數(shù),且一行只打印5個(gè)數(shù)。#include<stdio.h> main() { inti,j=0; for(i=1;i<1000;i++) if(i%3==2&&i%5==3&&i%7==2) {printf(“%4d”,i); j=j+1; if(j%5==0)printf(“\n”); } }三、編程:1、有一分?jǐn)?shù)序列2/1,3/2,5/3,8/5,13/8,21/13,…求出這個(gè)數(shù)列的前20項(xiàng)之和

2、輸入n值,輸出如圖所示高為n的等腰三角形。************************************1、參考答案:main(){intn,t,number=20;floata=2,b=1,s=0;for(n=1;n<number;n++){s=s+a/b;t=a;a=a+b;b=t;}printf(“s=%9.6f\n”,s);}2、參考答案:#include<stdio.h>main(){inti,a;for(i=1;i<=10;i++){ scanf(“%d”,&a); if(a%7==0){printf(“%d”,a);break;} } if(i==11)printf(“notexist\n”);}編輯版word編輯版word編輯版word第7章數(shù)組習(xí)題A卷1.單項(xiàng)選擇題(1)inta[4]={5,3,8,9};其中a[3]的值為(D)。A.5B.3C.8D.9(2)以下4個(gè)字符串函數(shù)中,(A)所在的頭文件與其他3個(gè)不同。A.getsB.strcpyC.strlenD.strcmp(3)以下4個(gè)數(shù)組定義中,(D)是錯(cuò)誤的。A.inta[7];B.#defineN5longb[N];C.charc[5];D.intn,d[n];(4)對字符數(shù)組進(jìn)行初始化,(B)形式是錯(cuò)誤。A.charc1[]={'1','2','3'};B.charc2[]=123;C.charc3[]={'1','2','3','\0'};D.charc4[]="123";(5)在數(shù)組中,數(shù)組名表示(A)。A.數(shù)組第1個(gè)元素的首地址B.數(shù)組第2個(gè)元素的首地址C.數(shù)組所有元素的首地址D.數(shù)組最后1個(gè)元素的首地址(6)若有以下數(shù)組說明,則數(shù)值最小的和最大的元素下標(biāo)分別是(B)。inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};A.1,12B.0,11C.1,11D.0,12(7)若有以下說明,則數(shù)值為4的表達(dá)式是(D)。inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc=’a’,d,g;A.a[g-c]B.a[4]C.a['d'-'c']D.a['d'-c](8)設(shè)有定義:chars[12]="string";則printf("%d\n",strlen(s));的輸出是(A)。A.6B.7C.11D.12(9)設(shè)有定義:chars[12]="string";則printf("%d\n",sizeof(s));的輸出是(D)。A.6B.7C.11D.12(10)合法的數(shù)組定義是(A)。A.chara[]="string";B.inta[5]={0,1,2,3,4,5};C.chara="string";D.chara[]={0,1,2,3,4,5}(11)合法的數(shù)組定義是(D)。A.inta[3][]={0,1,2,3,4,5};B.inta[][3]={0,1,2,3,4};C.inta[2][3]={0,1,2,3,4,5,6};D.inta[2][3]={0,1,2,3,4,5,};(12)下列語句中,正確的是(D)。A.chara[3][]={'abc','1'};B.chara[][3]={'abc','1'};C.chara[3][]={'a',"1"};D.chara[][3]={"a","1"};(13)下列定義的字符數(shù)組中,輸出printf("%s\n",str[2]);的輸出是(C)。staticstr[3][20]={"basic","foxpro","windows"};A.basicB.foxproC.windowsD.輸出語句出錯(cuò)(14)下列各語句定義了數(shù)組,其中哪一個(gè)是不正確的(C)。A.chara[3][10]={"China","American","Asia"};B.intx[2][2]={1,2,3,4};C.floatx[2][]={1,2,4,6,8,10};D.intm[][3]={1,2,3,4,5,6};(15)數(shù)組定義為inta[3][2]={1,2,3,4,5,6},值為6的數(shù)組元素是(B)。A.a[3][2]B.a[2][1]C.a[1][2]D.a[2][3](16)下面的程序中哪一行有錯(cuò)誤(D)。#include<stdio.h>main(){floatarray[5]={0.0};//第A行inti;for(i=0;i<5;i++)scanf("%f",&array[i]);for(i=1;i<5;i++)array[0]=array[0]+array[i];//第B行printf("%f\n",array[0]);//第C行}A.第A行B.第B行C.第C行D.沒有(17)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論