- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
PAGE #
C语言程序设计 实验报告
专业计算机科学与技术实验组别 学生姓名班级计算机0906班日期
专业计算机科学与技术
实验组别
学生姓名
第4次实验 指导教师
学号 同组人姓名
实验名称 指针实验
一、实验目的
?熟练掌握指针的说明、赋值、使用。
?掌握用指针引用数组的元素,熟悉指向数组的指针的使用。
3?熟练掌握字符数组与字符串的使用,掌握指针数组及字符指针数组的用法。
4?掌握指针函数与函数指针的用法。
5.掌握带有参数的 main函数的用法。
二、实验任务
1.源程序改错题
下面程序是否存在错误?如果存在, 原因是什么?如果存在错误, 要求在计算机上对这个例
子程序进行调试修改,使之能够正确执行。
#i nclude stdio.h
void mai n(void)
{
float *p;
sca nf(%f,p);
prin tf(%f\n,*p);
}
2 ?源程序完善、修改、替换题
(1 )下面的程序通过函数指针和菜单选择来调用字符串拷贝函数或字符串连接函数,请在 下划线处填写合适的表达式、语句、或代码片段来完善该程序。
(2)为了使程序不受 scanf、getchar、gets等函数输入后回车符的影响,请修改第( 1)题
程序,按要求输出下面结果: ((输入)表示该数据是键盘输入数据)
copy stri ng.
connect stri ng.
exit.
in put a nu mber (1-3) please!
(输入)
in put the first stri ng please!
the more you lear n, (输入)
in put the sec ond stri ng please!
the more you get. (输入)
the result is the more you lear n,the more you get.
?跟踪调试题
(1 )单步执行。进入 strcpy 时watch窗口中s为何值?返回 main时,watch 窗口中s为 何值?
(2 )排除错误,使程序输出结果为:
there is a boat on the lake.
(3)选做:由于 watch窗口中只显示s所指串的值,不显示 s中存储的地址值,怎样才能 观察到s值的变化呢?
?编程设计题
一个长整型变量占 4个字节,其中每个字节又分成高 4位和低4位。试从该长整型变
量的高字节开始,依次取出每个字节的高 4位和低4位并以数字字符的形式进行显示。
利用大小为n的指针数组指向用 gets函数输入的n行,每行不超过80个字符。编写 一个函数,它将每一行中连续的多个空格字符压缩为一个空格字符。 在调用函数中输出压缩 空格后的各行,空行不予输出。
设某个班有N个学生,每个学生修了 M门课程(用#define定义N、M。输入M门课程
的名称,然后依次输入 N个学生中每个学生所修的 M门课程的成绩并且都存放到相应
的数组中。编写下列函数:
计算每个学生各门课程平均成绩;
计算全班每门课程的平均成绩;
分别统计低于全班各门课程平均成绩的人数;
分别统计全班各门课程不及格的人数和 90分以上(含90分)的人数。
在调用函数中输出上面各函数的计算结果。 (要求都用指针操作,不得使用下标操作。 )
?选做题
设有N位整数和M位小数(N=20, M=10)的数据a,b。编程计算a+b并输出结果。
如:9.91 + 3210.09
编写使用复杂声明 char *(*p[2])(co nst char *,co nst char *); 的程序。
提示:p中元素可为 strcmp、strstr 等函数名。
三、实验步骤及结果
1.有错误。指针p未初始化,成为悬挂指针,改正如下:
#i nclude stdio.h
void mai n(void)
{
float a, *p=a;
scan f(%f,p);
prin tf(%f\t%p\n,*p,p);
56
56.000000
FFC2
2 ?
#in clude stdio.h
#i nclude stri ng.h
void mai n(void)
{
char *(*p)(char *,c onst char *);
char a[80],b[80],c[160],*result=c;
int choice;
do{
prin tf(\t\t1 copy stri ng.\n ”);
prin tf(\t\t2 connect stri ng.\n ”);
prin tf(\t\t3 exit.n);
prin tf(\t\t in put a number (1-3) please!\n); scan f(%d,
原创力文档


文档评论(0)