C語言上機題及答案_第1頁
C語言上機題及答案_第2頁
C語言上機題及答案_第3頁
C語言上機題及答案_第4頁
C語言上機題及答案_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、讀書破萬卷下筆如有神C語言程序設計上機題1. 編寫函數(shù)實現(xiàn)從鍵盤輸入一個字符串,再將其逆序輸出#i nclude<stdio.h>/ 宏定義#include<string.h> / 調用 string 庫函數(shù) void mai n()int i,n;char a30;/定義字符型數(shù)組gets(a); /輸入字符串n=strlen(a);/調用strlen函數(shù),測量字符串長度for(i=n;i>=0;i-) /通過for循環(huán)倒序輸出prin tf("%c ",ai);prin tf("n");2. 編寫函數(shù)求出10!的值并輸出

2、#i nclude<stdio.h>/ 宏定義void mai n()un sig ned int a,num=1;for(a=1;a<=10;a+) /for 循環(huán)求出 10 的階乘 num=nu m*a;prin tf("%dn", nu m);/ 輸出所求值3. 編寫函數(shù)實現(xiàn)10個元素數(shù)組的平均值,并在主函數(shù)輸出#i nclude<stdio.h>/ 宏定義float dy(int *a,int n)/ 子函數(shù),/for循環(huán)求數(shù)組和float sum=0,p; int i; for(i=0;i<10;i+)sum=*(a+i)+su

3、m;讀書破萬卷 _下筆如有神/ 數(shù)組指針/求平均數(shù)/ 返回平均數(shù)P的值/for循環(huán)輸入數(shù)組的十個數(shù)字/輸出子函數(shù)返回的平均值p=sum/10.0; return p;void mai n()int i,a10;for(i=0;i<10;i+)scan f("%d",&ai);prin tf("%fn",dy(a,10);4. 編寫函數(shù)實現(xiàn)圓度面積計算,并在主函數(shù)中輸出結果#i nclude<stdio.h>/ 宏定義double dy(float r)/ 子函數(shù)double pi=3.1415926;/ 定義 n 的值doubl

4、e s;s=pi*r*r;/求出面積return s;/函數(shù)返回值void mai n()float r;double s;printf("請輸入所求圓半徑r:");sca nf("%f",&r);/ 輸入半徑值s=dy(r);/調用子函數(shù),求出面積賦值給sprintf("圓柱體積為:%f n",s);讀書破萬卷 _下筆如有神5. 編寫函數(shù)實現(xiàn)圓柱體積計算,并在主函數(shù)輸出結果。#i nclude<stdio.h> / 宏定義float dy(float r,float h)float pi=3.1415926;fl

5、oat v;v=pi*r*r*h;return v;/子函數(shù)/定義n的值/求出體積/函數(shù)返回值void mai n()float r,h,v;printf("請輸入所求圓柱底面半徑r和高h:");sca nf("%f,%f",&r,&h);v=dy(r,h);/調用子函數(shù),求出體積賦值給vprintf("圓的面積為:%f n",v);6. 編寫子函數(shù),用冒泡法對數(shù)組中10個整數(shù)按由小到大排序。(子函數(shù)形參用一維數(shù)組)#i nclude<stdio.h> / 宏定義void dy(i nt a,i nt t)

6、/ 子函數(shù)int i,j,h;for(i=0;i<t-1;i+)/兩個for包含的內容就是冒泡法排序for(j=0;j<t-1;j+)if(aj>=aj+1)h=aj;aj=aj+1;aj+1=h;/for循環(huán)輸出排序后的數(shù)組/排序結束for(i=0;i<t;i+)prin tf("%d ",ai);prin tf("n");讀書破萬卷 _下筆如有神/換廠void mai n()int a10=3,1,2,0,4,6,5,9,7,8;/ 定義一個整數(shù)數(shù)組dy(a,10);/調用子函數(shù),對數(shù)組排序并輸出7. 編寫子函數(shù),用冒泡法對數(shù)

7、組中10個整數(shù)按由小到大排序。(子函數(shù)形參用指針變量)#i nclude<stdio.h> / 宏定義void dy(i nt *a,i nt t) / 子函數(shù)int i,j,h;for(i=0;i<t-1;i+)/兩個for包含的內容就是冒泡法排序for(j=0;j<t-1;j+)if(*(a+j)>=(*(a+j+1)h=*(a+j);*(a+j)=*(a+j+1);*(a+j+1)=h;/排序結束for(i=0;i<t;i+)/for循環(huán)輸出排序后的數(shù)組prin tf("%d ",ai);prin tf("n")

8、;/ 換行void mai n()int a10=3,1,2,0,4,6,5,9,7,8;/ 定義一個整數(shù)數(shù)組dy(a,10);/調用子函數(shù),對數(shù)組排序并輸出8. 編寫函數(shù)實現(xiàn)兩個數(shù)據(jù)交換,要求采用指針作為函數(shù)參數(shù)實現(xiàn)。#i nclude<stdio.h> void jh(i nt *a,i nt *b)讀書破萬卷下筆如有神int t;t=*a;*a=*b;*b=t;void mai n()int a=100;int b=50;printf("交換前:n");prin tf("a=%d,a=%dn",a,b); jh(&a,&

9、b);printf("交換后:n");prin tf("a=%d,a=%dn",a,b);/交換順序/輸出交換前的數(shù)值/調用子函數(shù),交換數(shù)值/輸出交換后的數(shù)字9.編寫函數(shù)實現(xiàn)3X 3數(shù)組的最大值與最小值查找,并在主函數(shù)中輸出。提示采用全局變量#i nclude<stdio.h>int i,j,max,min;/定義全局變量void dy(int a3)/ 調用函數(shù)max=a00;for(i=0;i<3;i+)/二維數(shù)組,通過兩個for,求出最大值,賦值給for(j=0;j<3;j+)if(max<aij)max=aij;mi

10、n=a00;for(i=0;i<3;i+)/同上,求出最小值,賦值給minfor(j=0;j<3;j+)if(mi n> aij)min=aij;maxvoid mai n()int a33=1,2,3,4,8,6,9,7,3;讀書破萬卷 _下筆如有神dy(a);/因為是全局變量,所以直接可以輸出,不用函數(shù)返回值printf("max=%d,min=%dn",max,min);/ 輸出 max 和 min10. 編寫一個函數(shù),實現(xiàn)對a、b、c3個整數(shù)按大小順序,在主函數(shù)輸出排序后的結果。提示采用指針作為參數(shù)。#i nclude<stdio.h>

11、void jh(i nt *a,i nt *b,i nt *c)int t;if(*a<*b)/比較a與b的大小,若a<b,則交換順序t=*b;*b=*a;*a=t;if(*a<*c)/ 同上t=*c;*c=*a;*a=t;if(*b<*c)/ 同上t=*b;*b=*c;*c=t;void mai n()int a,b,c;printf("請輸入三個數(shù):a,b,cn");seanf("%d,%d,%d",&a,&b,&c);/ 任意輸入三個整數(shù)jh(&a,&b,&c);/調用子函數(shù),

12、交換大小順序printf("交換后的順序為:n");prin tf("%d,%d,%dn",a,b,c);/ 輸出交換后的值11. 編寫函數(shù),用選擇法對10個數(shù)排序,按由小到大輸出。(子函數(shù)形參用指針變量)#i nclude<stdio.h>void dy(int *a,int n)/ n為數(shù)組元素個數(shù)int i,j,k,t; / i為基準位置,j為當前被掃描元素位置,k用于暫存出現(xiàn)的較小的元素的位置for(i=0;i< n-1;i+)k=i;/初始化為基準位置for(j=i+1;j <n ;j+)if (*(a+j)<(*

13、(a+k) k=j ;/ k始終指示出現(xiàn)的較小的元素的位置if(k!=i)t=*(a+i);*(a+i)=*(a+k);*(a+k)=t;/將此趟掃描得到的最小元素與基準互換位置void mai n()int i;/輸入一個整型數(shù)組int a10;for(i=0;i<10;i+)scan f("%d",&ai);dy(a,10);for(i=0;i<10;i+)printf("%d ",ai);prin tf("n");12. 編寫一個程序,計算1至50之間的偶數(shù)之和。#i nclude<stdio.h>

14、;void mai n()int a,sum=0;for(a=0;a<=50;a+)if(a%2=0)/a對2求余等于0,貝U a為偶數(shù),sum貝U加asum=sum+a;/sum則為050內的偶數(shù)之和prin tf("sum=%dn",sum);13. 編寫一個程序,計算1至50之間的奇數(shù)之和#include<stdio.h> /編寫一個程序,計算1至50之間的奇數(shù)之和void mai n()int a,sum=0;for(a=0;a<=50;a+)if(a%2!=0)/a對2求余不等于0,則a為奇數(shù),sum貝U加asum=sum+a;/sum則為

15、050內的奇數(shù)之和printf("奇數(shù)和 sum=%dn",sum);14. 將一個二維數(shù)組a的行和列元素互換,存到另一個二維數(shù)組 b中#i nclude<stdio.h> void main()int a23=1,2,3,4,5,6;int b32;/int i,j;for(i=0;i<2;i+) for(j=0;j<3;j+) bji=aij;for(i=0;i<3;i+)/for(j=0;j<2;j+) prin tf("%d ",bij);prin tf("n");/出一行,都自動換行讀書破萬卷 _下筆如有神/定義并賦值一個兩行三列的數(shù)組 a定義一個三行兩列的數(shù)組b/通過行列變換,將元素互換輸出數(shù)列b的值這個printf必須在第一個for循環(huán)以內,才能每輸15. 對于3X 3的二維數(shù)組,可以在同一數(shù)組進行矩陣轉置操作,即實現(xiàn)數(shù)組的行和列元素互換123a = 456轉置操作后為789#in clude<stdio.h>void main()int a33=1,2,3,4,5,6,7,8,9

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論