版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
程序設(shè)計(jì)與C語(yǔ)言1.1選擇題考點(diǎn):標(biāo)識(shí)符的命名規(guī)則只能由字母、數(shù)字、下劃線(xiàn)構(gòu)成數(shù)字不能作為標(biāo)識(shí)符的開(kāi)頭關(guān)鍵字不能作為標(biāo)識(shí)符選項(xiàng)A中的“-”,選項(xiàng)B中“[”與“]”不滿(mǎn)足(1);選項(xiàng)D中的int為關(guān)鍵字,不滿(mǎn)足(3)1.下列正確的標(biāo)識(shí)符是(C)。A.-a1B.a[i]C.a2_iD.intt2.下列C語(yǔ)言用戶(hù)標(biāo)識(shí)符中合法的是(B)。A)3axB)xC)caseD)-e2E)union選項(xiàng)A中的標(biāo)識(shí)符以數(shù)字開(kāi)頭不滿(mǎn)足(2);選項(xiàng)C,E均為為關(guān)鍵字,不滿(mǎn)足(3);選項(xiàng)D中的“-”不滿(mǎn)足(1);3.下列四組選項(xiàng)中,正確的C語(yǔ)言標(biāo)識(shí)符是(C)。A)%xB)a+bC)a123D)123選項(xiàng)A中的“%”,選項(xiàng)B中“+”不滿(mǎn)足(1);選項(xiàng)D中的標(biāo)識(shí)符以數(shù)字開(kāi)頭不滿(mǎn)足(2)4.下列四組字符串中都可以用作C語(yǔ)言程序中的標(biāo)識(shí)符的是(A)。A、print_3ddb8aBcB、I\amone_halfstart$it3paiC、str_1CpppowwhileD、PxqMy->bookline#His.age選項(xiàng)B中的“\”,”$”,選項(xiàng)D中“>”,”#”,”.”,”-”不滿(mǎn)足(1);選項(xiàng)C中的while為關(guān)鍵字,不滿(mǎn)足(3)知識(shí)點(diǎn):簡(jiǎn)單C語(yǔ)言程序的構(gòu)成和格式5.在一個(gè)C程序中___B___。A、main函數(shù)必須出現(xiàn)在所有函數(shù)之前B、main函數(shù)可以在任何地方出現(xiàn)C、main函數(shù)必須出現(xiàn)在所有函數(shù)之后D、main函數(shù)必須出現(xiàn)在固定位置6.以下說(shuō)法中正確的是__D____。A、#define和printf都是C語(yǔ)句B、#define是C語(yǔ)句,而printf不是C、printf是C語(yǔ)句,但#define不是D、#define和printf都不是C語(yǔ)句7.一個(gè)C程序的執(zhí)行是從(A)。A本程序的main函數(shù)開(kāi)始,到main函數(shù)結(jié)束B(niǎo)本程序文件的第一個(gè)函數(shù)開(kāi)始,到本程序文件的最后一個(gè)函數(shù)結(jié)束C本程序的main函數(shù)開(kāi)始,到本程序文件的最后一個(gè)函數(shù)結(jié)束D本程序文件的第一個(gè)函數(shù)開(kāi)始,到本程序main函數(shù)結(jié)束8.在C語(yǔ)言中,每個(gè)語(yǔ)句必須以(D)結(jié)束。A.回車(chē)符B.冒號(hào)C.逗號(hào)D.分號(hào)9.C語(yǔ)言規(guī)定:在一個(gè)源程序中,main函數(shù)的位置(C)。A.必須在最開(kāi)始B.必須在系統(tǒng)調(diào)用的庫(kù)函數(shù)的后面C.可以任意D.必須在最后10.一個(gè)C語(yǔ)言程序是由(B)。A.一個(gè)主程序和若干子程序組成B.函數(shù)組成C.若干過(guò)程組成D.若干子程序組成11.下列說(shuō)法中錯(cuò)誤的是(D)。A.主函數(shù)可以分為兩個(gè)部分:主函數(shù)說(shuō)明部分和主函數(shù)體B.主函數(shù)可以調(diào)用任何非主函數(shù)的其他函數(shù)C.任何非主函數(shù)可以調(diào)用其他任何非主函數(shù)D.程序可以從任何非主函數(shù)開(kāi)始執(zhí)行12.用C語(yǔ)言編寫(xiě)的源文件經(jīng)過(guò)編譯,若沒(méi)有產(chǎn)生編譯錯(cuò)誤,則系統(tǒng)將(C)。A.生成可執(zhí)行目標(biāo)文件B.生成目標(biāo)文件C.輸出運(yùn)行結(jié)果D.自動(dòng)保存源文件1.2填空題1、C語(yǔ)言只有32個(gè)關(guān)鍵字和9種控制語(yǔ)句。2、每個(gè)源程序有且只有一個(gè)main函數(shù),系統(tǒng)總是從該函數(shù)開(kāi)始執(zhí)行C語(yǔ)言程序。3、C語(yǔ)言程序的注釋可以出現(xiàn)在程序中的任何地方,它總是以\*符號(hào)作為開(kāi)始標(biāo)記,以*/符號(hào)作為結(jié)束標(biāo)記。4、C語(yǔ)言中,輸入操作是由庫(kù)函數(shù)scanf完成的,輸出操作是由庫(kù)函數(shù)printf完成的。5、系統(tǒng)默認(rèn)的C語(yǔ)言源程序文件的擴(kuò)展名是.c,經(jīng)過(guò)編譯后生成的目標(biāo)文件的擴(kuò)展名是.obj,經(jīng)過(guò)連接后生成的可執(zhí)行文件的擴(kuò)展名是.exe。6、C語(yǔ)言的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線(xiàn)三種字符組成。
intk=17;printf("%d,%o,%x\n",k,k,k);}A、17,021,0x11B、17,17,17C、17,0x11,021D、17,21,1132.下面程序的輸出是__C____。main(){unsigneda=32768;printf("a=%d\n",a);}A、a=32768B、a=32767C、a=-32768D、a=-133.在C語(yǔ)言中,合法的長(zhǎng)整型常數(shù)是___A___。A、0LB、4962710C、324562&D、216D34.C語(yǔ)言中運(yùn)算對(duì)象必須是整型的運(yùn)算符是__A____。A、%=B、/C、=D、<=35.以下選項(xiàng)中不屬于C語(yǔ)言的類(lèi)型名稱(chēng)是___D___。A、signedshortintB、unsignedlongintC、unsignedintD、longshort36.有以下程序main(){intm=0256,n=256;printf("%o%o\n",m,n);}程序運(yùn)行后的輸出結(jié)果是___C___。A、02560400B、0256256C、256400D、40040037.若執(zhí)下面程序時(shí)從鍵盤(pán)上輸入5,main(){intx;scanf("%d",&x);if(x++>5)printf("%d\n",x);elseprintf("%d\n",x--);}則輸出是__B____。A、7B、6C、5D、438.有以下程序main(){chara1='M',a2='m';printf("%c\n",(a1,a2));}以下敘述中正確的是___B___。A、程序輸出大寫(xiě)字母MB、程序輸出小寫(xiě)字母mC、格式說(shuō)明符不足,編譯出錯(cuò)D、程序運(yùn)行時(shí)產(chǎn)生出錯(cuò)信息39.以下程序的輸出結(jié)果是__B____。main(){inta;printf("%d\n",(a=3*5,a*4,a+5));}A、65B、20C、15D、1040.設(shè)有如下程序段intx=2002,y=2003;printf("%d\n",(x,y));則以下敘述中正確的是__D____。A、輸出語(yǔ)句中格式說(shuō)明符的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),不能正確輸出B、運(yùn)行時(shí)產(chǎn)生錯(cuò)誤信息C、輸出值為2002D、輸出值為200341有以下程序main(){intx,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序運(yùn)行后的輸出結(jié)果是___C___。A、2,3,3B、2,3,2C、2,3,1D、2,2,142.設(shè)有以下定義inta=0;doubleb=1.25;charc='A';#defined2則下面語(yǔ)句中錯(cuò)誤的是__D____。A、a++;B、b++;C、c++;D、d++;43.以下程序的輸出結(jié)果是___D___。main(){intx=10,y=10;printf("%d%d\n",x--,--y);}A、1010B、99C、910D、10944.若x和y都是int型變量,x=100、y=200,且有下面的程序片段printf("%d",(x,y));上面程序片段的輸出結(jié)果是___A___。A、200B、100C、100200D、輸則格式符不夠,輸出不確定的值45.設(shè)有如下定義:intx=10,y=3,z;則語(yǔ)句printf("%d\n",z=(x%y,x/y));的輸出結(jié)果是___D___。A、1B、0C、4D、346.兩次運(yùn)行下面的程序,如果從鍵盤(pán)上分別輸入6和4,則輸出結(jié)果是___A___。main(){intx;scanf("%d",&x);if(x++>5)printf("%d",x);elseprintf("%d\n",x--);}A、7和5B、6和3C、7和D、6和447.若t為double類(lèi)型,表達(dá)式t=1,t+5,t++的值是___D___。A、1B、6.0C、2.0D、1.048.以下程序的輸出結(jié)果是__A____。#include<stdio.h>main(){inti=10,j=10;printf("%d,%d\n",++i,j--);}A、11,10B、9,10C、010,9D、10,949.有以下程序main(){inty=10;while(y--);printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是__B___。A、y=0B、y=-1C、y=1D、while構(gòu)成無(wú)限循環(huán)50.下列程序的輸出結(jié)果是(B)。main(){inta=7,b=5;printf("%d\n",b=b/a);}A、5B、1C、0D、不確定值51.以下選項(xiàng)中,不正確的C語(yǔ)言浮點(diǎn)型常量是(C)。A.160B.0.12C.2e4.2D.0.052.以下選項(xiàng)中,(D)是不正確的C語(yǔ)言字符型常量。A.'a'B.'\x41'C.'\101'D."a"53.在C語(yǔ)言中,字符型數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中,以字符的(C)形式存儲(chǔ)。A.原碼B.反碼C.ASCII碼D.BCD碼54.若x、i、j和k都是int型變量,則計(jì)算下面表達(dá)式后,x的值是(C)。x=(i=4,j=16,k=32)A.4B.16C.32D.5255.算術(shù)運(yùn)算符、賦值運(yùn)算符和關(guān)系運(yùn)算符的運(yùn)算優(yōu)先級(jí)按從高到低依次為(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)算56.若有代數(shù)式,則不正確的C語(yǔ)言表達(dá)式是(C)。A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*357.表達(dá)式!x||a==b等效于(D)。A.!((x||a)==b)B.!(x||y)==bC.!(x||(a==b))D.(!x)||(a==b)58.設(shè)整型變量m,n,a,b,c,d均為1,執(zhí)行(m=a>b)&&(n=c>d)后,m,n的值是(A)。A.0,0B.0,1C.1,0D.1,159.設(shè)有語(yǔ)句inta=3;,則執(zhí)行了語(yǔ)句a+=a-=a*=a;后,變量a的值是(B)。A.3B.0C.9D.-1260.在以下一組運(yùn)算符中,優(yōu)先級(jí)最低的運(yùn)算符是(D)。A.*B.!=C.+D.=61.設(shè)整型變量i值為2,表達(dá)式(++i)+(++i)+(++i)的結(jié)果是(B)。A.6B.12C.15D.表達(dá)式出錯(cuò)62.若已定義x和y為double類(lèi)型,則表達(dá)式x=1,y=x+3/2的值是(C)。A.1B.2C.2.0D.2.563.sizeof(double)的結(jié)果值是(A)。A.8B.4C.2D.出錯(cuò)64.設(shè)a=1,b=2,c=3,d=4,則表達(dá)式:a<b?a:c<d?a:d的結(jié)果為(D)。A.4B.3C.2D.165.設(shè)a為整型變量,不能正確表達(dá)數(shù)學(xué)關(guān)系:10<a<15的C語(yǔ)言表達(dá)式是(A)。A.10<a<15B.a==11||a==12||a==13||a==14C.a>10&&a<15D.!(a<=10)&&!(a>=15)66.設(shè)f是實(shí)型變量,下列表達(dá)式中不是逗號(hào)表達(dá)式的是(D)。A.f=3.2,1.0B.f>0,f<10C.f=2.0,f>0D.f=(3.2,1.0)67.表達(dá)式18/4*sqrt(4.0)/8值的數(shù)據(jù)類(lèi)型是(C)。A.intB.floatC.doubleD.不確定68.已知字母A的ASCII碼為十進(jìn)制數(shù)65,且c2為字符型,則執(zhí)行語(yǔ)句C2=’A’+’6’-‘3’;后c2中的值是(A)。A.DB.68C.不確定的值D.C69.以下用戶(hù)標(biāo)識(shí)符中,合法的是(B)。A.intB.nitC.123D.a+b70.C語(yǔ)言中,要求運(yùn)算對(duì)象只能為整數(shù)的運(yùn)算符是(A)。A.%B./C.>D.*71.若有說(shuō)明語(yǔ)句:charc='\72';則變量c在內(nèi)存占用的字節(jié)數(shù)是(A)。A.1B.2C.3D.472.字符串"ABC"在內(nèi)存占用的字節(jié)數(shù)是(B)。A.3B.4C.6D.873.要為字符型變量a賦初值,下列語(yǔ)句中哪一個(gè)是正確的(B)。A.chara="3";B.chara=’3’;C.chara=%;D.chara=*;74.下列不正確的轉(zhuǎn)義字符是(C)。A.\\B.\'C.074D.\02.2填空題1、C語(yǔ)言中的邏輯值“真”是用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。6、求解賦值表達(dá)式a=(b=10)%(c=6),表達(dá)式值、a、b、c的值依次為4,4,10,6。7、求解逗號(hào)表達(dá)式x=a=3,6*a后,表達(dá)式值、x、a的值依次為18,3,3。8、數(shù)學(xué)式a/(b*c)的C語(yǔ)言表達(dá)式a/b/c。9、若有語(yǔ)句inti=-19,j=i%4;printf("%d\n",j);則輸出結(jié)果是______。答案:-310、設(shè)y是int型變量,請(qǐng)寫(xiě)出判斷y為奇數(shù)的關(guān)系表達(dá)式_y%2_____。CH3順序程序設(shè)計(jì)3.1選擇題1.如果inta=3,b=4;則條件表達(dá)式"a<b?a:b"的值是__A__。A)3B)4C表達(dá)式1?表達(dá)式2:表達(dá)式3先計(jì)算表達(dá)式1,若表達(dá)式1成立,則選擇計(jì)算表達(dá)式2,并表達(dá)式2的值作為整個(gè)大表達(dá)式的值;若表達(dá)式1不成立,則選擇計(jì)算表達(dá)式3,并將表達(dá)式3的值作為整個(gè)大表達(dá)式的值此題中的a<b相當(dāng)于表達(dá)式1,a相當(dāng)于表達(dá)式2,b相當(dāng)于表達(dá)式3.a為3,b為4。a<b表達(dá)式1成立,因此計(jì)算表達(dá)式2,并將表達(dá)式2的值即a中的值,并作為整個(gè)表達(dá)式的值,因此整個(gè)表達(dá)式的值為32.若intx=2,y=3,z=4則表達(dá)式x<z?y:z的結(jié)果是(B).A)4B)3C)2D)0E)13.C語(yǔ)言中,關(guān)系表達(dá)式和邏輯表達(dá)式的值是(B)。 A)0B)0或1C)1D)‘T’4.下面(D)表達(dá)式的值為4.
A)11/3
B)11.0/3
C)(float)11/3
D)(int)(11.0/3+0.5)(1)相同數(shù)據(jù)類(lèi)型的元素進(jìn)行數(shù)學(xué)運(yùn)算(+、-、*、/)得到結(jié)果還保持原數(shù)據(jù)類(lèi)型。(2)不同數(shù)據(jù)類(lèi)型的元素進(jìn)行數(shù)學(xué)運(yùn)算,先要統(tǒng)一數(shù)據(jù)類(lèi)型,統(tǒng)一的標(biāo)準(zhǔn)是低精度類(lèi)型轉(zhuǎn)換為高精度的數(shù)據(jù)類(lèi)型。選項(xiàng)A,11與3為兩個(gè)整數(shù),11/3結(jié)果的數(shù)據(jù)類(lèi)型也應(yīng)為整數(shù),因此將3.666666的小數(shù)部分全部舍掉,僅保留整數(shù),因此11/3=3.選項(xiàng)B,11.0為實(shí)數(shù),3為整數(shù),因此首先要統(tǒng)一數(shù)據(jù)類(lèi)型,將整型數(shù)據(jù)3轉(zhuǎn)換為3.0,轉(zhuǎn)換后數(shù)據(jù)類(lèi)型統(tǒng)一為實(shí)型數(shù)據(jù),選項(xiàng)B變?yōu)?1.0/3.0,結(jié)果的數(shù)據(jù)類(lèi)型也應(yīng)為實(shí)型數(shù)據(jù),因此選項(xiàng)B11.0/3=3.666666選項(xiàng)C,先將整數(shù)11強(qiáng)制類(lèi)型轉(zhuǎn)換,轉(zhuǎn)換為實(shí)型11.0,因此選項(xiàng)C變?yōu)?1.0/3,其后計(jì)算過(guò)程、結(jié)果與選項(xiàng)B同選項(xiàng)D,首先計(jì)算11.0/3,其計(jì)算過(guò)程、結(jié)果與選項(xiàng)B同,得到3.666666;再計(jì)算3.666666+0.5=4.166666,最后將4.166666強(qiáng)制類(lèi)型轉(zhuǎn)換為整型,即將其小數(shù)部分全部舍掉,結(jié)果為45.設(shè)整型變量a=2,則執(zhí)行下列語(yǔ)句后,浮點(diǎn)型變量b的值不為0.5的是(B)A.b=1.0/aB.b=(float)(1/a)C.b=1/(float)aD.b=1/(a*1.0)6.若“intn;floatf=13.8;”,則執(zhí)行“n=(int)f%3”后,n的值是(AA.1B.4C.4.333333D.4.6“(int)f“表示將f中的值強(qiáng)制類(lèi)型轉(zhuǎn)換為整型,即將13.8的小數(shù)部分舍掉,轉(zhuǎn)換為13;然后計(jì)算13%3,結(jié)果為1,再將結(jié)果賦給變量n,因此n的值為17.有如下程序main(){inta;charc=10;floatf=100.0;doublex;a=f/=c*=(x=6.5);printf("%d%d%3.1f%3.1f\n",a,c,f,x);}程序運(yùn)行后輸出結(jié)果是___B___。A、16516.5B、1651.56.5C、1651.06.5D、2651.56.58.若變量a、i已正確定義,且i已正確賦值,合法的語(yǔ)句是___B___。A、a==1B、++i;C、a=a++=5;D、a=int(i);9.若變量已正確定義并賦值,下面符合C語(yǔ)言語(yǔ)法的表達(dá)式是__B____。A、a:=b+1B、a=b=c+2C、int18.5%3D、a=a+7=c+b10.設(shè)變量x為float型且已賦值,則以下語(yǔ)句中能將x中的數(shù)值保留到小數(shù)點(diǎn)后兩位,并將第三位四舍五入的是__C____。A、x=x*100+0.5/100.0B、x=(x*100+0.5)/100.0C、x=(int)(x*100+0.5)/100.0???D、x=(x/100+0.5)*100.011.若k是int型變量,且有下面的程序片段k=-3if(k<=0)printf("####")elseprintf("&&&&");上面程序片段的輸出結(jié)果是___D___。A、####B、&&&&C、####&&&&D、有語(yǔ)法錯(cuò)誤,無(wú)輸出結(jié)果12.以下4個(gè)選項(xiàng)中,不能看作一條語(yǔ)句的是___D___。A、{;}B、a=0,b=0,c=0;C、if(a>0);D、if(b==0)m=1;n=2;???13.有以下程序main(){inta=0,b=0;a=10;/*給a賦值*/b=20;/*給b賦值*/printf("a+b=%d\n",a+b);}程序運(yùn)行后的輸出結(jié)果是___B___。A、a+b=10B、a+b=30C、30D、出錯(cuò)14.當(dāng)c的值不為0時(shí),在下列選項(xiàng)中能正確將c的值賦給變量a、b的是____C__。A、c=b=a;B、(a=c)‖(b=c);C、(a=c)&&(b=c);D、a=c=b;15.以下選項(xiàng)中非法的表達(dá)式是___D___。A、0<=x<100B、i=j==0C、(char)(65+3)D、x+1=x+116.以下程序的輸出結(jié)果是___B___。#include<stdio.h>7main(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);???}A、6,1B、2,1C、6,0D、2,017.以下循環(huán)體的執(zhí)行次數(shù)是___C___。main(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i);}A、3B、2C、1D、0答案:C18.有以下定義語(yǔ)句doublea,b;intw;longc;若各變量已正確賦值,則下列選項(xiàng)中正確的表達(dá)式是___C___。A、a=a+b=b++B、w%((int)a+b)C、(c+w)%(int)aD、w=a=b;19.以下能正確計(jì)算定義且賦初值的語(yǔ)句是___B___。A、intn1=n2=10;B、charc=32;C、fioatf=f+1.1;D、doublex=12.3E2.520.以下合法的賦值語(yǔ)句是___B___。A、x=y=100B、d--;C、x+y;D、c=int(a+b);21.下列語(yǔ)句中符合C語(yǔ)言語(yǔ)法的賦值語(yǔ)句是___D___。A、a=7+b+c=a+7;B、a=7+b++=a+7;C、a=7+b,b++,a+7D、a=7+b,c=a+7;22.請(qǐng)選出合法的C語(yǔ)言賦值語(yǔ)句___B___。A、a=b=58B、i++;C、a=58,b=58D、k=int(a+b);23.下面程序的輸出是___C___。main(){intx=10,y=3;printf("%d\n",y=x/y);}A、0B、1C、3D、不確定的值24.已知字母A的ASCII碼為十進(jìn)制的65,下面程序的輸出是___A___。main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A、67,DB、B,CC、C,DD、不確定的值25.下列程序的運(yùn)行結(jié)果是___B___。#include<stdio.h>main(){inta=2,c=5;printf("a=%d,b=%d\n",a,c);}A、a=%2,b=%5B、a=2,b=5C、a=d,b=dD、a=%d,b=5d26.以下程序的輸出結(jié)果是___D___。#include<stdio.h>main(){inta=2,c=5;printf("a=%%d,b=%%d\n",a,c);}A、a=%2,b=%5B、a=2,b=5C、a=%%d,b=%%dD、a=%d,b=%d27.有以下程序main(){intx=102,y=012;printf("%2d,%2d\n",x,y);}執(zhí)行后輸出結(jié)果是___C___。A、10,01B、02,12C、102,10D、02,1028.有以下程序main(){inta=666,b=888;printf("%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是___B___。A、錯(cuò)誤信息B、666C、888D、666,88829.有以下程序#include<stdio.h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當(dāng)運(yùn)行時(shí)輸入:a<回車(chē)>后,以下敘述正確的是___A___。A、變量C1被賦予字符a,c2被賦予回車(chē)符B、程序?qū)⒌却脩?hù)輸入第2個(gè)字符C、變量c1被賦予字符a,c2中仍是原有字符2D、變量c1被賦予字符a,c2中將無(wú)確定值30.執(zhí)行下列程序時(shí)輸入:123<空格>456<空格>789<回車(chē)>,輸出結(jié)果是___D___。main(){chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}A、123,456,789B、1,456,789C、1,23,456,789D、1,23,45631.有定義語(yǔ)句:intb;charc[10];,則正確的輸入語(yǔ)句是__B____。A、scanf("%d%s",&b,&c);B、scanf("%d%s",&b,c);C、scanf("%d%s",b,c);D、scanf("%d%s",b,&c);32.若要求從鍵盤(pán)讀入含有空格字符的字符串,應(yīng)使用函數(shù)___B___。A、getc()B、gets()C、getchar()D、scanf()33.有以下程序#include<stdio.h>main(){charc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf("%c%c\n",c5,c6);}程序運(yùn)行后,若從鍵盤(pán)輸入(從第1列開(kāi)始)___D___。123<回車(chē)>45678<回車(chē)>則輸出結(jié)果是A、1267B、1256C、1278D、124534.有以下程序main(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想從鍵盤(pán)上輸入數(shù)據(jù),使變量m中的值為123,n中的數(shù)值為456,p中的值為789,則正確的輸入是___A___。A、m=123n=456p=789B、m=123n456p=789C、m=123,n=456,p=789D、12345678935.有以下程序段intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若從鍵盤(pán)上輸入:10A10<回車(chē)>,則輸出結(jié)果是___A___。A、10,A,10B、10,a,10C、10,a,0D、10,A,036.有定義語(yǔ)句:intx,y;,若要通過(guò)scanf("%d,%d",&x,&y);語(yǔ)句使變量x得到數(shù)據(jù)11,變量y得到數(shù)值12,下面四組輸入形式中,錯(cuò)誤的是___A___。A、1112<回車(chē)>B、11,12<回車(chē)>C、11,12<回車(chē)>D、11,<回車(chē)>12<回車(chē)>37.若有以下定義和語(yǔ)句charc1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+'A');則輸出結(jié)果是:__B____。A、2,MB、3,EC、2,ED、輸出項(xiàng)與對(duì)應(yīng)的格式控制不一致,輸出結(jié)果不確定38.已定義c為字符型變量,則下列語(yǔ)句中正確的是__C____。A、c='97';B、c="97";C、c=97;D、c="a";39.數(shù)字字符0的ASCII值為48,若有以下程序___C___。main(){chara='1',b='2';printf("%c,",b++);printf("%d\n",b-a);}程序運(yùn)行后的輸出結(jié)果是A、3,2B、50,2C、2,2D、2,5040.以下程序的輸出結(jié)果是___A___。main(){charc='z';printf("%c",c-25);}A、aB、ZC、z-25D、y41.若變量a是int類(lèi)型,并執(zhí)行了語(yǔ)句:a='A'+1.6;,則正確的敘述是______。A、a的值是字符CB、a的值是浮點(diǎn)型C、不允許字符型和浮點(diǎn)型相加D、a的值是字符'A'的ASCII值加上142.下列程序執(zhí)行后的輸出結(jié)果是___A___。main(){intx='f';printf("%c\n",'A'+(x-'a'+1));}A、GB、HC、ID、J43.以下程序的輸出結(jié)果是___B___。main(){inti;for(i='A';i<'I';i++,i++)printf("%c",i+32);printf("\n");}A、編譯不通過(guò),無(wú)輸出B、acegC、acegiD、abcdefghi44.有如下程序#include<stdio.h>main(){printf("%d\n",NULL);}程序運(yùn)行后的輸出結(jié)果是__A____。A、0B、1C、-1D、NULL沒(méi)定義,出錯(cuò)45.設(shè)有說(shuō)明語(yǔ)句:chara='\72';則變量a___A___。A、包含1個(gè)字符B、包含2個(gè)字符C、包含3個(gè)字符D、說(shuō)明不合法46.當(dāng)把以下四個(gè)表達(dá)式用作if語(yǔ)句的控制表達(dá)式時(shí),有一個(gè)選項(xiàng)含義不同,這個(gè)選項(xiàng)是______。A、K%2B、K%2==1C、(K%2)!=0D、!K%2==147.以下敘述中錯(cuò)誤的是___C___。A、C語(yǔ)句必須以分號(hào)結(jié)束B(niǎo)、復(fù)合語(yǔ)句在語(yǔ)法上被看作一條語(yǔ)句C、空語(yǔ)句出現(xiàn)在任何位置都不會(huì)影響程序運(yùn)行D、賦值表達(dá)式末尾加分號(hào)就構(gòu)成賦值語(yǔ)句48.若變量x、y已正確定義并賦值,以下符合C語(yǔ)言語(yǔ)法的表達(dá)式是___A___。A、++x,y=x--B、x+1=yC、x=x+10=x+yD、double(x)/1049.以下敘述中正確的是___A___。A、C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方B、花括號(hào)“{”和“}”只能作為函數(shù)體的定界符C、構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶(hù)命名D、分號(hào)是C語(yǔ)言之間的分隔符,不是語(yǔ)句的一部分50.假設(shè)變量a,b均為整型,表達(dá)式(a=5,b=2,a>b?a++:b++,a+b)的值是()。A7B8C9D251.設(shè)a為int型變量,執(zhí)行下列賦值語(yǔ)句后,a的取值分別是()。a=125.534;a=(int)125.521%4;a=5<<2;A125,31,1B125,1,20C125,31,20D125.534,2,2052.以下程序的輸出結(jié)果為()。#defineADD(x)x*xmain(){inta=4,b=6,c=7,d=ADD(a+b)*c;printf("d=%d",d);}Ad=70Bd=80Cd=140Dd=7003.2讀程序讀程序?qū)懗鼋Y(jié)果,或者在程序的空白處填入正確代碼。1.有如下程序#include"stdio.h"main(){charc;c=getchar();while(c!='?'){putchar(c);c=getchar();}}如果從鍵盤(pán)輸入abcde?fgh(回車(chē))運(yùn)行結(jié)果為:abcde2.有如下程序#include<stdio.h>main(){charc;while((c=getchar())!=’$’){if(‘A’<=c&&c<=‘Z’)putchar(c);elseif(‘a(chǎn)’<=c&&c<=‘z’)putchar(c-32);}}當(dāng)輸入為ab*AB%cd#CD$時(shí),運(yùn)行結(jié)果為:ABABCDCD3.以下程序的輸出結(jié)果是______。main(){inta=0;a+=(a=8);printf("%d\n",a);}答案:164.若有定義:inta=10,b=9,c=8;接著順序執(zhí)行下列語(yǔ)句后,變量b中的值是______。c=(a-=(b-5));c=(a%11)+(b=3);答案:35.以下程序段的輸出結(jié)果是______。inti=9;printf("%o\n",i);答案:116.有以下程序#include<stdio.h>main(){charch1,ch2;intn1,n2;ch1=getchar();ch2=getchar();n1=ch1-'0';n2=n1*10+(ch2-'0');printf("%d\n",n2);}程序運(yùn)行時(shí)輸入:12<回車(chē)>,執(zhí)行后輸出結(jié)果是______。答案:127.以下程序運(yùn)行后的輸出結(jié)果是______。main(){charm;m='B'+32;printf("%c\n",m);}答案:b8.已知字母A的ASCII碼為65.以下程序運(yùn)行后的輸出結(jié)果是______。main(){chara,b;a=’A’+’5’-‘3’;b=a+’6’-‘2’;printf(“%d%c\n”,a,b);}答案:67G9.若有以下程序main(){chara;a='H'-'A'+'0';printf("%c\n",a);}執(zhí)行后輸出結(jié)果是______。答案:710.以下程序運(yùn)行后的輸出結(jié)果是______。main(){inta=012,b=0x12,k=12;charc=‘\102’,d=‘\r’;printf(“a=%d\tb=%d\tk=%d\n”,a,b,k);printf(“c=%c,d=%c%o\n”,c,d,a);a=‘A’;c=49;printf(“a=%d\tc=%c\n”,a,c);}11.以下程序運(yùn)行后的輸出結(jié)果是______。main(){inti=29,j=6,k=2,s;s=i+i/j%k-9;printf(“s=%d\n”,s);}12.以下程序運(yùn)行后的輸出結(jié)果是______。main(){char*s2=“IloveChina!”,**s1=&s2;char*s3,c,*s4=“w”;s3=&c;*s3=‘H’;s2=s2+2;printf(“%s\t%c\t%s\t%c\n”,s2,*s3,s4,**s1);}3.3程序改錯(cuò)畫(huà)橫線(xiàn)的代碼有誤,請(qǐng)寫(xiě)出正確的代碼1.從鍵盤(pán)輸入整數(shù)x的值,并輸出y的值.main(){floatx,y;scanf(“%d”,&x);y=3.5+x;printf(“y=%d”);}正確的:intx;floaty;printf(“y=%f”,y);
CH4選擇結(jié)構(gòu)程序設(shè)計(jì)4.1讀程序1.有如下代碼:#include<stdio.h>main(){charch;ch=getchar();switch(ch){case‘A’:printf(“%c”,’A’);case‘B’:printf(“%c”,’B’);break;default:printf(“%s\n”,”other”);}}當(dāng)從鍵盤(pán)輸入字母A時(shí),運(yùn)行結(jié)果為:AB詳見(jiàn)switch語(yǔ)句switch(表達(dá)式){ case常量1:語(yǔ)句1case常量2:語(yǔ)句2┇┇┇case常量n:語(yǔ)句ndefault:語(yǔ)句n+1}其中表達(dá)式,常量1,…,常量n都為整型或字符型case相當(dāng)于給出執(zhí)行程序的入口和起始位置,若找到匹配的常量,則從此處開(kāi)始往下執(zhí)行程序,不再匹配常量,直至遇到break或switch結(jié)束本題過(guò)程:首先從鍵盤(pán)接收一個(gè)字符’A’并將其放在變量ch中。執(zhí)行switch語(yǔ)句。Switch后面的條件表達(dá)式為ch,因此表達(dá)式的值即為字符’A’.用字符’A’依次與下面的case中的常量匹配。與第1個(gè)case后的常量匹配,則從其后的語(yǔ)句開(kāi)始往下執(zhí)行程序(在執(zhí)行過(guò)程中不再進(jìn)行匹配。)因此先執(zhí)行printf(“%c”,’A’),屏幕上輸出A;再往下繼續(xù)執(zhí)行printf(“%c”,’B’),屏幕上輸出B;再繼續(xù)執(zhí)行break,此時(shí)跳出switch語(yǔ)句。2.有如下代碼:#include<stdio.h>main(){inta=1,b=0;scanf(“%d”,&a);switch(a){case1:b=1;break;case2:b=2;break;default:b=10;}printf("%d",b);}若鍵盤(pán)輸入5,運(yùn)行結(jié)果為:10本題過(guò)程:首先用scanf函數(shù)為變量a賦值為5。執(zhí)行switch語(yǔ)句。switch后面的條件表達(dá)式為a,因此表達(dá)式的值即為5.用5依次與下面case中的常量匹配。沒(méi)有找到匹配的常量,因此兩個(gè)case后的語(yǔ)句都不執(zhí)行。執(zhí)行default后面的語(yǔ)句b=10;將10賦給變量b。輸出變量b,結(jié)果為103.有如下代碼:#include<stdio.h>main()_{chargrade=’C’;switch(grade){case‘A’:printf(“90-100\n”);case‘B’:printf(“80-90\n”);case‘C’:printf(“70-80\n”);case‘D’:printf(“60-70\n”);break;case‘E’:printf(“<60\n”);default:printf(“error!\n”);}}運(yùn)行結(jié)果為:70-8060-70本題過(guò)程:首先從鍵盤(pán)接收一個(gè)字符’C’并將其放在變量grade中。執(zhí)行switch語(yǔ)句。switch后面的條件表達(dá)式為grade,因此表達(dá)式的值即為字符’C’.用字符’C’依次與下面的case中的常量匹配。與第3個(gè)case后的常量匹配,則從其后的語(yǔ)句開(kāi)始往下執(zhí)行程序(在執(zhí)行過(guò)程中不再進(jìn)行匹配。)因此先執(zhí)行printf(“70-80\n”);,屏幕上輸出70-80,并換行;再往下繼續(xù)執(zhí)行printf(“60-70\n”),屏幕上輸出60-70,并換行;再繼續(xù)執(zhí)行break,此時(shí)跳出switch語(yǔ)句。4.在嵌套使用if語(yǔ)句時(shí),C語(yǔ)言規(guī)定else總是___C___。A、和之前與其具有相同縮進(jìn)位置的if配對(duì)B、和之前與其最近的if配對(duì)C、和之前與其最近的且不帶else的if配對(duì)D、和之前的第一個(gè)if配對(duì)5.假定所有變量均已正確說(shuō)明,下列程序段運(yùn)行后x的值是___B___。a=b=c=0;x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;A、34B、4C、35D、36.有如下程序main(){inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec++;printf("%d\n",c);}該程序的輸出結(jié)果是___C___。A、0B、1C、2D、37.有以下程序main(){intk=5,n=0;while(k>0){switch(k){default:break;case1:n+=k;case2:case3:n+=k;}k--;}printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是___D___。A、0B、4C、6D、78.有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}執(zhí)行后輸出結(jié)果是___A___。A、011122B、012C、012020D、1209.如下程序main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d\n",a,b);}該程序的輸出的結(jié)果是___A___。A、a=2,b=1B、a=1,b=1C、a=1,b=0D、a=2,b=210.以下程序的輸出結(jié)果是___A___。main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf("%d\n",a);}A、31B、13C、10D、2011.下列敘述中正確的是___D___。A、break語(yǔ)句只能用于switch語(yǔ)句B、在switch語(yǔ)句中必須使用defaultC、break語(yǔ)句必須與switch語(yǔ)句中的case配對(duì)使用D、在switch語(yǔ)句中,不一定使用break語(yǔ)句12.設(shè)a為整型變量,不能正確表達(dá)數(shù)學(xué)關(guān)系:10<a<15的C語(yǔ)言表達(dá)式是___A___。A、10<a<15B、a==11||a==12||a==13||a==14C、a>10&&a<15D、!(a<=10)&&!(a>=15)13.以下程序的輸出結(jié)果是___A___。main(){inta=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}A、1B、0C、非0的數(shù)D、-114.語(yǔ)句:printf("%d",(a=2)&&(b=-2));的輸出結(jié)果是___D___。A、無(wú)輸出B、結(jié)果不確定C、-1D、115.設(shè)a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達(dá)式(m=a>b)&&(n=c>d)運(yùn)算后,n的值為_(kāi)__C___。A、0B、1C、2D、316.若變量c為char類(lèi)型,能正確判斷出c為小寫(xiě)字母的表達(dá)式是__D____。A、'a'<=c<='z'B、(c>='a')||(c<='z')C、('a'<=c)and('z'>=c)D、(c>='a')&&(c<='z')17.能正確表示邏輯關(guān)系:“a≥10或a≤0”的C語(yǔ)言表達(dá)式是___D___。A、a>=10ora<=0B、a>=0|a<=10C、a>=10&&a<=0D、a>=10||a<=1018.有如下程序main(){inta=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf("%d,%d\n",k,m);}程序運(yùn)行后的輸出結(jié)果是___C___。A、0,0B、0,1C、1,0D、1,119.設(shè)intx=1,y=1;表達(dá)式(!x||y--)的值是___B___。A、0B、1C、2D、-120.設(shè)有定義:inta=2,b=3,c=4;,則以下選項(xiàng)中值為0的表達(dá)式是___A___。A、(!a==1)&&(!b==0)B、(a<b)&&!c||1C、a&&bD、a||(b+b)&&(c-a)21.若要求在if后一對(duì)圓括號(hào)中表示a不等于0的關(guān)系,則能正確表示這一關(guān)系的表達(dá)式為_(kāi)_D___。A、a<>0B、!aC、a=0D、a22.有如下程序段inta=14,b=15,x;charc='A';x=(a&&b)&&(c<'B');執(zhí)行該程序段后,x的值為_(kāi)__D___。A、trueB、falseC、0D、123.能正確表示a和b同時(shí)為正或同時(shí)為負(fù)的邏輯表達(dá)式是___D___。A、(a>=0‖b>=0)&&(a<0‖b<0)B、(a>=0&&b>=0)&&(a<0&&b<0)C、(a+b>0)&&(a+b<=0)D、a*b>024.以下程序的輸出結(jié)果是___C___。main(){inta=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:c):(b));}A、5B、4C、6D、不確定25.若整型變量a、b、c、d中的值依次為:1、4、3、2。則條件表達(dá)式a<b?a:c<d?c:d的值是____A__。A、1B、2C、3D、426.若有定義intx,y;并已正確給變量賦值,則以下選項(xiàng)中與表達(dá)式(x-y)?(x++):(y++)中的條件表達(dá)式(x-y)等價(jià)的是___C___。A、(x-y>0)B、(x-y<0)C、(x-y<0||x-y>0)D、(x-y==0)27.有以下程序段intk=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?k:b;執(zhí)行該程序段后,k的值是___B___。A、3B、2C、1D、028.以下程序段中與語(yǔ)句k=a>b?(b>c?1:0):0;功能等價(jià)的是___A__。A、if((a>b)&&(b>c))k=1;elsek=0;B、if((a>b)||(b>c))k=1;elsek=0;C、if(a<=b)k=0;elseif(b<=c)k=1;D、if(a>b)k=1;elseif(b>c)k=1;elsek=0;29.假定w、x、y、z、m均為int型變量,有如下程序段:w=1;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;則該程序執(zhí)行后,m的值是___D___。A、4B、3C、2D、130.下面程序的輸出結(jié)果是___A___。#include<stdio.h>main(){inti=2;printf("%d",f(i,i+1));}intf(inta,intb){intc;c=a;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}A、-1B、0C、1D、231.下面的程序運(yùn)行結(jié)果為_(kāi)__D___。main(){intx=3,y=0,z=0;if(x=y+z)printf("****");elseprintf("####");}A、有語(yǔ)法錯(cuò)誤不能通過(guò)編譯B、輸出****。C、可以通過(guò)編譯,但是不能通過(guò)連接,因而不能運(yùn)行。D、輸出####。32.若執(zhí)行以下程序時(shí)從鍵盤(pán)上輸入9,則輸出結(jié)果是____B__。main(){intn;scanf("%d",&n);if(n++<10)printf("%d\n",n);elseprintf("%d\n",n--);}A、11B、10C、9D、833.下列條件語(yǔ)句中,功能與其他語(yǔ)句不同的是___D___。A、if(a)printf("%d\n",x);elseprintf("%d\n",y);B、if(a==0)printf("%d\n",y);elseprintf("%d\n",x);C、if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);D、if(a==0)printf("%d\n",x);elseprintf("%d\n",y);34.以下程序運(yùn)行后的了輸出結(jié)果是______。main(){inta=1,b=2,c=3;if(c=a)printf("%d\n",c);elseprintf("%d\n",b);}答案:135.以下程序運(yùn)行后的輸出結(jié)果是______。main(){inta=1,b=3,c=5;if(c=a+b)printf("yes\n");elseprintf("no\n");}答案:yes36.若從鍵盤(pán)輸入58,則以下程序輸出的結(jié)果是______。main(){inta;scanf("%d",&a);if(a>50)printf("%d",a);if(a>40)printf("%d",a);if(a>30)printf("%d",a);}答案:58585837.以下程序的輸出結(jié)果是______。main(){inta=5,b=4,c=3,d;d=(a>b>c);printf("%d\n",d);}答案:038.若有以下程序main(){intp,a=5;if(p=1!=0)printf("%d\n",p);elseprintf("%d\n",p+2);}執(zhí)行后輸出結(jié)果是______。答案:139.表示條件:10<x<100或x<0的C語(yǔ)言表達(dá)式是______。答案:(x>10&&x<100||x<0)40.若已知a=10,b=20,則表達(dá)式!a<b的值為_(kāi)_____.答案:141.表示“整數(shù)x的絕對(duì)值大于5”時(shí)值為“真”的C語(yǔ)言表達(dá)式是______。答案:x>5||x<-542.以下程序運(yùn)行后的輸出結(jié)果是______。main(){intp=30;printf("%d\n",(p/3>0?p/10:p%3));}答案:343.以下程序運(yùn)行后的輸出結(jié)果是______。main(){intx,a=1,b=2,c=3,d=4;x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;printf("%d\n",x);}答案:14.2程序填空1.輸入一個(gè)字符,判斷該字符是數(shù)字、字母、空格還是其他字符。main(){charch;ch=getchar();if(ch>=’a’&&ch<=’z’||ch>=’A’&&ch<=’Z’)printf("ItisanEnglishcharacter\n");elseif(ch>=’0’&&ch<=’9’)printf("Itisadigitcharacter\n");elseif(ch==‘’)printf("Itisaspacecharacter\n");elseprintf("Itisothercharacter\n");}第1空:字符在計(jì)算機(jī)中以ASCII碼的形式存儲(chǔ)。所以當(dāng)輸入的字符,即ch中字符所對(duì)應(yīng)的ASCII碼的范圍在英文字母的ASCII碼的范圍內(nèi)即可,參照p377。由于英文字母又分為大寫(xiě)字母和小寫(xiě)字母,因此此處用一個(gè)邏輯或表達(dá)式,表示ch中是小寫(xiě)字母或者大寫(xiě)字母,都能使得表達(dá)式成立。ch>=97&&ch<=122||ch>=65&&ch<=90 需要注意的是,對(duì)于本題區(qū)間所對(duì)應(yīng)的表達(dá)式,不可寫(xiě)作97<=ch<=122,也不可寫(xiě)作’A’<=ch<=’Z’.對(duì)于97<=ch<=122因?yàn)樵谟?jì)算此表達(dá)式時(shí)的順序是從左向右,因此先計(jì)算97<=ch。無(wú)論ch中的取值如何,表達(dá)式97<=ch的值只有兩種情況:0或1.所以無(wú)論是0還是1,都小于122,因此97<=ch<=122恒成立。第3空,判斷ch中是否為空格,也是通過(guò)ch中字符與空格字符的ASCII碼來(lái)判斷。在判斷表達(dá)式的值是否相等時(shí),用關(guān)系符號(hào)==;不要用賦值符號(hào)=。2.輸入x、y兩個(gè)整數(shù),按先大后小的順序輸出x、y。#include“stdio.h”main(){intx,y,*px,*py,(1);scanf(“%d%d”,&x,&y);(2);(3);if(x<y){p=px;px=py;py=p;}printf(“x=%d,y=%d\n”,x,y);printf(“MAX=%d,MIN=%d\n”,*px,*py);}4.3程序改錯(cuò)1.編程計(jì)算下面分段函數(shù),輸入x,輸出ymain(){intx,y;printf(“\nInputx:\n”);scanf(“%d”,x);//錯(cuò)誤同上題scanfif(x<0)y=x-1;elseif(x>=0||x<=10)//||表示邏輯或,當(dāng)左邊表達(dá)式成立或者右邊表達(dá)式成立時(shí),整個(gè)表達(dá)式成立。&&表示邏輯與,當(dāng)左邊表達(dá)式和右邊表達(dá)式同時(shí)成立時(shí),整個(gè)表達(dá)式成立。此處用邏輯表達(dá)式來(lái)表示x的區(qū)間[0,10],因此應(yīng)改用邏輯與符號(hào)y=2x-1;//C語(yǔ)言中乘號(hào)不能省略,且用*表示乘法運(yùn)算elsey=3x-1;//C語(yǔ)言中乘號(hào)不能省略,且用*表示乘法運(yùn)算printf(“y=%d”,&y);//printf與scanf不用,printf后面給出的是變量名列表或表達(dá)式列表,無(wú)需地址符號(hào)}第一處改為:scanf(“%d”,&x);第二處改為:x>=0&&x<=10第三處改為:y=2*x-1;第四處改為:y=3*x-1;第五處改為:printf(“y=%d”,y);2.求100~300間能被3整除的數(shù)的和。main(){intn;longsum;//若定義變量的語(yǔ)句有錯(cuò)誤,常見(jiàn)考點(diǎn)有兩個(gè):(1)變量的類(lèi)型,(2)在定義用于存放運(yùn)算結(jié)果的變量時(shí),一定要賦初值,一般賦值0或者循環(huán)初值。for(n=100,n<=300,n++)//for語(yǔ)句的格式,三個(gè)表達(dá)式之間用分號(hào),且分號(hào)不可省略{if(n%3=0)//=是賦值符號(hào),用于將右邊的值賦給左邊的變量;==是關(guān)系符號(hào),用來(lái)判斷兩個(gè)值是否相等。改錯(cuò)中if后面表達(dá)式中的賦值符號(hào)是常見(jiàn)的考點(diǎn)。sum=sum*n;}printf(“%ld”,sum);}第一處改為:longsum=0;第二處改為:for(n=100;n<=300;n++)第三處改為:if(n%3==0)第四處改為:sum=sum+n;
CH5循環(huán)結(jié)構(gòu)程序設(shè)計(jì)5.1讀程序1.有如下程序#include<stdio.h>main(){intnum=0;while(num<=2){num++;printf("%d\n",num);}}運(yùn)行結(jié)果為:123詳見(jiàn)教材循環(huán)結(jié)構(gòu)當(dāng)循環(huán)條件num<=2成立的時(shí)候,執(zhí)行循環(huán)體{num++;printf("%d\n",num);}中的語(yǔ)句。循環(huán)初值num為0;循環(huán)條件num<=2成立第1次循環(huán):執(zhí)行num++;即將num中的值加1,執(zhí)行后num為1; 執(zhí)行printf("%d\n",num);在屏幕上輸出num中的值,即輸出1,之后換行此時(shí)num中的值為1,循環(huán)條件num<=2成立第2此循環(huán):執(zhí)行num++;即將num中的值加1,執(zhí)行后num為2; 執(zhí)行printf("%d\n",num);在屏幕上輸出num中的值,即輸出2,之后換行此時(shí)num中的值為2,循環(huán)條件num<=2成立第3此循環(huán):執(zhí)行num++;即將num中的值加1,執(zhí)行后num為3; 執(zhí)行printf("%d\n",num);在屏幕上輸出num中的值,即輸出3,之后換行此時(shí)num中的值為3,循環(huán)條件num<=2不成立,結(jié)束循環(huán)。2.有如下程序#include<stdio.h>main(){intsum=10,n=1;while(n<3){sum=sum-n;n++;}printf(“%d,%d”,n,sum);}運(yùn)行結(jié)果為:3,7當(dāng)循環(huán)條件n<3成立的時(shí)候,執(zhí)行循環(huán)體{sum=sum-n;n++;}中的語(yǔ)句。循環(huán)初值sum為10,n為1;循環(huán)條件n<3成立第1次循環(huán):執(zhí)行sum=sum-n=10-1=9; 執(zhí)行n++,即將n中的值加1,執(zhí)行后n為2;此時(shí)n中的值為2,sum中的值為9,循環(huán)條件n<3成立,繼續(xù)執(zhí)行循環(huán)第2次循環(huán):執(zhí)行sum=sum-n=9-2=7; 執(zhí)行n++,即將n中的值加1,執(zhí)行后n為3;輸出此時(shí)n,sum中的值,即為3,7。需要注意,在printf(“%d,%d”,n,sum);中要求輸出的數(shù)據(jù)彼此間用逗號(hào)間隔,因此結(jié)果的兩個(gè)數(shù)據(jù)間一定要有逗號(hào)3.有如下程序#include<stdio.h>main(){intnum,c;scanf("%d",&num);do{c=num%10;printf("%d",c);}while((num/=10)>0);printf("\n");}從鍵盤(pán)輸入23,則運(yùn)行結(jié)果為:32詳見(jiàn)教材循環(huán)結(jié)構(gòu);復(fù)合的賦值運(yùn)算符do{}while(表達(dá)式);先無(wú)條件執(zhí)行循環(huán)體,再判斷循環(huán)條件。注意while(表達(dá)式)后有分號(hào)定義整型變量num,c;為num賦一個(gè)整型值;執(zhí)行{c=num%10;printf("%d",c);}直到循環(huán)條件(num/=10)>0不成立;輸出換行已知為num賦值23第1次執(zhí)行循環(huán)體執(zhí)行c=num%10=23%10=3;執(zhí)行printf("%d",c);輸出3判斷循環(huán)條件num/=10等價(jià)于num=num/10;因此num=23/10=2,2大于0,因此循環(huán)條件(num/=10)>0成立,繼續(xù)執(zhí)行循環(huán)體。執(zhí)行完第1次循環(huán)時(shí),num為2,c為3第2次執(zhí)行循環(huán)體執(zhí)行c=2%10=2;執(zhí)行printf("%d",c);再輸出2判斷循環(huán)條件num=2/10=0,0等于0,因此循環(huán)條件(num/=10)>0不成立。結(jié)束循環(huán)4.有如下程序#include<stdio.h>main(){ints=0,a=5,n;scanf("%d",&n);do{s+=1;a=a-2;}while(a!=n);printf("%d,%d\n",s,a);}若輸入的值1,運(yùn)行結(jié)果為:2,1詳見(jiàn)教材循環(huán)結(jié)構(gòu);復(fù)合的賦值運(yùn)算符執(zhí)行{s+=1;a=a-2;}直到循環(huán)條件a!=n不成立;已知為n賦值1,s為0,a為5第1次執(zhí)行循環(huán)體執(zhí)行s+=1;等價(jià)于s=s+1=0+1執(zhí)行a=a-2;a=5-2=3判斷循環(huán)條件,3不等于1,因此循環(huán)條件a!=n成立,繼續(xù)執(zhí)行循環(huán)體。執(zhí)行完第1次循環(huán)時(shí),s為1,a為3第2次執(zhí)行循環(huán)體執(zhí)行s+=1;等價(jià)于s=s+1=1+1=2執(zhí)行a=a-2;a=3-2=1判斷循環(huán)條件,1等于1,因此循環(huán)條件a!=n不成立,結(jié)束循環(huán)。執(zhí)行完第2次循環(huán)時(shí),s為2,a為1輸出此時(shí)s,a中的值,結(jié)果為2,15.有如下程序#include<stdio.h>main(){intx,y=0;for(x=1;x<=10;x++){if(y>=10)break;y=y+x;}printf(“%d%d”,y,x);}運(yùn)行結(jié)果為:105詳見(jiàn)教材for語(yǔ)句詳見(jiàn)教材break,continue語(yǔ)句for(
表達(dá)式1;表達(dá)式2;表達(dá)式3){}(1)先求解表達(dá)式1(2)求解表達(dá)式2,若其值為真,執(zhí)行循環(huán)體,然后執(zhí)行(3).若為假,則結(jié)束循環(huán),轉(zhuǎn)到(5)(3)求解表達(dá)式3(4)轉(zhuǎn)回上面(2)繼續(xù)執(zhí)行(5)循環(huán)結(jié)束,執(zhí)行for語(yǔ)句下面的一個(gè)語(yǔ)句break
,跳出循環(huán)體;continue,結(jié)束本次循環(huán)(第i次循環(huán)),繼續(xù)執(zhí)行下一次循環(huán)(第i+1次循環(huán))此題表達(dá)式1為x=1,表達(dá)式2(循環(huán)條件)為x<=10,表達(dá)式3為x++初值x為1,y為0,循環(huán)條件(即表達(dá)式2)x<=10成立,進(jìn)入循環(huán)體第1次循環(huán) 執(zhí)行if語(yǔ)句。0小于10,if語(yǔ)句的條件表達(dá)式不成立,不執(zhí)行break;執(zhí)行y=y+x;y=0+1=1轉(zhuǎn)向表達(dá)式3,執(zhí)行x++,x=x+1=1+1=2。循環(huán)條件x<=10成立,進(jìn)入第2次循環(huán)第2次循環(huán) 執(zhí)行if語(yǔ)句。1小于10,if語(yǔ)句的條件表達(dá)式不成立,不執(zhí)行break;執(zhí)行y=y+x;y=1+2=3轉(zhuǎn)向表達(dá)式3,執(zhí)行x++,x=x+1=2+1=3。循環(huán)條件x<=10成立,進(jìn)入第3次循環(huán)第3次循環(huán) 執(zhí)行if語(yǔ)句。3小于10,if語(yǔ)句的條件表達(dá)式不成立,不執(zhí)行break;執(zhí)行y=y+x;y=3+3=6轉(zhuǎn)向表達(dá)式3,執(zhí)行x++,x=x+1=3+1=4。循環(huán)條件x<=10成立,進(jìn)入第4次循環(huán)第4次循環(huán) 執(zhí)行if語(yǔ)句。6小于10,if語(yǔ)句的條件表達(dá)式不成立,不執(zhí)行break;執(zhí)行y=y+x;y=6+4=10轉(zhuǎn)向表達(dá)式3,執(zhí)行x++,x=x+1=4+1=5。循環(huán)條件x<=10成立,進(jìn)入第5次循環(huán)第5次循環(huán) 執(zhí)行if語(yǔ)句。10等于10,if語(yǔ)句的條件表達(dá)式成立,執(zhí)行break,跳出循環(huán)。從break跳出至for語(yǔ)句的下一條語(yǔ)句。執(zhí)行printf(“%d%d”,y,x);輸出當(dāng)前的y與x.結(jié)果為1056.有如下程序#include<stdio.h>main(){inty=9;for(;y>0;y--)if(y%3==0){printf(%d”,--y);}}運(yùn)行結(jié)果為:852詳見(jiàn)教材,自增自減符號(hào)此題表達(dá)式1被省略,表達(dá)式2(循環(huán)條件)為y>0,表達(dá)式3為y--初值y為9,循環(huán)條件(即表達(dá)式2)y>0成立,進(jìn)入循環(huán)體第1次循環(huán) 執(zhí)行if語(yǔ)句。9%3==0,if語(yǔ)句的條件表達(dá)式成立,執(zhí)行printf(%d”,--y),即y先自減1變?yōu)?,然后在輸出,因此屏幕上輸出8轉(zhuǎn)向表達(dá)式3,執(zhí)行y--,y=y-1=8-1=7。循環(huán)條件y>0成立,進(jìn)入第2次循環(huán)第2次循環(huán) 執(zhí)行if語(yǔ)句。7%3不為0,if語(yǔ)句的條件表達(dá)式不成立,不執(zhí)行printf(%d”,--y)轉(zhuǎn)向表達(dá)式3,執(zhí)行y--,y=y-1=7-1=6。循環(huán)條件y>0成立,進(jìn)入第3次循環(huán)第3次循環(huán) 執(zhí)行if語(yǔ)句。6%3==0,if語(yǔ)句的條件表達(dá)式成立,執(zhí)行printf(%d”,--y),即y先自減
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年企業(yè)間技術(shù)秘密轉(zhuǎn)讓與保密合同
- 2024《教育基金贈(zèng)與合同》
- 2024年度二手挖掘機(jī)質(zhì)量保證合同
- 2024年奶牛養(yǎng)殖收購(gòu)合同
- 2024年度融資合同融資項(xiàng)目及融資金額
- 2024年建筑工程屋面分包協(xié)議
- 2024年度★店鋪轉(zhuǎn)讓及培訓(xùn)協(xié)議
- 2024年度生物醫(yī)藥實(shí)驗(yàn)室安裝內(nèi)部承包合同
- 2024年企業(yè)間關(guān)于物聯(lián)網(wǎng)技術(shù)研發(fā)與應(yīng)用合作協(xié)議
- 2024供應(yīng)鏈金融借款合同
- 幼兒園中班健康教案《腸胃小鬧鐘》含反思
- 裝配式建筑精裝修裝配施工方法
- GB∕T 24789-2022 用水單位水計(jì)量器具配備和管理通則
- 亞馬遜開(kāi)店基本操作介紹課件(同名1242)
- 三年級(jí)語(yǔ)文上冊(cè)課件-《15.搭船的鳥(niǎo)》 (共18張PPT)部編版
- 畫(huà)法幾何 華中科大-新2-1
- 研學(xué)旅行概論教學(xué)課件匯總完整版電子教案
- NYT 393-綠色食品 農(nóng)藥使用準(zhǔn)則
- TSG Z8001-2019特種設(shè)備無(wú)損檢測(cè)人員考核規(guī)則-高清正版
- 人教版八上名著閱讀《昆蟲(chóng)記》分章練習(xí)(含答案)
- 醫(yī)護(hù)人員服務(wù)禮儀及行為規(guī)范-PPT課件
評(píng)論
0/150
提交評(píng)論