




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《C語言程序設計》練習五(參考答案)說明:下述答案僅供參考,若采用其他方法答題,只要正確實現題目要求,仍可獲滿分。五、程序設計題1.從鍵盤上輸入10個整數,并將其存放在一數組中,求出該數組中所有大于零且為偶數的數的平均值。#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列數組,試編寫一程序,分別求出兩條對角線元素之和。(從鍵盤輸入n*n個整型數,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個整型數(n≤20),組成n行n列數組,打印出其上三角數組。#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.用以下近似公式編一個求的近似值的程序。,其中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.若數組a中有十個整數8,2,5-3,7,-9,0,-4,10,15,請編程求出該數組中的最大值和最小值。#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.從鍵盤上輸入一個正整數n(n≤10),求n的階乘并輸出結果。#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.請編程從鍵盤上輸入十個整數,計算其中大于零的奇數的平均值,并輸出這些大于零的奇數以及它們的平均值。#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個整數,編程求其中大于3且小于100的數的平均值并輸出結果。#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個整數,用冒泡法將它們按從小到大的次序排列出來,并把排列的結果輸出。#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.用循環語句編程打印下列圖案。(第一行的″$″在第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個數,并把它們存放在一個n行m列的數組中(n、m均不超過20)。(1)按n行m列輸出該二維數組;(2)求出該二維數組全部元素的平均值;(3)把該二維數組中大于平均值的元素的值、以及它們行列下標打印出來。#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個字符串(每個串不超過8個字符),將這些字符串按從小到大的次序排列出來并輸出排序后的結果。#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語言程序設計》練習四(參考答案)四、程序填空題1.下列程序的主要功能是反復輸入小寫字母,循環后移5個位置后輸出。直到輸入“回車換行符”時中止。如’a’變成’f’、’b’變成’g’、……、’v’變成’a’、’z’變成’e’。請為程序填空。(1)c+=5;(2)c-=21;(3)c=getchar();2.下面程序的功能是輸出1000以內能被3整除,且個位為6的所有整數,請填空。(1)i<=99(2)m%6!=0(3)m3.下列程序的功能是從鍵盤上輸入若干個學生的成績,統計并輸出最高成績和最低成績,當輸入負數時結束輸入。請填空。(1)max=min=x;(2)x>=0或者!(x<0)(3)scanf("%f",&x);4.下列程序的主要功能是打印下列圖形,請填空。*********************(1)3-m(2)printf("\n");(3)m5.下列程序的主要功能是輸入字符串存入數組a,然后復制到數組b中并輸出,請填空。(1)k=0(2)a或者&a[0](3)(b[k]=a[k])!='\0'或者b[k]=a[k]6.下列程序的主要功能是對從鍵盤上輸入的兩個字符串進行比較,然后輸出兩個字符串中第一個不相同字符的ASCII碼之差值。若字符串相同則輸出0。請填空。(1)i=0(2)s1[i]==s2[i](3)s1[i]-s2[i]7.下列程序的主要功能是把從鍵盤上輸入的long型十進制正整數轉換成對應的十六進制形式輸出,請填空。(1)n%16(2)n!=0(3)c[i]8.下列程序的主要功能是計算菲不拉契序列:1、1、2、3、5、8、13、21、…的前20項,并存入數組f[20]中,然后求這20項之和并輸出。請填空。(1)k=2(2)k(3)f[k-2]9.下列程序的功能是輸入兩個字符串分別存入字符型數組s1和s2中,然后將數組s2中的字符串連接到數組s1的后面,并存放到字符型數組s中,然后輸出。請填空。(1)p1=s1,p2=s2,p=s(2)*p++=*p1++或*p=*p1,p++,p1++(3)p=s10.下列程序的功能是輸入9個從大到小排序的整數存入一維數組x,然后再輸入1個整數插入數組x中,使其保持從大到小的順序。請填空。(1)px--(2)*(px+1)(3)*++px=*py11.以下程序的功能是將無符號八進制數字構成的字符串轉換為十進制整數。例如,輸入的八進制數字構成的字符串為“111”,則輸出對應的十進制數應為73。請填空。(1)=s(2)'0'(3)*++12.下列程序的主要功能是輸入10個字符和1個待查找的字符,從十個字符中查找待查找的字符。找到則輸出其序號,找不到則輸出0。請填空。(1)p=y(2)flag=1(3)p-y+1或p-&y[0]+113.下列函數f2()的功能是對pa、pb、pc指向的3個實數排序,保證*pa≥*pb≥*pc。該函數調用了函數f1()。請填空。(1)t=*x,*x=*y,*y=t(2)*pa<*pb(3)pb,pc14.函數f()的功能是b指向的字符串連接到a指向的字符串的后面,并返回a指向的新字符串的長度。請填空。(1)'\0'(2)++(3)num15.函數f()的功能是對兩個字符串進行比較。當p1指向的字符串和p2指向的字符串相等時,返回值為0;當p1指向的字符串和p2指向的字符串不相等時,返回第1個不相同字符的差值。請填空。(1)'\0'(2)p2++(3)*(p1)-*(p2)16.函數f()的主要功能是在w指向的數組前*n個數據中插入x,要求w指向數組中的前*n個數據已按由小到大順序存放。插入x后,w指向的數組中的數據仍按照從小到大的順序排列,同時將*n修改為插入x后排序數據的數目。請填空。(1)p++(2)w[i-1](3)w[p]=x17.函數f()的主要功能是求p指向的m行6列數組中的最大數與最小數,并通過形參指針變量max和min返回。請填空。(1)float*max,float*min(2)*p或*(p+0*6+0)(3)*max=*(p+i*6+j)18.下面的程序是使用結構型來計算復數x和y的和。請填空。(1)structcomp(2)(3)19.下面程序的主要功能是輸入100名學生的姓名和總分,存入結構型數組。然后查找總分最高和最低的學生,輸出它們的姓名和總分。請填空。(1)s[k].name(2)s[k].total(3)s[min].total20.下列程序的功能是輸入100個朋友的姓名和電話號碼(字符串)存入結構型數組。再輸入一個姓名,從結構型數組中查找。找到,則輸出對應的電話話碼;找不到,則輸出“NoFind!”。請用指針變量p來填寫缺少的內容。(1)(p+k)(2)(p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 心理健康與企業管理者的成功
- 建筑結構中動載荷的響應分析
- 東港農藥安全管理制度
- 食堂生物油安全管理制度
- 鄉鎮農村公墓管理制度
- 企業工具設備管理制度
- 倉儲煙葉安全管理制度
- 中班班級安全管理制度
- 兩站兩員培訓管理制度
- 社區衛生保健課件
- 【企業薪酬管理研究國內外文獻綜述4400字】
- 市政公用工程設計文件編制深度規定(2013年高清版)
- GB/T 19139-2012油井水泥試驗方法
- GB/T 18314-2001全球定位系統(GPS)測量規范
- 工貿行業重點可燃性粉塵目錄(2022版)
- 鐵道概論試題及答案重要
- 空間幾何中的平行與垂直 新高考 數學 一輪復習專項提升 精講精練
- 近代史期末復習試題
- 教學設計 完整版:Summer holiday plans
- 2022年武漢市法院書記員招聘考試題庫及答案解析
- DB34-T 4010-2021 水利工程外觀質量評定規程-高清現行
評論
0/150
提交評論