C语言实验8 9实验答案,c语言实验报告实验八.docx

数学与软件科学学院实验报告

学期:_20门_ 至一2012 第一 学期20 11年11月10

课程名称:C语言程序设计 专业:_会计学 2008 级

_旦班

实验编号:_08_实验项目:—指针 指导教师:王开端

姓名: 学号: 2008080513 实验成

绩: —、实验目的:

掌握C语言环境下指针的声明、定义和使用方法;

掌握指针和变量以及指针和数组的关系;

掌握指针、数组之间的关系;

掌握指针、函数之间的关系。

二、实验内容:

1?熟悉指针的基本使用方法。

(1)请仔细分析以下程序段,并上机测试运行结果,对测试结果进行分析说 明。

程序段一:

main()

{

int i=3j=6,k=9; printf(ui=%d j=%d k=%d\n”,*(&i)jk);

}

程序段二:

main()

{

int a,*p;

float b,*q;

p=&a;

q 二&b;

scanf(“%d,%『,p, q);

*p=a*(*q);

printf(ua is %d, p is %d and *p is %d\n”,a9 p,*p); printf(ub is %f, q is %d and *q is %d\n”, a, q,*q); printf(up+l=%d q+l=%d\n”,p+l,q+l);

}

程序段三:

main()

int

p二&a;q二&p;r=&q;

printf(uPlease input a::\n,‘); scanf("%d”,**r);

printf(The results are :,,);

printf(ua, value is %d,%d,%d,%d\n,\a,*p,**q,***r); printf("a,p9q,r's value is %d,%d,%d,%d\nM,a,p,q,r);

}

(2)设计一个C程序,以测试以下表达式的运算顺序。

2.想使指针变量ptl指向变量a和b中的大者,pt2指向其小者,以下程序能 否实现此目的?为什么?如果不行,请给出实现的方法。

swap(int *ptl,int *pt2)

{

int *p;

p=pl;pl=p2;p2=p;

}

main()

{

int a,b;

int *ptl,*pt2;

scanf(“ %d,%d,',&a,&b);

ptl=&a;pt2= &b;

if (a

printf(“%d,%d\n”,*ptl,*pt2);

}

3?请仔细分析教材例6?8~6?9,上机调试之。记录并分析程序运行结果。

4?请仔细分析并执行以下程序段,并给出输入数据下的运行结果:

main()

{

int funl();

int fun2();

int fun3();

int fun4();

int (*function[4])();

int a=10,b=5,i;

function[0]=funl;

function[l]=fun2;

function[2]=fun3;

function[3]=fun4;

for (i=0;i<4;i++)

printf(ufun No.%d->%d\n,\i+l,execute(a,b,function[i]));

}

execute(int x,int y,int *func()) {return ((*fun)(x,y));}

funl(int x9int y) {return (x+y);}

fun2(int x9int y) {return (x-y);}

fun3(int x,int y) {return (x*y);}

fun4(int x,int y) {return (x/y);}

对如下main()函数,假设源程序名为list.c,则对编译连接后的list.txe程序, 在DOS界面运行时输入命令行时,其执行结果是什么?为什么?

/^Second main() program*/

main(int argc,char *argv[])

{

while (argc->l) printf(u%s\n9\*++argv);

}

三、实验准备:

编写所选实验题目的程序代码和流程图;

检查源程序并给出其可能的运行结果说明。

四、实验步骤及结果

实验步骤:

1?熟悉指针的基木使用方法。

编辑:

程序段一:

File Edit Run Compile Project Opt ions Debug Break/watch

Line 5 Col 40 Insert Indent Tab Fill Unindent * C:NONAME.C #include mai n()

C

pr i nt f ( *' i =Zcl j=Zd k=Zd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值