资源描述:
《实验八实验报告卓越14彭佳伟》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、C语言程序设计实验报告专业计算机科学与技术班级卓越工程师班日期2014年12月17日成绩第八次实验指针实验指导教师李开学生姓名彭佳伟学号U201414716实验组别同组人姓名实验名称指针实验一、实验目的(1)熟练掌握指针的说明、赋值、使用。(2)掌握用指针引用数组的元素,熟悉指向数组的指针的使用。(3)熟练掌握字符数组与字符串的使用,掌握指针数组及字符指针数组的用法。(4)掌握指针函数与函数指针的用法。(5)掌握带有参数的main函数的用法。二、实验任务1.源程序改错下面的源程序中是否存在错误?如果存在,原因是什么?如果存在错误,要求在计算
2、机上对这个源程序进行调试修改,使之能够正确执行。源程序1#includeintmain(void){float*p;scanf("%f",p);printf("%f",*p);return0;}2.源程序完善、修改、替换(1)下面的源程序的功能是:通过函数指针和菜单选择来调用字符串拷贝函数或字符串连接函数。请在程序中的下划线处填写合适的表达式、语句或代码片段来完善该程序。#include#includeintmain(void){chara[80],b[80],c[160],*re
3、sult=c;intchoice,i;do{printf("tt1copystring.");printf("tt2connectstring.");printf("tt3exit.");printf("ttinputanumber(1-3)please!");scanf("%d",&choice);}while(choice<1
4、
5、choice>5);switch(choice){case1:p=strcpy;break;case2:p=strcat;break;case3:gotodowm;}getcha
6、r();printf("inputthefirststringplease!");i=0;printf("inputthesecondstringplease!");i=0;result=(a,b);printf("theresultis%s",result);dowm:;return0;}(1)请上机运行第(1)题程序,使之能按下面要求输出结果:1copystring.2connetstring.3exitinputanumber(1-2)please!2(输入)Inputthefirststringplease!themor
7、eyoulearn,(输入)inputthesecondstringplease!themoreyouget.(输入)theresultisthemoreyoulearn,themoreyouget.1.跟踪调试源程序请按下面的要求对所给的源程序进行操作,并回答问题和排除错误。(1)单步执行源程序。进入strcpy时,watches窗口中s为何值?返回main时,watches窗口中s为何值?(2)排除源程序中的错误,使程序输出结果为:thereisaboteonthelake.源程序3#includechar*strcp
8、y(char*,char*);intmain(void){chara[20],b[60]="thereisaboatonthelake.";printf("%s",strcpy(a,b));return0;}char*strcpy(char*s,char*t){while(*s++=*t++);return(s);}1.程序设计编写并上机调试运行能实现以下功能的程序或函数:(1)已知一个长整型变量占4个字节,其中每个字节又分成高4位和低4位。试编写一个程序,从该长整型变量的高字节开始,依次取出每个字节的高4位和低4位并以数字字符的形式记
9、性显示。(2)利用大小为n的指针数组指向用gets函数输入的n行,每行不超过80个字符。试编写一个函数,它将每一行中连续的多个空格字符压缩为一个空格字符。在调用函数中输出压缩空格后的各行,空行不予输出。(3)编写一个程序,输入n个整数,排序后输出。排序的原则由命令行可选参数-的-d决定,并且有参数-d时按递减顺序排序,否则按递增顺序排序。要求将排序算法定义成函数,利用指向函数的指针使该函数实现递增或递减排序。(4)设某个班有N个学生,每个学生修了M门课程。输入M门课程的名称,然后依次输入N个学生中每个学生所修M门课程的成绩,并且都存放到相应
10、的数组中。试编写下列函数:①计算每个学生各门课程平均成绩。②计算全班没门课程的平均成绩。③分别统计低于全班各门课程平均成绩的人数。④分别统计全班各门课程不及格的人数和90分以上的