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

下載本文檔

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

文檔簡介

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語言中,輸入操作是由庫函數(shù)_scanf 完成的,輸出操作是由庫函數(shù)_printf_完成的。1.1.4 通過文字編輯建立的源程序文件的擴(kuò)展名是_.c_;編譯后生成目標(biāo)程序文件,擴(kuò)展名是_.obj_;連接后生成可執(zhí)行程序文件,擴(kuò)展名是_.exe_;運(yùn)行得到結(jié)果。1.1.5 C語言程序的基本單位或者模塊是_函數(shù)_。1.1.6 C語言程序的語句結(jié)束符是_;_。1.1.7 編寫一個(gè)C程序,上機(jī)運(yùn)行要經(jīng)過的步驟:_。1.1.

2、8 在一個(gè)C語言源程序中,注釋部分兩側(cè)的分界符分別為_/*_和_*/_。1.1.9 C語言中的標(biāo)識(shí)符只能由三種字符組成,它們是 字母 、 數(shù)字 和 下劃線 。且第一個(gè)字符必須為 字母或下劃線 。1.1.10 C語言中的標(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ù)開始,到main函數(shù)結(jié)束B)本程序文件的第一個(gè)函數(shù)開始,到本程序文件的最后一個(gè)函數(shù)結(jié)束C)本程序的main函數(shù)開始,到本程序文件的最后一個(gè)函數(shù)結(jié)束D)本程序文件的第一個(gè)函數(shù)開始,到本程序main函數(shù)結(jié)束1.2.2 以下敘述不正確的是(C)。A

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

4、2.6 以下敘述中正確的是( C)。A) C語言比其他語言高級(jí)B) C語言可以不用編譯就能被計(jì)算機(jī)識(shí)別執(zhí)行C) C語言以接近英語國家的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式D) C語言出現(xiàn)的最晚,具有其他語言的一切優(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語句之間的分隔符,不是語句的一部分1.2.8 以下敘述中正確的是( B)。A) C語言的源程序不必通過編譯就可以直接運(yùn)行B) C語言中的每條可執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)

5、器指令C) C源程序經(jīng)編譯形成的二進(jìn)制代碼可以直接運(yùn)行D) C語言中的函數(shù)不可以單獨(dú)進(jìn)行編譯1.2.9 用C語言編寫的代碼程序(B)。A) 可立即執(zhí)行 B) 是一個(gè)源程序C) 經(jīng)過編譯即可執(zhí)行D) 經(jīng)過編譯解釋才能執(zhí)行1.2.10 以下敘述中正確的是(C )。A) 在C語言中,main函數(shù)必須位于程序的最前面B) C語言的每行中只能寫一條語句C) C語言本身沒有輸入輸出語句D) 在對(duì)一個(gè)C程序進(jìn)行編譯的過程中,可以發(fā)現(xiàn)注釋中的拼寫錯(cuò)誤1.2.11 下列4組選項(xiàng)中,均不是C語言關(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語言關(guān)鍵字的選項(xiàng)是(B)。A)auto B)switch C)signed D)if enum typedef union struct include continue scanf type1.2.13 C語言中的標(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語言規(guī)定在程序中對(duì)用到的所有數(shù)據(jù)都必須指定其 數(shù)據(jù) 類型,對(duì)變量必須做到先 定義 ,后使用。2.1.2 C語言中,用關(guān)鍵字 float 定義單精度實(shí)型變量,用關(guān)鍵字 double 定義雙精度實(shí)型變量,用關(guān)鍵字 char 定義字符型變量。2.1.3 在C語言中,以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語言中的一個(gè)基本整型數(shù)據(jù)在內(nèi)存中占2個(gè)字節(jié),若欲將整數(shù)135791正確無誤地存放在變量a中,應(yīng)采用的類型說明語句是 long int a=15791; 。2.1.5 C的字符常量是用 單 引號(hào)括起來的 1 個(gè)字符,而字符串常量是用 雙引號(hào)括起來的 字符 序列。2.1.6 C語言中,用“”開頭的字符序列稱為轉(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ùn)算符是表示的是 按位與 ,而作為單目運(yùn)算符時(shí)表示的是 取位置 。2.1.10 在C語言的賦值表達(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 若有定義語句: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 若有以下定義和語句: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ù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語言中,int、char和short三種類型數(shù)據(jù)在內(nèi)存中所占用

15、的字節(jié)數(shù)( D )。A)由用戶自己定義 B)均為2個(gè)字節(jié) C)是任意的 D)由所用機(jī)器的機(jī)器字長決定 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語言表達(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語言中,逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低B)在C語言中,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語言中,每行中只能寫一條語句B)若a是實(shí)型變量,C程序中允許賦值a=10,因此實(shí)型變量中允許存放整型數(shù)C)在C程序中,無論是整數(shù)還是實(shí)數(shù),都能被準(zhǔn)確無誤地表示D)在C程序中,%是只能用于整數(shù)運(yùn)算的運(yùn)算符 2.3編程題2.2.1 編寫一程序,求出給定半徑r的圓的面積和周長,并輸出計(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("周長為%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 下列語句被執(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 指出下面正確的輸入語句是( 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) 語句,若輸入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) 語句, 若要使變量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) 語句,輸出結(jié)果為: ( D )。A) 1234 B) %1234 C) %d1234 D) %d12343.2.5 若x是int型變量,y是float型變量,所用scanf語句為 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è)華氏溫度,要求輸出攝氏溫度,輸出要有文字說明,取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,求圓周長、圓面積、圓球表面積、圓球體積、圓柱體積。用scanf輸入數(shù)據(jù),輸

29、出計(jì)算結(jié)果,輸出時(shí)要求有文字說明,取小數(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(“圓周長=%.2f,圓面積=%.2fn”,s1,s2);

30、printf(“圓體積=%.2f,圓柱體積=%.2fn”,v1,v2); 習(xí) 題 四4.1 填空題4.1.1 表示條件:10<x<100或x<0的C語言表達(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語言表達(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語言的if語句中,用作判斷的表達(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語言中,能代表邏輯值"真"的是( 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ì)算并顯示由下列說明確定的一周薪水。如果工時(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ù)。(解析:求極值問題。設(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ù)由小到大輸出。(解析:排序問題。想辦法把三個(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。(解析:該問題的核心是分解出每一位上的數(shù)字:a=x/10000;/*分解出萬位上的數(shù)字*

41、/b=x%10000/1000;/*分解出千位上的數(shù)字*/c=x%1000/100;/*分解出百位上的數(shù)字*/d=x%100/10;/*分解出十位上的數(shù)字*/e=x%10;/*分解出個(gè)位上的數(shù)字*/通過檢測各數(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語句,以提示輸入的數(shù)字為依據(jù),作分支結(jié)構(gòu)設(shè)計(jì),使得提示輸入1時(shí),將兩數(shù)之和輸出;提示輸入2時(shí),將兩數(shù)之積輸出;提示輸入3時(shí),將兩數(shù)之商輸出 - 注意,除數(shù)不可為零的檢測與提示。)/參考程序#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)語句是 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í)無限循環(huán) C) 循環(huán)體語句一次也不執(zhí)行 D) 循環(huán)體語句執(zhí)行一次5.2.2 語句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. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論