




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《C語言程序設(shè)計(jì)》練習(xí)五(參考答案)說明:下述答案僅供參考,若采用其他方法答題,只要正確實(shí)現(xiàn)題目要求,仍可獲滿分。五、程序設(shè)計(jì)題1.從鍵盤上輸入10個(gè)整數(shù),并將其存放在一數(shù)組中,求出該數(shù)組中所有大于零且為偶數(shù)的數(shù)的平均值。#include<stdio.h>voidmain(){inta[10],i,n=0;floataver;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)if(a[i]>0&&a[i]%2==0){aver+=a[i];n++;}aver=aver/n;printf("aver=%.2f\n",aver);}2.若有n行n列數(shù)組,試編寫一程序,分別求出兩條對(duì)角線元素之和。(從鍵盤輸入n*n個(gè)整型數(shù),n≤20)#include<stdio.h>#defineN20voidmain(){inta[N][N],n,i,j,k=0,t=0;scanf(“%d”,&n);for(i=0;i<n;i++)for(j=0;j<n;j++)scanf(“%d”,&a[i][j]);for(i=0;i<n;i++){k+=a[i][i];t+=a[i][n-1-i];}printf(“k=%d,t=%d\n”,k,t);}3.從鍵盤輸入n*n個(gè)整型數(shù)(n≤20),組成n行n列數(shù)組,打印出其上三角數(shù)組。#include<stdio.h>voidmain(){inta[20][20],i,j,n;scanf("%d",&n);for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&a[i][j]);for(i=0;i<n;i++){for(j=0;j<n-i;j++)printf("%4d",a[i][j]);printf("\n");}}4.用以下近似公式編一個(gè)求的近似值的程序。,其中n的值由鍵盤輸入。#include<stdio.h>voidmain(){floatpi=0.0,s=1.0;intn,i;scanf("%d",&n);for(i=1;i<=n;i++){pi=pi+s/(2*i-1);s=s*(-1.0);}printf("pi=%f\n",pi*4);}5.若數(shù)組a中有十個(gè)整數(shù)8,2,5-3,7,-9,0,-4,10,15,請(qǐng)編程求出該數(shù)組中的最大值和最小值。#include<stdio.h>voidmain(){inta[]={8,2,5-3,7,-9,0,-4,10,15},max,min,imax=a[0];min=a[0];for(i=1;i<10;i++){if(a[i]<max)max=a[i];If(a[i]>min)min=a[i];}printf(“max=%d,min=%d\n”,max,min);}6.從鍵盤上輸入一個(gè)正整數(shù)n(n≤10),求n的階乘并輸出結(jié)果。#include<stdio.h>voidmain(){inti,n;longx=1;scanf("%d",&n);if(n<=10){for(i=1;i<=n;i++)x=x*i;printf("%d!=%ld\n",n,x);}elseprintf("InputnumberError");}7.請(qǐng)編程從鍵盤上輸入十個(gè)整數(shù),計(jì)算其中大于零的奇數(shù)的平均值,并輸出這些大于零的奇數(shù)以及它們的平均值。#include<stdio.h>voidmain(){intx[10],i,n=0;floatsum=0.0;for(i=0;i<10;i++)scanf("%d",&x[i]);for(i=0;i<10;i++)if(x[i]>0&&x[i]%2!=0){sum+=x[i];++n;printf("%5d",x[i]);}printf("n=%d,aver=%f\n",n,sum/n);}8.從鍵盤輸入10個(gè)整數(shù),編程求其中大于3且小于100的數(shù)的平均值并輸出結(jié)果。#include<stdio.h>voidmain(){inta[10],i,n=0;floataver;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)if(a[i]>3&&a[i]<100){aver+=a[i];n++;}printf(aver=%f\n",aver/n);}9.從鍵盤上輸入10個(gè)整數(shù),用冒泡法將它們按從小到大的次序排列出來,并把排列的結(jié)果輸出。#include<stdio.h>voidmain(){inta[10],i,j,t;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<9;i++)for(j=i+1;j<10;j++)if(a[i]>a[j])t=a[i],a[i]=a[j],a[j]=t;for(i=0;i<10;i++)printf("%4d",a[i]);}10.用循環(huán)語句編程打印下列圖案。(第一行的″$″在第20列)$$$$$$$$$$$$$#include<stdio.h>voidmain(){inti,j;for(i=1;i<=3;i++){for(j=1;j<=21-i;j++)putc('');for(j=1;j<=2*i-1;j++)putc('$');putc('\n');}for(i=2;i>=1;i--){for(j=1;j<=21-i;j++)putc('');for(j=1;j<=2*i-1;j++)putc('$');fputc('\n');}}11.由鍵盤輸入n*m個(gè)數(shù),并把它們存放在一個(gè)n行m列的數(shù)組中(n、m均不超過20)。(1)按n行m列輸出該二維數(shù)組;(2)求出該二維數(shù)組全部元素的平均值;(3)把該二維數(shù)組中大于平均值的元素的值、以及它們行列下標(biāo)打印出來。#include<stdio.h>voidmain(){floata[20][20],aver=0.0;inti,j,n,m;scanf("%d%d",&n,&m);for(i=0;i<n;i++)for(j=0;j<m;j++)scanf("%f",&a[i][j]);for(i=0;i<n;i++){for(j=0;j<m;j++){printf("%",a[i][j]);aver+=a[i][j];}printf("\n");}aver=aver/(n*m);printf("aver=%f\n",aver);for(i=0;i<n;i++)for(j=0;j<m;j++)if(a[i][j]>=aver)printf("a[%d][%d]=%f\n",i,j,a[i][j]);}12.從鍵盤上輸入10個(gè)字符串(每個(gè)串不超過8個(gè)字符),將這些字符串按從小到大的次序排列出來并輸出排序后的結(jié)果。#include<stdio.h>#include<string.h>voidmain(){charstr1[10][9],str2[9];inti,j;for(i=0;i<10;i++)gets(str1[i]);for(i=0;i<9;i++)for(j=i+1;j<10;j++)if(strcmp(str1[i],str1[j])>0){strcpy(str2,str1[i]);strcpy(str1[i],str1[j]);strcpy(str1[j],str2);}for(i=0;i<10;i++)printf("%s\n",str1[i]);}《C語言程序設(shè)計(jì)》練習(xí)四(參考答案)四、程序填空題1.下列程序的主要功能是反復(fù)輸入小寫字母,循環(huán)后移5個(gè)位置后輸出。直到輸入“回車換行符”時(shí)中止。如’a’變成’f’、’b’變成’g’、……、’v’變成’a’、’z’變成’e’。請(qǐng)為程序填空。(1)c+=5;(2)c-=21;(3)c=getchar();2.下面程序的功能是輸出1000以內(nèi)能被3整除,且個(gè)位為6的所有整數(shù),請(qǐng)?zhí)羁?。?)i<=99(2)m%6!=0(3)m3.下列程序的功能是從鍵盤上輸入若干個(gè)學(xué)生的成績(jī),統(tǒng)計(jì)并輸出最高成績(jī)和最低成績(jī),當(dāng)輸入負(fù)數(shù)時(shí)結(jié)束輸入。請(qǐng)?zhí)羁?。?)max=min=x;(2)x>=0或者!(x<0)(3)scanf("%f",&x);4.下列程序的主要功能是打印下列圖形,請(qǐng)?zhí)羁铡?********************(1)3-m(2)printf("\n");(3)m5.下列程序的主要功能是輸入字符串存入數(shù)組a,然后復(fù)制到數(shù)組b中并輸出,請(qǐng)?zhí)羁?。?)k=0(2)a或者&a[0](3)(b[k]=a[k])!='\0'或者b[k]=a[k]6.下列程序的主要功能是對(duì)從鍵盤上輸入的兩個(gè)字符串進(jìn)行比較,然后輸出兩個(gè)字符串中第一個(gè)不相同字符的ASCII碼之差值。若字符串相同則輸出0。請(qǐng)?zhí)羁铡#?)i=0(2)s1[i]==s2[i](3)s1[i]-s2[i]7.下列程序的主要功能是把從鍵盤上輸入的long型十進(jìn)制正整數(shù)轉(zhuǎn)換成對(duì)應(yīng)的十六進(jìn)制形式輸出,請(qǐng)?zhí)羁?。?)n%16(2)n!=0(3)c[i]8.下列程序的主要功能是計(jì)算菲不拉契序列:1、1、2、3、5、8、13、21、…的前20項(xiàng),并存入數(shù)組f[20]中,然后求這20項(xiàng)之和并輸出。請(qǐng)?zhí)羁铡#?)k=2(2)k(3)f[k-2]9.下列程序的功能是輸入兩個(gè)字符串分別存入字符型數(shù)組s1和s2中,然后將數(shù)組s2中的字符串連接到數(shù)組s1的后面,并存放到字符型數(shù)組s中,然后輸出。請(qǐng)?zhí)羁?。?)p1=s1,p2=s2,p=s(2)*p++=*p1++或*p=*p1,p++,p1++(3)p=s10.下列程序的功能是輸入9個(gè)從大到小排序的整數(shù)存入一維數(shù)組x,然后再輸入1個(gè)整數(shù)插入數(shù)組x中,使其保持從大到小的順序。請(qǐng)?zhí)羁?。?)px--(2)*(px+1)(3)*++px=*py11.以下程序的功能是將無符號(hào)八進(jìn)制數(shù)字構(gòu)成的字符串轉(zhuǎn)換為十進(jìn)制整數(shù)。例如,輸入的八進(jìn)制數(shù)字構(gòu)成的字符串為“111”,則輸出對(duì)應(yīng)的十進(jìn)制數(shù)應(yīng)為73。請(qǐng)?zhí)羁?。?)=s(2)'0'(3)*++12.下列程序的主要功能是輸入10個(gè)字符和1個(gè)待查找的字符,從十個(gè)字符中查找待查找的字符。找到則輸出其序號(hào),找不到則輸出0。請(qǐng)?zhí)羁?。?)p=y(2)flag=1(3)p-y+1或p-&y[0]+113.下列函數(shù)f2()的功能是對(duì)pa、pb、pc指向的3個(gè)實(shí)數(shù)排序,保證*pa≥*pb≥*pc。該函數(shù)調(diào)用了函數(shù)f1()。請(qǐng)?zhí)羁?。?)t=*x,*x=*y,*y=t(2)*pa<*pb(3)pb,pc14.函數(shù)f()的功能是b指向的字符串連接到a指向的字符串的后面,并返回a指向的新字符串的長(zhǎng)度。請(qǐng)?zhí)羁?。?)'\0'(2)++(3)num15.函數(shù)f()的功能是對(duì)兩個(gè)字符串進(jìn)行比較。當(dāng)p1指向的字符串和p2指向的字符串相等時(shí),返回值為0;當(dāng)p1指向的字符串和p2指向的字符串不相等時(shí),返回第1個(gè)不相同字符的差值。請(qǐng)?zhí)羁?。?)'\0'(2)p2++(3)*(p1)-*(p2)16.函數(shù)f()的主要功能是在w指向的數(shù)組前*n個(gè)數(shù)據(jù)中插入x,要求w指向數(shù)組中的前*n個(gè)數(shù)據(jù)已按由小到大順序存放。插入x后,w指向的數(shù)組中的數(shù)據(jù)仍按照從小到大的順序排列,同時(shí)將*n修改為插入x后排序數(shù)據(jù)的數(shù)目。請(qǐng)?zhí)羁?。?)p++(2)w[i-1](3)w[p]=x17.函數(shù)f()的主要功能是求p指向的m行6列數(shù)組中的最大數(shù)與最小數(shù),并通過形參指針變量max和min返回。請(qǐng)?zhí)羁铡#?)float*max,float*min(2)*p或*(p+0*6+0)(3)*max=*(p+i*6+j)18.下面的程序是使用結(jié)構(gòu)型來計(jì)算復(fù)數(shù)x和y的和。請(qǐng)?zhí)羁?。?)structcomp(2)(3)19.下面程序的主要功能是輸入100名學(xué)生的姓名和總分,存入結(jié)構(gòu)型數(shù)組。然后查找總分最高和最低的學(xué)生,輸出它們的姓名和總分。請(qǐng)?zhí)羁?。?)s[k].name(2)s[k].total(3)s[min].total20.下列程序的功能是輸入100個(gè)朋友的姓名和電話號(hào)碼(字符串)存入結(jié)構(gòu)型數(shù)組。再輸入一個(gè)姓名,從結(jié)構(gòu)型數(shù)組中查找。找到,則輸出對(duì)應(yīng)的電話話碼;找不到,則輸出“NoFind!”。請(qǐng)用指針變量p來填寫缺少的內(nèi)容。(1)(p+k)(2)(p
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司視頻腳本策劃方案
- 公司美食類活動(dòng)方案
- 公司水果采摘活動(dòng)方案
- 公司植樹掛牌活動(dòng)方案
- 公司深圳灣公園活動(dòng)方案
- 公司組織騎單車活動(dòng)方案
- 公司旅游業(yè)余活動(dòng)方案
- 公司羽毛球例行活動(dòng)方案
- 公司溫泉團(tuán)建策劃方案
- 公司線上周年慶活動(dòng)方案
- 工貿(mào)行業(yè)重點(diǎn)可燃性粉塵目錄(2022版)
- 近代史期末復(fù)習(xí)試題
- 教學(xué)設(shè)計(jì) 完整版:Summer holiday plans
- 2022年武漢市法院書記員招聘考試題庫及答案解析
- 湖南省邵陽市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)及行政區(qū)劃代碼
- 齊齊哈爾大學(xué)教師教育實(shí)踐中心申報(bào)材料匯總
- 中考物理總復(fù)習(xí)課教案(第一輪)
- 工廠開工試車方案
- 變電站土石方工程施工方案(42頁)
- 英語專業(yè)四級(jí)寫作評(píng)分標(biāo)準(zhǔn)
- 汽油柴油一書一簽
評(píng)論
0/150
提交評(píng)論