好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

C语言上机操作之程序设计.pdf

267页
  • 卖家[上传人]:文***
  • 文档编号:595103290
  • 上传时间:2024-10-21
  • 文档格式:PDF
  • 文档大小:16.37MB
  • / 267 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 注意:部分源程序给出如下请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句71:请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列例如,原来的字符串为CEAedca,排序后输出为CedcEAainclude#include#includeint fun(char*s,int num)/*Program*/End /main()char s10;clrscr();printf输入7个字符的字符串门;gets(s);tun(s,7);printf(n%s,s);getch();NONO();NONOQint i;char a100;FILE*rf,*w f;rf=fopen(in.dat,r);wf=fopen(out.dat,w);for(i=0;i3;i+)(fscanf(rf,%s,&a);fun(a,7);fprintf(wf,%s,a);fprintf(wf,n);fclose(rf);fclose(wf);答案:-int i,j;char t;for(i=1;inum-1;i+)for(j=i+1;jnum-1;j+)if(sisU)t=si;si=sj;sj=t;2:输入三个字符串,按由小到大顺序输出。

      编写交换函数fu n,用交换指针的方式实现交换includemain()static char s1 20,s220,s320;char fun();printf(输入三个字符串:n);scanf(%s,s1);scanf(%s,s2);scanf(%s,s3);if(strcmp(s1,s2)0)fun(s1,s2);if(strcmp(s1,s3)0)fun(s1,s3);if(strcmp(s2,s3)0)fun(s2,s3);printf(“弹序结果是:n%sn%sn%sn,s1,s2,s3);getch();yzj();char fun(char*p1,char*p2)Program答案:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _char*p=NULL;strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);3:编写函数fu n,函数的功能是:计算并输出给定整数n的所有因子之和(不包括1与 自 身)规定n的值不大于1000例如:n的值为855时,应输出704include stdio.hint fun(int n)Programmain()printf(s=%dn,fun(855);yzj();getch();答案:-int s=0,i;for(i=2;in;i+)if(n%i=0)s=s+i;return s;4:编写函数fun求1OOO以内所有7的倍数之和。

      define N 1000include stdio.hmain()int sum;sum=fun(7);printf(d以内所有%d的倍数之和为:%dn,N,7,sum);getch();yzj();int fun(int m)/*Program*/End */yzj()答案:-int s=0,i;for(i=1;iN;i+)if(i%m=0)s+=i;return s;5:用函数求一个N阶方阵右下三角元素的和(包括副对角线上的元素)include include stdio.h#define N 3int sum(int aN)*Program*/End */main()int aNN,i,j;clrscr();for(i=0;iN;i+)for(j=0;jN;j+)aij=random(10)+10;printf(%3d,aij);)printfCXn);printf(=nM);printf(sum=%5dn,sum(a);yzj();getch();答案:-int i,j,k=O;for(i=0;iN;i+)for(j=N-1-i;jN;j+)k=k+aij;return(k);6:调用函数fun判断一个三位数是否“水仙花数”。

      在main函数中从键盘输入一个三位数,并输出判断结果请编写fun函数所谓“水仙花数”是指一3位数,其各位数字立方和等于该数本身例如,153是一个水仙花数,因为153=1+125+27include stdio.hint fun(int n)/*Program*/End */main()int n,flag;scanf(d”,&n);flag=fun(n);if(flag)printf(%d 是水仙花数n”,n);elseprintf(%d不是水仙花数n”,n);getch();yzj();答案: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;7:编写函数fu n,函数的功能是:求一组数中大于平均值的数的个数例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函数值为3include stdio.hint fun(int a,int n)*Program*/End */main()(int a10=1,3,6,9,4,23,35,67,12,88);inty;y=fun(a,10);printf(y=%dn,y);yzj();getch();答案:-int i,k=0;float s=0,ave;for(i=0;in;i+)s+=ai;ave=s/n;printf(%f,ave);for(i=0;iave)k+;return k;8:编写函数fu n,函数的功能是:求给定正整数m以内的素数之和。

      例如:当m=20时,函数值为77include stdio.hint fun(int m)*Program*/End*main()(inty;y=fun(20);printf(y=%dn,y);yzj();getch();答案:-int i,k,s=0;for(i=2;i=m;i+)for(k=2;ki;k+)if(i%k=O)break;if(k=i)s=s+i;return s;9:求一批数中最大值和最小值的差int max_min(int a,int n)*Program*/*End*/#define N 30include stdlib.hinclude stdio.hmain()(int aN,i,k;clrscr();for(i=0;iN;i+)ai=random(51)+10;for(i=0;iN;i+)printf(%5d,ai);if(i+1)%5=0)printf(n);)k=max_min(a,N);printf(the result is:%dn,k);yzj();getch();答案:-int i,max,min;max=min=a0;for(i=1;imax)max=ai;else if(aimin)min=ai;return(max-min)510:请编写一个函数f u n,函数的功能是:求出N XM整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个)。

      例如:输入的数组为:1 2 34 15 612 18 910 11 2求出的最大数为18,行坐标为2,列坐标为1define N 4#define M 3in c lu d e int Row,Col;main()int aNM,i,j,max,row,col;printf(input a array:);for(i=0;iN;i+)for(j=0;jM;j+)scanf(d”,&aijD;for(i=0;iN;i+)for(j=0;jM;j+)printfC%d,aiU);printfCn);)max=fun(a);printf(,max=%d,row=%d,col=%d,max,Row,Col);yzj();int fun(int arrayNM)/*Prog ra m*/,*答 案:-int max,i,j;max=array 00;Row=0;Col=0;for(i=0;iN;i+)for(j=0;jM;j+)if(maxarray ij)max=array ij;Row=i;Col=j;)return(max);11:编写函数判断一个整数m的各位数字之和能否被7整除,可以被7整除则返回1,否则返回0。

      调用该函数找出100200之间满足条件的所有数include stdio.hint sub(int m)/*Program*/End /main()inti;for(i=100;i=200;i+)if(sub(i)=1)printf(4d”,i);yzj();getch();答案:-int k,s=O;dos=s+m%10;m=m/10;while(m!=0);if(s%7=0)k=1;else k=0;return(k);12:产生20个30,120上的随机整数放入二维数组a54中,求每行元素的和include stdlib-hinclude,stdio.h,void row_sum(int a54,int b5)*Program*/*End*/main()(void row_sum();int a54Lb5,i,j;clrscr();for(i=0;i5;i+)for(j=0;j4;j+)aij=random(120-30+1)+30;for(i=0;i5;i+)for(j=0;j4;j+)printf(%5d,aij);printf(Mn);row_sum(a,b);for(i=0;i5;i+)printf(”6d”,bi);printf(n);yzj();getch();答 案:-inti,j;for(i=0;i5;i+)bi=0;for(j=0;j4;j+)bi=bi+aij;13:编 写 函 数fu n,函 数 的 功 能 是:求 一 分 数 序 列2/1,3/2,5/3,8/5,13/8,21/13 的 前n项之 和。

      每 一 分 数 的 分 母 是 前 两 项 的 分 母 之 和每 一 分 数 的 分 子 是 前 两 项 的 分 子 之 和例 如:求 前20项 之 和 的 值 为32.660259include stdio.hfloat fun(int n)/program*/*main()float y;y=fun(20);printf(y=%fn,y);yzj();答案:-int i;float f1=1,f2=1,f3,s=0;for(i=1;i=n;i+)f3=f1+f2;f1=f2;f2=f3;s=s+f2/f1;return s;14:编写函数fun其功能是在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的平方和,并在fun()函数中输出include stdio.hmain()int i,j,s,a33;for(i=0;i3;i+)for(j=0;j3;j+)scanf(%d,&aij);s=fun(a);printf(Sum=%dn,s);yzj();getch();int fun(int a33)/*Program*/End */答案:一int sum;int i,j;sum=0;for(i=0;i3;i+)sum=sum+aii*aii;return sum;15:编写函数fu n,函数的功能是:求给定正整数m以内的素数之和。

      例如:当m=20时,函数值为77include stdio.hint fun(int m)/program*/*End*/main()inty;y=fun(20);printf(y=%dn,y);yzj();答案:-int i,k,s=0;for(i=2;i=m;i+)for(k=2;k4)z=x的八次嘉(x-4)z=z=4/(x*(x+1)(x-10)z=|x|+20(其。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.