欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C语言程序设计实验报告一.docx

    • 资源ID:3990752       资源大小:153.96KB        全文页数:27页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言程序设计实验报告一.docx

    1、C语言程序设计实验报告一C语言程序设计实验报告专业: 班级: 日期: 成绩:实验组别: 第 次实验: 指导教师:学生姓名: 学号: 同组人姓名:实验名称:指针实验一、实验目的(1)熟练掌握指针的说明、赋值、使用。(2)掌握用指针引用数组的元素,熟悉指向数组的指针的使用。(3)熟练掌握字符数组与字符串的使用,掌握指针数组及字符指针数组的用法。(4)掌握带有参数的main函数的用法。二、实验内容及要求1.源程序改错 下面的源程序中是否存在错误?如果存在,原因是什么?如果存在错误要求在计算机上对这个源程序进行调试修改,是之能够正确执行。源程序:#include int main(void) floa

    2、t * p; scanf(%f,p); printf(%fn,*p); return 0;2.源程序修改替换(1)下面源程序的功能是,通过函数指针和菜单选择来调用字符串拷贝函数或字符串连接函数。请在程序中的下划线处填写合适的表达式、语句或代码片段来完善该程序。源程序:#include #include int main(void) _ char a80,b80,c160,*result=c; int choice,i; do printf(tt1 copy string.n); printf(tt2 connect string.n); printf(tt3 exit.n); printf(t

    3、tinput a number(1-3)please! n); scanf(%d,&choice); while(choice5); switch (choice) case 1: p=strcpy; break; case 2: p=strcat; break; case 3: goto down; getchar(); printf(input the first string please! n); i=0; _ printf(input the second string please!n); i=0; _ result=_(a,b); printf(the result is %sn

    4、,result); down: ; return 0;(2)请上机运行第(1)题程序使之能按下面要求输出结果(注:(输入)表示该行数据是键盘数据):1.copy string。2.Connect string。3.Exit。Input a number(1-3)please!2(输入)Input the first string please!The more you learn,(输入)Input the second string please!The more you get.(输入)The result is the more you learn,the more you get.3.

    5、 跟踪调试程序请按下面的要求对所给源程序进行操作,并回答问题和排除错误。(1)单步执行源程序。进入strcpy时,watches窗口中s为何值?返回main时,watches窗口中s为何值?(2)排除源程序中的错误,使程序输出结果为:there is a boat on the lake.源程序:#include char * strcpy(char*,char*);int main(void) char a20,b60=there is a boat on the lack.; printf(%sn,strcpy(a,b); return 0;char *strcpy(char*s,char

    6、*t) while(*s+=*t+) ; return (s);4.程序设计编写并上机调试运行能实现以下功能的程序或函数:(1)已知一个长整形变量占四个字符,其中每个字节又分高四位和低四位。试编写一个程序,从该长整形变量的高字节开始,依次取出每个字节的高四位和低四位并以数字字符的形式进行显示。(2)利用大小为n的指针数组指向用gets函数输入的n行,每行不超过80个字符。试编写一个函数,它将每一行中连续的多个空格字符压缩为一个空格字符。在调用函数中输出压缩空格后的各行,空行不予输出。(3)编写一个程序,输入n个整数,排序后输出。排序的原则由命令行可选参数-d决定,并且有参数-d时按递减顺序,否

    7、则按递增顺序排序。要求将排序算法定义成函数,利用指向函数的指针是该函数实现递增或递减排序。(4)设每个班有n个学生,每个学生所修的M门课程的成绩,并且都存放到相应的数组中,试编写以下函数:计算每个学生各门课程平均成绩计算全班每门课程的平均成绩分别统计低于全班各门课程平均成绩的人数分别统计全班各门课程不及格的人数和90分以上(包含90)的人数。在调用函数中输出结果(要求都用指针操作,不得用下标)5.选做题(1)编写并上机调试运行能实现以下功能的程序:设有N位整数和M位小数(N=20,M=10)的两个数据a,b。编程计算a+b并输出结果。如: 12345678912345678912.123456

    8、7891+98765432109876543210.0123456789(2)编写一个使用复杂声明的“char *(*p2)(const char*,const char *);”的程序。提示:p中元素可为strcmp,strstr等函数名。三、实验步骤及结果1.源程序改错错误:悬挂指针,指针未初始化改后程序:#includeint main(void) float *p,a; p=&a; scanf(%f,p); printf(%fn,*p); return 0;2.源程序完善、修改、替换#include#includeint main(void) char *(*p)(char *a,ch

    9、ar *b); char a80,b80,c160,*result=c; int choice,i; do printf(tt1 copy string.n); printf(tt2 connect string.n); printf(tt3 exit.n); printf(ttinput a number(1-3)please!n); scanf(%d,&choice); while(choice5); switch(choice) case 1: p=strcpy; break; case 2: p=strcat; break; case 3: goto down; getchar();

    10、printf(input the first string please!n); i=0; while(ai=getchar()!=n) i+; ai=0;printf(input the second string please!n); i=0; while(bi=getchar()!=n) i+; bi=0; result=(*p)(a,b); printf(the result is %sn,result); down: ; return 0;3.跟踪调试程序#include char * strcpy(char*,char*);int main(void) char a20,b60=t

    11、here is a boat on the lack.; printf(%sn,strcpy(a,b); return 0;char *strcpy(char*s,char*t) char *m; m=s; while(*s+=*t+) ; return (m);4.程序设计(1)#include#include#define MAX 32int main() long int n; int i; char sMAX; printf(please input a number:n); scanf(%ld,&n); if(n=-2147483647&n=0) for(i=0;n!=0;i+) s

    12、i=n%2+0; n/=2; for(;i=MAX-1;i+) si=0; else n=-(n+1); for(i=0;n!=0;i+) si=n%2+0; n/=2; for(;i=MAX-2;i+) si=0; for(i=0;i=28;i-) putchar(si); putchar(t); for(i=27;i=24;i-) putchar(si); putchar(t); for(i=23;i=20;i-) putchar(si); putchar(t); for(i=19;i=16;i-) putchar(si); putchar(t); for(i=15;i=12;i-) pu

    13、tchar(si); putchar(t); for(i=11;i=8;i-) putchar(si); putchar(t); for(i=7;i=4;i-) putchar(si); putchar(t); for(i=3;i=0;i-) putchar(si); putchar(t); return 0;(2)#include#include#include#define N 3void output(char*s);int main(void) int i; char *sN; printf(please input your massage:n); for(i=0;iN;i+) si

    14、=malloc(80); gets(si); printf(your massage has been changed into;n); for(i=0;iN;i+) output(si); printf(%sn,si); return 0;void output(char*s) int i,j; for(i=0,j=0;si!=0;i+,j+) if(isspace(si) for(;isspace(si);i+) ; sj+= ; sj=si; else sj=si; sj=si;(3)#include#define MAX 5void swap(int v,int i,int j);vo

    15、id qsort(int v,int left,int right);int main(int argc,char *argv) int i=0,sMAX; if(-argc0&(*+argv)0=-) if(*argv)1=d) while(i=0;i-) printf(%dt,si); else printf(wrong:n); else while(iMAX) scanf(%d,&si+); qsort(s,0,MAX-1); for(i=0;iright) return; swap(v,left,(left+right)/2); last=left; for(i=left+1;i=ri

    16、ght;i+) if(vivleft) swap(v,+last,i); swap(v,left,last); qsort(v,left,last-1); qsort(v,last+1,right);void swap(int v,int i,int j) int temp; temp=vi; vi=vj; vj=temp;(4)#include #define N 5#define M 3struct course char *s; int dN; smM;void saverage(struct course *sm);void caverage(struct course *sm);vo

    17、id summary_below(struct course *sm);void summary_both(struct course *sm);int main(void) int i; printf(Please input the names of the %d courses.n,M); for(i=0;is=malloc(10)=NULL) printf(ERROR); for(i=0;is); for(k=0;kd+k); saverage(sm); caverage(sm); summary_below(sm); summary_both(sm); return 0;void s

    18、average(struct course *sm) double sum=0,av; int i,k; for(i=0;iN;i+) printf(This is the %d students average gradet,i+1); for(k=0;kd+i); av=sum/M; printf(%lfn,av); sum=0; void caverage(struct course *sm) double sum=0,av; int i,k; for(i=0;is); for(k=0;kd+k); av=sum/N; printf(%lfn,av); sum=0; void summa

    19、ry_below(struct course *sm) double sum=0,av; int i,k; for(i=0;iM;i+) for(k=0;kd+k); av=sum/N; printf(In %s the number of below-average student ist,(sm+i)-s); for(sum=0,k=0;kd+k)av) sum+; printf(%dn,(int)sum); sum=0; void summary_both(struct course *sm) int i,k; int fsum=0,esum=0; for(i=0;iM;i+) prin

    20、tf(The course is %st,(*(sm+i).s); for(k=0;kd+k)d+k)90) esum+; printf(the failed is %d,while the above 90 is %dn,fsum,esum); fsum=0,esum=0; 5.选做题(1)#includeint main(void) int i,t=0; char a=12345678912345678912.1234567891; char b=98765432109876543210.0123456789; int s32; s0=0; for(i=0;i=0;i-) if(ai=.)

    21、 i-; int m,n,k; m=ai-0+t; n=bi-0; k=m+n; if(k=10) t=k/10; si+1=k%10; else si+1=k%10; t=0; k=0; s0=t; for(i=0;i32;i+) if(i=21) printf(.); else printf(%d,si); return 0;(2)#include#include#includeint main(void) int n; char *(*p2)(const char*,const char*); char *a;char *b;char *c; printf(please input st

    22、ring one:n); a=malloc(20); gets(a); printf(please input string two:n); b=malloc(20); gets(b); printf(please input a number:n0 to choose the strcpyn1 to choose the strcatn); scanf(%d,&n); p0=strcpy; p1=strcat; if(n2|n0) printf(wrong); return -1; else c=(*pn)(a,b); printf(now the string is:n%sn,c); return 0;四、实验体会知道了指向数组的指针的用法,明白了指向函数的指针的用途


    注意事项

    本文(C语言程序设计实验报告一.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开