




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.编写程序,输入一个正整数n,求下列算式的值。要求定义和调用函数fact(k)计算k的阶乘,函数返回值的类型是double。#include double fact(int k) double t=1; int i; for(i=1;i=k;i+) t*=i; return t;void main() int i,n; double s=0; scanf(“%d”,&n); for(i=1;i0) y=1;else if(x=0) y=0;else y=-1; return y;void main() double x; int y; scanf(“%lf”,&x); y=f(x); / 函数调用 printf(f(%g)=%dn,x,y);3.输入一个正整数,输出该数的各个数字之和。要求编写函数,计算整数的各个数字之和。#include int sum(int a) int s=0; while(a!=0) s+=a%10; a=a/10; return s;void main() int x; scanf(“%d”,&x); printf(%dn,sum(x);4.输入两个正整数a和n,求a+aa+aaa+aaa(最后一项为n个a)之和。例如输入2和3,输出246(即2+22+222)。要求定义并调用函数f(a,n),它的功能是返回aaa(n个a)。例如f(2,3)返回222。 #include int f(int a,int n) int s=0; for(;n0;n-) s=s*10+a; / s+=pow(10,n-1)*a; return s; void main() int a,n,sum=0,i; printf(“input a n:n”); scanf(“%d%d”,&a,&n); for(i=1;i=n;i+) sum+=f(a,i); printf(“%dn”,sum);5.输入三个数,输出它们的最小值。要求定义一个函数,返回两个数的最小值。 #include double min(double x,double y) if(x return x;else return y;void main() double x,y,z,t; scanf(“%lf%lf%lf”,&x,&y,&z); t=min(x,y); t=min(t,z); printf(min:%fn,t);6.在主函数中输入字符c和m,调用函数prn,连续将字符c输出m次。定义函数prn,完成连续将某个字符c输出m次后换行。#include void prn(char,int); / 函数声明void main() char c; int m; printf(“Input c m:n”);scanf(“%c%d”,&c,&m); prn(c,m);void prn(char c,int m) int i; for(i=1;i=m;i+) putchar(c); printf(“n”);7.输入一个整数n,计算3.2n的值。要求定义函数计算xn 值。#include double fact(double x,int n); void main() double x,y; int n; printf(“Input x n:n”);scanf(“%lf%d”,&x,&n); y=fact(x,n); printf(“%fn”,y);double fact(double x,int n) int i; double t=1; for(i=1;i=n;i+) t=t*x; return t;8.输入平面上p1(x1,x2)、p2(x2,y2)两点坐标,计算两点间的距离输出。要求定义一个函数计算平面上两点间的距离。#include #include double f(double,double,double,double); void main() double x1,x2,y1,y2,d; printf(“Input (x1,y1),(x2,y2):n”);scanf(“(%lf,%lf),(%lf,%lf)”,&x1,&y1,&x2,&y2); d=f(x1,y1,x2,y2); printf(“%fn”,d);double f(double x1,double y1,double x2,double y2) double d; d=sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2); return d;9.输出一张摄氏温度华氏温度转换表。摄氏温度取-100 150 ,温度间隔5 ,要求定义函数ctof(c),将摄氏温度转换为华氏温度,转换公式:F=32+C*9/5#include void main() float c,f, ctof(float); int i; for(i=0,c=-100;c=150;c+=5) f=ctof(c); printf(%6.0f %-6.0f,c,f); i+; if(i%5=0) printf(n);float ctof(float c) float f; f=32+c*9/5; return f;10.求11999之间所有“回文数”之和。要求编制函数 JSValue(m)用于判断m是否为回文数。回文数是指各位数字左右对称,例如11、121、676、909等等。#include int JSValue(int m) int a=0,b; b=m;while(b!=0) a=a*10+b%10; b=b/10; if(a=m) return 1; else return 0;void main() int s=0,i; for(i=11;i=999;i+) if(JSValue(i)=1) s+=i; printf(“%dn”,s);11.输入100个学生的数学课程成绩,计算平均分,并统计成绩在平均分数正负10%区间的学生的人数。#include void main() int a100,i,k=0; float sum=0,aver; for(i=0;i100;i+) scanf(“%d”,&ai); sum+=ai; aver=sum/100;for(i=0;i100;i+) if(0.9*aver=ai&ai=1.1*aver) / 当前成绩在平均分数正负10%区间 k+; printf(“%f,%dn”,aver,k); 12.输入两个正整数m和n(m#include int isprime(int x) int i;for(i=2;i if(x%i=0) return 0;return 1;void main() int m,n,s=0,k; scanf(“%d%d”,&m,&n); for(k=m;k=n;k+) if(isprime(k)=1) s+=k;printf(“%dn”,s); 13.输入一个字符串(少于80个字符),再输入一个字符,统计并输出该字符在字符串中出现的次数(例如:输入morning回车,再输入n,输出2)。#include main() char s80,c; int i,k=0; printf(输入字符串:n); gets(s); printf(输入字符:n); c=getchar(); for(i=0;si!=0;i+) if(si=c) k+; printf(%s中包含%d个%cn,s,k,c);14.输入10组数,每组数3个数,输出每组数的最大值。要求定义并调用函数max(x,y,z)求x、y、z的最大值。#include double max(double x,double y,double z) double m; m=x;if(mif(mreturn m;void main() double x,y,z,i; for(i=1;i=0&si=9) n+; printf(%s中包含%d个字符n,s,n); 16.将一个大小为10的数组b的值按逆序重新存放(数组的值由键盘任意输入,不使用辅助数组)。 #include void main() double a10,t; int i,j; for(i=0;i10;i+) scanf(%lf,&ai); for(i=0,j=9;i t=ai;ai=aj;aj=t; for(i=0;i10;i+) printf(%8.2f,ai); 17.计算55数组周边元素的和。 #include void main() double a55,sum=0; int i,j; for(i=0;i5;i+) for(j=0;j5;j+) scanf(%lf,&aij); for(i=0;i5;i+=4) for(j=0;j5;j+) sum+=aij; / 第1、最后两行元素和for(i=1;i4;i+) for(j=0;j5;j+=4) sum+=aij; / 最左、右两列(不包括角上)元素和 printf(%8.2fn,sum); 18.输入一5行、5列的数组,将数组的每1行均除以该行上的主对角元素(第1行同除以a00,第2行同除以a11,.),然后以行列对齐格式输出数组内容。#include void main() float a55,t;int i,j; for(i=0;i5;i+) for(j=0;j5;j+) scanf(%f,&aij);for(i=0;i5;i+) t=aii; / for(j=0;j5;j+)for(j=0;j5;j+) / if(i!=j) aij=aij/aij; aij=aij/t; / aii=1; for(i=0;i5;i+) for(j=0;j=j) printf(YESn); 解二: #include void main() char s80; int i,j,flag=1; gets(s); for(j=0;sj!=0;j+); for(i=0,j-;i if(si!=sj) flag=0; if(flag=1) printf(YESn); else printf(NOn); 20.编写函数fun,返回一个数组(10个数)中除最大值和最小值以外的平均值。 #include double fun(double a ,int n) double sum=0,max,min; int i; max=min=a0; for(i=0;i if(max else if(minai) min=ai; sum+=ai; return (sum-max-min)/(n-2); void main() double b10,v; int i; for(i=0;i10;i+) scanf(%lf,&bi); v=fun(b,10); printf(average:%.2fn,v); 21.在主函数中输入一个正整数x,编写函数f1,它的功能是:求出能整除x且不是偶数的各正整数,并放在数组a中,这些除数的个数返回给主函数。在主函数中输出各除数。 #include int f1(int a ,int x) int j,n=0; for(j=1;j=x/2;j+=2) if(x%j=0) an=j; n+; return n; void main() int a20,i,n,x; scanf(%d,&x); n=f1(a,x); for(i=0;i printf(%5d,ai); printf(n); 22.在主函数中输入6行、6列的数组和变量m的值,编写函数f2,该函数的功能是:将数组左下半三角元素中的值乘以m。在主函数中以行列对齐格式输出该数组。 #include void f2(int a 6,int m) int i,j; for(i=0;i6;i+) for(j=0;j=i;j+) aij*=m; void main() int a66,i,j,m; for(i=0;i6;i+) for(j=0;j6;j+) scanf(%d,&aij); printf(Input m:); scanf(%d,&m); f2(a,m); / 调用函数 for(i=0;i6;i+) for(j=0;j6;j+) printf(%5d,aij); printf(n); 23.编写一个函数f3,它的功能是:实现两个字符串的连接。 #include void main() char s1100,s240; void f3(char s1 ,char s2 ); gets(s1); gets(s2); f3(s1,s2); puts(s1); void f3(char s1 ,char s2 ) int i,j; for(i=0;s1i!=0;i+); / 找s1 中字符串结束位置 for(j=0;s2j!=0;j+,i+) s1i=s2j; / 将s2 中字符串连接到s1后 s1i=0; / 连接后加结束标志 return ; 24.在数组x的10个数中求平均值v,找出与v相差最小的数组元素。 #include #include void main() double x10,v,d; int i; for(i=0,v=0;i10;i+) scanf(%lf,&xi); v+=xi; v=v/10; d=x0; for(i=1;ifabs(xi-v) d=xi; printf(平均值:%-8.2f,与平均值最近元素:%-8.2fn,v,d);25.输入n(n20)个数放在一维数组中,找出其中最小的数,将它与数组最前面的数交换后输出这些数。#include void main() int i,k,temp,n,a20; printf(Input n:n); scanf(%d,&n); for(i=0;i scanf(%d,&ai); for(k=0,i=1;i if(ai temp=a0;a0=ak;ak=temp; for(i=0;i printf(Input %d numbers:n,n); for(i=0;i printf(Input x:); scanf(%d,&x); for(i=n-1;i=0;i-) if(aix) ai+1=ai; else break; ai+1=x; for(i=0;i 27.输入一个5行、6列的数组,找出该数组中绝对值最大的元素、输出该元素及其两个下标值。 #include #include void main() int a56,i,j,max,maxi,maxj; for(i=0;i5;i+) for(j=0;j6;j+) scanf(%d,&aij); max=abs(a00);maxi=maxj=0; for(i=0;i5;i+) for(j=0;jmax) max=abs(aij); maxi=i; maxj=j; printf(max: %dn,amaximaxj); printf(row: %d col: %dn,maxi,maxj); 28.从键盘输入任意一个整数,统计该整数中出现的不同数字的个数。#include void main() int x,a10=0,i,n=0; printf(Input x:n); scanf(%d,&x); while(x!=0) ax%10=1; x=x/10; for(i=0;iz&x+zy&y+zx) d=s(x,y,z);t=area(x,y,z,d);printf(“area=%fn”,t); else printf(“error!n”); 30.编程,输入一个正整数,将其转换成二进制数。#include main() int x,a32,i,j; printf(Enter x:); scanf(%d,&x); for(i=0;x!=0;i+) ai=x%2; x/=2; for(j=i-1;j=0;j-) printf(%d,aj); printf(n);31.输入一行字符,统计并输出其中英文字母、数字字符、空格和其他字符的个数。#include void main() char str80; int zm,sz,kg,qt,i; zm=sz=kg=qt=0; gets(str); for(i=0;stri!=0;i+) if(stri=A&stri=a&stri=0&stri*max) *max=*p; if(*p*min) *min=*p; void main() int a10,i,max,min; for(i=0;i10;i+) scanf(“%d”,a+i);max_min(a,10,&max,&min);printf(“max=%d,min=%dn”,max,min); 34.输入10个数,按绝对值从小到大排序后输出。要求定义一个函数sort,完成绝对值从小到大排序。 #include #include void sort(int *a,int n) int i,j,k,t; for(i=0;i k=i; for(j=i+1;j if(fabs(*(a+j) t=*(a+i);*(a+i)=*(a+k);*(a+k)=t; void main() int a10,i; for(i=0;i10;i+) scanf(%d,a+i); sort(a,10); for(i=0;i10;i+) printf(%d ,*(a+i); 35.输入n和x,n和x分别表示对数组前n个元素赋初值为x。要求定义一个函数value,完成对一维整型数组的n个元素进行赋值,具体赋值x。 #include void value(double *a,int n,double x) int i; for(i=0;i *(a+i)=x; void main() double a10,x; int i,n; printf (“Input n x:n); scanf(%d%lf,&n,&x); value(a,n,x); for(i=0;i printf(%8.2f,*(a+i); 36.定义一个函数,计算两个数的和与乘积。 #include void f(double x,double y,double *p,double *q) *p=x+y; *q=x*y; void main() double a,b,add,mult; printf (Input a b:n); scanf(%lf%lf,&a,&b); f(a,b,&add,&mult); printf(add=%-8.2f mult=%-8.2fn,add,mult); 37.定义一个函数,将一维数组中最大值及最小值交换位置。 #include void f(int *a,int n) int i,*p,*q,t; for(i=0,p=q=a;i if(*p*(a+i) q=a+i; t=*p;*p=*q;*q=t; void main() int a10,i; for(i=0;i10;i+) scanf(%d,a+i); f(a,10); for(i=0;i=a&*s=z) *s-=32; void main() char a100; gets(a); printf(strlen:%dn,strlen(a); cov(a); puts(a); 39.编写函数void fun(int *a, int *n) ,它的功能是:求出1到100之内能被3或者7整除,但不能同时被3和7整除的所有整数,并将他们放在a所指的数组中,通过n返回这些数的个数。 #include void fun(int *a, int *n) int i,j; for(i=1,j=0;i=100;i+) if(i%3=0|i%7=0)&i%21!=0) aj=i; j+; *n=j; void main() int a100,i,n; fun(a,&n); for(i=0;i printf(%d ,*(a+i); 40.编程,检查一个55二维数组a是否对称(即:对所有i和j都有aij=aji)。 若是输出YES,否则输出NO #include void main() double
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届河南省镇平县第一中学化学高一第一学期期中经典试题含解析
- 基础强化自考专业(市场营销学)试题【达标题】附答案
- 资产经营责任合同书
- 营销总监聘用合同书
- 解析卷人教版8年级数学上册《整式的乘法与因式分解》专项攻克试卷
- 房地产行业20XX年度总结
- 2025年皮肤科天疱疮糖皮质激素冲击治疗模拟测验题(含答案及解析)
- 2025年心血管内科冠心病介入知识竞赛试题答案及解析
- 演出经纪人之《演出经纪实务》试题预测试卷附答案详解(研优卷)
- 考点攻克青岛版8年级数学下册期末测试卷及完整答案详解【网校专用】
- 核电站的事故应急预案演练
- 中科院2022年物理化学(甲)考研真题(含答案)
- 系统规划与管理师教程
- 导游如何提高自身的解说与讲解技能
- 《光的相干性》课件
- 2024年河北电工理论考试试题电工技师考试内容(全国通用)
- 铁路信号工(普速车站与区间信号设备维修)
- 一只窝囊的大老虎第二课时
- 新部编五年级上册语文全册表格式教案(含教学反思)
- 40篇 短文搞定3500词汇
- 什么是朗诵艺术与技巧
评论
0/150
提交评论