freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

全國計算機等級考試二級教程——c語言程序設(shè)計課后習題詳細答案[1]-預覽頁

2025-07-13 20:36 上一頁面

下一頁面
 

【正文】 【分析與解答】(1) 《教程》中有關(guān)的例題。(5) 交換的步驟如下:① 把c中的值賦給t。經(jīng)過以上步驟,已按要求進行了交換。scanf(″%d%d%d″,amp。printf(″(1) a=%d,b=%d,c=%d\n″,a,b ,c)。 a=t。 [3] [JB1|][JB1|]【參考答案】 [1]:![KG*2](邏輯非)[2]:、=、=(小于、大于、小于等于、大于等于)[3]:==、![KG*2]=(等于、不等)[4]:amp。(1) 改寫如下:switch(a/10){ default : m=5。case 3 : m=2。case 5 : m=4?!痉治雠c解答】編寫本題的程序,首先要解決如何計算學生當前的年齡(設(shè)存放實足年齡的變量是age)。以上3條,用C語言可以描述如下:if((m1m0)[JB1|][JB1|](m1==m0amp。讀者可以參考以上語句寫出程序,也可以根據(jù)分析寫出與此形式不同的語句和程序。 【分析與解答】本題的主要算法是從3個數(shù)中找出最大的那個數(shù)。(3) 用c去和max比較,若c大于max,則把c賦給max;若不大于max,則什么也不做。(2) 由給出的函數(shù)可知,只有x的值在規(guī)定的范圍內(nèi)時,才求出y的值,因此程序應當對輸入的x進行判斷,若超過范圍就不求y的值。 scanf(″%d″, amp。x10){ if(x==0) y=x1。else if(x0 amp。}printf(″***END***\n\n″)。 i=101。(3) 若累加和放在變量sum中,累加項放在變量t中,按照以上敘述,for循環(huán)體內(nèi)的語句可以設(shè)計如下:s=s。(5) 請讀者自己對變量做出正確的定義并賦初值,設(shè)計輸出語句,完善程序。 e+=t。(5) 現(xiàn)例示用while循環(huán)來求e值的部分程序:i=1。e+=t。(8) 根據(jù)以上分析,讀者已不難用for循環(huán)來實現(xiàn)求e值的計算。(3) 按輸出的要求,需要設(shè)一個變量用于統(tǒng)計一行中輸出的個數(shù),若在一行上已連續(xù)輸出了5個年數(shù),就需輸出一個換行符,使下一個輸出項在新的一行上開始;若用變量n來做此統(tǒng)計,則當表達式n%5==0時就應輸出一個換行符,同時使n重新置0值。 y=2000。n++。從1880年至2000年有30個閏年。printf(″\n″)。k=7。printf(″\n″)。i=k。(3) 輸出結(jié)果與題目要求不同,它們的區(qū)別是:按題目每一行之前有不同的空格,而這里則是所有的行都在第一列上開始輸出*號;所以接著就應當解決這一問題。k=7。b。printf(″\n″)。while(ch![KG*2]=′\n′){ ……ch=getchar()。因此可用以下語句來實現(xiàn)。例如:n++。這時,循環(huán)內(nèi)、外的“ch=getchar()。ch=getchar()。(3) 要把輸入的一串數(shù)字字符轉(zhuǎn)換成一個整數(shù),首先需要判斷當前讀入的字符是否是數(shù)字字符,若不是則什么也不做;若是,則進行以下操作:① 把當前讀入的一個字符轉(zhuǎn)換成一個一位整數(shù),這可由語句“d=ch′0′。amp。 n=n*10+d。amp。注意,最后輸出n時,應當使用格式說明%ld,而不能使用%d。如:while((ch=getchar())![KG*2]=EOF)if(ch==′\n′)n++。amp?!痉治雠c解答】(1) 若圖案的行數(shù)輸入到變量L中。(3) 假定ch中存放了一個字符,我們知道,通過以下循環(huán)可以在一行上輸出n個字符:for(j=1。注意,在循環(huán)后putchar(′\n′)。當i為1時ch中被賦予字母A,當i為2時ch中被賦予了字母B,其他依此類推。因此在(3) 中for循環(huán)之前可用此表達式求出n的值。n=2*i1。putchar(′\n′)。這同樣可以由以下的for循環(huán)來實現(xiàn):for(k=L。(8) 請讀者自己補充有關(guān)的include行、語句和變量的定義,以完成整個程序。而所給函數(shù)的實際流程卻不能實現(xiàn)這一功能,例如,若n的值為15(明顯不是素數(shù))時,在for循環(huán)中,當k的值為3時,就會執(zhí)行if子句,yes得0,但for循環(huán)并沒有終止,接著k為4時就會執(zhí)行else子句,又使yes得1,由此可見此程序段并不能準確地判斷一個數(shù)是否為素數(shù);最后確定yes為何值的是for循環(huán)的終止值n/2,當n為15時,k的值為n/2等于7,在循環(huán)體內(nèi)將又一次執(zhí)行else子句,使yes得1,這時循環(huán)結(jié)束,函數(shù)返回1。 break。(5) 總結(jié):因為一旦if語句中的表達式:n%k==0的值為1(即可被某數(shù)整除),則可以確定n不是素數(shù),因此即可返回,不必再執(zhí)行函數(shù)其他部分,if子句可改成:if(n%k==0){ yes=0。else yes=1。return 1。 }(4) 總結(jié):本題在算法上十分簡單,只是要求讀者能夠掌握編寫函數(shù)的基本知識。(2) 若函數(shù)名為funa,傳送到函數(shù)的參數(shù)是整型值,假定形參命名為n;函數(shù)的返回值應當是浮點型,為此函數(shù)的首部可以是:double funa( int n )(3) 接著寫函數(shù)體。add=add+t。最簡單的可用表達式:s=s來實現(xiàn)(),若賦值號右邊s中的值為1,則賦值號左邊s中的值就得1;若賦值號右邊s中的值為1,則賦值號左邊s中的值就會得1;則每循環(huán)一次就使s改變了一次符號。 k++){ s=s。(6) 請編寫主函數(shù)。數(shù)的參數(shù)及其類型,掌握需要返回的值及其類型。(2) 函數(shù)的基本算法是累加,只是除第一項外其余各項都用減法;每一項的分子都是1,分母部分為k2,k的值逐項增1,由2變化到m。因此,很容易寫出函數(shù):double fun( double x ){ return x*x5*x+4。(5) y1的值應是:。② 在給定了函數(shù)之后,調(diào)用函數(shù)時,函數(shù)的實參應當是一個與形參類型一致的任意合法的表達式。來求x2+y2;當x、y有確定值時,可以用add( sin(x+y),cos(x+y))。ch。ch。(2) 假設(shè)把a、b的和值傳送給p1所指的存儲單元,可用語句:*p1=a+b。 }(4) 在主函數(shù)中,若有定義語句:double x,y,z1,z2。(5) 總結(jié):本題所要求的算法極簡單,但它要求有兩個值返回,用return語句就不可能返回兩個函數(shù)值。如果把a、b、c中的最大值暫時放在max中,把最小值放在min中,可用以下算法找到最大值:① 假定a中的數(shù)最大,把a賦給max。⑤ 可模仿以上算法找到最小值:min=a。 *pmin=min。(5) 總結(jié):本題要求的算法在第四章應當已掌握,本題的主要目的是要求讀者掌握如何通過指針把函數(shù)中的多個結(jié)果傳回主函數(shù)。ch[KG*3]=′9′。(5) 總結(jié):通過本題的編程,要求掌握利用數(shù)組元素作為計數(shù)器的基本算法。(3) 若進行指定操作的函數(shù)名為moves,則函數(shù)的首部可如下:void moves(int *a,int n,int *m)這里a用以指向一維數(shù)組的首地址,n接受開始移動的元素的位置,m指向主函數(shù)中存放元素個數(shù)的變量,因為沒有函數(shù)值返回,因此函數(shù)的類型定義為void。注意,應當先把第n個元素(下標為n1)移到第n1個元素(下標為n2)的位置上,依次從前到后向前移動。若輸出函數(shù)名為:outarr,則函數(shù)首部可寫成:void outarr( int a[], int num)形參a指向待輸出的數(shù)組,num接受數(shù)組中元素的個數(shù)。printf(″\[KG*3]n\[KG*3]n″)。n的值在主函數(shù)中輸入,然后調(diào)用以上函數(shù)。② 分析以上例子可見,所規(guī)定的操作,實際上刪除了數(shù)列中的第n1個元素,因此可見刪除操作是由移動操作來完成的。ian。(4) 當完成以上操作退出循環(huán)時,因為在循環(huán)內(nèi)最后進行了一次j[KG*3]+[KG*3]+的操作,所以j的值就是奇數(shù)的個數(shù),最后應當把它賦給*bn,以便通過指針bn把奇數(shù)的個數(shù)傳回主函數(shù)。(7) 總結(jié):本題的算法很簡單,要求讀者能夠編寫獨立的模塊,并在函數(shù)之間熟練地傳送數(shù)據(jù)。(3) 排序前后可以調(diào)用一個輸出函數(shù),輸出原始數(shù)據(jù)和排序后的數(shù)據(jù),但注意,這里是對字符數(shù)組進行輸出。② 把位置騰出來,以便放入插入的數(shù)據(jù),但原有的數(shù)據(jù)不能缺少。用變量j來放置該位置在數(shù)組中的下標,以下while循環(huán)將完成此任務(wù):j=0。因為已經(jīng)假定數(shù)列按由小到大排列,當x的值大于當前的元素a[j]時,應當接著與下一個元素比較(執(zhí)行j[KG*3]+[KG*3]+),直到x的值小于或等于當前的元素a[j]時,x就應當插入到下標為j的元素中,在此之前的所有值都比x小。x就應當插入到下標為j的元素中。i[KG*3]=j。插入過程到此結(jié)束。(10) 總結(jié):插入算法是程序設(shè)計中的一種最基本的算法,希望讀者在理解的基礎(chǔ)上編寫程序??捎靡韵碌膚hile循環(huán)來進行轉(zhuǎn)換:s=a。 }退出循環(huán)時,已把轉(zhuǎn)換后的二進制數(shù)的每一位上的數(shù)放入主函數(shù)的數(shù)組元素中,但是應當注意,在a[0]中放的是二進制數(shù)的最低位,最后放入的是最高位。因為s已指向主函數(shù)中數(shù)組的第一個元素(下標為0);在循環(huán)中,指針a不斷后移,最后指向存放二進制數(shù)最高位的元素;所以as的值就是已存入數(shù)據(jù)的元素的個數(shù)。(3) 所有的工作在一個while循環(huán)中完成:while(n15){……}當不同的隨機數(shù)的個數(shù)n的值等于15時退出循環(huán)。準備從下標為0的元素開始去查找數(shù)組中是否有與x相同的數(shù),若沒有,就把x中的數(shù)加入到數(shù)組中(放在最后),若有,就什么也不做。在兩種情況下,退出循環(huán):a. 當x不等于a[i]時,i[KG*3]+[KG*3]+,x再去與下一個元素進行比較,當遇到x等于a[i]時,說明在數(shù)組中已經(jīng)有此數(shù),因此不必再去比較,應當退出循環(huán)。 }因為已有的數(shù)據(jù)放在下標為0到n1的元素中,因此新的數(shù)放在a[n]中,然后n[KG*3]+[ KG*3]+。(6) 請在主函數(shù)中定義所需的數(shù)組和變量。【分析與解答】(1) 。形參p是一個行指針,N是二維數(shù)組的列數(shù)。形參a是一個行指針,N是二維數(shù)組的列數(shù)。i[KG*3]+[KG*3]+)for(j=0。iN。 cols[i]+[KG*3]=a[j][i]。其他依次類推。i[KG*3]+[KG*3]+){ dg1+[KG*3]=a[i][i]。(6) 。兩個矩陣相加就是把兩個矩陣中下標相同的兩個元素相加,相加的和值放在第三個矩陣(假定為c)、相同下標的元素中。和值放在c所指數(shù)組中。jM。i[KG*3]+[KG*3]+){ for(j=0。}可調(diào)用三次分別輸出a、b、c三個矩陣。在其中存入九九表中的數(shù)據(jù)。i[KG*3]+[KG*3]+)for(j=0。表格的第二行:(1) (2) (3) (4) (5) (6) (7) (8) (9)可用以下語句輸出:for(i=1。在二維數(shù)組每一行輸出前(即內(nèi)循環(huán)之前)加語句:printf(″(%d)″,i+1)。(7) 總結(jié):本題的算法很簡單,只包含給二維數(shù)組的賦值和表格的輸出,對于表格的格式,可以通過對程序的運行,逐步進行調(diào)整。① void getm( int (*[KG*3]p)[N] )形參p是一個行指針,指向MN的數(shù)組首地址。③ int getmax(int *rows)形參指針rows指向存放每行元素之和的一維數(shù)組,在此函數(shù)中將求出最大值所在的下標作為函數(shù)值返回。iN。 }⑤ void output( int a[][N] )此函數(shù)的功能是輸出a所指的二維數(shù)組。讀者不妨對兩列中的數(shù)據(jù)進行交換。(3) 對矩陣進行逆置的操作可由以下函數(shù)完成:void transpose(int p[][N])形參p指向一個二維數(shù)組。ji。 }內(nèi)循環(huán)的控制變量j的變化范圍從0到i,以對角線為界,把對稱位置上的元素值進行對調(diào)。 [2] j (或 j)【參考答案】 3【參考答案】 goodgood!三、編程題【分析與解答】(1) 已知gets函數(shù)的調(diào)用形式為:gets(str),str是存放所讀入字符串的起始地址,可以是字符數(shù)組名、已指向一串固定存儲單元的字符指針或數(shù)組元素的地址。函數(shù)的首部如下:mygets( char *s )輸入過程如下:while((*s=getchar())!= 39。最后當讀入39。的存儲單元,不要忘記在此單元中放入字符串結(jié)束標志來替換39。puts函數(shù)輸出從str地址開始的字符串,最后自動輸出一個換行符。\0[KG*3]n39。【分析與解答】(1) 函數(shù)首部如下:int fun( char *s)字符指針形參s指向待查字符串。amp。else return 1。(2) 若函數(shù)名為delc,則函數(shù)首部可寫成:char delc(char *s, int pos)因為刪除成功要求返回被刪的字符,因此函數(shù)值的類型應是char。先把下標為pos中的字符前移到下標為pos1的元素中,其他依次前移:for(i=pos。使結(jié)束標志也向前移一位。(7) 總結(jié):刪除算法是程序設(shè)計中的基本算法,雖然,在細節(jié)的要求上可能有所不同,例如對于一維數(shù)組中的數(shù)據(jù),需要變動數(shù)據(jù)的個數(shù),而字符串則要求重新設(shè)置字符串結(jié)束標志。但完成這一操作需要通過三個步驟:第一,找到字符串的最后一個空格的位置;第二,往回找到字符串的最后一個非空格的位置;第三,在最后一個非空格的位置的后面加上字符串結(jié)束標志。p。以上while循環(huán)中,只要p所指存儲單元中是空格,就使p移動指向前一個字符,當p所指存儲單元中不是空格時立刻退出循環(huán);這時p指向字符串中最后一
點擊復制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1