高级语言程序设计(下)实验编程题.doc_第1页
高级语言程序设计(下)实验编程题.doc_第2页
高级语言程序设计(下)实验编程题.doc_第3页
高级语言程序设计(下)实验编程题.doc_第4页
高级语言程序设计(下)实验编程题.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

函数编程题(1)编写一个程序实现如下功能:编写两个函数,其功能分别为:求N个整数的最大值和次大值。求两个整数的最大公约数和最小公倍数。主函数调用这两个函数(程序以文件名sy6_7.c存盘)。#include#define N 10void max(int b,int n) /求最大数和次大数int i,max,max2; max=max2=b0; for(i=1;in;i+) max=maxbi?bi:max; for(i=1;in;i+) if(max2bi & bimax) max2=bi; printf(n%d is max, %d is smax ,max,max2); int gcd(int m,int n) /最大公约数和最小公倍数int r; r=m%n; while(r) m=n; n=r; r=m%n; return n;void main() int a1,a2,b,c,i; int aN; printf(请输入%d个整数:,N); for(i=0;iN;i+) scanf(%d,&ai); max(a,N); printf(输入两个正正数:); scanf(%d%d,&a1,&a2); b=a1*a2; c=gcd(a1,a2); printf(%4d和%4d的最大公约数%4d,最小公倍数%4dn,a1,a2,c,b/c);2)编写一个程序实现如下功能:验编一函数,功能为判断一字符串是否为回文。回文是指顺读和倒读都一样的字符串,如“deed”和“level”是回文。在主函数中对输入的5个字符串统计其中回文的个数。(程序以文件名sy6_8.c存盘)。#include #include int function(char a) int i; int l=strlen(a); for(i=0;il/2;i+) if(ai!=al-i-1) return 0; return 1; void main() char s100; int count=0,i; for(i=1;i=0;i-) printf(%c,ai); printf(n); void trans10_2 (char x,int m) int r,i=0; while(m0) r=m%2; xi=r+48; m=m/2; i+; xi=0; 指针编程(1)编写一个程序实现如下功能:利用指针作函数参数,设计一函数实现将n个元素进行排序(程序以文件名sy7_7.c存盘)。#includevoid sort(int *p,int n)int i,j,t; for(i=0;in-1;i+) for(j=0;j*(p+j+1) /由小到大排序 t=*(p+j); *(p+j)=*(p+j+1);*(p+j+1)=t;void main()int a10,i; printf(输入%d个正数:,10); for(i=0;i10;i+) scanf(%d,&ai); sort(a,10); /调用排序函数 printf(排序后:n); for(i=0;i10;i+) printf(%5d,ai); printf(n);(2)编写一个程序实现如下功能:利用指针作函数参数,设计一函数对字母进行简单加密,把当前的字母变成后面第3个字母,如最后三个字母x、y、z变成字母a、b、c。再设计一函数把加密字符还原(程序以文件名sy7_8.c存盘)。#includevoid jiami(char *ch) char *p=ch; while(*p!=0) if(*p=a & *p=A& *pZ&*pz) *p=*p-26; +p; void jiemi(char *ch) char *p=ch; while(*p!=0) if(*p=a& *p=A& *p=Z) *p=*p-3; if(*pA|*pZ) *p=*p+26; +p; void main() char line80; printf(请输入一行字符:n); gets(line); jiami(line); puts(line); jiemi(line); puts(line);(3)编写一个程序实现如下功能:输入一个字符串,内有数字和非数字字符,如:a123x456 17960?302tab5876 将其中连续的数字作为一个整数,依次存放到一数组a中。例如123放在a0中,456放在a1中统计共有多少个整数,并输出这些数(程序以文件名sy7_9.c存盘)。#include #include void main() char ch1000,*p=ch; int a50,*q=a,num=0,i; gets(ch); for( ; *p!=0; p+) if(*p=0 & *p=0 & *p=9) *q=(*q)*10+(*(p+)-0); num+=1; q+=1; for(i=0,q=a; inum; i+,q+) printf(%d ,*q); printf(n一共输入了%d个数字。n,num); 结构体链表编程题(1)编写一个程序实现如下功能:有4名学生,每个学生信息包含学号、姓名、数学成绩、英语成绩、C语言成绩和三门课程的总分,并对数据进行输入和输出(程序以文件名sy8_7.c存盘)。#include#define N 4void main() struct student int no; char name16; float math,eng,c;float sum; ; struct student stN; int i; printf(请输入%4d 个学生的学号、姓名、数学、英语、C成绩n,N); for (i=0;iN;i+) scanf(%d %s,&sti.no,&); scanf(%f%f%f,&sti.math,&sti.eng,&sti.c); sti.sum=sti.math+sti.eng+sti.c; printf(n%10s%10s%5s%5s%5s%10sn,NO,NAME,MATH,ENG,C+,SUM); printf(nn); for(i=0;iN;i+) printf(%10d%10s%5.1f%5.1f%5.1f%10.1fn,sti.no,,sti.math,sti.eng,sti.c,sti.sum); (2) 编写一个程序实现如下功能:定义一个点的结构数据类型,实现下列功能:为点输入坐标值。求两个点中点坐标。求两点间距离。(程序以文件名sy8_8.c存盘)#include#include struct point float x,y; ; /*定义一个点结构*/ struct point inputpoint( ) ; /*输入点坐标值*/ struct point midpoint(struct point p1,struct point p2 ); /*两个点中点坐标*/ double dists(struct point p1,struct point p2 ); /*两点间距离*/void main() struct point a,b,c; printf(输入第一个点坐标:n); a=inputpoint( );/ printf(输入第二个点坐标:n); b=inputpoint( ); c=midpoint(a,b ); printf(中点坐标为:(%5.1f,%5.1f)n,c.x,c.y); printf(两点站距离为:%10.4fn,dists(a,b); struct point inputpoint( ) struct point t; scanf(%f%f,&t.x,&t.y); return t; struct point midpoint(struct point p1,struct point p2 ) struct point t; t.x=(p1.x+p2.x)/2; t.y=(p1.y+p2.y)/2; return t;double dists(struct point p1,struct point p2 ) double d; d=sqrt(p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y); return d;(3)编写一个程序实现如下功能:建立一个单链表,每个结点数据要有职工号、工资。用一个creat函数来建立链表,用list函数输出数据(数据自定)(程序以文件名sy8_9.c存盘)。#include#includestruct nodeint no; float gongzi; struct node *next; ;void creat(struct node *H,int *a,int n) int i; float x; struct node *p;for(i=0;ino=ai; p-gongzi=x; p-next=H-next; H-next=p;void list(struct node *H) struct node *p; p=H-next; while(p) printf(%4d%10.1fn,p-no,p-gongzi); p=p-next; void main() int a=101,103,105,107,109; struct node *H; H=(struct node *) malloc(sizeof(struct node); H-next=NULL; creat(H,a,5); printf(%6s%8sn,工号,工资); list(H);文件编程题(1)编写一个程序实现如下功能:有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。(程序以文件名sy9_7.c存盘)。#include#include#define N 5struct student int no; char name16; float mark3;float ave; ; struct student stN;void main() FILE *fp4; int i; fp4=fopen (d:data4.dat,wb); if(fp4=NULL) printf(Open error n);exit(0); for (i=0;iN;i+) printf(请输入%4d 个学生的学号、姓名、三门课的成绩n,i+1); scanf(%d,&sti.no); gets(); /*可以输入空格*/ scanf(%f%f%f,&sti.mark0,&sti.mark1,&sti.mark2); sti.ave=(sti.mark0+sti.mark1+sti.mark2)/3.0; fwrite(&sti,sizeof(struct student),1,fp4); fclose(fp4); (2) 编写一个程序实现如下功能:将一个整形ASCII码文件FileA.txt复制到ASCII码文件FileB.txt。(程序以文件名sy9_8.c存盘)。FileA.txt FileB.txt10 11 12 13 14 15 10 11 12 13 14 1520 21 22 23 24 25 20 21 22 23 24 2530 31 32 33 34 35 30 31 32 33 34 35#include void main() FILE *fpa,*fpb; int x,c=0; fpa=fopen(d:FileA.dat,r); fpb=fopen(d:FileB.dat,w); fscanf(fpa,%5d,&x); while(!feof(fpa) fprintf(fpb,%5d,x); c+; if(c%6=0) fprintf(fpb,%c,n); fscanf(fpa,%5d,&x); fclose(fpa); fclose(fpb);(3)编写一个程序实现如下功能:有一个整数文件(二进制文件),读取其中的数值,如果为奇数加一;如果为偶数,减一,存放到新的文件中去。(程序以文件名sy9_9.c存盘)。#include #include void main ( ) int x100,i=0,k; FILE *fp2; fp2=fopen (d:data2.dat,rb); if(fp2=NULL) printf(Open error n);exit(0);printf(原文件数据:n);fread(&xi,sizeof(int),1, fp2); while(!feof(fp2) printf(%10d,xi); /*输出原文件数据*/ if(xi%2=1) xi=xi+1; /*修改数据*/ else xi=xi-1; i+; fread(&xi,sizeof(int),1, fp2); printf(n); fclose (fp2 ) ; fp2=fopen (d:data2.d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论