大連理工大學C語言機房模擬試題之程序設計題全_第1頁
大連理工大學C語言機房模擬試題之程序設計題全_第2頁
大連理工大學C語言機房模擬試題之程序設計題全_第3頁
大連理工大學C語言機房模擬試題之程序設計題全_第4頁
大連理工大學C語言機房模擬試題之程序設計題全_第5頁
已閱讀5頁,還剩14頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、程序題程序設計/*-【程序設計】-功能:編寫函數fun(str,i,n),從字符串str中刪除第i個 字符開始的連續n個字符(注意:str0代表字符串 的第一個字符)。-*/#include "stdio.h"#include "string.h"main() char str81; int i,n; void fun(char str,int i,int n); void TestFunc(); printf("請輸入字符串str的值:n"); scanf("%s",str); printf("你輸入的

2、字符串str是:%sn",str); printf("請輸入刪除位置i和待刪字符個數n的值:n"); scanf("%d%d",&i,&n); while (i+n-1>strlen(str) printf("刪除位置i和待刪字符個數n的值錯!請重新輸入i和n的值n"); scanf("%d%d",&i,&n); fun(str,i,n); printf("刪除后的字符串str是:%sn",str); TestFunc();void fun(cha

3、r str,int i,int n) /*Begin*/while(stri+n-1) stri-1=stri+n-1; i+; stri-1='0'/* 或int j=i-1,k=i+n-1; while(strj+=strk+)!='0');*/ /* End */void TestFunc() FILE *IN,*OUT; char i200; /*char o200;*/ IN=fopen("in.dat","r"); if(IN=NULL) printf("Read File Error");

4、 OUT=fopen("out.dat","w"); if(OUT=NULL) printf("Write File Error"); fscanf(IN,"%s",i); fun(i,2,8); fprintf(OUT,"%sn",i); fclose(IN); fclose(OUT);/*-【程序設計】-功能:請編一個函數void fun(int ttMN,int ppN), tt指向一個M行N列的二維數組,求出二維數組每列 中最小元素,并依次放入pp所指一維數組中。二維 數組中的數已在主函

5、數中賦予。-*/#include "conio.h"#include "stdio.h"#define M 3#define N 4void fun(int ttMN,int ppN) /*Begin*/int i,j; for(j=0;j<N;j+) ppj=tt0j; for(i=1;i<M;i+) if(ttij<ppj) ppj=ttij; /* End */main() int tMN=22,45,56,30,19,33,45,38,20,22,66,40; void NONO(); int pN,i,j,k; printf(

6、"The original data is:n"); for(i=0;i<M;i+) for(j=0;j<N;j+) printf("%6d",tij); printf("n"); fun(t,p); printf("nThe result is:n"); for(k=0;k<N;k+) printf("%4d",pk); printf("n"); NONO();/*-【程序設計】1685-功能:能計算從1開始到n的自然數的和,n由鍵盤輸入, 并在main(

7、)函數中輸出。-*/#include "stdio.h" int fun(int n) /*Begin*/ int sum=0,i;for(i=1;i<=n;i+) sum=sum+i;return(sum); /* End */main() int m; void TestFunc(); printf("Enter m: "); scanf("%d", &m); printf("nThe result is %dn", fun(m); TestFunc(); /*-【程序設計】1599-功能:調用函

8、數fun判斷一個三位數是否"水仙花數"。 在main函數中從鍵盤輸入一個三位數,并輸 出判斷結果。請編寫fun函數。說明:所謂"水仙花數"是指一3位數,其各位數字立方和 等于該數本身。例如:153是一個水仙花數,因為153=1+125+27。-*/#include "stdio.h"int fun(int n) /*Begin*/ int bw,sw,gw;bw=n/100;sw=(n-bw*100)/10;gw=n%10; if(n=bw*bw*bw+sw*sw*sw+gw*gw*gw) return 1; else return

9、0; /* End */main() int n,flag; scanf("%d",&n); flag=fun(n); if(flag) printf("%d 是水仙花數n",n); else printf("%d 不是水仙花數n",n); TestFunc();/*-【程序設計】-功能:編寫函數sum(int m,int n),求出mn之間(包括m和n,m<n)能同時 被3和5整除的數的和,并將這些數的和作為返回值。-*/#include "stdio.h"int sum(int m,int n)

10、/*Begin*/ int i, s=0; for(i=m;i<=n;i+) if(i%3=0 && i%5=0)s+=i; return s; /* End */main() void TestFunc(); int m=15,n=300; printf("sum=%dn",sum(m,n); TestFunc();/*-【程序設計】-功能:求5行5列矩陣的主、副對角線上元素之和。注意, 兩條對角線相交的元素只加一次。例如:主函數中給出的矩陣的兩條對角線的和為45。-*/#include "stdio.h"#define M 5i

11、nt fun(int aMM) /*Begin*/ int i, s=0; for(i=0;i<M;i+) s+=aii+aiM-i-1; s-=a(M-1)/2(M-1)/2; return s; /* End */main() int aMM=1,3,5,7,9,2,4,6,8,10,2,3,4,5,6,4,5,6,7,8,1,3,4,5,6; int y; y=fun(a); printf("s=%dn",y); TestFunc();/*-【程序設計】-功能:根據整型形參m,計算如下公式的值: y=1/5+1/61/71/81/9+1/10.1/(m+5)例如

12、:若m=9,則應輸出:1.168229-*/#include "stdio.h"double fun(int m) /*Begin*/ int i; double y=0; for(i=0;i<=m;i+) y+=1./(i+5); return y; /* End */main() int n; void TestFunc(); printf("Enter n: "); scanf("%d", &n); printf("nThe result is %1fn", fun(n); TestFunc()

13、; /*-【程序設計】-功能:求一批數中最大值和最小值的積。-*/#define N 30#include "stdlib.h"#include "stdio.h"int max_min(int a,int n) /*Begin*/ int i, max, min; max=min=a0; for(i=1;i<n;i+) if(ai>max) max=ai; if(ai<min) min=ai; return max*min; /* End */main() int aN,i,k; void TestFunc(); for(i=0;i&

14、lt;N;i+) ai=rand()%51+10; for(i=0;i<N;i+) printf("%5d",ai); if(i+1)%5=0) printf("n"); k=max_min(a,N); printf("the result is:%dn",k); /TestFunc();/*-【程序設計】-功能:把20個隨機數存入一個數組,然后輸出該數組中的 最小值。其中確定最小值的下標的操作在fun函數中 實現,請給出該函數的定義。-*/#include "stdio.h"#include "s

15、tdlib.h"#define VSIZE 20 int vectorVSIZE ; int fun(int list,int size) /*Begin*/int i,min=0; for(i=1; i <size; i+) if(listmin>listi) min=i; return min; /* End */ main() int i; void NONO(); for (i=0;i<VSIZE;i+) vectori=rand(); printf("Vector%d=%6dn",i,vectori); i=fun(vector,VSI

16、ZE); printf("nMininum: Vector%d=%6dn",i,vectori); NONO(); /*-【程序設計】-功能:求k?。╧13),所求階乘的值作為函數值返回。 (要求使用遞歸)-*/#include "stdio.h"#include "conio.h"long fun(int k) /*Begin*/if (k>0) return(k*fun(k-1);else if(k=0)return 1L; /* End */main() int m; void TestFunc(); printf(&qu

17、ot;Enter m: "); scanf("%d", &m); printf("nThe result is %ldn", fun(m); TestFunc(); /*-【程序設計】-功能:用do-while語句求1100的累計和。-*/#include "stdio.h"long int fun(int n) /*Begin*/ int i =1, sum =0; do sum = sum + i; i+; while ( i <= n ); return sum; /* End */main () int

18、 i=100; void TestFunc(); printf("1100的累加和為:%ldn",fun(i); TestFunc();/*-【程序設計】-功能:編寫程序,實現矩陣(3行3列)的轉置(即行列互換) 例如:輸入下面的矩陣: 100 200 300 400 500 600 700 800 900 程序輸出: 100 400 700 200 500 800 300 600 900 -*/#include "stdio.h"void fun(int array33) /*Begin*/ int i,j,t; for(i=0; i < 3;

19、i+) for(j=0; j < i; j+) t=arrayij; arrayij=arrayji; arrayji=t; /*【或】 int i, j, t; for (i=0; i < 3; i+) for (j=i+1; j < 3; j+) t=arrayij; arrayij=arrayji; arrayji = t;*/ /* End */ main() int i,j; void NONO(); int array33=100,200,300, 400,500,600, 700,800,900; for (i=0; i < 3; i+) for (j=0

20、; j < 3; j+) printf("%7d",arrayij); printf("n"); fun(array); printf("Converted array:n"); for (i=0; i < 3; i+) for (j=0; j < 3; j+) printf("%7d",arrayij); printf("n"); NONO(); /*-【程序設計】-功能:將字符串中的小寫字母轉換為對應的大寫字母, 其它字符不變。-*/#include "strin

21、g.h"#include "stdio.h"void change(char str) /*Begin*/int i; for(i=0;stri!='0'i+) if(stri>='a' && stri<='z') stri=stri-32; /* End */main() void change(); char str40; void TestFunc(); gets(str); change(str); puts(str); TestFunc(); /*-【程序設計】-功能:從低位開始

22、取出長整型變量s中偶數位上的數,依次 構成一個新數放在t中。 例如:當s中的數為:7654321時,t中的數為:642。-*/#include "stdio.h"long fun (long s,long t) /*Begin*/long sl=10;s /= 10;t = s % 10;while(s > 0) s = s/100; t = s%10*sl + t; sl = sl * 10; /* End */return t; main() long s, t,m; void TestFunc(); printf("nPlease enter s:&q

23、uot;); scanf("%ld", &s); m=fun(s,t); printf("The result is: %ldn", m); TestFunc();/*-【程序設計】-功能:求出二維數組外圍元素之和,作為函數值返回。二 維數組的值在主函數中賦予。-*/#define M 4#define N 5#include "stdio.h"int fun(int aMN)/*Begin*/int s=0; int i,j; for(i=0;i<M;i+) s=s+ai0+aiN-1; for(j=1;j<N-

24、1;j+) s=s+a0j+aM-1j; return s;/* End */main() int aMN=1,3,5,7,9,2,4,6,8,10,2,3,4,5,6,4,5,6,7,8; void TestFunc(); int y; y=fun(a); printf("s=%dn",y); TestFunc();/*-【程序設計】-功能:找出一個大于給定整數且緊隨這個整數的素數,并 作為函數值返回。-*/#include "stdio.h"#include"conio.h"int fun(int n) /*Begin*/int

25、i,k;for(i=n+1;i+)for(k=2;k<i;k+)if(i%k=0)break;if(k=i)return(i); /* End */main() int m; printf("Enter m: "); scanf("%d", &m); printf("nThe result is %dn", fun(m); TestFunc(); /*-【程序設計】-功能:計算并輸出給定整數n的所有因子之和(不包括1與自身)。注意:n的值不大于1000。例如:n的值為855時,應輸出704。-*/#include &qu

26、ot;stdio.h"int fun(int n) /*Begin*/ int s=0,i; for(i=2;i<n;i+) if(n%i=0)s=s+i; return s; /* End */main() printf("s=%dn",fun(855); TestFunc();/*-【程序設計】-功能:刪去一維數組中所有重復的數,只保留不同的數。數組中的數已按由小到大的順序排列,函數返回刪除后數組中數據的個數。例如:一維數組中的數據是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。刪除后,數組中的內容應該是: 2 3

27、 4 5 6 7 8 9 10。注意:請勿改動主函數main和其它函數中的任何內容。-*/#include "stdio.h"#define N 80int fun(int a,int n) /*Begin*/int i,j=1,k=a0; for(i=1;i<n;i+) if(k!=ai) aj+=ai; k=ai; return j; /* End */main() void TestFunc(); int aN=2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10,i,n=20; printf("The origina

28、l data:n"); for(i=0;i<n;i+) printf("%3d",ai); n=fun(a,n); printf("nnThe data after deleted:n"); for(i=0;i<n;i+) printf("%3d",ai); printf("nn"); TestFunc();/*-【程序設計】-功能:用函數求N個10,60上的整數中能被5整除的最大 的數,如存在則返回這個最大值,如果不存在則 返回0。-*/#include "stdio.h"

29、;#include "stdlib.h"#define N 30int find(int arr,int n) int m=0; /*Begin*/ int i; for(i=0;i<n;i+) if(arri%5=0 && arri>m) m=arri; if(m=0) return 0; /* End */ return(m);main() int aN,i,k; void TestFunc(); for(i=0;i<N;i+) ai=rand()%50+10; for(i=0;i<N;i+) printf("%5d&q

30、uot;,ai); if(i+1)%5=0) printf("n"); k=find(a,N); if(k=0) printf("NO FOUNDn"); else printf("the max is:%dn",k); TestFunc();/*-【程序設計】-a1=1,a2=1/(1+a1),a3=1/(1+a2),an=1/(1+a(n-1)功能:根據整型參數n,計算如圖公式的值。-*/#include "stdio.h"#include "conio.h"double fun(int n) /*Begin*/ int i; double a=0; for (i=1;i<=n;i+) a=1./(1+a); return a; /* End */main() int m; void TestFunc(); printf("Enter m: "); s

溫馨提示

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

評論

0/150

提交評論