C语言实验八指针程序设计答案 下载本文

内容发布更新时间 : 2024/5/21 17:34:54星期一 下面是文章的全部内容请认真阅读。

实验八 指针的应用

一、实验目的

1.掌握指针变量的定义和引用。 2.掌握指针与变量的程序设计方法 3.掌握指针与数组的程序设计方法 4.掌握指针与字符串的程序设计方法 5.掌握指针与函数的程序设计方法 二、实验内容

1.[目的]访问变量的地址。

[题目内容] 已知,char a;int x;float p,q; 而且a=’A’;x=125;p=10.25;q=18.75;编写程序显示变量a,x,p,q的值及其地址。 [输入] 无

[输出] 变量a,x,p,q的值及其地址

[提示] 使用运算符&,地址输出采用%u格式(因为内存地址是无符号的整数)。

#include void main() {

char a;int x;float p,q;

a='A';x=125;p=10.25;q=18.75;

printf(\ printf(\ printf(\ printf(\}

A is stored at addr 1245052. 125 is stored at addr 1245048.

10.250000 is stored at addr 1245044. 18.750000 is stored at addr 1245040. Press any key to continue

2.[目的]通过指针访问变量。

[题目内容] 已知,int x,y;int *ptr; 而且x=10;ptr=&x;y=*ptr;,运行下列程序,使用运算符*来访问指针所指的值。 [输入] 无

[输出] x,&x、*&x,&x、*ptr,ptr、y,&*ptr、ptr,&ptr、y,&y。 [提示] 地址输出采用%u格式

#include void main() {

int x,y; int *ptr; x=10; ptr=&x; y=*ptr;

printf(\ printf(\ printf(\ printf(\ printf(\ printf(\ *ptr=25;

printf(\}

3.[目的]练习指针表达式。

[题目内容] 已知,int x,y,a,b;int *ptr1,*ptr2; 而且x=12;y=4;ptr=&x;ptr2=&y;,编写程序,当执行表达式:a=*ptr1**ptr2-6;以及: b=(4*(-*ptr2))/(*ptr1)+10;后,各变量的值分别为多少? [输入] 无

[输出] 各变量的值。

[提示] 地址输出采用%u格式 #include void main() {

int x,y,a,b;

int *ptr1,*ptr2; x=12;y=4; ptr1=&x; ptr2=&y;

a=*ptr1**ptr2-6;

b=(4*(-*ptr2))/(*ptr1)+10;

printf(\ printf(\

printf(\ printf(\ printf(\ \\n\ printf(\ \\n\ }

4.[目的]指针与数组

[题目内容] 已知,int *p,sum,i; int x[5]={5,9,6,3,7};,编写程序,使用指针来计算数组中所有元素的总和。 [输入] 无 [输出]

Element Value Address

x[0] 5 1245024 x[1] 9 1245028 x[2] 6 1245032 x[3] 3 1245036 x[4] 7 1245040 sum=30

[提示] 关键语句:sum=sum+*p;以及p++; #include void main() {

int *p,sum=0,i;

int x[5]={5,9,6,3,7}; p=x;

printf(\ Value Address\\n\\n\ for(i=0;i<5;i++) {

printf(\ %d %u\\n\