1、大连理工大学C语言机房模拟试题之程序设计题全程序题程序设计/*-【程序设计】-功能:编写函数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(请输入删除位置
2、i和待删字符个数n的值:n); scanf(%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
3、);*/ /* End */void 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,i
4、nt ppN), tt指向一个M行N列的二维数组,求出二维数组每列 中最小元素,并依次放入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; voi
5、d NONO(); int 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*/ i
6、nt 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-功能:调用函数fun判断一个三位数是否水仙花数。 在main函数中从键盘输入一个三位数,并输 出判断结果。请编写fun函数。说明:所谓水仙花数是指一3位数,其各位数字立方和 等于该数本身。例如:153是一个水仙花数,因为153=1
7、+125+27。-*/#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();/*-【程序设计】-功能:编写函数su
8、m(int 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();/*-【程序设计】-功能:根据整型
10、形参m,计算如下公式的值: 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=i; re
13、turn 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(int n) /*Be
14、gin*/ 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 900 -*/#includ
15、e 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,200,300, 400,50
16、0,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 enter s:); scanf(%ld, &s); m=fun(s,t); printf(The result is: %ldn, m); TestFunc();/*-【程序设计】-功能:求出二维数组外围元素之和,作为函数值返回。二 维数组的值在主函数中赋予。-
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1