上海电力大学c语言评分标准,上海电力学院c语言报告:实验8 指针.doc

这篇博客详细分析了C语言实验中关于指针的常见错误,包括指针变量的初始化、字符串和数组指针的使用、条件判断的语法错误以及指针运算的正确性。通过程序示例,博主展示了如何调试和修正这些错误,以达到正确的程序运行效果。此外,还提出了指针在比较和赋值操作中的注意事项,并设计了涉及指针运算的练习题,以加深对指针的理解。
摘要由CSDN通过智能技术生成

上海电力学院c语言报告:实验8 指针

上海电力学院

实验报告

课程名称 C语言程序设计 实验名称 实验8 指针

姓名 蔡福瑞 学号 班级 2010027

专业 电气工程及其自动化(供用电技术方向)

同组人姓名 蔡福瑞、黄任凭、龚奕磊、傅庆燕、程旭

指导老师姓名 魏为民 实验日期 2010-12-27

一、实验目的

1、通过实验进一步掌握指标的概念,会定义和使用指针变量。

2、能正确使用数组的指针和指向数组的指针变量。

3、能正确使用字符串的指针和指向字符串的指针变量。

二、实验内容和步骤

1、改错

(1)指出下面程序错误的原因.

main()

{

int x=10,y=5,*px ,*py;

px=py;

px=&x’;

printf (“*px=%d, *py=%d, *px ,*py);

}

图(8-1)

该程序运行的整个过程如图(8-2)所示。

错误的原因:printf(”*px=%d,*py=%d, *px, *py);该行此处少了个引号。

修改后,运行结果如图(8-3)所示:

图(8-2)

图(8-3)

(2)下面的程序试图有如下运行结果:

Which style you want to:

Capital (c) or uncapital (a):c ↙

COMPUTER

Which style you want to:

Capital (c) or uncapital(a):u ↙图(8-4)

请调试下面的程序,使其有如上执行结果.

#include

main()

{ char s*;

char c;

printf(“which style you want to :ln”);

printf(“capital(c) or uncapital(a):”);

c=getchar();

if(c=’c’) strcpy(s,”COMPUTER”);

else strcpy(s,”computer”);

put(s)

}

图(8-5)

该程序运行的整个过程如图(8-6)所示。

错误的原因:缺少库函数;指针格式错误; 回车的控制符为 \n ; ‘=’为赋值运算符,‘=='才是关系运算符;put只能输出一个字符,puts才能输出字符串。

修改后,运行结果如图(8-7)所示:

图(8-6)

图(8-7)

(3)下面的程序能获得上述运行结果吗?

main()

{

char *S=”COMPUTER”;

char c;

printf(“which style you want to \n”);

printf(“capital(c) or uncapital(U):”);

c=getchar();

if(c=’c’)

put(s);

else

{ s=”computer”;

puts(s);

}

}

图(8-8)

该程序运行的整个过程如图(8-9)所示。

错误的原因:①if(’c=c’)中‘=’为赋值运算符,‘=='才是关系运算符;②put语句只能输出一个字符,puts语句才能输出字符串。

修改后,运行结果如图(8-10)所示:

图(8-9)

图(8-10)

(4)设计一个C程序,用以测试下列各表达式的运算。

1)y=*px++; 2)y=*++py 3)y=(*py)++ 4)y=--*ppx++

图(8-11)

图(8-12)

(5)想使指针变量pt1指向a 和b中的大者,pt2指向小者,一下程序能否实现此目的。

swap(int *p1,int *p2)

{

int *p;

p=p1;p1=p2;p2=p;

}

main()

{ int a,b;

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

pt1=&a;pt2=&b;

if(a

ptintf(“%d,%d\n”,*pt1,pt2);

图(8-14)

图(8-15)

二、程序填空:

(1)一位数组和指针。分别采用下标法,数组名法和指针发访问数组元素,求出10个数中的最大值。

下标法:如图(8-16)

#include

void main()

{ int a[10],i,max;

for(___________)

scanf(“%d”,______________);

for ( __________

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值