



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語言練習(xí)題【第一章例題選編】1、選擇題【例1.1]在計(jì)算機(jī)上可以直接運(yùn)行的程序是( )?A.高級(jí)語言程序B.匯編語言程序C.機(jī)器語言程序D.C語言程序【例1.2】以下敘述中正確的是( )。C語言比其他語言高級(jí)C語言可以不用編譯就能被計(jì)算機(jī)識(shí)別執(zhí)行C語言以接近英語國家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式C語言出現(xiàn)的最晚,所以具有其他語言的一切優(yōu)點(diǎn)TOC\o"1-5"\h\z【例1.3】一個(gè)C語言程序是由( )。A,ー個(gè)主程序和若干子程序組成B,若干函數(shù)組成C.若干過程組成D.若干子程序組成【例1.4】C語言規(guī)定,在ー個(gè)源程序中,main函數(shù)的位置( )。A,必須在最開始B.必須在系統(tǒng)調(diào)用的庫函數(shù)的后面C.可以任意D,必須在最后【例1.5】一個(gè)C程序的執(zhí)行是從( )。A.本程序的main函數(shù)開始,到main函數(shù)結(jié)束B.本程序文件的第一個(gè)函數(shù)開始,到本程序文件的最后一個(gè)函數(shù)結(jié)束C.本程序的main函數(shù)開始,到本程序文件的最后一個(gè)函數(shù)結(jié)束D.本程序文件的第一個(gè)函數(shù)開始,到本程序main函數(shù)結(jié)束【例1.6】以下( )是じ程序的基本結(jié)構(gòu)單位。A.文件B.語句C.函數(shù)D.表達(dá)式【例1.7】以下( )不是C語言的特點(diǎn)。A.運(yùn)算符豐富B,數(shù)據(jù)結(jié)構(gòu)豐富C.可以直接訪問物理地址D.C函數(shù)包含的語句數(shù)目沒有限制【例1.8】下列關(guān)于C語言標(biāo)識(shí)符的敘述中正確的是( )。A.標(biāo)識(shí)符中可以出現(xiàn)ド劃線和中劃線(減號(hào))B,標(biāo)識(shí)符中不可以出現(xiàn)中劃線,但可以出現(xiàn)下劃線C,標(biāo)識(shí)符中可以出現(xiàn)下劃線,但不可以放在標(biāo)識(shí)符的開頭D.標(biāo)識(shí)符中可以出現(xiàn)下劃線和數(shù)字,它們都可以放在標(biāo)識(shí)符的開頭C語言程序設(shè)計(jì)輔導(dǎo)材料6【例1.9】以下幾組選項(xiàng)中,均為不合法標(biāo)識(shí)符的是( )。A.A,P_0,doB.float,laO,AC.b-a,goto,intD._123,temp,INT【例1.10】以下敘述不正確的是( )。ー個(gè)C源程序可由一個(gè)或多個(gè)函數(shù)組成ー個(gè)C源程序必須包含ー個(gè)main函數(shù)C程序的基本結(jié)構(gòu)單位是函數(shù)D.在C程序中,注釋說明只能位于一條語句的后面【例1.11】以下敘述正確的是( )?A.在C程序中,main函數(shù)必須位于程序的最前面C程序的每行中只能寫ー一條語句C語言本身沒有輸入輸出語句D.在對(duì)ー個(gè)C程序進(jìn)行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯(cuò)誤【例1.12]、ー個(gè)C程序的執(zhí)行是從( ).A)本程序的main函數(shù)開始,到main函數(shù)結(jié)束B)本程序文件的第一個(gè)函數(shù)開始,到本程序文件的最后一個(gè)函數(shù)結(jié)束〇本程序的main函數(shù)開始,到本程序最后一個(gè)函數(shù)結(jié)束D)本程序文件的第一個(gè)函數(shù)開始,到本程序main函數(shù)結(jié)束【例1.13]、以下敘述正確的是( )?A)在C程序中,main函數(shù)必須位于程序的最前面C程序的每行中只能寫ー一條語句C語言本身沒有輸入輸出語句D)在對(duì)ー個(gè)C進(jìn)行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯(cuò)誤【例1.14]以下敘述不正確的是( )?ー個(gè)C源程序可由一個(gè)或多個(gè)函數(shù)組成ー個(gè)C源程序必須包含ー個(gè)main函數(shù)C程序的基本組成單位是函數(shù)D)在C程序中,注釋說明只能位于一條語句的后面【例1.15]C語言規(guī)定:在ー個(gè)源程序中,main函數(shù)的位置( )。A)必須在最開始B)必須在系統(tǒng)調(diào)用的庫函數(shù)的后面C)可以任意D)必須在最后【例1.16]ー個(gè)C語言程序是由( )?一個(gè)主程序和若干子程序組成B)函數(shù)組成〇若干過程組成D)若干子程序組成【例1.17]下列說法正確的是( )。A)在執(zhí)行C程序時(shí),不是從main()函數(shù)開始C程序書寫格式限制嚴(yán)格,一行內(nèi)必須寫ー個(gè)語句C程序書寫格式比較自由,ー個(gè)語句可以分寫在多行上D)C程序書寫格式嚴(yán)格,要求一行內(nèi)必須寫ー個(gè)語句,并要有行號(hào)【例1.18]以下并非C語言的特點(diǎn)的是( )?A)C語言簡(jiǎn)潔和緊湊B)能夠編制出功能復(fù)雜的程序〇c語言可以直接對(duì)硬件進(jìn)行操作C語言移植性好2、填空題【例1.12]ー個(gè)C源程序中至少應(yīng)包括ー個(gè)?【例1.13】C程序編譯后生成程序,連接后生成程序?!纠?.14】C語言規(guī)定,標(biāo)識(shí)符只能由 、ー _、 一三種字符組成,而且,第一個(gè)字符必須是ー _或ー【例1.15】程序的3種基本控制結(jié)構(gòu)是結(jié)構(gòu)結(jié)構(gòu)和 結(jié)構(gòu)。【例1.16】C源程序的基本單位是=【例1.17】在ー個(gè)C源程序中,多行注釋部分兩側(cè)的分界符分別為和。【例1.18】在C語言中,輸入操作是由庫函數(shù)完成的,輸出操作是由庫函數(shù)完成的。【例1.19]任何C語句必須以結(jié)束。【第二章例題選編】1,選擇題【例2.1】若x、i、j和k都是int型變量,則計(jì)算下面表達(dá)式后,x的值為x=(i=4j=16,k=32)A.4B.16IC.3)D.52【例2.2]若有代數(shù)式とー,則不正確的C語言表達(dá)式是beA.a/b/c*e*3B,3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*3【例2.3]已知各變量的類型說明如下:intk,a,b;unsignedlongw=5;doublex=1.42;則以下不符合C語法的表達(dá)式是A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)【例2.4】以下選項(xiàng)中不屬于C語言的類型的是〇A.signedshortint B.unsignedlongintC.unsignedint D.longshort【例2.5】下列定義中合法的是。A.shor_a=l-.le-l; B.doubleb=l+5e2.5;C.longdo=0xfdaL; D.float2_end=l-e-3;【例2.6】-8在內(nèi)存中的存儲(chǔ)形式是〇A.1111111111111000 B.1000000000001000C.0000000000001000 D.1111111111110111【例2,7]數(shù)值029是一個(gè)。A.ハ進(jìn)制數(shù) B,十六進(jìn)制數(shù)C.十進(jìn)制數(shù) D.非法數(shù)【例2.8】在C語言中,要求運(yùn)算數(shù)必須是整型的運(yùn)算符是A./B.++C.!=D.%【例2.9】以下符合C語言語法的賦值表達(dá)式是。A.d=9+e+f=d+9 B.d=9+e,f=d+9C.d=9+e,e-H-,d+9 D.d=9-1-e-H-=d+7【例2.10】C語言中,關(guān)于自增自減運(yùn)算符使用正確的是〇A.10++B.(x+y)ー?C.d+~H"d+"H~d++D.++(a-b)【例2,11】設(shè)有intx=ll;則表達(dá)式(x++*1/3)的值是。A.3B.4C.11D.12【例2.12]已知:inti=6,j;則語句j=(++i)+(i++)后的j值是。A.4B.14C.13D.15【例2.13】設(shè)x、y、t均為int型變量,則執(zhí)行語句:x=y=3;t=++x||++y后,y的值為。A.不定值 B.4C.3D.1【例2.14】當(dāng)c的值不為0時(shí),以下能將c的值賦給變量a,b的是。A.c=b=a B.(a=c)||(b=c)C.(a=c)&&(b=c)D.a=c=b【例2.15】已有定義:intx=3,y=4,z=5,則表達(dá)式!(x+y)+z-l&&y+z/2的值是〇A.6B.0C.2D.1【例2.16】下列運(yùn)算符中,哪個(gè)運(yùn)算符的優(yōu)先級(jí)最高〇A.<=B.+C.IID.>=【例2.17】在C語言中,int、char和short三種類型數(shù)據(jù)所占用的內(nèi)存是。A,均為2個(gè)字節(jié) B.由用戶自己定義C,由所用機(jī)器的機(jī)器字長(zhǎng)決定的 D,是任意的【例2.18】若有說明語句:charc='\72';則變量cA.包含1個(gè)字符B.包含2個(gè)字符C,包含3個(gè)字符 D.說明不合法,c的值不確定【例2.19】若有定義:inta=7;floatx=2.5,y=4.7:則表達(dá)式x+a%3*(int)(x+y)%2/4的值是ーA.2.500000B.2.750000C.3.500000D.0.000000【例2.20]設(shè)有說明:charw;intx;floaty;doublez:則表達(dá)式w*x+z-y值的數(shù)據(jù)類型為 A.floatB.charC.intD.double【例2.21】以下程序的執(zhí)行結(jié)果是。#include<stdio.h>voidmain(){inti=2;printf(ll%d,%d\n,\++i,-i);)A.1,IB.2,1C.1,2D.2,2【例2.22】當(dāng)接受用戶輸入的含空格的字符串時(shí),應(yīng)使用的函數(shù)是。A.scanf()B.gets()C.getchar()D.getc()【例2.23】下列敘述中正確的是C語言中既有邏輯類型也有集合類型C語言中沒有邏輯類型但有集合類型C語言中有邏輯類型但沒有集合類型C語言中既沒有邏輯類型也沒有集合類型【例2.24】以下錯(cuò)誤的敘述是。A.在C程序中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低B.在C程序中,APH和aph是兩個(gè)不同的變量C.若a和b類型相同,在計(jì)算了賦值表達(dá)式a=b后b中的值將放入a中,而b中的值不變D.當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對(duì)于整型變量只能輸入整型數(shù)值,對(duì)于實(shí)型變量只能輸入實(shí)型數(shù)值【例2.25]長(zhǎng)整型!ong數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式是A.ASCH碼B.原碼C.反碼D.補(bǔ)碼【例2.26】字符型常量在內(nèi)存中存放的是A.ASCII碼B.BCD碼C,內(nèi)部碼 D-十進(jìn)制碼【例2.27】字符串常量“\\\22a.0\n”的長(zhǎng)度是TOC\o"1-5"\h\zA.8 B.7 C.6 D.5【例2.28】設(shè)intx=l,y=l;表達(dá)式(!x||y—)的值是A.0 B.1 C.2 D.-1【例2.29]已知:intx;則使用逗號(hào)表達(dá)式(x=4*5,x*5),x+25的結(jié)果是,變量x的值為。A.20B.100C.45D,表達(dá)式不合法【例2.30]邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的數(shù)據(jù)類型 。A,只能是〇或1 B.只能是〇或非〇正數(shù)C.可以是整型或字符型數(shù)據(jù) D.可以是任何類型的數(shù)據(jù)【例2.31]以下程序的執(zhí)行結(jié)果是〇#include<stdio.h>voidmain(){printf(“%f\n”,2.5+l*7%2/4);}A.2.500000B.2.750000C.3.375000D.3.000000【例2.32]若給定條件表達(dá)式(M)?(a++):(a-),則其中表達(dá)式(M)A.和(M==0)等價(jià) B.和(M==l)等價(jià)C,和(M!=0)等價(jià)D,和(M!=1)等價(jià)【例2.33】有以下程序:#include<stdio.h>voidmain(){unsignedchara,b,c;a=0x3;b=aI0x8;c=b?l;printf(44%d%d\n”,b,c);}程序運(yùn)行后的輸出結(jié)果是〇A.-1112B.-6-13C.1224D.11222、填空題【例2.34】若有以下定義,則計(jì)算表達(dá)式y(tǒng)+=y-=m*=y后的y值是〇intm=5,尸2;【例2.35]已知intx=6;則執(zhí)行x+=x-=x*x語句后,x的值是〇【例2.36】若w=l,x=2,y=3,z=4,則條件表達(dá)式w>x?w:y<z?y:z的結(jié)果是〇【例2.37]在C語言中,ー個(gè)int型數(shù)據(jù)在內(nèi)存中占2個(gè)字節(jié),則int型數(shù)據(jù)的取值范圍為ー〇【例2.38】要將一個(gè)16位二進(jìn)制的整型變量的高8位清零,只保其留低8位,可用的方法疋〇【例2.39]若X和n均是int型變量,且x和n的初值均為5,則計(jì)算表達(dá)式后x的值為,n的值為。x+=n++【例2.40】已知字母a的ASCII碼為十進(jìn)制數(shù)97,且設(shè)ch為字符型變量,則表達(dá)式ch='a'+'8'-'3'的值為?!纠?.41】假設(shè)m是ー個(gè)三位數(shù),從左到右用a,b,c表示各位的數(shù)字,則從左到右各個(gè)數(shù)字是bac的三位數(shù)的表達(dá)式是?!纠?.42)設(shè)y為int型變量,描述“y是奇數(shù)”的表達(dá)式是?!纠?.43】在scanf()函數(shù)中格式符x用于輸入〇【例2.44】若有定義:inta=2,b=3;floatx=3.5,y=2.5Z則下面表達(dá)式的值為〇(float)(a+b)/2+(int)x%(int)y【例2.45]若有定義:intb=7;floata=2.5,c=4.7;則下面表達(dá)式的值為〇a+(int)(b/3*(int)(a+c)/2)%4【例2.46】若有以下程序:執(zhí)行后的輸出結(jié)果是〇#include<stdio.h>voidmain(){intk=2,i=2,m;m=(k+=i*=k);printfCi%d,%d\n,,,m,i);)【例2.47】有以下程序,輸入123456789,其輸出結(jié)果是〇#include<stdio.h>voidmain(){inta,b;floatf;scanfp%2d%*2d%2d%ド,&a,&b,&f);printff'%d,%d,%f\n”,a,b,f);)【例2.48】以下程序的執(zhí)行結(jié)果是〇#include<stdio.h>voidmain(){inta,b,c;a=b=l;c=a++-l;printf(“%d,%dj,a,c);c+=-a-H-+(++b||-H-c);printf('%d,%d\n”,a,c);}【例2.49】以下程序的執(zhí)行結(jié)果是0#include<stdio.h>voidmain()(inti=10;printf(t<%d,%d,%d,,,i—);}【例2.50】以下程序的執(zhí)行結(jié)果是<#include<stdio.h>voidmain(){inta=-32768,b;b=a-l;printf(<<a=%d,b=%d,\a,b);}【例2.51]以下程序的執(zhí)行結(jié)果是。#include<stdio.h>voidmain(){intx=042,y=067,z;z=(x?2)&(y?3);printfC^d'n'z);)【例2.52】以下程序的執(zhí)行結(jié)果是〇#include<stdio.h>voidmain()(intn=023;printf(t4%d\n,,5—n);}【例2.53】以下程序的執(zhí)行結(jié)果是#include<stdio.h>voidmainQintx=10,y=9;inta,b,c;a=(-x=y++)?-x:+4-y;b=x++;c=y;print隼’%d,%d,%d\n”,a,b,c);【第三章例題選編】1、選擇題【例3.1]以下語句錯(cuò)誤的是A.ifi[x>y); B.if(x=y)&&(x!=O)x+=y;C.if(x!=y)scanf("%d”,&x);eslescanf("%d'',&y); D.if(x<y){x++;y++;}【例3.2】C語言的if語句中,用作判斷的條件表達(dá)式為A.任意表達(dá)式 B.邏輯表達(dá)式 C.關(guān)系表達(dá)式 D.算術(shù)表達(dá)式【例3.3】為了避免在嵌套的條件語句if?else中產(chǎn)生二義性,C語言規(guī)定:else子句總是與配對(duì)。A.縮排位置相同的ifB.同一行上的ifC,其之后最近的if D.其之前最近的if【例3.4】以下程序的輸出結(jié)果是#include<stdio.h>voidmain()(inti=lj=l,k=2;if((j++||k++)&&i++)printfT%d,%d,%d\n”,iJ,k);}A.1,b2 B.2,2,1C,2,2,2 D.2,2,3【例3*5】已知intx=10,戸20,z=30;以下語句執(zhí)行后x,y,z的值是0ifi[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=20【例3.6】以下程序的運(yùn)行結(jié)果是〇#include<stdio.h>voidmain()(intm=5;if(m-H->5)printf(w%d\nv,m);elseprimf("%d\n”,m-?);}A.4 B.5C.6D.7【例3.フ】以下程序的輸出結(jié)果是〇#include<stdio.h>voidmain()|inta=100,x=10,y=20,ok1=5,ok2=0;逆x〈y)if(y!=10)if(!okl)a=l;elseif(ok2)a=10;a=-l;
printfT%d\n”,a);}A.1B.0C.-1 D,值不確定【例3.8]若a,b均是整型變量,正確的switch語句是A.A.switch(a)(case1.0:case2:primf("you\n");)C.switch(a+b){case1:printff'iW');case2*a:printfV'yoiAn");}【例3.9】對(duì)fbr(表達(dá)式1;;表達(dá)式3),A.fbr(表達(dá)式1;0:表達(dá)式3)C.for(表達(dá)式1;1;表達(dá)式3)B.switch(a)(caseb:printf("i\n”);case1:printfi[“you\n'');)D.switch(a+b){printfC'i\n");printf("you\n");)可理解為 B.fbr(表達(dá)式1;表達(dá)式3;表達(dá)式3)D.fbr(表達(dá)式1;表達(dá)式1;表達(dá)式3)【例3.10】執(zhí)行以下程序段后,變量a,b,c的值分別是intx=10,y=9;inta,b,c;a=(-x==y++)?—x:++y;b=x-H-;c=y;A.a=9,b=9,c=9 B.a=8,b=8,c=10C.a=9,b=10,c=9 D.a=l,b=ll,c=10【例3.11】有以下程序段:intn=0,p;do(scnafT%d”,&p);n++;}whilc(p!=12345&&n<3);此處do-while循環(huán)的結(jié)束條件是〇A.p的值不等于12345并且n的值小于3B.的值等于12345并且n的值大于等于3p的值不等于12345或者n的值小于3p的值等于12345或者n的值大于等于3【例3.12】下面程序中循環(huán)體的執(zhí)行次數(shù)是ca=10;b=0;do{b+=2;a?=2+b;}while(a>=0);A.1B.2 C.3D.4【例3.13】以下程序段〇x=-l;do{x=x*x;}while(!x);A,是死循環(huán) B.循環(huán)執(zhí)行二次C,循環(huán)執(zhí)行ー次 D.有語法錯(cuò)誤【例3.14】以下程序的執(zhí)行結(jié)果是#include<stdio.h>voidmain(){inta=0,i;fbr(i=l;i<5;i-H-){switch(i){case0:case3:a+=2;a+=3;default:a+=5;))printf「%d\rr,a);}A.31B.13C.10D.20說明:8+8+10+5=31?!纠?.15】下面程序的運(yùn)行結(jié)果是#include<stdio.h>voidmain()|inty=10;do{y—;}while(—y);printfC%d\n",y-);}A.-1B.1C.8D.0【例3.16】下面程序的功能是輸出以下金字塔圖案的是:*********#include<stdio.h>voidmain()(inti,j;for(i=l;i<=4;i++)for(j=l;j<=4-i;j++)prints");fbr(j=l;j<=;j++)printf(“巧;printfCW");))在下劃線處應(yīng)填入的是A.iB.2*i-lC,2*i+lD.i+2【例3.1フ】下面程序段0fbr(t=1;t<=100;t++){scanf("%d",&x);if(x<0)continue;printfC<%3d,,,t);}A.當(dāng)xvO時(shí)整個(gè)循環(huán)結(jié)束C.printf函數(shù)永遠(yuǎn)也不執(zhí)行【例3.18]若w,x,y,z,m均為int型變量,w=l;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(x<z)?m:z;A.1B.2C.3【例3.19】請(qǐng)讀以下程序:#include<stdio.h>voidmain()(inta=5,b=0,c=0;if(a=b+c)printff***\n");elseprintf("$$$\n”);)以上程序〇A.有語法錯(cuò)誤不能通過編譯C.輸出***【例3.20】下面程序段不是死循環(huán)的是ーinti=100;while(l){i=i%100+1;if(i>100)break;)for(;;);intk=0;B.x>=0時(shí)什么也不做D.最多允許輸出100個(gè)非負(fù)整數(shù)
則執(zhí)行以下語句后的m值是D.4B.可以通過編譯但不能通過連接D.輸出$$$do{++k;}while(k<=0);D.ints=36;while(s); -s;【例3.21】有一堆零件(100到200之間),如果分成4個(gè)零件ー組的若干組,則多2個(gè)零件,若分成7個(gè)零件ー組,則多3個(gè),若分成9個(gè)零件ー組,則多5個(gè)零件,下面程序是求這堆零件總數(shù),請(qǐng)選擇填空。#include<stdio.h>voidmain(){inti;for(i=100;i<200;i-H-)ifl[(i-2)%4==0)if(!((i-3)%7))iR)printfT%d”,i);}A.i%9=5 B,i%9!=5C,(i?5)%9!=0 D.i%9==5【例3.22】下面程序的運(yùn)行結(jié)果是〇#include<stdio.h>voidmain(){inti;fbr(i=l;i<=5;i-H-){iRi%2)printfT*");elsecontinue;printer);}printf("$\n");}A.*#*#*#$ B.#*#*#*$C.*#*#$ D*#*#*$【例3.23】下面程序的運(yùn)行結(jié)果是。#include<stdio.h>voidmain(){intij,x=0;fbr(i=0;i<2;i++)(x++;for(j=0;j<=3j++)ifd%2)continue;XH;}x++;)printf(uux=%d\n,,,x);}A.x=4 B.x=8C.x=6D.x=122、填空題[例3.24]C語言中,break語句只能用于語句和語句中?!纠?.25]當(dāng)a=3,b=2,c=l時(shí)”,表達(dá)式f=a>b>c的值是〇【例3.26]若a=6,b=hc=2,則表達(dá)式!(a?b)+c?l&&b+c/2的值是【例3.27]下列程序計(jì)算2?100的偶數(shù)的累加和,清填空。#include<stdio.h>voidmain()(inti,sum=0;for()sum+=i;printK“sum=%d\n'',sum);}【例3.28]以下程序的輸出結(jié)果是#include<stdio.h>voidmain(){intx=15;while(x>10&&x<50)(x++;if(x/3){x++;break;}elsecontinue;}printf("%d\n'',x);}【例3.29】下面程序段是找出整數(shù)的所有因子,請(qǐng)?zhí)羁?。scanfif"%d",&x);i=l;fbr(;;)(i負(fù)x%i==0)printf(“%3d”,i);i++;【例3.30】下面程序段是從鍵盤輸入的字符中統(tǒng)計(jì)數(shù)字字符的個(gè)數(shù),用換行符結(jié)束循環(huán)。請(qǐng)?zhí)羁?。intn=0,c;c=getchar();while()( )n++;c=getchar();)【例3.31]等差數(shù)列的第一項(xiàng)a=2,公差d=3,下面程序的功能是在前n項(xiàng)和中,輸出能被4整除的所有的和。請(qǐng)?zhí)羁铡?include<stdio.h>voidmain()(inta,d,sum;a=2;d=3;sum=0;do(sum+=a;a+=d;if()printfC'%d\n",sum);}while(sum<200);}【例3.32】請(qǐng)讀程序:#include<stdio.h>voidmain(){intx=l,尸〇,a=0,b=0;switch(x)(switch(y){case〇:a++;break;casel:b++;break;)a++;b++;break;}printff'a=%d,b=%d”,a,b);}上面程序的運(yùn)行結(jié)果是?!纠?.33】以下程序?qū)斎氲末`個(gè)小寫字母,將字母循環(huán)后移5個(gè)位置后輸出‘如‘a(chǎn)'變成‘f‘,‘w'變成?b\請(qǐng)?zhí)羁铡?include<stdio.h>voidmain()|charc;c=getchar();iRc>='a'&&c<=,u5)elseiRc>='v'&&c<=,z,)putchar(c);)【例3.34j下面程序的功能是求出用數(shù)字0至9可以組成多少個(gè)沒有重復(fù)的三位偶數(shù)。請(qǐng)?zhí)羁铡?include<stdio.h>voidmain(){intn,ij,k;n=0;fbr(i=l;i<=9;i+H-)fbr(k=O;k<=8;)if(k!=i)for(j==0;j<=9ij++)if()n-H-;printf(tun=%d\n,,,n);}【例3.35】下面程序的功能是輸出1至100之間每位的乘積大于每位數(shù)的和的數(shù)。請(qǐng)?zhí)羁铡?include<stdio.h>voidmain()(intn,k=l,s=0,m;for(n=l;n<=]00;n++)(k=l;s=0;while()k*=m%10;s+=m%10;【例3.36】下面程序的功能是求1000以內(nèi)的所有完全數(shù)。請(qǐng)?zhí)羁铡?說明:ー個(gè)數(shù)如果恰好等于它的因子之和(除自身外),則稱該數(shù)為完全數(shù),例如:6=1+2+3,6為完全數(shù))#include<stdio.h>voidmain(){inta,i,m;fbr(a=l;a<=!000;a++)(fbr(;i<=a/2;i-H-)if(!(a%i))if(m==a)printfC%4d”,a);}}【例3.37】下面程序的運(yùn)行結(jié)果是#include<stdio.h>voidmain(){inti=l;while(i<=15)iR++i%3!=2)continue;elseprint心%d”,i);printfC'山");)【例3.38】下面程序的運(yùn)行結(jié)果是。#include<stdio.h>voidmain()(inti,j,k=19;while(i=k-l){k=3;if(k%5=0){i++;continue;elseifi[k<5)break;i++;}printf(uti=%d,k=%d\n,,,i,k);)【例3.39】下面程序的運(yùn)行結(jié)果是〇#include<stdio.h>voidmain()(inty,a;y=2;a=l;while(y—!=-l)(do{a*=y;a++;}while(y—);}printf(“%d,%d”,a,y);)【例3.40】以下程序的功能是根據(jù)公式e=l+丄+丄+丄+…求e的近似值,精度要求為!0t1!2!3!請(qǐng)?zhí)羁铡?include<stdio.h>voidmain(){inti;doublee,new;new=1.0;fbr(i=1;;i++){new/=(double)i;e+=new;)printf(tue=%f\n,,,e);}【例3.41】下面程序的功能是打印100以內(nèi)個(gè)位數(shù)為6且能被3整除的所有數(shù)。請(qǐng)?zhí)羁铡?include<stdio.h>voidmain()intij;for(i=O;;i++){j=i*10+6;ig )continue;printfCWj);}}【例3.42】下面程序的功能是計(jì)算100到1000之間有多少個(gè)數(shù)其各位數(shù)字之和是5.請(qǐng)?zhí)羁铡?include<stdio.h>voidmain()(inti,s,k,count=0;fbr(i=100;i<=1000;i++){s=0;k=i;while()(s+=k%10;k=;}ifi(s!=5)elsecount-H-;)printf(tt%d,\count);)【例3.43】下面程序的運(yùn)行結(jié)果是#include<stdio.h>voidmain()(inti=5;do{switch(i%2)(case4:i-break;case6:i--;continue;}i——;i——;printfT%d”,i);}while(i>0);【例3.44】下面程序的功能是計(jì)算ー分?jǐn)?shù)數(shù)列前20項(xiàng)的和:2/1,3/2,5/3,8/5,13/8,...#include<stdio.h>voidmain()floats=0.0;inti,a,b,t;fbr(;i<=20;i-H-)s+=;t=a+b;b=a;a=t;}printf(<4s=%.2f\s);【第四章例題選編】1、選擇題【例4.1I以下有關(guān)C語言中數(shù)組的說法正確的是A.數(shù)組元素的數(shù)據(jù)類型可以不一致B,數(shù)組元素的個(gè)數(shù)可以不確定,允許隨機(jī)變動(dòng)C,可以使用動(dòng)態(tài)內(nèi)存分配技術(shù),定義元素個(gè)數(shù)可變的數(shù)組D,定義一個(gè)數(shù)組后,就確定了它所容納的具有相同數(shù)據(jù)類型元素的個(gè)數(shù)【例4.2]若有說明:inta[][3]={0,0};則下列所述正確的是A.數(shù)組a的每個(gè)元素都可得到初值0;B,二維數(shù)組a的第一維的大小為4;C,數(shù)組a的行數(shù)為2;D.只有元素a⑼⑼和可得到初值0,其余元素均得不到初值【例4.3)以下對(duì)ー維數(shù)組a的正確說明是。A.inta(10); B.intn=10,a[n];C.intn; D.#defineSIZE10scanf("%d”,&n); inta[SIZE];inta[n];【例4,4]若有說明:inta[3][4];則對(duì)a數(shù)組元素的正確引用是A.a[2][4] B.a[l,3]C.a[l+l][0]D.a(2)(l)【例4.5】以下錯(cuò)誤的語句是staticcharword]]=rC','h','i','n','a'};staticcharword[]={"China"};staticcharword]]="China";staticcharword]尸China';【例4.6]下面程序(每行程序前面的數(shù)字表示行號(hào))main()(floata[10]={0.0};inti;fbr(i=0;i<3;scanfT%d”,&a[i]);fbr(i=l;i<10;i-H-)a[0]=a[0]+a[i];printfr%f\iT,a[〇]);)A,沒有錯(cuò)誤 B.第3行有錯(cuò)誤C.第5行有錯(cuò)誤 D.第7行有錯(cuò)誤【例4.7]下面程序的運(yùn)行結(jié)果是〇#include<stdio.h>voidmain()(inta[6],i;fbr(i=l;i<6;i-H-)(a[i]=9*(i-2+4*(i>3))%5;print"4%2dxi]);A.-4 0 4 0 4 B.-4 0 4 0 3C.-4 0 4 4 3 D.-4 0 4 4 0【例4.8】以下對(duì)C語言字符數(shù)組的描述錯(cuò)誤的是A.字符數(shù)組可以存放字符串B.字符數(shù)組中的字符串可以進(jìn)行整體輸入輸出C.可以在賦值語句中通過輸值運(yùn)算符“=”對(duì)字符數(shù)組整體賦值D,字符數(shù)組的下標(biāo)從0開始【例4.9】有下面的程序段chara[3],b[]="China”;a=b;printfp%ゴ,a);則?A,運(yùn)行后將輸出China B.運(yùn)行后將輸出ChC.運(yùn)行后將輸出Chi D?編譯出錯(cuò)【例4.10】判斷字符串si是否大于字符串s2,應(yīng)當(dāng)使用〇A.if(sl>s2) B.ifi(strcmp(sl,s2))C.if(strcmp(s2,s1)>0) D.if(strcmp(s1,s2)>0)【例4.11]已知:charclロ={“abcd”};charc2[]=ra','b','c','d'};則下所述正確的是A.數(shù)組cl和數(shù)組c2等價(jià)B.數(shù)組cl和數(shù)組c2的長(zhǎng)度相同C.數(shù)組cl的長(zhǎng)度大于數(shù)組c2的長(zhǎng)度D,以上都不對(duì)【例4.12】下面程序的運(yùn)行結(jié)果是〇#include<stdio.h>voidmain()charstr[]="SSSWLIA”,c;intk;fbr(k=2;(c=str[k])!=,\O,;k++){switch(c){caseT:++k;break;case'L':continue;default:putchar(c);continue;putchar('*');))A.SSW*B.SW*C.SW*AD.SW【例4.13]已知:charstring1[10]=,,abcde,\string2[10]=,,xyz,,5則下列C語句輸出結(jié)果是.printfi["%d'',strlen(strcpy(string1,string2)));A.3 B.5C.8 D.9【例4.14】有以下程序:#include<stdio.h>#include<string.h>voidmain()(chars卜''\nl23\\";printf("%d,%d\n",strlen(s),sizeof(s));)執(zhí)行后的輸出結(jié)果是A.賦初值的安符串有錯(cuò) B.6,7C.5.6 D.6,6【例4.15】下面程序的功能是將字符串s中所有的字符c刪除。請(qǐng)選擇填空。#include<stdio.h>voidmain()(chars[80];intij;gets(s);fbr(i=j=O;s[i]!='\0';i++)if(s[i]!='c')s[j]='\O';puts(s);}B.s[++j]=s[i]B.s[++j]=s[i]C.s[j]=s[i];j++D-s[j]=s[i]【例4.16】以下程序的輸出結(jié)果是#include<stdio.h>voidmain()(intb⑶[3]={0/20,120,1,2},i,j尸〇;for(i=0;i<3;i-H-)fbrd=l;j<=i;j++)t=t+b皿如]皿;printf(11%d\n,,!t);}A.3 B.4C.1 D.9【例4.17】有如下程序:#include<stdio.h>voidmain()(staticinta[3][3]={{1,2},{3,4},{5,6}},ij,s=0;for(i=0;i<3;i++)fbr(j=O;j<=i;j++)s+=a[i][j];printf(4t%d\n,\s);}該程序的輸出結(jié)果是A.18 B.19C.20 D.21【例4.18】有以下程序#include<stdio.h>voidmain(){inti;fbr(i=0;i<3;i+H-)switch(i){case1:printf("%dH,i);case2:printf("%dH5i);default:print負(fù)"%d",i);})執(zhí)行后輸出結(jié)果是〇A)011122 B)012 C)012020 D)1202、填空題【例4.19]若有定義:staticinta[3][4]={{l,2},{0},{456,8,10}}:則初始化后,a[l][2]=a[2]ri]= ?!纠?.20】在C語言中,二維數(shù)組元素在內(nèi)存中的存放順序是0【例4.21]若二維數(shù)組a有m列,則在前的元素個(gè)數(shù)為?!纠?.22]判斷字符串a(chǎn)和b是否相等,應(yīng)當(dāng)使用=【例4.23】以下程序可求出矩陣a的兩條對(duì)角線上的元素之和,請(qǐng)?zhí)羁铡?include<stdio.h>voidmain()(inta[3][3]={l,3,6,7,9,11,14,15,17},sum1=0,sum2=0,i,j;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i=弓)sum1=suml+a[i][j];for(i=0;i<3;i++)for(;;j")if((i+j尸=2)sum2=sum2+a[i][j];printf(uusuml=%d,sum=%d\n,\suml,sum2);)【例4.24j設(shè)數(shù)組a包括10個(gè)整型元素,下面程序的功能是求出a中各相鄰兩個(gè)元素的和,并將這些和存在數(shù)組b中,按每行3個(gè)元素的形式輸出。請(qǐng)?zhí)羁铡?include<stdio.h>voidmain()(inta口〇],bu〇],i;fbr(i=O;i<10;i++)scanf("%d”,&a[i]);fbr(;i<10;i++)fbr(i=l;i<10;i++){primfT%3d”,b[i]);i出==0)printグザ);})【例4.25】下面程序中的數(shù)組a包括10個(gè)整數(shù)元素,從a中第二個(gè)元素起,分別將后項(xiàng)減前項(xiàng)之差存入數(shù)組b,并按每行3個(gè)元素輸出數(shù)組b,請(qǐng)?zhí)羁铡?include<stdio.h>voidmainQ{inta[10],b[10],i;for(i=0;;i-H-)scanfT%d”,&a[i]);fbr(i=l;;i++)fbr(i=l;i<10;i++)printfT%3d”,b[i]); )printf(“\nツ;【例4.26】以下程序可求出所有的水仙花數(shù),(提示:所謂水仙花數(shù)是指ー個(gè)三位正整數(shù),其各位數(shù)字的立方之和等于該正整數(shù)。例如:407=4*4*4+0*0*0+7*7*7,故407是ー個(gè)水仙花數(shù))請(qǐng)?zhí)羁铡?include<stdio.h>voidmain()intx,y,z,a[8],m,i=O;printff'Thespecialnumbersare(inthearrangeof1000:\n)");fbr(..;m++)fbr(.x=m/100;y=;z=m%10;if(x*l00+y*10+z==x*x*x+y*y*y+z*z*z)i++;fbr(x=0;x<i;x-H-)printfT%6d”,a[x]);}【例4.27】ド面程序的功能是生成并打印某數(shù)列的前20項(xiàng),該數(shù)列第1,2項(xiàng)分別為0和1,以后每個(gè)奇數(shù)編號(hào)的項(xiàng)是前兩項(xiàng)之和,偶數(shù)編號(hào)的項(xiàng)是前兩項(xiàng)差的絕對(duì)值。生成的20個(gè)數(shù)存在ー維數(shù)組x中,并按每行4項(xiàng)的形式輸出,請(qǐng)?zhí)羁铡?include<stdio.h>voidmain()intx[21],i;x[l]=0;x[2]=l;i=3;do{x[i]=_x[i+l]=i=_i±2}while(i<=20);fbr(i=l;i<=20;i++)printfC'%5d”,x[i]);if(i%4==0)printfT'n");【例4.28】下面程序的功能是輸入5個(gè)整數(shù),找出最大數(shù)和最小數(shù)所在的位置,并把二者對(duì)調(diào),然后輸出調(diào)整后的5個(gè)數(shù)。請(qǐng)?zhí)羁铡?include<stdio.h>voidmain()|inta[5],max,min,i,j,k;fbr(i=0;i<5;i-H-)scanfT%d'',&a[i]);min=a[0];fbr(i=l;i<5;i++)if(a[i]<min)(min=a[i];max=a[0];fbr(i=l;i<5;i4-+)if(a[i]>max){max=a[i];printfi[“\nThepositionofminis:%3d\n,,,k);printffへnThepositionofmaxis%3d\n,,j);fbr(i=0;i<5;i-H-)prin氓"%5ザ,a[i]);)【例4.29】下面程序的運(yùn)行結(jié)果是#include<stdio.h>voidmain()]inti,f[10];f[O]=f[l]=l;fbr(i=2;i<10;i++)f[i]=f[i-2]+f[i-l];fbr(i=O;i<10;i++)iRi%4==0)printfTW");printfT%3d”,f[i]);【例4.30】設(shè)數(shù)組a中的元素均為整數(shù),以下程序是求a中偶數(shù)的個(gè)數(shù)和偶數(shù)的平均值。請(qǐng)?zhí)羁铡?include<stdio.h>voidmain()(inta[10]={1,2,3,4,5,6,7,8,9,10};intk,s,i;floatave;fbr(k=s=i=0;i<10;i-H-){if(a[i]%2!=0)s+=;k++;)if(k!=O)(ave=s/k;prin埠%d,%f\n”,k,ave);))【例4.31】當(dāng)從鍵盤輸入18并回車后,下面程序的運(yùn)行結(jié)果是#include<stdio.h>voidmain(){intx,y,i,a[8]j,u;scanfi("%d",&x);y=x;i=0;do{u=y/2;a[i]=y%2;i++;y=u;}while(y>=l);fbr(j=i-l;j>=Oj-)printf("%ザ,a[j]);【例4.32l下面程序的功能是檢查ー個(gè)二維數(shù)組是否對(duì)稱(即:對(duì)所有i和j都有a[i]U]=a[j][i])o請(qǐng)?zhí)羁铡?include<stdio.h>voidmain()(inta[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4};inti,j,fbund=0;fbr(j=0;jv4;j++)fdr(;i<4;i-H-)if(aU][i]!=a[i]U])break;)ififfound)printfCNO");elsepri?氓“YES”);)【例4.33】以下程序是求矩陣a,b的乘積,結(jié)果存入矩陣c中并按矩陣形式輸出。請(qǐng)?zhí)羁铡?include<stdio.h>voidmain()(inta[3][2]={2,-1,-4,03,1};intb[2][2]={7,-9,-8,10);intij,k,s,c[3][2];fbr(i=0;i<3;i++)fbr(j=0J<2;j++){fbr(;k<2;k-H-)s+=;c[i][j]=s;}fbr(i=0;i<3;i-H-)fbr(j=0y<2j-H-)printfT%6d”,c[i][j]);})【例4.34]下面程序的功能是求出矩陣x的上三角元素之積,其中矩陣x的行、列數(shù)和元素值均由鍵盤輸入,請(qǐng)?zhí)羁铡?include<stdio.h>#defineM10voidmainQ(intx[M][M];intn,ij;longs=l;printff'Enterainteger(<=10):\n^^);scanfT%d”,&n);printf(U4Enter%ddataoneachlineforthearrayx\n",n);for()for(j=O;j<n;j-H-)scanf(6t%d,,,&x[i][j]);for(i=0;i<n;i++)for() ,printf「%ld\n”,s);}【例4.35】下面程序的運(yùn)行結(jié)果是#include<stdio.h>voidmain()(chara[2][6]={"Sun”JMoon"};inti,j,len[2];for(i=0;i<2;i++)(for(j=0;j<6;j-H-)if(a[i皿=='\0'){'en[i]=j;break;}printf(<*%6s:%d\n",a[i],len[i]);}}【例4.36】下面程序的運(yùn)行結(jié)果是〇#include<stdio.h>voidmain(){inti=5;charc[6]="abcd";do{c[i]=c[i-l];}while(—i>0);puts(c);【例4.37】下面程序的運(yùn)行結(jié)果是#include<stdio.h>#defineLEN4voidmain()(intj.c;staticcharn[2][LEN+l]={"8980'',"9198''};fbr(j=LEN-l;j>=O;j-)(c=n[O][j]+n[l][j]-2*,O,;n[0][j]=c%10+,0,;)for(j=O;j<=l;j-H-)puts(n[j]);)【例4.38】下面程序的功能是將字符串a(chǎn)中下標(biāo)值為偶數(shù)的元素由小到大排序,其它元素不變。請(qǐng)?zhí)羁铡?include<stdio.h>voidmain(){chara[]=,,labchmfye,,,t;intij;fbr(i=0;i<7;i+=2)fbr(j=i+2j<9;)if< ){t=a[i];a[i]=a[j];a[j]=t;}puts(a);printf(',\n,,);}【例4.39】有十個(gè)字符串,下面程序的功能是在每個(gè)字符串中,找出最大字符按ーー對(duì)應(yīng)的順序存入ー維數(shù)組a中,即第i個(gè)字符串中的最大字符放入a[i]中,輸出每個(gè)字符串中的最大字符。請(qǐng)?zhí)羁铡?include<stdio.h>voidmain()(chars[10][20],a[10];intij;for(i=0;i<10;i++)gets(s[i]);for(i=0;i<10;i++)(a[i]=s[i][〇];for(j=l;s[i][j]!=,\O,;j++)if(a[i]<s[i]U])fbr(i=0;i<10;i++)printfT%d%c”,i,a[i]);)【例4.40]若從鍵盤輸入52,則下面程序的運(yùn)行結(jié)果是#include<stdio.h>voidmain()(inta[8]={6,l2,18,42,44,52,67,94};intlow=0,high=7,mid,fbund=0,x;scanfC%d'',&x);while((low<=high)&&(fbund==0))|mid=(low+high)/2;if(x>a[mid])low=mid+1;elseif(x<a[mid])high=mid-l;else(fbund=l;break;))if(fbund==l)printfi(4tSearchsuccessful!Theindexis%d:\n,,,mid);elseprintfTCan'tsearch!\n^^);)【例4.41】下面程序的運(yùn)行結(jié)果是?#include<stdio.h>voidmain(){charc,s[尸'ABCCDA”;intk;fbr(k=l;(c=s[k])!='\O';k++){switch(c)!case'A':putchar(4%');continue;case'B':++k;break;default:putchar(fc*,);case4C:putchar(fc&,);continue;putchar(fc#');【例4?42]下面程序的運(yùn)行結(jié)果是〇#include<stdio.h>voidmain()(inti=0;chara[]=',abm'\b[]=,,aqid,,,c[10];while(a[i]!='\0,&&b[i]!=,\0,)(i?a[i]>=b[i])c[i]=a[i]-32;elsec[i]=b[i]-32;++i;)c[i]=>\0,;puts(c);)【例4.43】程序填空,以下程序用于統(tǒng)計(jì)字符串中最長(zhǎng)單詞的長(zhǎng)度及其在字符串中的位置,其中單詞全由字母組成。#include<stdio.h>intalph(charc)(ifUc>='a'&&cv='z')||(c>='A'&&c<='Z'))elsevoidmain()(staticcharstring]J={"Iamhappy."};intlen=O,i,length=O,flag=1,p,p1;fbr(i=O;;i++)if(alph(string[i]))if(flag)(pl=i;; /?將取位置標(biāo)記flag置為0?/len-H-;)else/*單詞長(zhǎng)度增ド/else{flag=1;ifi(len>length)/?將最大單詞長(zhǎng)度放入!ength*/(length=len;p=pl;)len=O;}printf("最長(zhǎng)的單詞:M);fbr(i=p;i<p+length;i-H-)printfC%c”,string[i]);printfCW");)【例4.44]有以下程序,執(zhí)行后輸出結(jié)果是〇#include<stdio.h>voidmain(){inta[4][4]={{l,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};inti,j,s=O;fbr(i=0;i<4;i+4-)(for(j=0;j<4y++){if(a[i]U]<0)continue;if(a[i][j]=O)break;s+=a[i][j];})printf("%d\n”,s);)【例4.45】下面程序?qū)⒍S數(shù)組a的行和列元素互換后存到另一個(gè)二維數(shù)組b中,請(qǐng)?zhí)羁铡?include<stdio.h>voidmain()(inta[2][3]={{l,2,3},{4,5,6}};intb[3][2],ij;printf("arraya:\n");fbr(i=O;i<=l;i++)fbrG=O; ;j++)prin氓"%5d”,a[i皿);printfT'n");)printf^arrayb:\n");for(i=O;;i++)(for(j=O;j<=l;j++)prin或"%5d”,b[i]|j]);printff'n");[例4.46]下面程序的運(yùn)行結(jié)果是。#include<stdio.h>voidmain()|inta[6][6],i,j;fbr(i=l;i<6;i++)for(j=ly<6;j-H-)a[i][j]=(ゆ*(j/i);for(i=l;i<6;i++){fbr(j=l;j<6j++)printfT%2d”,a[i][j]);printfT'n");))【例4.47]卜一面程序的功能是從鍵盤上輸入一個(gè)大寫字母,要求按字母的順序打印出3個(gè)相鄰的字母,指定的字母在中間.若指定的字母為Z,則打印YZA;若指定的字母為A則打印ZAB.請(qǐng)?zhí)羁?#include<stdio.h>voidmain(){chara[3],c;inti;c=getchar();a[l]=c;if(c=='Z')a[2]='A';elseif(c=='A')a[O]=Z;elsefbr(i=0;i<3;i++)putchar(a[i]);}【例4.48]下面程序的運(yùn)行結(jié)果是.#include<stdio.h>voidmain(){inti,r;charsl[80]="bus";chars2[80尸b)ok”;fbr(i=r=0;sl[i]!='\0'&&s2[i]!='\〇';i++)iRsl[i]=s2[i])i++;else(r=sl[i]-s2[i];break;)printf("%d",r);}【例4.49]下面程序的運(yùn)行結(jié)果是.#include<stdio.h>voidmain(){inta[9]={0,6,l2,18,42,44,52,67,94};intx=52,i,m,n=9;i=n/2+l;m=n/2;while(m!=0){if(x<a[i]){i=i-m/2-l;m=m/2;}elsei£(x>a[i]){i=i+m/2+l;m=m/2;}elsebreak;}printffTheindexis:%d”,i);)【例4?50]下面程序的運(yùn)行結(jié)果是.#include<stdio.h>voidmain()(chara[]=,,moming,,,t;intij=0;fbr(i=l;i<7;i-H-)if(a[j]<a[i])j=i;t=a[j];a[j]=a[7];a[7]=t;puts(a);)【例4.51]下面程序的功能是將二維數(shù)組a中每個(gè)元素右移一列,最右一列換到最左一列,移后的數(shù)組存到另ー數(shù)組b中,并按矩陣形式輸出b。請(qǐng)?zhí)羁铡?include<stdio.h>voidmain()(inta[2][3]={4,5,6,l,2,3},b[2][3];intij;printffarraya:\n");fbr(i=O;i<=l;i++)fbr(j=lj<3j-H-)fbr(;i++)b[i][0]=a[i][2];printf(uarrayb:\n");fbr(i=0;i〈2;i++)(fbr(j=0J<3;j++)printfT%5d'',b[i皿);)【例4.52】從鍵盤輸入一行句子,統(tǒng)計(jì)其中單詞的個(gè)數(shù),補(bǔ)充程序使之完整。#include<stdio.h>voidmain(){chars[80];inti,num=0;gets(s);while(s[i]!=?\O,)|if((i==O)&&(s[i]!=s())num++;elseif(&&)num-H-;i++;)printf(ttnum=%d,\num);)【例4.53]下列count函數(shù)用于計(jì)算子串substr在母串str中出現(xiàn)的次數(shù)。intcount(char*str,char*substr)(intx,y,z;intnum=0;fbr(x=O;str[x]!=;x-H-)fbr(y=,z=0;substr[z]==str[y];z++,y++)氓subs仇]=='、〇')(num-H-;break;)retum(num);}【例4.54】下面程序的運(yùn)行結(jié)果是。#include<stdio.h>voidmain(){inti,j;staticinta[10]={ };fbr(i=0;i<10;i4-+)for(j=Oy<i;j++)a[i]=a[i]+a[j];for(i=0;i<10;i++)prin氓"%d",a[i]);printf("\n");}【第五章例題選編】1、選擇題【例5.1]變量的指針,其含義是指該變量的A.值B.地址C.名D.ー個(gè)標(biāo)志【例5.2I若有語句int*point,a=4;和point=&a;下面均代表地址的,組選項(xiàng)是〇A.a,point,*&a B.&*a,&a,*pointC.*&point,*point,&aD.&a,&*point,point【例5.3】若已定義a為int型變量,則是對(duì)指針p的正確說明和初始化。A.int*p=a; B.int*p=*a;C.intp=&a; D.int*p=&a;【例5.4]下面判斷正確的是〇char*a="china”;等價(jià)于char*a;*a="china”;charstr[10]={"china”};等價(jià)于charstr[10];strロ={"china"};char'china";等價(jià)于char*s;s=''china”;charc[4]="abc'',d[4]=''abc";等價(jià)于charc[4]=d[4]=''abc";【例5.5】若有以下定義和賦值語句,則對(duì)s數(shù)組的第i行第j列(假設(shè)i,j已正確說明并賦值)元素地址的合法引用為〇ints[2][3]={0},(*p)[3];P=s;A.*(p+i)+j B.*(p[i]+j)C.(p+i)+j D.(*(p+i))U]【例5.6]語句int(*ptr)();的含義是〇ptr是指向ー維數(shù)組的指針變量ptr是指向int型數(shù)據(jù)的指針變量ptr是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)D.ptr是ー個(gè)函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針【例5.7]下面程序段中,for循環(huán)的執(zhí)行次數(shù)是〇char*s="\ta\018bc";for(;*s!=,\0,;s-H-)printf("*");A.9B.5C.6D.7【例5.8]下面程序段的運(yùn)行結(jié)果是〇char*s="abcde”;s+=2;printf("%d,,,s);A.cde B,字符'c'C.字符'c'的地址 D,無確定的輸出結(jié)果【例5.9]有以下程序:#include<stdio.h>voidmain()chara,b,c,*d;a=,\';b=,\xbc,;c='\xab';d="\017";printf("%c%c%c%c\n,,,a,b,c,*d);編譯時(shí)出現(xiàn)錯(cuò)誤,以下所述中正確的是。A.程序中只有a=’ヽ’;語句錯(cuò)誤 B.b='\xbc';語句錯(cuò)誤C.d='へ017”;語句錯(cuò)誤 D.a='ヽ’;和c='\xbc';語句錯(cuò)誤【例5.10】以下合法的定義是。A.staticstr[]={"china"}; B.char*p="china";C.char*p;strcpy(p,"china");D.charstr[13];str[尸'china";【例5.11]若有定義:inta[4][6];則能正確表示a數(shù)組中任一元素此處0Wi<4,0<j<6)地址的表達(dá)式是〇A.&a[0][0]+6*i+j B.&a[0][0]+4*j+iC.&a[0][0]+4*i+j D.&a[0][0]+6*j+i【例5.12】若有以下定義,則數(shù)值不為3的表達(dá)式是.intx[10]={0,1,23,4,5,6,7,8,9},*p1;A.x[3] B.pl=x+3,*pl++C.pl=x+2,*(pl++) D.pl=x+2,*++pl【例5.13]若有以下說明:int(*p)[3];則以下是正確的敘述.p是ー個(gè)指針數(shù)組p是ー個(gè)指針,它只能指向ー個(gè)每行包含3個(gè)int類型元素的二維數(shù)組p是ー個(gè)指針,它可以指向一個(gè)一維數(shù)組中的任一元素(*p)[3]與?p[3]等價(jià)【例5.14】若有說明語句:intx[3][4];則以下關(guān)于x,*x,x⑼,&x⑼[0]的正確描述是。A.x,*x,x[〇],&x[〇][〇]均表示元素x[〇][〇]的地址B.只冇x,x[0],&x[〇][〇]表示的是元素x[〇][〇]的地址C,只有x[〇]和&x[〇][〇]表示的是元素x[〇][〇]的地址D.只有&x[〇][〇]表示的是元素x[〇][〇]的地址【例5.15】若有以下說明語句:staticinti,a[2][3]={I,3,5,7,9,11};intm,n;且OWmWl,0WnW2,則是對(duì)數(shù)組元素的正確引用。A.a[m]+n B.*(a+5)C.*(*(a+m>4-3) D.*(*(a+m)+n)【例5.16】以下程序運(yùn)行的結(jié)果是。#include<stdio.h>voidabc(char*p)inti,j;for(i=j=0;*(p+i)!='\〇';i++)if(*(p+i)>='d')(*(p+j)=*(P+i);j++;}*(P+j尸、〇';voidmain()charstr[]=,,cdalbM;abc(str);puts(str);)A.dalbB.cdC.dlD.c【例5.17】下面程序的運(yùn)行結(jié)果是。#include<stdio.h>voidmain(){intx[5]={2,4,6,8,10},*p,**pp;p=x;PP=&P;printfC6%d,,,*(p++));printf(u%d\n,,,**pp);)A.44B.2 4C.2 2D.4 6【例5.18】閱讀以下程序:#include<stdio.h>voidmain(){inta[l0]={2,4,6,8,10,12,14,16,18,20},*p;p=a;printfCt%x\n,\p);printf("%x\n”,p+9);)若第一個(gè)printf語句輸出的是ffca,則第二個(gè)printf語句輸出的是A.ffddB.ffdcC.ffdeD.ffcd【例5.19】以下程序運(yùn)行的結(jié)果是〇#include<stdio.h>#include<string.h>voidmain(){char*p1,*p2,str[50]="abc'】st[50]="abc”;pl=st;p24abc”;strcpy(str+1,strcat(p1,p2));printH"%s\n”,str);}A.abcabcabcB.bcabcabcC.aabcabcD.cabcabc【例5.20】以下程序運(yùn)行的結(jié)果是〇#include<stdio.h>sub(intx,inty,int*z)*z=y-x;voidmain(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printfr%4d,%4d,%4d\n”,a,b,c);}A.5,2,3B.-5,-12,-7C.-5, -12,7D.5,-2,-7【例5.21]執(zhí)行以下程序后,a的值為【1] ,b的值為3#include<stdio.h>voidmain(){inta,b,k=4,m=6,*p1=&k,*p2=&m;a=pl==&m;b=(-*pl)/(*p2)+7;print出“a=%d\n”,a);printfTb=%d\n”,b);}[1] A.-1 B. 1 C.0 D.4[2] A.5 B. 6 C.7 D.10【例5.22]下面程序的運(yùn)行結(jié)果是〇#include<stdio.h>voidmain(){intb,a=28;chars[10],*p;p=s;do{b=a%16;iRbvlO)*p=b+48;else*p=b+55;P-H-;a=a/5;}while(a>0);*p=ヘ〇';puts(s);}10B.2C.C51D.\0【例5.23】下面程序的運(yùn)行結(jié)果是.#include<stdio.h>voidmain()staticchara[ド''Language",%]="programe";char*pl,*p2;intk;pl=a;p2=b;fbr(k=O;k<=7;k++)ifi(*(pl+k尸=*(p2+k))printfT%c”,*(pl+k));A.gaeB.gaC.LanguageD,有語法錯(cuò)誤【例5.24】以下程序中調(diào)用scanf函數(shù)給變量a輸入數(shù)值的方法是錯(cuò)誤,其錯(cuò)誤原因是voidmain()int*p,*q,a,b;p=&a;printf(fckinputa:");scanf{tt%d,,,*p);A.*p表示的是指針變量p的地址*p表示的是變量a的值,而不是變量a的地址*p表示的是指針變量p的值D.?p只能用來說明p是ー個(gè)指針變量【例5.25]以下程序運(yùn)行的結(jié)果是〇#include<stdio.h>voidmain(){inta[]={2,4,6,8,10},y=l,x,*p;P=&a[l];fbr(x=0;x<3;x-H-)y+=*(p+x);printfT%d\n”,y);}A.17 B.1819 D.20【例5.26】有如下程序:#include<stdio.h>voidmain()charch[2][5]={tu6937","8254"},*p[2];inti,j,s=0;
fbr(i=0;i<2;i++)p[i]=ch[i];fbr(i=0;i〈2;i++)fbr(j=O;p[i皿!ゴ、〇';j+=2)s=10*s-Fp[i][j]-,0,;printf("%d\n”,s);)該程序的輸出結(jié)果是〇A.69825 B.6
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西農(nóng)業(yè)大學(xué)《轉(zhuǎn)化醫(yī)學(xué)與創(chuàng)新藥物》2023-2024學(xué)年第一學(xué)期期末試卷
- 江西工業(yè)職業(yè)技術(shù)學(xué)院《MoneyandBanking》2023-2024學(xué)年第二學(xué)期期末試卷
- 衢州職業(yè)技術(shù)學(xué)院《中醫(yī)養(yǎng)生創(chuàng)新創(chuàng)業(yè)指導(dǎo)》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海市楊浦區(qū)重點(diǎn)中學(xué)2024-2025學(xué)年初三物理試題復(fù)習(xí)第三套試卷含解析
- 山西省臨汾市古縣素養(yǎng)測(cè)評(píng)2025屆小升初數(shù)學(xué)檢測(cè)卷含解析
- 山東省高密市銀鷹文昌中學(xué)2024-2025學(xué)年中考化學(xué)試題命題比賽模擬試卷(29)含解析
- 2025年應(yīng)用語言學(xué)專業(yè)研究生考試試題及答案
- 2025年數(shù)據(jù)庫管理專業(yè)考題及答案
- 2025年市場(chǎng)營(yíng)銷專業(yè)知識(shí)測(cè)試題及答案
- 漯河市重點(diǎn)中學(xué)2025屆高三下學(xué)期第五次月考物理試題試卷含解析
- 生物技術(shù)與生物醫(yī)藥產(chǎn)業(yè)發(fā)展趨勢(shì)分析
- 工程第一次監(jiān)理例會(huì)會(huì)議紀(jì)要
- DBJ-T13-200-2025 福建省樁基礎(chǔ)與地下結(jié)構(gòu)防腐蝕技術(shù)標(biāo)準(zhǔn)
- 外研版(三起)(2024)三年級(jí)下冊(cè)英語Unit 1 單元測(cè)試卷(含答案)
- 2025年保安證考試題及答案南京
- (完整)高一生物必修1一二單元測(cè)試題
- 馬克思主義宗教觀課件
- 果汁飲料營(yíng)銷策劃方案
- 全球科研倫理的國際共識(shí)-深度研究
- 拜訪醫(yī)院客戶流程
- 擬南芥ABCB19蛋白外排油菜素甾醇的分子機(jī)理
評(píng)論
0/150
提交評(píng)論