C語言習(xí)題順序選擇循環(huán)_第1頁(yè)
C語言習(xí)題順序選擇循環(huán)_第2頁(yè)
C語言習(xí)題順序選擇循環(huán)_第3頁(yè)
C語言習(xí)題順序選擇循環(huán)_第4頁(yè)
C語言習(xí)題順序選擇循環(huán)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

次序構(gòu)造程序設(shè)計(jì)重點(diǎn)導(dǎo)讀( )與scanf( )語句。printf( )與scanf( )語句是最通用的輸入輸出函數(shù),它們能夠在程序設(shè)計(jì)者的控制下以各樣格式分別實(shí)現(xiàn)數(shù)據(jù)的輸出和輸入操作。它們位于庫(kù)文件中。字符數(shù)據(jù)的輸入輸出。最簡(jiǎn)單的字符輸入輸出函數(shù)是getchar( )和putchar( )。二者分別從鍵盤讀一個(gè)字符或向顯示屏寫一個(gè)字符。經(jīng)典例題分析1.以下程序運(yùn)轉(zhuǎn)后輸出的結(jié)果是。#include<>voidmain( ){inta=0,b=0;a=10;b=20;printf(“a+b=%d”,a+b);}分析:printf( )是輸出函數(shù),它的括號(hào)內(nèi)由兩部分構(gòu)成:1)控制字符串,是用雙引號(hào)括起來的字符串,它包含兩種信息:格式說明。由”%”和格式字符構(gòu)成,如:%d、%f、%c等。它的作用是將輸出的數(shù)據(jù)變換成指定的格式輸出。一般字符。需要原樣輸出的字符。2)”輸出表列”是需要輸出的一些數(shù)據(jù),能夠是表達(dá)式。題目中a的值是10,b的值是20,在printf(“a+b=%d”,a+b);格式說明輸出表列中,”a+b=“是一般字符,需原樣輸出。輸出表列是一個(gè)表達(dá)式,它的結(jié)果以整型輸出。答案:a+b=30。2.以下程序運(yùn)轉(zhuǎn)后輸出的結(jié)果是

。#include<>voidmain( ){inta=732;printf(“%d\n”,a);printf(“%2d\n”,a);printf(“%10d\n”,a);printf(“%-10d\n”,a);}分析:d格式符,用來輸出十進(jìn)制整數(shù)。此中為指定的輸出字段的寬度。假如數(shù)據(jù)的位數(shù)小于位數(shù)輸出。

%d,按整型數(shù)據(jù)的實(shí)質(zhì)長(zhǎng)度輸出。%md,mm,則左端補(bǔ)以空格,若大于m,則按實(shí)質(zhì)printf(“%d\n”,a);把a(bǔ)的值按原樣輸出:732。printf(“%2d\n”,a);結(jié)果占2列,但732占3列大于2列,所以按實(shí)質(zhì)位數(shù)輸出:732。printf(%10d\n”,a);結(jié)果占10列,但732占3列小于10列,所以左端補(bǔ)7個(gè)空格。printf(“%-10d\n”,a);結(jié)果占10列,“-”表示把數(shù)值放到左端,732占3列小于10列,所以右端補(bǔ)7個(gè)空格。答案:732732□□□□□□□732

/*

□表示空格

*/732□□□□□□□3.已知

chara=

103’;則語句

printf(

“%3d”,a);

履行后的輸出結(jié)果為(□表示空格)。A)□67

B)’c’

C)67□

D)103分析:’\103’是一個(gè)轉(zhuǎn)義字符,表示一個(gè)八進(jìn)制數(shù)所代表的字符,變換為十進(jìn)制為67。printf(“%3d”,a);把’\103’變換為十進(jìn)制數(shù)輸出,結(jié)果占3列。但67占于要求的3列,所以左補(bǔ)空格,即□67。答案:C。

2列,小4.以下程序運(yùn)轉(zhuǎn)后結(jié)果是

。#include<>#defineavoidmain( ){printf(“%f\n”,a);printf(“%e\n”,a);printf(“%4.2f\n”,a);printf(“%3.1f\n”,a);printf(“%10.3f\n”,a);printf(“%n”,a);}分析:f格式符,用來輸出實(shí)數(shù),以小數(shù)形式輸出,小數(shù)點(diǎn)后輸出6位。所以printf(“%f\n”,a);輸出結(jié)果為。%是指,要輸出的數(shù)占m列,同時(shí)小數(shù)點(diǎn)保存n位(四舍五入),假如輸出的數(shù)大于m,則原樣輸出,同時(shí)小數(shù)點(diǎn)保存n位(四舍五入)。假如小于m,則左補(bǔ)空格,同時(shí)小數(shù)點(diǎn)保留n位(四舍五入)。printf(“%4.2f\n”,a);輸出結(jié)果為。printf(“%3.1f\n”,a);輸出結(jié)果為。e格式符,以規(guī)范化指數(shù)的形式輸出,所以printf(“%e\n”,a);+03。答案:+03□□/*(□表示空格)*/□□5.以下程序運(yùn)轉(zhuǎn)后結(jié)果是

。#include<>voidmain( ){charx=0x227f;printf(“%d\n”,x);}A)22

B)127

C)255

D)8831分析:變量x被定義成字符型,字符型占值22ff,占16位。所以227f高8位被舍去,

1個(gè)字節(jié),而x被賦值為一個(gè)x的值為7fH。履行printf(

4位16進(jìn)制的“%d\n”,x);即把x以有符號(hào)的十進(jìn)制整數(shù)輸出。答案:B。6.設(shè)intb=0;以下語句的輸出結(jié)果是。printf(“%d,%d”,++b,b--);A)1,1B)1,0C)0,0D)0,-1分析:printf函數(shù)的履行次序是由右到左,輸出次序是由左向右。答案:C。7.以下程序運(yùn)轉(zhuǎn)時(shí),若從鍵盤輸入:123<回車>45678<回車>后結(jié)果是。#include<>voidmain( ){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);}分析:scanf(格式控制,地點(diǎn)表列)的功能是:從鍵盤讀取輸入的信息。此中”格式控制”的含義同printf函數(shù);”地點(diǎn)表列”是由若干個(gè)地點(diǎn)構(gòu)成的表列,能夠是變量的地點(diǎn),或字符串的首地點(diǎn)。其scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4)的作用是:依據(jù)c1,c2,c3,c4在內(nèi)存的地點(diǎn)將c1,c2,c3,c4的值存進(jìn)去。因?yàn)椤?c”表示按字符形式輸入數(shù)據(jù),所以”回車符”作為一個(gè)字符,輸入有效。getchar( )函數(shù)的作用從終端輸入一個(gè)字符。putchar( )函數(shù)的作用是向終端輸出一個(gè)字符。所以c1=1、c2=2、c3=3、c4=回車,c5=4、c6=5。答案:1245。8.設(shè)有定義

inta;floatb;

履行

scanf(“%2d%f”,&a,&b);

語句時(shí),若從鍵盤輸入

876<回車>,a和

b的值分別是

。分析:scanf( )能夠指定輸入數(shù)據(jù)所占的列數(shù),系統(tǒng)自動(dòng)按它截取所需數(shù)據(jù)。%2d說明了a占兩列,即為87,剩下的數(shù)字應(yīng)當(dāng)賦給b,可是6和5之間有一個(gè)空格,為輸入停止符,所以被舍棄,即b的值為6。答案:876。9.已知1,b

a,b,c為int種類,履行scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);為2,c為3,則以下選項(xiàng)中正確的輸入形式是( )。

后,若要使得

a為A)1,2,3

B)a=1,b=2,c=3

C)123

D)a=1b=2c=3分析:scanf中假如在字符控制串中除了格式說明符之外還有其余字符,則在輸入數(shù)據(jù)時(shí)應(yīng)輸入與這些同樣的字符。答案:B。10.設(shè)有

intx,y;scanf(

“%d%*d%d”,&x,&y);

從鍵盤輸入數(shù)據(jù)

10□20□30<回車

>后,y

的值是

。分析:%*d表示跳過。所以

y的值是

30。答案:30。習(xí)題一、選擇題1.設(shè)

a、b、c

為整型變量,若從鍵盤給

a、b、c

輸入數(shù)據(jù),則正確的輸入語句是

。A)scanf(C)scanf(

“%f%f%f”,&a,&b,&c);“%d%d%d”,a,b,c);

B)scanf(D)scanf(

“%d%d%d”,&a,&b,&c);“%d%d%d”,&a;&b;&c);2.以下程序履行后輸出的結(jié)果是

。#include<>voidmain( ){intx=

‘d’;printf(

“%c”,’A’+(x-

’a’+1));}A)G

B)H

C)E

D)J3.設(shè)整型變量

a,b

的值均為

8。printf(

“%d,%d”,(a++,++b),b

--);

的輸出值是。A)8,8

B)8,7

C)9,9

D)8,94.如有以下程序段,履行后輸出的結(jié)果是。intm=100,n=0100;printf(“%d,%o\n”,m,n);A)100,100B)100,0100C)100,4D)100,045.有以下程序,其輸出結(jié)果是。#include<>voidmain( ){floatx=1;inty;x++;y=x+1;printf(“x=%d,y=%f”,x,y);}A)x=2,y=3

B)x=2,y=3.0

C)x=,y=3

D)x=0,y=6.有以下程序,其輸出結(jié)果是

。#include<>voidmain( ){inta;charc=10;floatf=;doublex;a=f/=c*=(x=;printf(

“%d,%d,%3.1f,%3.1f

”,a,c,f,x);}A)1,65,1,

B)1,65,,6.5

C)1,65,,

D)2,65,,二、填空題1.以下程序輸出的結(jié)果是

。#include<>voidmain( ){intx=7,y=5;printf(“

n”,x%y);}2.以下程序輸出的結(jié)果是

。#include<>voidmain( ){floatd,f;longk;inti;i=f=k=d=20/3;printf(“%3d%3ld%5.2f%5.2f\n”,i,k,f,d);}3.以下程序輸出的結(jié)果是:。#include<>voidmain( ){intk=11;printf(“k=%d,k8=%o,k16=%x\n”,k,k,k);}4.以下程序輸出結(jié)果是:。#include<>#defineBL“main( ){printf(“%2sn”,BL);printf(“%15sn”,BL);printf(“%n”,BL);printf(“%n”,BL);}5.若想經(jīng)過以下輸入語句使a=,b=4,c=3,則輸入數(shù)據(jù)形式應(yīng)當(dāng)是。intb,c;floata;scanf(“%f,%d,c=%d”,&a,&b,&c);6.當(dāng)輸入為56789012345a72時(shí),履行以下程序段后,變量i、j、x、y、c的值各是什么?inti,j;floatx,y;charc;scanf(“%2d%f%f%c%d”,&i,&x,&y,&c,&j);三、編程題1.已知x=,y=7,z=2,計(jì)算y/3*x-2的值。2.輸入一個(gè)華氏溫度,要求輸出攝氏溫度(結(jié)果保存2位)。公式為c=5/9*(f-32)。從鍵盤輸入一個(gè)小寫字母,用大寫形式輸出該字母。把16進(jìn)制數(shù)12a以10進(jìn)制形式輸出。輸入兩個(gè)整數(shù),將其值互換。本節(jié)易錯(cuò)知識(shí)點(diǎn)本節(jié)論述了printf( )、scanf( )、putchar( )和getchar( )的詳細(xì)用法。關(guān)于scanf( )的用法應(yīng)注意以下幾點(diǎn):假如在字符控制串中除了格式說明符之外還有其余字符,則在輸入數(shù)據(jù)時(shí)應(yīng)輸入與這些字符同樣的字符。比方:scaf(“%d,%d”,&a,&b);輸入時(shí)用以下形式:5,6此處5后邊是逗號(hào),它與scanf( )函數(shù)字符控制串中的逗號(hào)對(duì)應(yīng)。輸入時(shí)只好輸入逗號(hào),不行用”空格”代替。2)用%c格式輸入字符時(shí),空格、回車及轉(zhuǎn)義字符均作為有效字符輸入。比方:scanf(若要使變量a,b,c

“%c%c%c”,&a,&b,&c);的值分別為’A’、’B’、’

C’,就只好輸入

ABC<回車>。當(dāng)使用多個(gè)scanf( )函數(shù)連續(xù)給多個(gè)字符型變量賦值時(shí),注意輸入的方法。比方:scanf(“%c”,&c1);scanf(“%c”,&c2);假如要使得c1的值為’a’,c2的值為’b’,則正確輸入方法為:ab<回車>,而不是a<回車>b<回車>。碰到滿足最大字段寬度或非法輸入時(shí)認(rèn)為結(jié)束,如:”%2d”,只取兩位數(shù)。如:scanf(“%d%c%f”,&a,&b,&c);若輸入:1234a則a的值1234,b的值a,c的值56。實(shí)驗(yàn)指導(dǎo)實(shí)驗(yàn)名稱次序構(gòu)造程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康恼莆諗?shù)據(jù)的輸入輸出的方法,能正確使用相關(guān)格式變換符;熟習(xí)次序構(gòu)造程序中語句的履行過程;掌握次序構(gòu)造程序的設(shè)計(jì)方法二、實(shí)驗(yàn)內(nèi)容與要求1.以下程序作用是挨次輸入

2個(gè)整數(shù),計(jì)算并輸出這

2個(gè)整數(shù)之差。#include<>voidmain( ){floata,b,c;printf(“inputa,b”\n”);scanf(“%d,%d”,&a,&b);c=a-b;printf(“c=%d\n”,c);}①分析程序,若運(yùn)轉(zhuǎn)時(shí)輸入:100,60<回車>后預(yù)期結(jié)果是多少?②上機(jī)運(yùn)轉(zhuǎn)該程序,查察程序運(yùn)轉(zhuǎn)結(jié)果能否符合題目要求。假如不符合分析原由并改正程序,直至符合要求為止。按以下公式計(jì)算并輸出s的值,s=3/(a+b)2。有以下程序:#include<>voidmain( ){inta,b;floats;scanf(“%d,%d”,&a,&b);s=3/(a+b)*(a+b);printf(“s=%f\n”,s);

/*

有兩個(gè)錯(cuò)誤

*/}①依據(jù)題意改正上述程序,并進(jìn)行調(diào)試,直到正確為止。②在①的基礎(chǔ)上,將scanf(“%d,%d”,&a,&b);改為scanf(“%d%d”,&a,&b);后再編譯、鏈接、運(yùn)轉(zhuǎn)。分析以下程序,寫出預(yù)期結(jié)果,而后輸入調(diào)試,查察運(yùn)轉(zhuǎn)結(jié)果與預(yù)期結(jié)果能否一致并分析其原由。#include""voidmain( ){inta=-1;unsignedb=65534;printf("%d,%o,%x,%u\n",a,a,a,a);printf("b=%d",b);}編程并上機(jī)調(diào)試運(yùn)轉(zhuǎn)設(shè)圓半徑為r=,求圓周長(zhǎng)和面積。要求用scanf函數(shù)輸入數(shù)據(jù),輸出時(shí)取小數(shù)點(diǎn)后兩位。輸入一個(gè)3位十進(jìn)制整數(shù),分別輸出百位、十位以及個(gè)位上的數(shù)。3)從鍵盤輸入一個(gè)帶2位的實(shí)數(shù),將其整數(shù)部分和小數(shù)部分分別后輸出。比方:輸入,輸出=321+。4)用getchar函數(shù)讀入兩個(gè)字符,而后分別用putchar和printf函數(shù)輸出這兩字符。選擇構(gòu)造程序設(shè)計(jì)重點(diǎn)導(dǎo)讀關(guān)系運(yùn)算符與關(guān)系表達(dá)式關(guān)系運(yùn)算是邏輯運(yùn)算中比較簡(jiǎn)單的一種。它的實(shí)質(zhì)是兩個(gè)值之間的”比較運(yùn)算”,其結(jié)果只有兩種:”真”、”假”。所以關(guān)系表達(dá)式的運(yùn)算結(jié)果也只有兩種:”真”、”假”。C語言供給6種關(guān)系運(yùn)算符:>、<、>=、==和!=。在這里>、<、>=、優(yōu)先級(jí)同樣,==和!=優(yōu)先級(jí)同樣。前4種的優(yōu)先級(jí)高于后二者。邏輯運(yùn)算符與邏輯表達(dá)式邏輯運(yùn)算符能夠?qū)⒍鄠€(gè)關(guān)系表達(dá)式或邏輯量連結(jié)起來,構(gòu)成邏輯表達(dá)式。C語言里供給了3種邏輯運(yùn)算符:!、&&、||。不一樣邏輯運(yùn)算符進(jìn)行運(yùn)算所得的結(jié)果以下表:ab!a!ba&&ba|b真(非0)真(非0)假(0)假(0)真(1)真(1)真(非0)假(0)假(0)真(1)假(0)真(1)假(0)真(非0)真(1)假(0)假(0)真(1)假(0)假(0)真(1)真(1)假(0)假(0)在C語言中,關(guān)系表達(dá)式與邏輯表達(dá)式的結(jié)果用數(shù)據(jù)值“1”表示真、“0”表示假。判斷一個(gè)表達(dá)式時(shí),非“0”即為真、“0”為假。語句的三種基本形式用if語句能夠構(gòu)成選擇構(gòu)造。它判斷給定的條件能否滿足,以決定履行某個(gè)分支程序段。C語言的if語句有三種基本的實(shí)現(xiàn)形式:if、if-else和if-elseif形式。語句C語言供給了另一種用于多分支選擇的switch語句,其一般形式為:switch(表達(dá)式){case常量表達(dá)式1:語句1case常量表達(dá)式2:語句2case常量表達(dá)式n:語句ndefault:語句n+1}其表達(dá)式應(yīng)為整型、字符型、列舉型表達(dá)式。它的語意是:計(jì)算表達(dá)式的值,并挨次與此后的常量表達(dá)式值對(duì)比較,當(dāng)表達(dá)式的值與某個(gè)常量表達(dá)式的值相等時(shí),即履行此后的語句。假如表達(dá)式與所有的case后的常量表達(dá)式均不同樣時(shí),則履行default后的語句。經(jīng)典例題分析1.如有

inti;

則履行語句

i=4>3>2;

后,i

的值為

。分析:這是一個(gè)關(guān)系表達(dá)式,在這個(gè)表達(dá)式中有’>‘和’=‘,可知’>‘的優(yōu)先級(jí)高于’=‘,且’>‘的聯(lián)合性是→,所以,先判斷4>3,明顯是為真的,即表達(dá)式的值為1。再判斷1能否大于2,明顯不建立為假,即為0,而后把0賦給i,所以i的值為0。答案:0。2.若變量

c為

char

種類,以下選項(xiàng)中能正確判斷出

c為數(shù)字字符的表達(dá)式是

。A)’0’<=c<=‘9’

B)c>=‘0’&&c<=‘9’

C)c>=0&&c<=9’

D)c>=‘0’&c<=‘9’分析:在C語言中要表達(dá)在’0’~’9’之間,所以應(yīng)為:答案:D。

a>b>c應(yīng)當(dāng)這樣寫a>b&&b>c,因?yàn)閏>=‘0’&&c<=‘9’。

c為數(shù)字字符,應(yīng)3.已知

intx=1,y=2,z=3;

則邏輯表達(dá)式

x<y||++z

運(yùn)算后,

z的值是

。分析:C語言在計(jì)算邏輯表達(dá)式時(shí),假如在某一步已獲得了整個(gè)表達(dá)式的結(jié)果,則后邊的部分將不再計(jì)算。關(guān)于&&表達(dá)式,若已獲得一個(gè)操作數(shù)為0,則后邊的操作數(shù)不再計(jì)算。關(guān)于||表達(dá)式,若已獲得一個(gè)操作數(shù)為1,則后邊的操作數(shù)不再計(jì)算。此題中,1<2明顯為真即為1,所以++z不需要再運(yùn)算了,z的值沒改變,還是為3。答案:3。4.以下程序運(yùn)轉(zhuǎn)的結(jié)果是:

。#include<>voidmain( ){charc=

‘d’;if(

‘m’<c<=‘z’)printf(

“YES”);elseprintf(

“NO”);}分析:這是if-else形式,格式為:if(表達(dá)式)語句1else語句2其語義是:假如表達(dá)式的值為真,則履行語句1,不然履行語句式’m’<c<=‘z’結(jié)果為真,所以履行printf(“YES”);

2。此題中,表達(dá)答案:YES。(表達(dá)式)語句,此中”表達(dá)式”

。A)一定是邏輯表達(dá)式

B)

一定是關(guān)系表達(dá)式C)一定是邏輯表達(dá)式和關(guān)系表達(dá)式D)能夠是隨意合法的表達(dá)式分析:表達(dá)式一般是關(guān)系表達(dá)式或邏輯表達(dá)式,用于描繪選擇構(gòu)造的條件,但也能夠是其余種類的表達(dá)式,只需其合法,在其值非0時(shí)都視為真,所以其余表達(dá)式也能夠做if語句的判斷條件。答案:D。6.以下程序運(yùn)轉(zhuǎn)結(jié)果是:

。#include<>voidmain( ){inta=1;if(a)printf(elseprintf(

“YES”);“NO”);}分析:if(表達(dá)式)中的”表達(dá)式”能夠是隨意合法的,此題a的值為1,if(a)printf(“YES”);elseprintf(真(非0),假如為真則輸出”YES”,不然輸出”NO”。答案:YES。

其實(shí)質(zhì)是判斷表達(dá)式是真還是假?!癗O”);的含義是判斷a能否為語言關(guān)于嵌套的if語句規(guī)定else老是般配。A)與最外層的ifB)與以前近來的且未配對(duì)的ifC)與以前近來的不帶else的ifD)與近來的{}以前的if分析:在C語言中,為了防范語句造成二義性,規(guī)定,else老是與它前面近來的未配對(duì)的if配對(duì)。答案:B。8.以下程序運(yùn)轉(zhuǎn)結(jié)果是:

。#include<>voidmain( ){intx=1,y=2,z=3;if(x<y)if(y<z)printf(“%d”,++z);elseprintf(“%d”,++y);printf(“%d\n”,x++);}分析:由if-else般配規(guī)則可知,不建立,履行printf(“%d”,++y);y<z很明顯x<y建立,接著判斷y<zprintf(“%d\n”,++z);而后履行printf(

else與if(y<z)配對(duì),也就是說當(dāng)x<y建即刻,y<z建立,則履行printf(“%d”,++z);。因?yàn)閤=1,y=2,能否建立,很明顯是建立的,那么直接履行“%d\n”,x++);。419.如有定義:

floatx=;inta=1,b=3,c=2;

則正確的

switch

語句是

。A)switch(x)

B)switch((int)x);{

{}

case:printf(case:printf(

“*\n“**\n}

”);”);

case1:printf(case2:printf(

“*\n“**\n

”);”);C)switch(a+b)

D)switch(a+b){

{case1:printf(case2+1:printf(

“*\n”);“**\n”);

case1:printf(casec:printf(

“*\n“**\n

”);”);}

}分析:C語言供給了另一種用于多分支選擇的switch(表達(dá)式)

switch

語句,其一般形式為:{casecase

常量表達(dá)式常量表達(dá)式

1:語句2:語句

12case常量表達(dá)式default:語句

n:語句n+1

n}表達(dá)式一般應(yīng)為整型、字符型、列舉型表達(dá)式。A選項(xiàng)中整型、字符型或列舉型常量表達(dá)式;B選項(xiàng)switch((int)x);c:printf(“**\n”);中c是一個(gè)變量,應(yīng)為一個(gè)常量表達(dá)式。

case后是浮點(diǎn)型,應(yīng)為一個(gè)中多了分號(hào),D選項(xiàng)case答案:C。10.以下程序履行后結(jié)果是

。#include<>voidmain( ){inta=16,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0:m++;break;}}printf(

“%d”,m);}分析:switch語句的意思為:計(jì)算表達(dá)式的值,并挨次與此后的常量表達(dá)式值對(duì)比較,當(dāng)表達(dá)式的值與某個(gè)常量表達(dá)式的值相等時(shí),即履行此后的語句。假如表達(dá)式與所有的后的常量表達(dá)式均不同樣時(shí),則履行default后的語句。break語句用于跳出switch此題a%3值為1,履行case1:m++;以及后邊的語句。b%2值為1,履行default:m++;后邊的語句。答案:3。

case語句。以及習(xí)題一、選擇題1.以下程序段運(yùn)轉(zhuǎn)后結(jié)果是。inta,b,c;a=1;b=2;c=3;if(a>b)c=a;b=c;printf(“a=%d,b=%d,c=%d”,a,b,c);A)a=1,b=3,c=3

B)a=1,b=3,c=2

C)a=1,b=2,c=3

D)a=2,b=1,c=12.以下程序運(yùn)轉(zhuǎn)后的結(jié)果是

。#include<>voidmain( ){inta=1,b=2,c=3;if(a++==1&&(++b==3&&c++==3))printf(

“%d,%d,%d\n”,a,b,c);}A)1,2,3

B)2,3,5

C)2,2,3

D)2,3,43.與

y=(x>0?1:x<0?-1:0)的功能同樣的A)if(x>0)y=1;elseif(x<0)y=-1;elsey=0;C)y=-1;if(x)if(x>0)y=1;elseif(x==0)y=0;elsey=-1;

if

語句是B)if(x)if(x>0)y=1;elseif(x<0)y=-1;D)y=0;if(x>=0)if(x>0)y=-1;elsey=-1;

。4.有以下程序,履行后結(jié)果是

。#include<>voidmain( ){inta=5,b=4,c=3,d=2;if(a>b>c)printf(“%d\n”,d);elseif((c-1)>=d)==1)printf(elseprintf(“%d\n”,d+2);

“%d\n”,d+1);}A)2

B)3

C)4

D)55.如有定義:

floatw;inta,b;charc;

則合法的

switch

語句是

。A)switch(b)

B)switch(a);{

{case:printf(case:printf(

“*\n“**\n

”);”);

case1printf(case2printf(

“*\n“**\n

”);”);}}C)switch(b){{case1:printf(case1+2:printf(}}

D)switch(w)“*\n”);case1:printf(“**\n”);casec:printf(

“*\n“**\n

”);”);6.以下程序運(yùn)轉(zhuǎn)后的結(jié)果是

。#include<>voidmain( ){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf(

“%d,%d\n”,a,b);}A)2,1

B)1,1

C)1,0

D)2,2二、填空題1.能正確表述邏輯關(guān)系20<x<30或x<-100的C語言表達(dá)式是。2.設(shè)inta=0,b=0,c=0;c=a++&&b++;則a,b,c的值分別是。3.若從鍵盤輸入58,則以下程序輸出結(jié)果是。#include<>voidmain( ){inta;scanf(“%d”,&a);if(a>50)printf(“%d”,a);if(a<=58)printf(“%d”,a);if(a>=58)printf(“%d”,a);}4.以下程序運(yùn)轉(zhuǎn)后的結(jié)果是

。#include<>voidmain( ){intx=10,y=20,t=0;if(x==y)t=x;x=y;y=t;printf(“%d,%d\n”,x,y);}5.當(dāng)inta=1,b=3,c=5,d=4;時(shí),履行以下一段程序后,x的值:。if(a<b)if(c<d)x=1;elseif(a<c)if(b<d)x=2;elsex=3;elsex=6;elsex=7;6.以下程序運(yùn)轉(zhuǎn)后的結(jié)果是。#include<>voidmain( ){intx=1,y=0,a=1,b=0;switch(x){case1:switch(y){case0:a++;case1:b++;break;}case2:a++;b++;break;}printf(“a=%d,b=%d\n”,a,b);}三、編程題要求輸入三個(gè)數(shù),輸出此中最大值。2.由鍵盤輸入3個(gè)數(shù),若輸入的這3個(gè)數(shù)能夠構(gòu)成三角形,則計(jì)算以這3個(gè)數(shù)為邊長(zhǎng)的三角形周長(zhǎng);假如不可以,則輸出提示錯(cuò)誤信息。從鍵盤上輸入一個(gè)整數(shù)判斷其奇偶以及正負(fù)。判斷方程ax2+bx+c=0的根的個(gè)數(shù)。5.從鍵盤輸入表示年份的整數(shù),判斷能否為閏年。判斷閏年的方法是:能被400整除的年是閏年;或許凡是能被4整除但不可以被100整除的年是閏年。本節(jié)易錯(cuò)知識(shí)點(diǎn)本節(jié)論述了邏輯表達(dá)式、if、if-else、if-else和switch語句的詳細(xì)用法。1.在邏輯表達(dá)式運(yùn)算中應(yīng)注意,假如在某一步已獲得了整個(gè)表達(dá)式結(jié)果,則后邊的部分將不再計(jì)算。比方:c=b&&++a;假如這里b為0,那么++a將不再履行,仍為原值。在if語句中,應(yīng)當(dāng)注意if語句中的表達(dá)式能夠?yàn)樗械暮戏ǖ谋磉_(dá)式。比方:inta=1;if(a=0)printf(“Yes”);elseprintf(“No”);3.在if語句3種形式中,假如要想在滿足條件是履行一組語句,一定使用{}括起來一個(gè)復(fù)合語句,但在{}后邊不可以加分號(hào)。4.在使用switch( )語句時(shí)應(yīng)注意:在case后的各個(gè)常量表達(dá)式值都不可以同樣;case后同意有多個(gè)語句,能夠不用{}括起來;若每個(gè)分支后,都有break語句,則各case和default子句先后次序能夠改動(dòng)而不影響程序結(jié)果;default子句能夠省略不用。實(shí)驗(yàn)指導(dǎo)實(shí)驗(yàn)名稱選擇構(gòu)造程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康膶W(xué)會(huì)正確使用關(guān)系運(yùn)算符和關(guān)系表達(dá)式;學(xué)會(huì)正確使用邏輯運(yùn)算符和邏輯表達(dá)式以及關(guān)系表達(dá)式等;嫻熟掌握if語句和switch語句;熟習(xí)選擇構(gòu)造程序中的語句履行過程,掌握選擇構(gòu)造程序設(shè)計(jì)的方法。二、實(shí)驗(yàn)內(nèi)容與要求編寫程序,判斷從鍵盤上輸入的一個(gè)字符,并按以下要求輸出。若該字符是數(shù)字,輸出字符串”0-9”;若該字符是大寫或許小寫字母,輸出字符串”A-z”;若該字符是其余字母,輸出”!,@,”。#include<>voidmain( ){charc;scanf(

“%c”,&c);if(

)printf(

“0-9\n

”);elseif(

)printf(

“A-z”);printf(

“!,@,

\n”);}完美上述源程序,對(duì)源程序進(jìn)行編譯、連結(jié),運(yùn)轉(zhuǎn)程序,并寫出結(jié)果。序輸入數(shù)據(jù)預(yù)期結(jié)果運(yùn)轉(zhuǎn)結(jié)果號(hào)3G#編程并上機(jī)調(diào)試運(yùn)轉(zhuǎn)1)給出一個(gè)不多于4位的正整數(shù),求它是幾位數(shù)?2)給出一個(gè)百分制成績(jī),要求輸出成績(jī)等級(jí)’A’、’B’、’C’、’D’、’E’。90分及以上為’A’,80~89為’B’,70~79為’C’,60~69為’D’,60以下為’E’。用switch語句來實(shí)現(xiàn)。3)輸入4個(gè)整數(shù),要求按從大到小次序輸出。輸入3個(gè)整數(shù),將最大數(shù)與最小數(shù)互換。輸入一個(gè)字符,假如是數(shù)字字符,把它變換成相對(duì)應(yīng)的數(shù)字并輸出;假如不是,則以帶符號(hào)的十進(jìn)制整數(shù)形式輸出。循環(huán)構(gòu)造程序設(shè)計(jì)重點(diǎn)導(dǎo)讀語句while語句一般形式為:while(表達(dá)式)語句。它的履行過程為:計(jì)算表達(dá)式的值,當(dāng)值為真,履行循環(huán)體語句。其特色是:先判斷,后履行。2.do-while

語句do-while

語句一般形式為:

do

循環(huán)體語句

while

(表達(dá)式);它的履行過程:先履行循環(huán)體一次,再判斷表達(dá)式的值,若為真則連續(xù)循環(huán),不然停止循環(huán)。語句for語句是C語言所供給的功能更強(qiáng),使用更寬泛的一種循環(huán)語句。for語句的一般形式是:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)此中表達(dá)式1一般是賦值表達(dá)式,用來給循環(huán)變量賦初值。表達(dá)式2一般為關(guān)系表達(dá)式或邏輯表達(dá)式,表示循環(huán)條件,當(dāng)表達(dá)式2為真時(shí),則連續(xù)循環(huán),不然循環(huán)結(jié)束。表達(dá)式一般是賦值語句或自增(自減)語句,用來改正循環(huán)變量的值,表示循環(huán)變量的變化方式。

34.轉(zhuǎn)移語句程序中的語句平常老是按次次方向或按語句功能定義的方向履行的。的正常流向,能夠使用轉(zhuǎn)移語句。在C語言中供給了4種轉(zhuǎn)移語句:

假如需要改變程序break,continue,return,goto5.循環(huán)嵌套一個(gè)循環(huán)語句的循環(huán)體內(nèi)包含另一個(gè)完好的循環(huán)語句,稱為循環(huán)的嵌套。循環(huán)的嵌套能夠構(gòu)成多重嵌套。經(jīng)典例題分析1.以下程序段中,while循環(huán)履行的次數(shù)是。intk=0;while(k=1)--k;A)無窮次B)不可以履行C)一次也不履行D)履行1次分析:while語句一般形式為while(表達(dá)式)語句,履行過程為:計(jì)算表達(dá)式的值,當(dāng)值為真(非0)時(shí),履行循環(huán)體語句。其特色是先判斷,后履行。此題k初始值為0,當(dāng)進(jìn)入循環(huán)的判斷表達(dá)式后k的值為1,為真。因?yàn)榕袛啾磉_(dá)式是一個(gè)賦值表達(dá)式,每次循環(huán)執(zhí)行完以后,k的值老是被賦值為1,判斷表達(dá)式向來為真,所以履行無窮次。答案:A。2.以下兩個(gè)程序輸入

11后結(jié)果分別是

。#include<>voidmain( )

#include<>voidmain( ){

{intsum=0,i;intsum=0,i;scanf(“%d”,&i);scanf(while(i<=10)do{{sum=sum+i;sum=sum+i;i++;i++;}}while(i<=10);printf(“sum=%d\n”,sum);

“%d”,&i);printf(

“sum=%d\n”,sum);}

}do

分析:while(表達(dá)式)語句。計(jì)算表達(dá)式的值,當(dāng)值為真時(shí),履行循環(huán)體語句。循環(huán)體語句while(表達(dá)式);先履行循環(huán)體一次,在判斷表達(dá)式的值,若為真則連續(xù)循環(huán),不然停止循環(huán)。答案:0,11。(表達(dá)式1;;表達(dá)式3)可理解為。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)分析:for語句的一般形式是for(表達(dá)式1;表達(dá)式2;表達(dá)式3)。此中表達(dá)式2一般為關(guān)系表達(dá)式或邏輯表達(dá)式,表示循環(huán)條件,當(dāng)表達(dá)式2為真時(shí),則連續(xù)循環(huán),不然循環(huán)結(jié)束。題目中表達(dá)式2為空,也就是說本循環(huán)沒有建立條件,那么循環(huán)為無窮循環(huán),所以表達(dá)式2向來為真(非0)。答案為B。4.以下程序的運(yùn)轉(zhuǎn)結(jié)果是。#include<>voidmain( ){intc=0,k;for(k=1;k<3;k++)switch(k){default:c+=k;case2:c++;break;case4:c+=2;break;}printf(“%d\n”,c);}分析:for語句履行過程是①先求表達(dá)式1。②求解表達(dá)式2,若為真,則履行for語句的內(nèi)嵌語句,而后履行第3步。若為假,則結(jié)束循環(huán),轉(zhuǎn)到第5步。③求解表達(dá)式3。④轉(zhuǎn)回上邊第2步。⑤循環(huán)結(jié)束。當(dāng)k為1,switch( )語句履行完成后c為2;當(dāng)k為2,switch( )語句履行完成后c為3,當(dāng)k為3時(shí),循環(huán)結(jié)束,履行printf(“%d\n”,c);語句。答案:3。5.履行以下程序后,輸出’#’的個(gè)數(shù)是。#include<>voidmain( ){inti,j;for(i=1;i<5;i++)for(j=2;j<=i;j++)putchar(‘#’);}分析:一個(gè)循環(huán)語句的循環(huán)體內(nèi)包含一個(gè)完好的循環(huán)語句,稱為循環(huán)嵌套。循環(huán)的嵌套能夠構(gòu)成多重嵌套。各樣循環(huán)語句之間能夠互相嵌套。此題是一個(gè)二重循環(huán),履行過程為:把1賦給i,判斷i能否小于5,假如小于,則履行第二個(gè)for語句循環(huán),直到第二個(gè)for語句的循環(huán)結(jié)束,返回上一層履行i的自加,判斷能否小于5,假如條件建立,則連續(xù)履行第二個(gè)for循環(huán)。直到第一個(gè)循環(huán)的i等于5時(shí),整個(gè)循環(huán)結(jié)束。所以輸出6個(gè)’#‘。答案:6。6.以下程序運(yùn)轉(zhuǎn)后的輸出結(jié)果是。#include<>voidmain( ){inti=0,s=0;for(;;){if(i==3||i==5)continue;if(i==6)break;i++;s+=i;}printf(“%d\n”,s);}A)10B)13C)21D)程序進(jìn)入死循環(huán)分析:break語句用在switch語句或循環(huán)語句中,其作用是跳出switch語句或跳出本層循環(huán),轉(zhuǎn)去履行后邊的程序。continue語句只好用在循環(huán)體中,其作用是結(jié)束本次循環(huán),即不再履行循環(huán)體中continue語句以后的語句,轉(zhuǎn)入下一次循環(huán)。答案:D。習(xí)題一、選擇題1.語句

while(!c);

中的條件!c

等價(jià)于

。A)c==0

B)c!=1

C)c!=0

D)-c2.設(shè)有以下程序,運(yùn)轉(zhuǎn)結(jié)果是

。#include<>voidmain( ){inty=10;for(;y>0;y--)if(y%3==0)printf(}A)852B)963

“%d”,--y);C)1063

D)7413.以下程序段的輸出結(jié)果是

。intx=3;do{printf(A)10

“%3d”,x-=2);}while(!(--x));B)3-2C)1

-2

D)14.履行下邊的程序后,a的值是。#include<>voidmain( ){inta,b;for(a=1,b=1;a<100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf(“%d”,a);}A)7B)8C)9D)105.以下程序段的輸出結(jié)果是。inti,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m++;printf(“%d\n”,m);A)12B)15C)20D)25二、填空題要使以下程序段輸出10個(gè)整數(shù),請(qǐng)?zhí)钊胍粋€(gè)整數(shù)。for(i=0;i<=;printf(“%d\n”,i+=2));2.若輸入字符串:abcde<回車>,則以下while循環(huán)體將履行

次。#include<>voidmain( ){charch;while((ch=getchar( ))==

‘e’)printf(

“*”);}3.以下程序在運(yùn)轉(zhuǎn)時(shí),假如從鍵盤輸入1298,則結(jié)果是。#include<>voidmain( ){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(

“%d”,n1);}}4.以下程序運(yùn)轉(zhuǎn)結(jié)果是#include<>voidmain( ){

。inti,a=3,b=4,t;for(i=1;i<=5;i++)switch(i%5){case0:b=3;case1:t=a;a=b;b=t;break;default:b=5;}printf(“%d,%d\n”,a,b);}5.以下程序運(yùn)轉(zhuǎn)結(jié)果是。#include<>voidmain( ){inti,j,s=0;for(i=1;i<=4;i++)for(j=1;j<=5-i;j++)s=s+i*j;printf(“%d”,s);}6.以下程序運(yùn)轉(zhuǎn)后結(jié)果是。#include<>voidmain( ){inta=1,b;for(b=1;b<10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf(“%d\n”,b);}三、編程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論