版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
整型整型(整型整型(int)習(xí)題解析與答案第1章C語言概述一.簡答題概述C語言的主要特點(diǎn)?!窘獯稹空Z言簡潔、緊湊,使用方便、靈活。數(shù)據(jù)類型豐富,表達(dá)能力強(qiáng)。運(yùn)算符多樣。C語言中的運(yùn)算符包含的范圍非常廣泛。具有結(jié)構(gòu)化的控制語句。如if???else語句、while語句、dowhile語句、switch語句、for語句。允許直接訪問物理地址。C語言中含有的位和指針運(yùn)算,能夠直接對(duì)內(nèi)存地址進(jìn)行訪問操作。所生成的目標(biāo)代碼質(zhì)量高,可移植性好。構(gòu)成C語言程序的基本單位是什么它由哪幾部分組成【解答】函數(shù)是構(gòu)成c語言程序的基本單位。一個(gè)完整的c程序一般由文件包含、宏定義、函數(shù)說明、變量和一個(gè)或若干個(gè)函數(shù)組成。C語言程序的運(yùn)行一般要經(jīng)過哪幾個(gè)步驟?【解答】(1)編輯;(2)編譯;(3)連接,生成EXE文件;執(zhí)行。二.運(yùn)行程序?qū)懡Y(jié)果1.輸入下面程序并運(yùn)行。main(){inta1,a2,x;a1=100;a2=50;x=a1-a2;printf("x=%d\n",x);}【解答】運(yùn)行結(jié)果為:x=502.輸入下面程序并運(yùn)行。
main(){inta1,a2,x;a1=10;a2=20;x=a1*a2;printf(〃al=%d,a2=%d\n〃,al,a2);printf("x=%d\n",x);}【解答】運(yùn)行結(jié)果為:a1=10,a2=20x=200三.編程題1.參照本章例題,編寫一個(gè)C程序,用于顯示如下信息:*1**1**1*vt*vt*vt*vt*vt*vt*vt*vt*vt*vt*vt*vt*vt*vt*vt*vt*vt*vt**>r**>r**>r**>r**>r**>r*IloveCprograms!*1**1**1**1*vt*vt*vt**1*vt*vt*vt*vt*vt*vt*vt**X*vt*vt*vt*vt*vt*vt*vt*vt*vt**>r**>r**>r**>r**>r**>r*分析與提示】要有文件包含語句#include〈stdio.h〉。C語言中沒有數(shù)據(jù)的輸入、輸出等功能,數(shù)據(jù)的輸入、輸出都是通過調(diào)用系統(tǒng)提供的庫函數(shù)scanf和printf等來實(shí)現(xiàn)的。這些函數(shù)的說明都包括在stdio.h文件中。main是主函數(shù)的名稱。用{}括起來的內(nèi)容是函數(shù)體,函數(shù)體由若干條語句組成,這是計(jì)算機(jī)要執(zhí)行的部分,每條語句以分號(hào)“;”結(jié)束。注意顯示的信息有三行,所以要用到換行符“\n”。參考代碼:#include〈stdio.h〉main(){printf("************************\n");printf("IloveCprograms!\n");第2第2章數(shù)據(jù)類型及其運(yùn)算一.簡答題1.C語言中的數(shù)據(jù)類型主要有哪幾類?【解答】短整型(shortint)長整型(longint)TOC\o"1-5"\h\z基本類型字符型(char)單精度(floJt)「實(shí)型(浮點(diǎn)型)V雙精度(double)L枚舉類型(enum)'數(shù)組類型構(gòu)造類型結(jié)構(gòu)體類型(struct)'共用體類型(union)-指針類型空類型(void)2.字符常量與字符串常量有什么區(qū)別?【解答】字符常量用單括號(hào)括起,字符串常量用雙括號(hào)括起;字符常量存儲(chǔ)時(shí)占1個(gè)字節(jié),字符串常量存儲(chǔ)時(shí)除了n個(gè)字符外,還有系統(tǒng)加上的字符串終止符\0,所以字符串常量存儲(chǔ)時(shí)占n+1個(gè)字節(jié)。3.C語言中的常量包括哪幾類?各自是如何構(gòu)成的?【解答】C語言中的常量是一些其值預(yù)先定的量,并且在程序執(zhí)行過程中其值不再發(fā)生變化。常量的分類遵循基本數(shù)據(jù)類型分類原則,C語言編譯系統(tǒng)自動(dòng)將其存放在于類型相應(yīng)的內(nèi)存單元中。其類別包含整形常量、浮點(diǎn)常量、字符常量、字符串常量和枚舉常量。整形常量又分為十進(jìn)制整形常量、八進(jìn)制整形常量、十六進(jìn)制整形常量。浮點(diǎn)常量分成十進(jìn)制形式和指數(shù)形式。C語言中的,字符常量是用單括號(hào)括起來的一個(gè)字符或是字符序列,而字符串常量是用一對(duì)雙括號(hào)括起來的零個(gè)或者多個(gè)字符組成的序列。4.簡述指針、變量的指針、變量的值、指針變量與指針變量的值的含義是什么?【解答】C語言中將地址又稱為“指針”。一個(gè)變量所分配的內(nèi)存空間首字節(jié)地址,稱為該變量的指針(地址),變量的值就被放入所分配的地址單元中。地址一旦被分配,就不會(huì)再改變,所以,指針是一個(gè)常量。既然是常量就可以把它賦給一個(gè)變量。用來存放指針的變量,被稱為指針變量。一個(gè)指針變量的值是變量的地址,一個(gè)指針變量可以被賦予不同的指針值。5.下面哪些是不合法的常量?說明不合法的理由。123,3.1415926,0892,'M','\n',0xabc,0.618E-6,”Morning”,3.8e-3.14【解答】非法常量有:0892——含有非八進(jìn)制數(shù)字8和93.8e-3.14――非法指數(shù)形式浮點(diǎn)常量:規(guī)定e后面的指數(shù)必須為整數(shù)。6.下面對(duì)變量定義的語句哪些不正確?為什么?請(qǐng)改正。(1)charc1,inta2;(2)INTa,b;FLOATx,y;(3)a,b:char;(4)charif;(5)inta,b(6)Inta:b:c;(7)inta,x;floatx,y;【解答】(1)charc1,inta2;錯(cuò)誤。定義不同類型的變量時(shí),應(yīng)用分號(hào)彼此分開。改正為:charcl;inta2;(2)INTa,b;FLOATx,y;錯(cuò)誤。C語言中表示類型名的關(guān)鍵字必須小寫。改正為:inta,b;floatx,y;(3)a,b:char;錯(cuò)誤。C語言中變量定義格式為:類型名變量名;改正為:chara,b;(4)charif;錯(cuò)誤。變量名不能與C語言的關(guān)鍵字重名。改正為:charfl;(5)inta,b錯(cuò)誤。變量定義以語句形式出現(xiàn),應(yīng)以分號(hào)結(jié)尾。改正為:inta,b;(6)Inta:b:c;錯(cuò)誤。類型名不能有大寫字母,相同類型名之間用逗號(hào)分隔。改正為:inta,b,c;(7)inta,x;floatx,y;錯(cuò)誤。在同一程序位置上,同一變量名不能重復(fù)定義充當(dāng)兩個(gè)不同的變量。改正為:inta,x;floatx1,y;7.下述字符串常量的長度是多少?在內(nèi)存中存儲(chǔ)時(shí)各自占用的單元數(shù)又是多少?(l)“Hello!”(2)“ABC\n\\TH\064\?”(3)“\xAB*\765+l23=”【解答】(1)“Hello!”字符串長度為6,占用內(nèi)存字節(jié)數(shù)為7?!癆BC\n\\TH\064\?”字符串長度為9,占用內(nèi)存字節(jié)數(shù)為10。因?yàn)槠渲衆(zhòng)n\\\064\各自只占一個(gè)字符的位置?!癨xAB*\765+123二”該字符串不是合法的,因?yàn)閈765表示的值太大,超出合法的ASCII字符集的范圍。二.運(yùn)行程序?qū)懡Y(jié)果1.以下程序的執(zhí)行結(jié)果是。main(){inti,j;i=15;printf(“%d,%d”,i++,i--);}【解答】14,152.以下程序的執(zhí)行結(jié)果是。main(){inta=20,b=10,c,*p1,*p2;p1=&a;p2=&b;c=(-*p1)/(*p2)+6;printf("a=%d,b=%d\n",a,b);printf("*p1=%d,*p2=%d\n",*p1,*p2);printf("c=%d\n",c);}【分析與提示】p1a【解答】a=20,b=10*p1=20,*p2=10c=43.以下程序的執(zhí)行結(jié)果是。#include<stdio.h>main(){chara='G',b='o',c='o',d='d';a=a+32;b=b-6;c=c+3;d=d+8;printf("%c%c%c%c\n",a,b,c,d);}【分析與提示】從ASCII代碼表可以看出,字符“G”、“o”、“o”、“d”的ASCII代碼值為71、111、101,因此,'G'+32、'o'-6、'o'+3、'd'+8的值分別是103、105、114、108,它們所對(duì)應(yīng)的字符分別是“g”、“i”、“r”、“l(fā)”。常用結(jié)論:在C語言中,字符數(shù)據(jù)可以按其ASCII代碼值參加整數(shù)運(yùn)算。由于英文字母在ASCII代碼表中是按順序排列的,所以在計(jì)算'o'+3代表的字母時(shí),可從字符'o'其順序向后取3個(gè)字母,該字母是“r”。從ASCII代碼表可以看出“小寫字母”-“對(duì)應(yīng)大寫字母”的結(jié)果是32,因此可推算出如下等式:大寫字母的ASCII值+32=對(duì)應(yīng)小寫字母的ASCII值;小寫字母的ASCII值-32=對(duì)應(yīng)大寫字母的ASCII值?!窘獯稹縢irl4.以下程序的執(zhí)行結(jié)果是。#include<stdio.h>main(){intx;x=-3+4*5-6;printf("x1=%d\n",x);x=3+4%5-6;printf("x2=%d\n",x);x=-3*4%-6;printf("x3=%d\n",x);}【分析與提示】xl=ll(4*5是20,-3+20是17,17-6等于11)x2=l(4%5等于4,3+4等于7,7-6等于1)x3=0(-3*4等于-12,-12%-6等于0)【解答】x1=11x2=1x3=05.以下程序的執(zhí)行結(jié)果是。#include<stdio.h>main(){printf("%d\n",NULL);printf("%d,%c\n",49,49);printf("%d,%c,%o\n",48+10,48+10,48+10);}【分析與提示】0(NULL的ASCII碼值是0)49,1(數(shù)字1的ASCII碼值是49)58,:,72(48+10等于58,正好是“:”的ASCII碼值,八進(jìn)制表示是72)【解答】049,158,:,72三、改錯(cuò)題1.請(qǐng)修改下列程序,使其能夠通過編譯。#include<stdio.h>VoidMain(){inta=6;b=8;intc;c=a*b;printf(‘%d',c);}【答案】錯(cuò)誤的地方有3處:(1)第2行關(guān)鍵字應(yīng)該小寫;(2)定義b時(shí)前面應(yīng)該用逗號(hào);(3)打印語句的格式應(yīng)該用雙引號(hào)括起來。正確的程序如下:#include<stdio.h>voidmain(){inta=6,b=8;intc;c=a*b;printf("%d",c);}2.請(qǐng)修改下列程序,使其能夠正確運(yùn)行。#include<stdio.h>voidmain();{floatf=7.12;charc=”c”;printf(“%d\n”,int(f%3));printf(“%c”,c);}【答案】錯(cuò)誤的地方有3處:(1)第2行main();不應(yīng)該有分號(hào);(2)定義charc=”c”;時(shí),字符常量應(yīng)該用單引號(hào);(3)打印語句printf(“%d\n”,int(f%3));的格式有錯(cuò),應(yīng)該在f前的int用括號(hào)括起來,因?yàn)閷?shí)型數(shù)據(jù)不能執(zhí)行取余運(yùn)算。正確的程序如下:#include<stdio.h>voidmain()floatf=7.12;charc='c';printf("%d\n",((int)f%3));printf("%c",c);}第3章順序結(jié)構(gòu)程序設(shè)計(jì)一.簡答題1.程序有哪三種基本結(jié)構(gòu)?【解答】程序的三種基本結(jié)構(gòu)為:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。2.C語言的語句有哪幾類?表達(dá)式語句與表達(dá)式有什么不同?【解答】c語句可分為以下五類:表達(dá)式語句、函數(shù)調(diào)用語句、控制語句、復(fù)合語句和空語句。其中表達(dá)式語句與表達(dá)式的區(qū)別在于表達(dá)式語句是表達(dá)式加上“;”組成。二、填空題TOC\o"1-5"\h\z符號(hào)'&'是運(yùn)算符,&a是指。C語言中的空語句就是。Scanf函數(shù)中的“格式字符”后面應(yīng)該是,而不應(yīng)該是。若想輸出字符%,則應(yīng)該在“格式字符”的字符串中用表示。intx=7;執(zhí)行x+二x-二x+x;后x的值是。6.inta=10,b=20;a+6.inta=10,b=20;a+二b;b二a-b;a-二b;的功能是6.inta=10,b=20;a+6.inta=10,b=20;a+二b;b二a-b;a-二b;的功能是答案:1.地址、變量a的內(nèi)存地址。一個(gè)分號(hào)。變量地址,變量名。連續(xù)2個(gè)%號(hào)。-14交換變量a,b的值,打印出a=20,b=10。三.運(yùn)行程序?qū)懡Y(jié)果以下程序的執(zhí)行結(jié)果是。#include<math.h>main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);}【解答】0以下程序的執(zhí)行結(jié)果是。main(){doubled;floatf;longl;inti;i=f=l=d=20/3;printf("%d%ld%f%f\n",i,l,f,d);}【解答】666.0000006.000000以下程序的執(zhí)行結(jié)果是。main(){intk=17;printf("%d,%o,%x\n",k,k,k);}【解答】17,21,11以下程序的執(zhí)行結(jié)果是。#include<stdio.h>main(){chara,b,c,d;a='A',b='B',c='C',d='D';printf("%1c\n",a);printf("%2c\n",b);printf("%3c\n",c);printf("%4c\n",d);}【分析與提示】可以用%c格式輸出的,也可以用%d格式輸出,所以與%md近似,m指出了要輸出數(shù)據(jù)的寬度。若數(shù)據(jù)位數(shù)小于m,則左端補(bǔ)空格,若數(shù)據(jù)位數(shù)大于m,則按實(shí)際位數(shù)輸出?!窘獯稹緼BCD5.以下程序的執(zhí)行結(jié)果是。#include<stdio.h>main(){charc1,c2;scanf("%c%c",&c1,&c2);printf("c1=%c,c2=%c,c3=%d,c4=%d",c1++,--c2,c1,c2);}【解答】運(yùn)行輸入:AB〈回車〉運(yùn)行結(jié)果為:cl=A,c2=A,c3=65,c4=666.以下程序的執(zhí)行結(jié)果是。#include〈stdio.h〉main(){charcl,c2;scanf("%c,%c",&cl,&c2);++c1;--c2;printf("c1=%c,c2=%c\n",c1,c2);}【分析與提示】例如當(dāng)輸入B,C〈回車〉,B,C的ASCII碼值為66,67,執(zhí)行++c1;-七;后,cl為66+1變成67即C,c2為67-1變成66即B?!窘獯稹窟\(yùn)行輸入:B,C<回車〉,運(yùn)行結(jié)果為:c1=C,c2=B7.以下程序的執(zhí)行結(jié)果是。main(){charch='a';inta=98;doubley=1.2345678;printf("(1)a=%d,a=%c,ch=%d,ch=%c\n",a,a,ch,ch);printf("(2)b=%u\n",b);printf("(3)c=%ld\n",c);printf("(4)x=%f,y=%f\n",x,y);printf("(5)x=%e,y=%e\n",x,y);printf("(6)y=%-10.2f\n",y);}【解答】(1)a=98,a二b,ch=97,ch二a(2)b=1000x=3.140000,y=1.234568x=3.14000e+00,y=1.23457e+00y=1.238.以下程序的執(zhí)行結(jié)果是。#include〈stdio.h〉main(){inta,b;floatx;scanf("%d,%d",&a,&b);x=a/b;printf("\nx=%f\n",x);}【解答】運(yùn)行輸入:2,2<回車>,運(yùn)行結(jié)果為:1.0000009.當(dāng)輸入12345,a時(shí),給出程序的運(yùn)行結(jié)果,執(zhí)行結(jié)果是。#include<stdio.h>main(){inta;charc;scanf("%3d,%c",&a,&c);printf("\n%d,%d\n",a,c);}【分析與提示】%md,m指出了要輸出數(shù)據(jù)的寬度。若數(shù)據(jù)位數(shù)小于m,則左端補(bǔ)空格,若數(shù)據(jù)位數(shù)大于m,則按實(shí)際位數(shù)輸出。a的ASCII碼值是97?!窘獯稹?2345,9710.分析下面程序,在鍵盤上輸入數(shù)據(jù)才能使得變量a=10,b=20,c1='A',c2='a',x=1.5,y=-3.75,z=67.8。程序如下:#include<stdio.h>main(){inta,b;floatx,y,z;charc1,c2;scanf("%5d%5d%c%c%f%f%*f,%f",&a,&b,&c1,&c2,&x,&y,&z);printf("a=%d,b=%d,c1=%c,c2=%c,x=%f,y=%f,z=%f",a,b,c1,c2,x,y,z);}【分析與提示】按%5d格式輸入a與b的值時(shí),要先鍵入三個(gè)空格,然后再鍵入10與20。%*f是用來禁止賦值的。在輸入時(shí),對(duì)應(yīng)%*f位置可以隨意輸入一個(gè)數(shù)(我們輸入1.5,該數(shù)不會(huì)賦值給任何變量的)?!窘獯稹窟\(yùn)行輸入:」20Aal.5LJ-3.75」1.5,67.8〈回車>11.一個(gè)程序中,使用了多個(gè)scanf函數(shù)輸入數(shù)據(jù),用a=3,b=7,x=8.5,y=71.82,cl二'A',c2二'a'輸入到每個(gè)變量,應(yīng)該如何輸入數(shù)據(jù)?main(){inta,b;floatx,y;charc1,c2;scanf("a=%d,b=%d",&a,&b);scanf("x=%f,y=%e",&x,&y);scanf("c1=%cc2=%c",&c1,&c2);printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);}【分析與提示】在使用多個(gè)scanf函數(shù)輸入數(shù)據(jù)時(shí),第一個(gè)輸入行末尾輸入的回車被第二個(gè)scanf函數(shù)吸收,因此在第二、三個(gè)scanf函數(shù)的雙引號(hào)后放置一個(gè)空格以抵消上行輸入的回車鍵。若沒有一個(gè)空格,則按上面輸入的數(shù)據(jù)會(huì)出錯(cuò)?!窘獯稹窟\(yùn)行輸入:a=3,b=4<回車〉X=8,y=71.82<回車〉C1=AC2=a〈回車〉運(yùn)行結(jié)果:a=3,b=7,x=8.500000,y=71.820000,c1=A,c2=a四.編程題1.由鍵盤輸入1個(gè)字母,輸出其ASCII碼值。【分析與提示】將一個(gè)字符常數(shù)賦給一個(gè)字符變量,并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII代碼放到內(nèi)存單元中,因此,字符型數(shù)據(jù)也可以像整型數(shù)據(jù)那樣使用,可以用來表示一些特定范圍內(nèi)的整數(shù)。所以int型與char型變量的值可以互換,分別用%c和%4不同格式輸出就行了。但是注意這種轉(zhuǎn)換是有條件的。因?yàn)?,char變量在內(nèi)存占一個(gè)字節(jié),而int整型變量占2個(gè)字節(jié)。當(dāng)int型高位字節(jié)是0時(shí),char與int可以互換;若不是0,則不可以互換。例如,用%。格式輸出時(shí),取低位字節(jié),高位字節(jié)被舍棄。參考代碼:#include"stdio.h"main(){charch;ch=getchar();printf("%c,%d",ch,ch);}【解答】運(yùn)行輸入:B〈回車〉運(yùn)行結(jié)果:B,662.從鍵盤上輸入一個(gè)大寫字母,把它轉(zhuǎn)換成小寫字母,然后顯示出來?!痉治雠c提示】大寫字母轉(zhuǎn)換小寫時(shí)ASCII碼值+32,相反的,小寫字母轉(zhuǎn)換成大寫字母時(shí)ASCII碼值-32。參考代碼:#include〈stdio.h〉main(){charx1,x2;printf("x1=\n");scanf("%c",&x1);x2=x1+32;printf("%c,%c\n",x1,x2);}【解答】運(yùn)行輸入:A〈回車〉運(yùn)行結(jié)果:A,a3.從鍵盤上輸入兩個(gè)實(shí)型數(shù),求兩數(shù)的和、差、積,輸出結(jié)果時(shí)要求小數(shù)部分占兩位【提示】結(jié)果要求保留2位小數(shù),所以輸出的結(jié)果格式為%.2化main(){floatx,y,a,b,c;printf("pleaseinputx,y:");scanf("%f,%f",&x,&y);a=x+y;b=x-y;c=x*y;printf("x=%f,y=%f\n",x,y);printf("x+y=%.2f\nx-y=%.2f\nx*y=%.2f\n",a,b,c);}【解答】運(yùn)行輸入:pleaseinputx,y:10,20<回車〉運(yùn)行結(jié)果:x=10.000000,y=20.000000x+y=30.00x-y=-10.00x*y=200.004.編寫一個(gè)程序,求出給定半徑r的圓以及內(nèi)正n邊形的面積,并且輸出計(jì)算結(jié)果。r和n的值由用戶輸入?!痉治雠c提示】由數(shù)學(xué)知識(shí)得到:半徑為r圓的面積srr2,半徑為r圓的內(nèi)接正n邊形的面積A=nr2sina/2,其中a=2兀/n處理步驟:提示信息,接收參數(shù)值;計(jì)算圓的面積;計(jì)算正n邊形的面積;輸出結(jié)果。參考代碼:#include<stdio.h>#include<math.h>#definePI3.14main(){intn;floatr,s,area;printf("PleaseinputtheradiusandtheN.:\n");scanf("%f%d",&r,&n);s=PI*r*r;area=(n*r*r*sin(2*PI/n))/2.0;printf("S=%.2f\tA=%.2f\n",s,area);return(0);}運(yùn)行結(jié)果如下:PleaseinouttheradiusandtheN.;15S=3.14A=2.385.已知華氏溫度與攝氏溫度之間的轉(zhuǎn)換公式是:c=5/9x(F-32),編寫一個(gè)程序,將用戶輸入的華氏溫度轉(zhuǎn)換成攝氏溫度,并予以輸出?!痉治雠c提示】首先要定義輸入輸出溫度為浮點(diǎn)型,且5/9兩數(shù)相除結(jié)果為整數(shù),5/9的值為0,故不能寫成5/9,而應(yīng)寫成(5.0/9.0)*(f-32)。結(jié)果要求保留2位小數(shù),所以輸出的結(jié)果格式為%5.2f。參考代碼:#include<stdio.h>main(){intf;floatc;printf("\npleaseinputtheF:");scanf("%d",&f);c=5.0/9*(f-32);/*不能寫成5/9,兩數(shù)相除結(jié)果為整數(shù),5/9的值為0*/printf("theC.temperatureis:%.2f",c);return(0);}【解答】運(yùn)行結(jié)果如下:pleaseinputtheF:75〈回車〉theC.te,[eratureis:23.896.由鍵盤輸入5個(gè)學(xué)生的計(jì)算機(jī)成績,計(jì)算他們的平均分并保留2位小數(shù)?!痉治雠c提示】方法與上題類似,同樣是保留兩位有效數(shù)字%6.2f。參考代碼:main(){inta,b,c,d,e;floattotal,aver;printf("Pleseinput5students'scores:\n");scanf("%d,%d,%d,%d,%d",&a,&b,&c,&d,&e);total=a+b+c+d+e;aver=total/5.0;printf("Average:%6.2f\n",aver);}【解答】運(yùn)行輸入:80,93,75,68,87〈回車〉運(yùn)行結(jié)果:Average:80.607.編寫將輸入的英里轉(zhuǎn)換為公里,每英里等于5380英尺,每英尺等于12英寸,每英寸等于2.54厘米,每公里等于100000厘米。main(){doublemile,k;printf(“entermile:”);scanf(“%lf”,&mile);k=mile*5380*12*2.54/100000;printf(“%lfmileis%lfkilometer\n”,mile,k);}【解答】運(yùn)行:entermile:2/2.000000mileis3.279648kilometer第4章選擇結(jié)構(gòu)程序設(shè)計(jì)4.1習(xí)題一.填空題已知a=3,b=4,c=5。則邏輯表達(dá)式a+b〉c&&b==c的值為,!(a〉b)&&c1的值為,!(a+b)+c-1&&b+c/2的值為。【分析與提示】本題考查運(yùn)算符的優(yōu)先級(jí)別?!窘獯稹?;1;1二、運(yùn)行程序?qū)懡Y(jié)果1.下列程序運(yùn)行的運(yùn)行結(jié)果為。#include<stdio.h〉main(){inta=3,b=8,c=9,d=2,e=4;intmin;min=(a<b)a:b;min=(min<c)min:c;min=(min<d)min:d;min=(min<e)min:e;printf("Minis%d\n",min);}【分析與提示】本題程序的功能為:找出a,b,c,d,e中最小的值并輸出?!窘獯稹縈inis22.若輸入3,4<回車>,下列程序運(yùn)行的運(yùn)行結(jié)果為;若輸入4,3<回車>,下列程序運(yùn)行的運(yùn)行結(jié)果為。#include<stdio.h>main(){inta,b,c;printf("Inputa,b:");scanf("%d,%d",&a,&b);if(a>=b){c=a*b;printf("%d*%d=%d\n",a,b,c);}else{c=a/b;printf("%d/%d=%d\n",a,b,c);}【分析與提示】本題程序的功能為:從鍵盤輸入變量a,b,計(jì)算c的值(若a>=b,則c=a*b,若a<b則c二a/b),并輸出a,b,c的值。【解答】3/4=0;4*3=123.下列程序運(yùn)行的運(yùn)行結(jié)果為。#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf("a=%d,b=%d\n",a,b);}【分析與提示】本題中easel:后面是一個(gè)switch語句,執(zhí)行完該語句后,直接執(zhí)行case2:后面的語句。【解答】a=2,b=1三.編程題1.輸入一個(gè)字母,若為小寫,則把它變成大寫輸出?!痉治雠c提示】小寫字母的ASCII碼值與其對(duì)應(yīng)的大寫字母的ASCII碼值相差32。參考代碼:main(){charc;printf("請(qǐng)輸入一個(gè)字母\n");scanf("%c",&c);if(c>='a'&&c<='z')c=c-32;printf("%c\n",c);}企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤提成。利潤(I)低于或等于10萬元時(shí),獎(jiǎng)金可提10%;利潤高于10萬元,低于20萬元時(shí),低于10萬元的部分按10%提成,高于10萬元的部分,可可提成7.5%;20萬到40萬之間時(shí),高于20萬元的部分,可提成5%;40萬到60萬之間時(shí)高于40萬元的部分,可提成3%;60萬到100萬之間時(shí),高于60萬元的部分,可提成1.5%,高于100萬元時(shí),超過100萬元的部分按1%提成,從鍵盤輸入當(dāng)月利潤I,求應(yīng)發(fā)放獎(jiǎng)金總數(shù)?【分析與提示】請(qǐng)利用數(shù)軸來分界,定位。注意定義時(shí)需把獎(jiǎng)金定義成長整型。參考代碼:main(){longinti;intbonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;elseif(i<=200000)bonus=bonus1+(i-100000)*0.075;elseif(i<=400000)bonus=bonus2+(i-200000)*0.05;elseif(i<=600000)bonus=bonus4+(i-400000)*0.03;elseif(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}??由鍵盤輸入三個(gè)整數(shù)a、b、c,用條件運(yùn)算符求出其中最大值和最小值?!痉治雠c提示】首先比較輸入的a,b的大小,并把大數(shù)裝入max,小數(shù)裝入min中,然后再與c比較,若max小于c,則把c賦予max;如果c小于min,則把c賦予min。因此max內(nèi)總是最大數(shù),而min內(nèi)總是最小數(shù)。最后輸出max和min的值即可。參考代碼:main(){inta,b,c,max,min;scanf("%d,%d,%d",&a,&b,&c);max=a>ba:b;max=max>cmax:c;min=a<ba:b;min=min<cmin:c;printf("最大值為:%d,最小值為:%d\n",max,min);}4.有一函數(shù):x(x〈l):y=2xT(lWx〈10)3xTl(x$10)編一程序,輸入一個(gè)x值,輸出y值?!痉治雠c提示】本題考查if語句的嵌套,應(yīng)當(dāng)注意if與else的配對(duì)關(guān)系。從最內(nèi)層開始,else總是與它上面最近的(未曾配對(duì)的)if配對(duì)。參考代碼:main(){floatx,y;printf("請(qǐng)輸入x的值\n");scanf("%f",&x);if(x〈1)y=x;elseif(x>=10)y=3*x-11;elsey=2*x-1;printf("x=%6.2f,y=%6.2f",x,y);}5.從鍵盤上輸入星期號(hào),并顯示該日期的英文名字?!痉治雠c提示】本實(shí)例知識(shí)點(diǎn):switch語句。switch語句的控制流程是:首先計(jì)算表達(dá)式的值,然后依次與每一個(gè)case中的常量值進(jìn)行比較,一旦發(fā)現(xiàn)了某個(gè)能夠匹配的值,就執(zhí)行該case后面的語句組,直到遇到break語句為止。如果表達(dá)式的值與所有case中的常量都不匹配,則執(zhí)行default后面的語句組。參考代碼:main(){intxqh;charywm;printf("請(qǐng)輸入星期號(hào)(1~7):\n");scanf("%d",&xqh);switch(xqh){case1:printf("Monday");break;case2:printf("Tuesday");break;case3:printf("Wednesday");break;case4:printf("Thursday");break;case5:printf("Friday");break;case6:printf("Saturday");break;case7:printf("Sunday");break;default:printf("error");}}6.某市不同車牌的出租車3公里的起步價(jià)和計(jì)費(fèi)分別為:夏利7元/公里,3公里以外2.1元/公里;富康8元/公里,3公里以外2.4元/公里;桑塔納9元,3公里以外2.7元/公里。編程:從鍵盤輸入乘車的車型及行車公里數(shù),輸出應(yīng)付車資。【分析與提示】可設(shè)三個(gè)變量,分別表示乘車的車型、行車公里數(shù)和應(yīng)付車資,根據(jù)乘車的車型和行車公里數(shù),計(jì)算出應(yīng)付的車資。參考代碼:main(){intex;/*定義乘車的車型變量ex*/floatgl,cf;/*定義行車公里數(shù)變量gl、應(yīng)付車資變量cf*/printf("\tl-夏利\n\t2-富康\n\t3-桑塔納\n");printf("\t請(qǐng)輸入車型(1-3):");scanf("%d",&cx);printf("\n\t請(qǐng)輸入行車公里數(shù):");scanf("%f",&gl);switch(cx){casel:if(gl<=3)cf=7.0;elsecf=7+(gl-3)*2.l;break;case2:if(gl<=3)cf=8.0;elsecf=8+(gl-3)*2.4;break;case3:if(gl<=3)cf=9.0;elsecf=9+(gl-3)*2.7;}printf("應(yīng)付車資為%.1f\n",cf);}7.給一個(gè)不多于5位的正整數(shù),要求:①求出它是幾位數(shù)②分別打印出每一位數(shù)字;③按逆序打印出各位數(shù)字。如原數(shù)為12345,則逆序?yàn)?432l。【分析與提示】本題的思路是:設(shè)5個(gè)變量,分別代表個(gè)位、十位、百位、千位和萬位。從個(gè)位起,依次將各個(gè)位取出來,按取出的順序組合成新的數(shù)據(jù),并記錄當(dāng)前取出的數(shù)字的個(gè)數(shù)。參考代碼:#include"stdio.h"main(){unsignedx,m,n=0,w=0;unsignedge=0,shi=0,bai=0,qian=0,wan=0;printf("請(qǐng)輸入一個(gè)正整數(shù)");scanf("%u",&x);m=x;ge=m%10;m=m/10;w=1;n=ge;if(m){shi=m%10;m=m/10;w=2;n=n*10+shi;if(m){bai=m%10;m=m/10;w=3;n=n*10+bai;if(m){qian=m%10;m=m/10;w=4;n=n*10+qian;if(m){wan=m;w=5;n=n*10+wan;}}}}printf("\n%u為%口位數(shù)",n,w);printf("\n正整數(shù)的原序?yàn)椋?u",x);printf("\n正整數(shù)的逆序?yàn)椋?u",n);}注:當(dāng)該程序輸入一個(gè)較大的5位數(shù)時(shí),輸出結(jié)果就不正確了,思考為什么?動(dòng)手試一下怎樣修改該程序。第5章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)一、填空題1.下面程序的功能是用“輾轉(zhuǎn)相除法”求兩個(gè)正整數(shù)的最大公約數(shù)。請(qǐng)?zhí)羁铡?include<stdio.h>main(){intr,m,n;scanf("%d%d",&m,&n);if(m〈n)(1);r=m%n;while(r){m=n;n=r;(2);}printf("%d\n",n);【分析與提示】輾轉(zhuǎn)相除法:兩數(shù)相除,若不能整除,則以除數(shù)作為被除數(shù),余數(shù)作為除數(shù),繼續(xù)相除,直到余數(shù)為0時(shí),當(dāng)前除數(shù)就是最大公約數(shù)。【解答】(1)r=m;m=n;n=r;(2)r=m%n;二.運(yùn)行程序?qū)懡Y(jié)果1.下列程序運(yùn)行的運(yùn)行結(jié)果為。#include<stdio.h>main(){inty=10;do{y--;}while(--y);printf("%d",y--);}【分析與提示】注意y--與y--的運(yùn)算順序?!窘獯稹?2.下列程序運(yùn)行的運(yùn)行結(jié)果為。main(){intx=3,y=6,z=2;while(x++!=
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年中級(jí)注冊(cè)安全工程師之安全實(shí)務(wù)化工安全題庫綜合試卷B卷附答案
- 2023年中級(jí)注冊(cè)安全工程師之安全實(shí)務(wù)化工安全提升訓(xùn)練試卷A卷附答案
- 影像學(xué)對(duì)骨關(guān)節(jié)感染并發(fā)癥的預(yù)測價(jià)值
- 內(nèi)科學(xué)慢性白血病
- 2023年中級(jí)注冊(cè)安全工程師之安全實(shí)務(wù)化工安全高分題庫附答案 (一)
- 2023年中級(jí)注冊(cè)安全工程師之安全生產(chǎn)技術(shù)基礎(chǔ)題庫練習(xí)試卷B卷附答案 (一)
- 曲靖師范學(xué)院《專業(yè)技能與實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 房屋購買公證合同范例
- 工地房間出租合同范例
- 加工商合同范例
- 地 理知識(shí)點(diǎn)-2024-2025學(xué)年七年級(jí)地理上學(xué)期(人教版2024)
- 翻譯技術(shù)實(shí)踐智慧樹知到期末考試答案章節(jié)答案2024年山東師范大學(xué)
- 基礎(chǔ)有機(jī)化學(xué)實(shí)驗(yàn)智慧樹知到期末考試答案章節(jié)答案2024年浙江大學(xué)
- 媒介思維與媒介批評(píng)智慧樹知到期末考試答案章節(jié)答案2024年四川音樂學(xué)院
- 中國畫創(chuàng)作智慧樹知到期末考試答案章節(jié)答案2024年湖北科技學(xué)院
- 信息安全風(fēng)險(xiǎn)識(shí)別清單(模板)
- 國家開放大學(xué)《森林保護(hù)》形考任務(wù)1-4參考答案
- 北京市朝陽區(qū)2022~2023學(xué)年度第一學(xué)期期末檢測八年級(jí)數(shù)學(xué)試卷參考答案及評(píng)分標(biāo)準(zhǔn)
- 酒店報(bào)銷水單經(jīng)典模板
- 獨(dú)資公司章程范本下載
- DFMEA模板(完整版)
評(píng)論
0/150
提交評(píng)論