C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)教程習(xí)題答案_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)教程習(xí)題答案_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)教程習(xí)題答案_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)教程習(xí)題答案_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)教程習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、習(xí)題答案第1章1.1 填空題1.1.1 應(yīng)用程序ONEFUNC.C中只有一個(gè)函數(shù),這個(gè)函數(shù)的名稱是_main 。1.1.2 一個(gè)函數(shù)由_函數(shù)頭_和_函數(shù)體_兩部分組成。1.1.3 在C語(yǔ)言中,輸入操作是由庫(kù)函數(shù)_scanf 完成的,輸出操作是由庫(kù)函數(shù)_printf_完成的。1.1.4 通過(guò)文字編輯建立的源程序文件的擴(kuò)展名是_.c_;編譯后生成目標(biāo)程序文件,擴(kuò)展名是_.obj_;連接后生成可執(zhí)行程序文件,擴(kuò)展名是_.exe_;運(yùn)行得到結(jié)果。1.1.5 C語(yǔ)言程序的基本單位或者模塊是_函數(shù)_。1.1.6 C語(yǔ)言程序的語(yǔ)句結(jié)束符是_;_。1.1.7 編寫一個(gè)C程序,上機(jī)運(yùn)行要經(jīng)過(guò)的步驟:_。1.1.

2、8 在一個(gè)C語(yǔ)言源程序中,注釋部分兩側(cè)的分界符分別為_(kāi)/*_和_*/_。1.1.9 C語(yǔ)言中的標(biāo)識(shí)符只能由三種字符組成,它們是 字母 、 數(shù)字 和 下劃線 。且第一個(gè)字符必須為 字母或下劃線 。1.1.10 C語(yǔ)言中的標(biāo)識(shí)符可分為關(guān)鍵字、 預(yù)定義標(biāo)識(shí)符 和 用戶標(biāo)識(shí)符 3類。1.2 選擇題1.2.1 一個(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é)束1.2.2 以下敘述不正確的是(C)。A

3、)一個(gè)C源程序可由一個(gè)或多個(gè)函數(shù)組成B)一個(gè)C源程序必須包含一個(gè)main函數(shù)C) 在C程序中,注釋說(shuō)明只能位于一條語(yǔ)句的后面D) C程序的基本組成單位是函數(shù)1.2.3 C語(yǔ)言規(guī)定:在一個(gè)源程序中,main函數(shù)的位置( C )。A)必須在程序的開(kāi)頭B)必須在系統(tǒng)調(diào)用的庫(kù)函數(shù)的后面C)可以在程序的任意位置D)必須在程序的最后1.2.4 C編譯程序是 (A)。A)將C源程序編譯成目標(biāo)程序的程序B)一組機(jī)器語(yǔ)言指令C) 將C源程序編譯成應(yīng)用軟件D) C程序的機(jī)器語(yǔ)言版本1.2.5 要把高級(jí)語(yǔ)言編寫的源程序轉(zhuǎn)換為目標(biāo)程序,需要使用( D)。A) 編輯程序B) 驅(qū)動(dòng)程序 C) 診斷程序 D) 編譯程序1.

4、2.6 以下敘述中正確的是( C)。A) C語(yǔ)言比其他語(yǔ)言高級(jí)B) C語(yǔ)言可以不用編譯就能被計(jì)算機(jī)識(shí)別執(zhí)行C) C語(yǔ)言以接近英語(yǔ)國(guó)家的自然語(yǔ)言和數(shù)學(xué)語(yǔ)言作為語(yǔ)言的表達(dá)形式D) C語(yǔ)言出現(xiàn)的最晚,具有其他語(yǔ)言的一切優(yōu)點(diǎn)1.2.7 以下敘述中正確的是(A)。A) C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方B) 花括號(hào)“”和“”只能作為函數(shù)體的定界符C) 構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名D) 分號(hào)是C語(yǔ)句之間的分隔符,不是語(yǔ)句的一部分1.2.8 以下敘述中正確的是( B)。A) C語(yǔ)言的源程序不必通過(guò)編譯就可以直接運(yùn)行B) C語(yǔ)言中的每條可執(zhí)行語(yǔ)句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)

5、器指令C) C源程序經(jīng)編譯形成的二進(jìn)制代碼可以直接運(yùn)行D) C語(yǔ)言中的函數(shù)不可以單獨(dú)進(jìn)行編譯1.2.9 用C語(yǔ)言編寫的代碼程序(B)。A) 可立即執(zhí)行 B) 是一個(gè)源程序C) 經(jīng)過(guò)編譯即可執(zhí)行D) 經(jīng)過(guò)編譯解釋才能執(zhí)行1.2.10 以下敘述中正確的是(C )。A) 在C語(yǔ)言中,main函數(shù)必須位于程序的最前面B) C語(yǔ)言的每行中只能寫一條語(yǔ)句C) C語(yǔ)言本身沒(méi)有輸入輸出語(yǔ)句D) 在對(duì)一個(gè)C程序進(jìn)行編譯的過(guò)程中,可以發(fā)現(xiàn)注釋中的拼寫錯(cuò)誤1.2.11 下列4組選項(xiàng)中,均不是C語(yǔ)言關(guān)鍵字的選項(xiàng)是( A )。A)define B)getc C)include D)while IF char scanf

6、 go type printf case pow1.2.12 下列4組選項(xiàng)中,均是C語(yǔ)言關(guān)鍵字的選項(xiàng)是(B)。A)auto B)switch C)signed D)if enum typedef union struct include continue scanf type1.2.13 C語(yǔ)言中的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線3種字符組成,且第一個(gè)字符(C)。A) 必須為字母 B)必須為下劃線C)必須為字母或下劃線 D)可以是字母、數(shù)字和下劃線中任一種字符1.3 編程題1.3.1 參照本章例題,編寫一個(gè)C程序,要求輸出如下字符。*Welcome to Expo 2010!Shanghai 2

7、010#include <stdio.h>void main()printf(“*n”);printf(“ Welcome to Expo 2010!n”);printf(“ Shanghai 2010n”);printf(“*n”);1.3.2 設(shè)計(jì)一程序,輸入3個(gè)整數(shù),計(jì)算并顯示輸出這3個(gè)整數(shù)之和。#include <stdio.h>void main()int a,b,c;printf(“input a,b,c:n”);scanf(“%d%d%d”,%a,%b,%c);printf(“the sum of a,b,c is %5dn”,a+b+c);第2章2.1填

8、空題2.1.1 C程序中數(shù)據(jù)有 常量 和 變量之分,其中,用一個(gè)標(biāo)識(shí)符代表一個(gè)常量的,稱為 符號(hào) 常量。C語(yǔ)言規(guī)定在程序中對(duì)用到的所有數(shù)據(jù)都必須指定其 數(shù)據(jù) 類型,對(duì)變量必須做到先 定義 ,后使用。2.1.2 C語(yǔ)言中,用關(guān)鍵字 float 定義單精度實(shí)型變量,用關(guān)鍵字 double 定義雙精度實(shí)型變量,用關(guān)鍵字 char 定義字符型變量。2.1.3 在C語(yǔ)言中,以16位PC機(jī)為例,一個(gè)char型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為 1 ;一個(gè)int型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為 2 ,則int型數(shù)據(jù)的取值范圍為 -3276832767 。一個(gè)float型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為 4 ;一個(gè)double

9、型數(shù)據(jù)在內(nèi)存中所占的字節(jié)數(shù)為 8 。單精度型實(shí)數(shù)的有效位是 6-7 位 ,雙精度型實(shí)數(shù)的有效位是 15-16 位 。2.1.4 設(shè)C語(yǔ)言中的一個(gè)基本整型數(shù)據(jù)在內(nèi)存中占2個(gè)字節(jié),若欲將整數(shù)135791正確無(wú)誤地存放在變量a中,應(yīng)采用的類型說(shuō)明語(yǔ)句是 long int a=15791; 。2.1.5 C的字符常量是用 單 引號(hào)括起來(lái)的 1 個(gè)字符,而字符串常量是用 雙引號(hào)括起來(lái)的 字符 序列。2.1.6 C語(yǔ)言中,用“”開(kāi)頭的字符序列稱為轉(zhuǎn)義符。轉(zhuǎn)義符“n”的功能是 回車換行 ;轉(zhuǎn)義符“r”的功能是 回車 。2.1.7 若有定義:char c=010;則變量c中包含的字符個(gè)數(shù)為 1 。2.1.8

10、負(fù)數(shù)在計(jì)算機(jī)中是以 補(bǔ)碼 形式表示。2.1.9 C語(yǔ)言中,&作為雙目運(yùn)算符是表示的是 按位與 ,而作為單目運(yùn)算符時(shí)表示的是 取位置 。2.1.10 在C語(yǔ)言的賦值表達(dá)式中,賦值號(hào)左邊必須是 變量 。2.1.11 自增運(yùn)算符+、自減運(yùn)算符-,只能用于 變量 ,不能用于常量或表達(dá)式。+和- -的結(jié)合方向是“自 右左 至 左 ”。2.1.12 若a是int型變量,則執(zhí)行下面表達(dá)式后a的值為 2 。a=25/3%32.1.13 寫出下列數(shù)所對(duì)應(yīng)的其它進(jìn)制數(shù)(D對(duì)應(yīng)十進(jìn)制,B對(duì)應(yīng)二進(jìn)制,o對(duì)應(yīng)八進(jìn)制,H對(duì)應(yīng)十六進(jìn)制)32D= 100000 B= 40 O= 20 H75D= 1001011 B=

11、 113 O= 4B H2.1.14 假設(shè)已指定i為整型變量,f為float變量,d為double型變量,e為long型變量,有式子10'a'+i*f-d/e,則結(jié)果為 double 型。2.1.15 若有定義:int x=3,y=2; float a=2.5,b=3.5;則下面表達(dá)式的值為 1 。(x+y)%2+(int)a/(int)b2.1.16 5/3的值為 1 ,5.0/3的值為 1.666667 。2.1.17 若有以下定義,int m=5,y=2;則執(zhí)行表達(dá)式y(tǒng)+=y-=m*=y后的y值是 -16 。2.1.18 若a是int型變量,則表達(dá)式(a=4*5,a+2)

12、,a+6的值為 26 。2.1.19 若x和n均為int型變量,且x的初值為12,n的初值為5,則執(zhí)行表達(dá)式x%=(n%=2)后x的值為: 0 。2.1.20 若有定義語(yǔ)句:int e=1,f=4,g=2;float m=10.5,n=4.0,k;,則執(zhí)行表達(dá)式k=(e+f)/g+sqrt(double)n)*1.2/g+m后k的值是 13.7 。2.2 選擇題2.2.1 逗號(hào)表達(dá)式"(a=3*5,a*4),a+15"的值是( C )。A) 15 B) 60 C) 30 D) 不確定2.2.2 若有以下定義和語(yǔ)句:char c1='a', c2='f

13、'printf("%d,%cn",c2-c1,c2-'a'+'B');  則輸出結(jié)果是:( D )A) 2 ,M B) 5,! C) 2,E D) 5,G2.2.3 sizeof(float)是(B )。A)一個(gè)雙精度型表達(dá)式 B)一個(gè)整型表達(dá)式C)一種函數(shù)調(diào)用D)一個(gè)不合法的表達(dá)式2.2.4 若有以下定義,則能使值為3的表達(dá)式是(D )。int k=7,x=12;A)x%=(k%=5)B)x%=(k-k%5)C)x%=k-k%5D)(x%=k)-(k%=5)2.2.5 在C語(yǔ)言中,要求運(yùn)算數(shù)必須是整型的運(yùn)算符是( A )。

14、A) % B) / C) < D) !2.2.6 下面4個(gè)選項(xiàng)中,均是合法整型常量的選項(xiàng)是( A )。A) 160 B) -0xcdf C) -01 D)-0x48a -0xffff 01a 986,012 2e5 011 0xe 0668 0x2.2.7 下面4個(gè)選項(xiàng)中,均是不合法浮點(diǎn)數(shù)的選項(xiàng)是( B )。 A) 160. B)123 C) -.18 D)-e3 0.12 2e4.2 123e4 .234 E3 .e5 0.0 1e32.2.8 下面正確的字符常量是( C )。A)”C” B)” C)W D)2.2.9 在C語(yǔ)言中,int、char和short三種類型數(shù)據(jù)在內(nèi)存中所占用

15、的字節(jié)數(shù)( D )。A)由用戶自己定義 B)均為2個(gè)字節(jié) C)是任意的 D)由所用機(jī)器的機(jī)器字長(zhǎng)決定 2.2.10 假設(shè)所有變量均為整型,則表達(dá)式(a=2,b=5,b+,a+b)后x的值為( B )。A)7B)8C)6D)22.2.11 假設(shè)所有變量均為整型,則表達(dá)式x=(i=4,j=16,k=32)后x的值為( C )。A)4B)16C)32D)522.2.12 若有代數(shù)式,則正確的C語(yǔ)言表達(dá)式是( D )。A)fabs(x*3+log(x)B)fabs(pow(x,3)+log(x)C)abs(pow(x,3.0)+log(x)D)fabs(pow(x,3.0)+log(x)2.2.13

16、設(shè)變量n為float類型,m為int類型,則以下能實(shí)現(xiàn)將n中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五入運(yùn)算的表達(dá)式是( B )。A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0C)n=n*100+0.5/100.0D) n=(n/100+0.5)*100.02.2.14 以下不正確的敘述是( D )。A)在C語(yǔ)言中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低B)在C語(yǔ)言中,APH和aph是兩個(gè)不同的變量C)若a和b類型相同,在執(zhí)行了賦值表達(dá)式a=b后b中的值將放入a中,而b中的值不變D)當(dāng)從鍵盤輸入數(shù)據(jù)時(shí),對(duì)于整型變量只能輸入整型數(shù)值,對(duì)于實(shí)型變量只能輸入實(shí)型數(shù)值2.2.1

17、5 以下正確的敘述是( D)。A)在C語(yǔ)言中,每行中只能寫一條語(yǔ)句B)若a是實(shí)型變量,C程序中允許賦值a=10,因此實(shí)型變量中允許存放整型數(shù)C)在C程序中,無(wú)論是整數(shù)還是實(shí)數(shù),都能被準(zhǔn)確無(wú)誤地表示D)在C程序中,%是只能用于整數(shù)運(yùn)算的運(yùn)算符 2.3編程題2.2.1 編寫一程序,求出給定半徑r的圓的面積和周長(zhǎng),并輸出計(jì)算結(jié)果。其中,r的值由用戶輸入,用實(shí)型數(shù)據(jù)處理。#include<stdio.h>#define PI 3.14159 void main() float r,c,s; printf("input the 半徑 "); scanf("%f&

18、quot;,&r); c=2*PI*r; s=PI*r*r; printf("周長(zhǎng)為%5.2f,面積為%5.2fn",c,s);2.2.2 已知華氏溫度和攝氏溫度之間的轉(zhuǎn)換關(guān)系是:C5/9*(F32)。編寫一程序,將用戶輸入的華氏溫度轉(zhuǎn)換為攝氏溫度,并輸出結(jié)果。#include<stdio.h>void main() float c,f; printf("input the 華氏溫度 "); scanf("%f",&f); c=5.0/9*(f-32); printf("華氏溫度為%5.2f,攝氏

19、溫度為%5.2fn",f,c);習(xí) 題 三3.1 填空題3.1.1 程序的三種基本結(jié)構(gòu)是 順序 、 選擇 、 循環(huán) 。3.1.2 執(zhí)行( a=3.0+5,a*4 ),a+=-6; 變量a 及表達(dá)式的值分別為 2.0,2.0 3.1.3 下列語(yǔ)句被執(zhí)行后的執(zhí)行結(jié)果是 1abcdef 。 int a=1; printf (“%d%s%s”,a,”abc”,”def”);3.1.4 getchar( ) 函數(shù)的作用是 從鍵盤上接收一個(gè)字符 。3.1.5 運(yùn)行以下程序后,用戶輸入123456abc,輸出結(jié)果為 123,45,6 。void main() int a,b; char c; sc

20、anf ("%3d%2d%3c",&a,&b,&c); printf("%d,%d,%c",a,b,c); 3.1.6 下面程序的輸出結(jié)果是 1112 。# include <stdio.h> void main( ) int i=10; /* int i=20; */ i+; printf (“%d”,i +); printf (“%dn”,i ); 3.1.7 下面程序運(yùn)行后,從鍵盤輸入30,則程序的輸出結(jié)果是 a=31,Ha=1f,Oa=37 。void main () int a ; scanf(”%d”, &

21、amp;a ); a+; printf (“a=%d,Ha=%x,Oa=%o”,a,a,a); 3.1.8 下面程序的輸出結(jié)果是 a=-3 b=D“END” 。void main ( ) int a,b=68; a=-3;printf(“ta=%dntb=%cn”end”n”,a,b); 3.1.9 下面程序的輸出結(jié)果是 13.7000000 。# include <stdio.h># include <math.h>main() int a=1,b=4,c=2;float x=10.5,y=4.0,z; z=(a+b)/c+sqrt(double)y)*1.2/c+x

22、; printf(“%fn”,z); 3.1.10 下面程序運(yùn)行后,若輸入a=2,b=3結(jié)果是x1= 6.00 x2= 0.67 。void main( ) float a ,b ,x1, x2 ; scanf (“a=%f,b=%f“ ,&a ,&b ) ; x1=a*b ; x2=a/b ; printf (“x1=%5.2f nx2=%5.2f n” ,x1,x2 ); 3.2 選擇題3.2.1 指出下面正確的輸入語(yǔ)句是( B )。A) scanf (“a=b=%d”,&a,&b); B) scanf (“a=%d,b=%f”,&m,&f

23、);C) scanf (“%3c”,c); D) scanf (“%5.2f”, &f);3.2.2 執(zhí)行scanf (“%d%c%f”,&a,&b,&c) 語(yǔ)句,若輸入1234a12f56 則變量a,b,c的值為 ( C )。A) a=1234 b=a c=12.56 B) a=1 b=2 c=341256C) a=1234 b=a c=12.0 D) a=1234 b=a12 c=56.03.2.3 執(zhí)行scanf (“a=%d,b=%d”,&a,&b) 語(yǔ)句, 若要使變量a和b的值分別為3和4, 則正確的輸入方法為( C )。A) 3 ,4

24、 B) a:3 b: 4 C) a=3,b=4 D) 3 43.2.4 設(shè)b=1234 , 執(zhí)行printf(“%d%d”,b) 語(yǔ)句,輸出結(jié)果為: ( D )。A) 1234 B) %1234 C) %d1234 D) %d12343.2.5 若x是int型變量,y是float型變量,所用scanf語(yǔ)句為 scanf(“x=%d,y=%f”,&x,&y);正確的輸入操作是( A )。A) x=10,y=66.6<回車> B) 10 66.6<回車>C) 10<回車>66.6<回車> D) x=10<回車>y=66.6

25、<回車> 3.2.6 設(shè)a,b均是int型變量,則以下不正確的函數(shù)調(diào)用為( D )。A) getchar(); B) putchar(108);C) scanf(“%d,%2d”,&a,&b); D) putchar(); 3.2.7 下列程序的執(zhí)行結(jié)果是( C )。# include <stdio.h>void main( ) int a=5;float x=3.14;a*=x*(E-A);printf (“%fn”,(float)a); A) 62.800000 B) 62 C) 62.000000 D) 63.0000003.2.8 若輸入2.50

26、 ,下列程序的執(zhí)行結(jié)果是( A )。void main( ) float r , area ; scanf (“ %f ” , & r ) ; printf (“ area=%f n” , area=1/2*r*r ) ; A) 0 B) 3.125 C) 3.13 D) 程序有錯(cuò)3.3 編程題3.3.1 編寫程序,從鍵盤上輸入2個(gè)整數(shù)給變量a和b,交換a、b值然后輸出。/參考程序#include <stdio.h>void main( ) int a,b,temp; scanf("%d%d",&a,&b); printf("n

27、交換前: a=%d,b=%dn",a,b); temp=a;a=b;b=temp; printf("交換后: a=%d,b=%dn",a,b) ;3.3.2 試編寫一個(gè)程序,任意輸入一個(gè)小寫字母,分別按八進(jìn)制、十進(jìn)制、十六進(jìn)制、字符格式輸出。/參考程序:#include <stdio.h>void main() char c; printf("請(qǐng)輸入1個(gè)小寫字母:n"); scanf("%c",&c); printf("八進(jìn)制: %on十進(jìn)制: %dn" ,c,c); printf(&

28、quot;十六進(jìn)制: %xn字符: %cn" ,c,c);3.3.3 輸入一個(gè)華氏溫度,要求輸出攝氏溫度,輸出要有文字說(shuō)明,取2位小數(shù)。公式為: /參考程序:# include <stdio.h>void main() float c,f; printf(“請(qǐng)輸入一個(gè)華氏溫度:n”); scanf(“%f”,&f); c= 5.0/9*(f-32); printf(“華氏溫度F=%.2fn”,f); printf(“攝氏溫度c=%.2fn”,c); 3.3.4 設(shè)圓半徑r=3,圓柱高h(yuǎn)=4,求圓周長(zhǎng)、圓面積、圓球表面積、圓球體積、圓柱體積。用scanf輸入數(shù)據(jù),輸

29、出計(jì)算結(jié)果,輸出時(shí)要求有文字說(shuō)明,取小數(shù)點(diǎn)后2位數(shù)字。請(qǐng)編程序。/參考程序:# include <stdio.h># define PI 3.1415926void main() float r,h,c,s1,s2,v1,v2;printf(“請(qǐng)輸入圓半徑,圓柱高:”); scanf(“%f,%f”,&r,&h); c=2*PI*r; s1=PI*r*r; s2=4*PI*r*r; v1=4/3*PI *r*r*r; v2=s1*h; printf(“r=%.2f,h=%.2fn”,r,h); printf(“圓周長(zhǎng)=%.2f,圓面積=%.2fn”,s1,s2);

30、printf(“圓體積=%.2f,圓柱體積=%.2fn”,v1,v2); 習(xí) 題 四4.1 填空題4.1.1 表示條件:10<x<100或x<0的C語(yǔ)言表達(dá)式是 10<x &&x<100 | x<0 。4.1.2 若要求在if后一對(duì)圓括號(hào)中表示a不等于0的關(guān)系,則能正確表示這一關(guān)系的表達(dá)式為 a 。4.1.3 若已知a=10,b=20,則表達(dá)式!a<b的值為 1 。4.1.4 當(dāng)a=3,b=2,c=1時(shí),表達(dá)式f=a>b>c的值是 0 。4.1.5 設(shè)y為int型變量,請(qǐng)寫出描述“y是奇數(shù)”的表達(dá)式 y%2!=0 。4.1.

31、6 設(shè)x,y,z為int型變量,請(qǐng)寫出描述“x或y中有一個(gè)小于z”的表達(dá)式 x<z&&y>=z|x>=z&&y<z 。4.1.7 已知a=7.5,b=2,c=3.6,表達(dá)式a>b && c>a|a<b && !c>b的值是 1 。4.1.8 假設(shè) a=5, b=2, c=4,以下表達(dá)式的值依次為: 0,1,1,1 。(1) a % b * c && c % b * a(2) b % c * a && a % c * b(3) a % b * c | c

32、 % b * a(4) b % c * a | a % c * b4.1.9 假設(shè) a=3, b=4, c=5,x=0,y=0,以下各表達(dá)式的值依次為 0,1,1,0,1 。(1) a + b > c && b = c(2) a | b + c && b - c(3) ! (a > b) && ! c | 1(4) ! (x = a) && (y = b) && 0(5) ! (a + b) + c 1 && b + c/2 4.1.10 兩次運(yùn)行下面的程序,如果從鍵盤上分別輸入6和4,

33、輸出的結(jié)果是 7和5 。void main() int x; scanf(“%d”,&x); if(x+>5) printf(“%d”,x); else printf(“%dn”,x-); 4.2 選擇題:4.2.1 設(shè)a為整型變量,不能正確表達(dá)數(shù)學(xué)關(guān)系: 10<a<15的C語(yǔ)言表達(dá)式是( A )。A) 10<a<15 B) a=11|a=12|a=13|a=14C) a>10&&a<15 D) !(a<=10)&&!(a>=15)4.2.2 在以下一組運(yùn)算符中,優(yōu)先級(jí)最高的是( C )。A) <

34、;= B) = C) % D) &&4.2.3 設(shè)a,b,c都是int型變量,且a=3,b=4,c=5,則下面表達(dá)式中,值為0的表達(dá)式是 ( D )。A) a&&b B) a<=b C) c|+c&&b-c D) !(a<b)&&!c|1) 4.2.4 在C語(yǔ)言的if語(yǔ)句中,用作判斷的表達(dá)式為( D )。A) 關(guān)系表達(dá)式 B) 邏輯表達(dá)式 C) 算術(shù)表達(dá)式 D) 任意表達(dá)式4.2.5 在以下運(yùn)算符中,優(yōu)先級(jí)最高的運(yùn)算符是( B )。A) = B) C) != D) 4.2.6 假設(shè)所有變量均為整型,表達(dá)式(a=2,b=

35、5,ab? a+:b+,a+b)的值是( B )。A) 7 B) 8 C) 9 D) 2 4.2.7 在C語(yǔ)言中,能代表邏輯值"真"的是( D )。A) true B) 大于0的數(shù) C) 非0整數(shù) D) 非0的數(shù) 4.2.8 在以下運(yùn)算符中,優(yōu)先級(jí)最高的運(yùn)算符是( A )。A) ! B) = C) + D) | 4.2.9 邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的數(shù)據(jù)類型( D )。A) 只能是0或1 B) 只能是0或非0正數(shù) C) 只能是整型或字符型數(shù)據(jù) D) 可以是任何類型的數(shù)據(jù) 4.3 編程題4.3.1 編寫一個(gè)C程序,要求從鍵盤輸入一個(gè)整數(shù),判斷該整數(shù)是否能夠被17整除。(解析:當(dāng)

36、該數(shù)與17的余數(shù)為零時(shí),即可以被17整除。) /參考程序#include <stdio.h>void main() int a; printf(“請(qǐng)輸入一個(gè)整數(shù):”); scanf(“%d”,&a); if(a%17=0) printf(“%d能被17整除n”,a); else printf(“%d不能被17整除n”,a); 4.3.2 編寫一個(gè)C程序,計(jì)算并顯示由下列說(shuō)明確定的一周薪水。如果工時(shí)小于40,則薪水按每小時(shí)8元計(jì);否則,按320元加上超出40小時(shí)部分的每小時(shí)12元。(解析:一周工時(shí)數(shù)為鍵盤輸入,顯示其相應(yīng)薪水為輸出。)/參考程序#include <std

37、io.h>void main() float a,wage;printf(“請(qǐng)輸入工時(shí)數(shù):”); scanf(“%f”,&a); if(a<0) printf(“error!”);else if(a<40) wage=a*8; else wage=320+(a-40)*12; printf(“周薪水=%.1f元n”,wage); 4.3.3 編寫一個(gè)C程序,要求從鍵盤輸入三個(gè)整數(shù)a,b,c,輸出其中最大的數(shù)。(解析:求極值問(wèn)題。設(shè)立一個(gè)變量max總是保留兩數(shù)比較時(shí)較大的那個(gè)值。具體方法如下:先將a的值賦給max,如果max<b則將b的值賦給max,然后再用max

38、與c進(jìn)行比較,如果max<c則將c的值賦給max,這樣能使max總是保留最大的值。最后輸出max。)/參考程序#include <stdio.h>void main() int a,b,c,max; printf(“請(qǐng)輸入三個(gè)整數(shù):”); scanf(“%d %d %d”,&a,&b,&c); if(a>b) max=a; else max=b; /* max=a>b?a:b; */ if(c>max) max=c; /* max=max>c?max:c; */ printf(“最大值max=%dn”,max); 4.3.4 編

39、寫一個(gè)C程序,要求從鍵盤輸入三個(gè)整數(shù)x,y,z,請(qǐng)把這三個(gè)數(shù)由小到大輸出。(解析:排序問(wèn)題。想辦法把三個(gè)數(shù)進(jìn)行調(diào)換,使得最小的數(shù)放到x變量里,最大的數(shù)放在z變量里。具體方法如下:先將x與y進(jìn)行比較,如果x>y則將x與y的值進(jìn)行交換,然后再用x與z進(jìn)行比較,如果x>z則將x與z的值進(jìn)行交換,這樣能使x最?。蝗缓髮與z比較,并將較小的值保存在y里而較大的值放在z里。最后,依次輸出x、y、z。)/參考程序#include <stdio.h>void main() int x,y,z,a; printf(“input 3 integer :n”); scanf(“%d,%d,

40、%d”,&x,&y,&z); if(x>y) /*使x<=y*/ a=x; x=y; y=a; if(x>z) /*使x<=z*/ a=x; x=z; z=a; if(y>z) /*使y<=z*/ a=z; z=y; y=a; printf(“nx=%d, y=%d, z=%dn”,x,y,z); 4.3.5 編寫一個(gè)C程序,要求從鍵盤輸入一個(gè)不多于5位的正整數(shù)x,要求輸出:一、它是幾位數(shù);二、逆序打印出各位數(shù)字,例如:原數(shù)為789,應(yīng)輸出987。(解析:該問(wèn)題的核心是分解出每一位上的數(shù)字:a=x/10000;/*分解出萬(wàn)位上的數(shù)字*

41、/b=x%10000/1000;/*分解出千位上的數(shù)字*/c=x%1000/100;/*分解出百位上的數(shù)字*/d=x%100/10;/*分解出十位上的數(shù)字*/e=x%10;/*分解出個(gè)位上的數(shù)字*/通過(guò)檢測(cè)各數(shù)字是否為零,便可知道x是幾位數(shù),例如:if (a) 則x是5位數(shù)。 )/參考程序#include<stdio.h>void main() long x; int a,b,c,d,e;printf("ninput x:"); scanf("%ld",&x); e=x%10; d=x/10%10; c=x/100%10; b=x/1

42、000%10; a=x/10000; if(x>=1E+5|x<=0) printf("Out of range!n"); else if(a>0) printf("5位數(shù),反序數(shù)字是:%d%d%d%d%dn",e,d,c,b,a); else if(b>0) printf("4位數(shù), 反序數(shù)字是:%d%d%d%dn",e,d,c,b); else if(c>0) printf("3位數(shù),反序數(shù)字是:%d%d%dn",e,d,c); else if(d>0) printf(&qu

43、ot;2位數(shù),反序數(shù)字是:%d%dn",e,d); else printf("1位數(shù),數(shù)字是:%dn",e); 4.3.6 編寫一個(gè)C程序,要求從鍵盤輸入兩個(gè)數(shù),并依據(jù)提示輸入的數(shù)字,選擇對(duì)這兩個(gè)數(shù)的運(yùn)算,并輸出相應(yīng)運(yùn)算結(jié)果。要求提示為:1、作加法;2、做乘法;3、做除法:(解析:可使用switch語(yǔ)句,以提示輸入的數(shù)字為依據(jù),作分支結(jié)構(gòu)設(shè)計(jì),使得提示輸入1時(shí),將兩數(shù)之和輸出;提示輸入2時(shí),將兩數(shù)之積輸出;提示輸入3時(shí),將兩數(shù)之商輸出 - 注意,除數(shù)不可為零的檢測(cè)與提示。)/參考程序#include <stdio.h>void main() float

44、 op1,op2; int sign; printf("請(qǐng)輸入兩個(gè)操作數(shù): a bn"); scanf("%f%f",&op1,&op2); printf("請(qǐng)選擇進(jìn)行的運(yùn)算(1,2,3,4): n"); printf("1: +n"); printf("2: -n"); printf("3: *n"); printf("4: /n"); printf("您選擇: "); scanf("%d",&am

45、p;sign); switch(sign) case 1: printf("n%f+%f=%fn",op1,op2,op1+op2); break; case 2: printf("n%f-%f=%fn",op1,op2,op1-op2); break; case 3: printf("n%f*%f=%fn",op1,op2,op1*op2); break; case 4: if(op2) printf("n%f/%f=%fn",op1,op2,op1/op2); break; else printf("

46、n除數(shù)不能為0n"); break; default: printf("n您選擇的運(yùn)算不對(duì)n"); 習(xí) 題 五5.1填空題5.1.1 至少執(zhí)行一次循環(huán)體的循環(huán)語(yǔ)句是 do while 。5.1.2 下面程序段是從鍵盤輸入的字符中統(tǒng)計(jì)數(shù)字字符的個(gè)數(shù),用換行符結(jié)束循環(huán)。請(qǐng)?zhí)钐羁铡nt n=0,c;c=getchar();while( c!=n ) if( c>=0&&c<=9 ) n+; c=getchar(); 5.1.3 在執(zhí)行以下程序時(shí),如果鍵盤上輸入:ABCdef<回車>,則輸出為 abcDEF 。#include&l

47、t;stdio.h> char ch; while(ch=getchar()!=n) if(ch>=A&&ch<=Z) ch=ch+32; else if(ch>=a&&ch<=z) ch=ch-32; printf(“n”); 5.1.4 下面程序的功能是用輾轉(zhuǎn)相除法求兩個(gè)正整數(shù)的最大公約數(shù),請(qǐng)?zhí)羁铡?include<stdio.h>void main() int r,m,n; scanf(“%d,%d”,&m,&n); if(m<n) r=m;m=n;n=r r=m%n; while(r) m=

48、n; n=r; r= m%n ; printf(“%dn”,n); 5.1.5 當(dāng)運(yùn)行以下程序時(shí),從鍵盤輸入“right? <回車>”,則下面程序的運(yùn)行結(jié)果是sjhiu 。 #include<stdio.h>void main() char c; while(c=getchar()!=?) putchar(+c);5.1.6 下面程序的運(yùn)行結(jié)果是 s=254 。#include<stdio.h>void main() int a,s,n,count;a=2; s=0; n=1; count=1;while(count<=7) n=n*a; s=s+n;

49、 +count; printf(“s=%d”,s); 5.1.7 執(zhí)行下面程序段后,k的值是 36 。 k=1;n=263;do k*=n%10; n/=10; while(n);5.1.8 下面程序使循環(huán)結(jié)束的條件式 i=0 。#include<stdio.h>void main() int k; for(k=250;i;i-=5) printf(“%dn”,i);5.1.9 下面程序的運(yùn)行結(jié)果是*#。#include<stdio.h>void main() int i, j=4; for(i=j; i<2*j; i+) switch(i/j) case 0:

50、case 1: printf(”*”); break; case 2: printf(“#”); 5.1.10 下面程序的輸出結(jié)果是i=6, k=4 。#include<stdio.h>void main() int i, j,k=19; while(i=k-1) k-=3; if(k%5=0) i+; continue; else if(k<5) break; i+;printf(“i=%d, k=%dn”,i k);5.2 選擇題5.2.1 設(shè)有程序段:int k=10; while(k=0) k=k-1;,則下面描述正確的是( C)。A) while循環(huán)執(zhí)行10次 B)

51、 循環(huán)時(shí)無(wú)限循環(huán) C) 循環(huán)體語(yǔ)句一次也不執(zhí)行 D) 循環(huán)體語(yǔ)句執(zhí)行一次5.2.2 語(yǔ)句while(!E);中的表達(dá)式!E等價(jià)于( A )。A) E=0 B) E!=1 C) E!=0 D) E=15.2.3 下面程序段的運(yùn)行結(jié)果是( A )。a=1;b=2;c=2;while(a<b<c) t=a; a=b; b=t;c- -; printf(“%d,%d,%d”,a,b,c);A) 1,2,0 B) 2,1,0 C) 1,2,1 D) 2,1,15.2.4 下面程序段的輸出結(jié)果是( C )。int n=0;while(n+<=2); printf(%d“,n);A) 2 B

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論