- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言实验报告八
数学与软件科学学院 实验报告
学期:_2013_至_2014_ 第__1 学期 2013 年_12 月08 日
课程名称:程序设计基础教程-C语言 专业:数学与应用数学2012_级_1_班
实验编号: 08 实验项目__ 指针 _____
指导教师
姓名: 学号: 实验成绩: 良+
一、实验目的及要求
(1) 掌握C语言环境下指针的声明、定义和使用方法;
(2) 掌握指针和变量以及指针和数组的关系;
(3) 掌握指针、数组之间的关系;
(4) 掌握指针、函数之间的关系。
二、实验内容
1.熟悉指针的基本使用方法。
(1) 请仔细分析以下程序段,并上机测试运行结果,对测试结果进行分析说明。
1) 程序段一:
int main()
{
int i=3,j=6,k=9;
printf(“i=%d j=%d k=%d\n”,*(i),j,k);
return 0;
}
2) 程序段二:
int main(void)
{
int nA,*p;
float fB,*q;
p=nA;
q=fB;
scanf(“%d,%f”, p, q);
*p=nA*(*q);
printf(“nA is %d, p is %d and *p is %d\n”, nA, p,*p);
printf(“fB is %f, q is %d and *q is %d\n”, nA, q,*q);
printf(“p+1=%d q+1=%d\n”,p+1,q+1);
return 0;
}
3) 程序段三:
int main(void)
{
int nA,*p,**q,***r;
p=nA;q=p;r=q;
printf(“Please input nA::\n”);
scanf(“%d”,**r);
printf(The results are :”);
printf(“nA’ value is %d,%d,%d,%d\n”,nA,*p,**q,***r);
printf(“nA,p,q,r’s value is %d,%d,%d,%d\n”,nA,p,q,r);
return 0;
}
(2) 设计一个C语言程序,以测试以下表达式的运算顺序。
2. 想使指针变量pt1指向变量nA和nB中的大者,pt2指向其小者,以下程序能否实现此目的?为什么?如果不行,请给出实现的方法。
void swap(int *pt1,int *pt2)
{
int *p;
p=p1;p1=p2;p2=p;
}
int main(void)
{
int nA,nB;
int *pt1,*pt2;
scanf(“%d,%d”,nA,nB);
pt1=nA;pt2=nB;
if (nAnB) swap(pt1,pt2);
printf(“%d,%d\n”,*pt1,*pt2);
return 0;
}
3.请仔细分析教材例9-2、9-3、9-6~9-11,上机调试之。记录并分析程序运行结果。
4.请仔细分析并执行以下程序段,并给出输入数据下的运行结果:
int main(void)
{
int fun1();
int fun2();
int fun3();
int fun4();
int (*function[4])();
int nA=10,nB=5,i;
function[0]=fun1;
function[1]=fun2;
function[2]=fun3;
function[3]=fun4;
for (i=0;i4;i++)
printf(“fun No.%d-%d\n”,i+1,execute(nA,nB,function[i]));
return 0;
}
int execute(int nX,int nY,int *func()) {return ((*fun)(nX,nY));}
int fun1(int nX,int nY) {return (nX+nY);}
int fun2(int nX,int nY) {return (nX-nY);}
int fun3(int nX,int nY) {return (nX*nY);}
int fun4(int nX,int nY) {return (nX/nY);}
对如下main()函数,假设源程序名为list.c,则对编译连接后的list.exe程序,在DOS界面运行时输入命令行时,其执行结果是什么?为什么?
/*Second main() program*/
int main(int argc,char *argv[])
{
while
您可能关注的文档
最近下载
- 食材配送服务方案(食材通用方案).docx VIP
- TCECS1424-2023 健康照明设计标准.pdf VIP
- 2024年200MW-400MWh电化学储能电站可行性研究报告.docx
- 2024年中国球团市场调查研究报告.docx
- 正常人体解剖学期末复习资料 正常人体解剖学 模拟试卷(三).doc VIP
- 《装配式混凝土建筑构件生产》课件——设备选型与构件生产区布置.pptx VIP
- 《城镇污水厂MBR扩容提标原位改造技术规程》.pdf VIP
- 云河钢琴谱钢琴简谱数字谱钢琴双手简谱.docx VIP
- 食堂食材配送服务食材安全保证措施食材配送标准方案.pdf VIP
- SY∕T 5677-2019 钻井液用滤纸.pdf
文档评论(0)