




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言程序設(shè)計(jì)(第二版)習(xí)題參考答案C語(yǔ)言程序設(shè)計(jì)(第二版)習(xí)題參考答案C語(yǔ)言程序設(shè)計(jì)(第二版)習(xí)題參考答案xxx公司C語(yǔ)言程序設(shè)計(jì)(第二版)習(xí)題參考答案文件編號(hào):文件日期:修訂次數(shù):第1.0次更改批準(zhǔn)審核制定方案設(shè)計(jì),管理制度C語(yǔ)言程序設(shè)計(jì)習(xí)題參考答案習(xí)題1一、判斷題1.在計(jì)算機(jī)中,小數(shù)點(diǎn)和正負(fù)號(hào)都有專用部件來(lái)保存和表示。2.二進(jìn)制是由0和1兩個(gè)數(shù)字組成的進(jìn)制方式。3.二進(jìn)制數(shù)的邏輯運(yùn)算是按位進(jìn)行的,位與位之間沒(méi)有進(jìn)位和借位的關(guān)系。4.在整數(shù)的二進(jìn)制表示方法中,0的原碼、反碼都有兩種形式。5.有符號(hào)數(shù)有三種表示法:原碼、反碼和補(bǔ)碼。6.常用字符的ASCII碼值從小到大的排列規(guī)律是:空格、阿拉伯?dāng)?shù)字、大寫(xiě)英文字母、小寫(xiě)英文字母。解:1.F2.T3.T4.T5.T6.T二、單選題1.在計(jì)算機(jī)中,最適合進(jìn)行數(shù)值加減運(yùn)算的數(shù)值編碼是。A.原碼 B.反碼 C.補(bǔ)碼 D.移碼2.已知英文小寫(xiě)字母m的ASCII碼為十進(jìn)制數(shù)109,則英文小寫(xiě)字母y的ASCII碼為十進(jìn)制數(shù)。A.112B.120C.121D.1223.關(guān)于ASCII碼,在計(jì)算機(jī)中的表示方法準(zhǔn)確地描述是。A.使用8位二進(jìn)制數(shù),最右邊一位為1B.使用8位二進(jìn)制數(shù),最左邊一位為1C.使用8位二進(jìn)制數(shù),最右邊一位為0D.使用8位二進(jìn)制數(shù),最左邊一位為04.設(shè)在機(jī)器字長(zhǎng)4位,X=0111B,Y=1011B,則下列邏輯運(yùn)算中,正確的是___________。A.X∧Y=1000B.X∨Y=1111C.X⊕Y=0011D.5.下列敘述中正確的是()。A.高級(jí)語(yǔ)言就是機(jī)器語(yǔ)言B.匯編語(yǔ)言程序、高級(jí)語(yǔ)言程序都是計(jì)算機(jī)程序,但只有機(jī)器語(yǔ)言程序才是計(jì)算機(jī)可以直接識(shí)別并執(zhí)行的程序C.C語(yǔ)言因?yàn)榫哂袇R編語(yǔ)言的一些特性,所以是匯編語(yǔ)言的一種D.C源程序經(jīng)過(guò)編譯、連接,若正確,執(zhí)行后就能得到正確的運(yùn)行結(jié)果6.用C語(yǔ)言編寫(xiě)的源程序經(jīng)過(guò)編譯后,若沒(méi)有產(chǎn)生編譯錯(cuò)誤,則系統(tǒng)將()。A.生成可執(zhí)行文件 B.生成目標(biāo)文件C.輸出運(yùn)行結(jié)果 D.自動(dòng)保存源文件7.下列敘述中不正確的是()。A.main函數(shù)在C程序中必須有且只有一個(gè)B.C程序的執(zhí)行從main函數(shù)開(kāi)始,所以main函數(shù)必須放在程序最前面C.函數(shù)可以帶參數(shù),也可以不帶參數(shù)。D.每個(gè)函數(shù)執(zhí)行時(shí),按函數(shù)體中語(yǔ)句的先后次序,依次執(zhí)行每條語(yǔ)句解:1.C2.C3.D4.B5.B6.B7.B三、填空題1.()10=()2=()8=()162.(.10111)2=()8=()16=()103.輸入三個(gè)數(shù),計(jì)算并輸出三個(gè)數(shù)的和與三個(gè)數(shù)的乘積。程序如下:#include<>voidmain(){inta,b,c,s,z;printf("Pleaseinputabc:\n");s=a+b+c;printf("%d\n",s);}*4.輸入三角形三條邊的邊長(zhǎng),計(jì)算并輸出三角形的面積。 根據(jù)三條邊的邊長(zhǎng),計(jì)算三角形面積的公式如下:程序如下:#include<>#include<>voidmain(){doublex,y,z,s,dime;scanf("%lf%lf%lf",&x,&y,&z);dime=sqrt(s*(s-x)*(s-y)*(s-z));}解:1.2.3.scanf("%f%f%f",&a,&b,&c);z=a*b*c;printf("%f",z);4.s=(x+y+2)/2;printf("%f",dim);四、編程題1.仿照例,編程序在屏幕上顯示:*****************************MerryChristmas!HappyNewYear!*****************************解:#include<>voidmain(){printf("*****************************\n");printf("MerryChristmas!\n");printf("HappyNewYear!\n");printf("*****************************\n");}2.仿照例編程,輸入一個(gè)整數(shù),計(jì)算這個(gè)數(shù)的平方。解:#include<>voidmain(){inta,z; printf("請(qǐng)輸入一個(gè)整數(shù):\n"); scanf("%d",&a);z=a*a; printf("%d*%d=%d\n",a,a,z);}*3.仿照例編程,輸入兩個(gè)數(shù)后,輸出其中較小值。解:#include<>floatmin(floatx,floaty) {floatm; if(x<y)m=x;elsem=y;returnm; }voidmain(){floata,b,c,mindata; printf("請(qǐng)輸入二個(gè)數(shù):\n"); scanf("%f%f",&a,&b);mindata=min(a,b); printf("較小數(shù):%f\n",mindata); }*4.仿照例編程,輸入a、b后,輸出一元一次方程ax+b=0的解。解:#include<>voidmain(){floata,b,x; printf("請(qǐng)輸入a、b:\n"); scanf("%f%f",&a,&b);x=-a/b; printf("x=%f\n",x);}*5.仿照例編程,輸入圓柱體的半徑和高,計(jì)算并輸出圓柱體的體積。解:#include<>voidmain(){floatr,h,s,v;printf("Pleaseinputrandh:\n");scanf("%f%f",&r,&h);v=*r*r*h;printf("V=%f\n",v);}習(xí)題2一、判斷題1.任何變量都必須要定義其類型。2.C語(yǔ)言的double類型數(shù)據(jù)在其數(shù)值范圍內(nèi)可以表示任何實(shí)數(shù)。3.C語(yǔ)言的任何類型數(shù)據(jù)在計(jì)算機(jī)內(nèi)都是以二進(jìn)制形式存儲(chǔ)的。4.isdigit(‘5’5.printf函數(shù)中格式符“%c”對(duì)應(yīng)的參數(shù)只能是字符類型。6.按格式符“%d”輸出float類型變量時(shí),截?cái)嘈?shù)位取整后輸出。7.在C語(yǔ)言程序中,ABC與abc是兩個(gè)相同的變量。8.scanf函數(shù)中的格式符“%d”不能用于輸入實(shí)型數(shù)據(jù)。9.格式符“%f”不能用于輸入double類型數(shù)據(jù)。10.當(dāng)格式符中指定寬度時(shí),輸出的信息完全取決于所指定的寬度。解:(1)T(2)F(3)T(4)F(5)F(6)F(7)F(8)T(9)T(10)F二、指出下列各項(xiàng)中哪些是C語(yǔ)言中的常量,并指出其類型10,150007–0x3dπ1e0e1o7o8‘x’‘xo’sin(3)0xf16‘\a’‘\00+2‘\\’‘a(chǎn)’+20x100h012810L解:合法的C常量有:整型常量:007–0x3d0xf1610L實(shí)型常量:1e0+2字符型常量:‘x’‘\a’‘\\’三、指出下列各項(xiàng)中哪些是C語(yǔ)言中的用戶標(biāo)識(shí)符x_1X_2Highprintfβ3DSi/je2-e2countIntnumber$23next_sizeofIFsum_12_123#NO1:doublefor解:C的用戶標(biāo)識(shí)符有:x_1X_2Highe2countIntnumbernext_IFsum_12四、單項(xiàng)選擇題1.C語(yǔ)言中,char型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式是()。A.原碼 B.反碼 C.補(bǔ)碼 D.ASCII碼2.若有定義語(yǔ)句“charc='\72';”則變量c()。A.包含1個(gè)字符 B.包含2個(gè)字符C.包含3個(gè)字符D.定義不合法3.C語(yǔ)言中的基本數(shù)據(jù)類型包括()。A.整型、實(shí)型、邏輯型 B.整型、實(shí)型、字符型C.整型、邏輯型、字符型 D.整型、實(shí)型、邏輯型、字符型4.設(shè)c1、c2為字符型變量,執(zhí)行語(yǔ)句“c1=getchar();c2=getchar();”時(shí),從鍵盤(pán)輸入A↙,c1和c2的值分別為()。A.都是‘A’ B.c1是‘A’,c2未輸入C.c1未輸入,c2是‘A’ D.c1是‘A’,c2是‘\n’5.a(chǎn)、b是整型變量,執(zhí)行語(yǔ)句“scanf("a=%d,b=%d",&a,&b);”,使a和b的值分別為1和2,正確的輸入是()。A.12 B.1,2 C.a(chǎn)=1,b=2 D.a(chǎn)=1b=26.設(shè)c為字符型變量值為‘A’,a為整型變量值為97,執(zhí)行語(yǔ)句“putchar(c);putchar(a);”后,輸出結(jié)果為()。A.Aa B.A97 C.A9 D7.已知字母A的ASCII碼值為65,以下語(yǔ)句段的輸出結(jié)果是()。charc1='A',c2='Y';printf("%d,%d\n",c1,c2);A.輸出格式非法,輸出錯(cuò)誤信息 B.65,90C.A,Y D.65,898.若要使用輸入語(yǔ)句“scanf("%4d%4d%10f",&i,&j,&x);”,為i輸入-10,為j輸入12,為x輸入,則正確的輸入形式是()。A.–↙ B.–1012↙C.–.67↙ D.–10,12,↙9.能正確地定義符號(hào)常量的是()。A.#definen=10 B.#definen10C.#definen10;10.在C語(yǔ)言中,int、char、short三種類型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)()。A.由用戶自己定義B.均為2個(gè)字節(jié)C.是任意的D.由機(jī)器字長(zhǎng)決定解:(1)D(2)A(3)B(4)D(5)C(6)A(7)D(8)B(9)B(10)D五、填空題1.charch='$';floatx=;語(yǔ)句“printf("%c%–\\n",ch,x);”的輸出結(jié)果是。解:$\n2.inti=123;floatx=–;語(yǔ)句“printf("i=%5dx=%\n",i,x);”的輸出結(jié)果是。解:i=123x=3.charc='a';inta=65;語(yǔ)句“putchar(c+1);putchar(a);”的輸出結(jié)果是。解:bA4.inta=98;語(yǔ)句“printf(“%d,%c,%o,%x”,a,a+1,a+2,a+3);”的輸出結(jié)果是。解:98,c,144,655.intk;floatf;語(yǔ)句“scanf(“%3d%*4d%6f”,&k,&f);”執(zhí)行時(shí)輸入.43↙則k=,f=。解:k=123f=6.使用pow()函數(shù)時(shí),程序的開(kāi)頭必須寫(xiě)一條預(yù)處理命令:。解:#include<>5.填空題。(1)inti=123,j=45;函數(shù)printf("%d,%d\n",i,j);的輸出結(jié)果是。解:123,45(2)inti=123;floatx=;語(yǔ)句printf("i=%5dx=%7.4f\n",i,x);的輸出結(jié)果是。解:i=123x=(3)floatalfa=60,pi=3習(xí)題3一、根據(jù)下列數(shù)學(xué)式,寫(xiě)出C的算術(shù)表達(dá)式。解:-(a2+b2)×y4的C表達(dá)式:-(a*a+b*b)*pow(y,4)的C表達(dá)式:(sqrt(2)+10*10)/(pow(tan(x),-1)+的C表達(dá)式:sqrt(pow(fabs(sin(x)),)的C表達(dá)式:pow(x,6)-exp(5)的C表達(dá)式:2*a*b+c+d)/(a+2*b-(c+d)/c/d)二、按照要求,寫(xiě)出下列C的表達(dá)式。1.寫(xiě)出int類型變量x為“奇數(shù)”的表達(dá)式。解:x%2==12.Int類型變量x、y、z,寫(xiě)出描述“x或y中有且僅有一個(gè)小于z”的表達(dá)式。解:x<z&&y>=z||x>=z&&y<z3.將double類型變量y保留四位小數(shù)的表達(dá)式。解:(int)(y*10000+/4.為變量s賦值:取變量x的符號(hào),取變量y的絕對(duì)值。解:s=(x>=01:-1)*(y>=0y:-y)5.條件“-5≤x≤3”解:-5<=x&&x<=36.a(chǎn)、b是字符變量,已知a的值為大寫(xiě)字母、b的值為小寫(xiě)字母,寫(xiě)出判斷a、b是否為同一字母(不區(qū)分大小寫(xiě))的邏輯表達(dá)式解:a+32==b或b-a==321:07.int類型變量a、b均為兩位正整數(shù),寫(xiě)出判斷a的個(gè)位數(shù)等于b的十位數(shù)、且b的個(gè)位數(shù)等于a的十位數(shù)的邏輯表達(dá)式。解:a%10==b/10&&a/10==b%108.寫(xiě)出判斷某個(gè)人是否是成年人(年齡大于21),且不是老年人(年齡大于65)的邏輯表達(dá)式。解:y>21&&y<=659.寫(xiě)出取變量a、b、c中最大值的條件表達(dá)式。解:(a>ba:b)>c(a>ba:b):c10.若字符變量ch為小寫(xiě)字母,則將其轉(zhuǎn)換為對(duì)應(yīng)的大寫(xiě)字母。解:ch=ch>='a'&&ch<='z'ch-32:ch三、單項(xiàng)選擇題1.設(shè)intx=3,y=4,z=5;,下列表達(dá)式中值為0的是()。A.'x'&&'y' B. x<=yC.x||y+z&&y–z D. !((x<y)&&!z||1)2.已知x=10,ch='A',y=0;,則表達(dá)式“x>=y&&ch<'B'&&!y”的值是()。A.0 B. 1 C.“假” D.“真3.判斷char型變量c為數(shù)字字符的正確表達(dá)式為()。A.'0'<=c<='9' B.'0'<=c&&c<='9'C.c>='0'||c<='9'D.c>=0&&c<=94.下列運(yùn)算符中,優(yōu)先級(jí)最低的是()。A.: B.&& C.== D.*=5.若有條件表達(dá)式“xa++:b--”,則以下表達(dá)式中()等價(jià)于表達(dá)式x。A.x==0 B.x!=0 C.x==1 D.x!=16.有定義intk=4,a=3,b=2,c=1;,表達(dá)式“k<ak:c<bc:a”的值是()。A.4 B.3 C.2 D7.執(zhí)行下列程序段后,變量a,b,c的值分別是()。intx=10,y=9,a,b,c;a=(--x==y++)--x:++y;b=x++;c=y;A.a(chǎn)=9,b=9,c=9 B.a(chǎn)=8,b=8,c=10C.a(chǎn)=9,b=10,c=9 D.a(chǎn)=1,b=11,c=108.有定義inta=9;,語(yǔ)句“a+=a–=a+a;”執(zhí)行后,變量的值是()。A.18 B.9 C.–18 D.–9.設(shè)x和y均為int型變量,則語(yǔ)句“x+=y;y=x–y;x–=y;”的功能是()。A.把x和y按從小到大排列 B.把x和y按從大到小排列C.無(wú)確定結(jié)果 D.交換x和y中的值10.有定義doublex=1,y;,表達(dá)式“y=x+3/2”的值是(A.1 B.2 C. D11.設(shè)有定義intx;doubley;,則下列表達(dá)式中結(jié)果為整型的是()。A.(int)y+x B.(int)x+yC.int(y+x) D.(double)x+y12.設(shè)有整型變量x,下列說(shuō)法中,錯(cuò)誤的是()。A.“5.0”不是表達(dá)式 B.“x”是表達(dá)式C.“!x”是表達(dá)式 D.“sqrt(x)”是表達(dá)式解:(1)D(2)B(3)B(4)D(5)B(6)D(7)B(8)C(9)D(10)C(11)A(12)A四、填空題。1.設(shè)floatx=,y=;inta=7;,表達(dá)式x+a%3*(int)(x+y)%2/4值為。解:2.設(shè)intx=2,y=3;,執(zhí)行語(yǔ)句“x*=x+y”后x的值為。解:103.設(shè)intx=17,y=5;,執(zhí)行語(yǔ)句“x%=x–y”后x的值為。解:54.設(shè)inta=6,b=4,c=2;,表達(dá)式!(a-b)+c-1&&b-c/2的值為。解:15.設(shè)inta=2,b=4,x,y;,表達(dá)式!(x=a)||(y=b)&&!的值為。解:06.判斷變量a、b是否絕對(duì)值相等而符號(hào)相反的邏輯表達(dá)式為。解:a==-b7.判斷變量a、b中必有且只有一個(gè)為0的邏輯表達(dá)式為。解:a*b==0&&a+b!=08.設(shè)intm=2,n=2,a=1,b=2,c=3;執(zhí)行語(yǔ)句d=(m=a==b)&&(n=b>c);后,m和n的值分別為。解:m為0,n為29.設(shè)inta=2;,表達(dá)式“a%2!=0”的值為解:010.設(shè)charc='y';,表達(dá)式“c>='a'&&c<='z'||c>='A'&&c<='Z'”的值為。解:111.寫(xiě)出與代數(shù)式(x+2)ex+2對(duì)應(yīng)的C表達(dá)式。解:(x+2)*exp(x+2)12.設(shè)inta=2;執(zhí)行語(yǔ)句a=3*5,a*4;后a的值為。解:15五、寫(xiě)出下列程序的輸出結(jié)果。1.#include<>voidmain(){unsignedk,n;scanf("%u",&n);3c.3f解:#include<>voidmain(){doublea,b,s;printf(“請(qǐng)輸入矩形的長(zhǎng),寬\n”);scanf(“%lf,%lf”,&a,&b);s=a*b;printf(“矩形面積=%f\n”,s);}8.已知等差數(shù)列的第一項(xiàng)為a,公差為d,求前n項(xiàng)之和,a、d、n由鍵盤(pán)輸入。解:#include<>voidmain(){inta,d,n,sum;printf(“請(qǐng)輸入等差數(shù)列的首項(xiàng)公差項(xiàng)數(shù)\n”);scanf(“%d%d%d”,&a,&d,&n);sum=a*n+n*(n-1)*d/2;printf(“sum=%d\n”,sum);}9.編寫(xiě)程序,將d天h小時(shí)m分鐘換算成分鐘,輸入d、h、m,輸出換算結(jié)果。解:#include<>voidmain(){intd,h,m,t;printf(“請(qǐng)輸入天小時(shí)分鐘\n”);scanf(“%d%d%d”,&d,&h,&m);t=d*24*60+h*60+m;printf(“%d天%d小時(shí)%d分鐘=%d分鐘\n”,d,h,m,t);}10.編寫(xiě)程序,求出給定半徑r的圓以及內(nèi)接正n邊形的面積,輸出計(jì)算結(jié)果。r和n的值由鍵盤(pán)輸入。解:#include<>#include<>#definePIvoidmain(){doubler,s1,s2;intn;printf(“Inputrn\n”);scanf(“%lf%d”,&r,&n);s1=PI*r*r;s2=n/*r*r*sin(2*PI/n);printf(“圓面積=%f,正內(nèi)接%d邊形面積=%f\n”,s1,s2);}習(xí)題4一、單項(xiàng)選擇題1.下列語(yǔ)句將小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母,其中正確的是()。A.if(ch>='a'&ch<='z')ch=ch-32; B.if(ch>='a'&&ch<='z')ch=ch-32;C.ch=(ch>='a'&&ch<='z')ch-32:''; D.ch=(ch>'a'&&ch<'z')ch-32:ch;2.下列各語(yǔ)句中,能夠?qū)⒆兞縰、s中最大值賦給變量t的是()。A.if(u>s)t=u;t=s; B.t=s;if(u>s)t=u;C.if(u>s)t=s;elset=u D.t=u;if(u>s)t=s;3.假設(shè)變量x、k都已定義,下列語(yǔ)句片段中,無(wú)語(yǔ)法錯(cuò)誤的是()。A.switch(x){casex>=90:putchar('A');casex<60:putchar('E');}B.switch(x){case1+2:k='A';defualt:k='E';case2*4:k='B';}C.switch(x){case2+x:k=x-2;case3*x:k=x+3;default:k=0;}D.switch(x){case:k=*x;case:k=8*x;default:k=0;}*4.與語(yǔ)句while(!s)中的條件等價(jià)的是()。A.s==0 B.s!=0 C.s==1 5.下列語(yǔ)句中,哪一個(gè)可以輸出26個(gè)大寫(xiě)英文字母()。A.for(a='A';a<='Z';printf("%c",++a)); B.for(a='A';a<'Z';a++)printf("%c",a);C.for(a='A';a<='Z';printf("%c",a++)); D.for(a='A';a<'Z';printf("%c",++a));6.判斷下面的while循環(huán)體的執(zhí)行次數(shù)()。i=0;k=10;while(i=8)i=k––;A.8次 B.10次 C.2次 D.無(wú)數(shù)次解:(1)B(2)B(3)B(4)A(5)C(6)D二、寫(xiě)出下列程序的輸出結(jié)果1.#include<>voidmain(){ charx; intn=0,k=0; while((x=getchar())!='#'){ 0cnn.3f40°F3 1In2In3In4In年信息查詢2.元旦是星期幾信息查3.程序結(jié)束\n”);nnprintf(“請(qǐng)輸入年份:\n”);scanf(“%d”,&year);printf(“請(qǐng)選擇功能:\n”);scanf(“%d”,&number);if(number==1){year=legal(year);leapyear(year);}if(number==2){week=judgeweeknumber(year);judgeweekchinese(week);}if(number==3)return;}intlegal(inty){if(y<0)do{printf(“請(qǐng)重新輸入一個(gè)年份:”);scanf(“%d”,&y);}while(y<0);returny;}voidleapyear(inty){if(y%4==0&&y%100!=0||y%400==0)printf(“%d是閏年\n”,y);elseprintf(“%d不是閏年\n”,y);}intjudgeweeknumber(inty){intweek;week=(y+(y-1)/4-(y-1)/100+(y-1)/400)%7;returnweek;}voidjudgeweekchinese(intweek){switch(week){case0:printf(“星期天”);break; case1:printf(“星期一”);break; case2:printf(“星期二”);break; case3:printf(“星期三”);break; case4:printf(“星期四”);break; case5:printf(“星期五”);break; case6:printf(“星期六”);break; }}*14.輸入n、x,計(jì)算xn輸出。要求定義一個(gè)遞歸函數(shù)計(jì)算xn。解:#include<>doublemypow(doublex,intn){doubley=1;if(n>0) return(x*mypow(x,n-1));else if(n<0) return(1/x*mypow(x,n+1)); else return1;}voidmain(){doublex;intn;printf(“請(qǐng)輸入xn:\n”);scanf("%lf%d",&x,&n);printf("%f\n",mypow(x,n));}*15.?dāng)?shù)列的第1、2項(xiàng)為1,此后各項(xiàng)為前兩項(xiàng)之和。編制求數(shù)列中任何一項(xiàng)值的遞歸函數(shù)。解:此數(shù)列為1、1、2、3、5、8、13……。#include<>intf(intn){if(n==1||n==2) return(1);else return(f(n-1)+f(n-2));}voidmain(){intn;while(scanf("%d",&n),n<0);printf("數(shù)列第%d項(xiàng)為:%d",n,f(n));}習(xí)題5一、單項(xiàng)選擇題1.下列能正確定義一維數(shù)組a的語(yǔ)句是()。A.inta(10); B.intn=10,a[n];C.intn;scanf("%d",&n); D.#definen10inta[n]; inta[n];2.若有定義語(yǔ)句“inta[10];”則下列對(duì)a中數(shù)組元素正確引用的是()。A.a(chǎn)[10/2–5] B.a(chǎn)[10] C.a(chǎn)[] D.a(chǎn)(1)3.能對(duì)一維數(shù)組正確初始化的語(yǔ)句是()。A.inta[6]={6*1}; B.inta[6]={1,,,3};C.inta[6]={}; D.inta[6]=(0,0,0);4.以下能正確定義二維數(shù)組的語(yǔ)句為()。A.inta[][]; B.inta[][4]; C.inta[3][]; D.inta[3][4];5.若有數(shù)組定義語(yǔ)句“inta[4][5];”,則對(duì)a中數(shù)組元素的正確引用是()。A.a(chǎn)[4][1] B.a(chǎn)[2,1] C.a(chǎn)[4][5] D.a(chǎn)[4–1][5–5]6.以下能對(duì)二維數(shù)組a進(jìn)行正確初始化的語(yǔ)句為()。A.inta[2][]={{1},{4,5}};B.inta[2][3]={1,2,3,4,5,6,7};C.inta[][]={1,2,3,4,5,6};D.inta[][3]={1,2,3,4,5};7.下列對(duì)字符數(shù)組s的初始化不正確的是()。A.chars[5]="abc"; B.chars[5]={'a','b','c','d','e'};C.chars[5]="abcde"; D.chars[]="abcde";8.下列程序段的運(yùn)行結(jié)果為()。chars[]="ab\0cd";printf("%s",s);A.a(chǎn)b0 B.a(chǎn)b C.Abcd D.a(chǎn)bcd9.下列數(shù)組s中所存放字符串的長(zhǎng)度為()。chars[]="a\128b\\\tcd\xdg\n";A.9 B.10 C.11 D.1810.有數(shù)組定義語(yǔ)句“chara[20];”,則正確的輸入語(yǔ)句為()。A.scanf("%s",&a); B.scanf("%s",a[]);C.gets(a[20]); D.gets(a);11.下面程序執(zhí)行后的正確輸出項(xiàng)是()。#include<>voidswap1(inta[]){intt;t=a[0];a[0]=a[1];a[1]=t;}voidswap2(inta,intb){intt;t=a;a=b;b=t;}voidmain(){intx[2]={1,5};inty[2]={1,5};swap1(x);swap2(y[0],y[1]);printf("x:%d%d\n",x[0],x[1]);printf("y:%d%d\n",y[0],y[1]);}A. x:51 B.x:15 C. x:15 D. y:15 y:51 y:15 y:5112.執(zhí)行下列程序后的輸出結(jié)果是()。#include<>charf(chars[],intn){return(s[n]);}main(){chara[]="ABCD";printf("%c",f(a,2)+1);}A.D B.C C.B D.A13.執(zhí)行下列程序后的輸出結(jié)果是()。#include<>intf(inta[],intn){if(n==0)returna[0];elsereturnf(a,n-1)+a[n];}main(){intx[]={1,3,5,7,9};printf("%d\n",f(x,3));}A.1 B.4 C.9 D.16解:二、填空題1.構(gòu)成數(shù)組的各個(gè)元素必須具有相同的。解:數(shù)據(jù)類型2.若有定義“inta[10]={1,2};”,則數(shù)組元素a[2]的值為。解:03.若有定義“inta[3][4];”,則數(shù)組a行下標(biāo)的上限為,列下標(biāo)的下限為。解:204.C語(yǔ)言程序在執(zhí)行過(guò)程中,不檢查數(shù)組下標(biāo)是否。解:越界5.C語(yǔ)言中,二維數(shù)組元素在內(nèi)存中的存放順序是。解:按行存放6.若有定義“inta[3][4];”,則在數(shù)組元素a[2][2]前有個(gè)元素。解:107.若用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是。解:數(shù)組第一個(gè)元素的地址8.若有定義語(yǔ)句“chars1[]="abc",s2[]={'a','b','c'};”,則數(shù)組s1有個(gè)元素,數(shù)組s2有個(gè)元素。解:43三、寫(xiě)出下列程序的輸出結(jié)果1.#include<>voidmain(){inta[6]={2,3,7,1,9,6},i,j,k,m;for(i=5;i>=0;i--){k=a[5];for(j=4;j>=0;j--)a[j+1]=a[j];a[0]=k;for(m=0;m<6;m++)printf("%2d",a[m]);putchar('\n');}}解:6237199623711962377196233719622371962.#include<>voidmain(){intn[3],i,j,k;for(i=0;i<3;i++)n[i]=0;k=3;for(i=0;i<k;i++)for(j=0;j<k;j++)n[j]+=n[i]+1;for(i=0;i<3;i++)printf("%5d",n[i]);}解:1314173.#include<>voidmain(){inta[6][6],i,j;for(i=1;i<6;i++)for(j=1;j<6;j++)a[i][j]=(i/j)*(j/i);for(i=1;i<6;i++){for(j=1;j<6;j++)printf("%3d",a[i][j]);printf("\n");}}解:10000010000010000010000014.#include<>voidmain(){intx[10];inti,m=1;voidsort(inta[],intn);for(i=0;i<10;i++){m=-m;x[i]=m*i;}sort(x,10);for(i=0;i<10;i++)printf("%3d",x[i]);}voidsort(inta[],intn){inti,j,t;for(i=1;i<10;i++){t=a[i];for(j=i-1;j>=0;j--) if(t>a[j])break;elsea[j+1]=a[j]; a[j+1]=t;}}解:-8-6-4-20135795.#include<>voidmain(){chars1[]="aex",s2[]="dpsy",s[10];inti1,i2,i,flag;i1=i2=i=flag=0;while(1){if(s1[i1]=='\0'){flag=1;break;}if(s2[i2]=='\0'){flag=2;break;}if(s1[i1]<s2[i2])s[i++]=s1[i1++];elses[i++]=s2[i2++];}if(flag==1)while(s2[i2]!='\0')s[i++]=s2[i2++];elsewhile(s1[i1]!='\0')s[i++]=s1[i1++];s[i]='\0';puts(s);}解:adepsxy6.#include<>voidmain(){charh[11];intd[10];inti,n=0,x=1; gets(h);統(tǒng)計(jì)在一個(gè)字符串中各元音字母(a、e、i、o、u)出現(xiàn)的次數(shù)。#include<>voidmain(){chars[80];inti,; printf("inputastring:\n");gets(s); for(i=0;;i++)if() elseif(s[i]=='e'||s[i]=='E')a[1]++; elseif(s[i]=='i'||s[i]=='I')a[2]++; elseif(s[i]=='o'||s[i]=='O')a[3]++; elseif(s[i]=='u'||s[i]=='U')a[4]++; printf("AEIOU\n"); for(i=0;i<5;i++)}解:①a[5]②s[i]!='\0'③s[i]=='a'||s[i]=='A'④printf(“%5d”,i)五、編程題1.在數(shù)組x的10個(gè)數(shù)中求平均值v,找出與v相差最小的數(shù)組元素。解:#include<>#include<>voidmain(){doublex[10],v,d;inti;for(i=0,v=0;i<10;i++){scanf("%lf",&x[i]);v+=x[i];}v=v/10;d=x[0];for(i=1;i<10;i++)if(fabs(d-v)>fabs(x[i]-v))d=x[i];printf("平均值:%-8.2f,與平均值最近元素:%-8.2f\n",v,d);}2.輸入n(n≤20)個(gè)數(shù)放在一維數(shù)組中,找出其中最小的數(shù),將它與數(shù)組最前面的元素交換后輸出這些數(shù)。解:#include<>voidmain(){inti,k,temp,n,a[20];printf("Inputn:\n");scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(k=0,i=1;i<n;i++)if(a[i]<a[k])k=i;temp=a[0];a[0]=a[k];a[k]=temp;for(i=0;i<n;i++)printf("%d",a[i]);}3.輸入一個(gè)字符串,統(tǒng)計(jì)其中數(shù)字字符出現(xiàn)的次數(shù)。解:#include<>voidmain(){chars[80];inti,n=0;gets(s);for(i=0;s[i]!='\0';i++)if(s[i]>='0'&&s[i]<='9')n++;printf("%s中包含%d個(gè)字符\n",s,n);}4.設(shè)有一頭母牛,它每年年初生一頭小母牛。每頭小母牛從第四個(gè)年頭開(kāi)始,每年年初也生一頭小母牛。問(wèn)在第20年時(shí),共有多少頭牛分別輸出從第1年至第20年每年的母牛數(shù)。解:#include<>#defineN20voidmain(){intx[N+1]={1},i;0’0’0’0’0’"Aug.","Sept.","Oct.","Nov.","Dec."};puts(p[m-1]);}voidmain(){intno;printf("請(qǐng)輸入月份(1--12)\n");scanf("%d",&no);if(no>=1&&no<=12)findmonth(no);elseprintf("數(shù)據(jù)輸入錯(cuò)誤!\n");}15.輸入5個(gè)字符串,輸出其中最長(zhǎng)的字符串。解:#include""#include""voidmain(){charstr[5][100],*p[5];inti,k;ame); B.printf("%s",&stu[1].name);C.printf("%s",stu[1].name[0]); D.printf("%s",&stu[1].name[0]);*5.以下程序的輸出結(jié)果是()。#include<>voidmain(){intx=1,y=2,z=3;structaa{inta;int*p;}s[]={4,&x,5,&y,6,&z};structaa*q=s+1;printf("%d\n",*(q–>p)++);}A.1 B.2 C.3 D.6.有以下定義語(yǔ)句:structnode{intn;structnode*next;}x,y,*p=&x,*q=&y;則能將y節(jié)點(diǎn)鏈接到x節(jié)點(diǎn)之前的語(yǔ)句是()。A.=p B.=q C.=p D.=q*7.以下程序的輸出結(jié)果為()。#include<>voidmain(){structnode{intn;structnode*next;}a[4];inti;for(i=0;i<3;i++){(a+i)–>n=i+1;(a+i)->next=a+i+1;}(a+i)->next=a;printf("%d,%d\n",(a[1].next)->n,a[3].next->n);}A.1,2 B.2,1 C.1,3 D.3,8.已建立一單向鏈表,指針變量p1指向鏈表中某一節(jié)點(diǎn),p2指向下一節(jié)點(diǎn),將p2所指節(jié)點(diǎn)從鏈表中刪除并釋放的語(yǔ)句為()。A.p1=p2;free(p2); B.p1–>next=p2–>next;free(p2);C.*=*;free(p2); D.p1=p2–>next;free(p2);9.已建立一單向鏈表,指針變量p1指向鏈表中某一節(jié)點(diǎn),p2指向下一節(jié)點(diǎn);指針變量p指向新申請(qǐng)節(jié)點(diǎn),將p所指節(jié)點(diǎn)插入到鏈表中p1與p2之間的語(yǔ)句為()。A.p–>next=p2;p1–>next=p; B.p1–>next=p;p–>next=p2;C.p=p2;p1–>next=p; D.p1=p;p–>next=p2;10.若要利用下面的程序片段使指針變量p指向一個(gè)整型變量的存儲(chǔ)單元?jiǎng)t括號(hào)中需填入的內(nèi)容是()。int*p;p=()malloc(sizeof(int));A.int B.*int C.&int D.int*解:(1)B(2)C(3)A(4)D(5)B(6)C(7)D(8)B(9)A(10)D二、寫(xiě)出下列程序的輸出結(jié)果1.#include<>structst{intnum;charname[10];intage;}x[3]={{1,"zhang",19},{2,"li",20},{3,"wang",21}},*p=x;voidmain(){printf("%s,%d\n",(p+2)->name,(*p).age);}解:wang,19*2.#include<>#include<>structs{inta[4];char*pa[4];}x,*p=&x;voidmain(){inti;chary[4][8]={"A","AB","ABC","ABCD"};for(i=1;i<4;i++)[i]=y[i];for(i=1;i<4;i++)[i]=strlen[i]);printf("%d,%d,%s\n",[1],++p->a[2],++p->pa[2]);}解:2,4,BC*3.#include<>structks{inta;int*b;}s[4],*p;voidmain(){intn=1,i;for(i=1;i<4;i++){s[i].a=n;s[i].b=&s[i].a;n+=2;}p=&s[0];p++;printf("%d,%d\n",(++p)->a,p->a);}解:3,14.#include<>structs{inta;floatb;char*c;};voidmain(){structsx={19,,"zhang"};structs*px=&x;printf("%d,%.1f,%s\n",,,;printf("%d,%.1f,%s\n",px->a,(*px).b,px->c);printf("%c,%s\n",*px->c-1,&px->c[1]);}解:19,,zhang19,,zhangy,hang三、程序填空題1.已知head指向一個(gè)單向鏈表,鏈表中每個(gè)節(jié)點(diǎn)包含整型數(shù)據(jù)域(data)和指針#include<>structlink{intdata;structlink*next;};voidmain(){structlink*head,*q;structlink*max(structlink*);um=i+1;scanf("%lf",&a[i].x);}for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(a[j].x<a[j+1].x){t=a[j];a[j]=a[j+1];a[j+1]=t;}for(i=0;i<10;i++)printf("%d,%.3f\n",a[i].num,a[i].x);}5.有10個(gè)學(xué)生,每個(gè)學(xué)生的數(shù)據(jù)包括學(xué)號(hào)、姓名、三門(mén)課的成績(jī)。數(shù)據(jù)從鍵盤(pán)輸入,要求打印出每個(gè)學(xué)生的總分、三門(mén)課的總平均成績(jī),以及總分最高的學(xué)生數(shù)據(jù)。解:#include""structstudent{charnum[6];um);scanf("%s",stu[i].name);for(j=0;j<3;j++) scanf("%d",&stu[i].score[j]);}printf(“姓名總分\n”);for(i=0;i<10;i++){sum=0;for(j=0;j<3;j++)sum+=stu[i].score[j];stu[i].avr=sum/;aver+=stu[i].avr;if(sum>max){max=sum;maxi=i;}printf(“%-8s%-7d\n”,stu[i].name,sum);}aver=aver/10;for(i=0;i<10;i++){printf("%8s%10s",stu[i].num,stu[i].name);for(j=0;j<3;j++)printf("%7d",stu[i].score[j]);printf("%6.2f\n",stu[i].avr);}printf("平均成績(jī)是%5.2f\n",aver);printf("最好成績(jī)的學(xué)生是%s,總分是%d\n",stu[maxi].name,max);}6.建立一個(gè)鏈表,每個(gè)結(jié)點(diǎn)包括:學(xué)號(hào)、姓名、性別、年齡。輸入一個(gè)年齡,如果鏈表中的結(jié)點(diǎn)所包含的年齡等于此年齡,將此結(jié)點(diǎn)刪除。解:#include""#defineNULL0#defineLENsizeof(structstudent)structstudent{charnum[6];um,stu[i].name);scanf(“%c%d”,&stu[i].sex,&stu[i].age);sum=0;for(j=0;j<5;j++){scanf(“%f”,&stu[i].score[j]);sum+=stu[i].score[j];}stu[i].aver=sum/5;}for(i=0,j=0;i<n;i++)if(stu[i].sex==’w’)girl[j++]=stu[i];m=j;for(i=0;i<m-1;i++){k=i;for(j=i;j<m;j++)if(girl[j].aver>girl[k].aver)k=j;temp=girl[i];girl[i]=girl[k];girl[k]=temp;}for(i=0;i<m;i++){printf(“%10s%10s”,girl[i].num,girl[i].name);printf(“%2c%3d”,girl[i].sex,girl[i].age);for(j=0;j<5;j++)printf(“%3.0f”,girl[i].score[j]);printf(“%3.0f\n”,girl[i].aver);}}*8.輸入不超過(guò)100個(gè)通訊錄數(shù)據(jù)(姓名、電話號(hào)碼,電話號(hào)碼為7位數(shù)字),要求輸入通訊錄個(gè)數(shù)。將原7位的電話號(hào)碼改為8位,規(guī)則是原來(lái)以2、4開(kāi)頭的號(hào)碼的在前面加一位6,原來(lái)以1、5開(kāi)頭的號(hào)碼的在前面加一位9,其他在原號(hào)碼前面加一位8。輸出處理后的通訊錄數(shù)據(jù)。解:#include<>#defineN100voidmain(){struct{charname[10],tel[9];}addr[N];inti,j,n;printf(“請(qǐng)輸入通訊錄數(shù):”);while(scanf(“%d”,&n),n>100);for(i=0;i<n;i++){scanf(“%s%s”,addr[i].name,addr[i].tel);addr[i].tel[8]='\0';if(*addr[i].tel==’2’||*addr[i].tel==’4’){for(j=6;j>=0;j--)addr[i].tel[j+1]=addr[i].tel[j];addr[i].tel[0]=’6’;}elseif(*addr[i].tel==’1’||*addr[i].tel==’5’){for(j=6;j>=0;j--)addr[i].tel[j+1]=addr[i].tel[j];addr[i].tel[0]=’9’;}else{for(j=6;j>=0;j--)addr[i].tel[j+1]=addr[i].tel[j];addr[i].tel[0]=’8’;}}printf(“新的通訊錄:\n”);for(i=0;i<n;i++)printf(“%10s%10s\n”,addr[i].name,addr[i].tel);}9.在一有序(設(shè)為升序)鏈表中查找某數(shù)(由鍵盤(pán)輸入),如果存在則將它刪除,如果不存在則將它按其大小次序插入到鏈表中。解:#include<>#include<>structlink{intdata;structlink*next;};structling*find(structlink*head,intx){structlink*p,*q,*s;if(head->data==x)head=head->next;elseif(x<head->data){s=(structlink*)malloc(sizeof(structlink));s->data=x;s->next=head;head=s;}else{q=head;p=head->next;while(p!=NULL){if(p->data==x){q->next=p->next;break;}elseif(x<p->data){s=(structlink*)malloc(sizeof(structlink));s->data=x;s->next=p;q->next=s;break;}p=p->next;}if(p==NULL){s=(structlink*)malloc(sizeof(structlink));s->data=x;s->next=NULL;q->next=s;}}returnhead;}*10.輸入一英文句子(以“.”結(jié)束),輸出其中所包含的英文字母,要求用鏈表完成,每一節(jié)點(diǎn)的數(shù)據(jù)成員存放一個(gè)所出現(xiàn)的字母。解:#include<>#include<>structnode{charc;structnode*next;};voidmain(){structnode*head,*p,*q;charstr[81];inti=0;head=NULL;while((str[i]=getchar())!=’.’){if(str[i]>=’A’&&str[i]<=’Z’||str[i]>=’a’&&str[i]<=’z’){p=head;while(p!=NULL)if(p->c==str[i])break;else{q=p;p=p->next;}if(p==NULL){p=(structnode*)malloc(sizeof(structnode));p->c=str[i];p->next=NULL;if(head==NULL)head=p;elseq->next=p;}}i++;}p=head;while(p!=NULL){printf(“%2c”,p->c);p=p->next;}}*11.將一個(gè)鏈表按逆序排列,即將原來(lái)鏈頭當(dāng)作新鏈表的鏈尾,而原鏈尾當(dāng)作鏈頭。解:#include<>structlink{intdata;structlink*next;};structlink*f(struct
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度商鋪?zhàn)赓U合同終止及市場(chǎng)租金指數(shù)掛鉤協(xié)議
- 2025年度股東股份協(xié)議書(shū):智慧城市建設(shè)項(xiàng)目股權(quán)分配及合作協(xié)議
- 自建房安全質(zhì)量監(jiān)督承包協(xié)議書(shū)(2025年度)
- 農(nóng)村自建房建筑工程保險(xiǎn)合同(2025年度)
- 二零二五年度教育機(jī)構(gòu)學(xué)費(fèi)返利合同
- 二零二五年度高端基金份額代持保密協(xié)議書(shū)
- 2025年度磚廠安全生產(chǎn)承包管理合同
- 二零二五年度汽修廠汽車維修技師職業(yè)健康檢查合同
- 2025年度煙草店店鋪轉(zhuǎn)讓與獨(dú)家銷售區(qū)域授權(quán)合同
- 2025年度水平定向鉆施工與施工期環(huán)境保護(hù)合同
- (完整版)數(shù)字電子技術(shù)基礎(chǔ)教案
- 小回溝礦井3.0Mt-a新建工程變更項(xiàng)目環(huán)評(píng)
- 汽車維修合同管理制度
- 2024中交二航局分包合同范本
- 2024年益陽(yáng)醫(yī)學(xué)高等專科學(xué)校單招職業(yè)適應(yīng)性測(cè)試題庫(kù)全面
- 2024年四川電力職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)新版
- (完整)低壓配電柜技術(shù)規(guī)范
- 2024年注冊(cè)安全工程師考試題庫(kù)【含答案】
- 第2課《樹(shù)立科學(xué)的世界觀》第2框《用科學(xué)世界觀指導(dǎo)人生發(fā)展》-【中職專用】《哲學(xué)與人生》同步課堂課件
- 南航航空安全員培訓(xùn)
- 焊接基礎(chǔ)知識(shí):焊接的缺陷及檢驗(yàn)方法
評(píng)論
0/150
提交評(píng)論