程序题 程序设计
/*------------------------------------------------ 【程序设计】
-------------------------------------------------- 功能:编写函数fun(str,i,n),从字符串str中删除第i个 字符开始的连续n个字符(注意:str[0]代表字符串 的第一个字符)。
------------------------------------------------*/ #include \"stdio.h\" #include \"string.h\" main() {
char str[81]; int i,n;
void fun(char str[],int i,int n); void TestFunc();
printf(\"请输入字符串str的值:\\n\"); scanf(\"%s\
printf(\"你输入的字符串str是:%s\\n\
printf(\"请输入删除位置i和待删字符个数n的值:\\n\");
,.
scanf(\"%d%d\ while (i+n-1>strlen(str)) {
printf(\"删除位置i和待删字符个数n的值错!请重新输入i和n的值\\n\"); scanf(\"%d%d\ }
fun(str,i,n);
printf(\"删除后的字符串str是:%s\\n\ TestFunc(); }
void fun(char str[],int i,int n) {
/*********Begin**********/ while(str[i+n-1]) {
str[i-1]=str[i+n-1]; i++; }
str[i-1]='\\0'; /* 或
int j=i-1,k=i+n-1;
while((str[j++]=str[k++])!='\\0');
,.
*/
/********** End **********/ }
void TestFunc() {
FILE *IN,*OUT; char i[200]; /*char o[200];*/ IN=fopen(\"in.dat\ if(IN==NULL) {
printf(\"Read File Error\"); }
OUT=fopen(\"out.dat\ if(OUT==NULL) {
printf(\"Write File Error\"); }
fscanf(IN,\"%s\ fun(i,2,8);
fprintf(OUT,\"%s\\n\
,.
fclose(IN); fclose(OUT); }
/*------------------------------------------------ 【程序设计】
-------------------------------------------------- 功能:请编一个函数void fun(int tt[M][N],int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列 中最小元素,并依次放入pp所指一维数组中。二维 数组中的数已在主函数中赋予。
------------------------------------------------*/ #include \"conio.h\" #include \"stdio.h\" #define M 3 #define N 4
void fun(int tt[M][N],int pp[N]) {
/*********Begin**********/ int i,j;
for(j=0;j pp[j]=tt[0][j]; for(i=1;i int t[M][N]={{22,45,56,30},{19,33,45,38},{20,22,66,40}}; void NONO(); int p[N],i,j,k; printf(\"The original data is:\\n\"); for(i=0;i for(k=0;k printf(\"\\n\"); NONO(); } /*------------------------------------------------ 【程序设计】1685 -------------------------------------------------- 功能:能计算从1开始到n的自然数的和,n由键盘输入, 并在main()函数中输出。 ------------------------------------------------*/ #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\ printf(\"\\nThe result is %d\\n\ TestFunc(); } /*------------------------------------------------ 【程序设计】1599 -------------------------------------------------- 功能:调用函数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 0; /********** End **********/ } main() { int n,flag; scanf(\"%d\ flag=fun(n); if(flag) printf(\"%d 是水仙花数\\n\ else printf(\"%d 不是水仙花数\\n\ TestFunc(); } ,. /*-------------------------------------------------------------- 【程序设计】 ---------------------------------------------------------------- 功能:编写函数sum(int m,int n),求出m~n之间(包括m和n,m 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=%d\\n\ TestFunc(); } /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:求5行5列矩阵的主、副对角线上元素之和。注意, 两条对角线相交的元素只加一次。 例如:主函数中给出的矩阵的两条对角线的和为45。 ------------------------------------------------*/ #include \"stdio.h\" #define M 5 int fun(int a[M][M]) { /*********Begin**********/ int i, s=0; for(i=0;i s-=a[(M-1)/2][(M-1)/2]; return s; /********** End **********/ ,. } main() { int a[M][M]={{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=%d\\n\ TestFunc(); } /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:根据整型形参m,计算如下公式的值: y=1/5+1/6+1/7+1/8+1/9+1/10...+1/(m+5) 例如:若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\ printf(\"\\nThe result is %1f\\n\ TestFunc(); } /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:求一批数中最大值和最小值的积。 ------------------------------------------------*/ ,. #define N 30 #include \"stdlib.h\" #include \"stdio.h\" int max_min(int a[],int n) { /*********Begin**********/ int i, max, min; max=min=a[0]; for(i=1;i /********** End **********/ } main() { int a[N],i,k; void TestFunc(); for(i=0;i for(i=0;i if((i+1)%5==0) printf(\"\\n\"); } k=max_min(a,N); printf(\"the result is:%d\\n\ //TestFunc(); } /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:把20个随机数存入一个数组,然后输出该数组中的 最小值。其中确定最小值的下标的操作在fun函数中 实现,请给出该函数的定义。 ------------------------------------------------*/ #include \"stdio.h\" #include \"stdlib.h\" #define VSIZE 20 int vector[VSIZE] ; int fun(int list[],int size) ,. { /*********Begin**********/ int i,min=0; for(i=1; i /********** End **********/ } main() { int i; void NONO(); for (i=0;i printf(\"Vector[%d]=%6d\\n\ } i=fun(vector,VSIZE); printf(\"\\nMininum: Vector[%d]=%6d\\n\ NONO(); ,. } /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:求k!(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(\"Enter m: \"); scanf(\"%d\ printf(\"\\nThe result is %ld\\n\ TestFunc(); } /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:用do-while语句求1~100的累计和。 ------------------------------------------------*/ #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 i=100; void TestFunc(); printf(\"1~100的累加和为:%ld\\n\ 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 array[3][3]) { /*********Begin**********/ int i,j,t; for(i=0; i < 3; i++) for(j=0; j < i; j++) { t=array[i][j]; array[i][j]=array[j][i]; array[j][i]=t; } /*【或】 int i, j, t; for (i=0; i < 3; i++) for (j=i+1; j < 3; j++) */ { } t=array[i][j]; array[i][j]=array[j][i]; array[j][i] = t; ,. /********** End **********/ } main() { int i,j; void NONO(); int array[3][3]={{100,200,300}, {400,500,600}, {700,800,900}}; for (i=0; i < 3; i++) { for (j=0; j < 3; j++) printf(\"%7d\ printf(\"\\n\"); } fun(array); printf(\"Converted array:\\n\"); for (i=0; i < 3; i++) { for (j=0; j < 3; j++) printf(\"%7d\ printf(\"\\n\"); ,. } NONO(); } /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 ------------------------------------------------*/ #include \"string.h\" #include \"stdio.h\" void change(char str[]) { /*********Begin**********/ int i; for(i=0;str[i]!='\\0';i++) if(str[i]>='a' && str[i]<='z') str[i]=str[i]-32; /********** End **********/ } main() ,. { void change(); char str[40]; void TestFunc(); gets(str); change(str); puts(str); TestFunc(); } /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:从低位开始取出长整型变量s中偶数位上的数,依次 构成一个新数放在t中。 例如:当s中的数为:7654321时,t中的数为:2。 ------------------------------------------------*/ #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:\"); scanf(\"%ld\ m=fun(s,t); printf(\"The result is: %ld\\n\ TestFunc(); } /*------------------------------------------------ ,. 【程序设计】 -------------------------------------------------- 功能:求出二维数组外围元素之和,作为函数值返回。二 维数组的值在主函数中赋予。 -------------------------------------------------*/ #define M 4 #define N 5 #include \"stdio.h\" int fun(int a[M][N]) { /*********Begin**********/ int s=0; int i,j; for(i=0;i ,. int a[M][N]={{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=%d\\n\ TestFunc(); } /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:找出一个大于给定整数且紧随这个整数的素数,并 作为函数值返回。 ------------------------------------------------*/ #include \"stdio.h\" #include\"conio.h\" int fun(int n) { /*********Begin**********/ int i,k; for(i=n+1;;i++) { ,. for(k=2;k} /********** End **********/ } main() { int m; printf(\"Enter m: \"); scanf(\"%d\ printf(\"\\nThe result is %d\\n\ TestFunc(); } /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:计算并输出给定整数n的所有因子之和(不包括1与自身)。 注意:n的值不大于1000。 ,. 例如:n的值为855时,应输出704。 ------------------------------------------------*/ #include \"stdio.h\" int fun(int n) { /*********Begin**********/ int s=0,i; for(i=2;i printf(\"s=%d\\n\ 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 80 int fun(int a[],int n) { /*********Begin**********/ int i,j=1,k=a[0]; for(i=1;i /********** End **********/ } main() ,. { void TestFunc(); int a[N]={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;i -------------------------------------------------- 功能:用函数求N个[10,60]上的整数中能被5整除的最大 的数,如存在则返回这个最大值,如果不存在则 返回0。 ------------------------------------------------*/ #include \"stdio.h\" #include \"stdlib.h\" #define N 30 ,. int find(int arr[],int n) { int m=0; /*********Begin**********/ int i; for(i=0;i m=arr[i]; if(m==0) return 0; /********** End **********/ return(m); } main() { int a[N],i,k; void TestFunc(); for(i=0;i if((i+1)%5==0) printf(\"\\n\"); ,. } k=find(a,N); if(k==0) printf(\"NO FOUND\\n\"); else printf(\"the max is:%d\\n\ 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: \"); scanf(\"%d\ printf(\"\\nThe result is %f\\n\ TestFunc(); } /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:输入n个数,并求出小于平均值的数的个数。 ------------------------------------------------*/ #include \"stdio.h\" int average_num(int a[],int n) ,. { /*********Begin**********/ int i,sum=0,k=0; double average; for(i=0;i /********** End **********/ } main() { int n,a[100],i,num; void TestFunc(); scanf(\"%d\ for(i=0;i } /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:从字符串中删除指定的字符。同一字母的大、小写 按不同字符处理。 例如:若程序执行时输入字符串为:turbocandborlandc++ 从键盘上输入字符:n,则输出后变为:turbocadbo rladc++,如果输入的字符在字符串中不存在,则字 符串照原样输出。 ------------------------------------------------*/ #include \"stdio.h\" void fun(char s[],char c) { /*********Begin**********/ char *q=s; for(; *q; q++) if(*q != c) *(s++)=*q; *s=0; /********** End **********/ ,. } main() { static char str[]=\"turbocandborlandc++\"; char ch; printf(\"原始字符串:%s\\n\ printf(\"输入一个字符:\"); scanf(\"%c\ fun(str,ch); printf(\"str[]=%s\\n\ TestFunc(); }
因篇幅问题不能全部显示,请点此查看更多更全内容