版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验6是没有的,各位百度一下实验7(1)求一个3*3矩阵对角线元素之和、积、上三角、下三角元素之和。#include<stdio.h>#define N 3main() int aNN,i,j,sum=0,h=1; printf("请输入3*3矩阵各个元素:n"); for(i=0;i<N;i+) for(j=0;j<N;j+) scanf("%d",&aij); for(i=0;i<N;i+) for(j=0;j<N;j+) if(i=j|i+j=2) sum+=aij; h=h*aij; printf(&q
2、uot;对角线元素之和:%dn",sum); printf("对角线元素之积:%d",h); sum=0; for(i=0;i<N;i+) for(j=i;j<N;j+) sum+=aij; printf("上三角元素之和:%dn",sum); sum=0; for(j=0;j<N;j+) for(i=j;i<N;i+) sum+=aij; printf("下三角元素之和:%dn",sum);(2)打印出一下杨辉三角形(要求打印出10行)#include<stdio.h>main() in
3、t a1010,i,j; for(j=0;j<10;j+) for(i=j;i<10;i+) if(i=j|j=0) aij=1; else aij=ai-1j-1+ai-1j; printf("输出杨辉三角:n"); for(i=0;i<10;i+) for(j=0;j<=i;j+) printf("%d ",aij); if(i=j) printf("n");(3)编写程序,实现B=A+A ,A是A转置后的矩阵,相加后存放入B中。#include<stdio.h>main() int a33,b
4、33,i,j; printf("输入矩阵A:n"); for(i=0;i<3;i+) for(j=0;j<3;j+) scanf("%d",&aij); printf("输出矩阵B:n"); for(i=0;i<3;i+) for(j=0;j<3;j+) bij=aji+aij; printf("%d ",bij); if(j=2) printf("n");定义函数n,求n的各位数之和。 #include<stdio.h>int sum(int n)
5、int k=0; while(n) k+=n%10; n=n/10; return (k);main() int x,k; printf("请输入整数nn"); scanf("%d",&x); k=sum(x); printf("整数n的各位数之和为%d",k);实验8 指针的基本操作(2)编写程序,将两个数进行交换(参数用指针实现)#include<stdio.h>main() int *px,*py,*pz,x,y; printf("请输入x,y:n"); scanf("%d&qu
6、ot;,&x); scanf("%d",&y); px=&x; py=&y; pz=py; py=px; px=pz; printf("px=%d,py=%d",*px,*py);(4)编写程序,将一个数组中的值按逆序重新存放,例如,原来顺序为8,6,5,4,1.要求改为1,4,5,6,8.(用指针实现)#include<stdio.h>main() int a5,*px,i=0,t; printf("按次输入数组a各元素:n"); for(px=a;px<=&a4;px+)
7、scanf("%d",px); for(i;i<5/2;i+) t=ai; ai=a4-i; a4-i=t; px=a; for(;px<=&a4;px+) printf("%d ",*px);实验9 函数的定义及调用值传递(1)编写一个数制转换的函数,要求能完成任意两禁止之间的转换。从10进制转换成2,8,16进制。一#include<stdio.h>int wang(int x,int y) int a32,i=0; printf("转换后的值为"); while(x) ai=x%y; x=x/y;
8、 i+; for(i-;i>=0;i-) if(ai>9) printf("%c",ai+55); else printf("%d",ai);main() int x,y,k; printf("请输入一个十进制数n"); scanf("%d",&x); printf("请再输入需要转化的进制数n"); scanf("%d",&y); wang(x,y);二#include <stdio.h>int szzh(int n,int base
9、,int x) int i=0; while(n) xi+=n%base; n/=base; return (i);main() char fh17="0123456789ABCDEF" int i,n,base,a32; printf("请输入要转换的整数:"); scanf("%d",&n); printf("输入进制:"); scanf("%d",&base); i=szzh(n,base,a); i-; while(i>=0) printf("%c&quo
10、t;,fhai-); printf("n");三#include<stdio.h>int wang(int x,int y,int a) int i=0; while(x) ai=x%y; x=x/y; i+; return(i);main() int x,y,i,a32; printf("请输入一个十进制数n"); scanf("%d",&x); printf("请再输入需要转化的进制数n"); scanf("%d",&y); printf("转换后的值为
11、"); i=wang(x,y,a); for(i-;i>=0;i-) if(ai>9) printf("%c",ai+55); else printf("%d",ai);四#include <stdio.h>int szzh(int n,int base,int x) int i=0; while(n) xi+=n%base; n/=base; return i;void print(int a,int n) char fh17="0123456789ABCDEF" n-; while(n>=0
12、) printf("%c",fhan); n-; printf("n");main() int n,base; int i,a32; int b32; printf("请输入要转换的整数:"); scanf("%d",&n); printf("输入进制:"); scanf("%d",&base); i=szzh(n,base,a); print(a,i); 实验10 函数的定义及调用地址传递(1)编写函数js Value(int m,int k,int xx)
13、,该函数的功能是将大于整数m且紧靠m的k个素数存入数组xx传回#include<stdio.h>int jsValue(int m,int k,int xx)int d=0,n;while(d<k)m+;for(n=2;n<=m/2;n+)xxd=m;if(m%n=0)d-;break;d+;main()int k,m,xx32,d;printf("m:");scanf("%d",&m);printf("k:");scanf("%d",&k);jsValue(m,k,xx);
14、for(d=0;d<k;d+)printf("%d ",xxd);(2)将一个整数转换成字符串。例如,输入12345,应输出“54321”。N的位数不确定,可以是任意的整数。#include<stdio.h>void wang(char *p,int n) int i=0; while(n) pi=n%10+48; n=n/10; i+; pi='0'main() int i,n; char ss32; printf("请输入n:"); scanf("%d",&n); ss0=n; wang(
15、ss,n); printf("输出转换后的字符串:%s",ss);(4)编写函数,功能是计算N个学生的成绩中,高于平均成绩的人数,并作为函数值。用主函数来调用它,统计50个学生成绩中,高于平均成绩的人数。#include<stdio.h>int wang(int n,int *p) int i,sum=0,t,k=0; for(i=0;i<n;i+) sum+=pi; t=sum/n; for(i=0;i<n;i+) if(pi>t) k+; return(k);main() int i,n,a100,k; printf("请输入学生
16、人数n:"); scanf("%d",&n); printf("按次输入学生的成绩:"); for(i=0;i<n;i+) scanf("%d",&ai); k=wang(n,a); printf("高于平均成绩的有%d人",k);2.#include <stdio.h>int prime(int n) int i,flag=1; for(i=2;i<=n/2;i+) if(n%i=0) return 0; return flag;void jsValue(int
17、m,int k,int xx) int j=0,i,n; for(i=m+1;j<k;i+) if(prime(i) xxj+=i; main() int m,k,xx1000; printf("input m&k:"); scanf("%d%d",&m,&k); jsValue(m,k,xx); for(m=0;m<k;m+) printf("%d ",xxm); printf("n");实验11 字符串(4)有一篇文章,共3行文字,每行有80个字符。要求分别统计出其中英文大写
18、字母,小写字母,数字,空格以及其他字符的个数。#include<stdio.h>#include<ctype.h>#include<string.h>main() char xx380; int i,j,k=0,l=0,m=0,o=0,p=0,y,strl; printf("请输入三行文字,每行80个:n"); for(i=0;i<3;i+) gets(xxi); for(i=0;i<3;i+) strl=strlen(xxi); y=strl;p+=y; for(j=0;j<y;j+) if(isupper(xxij)
19、k+; if(islower(xxij)l+; if(isdigit(xxij)m+; if(isspace(xxij)o+; p=p-k-l-m-o; printf("英文大写字母为%d个,小写字母为%d个,数字为%d个,空格为%d个其他字符为%d个",k,l,m,o,p);(5)编写程序,将两个字符串连接起来,不要用strcat函数。#include<stdio.h>#include<string.h>main() char xx80,yy80; int i,j,k,l,strl; printf("请输入两个字符串:n");
20、gets(xx); gets(yy); k=strlen(xx); l=strlen(yy); for(i=k,j=0;i<k+l,j<l;i+,j+) xxi=yyj; xxk+l='0' for(i=0;i<=k+l;i+) printf("%c",xxi); 实验12 指针高级操作(1)编写函数,实现两个字符串的比较,即自己写意个比较函数(mytrcmp),函数原型为:int mystrcmp(char *p1,char *p2);.说明:设p1指向字符串s1,p2指向字符串s2,要求当s1=s2时,函数返回0;若s1!=s2,则返回
21、他们二者第一个不相同的字符的ASCII码差值。若s1>s2,则输出正值,若小于,则输出负值。两个字符串由main函数输入,strcmp函数的返回值也由maing函数输出。#include<stdio.h>#include<string.h>char mystrcmp(char *p1,char *p2) int i,a,b,k; a=strlen(p1); b=strlen(p2); if(a<b) a=b; for(i=0;i<a;i+) if(p1i!=p2i) k=p1i-p2i; break; if (p1i-p2i=0) k=0; retur
22、n(k);main() char s132,s232; int k; printf("请输入s1字符串:"); scanf("%s",s1); printf("n请输入s2字符串:"); scanf("%s",s2); k=mystrcmp(s1,s2); printf("n返回值为:%d",k);(2)有n个整数,使其右循环移m个位置,写函数实现以下功能,n,m在main函数中输入,并输出循环右移之后的n个数。#include<stdio.h>int wang(int m,int
23、n,int *p) int i,j,t; for(i=0;i<m;i+) t=pn-1; for(j=n-1;j>0;j-) pj=pj-1; p0=t;main() int n,m,c32,i; printf("请输入n:n"); scanf("%d",&n); printf("请输入m:n"); scanf("%d",&m); printf("请输入n个整数:n"); for(i=0;i<n;i+) scanf("%d",&ci)
24、; wang(m,n,c); for(i=0;i<n;i+) printf("%d ",ci);设计一个函数void fun(char s),将数字字符串s转换为一个整数。例如,若输入"123",则函数把它转换为123;若输入"-123",则函数把它转换为-123。要求:字符串在main()函数中输入,转换后的整数也在main()函数中输出。#include<stdio.h> #include<string.h> int fun(char s) int t,sum=0,j=0; t=strlen(s);
25、if(s0='-') j+; for(j;j<t;j+)sum=(sum+(sj-48)*10; sum=sum*10+sj-48; sum=sum/10; if(s0='-') sum=0-sum; return(sum);main() char a32; int n; printf("请输入字符串:"); scanf("%s",&a); n=fun(a); printf("输出转换后的整数:%d",n); 实验13 结构体与链表(3)编写程序,有4名学生,每个学生的数据包括学号、姓名、
26、成绩,要求自己安排成绩成绩最高者的姓名和成绩#include<stdio.h>#define N 4struct p int num; char name10; int c;stuN;int wang(struct p a) int i,c=0,j; for(i=0;i<N;i+) if(ai.c>c) c=ai.c; j=i; return(j);main() struct p stuN; int i,j; printf("请按次输入4名学生学号、姓名、成绩:n"); for(i=0;i<N;i+) scanf("%d%s%d&qu
27、ot;,&stui.num,,&stui.c); j=wang(stu); printf("成绩最高者的姓名和成绩为:%s %d",,stuj.c);设计一个结构体表示时间,完成输入当前时间hh:mm:ss和一个时间段h:m:s后,计算经过h:m:s时间后的时间。要求用函数来实现时间计算。#include<stdio.h>#define N 1struct p int h; int min; int s;int wang(struct p a) int k=0; a0.s+=a1.s; if(a0.s>=
28、60) a0.s=a0.s-60; a0.min+; a0.min+=a1.min; if(a0.min>=60) a0.min=a0.min-60; a0.h+; a0.h+=a1.h; if(a0.h>=24) a0.h=a0.h-24; k=1; return(k); main() struct p tN; int k=0; printf("请按格式输入时间:"); scanf("%d:%d:%d",&t0.h,&t0.min,&t0.s); printf("请再输入一个时间段:"); sca
29、nf("%d:%d:%d",&t1.h,&t1.min,&t1.s); k=wang(t); if(k=1) printf("次日"); printf("%d:%d:%d",t0.h,t0.min,t0.s);实验14 编译预处理(1)定义一个带参数的宏,使得两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。说明:在程序主函数使用宏时只能用两个实参,如SWAP(a,b),不能用3个实参。#include<stdio.h>#define Exchange(a,b) a=bm
30、ain() int a,b,c; scanf("%d %d",&a,&b); c=a; Exchange(a,b); Exchange(b,c); printf("%d %d",a,b);(2)输出实数的,包括:1. 一行输出一个实数2. 一行内输出两个实数3. 一行内输出三个实数。实数用“%6.2”格式输出。用#define命令定义的格式。在程序中用scanf函数读入三个实数给f1,f2,f3。然后用上面定义的3种格式分别输出1、f1 2、f1,f2 3、f1,f2,f3#include<stdio.h>#define fun1(f1) printf("%6.2fn",f1)#define fun2(f1,f2) printf(&quo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新年开工致辞
- 数学备课组学期工作计划合集五篇
- 旅馆灭火应急预案(6篇)
- 文化艺术节开幕词(6篇)
- 感恩主题国旗下讲话稿
- 瑜伽椅开肩课程设计
- 总经理年会发言稿
- 2024年版车辆驾驶承揽协议版B版
- 直流潮流法课程设计
- 2025年山东淄博淄川区事业单位青年人才公开招聘50人历年管理单位笔试遴选500模拟题附带答案详解
- E英语教程(第二版)1教学课件Unit-3
- 高铁乘务礼仪培训
- 2022年公务员多省联考《申论》真题(陕西A卷)及答案解析
- 2024-2025学年上学期期中教育学业质量监测八年级生物学试卷
- 文化遗产与自然遗产学习通超星期末考试答案章节答案2024年
- 反向开票政策解读课件
- 保健食品安全事故应急处置管理制度
- 2024部编版语文一年级上册第六单元大单元备课
- 化妆品代工生产合同
- 仓库租赁、物资仓储保管服务投标方案(技术方案)
- Unit 6 I will bring a big bottle of orange juice(教学设计)-2024-2025学年湘少版(三起)英语六年级上册
评论
0/150
提交评论