2012大连理工大学C语言机房模拟试题之程序设计题(全)_第1页
2012大连理工大学C语言机房模拟试题之程序设计题(全)_第2页
2012大连理工大学C语言机房模拟试题之程序设计题(全)_第3页
2012大连理工大学C语言机房模拟试题之程序设计题(全)_第4页
2012大连理工大学C语言机房模拟试题之程序设计题(全)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序题程序设计/*-【程序设计】-功能:编写函数fun(str,i,n),从字符串str中删除第i个 字符开始的连续n个字符(注意:str0代表字符串 的第一个字符)。-*/#include stdio.h#include string.hmain() char str81; int i,n; void fun(char str,int i,int n); void TestFunc(); printf(请输入字符串str的值:n); scanf(%s,str); printf(你输入的字符串str是:%sn,str); printf(请输入删除位置i和待删字符个数n的值:n); scanf(

2、%d%d,&i,&n); while (i+n-1strlen(str) printf(删除位置i和待删字符个数n的值错!请重新输入i和n的值n); scanf(%d%d,&i,&n); fun(str,i,n); printf(删除后的字符串str是:%sn,str); TestFunc();void fun(char 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

3、 TestFunc() FILE *IN,*OUT; char i200; /*char o200;*/ IN=fopen(in.dat,r); if(IN=NULL) printf(Read File Error); 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

4、列的二维数组,求出二维数组每列 中最小元素,并依次放入pp所指一维数组中。二维 数组中的数已在主函数中赋予。-*/#include conio.h#include stdio.h#define M 3#define N 4void fun(int ttMN,int ppN) /*Begin*/int i,j; for(j=0;jN;j+)推荐精选 ppj=tt0j; for(i=1;iM;i+) if(ttijppj) ppj=ttij; /* End */main() int tMN=22,45,56,30,19,33,45,38,20,22,66,40; void NONO(); int

5、pN,i,j,k; printf(The original data is:n); for(i=0;iM;i+) for(j=0;jN;j+) printf(%6d,tij); printf(n); fun(t,p); printf(nThe result is:n); for(k=0;kN;k+) printf(%4d,pk); printf(n); NONO();/*-【程序设计】1685-功能:能计算从1开始到n的自然数的和,n由键盘输入, 并在main()函数中输出。-*/#include stdio.h int fun(int n) /*Begin*/ int sum=0,i;for

6、(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-功能:调用函数fun判断一个三位数是否水仙花数。 在main函数中从键盘输入一个三位数,并输 出判断结果。请编写fun函数。说明:所谓水仙花数是指一3位数,其各位数字立方和 等于该数本身。例如:153是一个水仙花数,因为153=1+125+27。-*

7、/#include stdio.hint 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 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

8、m,int n),求出mn之间(包括m和n,mn)能同时 被3和5整除的数的和,并将这些数的和作为返回值。-*/#include stdio.hint sum(int m,int n) /*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列矩阵的主、副对角线上元素之和。注意, 两条对角线相交的元素只加一次

9、。例如:主函数中给出的矩阵的两条对角线的和为45。-*/#include stdio.h#define M 5int fun(int aMM) /*Begin*/ int i, s=0; for(i=0;iM;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

10、,计算如下公式的值: y=1/5+1/61/71/81/9+1/10.1/(m+5)例如:若m=9,则应输出:1.168229-*/#include stdio.hdouble 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(); /*-【程序设计】-

11、功能:求一批数中最大值和最小值的积。推荐精选-*/#define N 30#include stdlib.h#include stdio.hint max_min(int a,int n) /*Begin*/ int i, max, min; max=min=a0; for(i=1;imax) max=ai; if(aimin) min=ai; return max*min; /* End */main() int aN,i,k; void TestFunc(); for(i=0;iN;i+) ai=rand()%51+10; for(i=0;iN;i+) printf(%5d,ai); if

12、(i+1)%5=0) printf(n); k=max_min(a,N); printf(the result is:%dn,k); /TestFunc();/*-【程序设计】-功能:把20个随机数存入一个数组,然后输出该数组中的 最小值。其中确定最小值的下标的操作在fun函数中 实现,请给出该函数的定义。-*/#include stdio.h#include stdlib.h#define VSIZE 20 int vectorVSIZE ; 推荐精选int fun(int list,int size) /*Begin*/int i,min=0; for(i=1; i listi) min=

13、i; return min; /* End */ main() int i; void NONO(); for (i=0;i0) return(k*fun(k-1);else if(k=0)return 1L; /* End */main() 推荐精选 int m; void TestFunc(); printf(Enter m: ); scanf(%d, &m); printf(nThe result is %ldn, fun(m); TestFunc(); /*-【程序设计】-功能:用do-while语句求1100的累计和。-*/#include stdio.hlong int fun(i

14、nt n) /*Begin*/ int i =1, sum =0; do sum = sum + i; i+; while ( i = n ); return sum; /* End */main () int 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

15、900 -*/#include stdio.hvoid fun(int array33) /*Begin*/ int i,j,t; for(i=0; i 3; 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,20

16、0,300, 400,500,600, 700,800,900; for (i=0; i 3; i+) for (j=0; j 3; j+) printf(%7d,arrayij); printf(n); fun(array); printf(Converted array:n); for (i=0; i 3; i+) for (j=0; j =a & stri 0) s = s/100; t = s%10*sl + t; sl = sl * 10; /* End */return t; main() long s, t,m; void TestFunc(); printf(nPlease e

17、nter s:); scanf(%ld, &s); m=fun(s,t); printf(The result is: %ldn, m); TestFunc();/*-【程序设计】-功能:求出二维数组外围元素之和,作为函数值返回。二 维数组的值在主函数中赋予。-*/#define M 4#define N 5#include stdio.hint fun(int aMN)/*Begin*/int s=0; int i,j; for(i=0;iM;i+) s=s+ai0+aiN-1; for(j=1;jN-1;j+) s=s+a0j+aM-1j; return s;/* End */main()

18、推荐精选 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#includeconio.hint fun(int n) /*Begin*/int i,k;for(i=n+1;i+)for(k=2;ki;k+)if(i%k=0)break;if(k=i)return(i); /* End */main

19、() int m; printf(Enter m: ); scanf(%d, &m); printf(nThe result is %dn, fun(m); TestFunc(); /*-【程序设计】-功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。推荐精选注意:n的值不大于1000。例如:n的值为855时,应输出704。-*/#include stdio.hint fun(int n) /*Begin*/ int s=0,i; for(i=2;in;i+) if(n%i=0)s=s+i; return s; /* End */main() printf(s=%dn,fun(855

20、); TestFunc();/*-【程序设计】-功能:删去一维数组中所有重复的数,只保留不同的数。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如:一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。删除后,数组中的内容应该是: 2 3 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;in;i+) if(k!=ai) a

21、j+=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 original data:n); for(i=0;in;i+) printf(%3d,ai); n=fun(a,n); printf(nnThe data after deleted:n); for(i=0;in;i+) printf(%3d,ai); printf(nn); TestFunc();/*-【程序设计】-功能:用函数求N个

22、10,60上的整数中能被5整除的最大 的数,如存在则返回这个最大值,如果不存在则 返回0。-*/#include stdio.h#include stdlib.h#define N 30int find(int arr,int n) int m=0; /*Begin*/ int i; for(i=0;im) m=arri; if(m=0) return 0; /* End */ return(m);main() int aN,i,k; void TestFunc();推荐精选 for(i=0;iN;i+) ai=rand()%50+10; for(i=0;iN;i+) printf(%5d,a

23、i); 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.hdouble 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: ); scanf(%d, &m); printf(nThe result is %fn, fun(m); TestFunc(); /*-推荐精选【程序设计】-功能:输入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论