




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、習題答案第1章1.1 填空題1.1.1 應用程序ONEFUNC.C中只有一個函數,這個函數的名稱是_main 。1.1.2 一個函數由_函數頭_和_函數體_兩部分組成。1.1.3 在C語言中,輸入操作是由庫函數_scanf 完成的,輸出操作是由庫函數_printf_完成的。1.1.4 通過文字編輯建立的源程序文件的擴展名是_.c_;編譯后生成目標程序文件,擴展名是_.obj_;連接后生成可執(zhí)行程序文件,擴展名是_.exe_;運行得到結果。1.1.5 C語言程序的基本單位或者模塊是_函數_。1.1.6 C語言程序的語句結束符是_;_。1.1.7 編寫一個C程序,上機運行要經過的步驟:_。1.1.
2、8 在一個C語言源程序中,注釋部分兩側的分界符分別為_/*_和_*/_。1.1.9 C語言中的標識符只能由三種字符組成,它們是 字母 、 數字 和 下劃線 。且第一個字符必須為 字母或下劃線 。1.1.10 C語言中的標識符可分為關鍵字、 預定義標識符 和 用戶標識符 3類。1.2 選擇題1.2.1 一個C程序的執(zhí)行是從( A )。A)本程序的main函數開始,到main函數結束B)本程序文件的第一個函數開始,到本程序文件的最后一個函數結束C)本程序的main函數開始,到本程序文件的最后一個函數結束D)本程序文件的第一個函數開始,到本程序main函數結束1.2.2 以下敘述不正確的是(C)。A
3、)一個C源程序可由一個或多個函數組成B)一個C源程序必須包含一個main函數C) 在C程序中,注釋說明只能位于一條語句的后面D) C程序的基本組成單位是函數1.2.3 C語言規(guī)定:在一個源程序中,main函數的位置( C )。A)必須在程序的開頭B)必須在系統(tǒng)調用的庫函數的后面C)可以在程序的任意位置D)必須在程序的最后1.2.4 C編譯程序是 (A)。A)將C源程序編譯成目標程序的程序B)一組機器語言指令C) 將C源程序編譯成應用軟件D) C程序的機器語言版本1.2.5 要把高級語言編寫的源程序轉換為目標程序,需要使用( D)。A) 編輯程序B) 驅動程序 C) 診斷程序 D) 編譯程序1.
4、2.6 以下敘述中正確的是( C)。A) C語言比其他語言高級B) C語言可以不用編譯就能被計算機識別執(zhí)行C) C語言以接近英語國家的自然語言和數學語言作為語言的表達形式D) C語言出現的最晚,具有其他語言的一切優(yōu)點1.2.7 以下敘述中正確的是(A)。A) C程序中注釋部分可以出現在程序中任意合適的地方B) 花括號“”和“”只能作為函數體的定界符C) 構成C程序的基本單位是函數,所有函數名都可以由用戶命名D) 分號是C語句之間的分隔符,不是語句的一部分1.2.8 以下敘述中正確的是( B)。A) C語言的源程序不必通過編譯就可以直接運行B) C語言中的每條可執(zhí)行語句最終都將被轉換成二進制的機
5、器指令C) C源程序經編譯形成的二進制代碼可以直接運行D) C語言中的函數不可以單獨進行編譯1.2.9 用C語言編寫的代碼程序(B)。A) 可立即執(zhí)行 B) 是一個源程序C) 經過編譯即可執(zhí)行D) 經過編譯解釋才能執(zhí)行1.2.10 以下敘述中正確的是(C )。A) 在C語言中,main函數必須位于程序的最前面B) C語言的每行中只能寫一條語句C) C語言本身沒有輸入輸出語句D) 在對一個C程序進行編譯的過程中,可以發(fā)現注釋中的拼寫錯誤1.2.11 下列4組選項中,均不是C語言關鍵字的選項是( A )。A)define B)getc C)include D)while IF char scanf
6、 go type printf case pow1.2.12 下列4組選項中,均是C語言關鍵字的選項是(B)。A)auto B)switch C)signed D)if enum typedef union struct include continue scanf type1.2.13 C語言中的標識符只能由字母、數字和下劃線3種字符組成,且第一個字符(C)。A) 必須為字母 B)必須為下劃線C)必須為字母或下劃線 D)可以是字母、數字和下劃線中任一種字符1.3 編程題1.3.1 參照本章例題,編寫一個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 設計一程序,輸入3個整數,計算并顯示輸出這3個整數之和。#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程序中數據有 常量 和 變量之分,其中,用一個標識符代表一個常量的,稱為 符號 常量。C語言規(guī)定在程序中對用到的所有數據都必須指定其 數據 類型,對變量必須做到先 定義 ,后使用。2.1.2 C語言中,用關鍵字 float 定義單精度實型變量,用關鍵字 double 定義雙精度實型變量,用關鍵字 char 定義字符型變量。2.1.3 在C語言中,以16位PC機為例,一個char型數據在內存中所占的字節(jié)數為 1 ;一個int型數據在內存中所占的字節(jié)數為 2 ,則int型數據的取值范圍為 -3276832767 。一個float型數據在內存中所占的字節(jié)數為 4 ;一個double
9、型數據在內存中所占的字節(jié)數為 8 。單精度型實數的有效位是 6-7 位 ,雙精度型實數的有效位是 15-16 位 。2.1.4 設C語言中的一個基本整型數據在內存中占2個字節(jié),若欲將整數135791正確無誤地存放在變量a中,應采用的類型說明語句是 long int a=15791; 。2.1.5 C的字符常量是用 單 引號括起來的 1 個字符,而字符串常量是用 雙引號括起來的 字符 序列。2.1.6 C語言中,用“”開頭的字符序列稱為轉義符。轉義符“n”的功能是 回車換行 ;轉義符“r”的功能是 回車 。2.1.7 若有定義:char c=010;則變量c中包含的字符個數為 1 。2.1.8
10、負數在計算機中是以 補碼 形式表示。2.1.9 C語言中,&作為雙目運算符是表示的是 按位與 ,而作為單目運算符時表示的是 取位置 。2.1.10 在C語言的賦值表達式中,賦值號左邊必須是 變量 。2.1.11 自增運算符+、自減運算符-,只能用于 變量 ,不能用于常量或表達式。+和- -的結合方向是“自 右左 至 左 ”。2.1.12 若a是int型變量,則執(zhí)行下面表達式后a的值為 2 。a=25/3%32.1.13 寫出下列數所對應的其它進制數(D對應十進制,B對應二進制,o對應八進制,H對應十六進制)32D= 100000 B= 40 O= 20 H75D= 1001011 B=
11、 113 O= 4B H2.1.14 假設已指定i為整型變量,f為float變量,d為double型變量,e為long型變量,有式子10'a'+i*f-d/e,則結果為 double 型。2.1.15 若有定義:int x=3,y=2; float a=2.5,b=3.5;則下面表達式的值為 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í)行表達式y(tǒng)+=y-=m*=y后的y值是 -16 。2.1.18 若a是int型變量,則表達式(a=4*5,a+2)
12、,a+6的值為 26 。2.1.19 若x和n均為int型變量,且x的初值為12,n的初值為5,則執(zhí)行表達式x%=(n%=2)后x的值為: 0 。2.1.20 若有定義語句:int e=1,f=4,g=2;float m=10.5,n=4.0,k;,則執(zhí)行表達式k=(e+f)/g+sqrt(double)n)*1.2/g+m后k的值是 13.7 。2.2 選擇題2.2.1 逗號表達式"(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'); 則輸出結果是:( D )A) 2 ,M B) 5,! C) 2,E D) 5,G2.2.3 sizeof(float)是(B )。A)一個雙精度型表達式 B)一個整型表達式C)一種函數調用D)一個不合法的表達式2.2.4 若有以下定義,則能使值為3的表達式是(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語言中,要求運算數必須是整型的運算符是( A )。
14、A) % B) / C) < D) !2.2.6 下面4個選項中,均是合法整型常量的選項是( A )。A) 160 B) -0xcdf C) -01 D)-0x48a -0xffff 01a 986,012 2e5 011 0xe 0668 0x2.2.7 下面4個選項中,均是不合法浮點數的選項是( 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三種類型數據在內存中所占用
15、的字節(jié)數( D )。A)由用戶自己定義 B)均為2個字節(jié) C)是任意的 D)由所用機器的機器字長決定 2.2.10 假設所有變量均為整型,則表達式(a=2,b=5,b+,a+b)后x的值為( B )。A)7B)8C)6D)22.2.11 假設所有變量均為整型,則表達式x=(i=4,j=16,k=32)后x的值為( C )。A)4B)16C)32D)522.2.12 若有代數式,則正確的C語言表達式是( 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、設變量n為float類型,m為int類型,則以下能實現將n中的數值保留小數點后兩位,第三位進行四舍五入運算的表達式是( 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ōu)先級最低B)在C語言中,APH和aph是兩個不同的變量C)若a和b類型相同,在執(zhí)行了賦值表達式a=b后b中的值將放入a中,而b中的值不變D)當從鍵盤輸入數據時,對于整型變量只能輸入整型數值,對于實型變量只能輸入實型數值2.2.1
17、5 以下正確的敘述是( D)。A)在C語言中,每行中只能寫一條語句B)若a是實型變量,C程序中允許賦值a=10,因此實型變量中允許存放整型數C)在C程序中,無論是整數還是實數,都能被準確無誤地表示D)在C程序中,%是只能用于整數運算的運算符 2.3編程題2.2.1 編寫一程序,求出給定半徑r的圓的面積和周長,并輸出計算結果。其中,r的值由用戶輸入,用實型數據處理。#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 已知華氏溫度和攝氏溫度之間的轉換關系是:C5/9*(F32)。編寫一程序,將用戶輸入的華氏溫度轉換為攝氏溫度,并輸出結果。#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);習 題 三3.1 填空題3.1.1 程序的三種基本結構是 順序 、 選擇 、 循環(huán) 。3.1.2 執(zhí)行( a=3.0+5,a*4 ),a+=-6; 變量a 及表達式的值分別為 2.0,2.0 3.1.3 下列語句被執(zhí)行后的執(zhí)行結果是 1abcdef 。 int a=1; printf (“%d%s%s”,a,”abc”,”def”);3.1.4 getchar( ) 函數的作用是 從鍵盤上接收一個字符 。3.1.5 運行以下程序后,用戶輸入123456abc,輸出結果為 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 下面程序的輸出結果是 1112 。# include <stdio.h> void main( ) int i=10; /* int i=20; */ i+; printf (“%d”,i +); printf (“%dn”,i ); 3.1.7 下面程序運行后,從鍵盤輸入30,則程序的輸出結果是 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 下面程序的輸出結果是 a=-3 b=D“END” 。void main ( ) int a,b=68; a=-3;printf(“ta=%dntb=%cn”end”n”,a,b); 3.1.9 下面程序的輸出結果是 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 下面程序運行后,若輸入a=2,b=3結果是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 設b=1234 , 執(zhí)行printf(“%d%d”,b) 語句,輸出結果為: ( 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 設a,b均是int型變量,則以下不正確的函數調用為( D )。A) getchar(); B) putchar(108);C) scanf(“%d,%2d”,&a,&b); D) putchar(); 3.2.7 下列程序的執(zhí)行結果是( 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í)行結果是( 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) 程序有錯3.3 編程題3.3.1 編寫程序,從鍵盤上輸入2個整數給變量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 試編寫一個程序,任意輸入一個小寫字母,分別按八進制、十進制、十六進制、字符格式輸出。/參考程序:#include <stdio.h>void main() char c; printf("請輸入1個小寫字母:n"); scanf("%c",&c); printf("八進制: %on十進制: %dn" ,c,c); printf(&
28、quot;十六進制: %xn字符: %cn" ,c,c);3.3.3 輸入一個華氏溫度,要求輸出攝氏溫度,輸出要有文字說明,取2位小數。公式為: /參考程序:# include <stdio.h>void main() float c,f; printf(“請輸入一個華氏溫度:n”); scanf(“%f”,&f); c= 5.0/9*(f-32); printf(“華氏溫度F=%.2fn”,f); printf(“攝氏溫度c=%.2fn”,c); 3.3.4 設圓半徑r=3,圓柱高h=4,求圓周長、圓面積、圓球表面積、圓球體積、圓柱體積。用scanf輸入數據,輸
29、出計算結果,輸出時要求有文字說明,取小數點后2位數字。請編程序。/參考程序:# include <stdio.h># define PI 3.1415926void main() float r,h,c,s1,s2,v1,v2;printf(“請輸入圓半徑,圓柱高:”); 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); 習 題 四4.1 填空題4.1.1 表示條件:10<x<100或x<0的C語言表達式是 10<x &&x<100 | x<0 。4.1.2 若要求在if后一對圓括號中表示a不等于0的關系,則能正確表示這一關系的表達式為 a 。4.1.3 若已知a=10,b=20,則表達式!a<b的值為 1 。4.1.4 當a=3,b=2,c=1時,表達式f=a>b>c的值是 0 。4.1.5 設y為int型變量,請寫出描述“y是奇數”的表達式 y%2!=0 。4.1.
31、6 設x,y,z為int型變量,請寫出描述“x或y中有一個小于z”的表達式 x<z&&y>=z|x>=z&&y<z 。4.1.7 已知a=7.5,b=2,c=3.6,表達式a>b && c>a|a<b && !c>b的值是 1 。4.1.8 假設 a=5, b=2, c=4,以下表達式的值依次為: 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 假設 a=3, b=4, c=5,x=0,y=0,以下各表達式的值依次為 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 兩次運行下面的程序,如果從鍵盤上分別輸入6和4,
33、輸出的結果是 7和5 。void main() int x; scanf(“%d”,&x); if(x+>5) printf(“%d”,x); else printf(“%dn”,x-); 4.2 選擇題:4.2.1 設a為整型變量,不能正確表達數學關系: 10<a<15的C語言表達式是( 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ōu)先級最高的是( C )。A) <
34、;= B) = C) % D) &&4.2.3 設a,b,c都是int型變量,且a=3,b=4,c=5,則下面表達式中,值為0的表達式是 ( D )。A) a&&b B) a<=b C) c|+c&&b-c D) !(a<b)&&!c|1) 4.2.4 在C語言的if語句中,用作判斷的表達式為( D )。A) 關系表達式 B) 邏輯表達式 C) 算術表達式 D) 任意表達式4.2.5 在以下運算符中,優(yōu)先級最高的運算符是( B )。A) = B) C) != D) 4.2.6 假設所有變量均為整型,表達式(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的數 C) 非0整數 D) 非0的數 4.2.8 在以下運算符中,優(yōu)先級最高的運算符是( A )。A) ! B) = C) + D) | 4.2.9 邏輯運算符兩側運算對象的數據類型( D )。A) 只能是0或1 B) 只能是0或非0正數 C) 只能是整型或字符型數據 D) 可以是任何類型的數據 4.3 編程題4.3.1 編寫一個C程序,要求從鍵盤輸入一個整數,判斷該整數是否能夠被17整除。(解析:當
36、該數與17的余數為零時,即可以被17整除。) /參考程序#include <stdio.h>void main() int a; printf(“請輸入一個整數:”); scanf(“%d”,&a); if(a%17=0) printf(“%d能被17整除n”,a); else printf(“%d不能被17整除n”,a); 4.3.2 編寫一個C程序,計算并顯示由下列說明確定的一周薪水。如果工時小于40,則薪水按每小時8元計;否則,按320元加上超出40小時部分的每小時12元。(解析:一周工時數為鍵盤輸入,顯示其相應薪水為輸出。)/參考程序#include <std
37、io.h>void main() float a,wage;printf(“請輸入工時數:”); 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 編寫一個C程序,要求從鍵盤輸入三個整數a,b,c,輸出其中最大的數。(解析:求極值問題。設立一個變量max總是保留兩數比較時較大的那個值。具體方法如下:先將a的值賦給max,如果max<b則將b的值賦給max,然后再用max
38、與c進行比較,如果max<c則將c的值賦給max,這樣能使max總是保留最大的值。最后輸出max。)/參考程序#include <stdio.h>void main() int a,b,c,max; printf(“請輸入三個整數:”); 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、寫一個C程序,要求從鍵盤輸入三個整數x,y,z,請把這三個數由小到大輸出。(解析:排序問題。想辦法把三個數進行調換,使得最小的數放到x變量里,最大的數放在z變量里。具體方法如下:先將x與y進行比較,如果x>y則將x與y的值進行交換,然后再用x與z進行比較,如果x>z則將x與z的值進行交換,這樣能使x最小;然后將y與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 編寫一個C程序,要求從鍵盤輸入一個不多于5位的正整數x,要求輸出:一、它是幾位數;二、逆序打印出各位數字,例如:原數為789,應輸出987。(解析:該問題的核心是分解出每一位上的數字:a=x/10000;/*分解出萬位上的數字*
41、/b=x%10000/1000;/*分解出千位上的數字*/c=x%1000/100;/*分解出百位上的數字*/d=x%100/10;/*分解出十位上的數字*/e=x%10;/*分解出個位上的數字*/通過檢測各數字是否為零,便可知道x是幾位數,例如:if (a) 則x是5位數。 )/參考程序#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位數,反序數字是:%d%d%d%d%dn",e,d,c,b,a); else if(b>0) printf("4位數, 反序數字是:%d%d%d%dn",e,d,c,b); else if(c>0) printf("3位數,反序數字是:%d%d%dn",e,d,c); else if(d>0) printf(&qu
43、ot;2位數,反序數字是:%d%dn",e,d); else printf("1位數,數字是:%dn",e); 4.3.6 編寫一個C程序,要求從鍵盤輸入兩個數,并依據提示輸入的數字,選擇對這兩個數的運算,并輸出相應運算結果。要求提示為:1、作加法;2、做乘法;3、做除法:(解析:可使用switch語句,以提示輸入的數字為依據,作分支結構設計,使得提示輸入1時,將兩數之和輸出;提示輸入2時,將兩數之積輸出;提示輸入3時,將兩數之商輸出 - 注意,除數不可為零的檢測與提示。)/參考程序#include <stdio.h>void main() float
44、 op1,op2; int sign; printf("請輸入兩個操作數: a bn"); scanf("%f%f",&op1,&op2); printf("請選擇進行的運算(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除數不能為0n"); break; default: printf("n您選擇的運算不對n"); 習 題 五5.1填空題5.1.1 至少執(zhí)行一次循環(huán)體的循環(huán)語句是 do while 。5.1.2 下面程序段是從鍵盤輸入的字符中統(tǒng)計數字字符的個數,用換行符結束循環(huán)。請?zhí)钐羁?。int n=0,c;c=getchar();while( c!=n ) if( c>=0&&c<=9 ) n+; c=getchar(); 5.1.3 在執(zhí)行以下程序時,如果鍵盤上輸入: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 下面程序的功能是用輾轉相除法求兩個正整數的最大公約數,請?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 當運行以下程序時,從鍵盤輸入“right? <回車>”,則下面程序的運行結果是sjhiu 。 #include<stdio.h>void main() char c; while(c=getchar()!=?) putchar(+c);5.1.6 下面程序的運行結果是 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)結束的條件式 i=0 。#include<stdio.h>void main() int k; for(k=250;i;i-=5) printf(“%dn”,i);5.1.9 下面程序的運行結果是*#。#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 下面程序的輸出結果是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 設有程序段:int k=10; while(k=0) k=k-1;,則下面描述正確的是( C)。A) while循環(huán)執(zhí)行10次 B)
51、 循環(huán)時無限循環(huán) C) 循環(huán)體語句一次也不執(zhí)行 D) 循環(huán)體語句執(zhí)行一次5.2.2 語句while(!E);中的表達式!E等價于( A )。A) E=0 B) E!=1 C) E!=0 D) E=15.2.3 下面程序段的運行結果是( 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 下面程序段的輸出結果是( C )。int n=0;while(n+<=2); printf(%d“,n);A) 2 B
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高速公路行業(yè)的經濟價值分析
- 團隊合作薪酬管理辦法
- 基于《旅游景區(qū)質量等級的劃分》的4A景區(qū)評審體系優(yōu)化研究
- 民族成人登記管理辦法
- 江蘇牛羊屠宰管理辦法
- 港口閘口工作總結
- 本人現崗位安全生產主要職責
- 景區(qū)違規(guī)建設管理辦法
- 代謝流組真皮修復-洞察及研究
- 標準化知識培訓課件
- 新《職業(yè)病危害工程防護》考試復習題庫(濃縮500題)
- 倉儲管理剖析
- JJF(遼) 556-2024 轉速試驗機校準規(guī)范
- 水電材料供貨商技術方案范文
- 電信考試題目及答案
- 餐飲約束員工管理制度
- PLC基礎知識課件下載
- 2023秸稈類生物質能源原料儲存規(guī)范第1部分:存放
- DB11 T 212-2009 園林綠化工程施工及驗收規(guī)范
- 感染性腹瀉患者護理常規(guī)
- 2023年1月國家開放大學漢語言文學本科《古代詩歌散文專題》期末紙質考試試題及答案
評論
0/150
提交評論