实验六 指针程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A.定义了一个基类型为int的指针变量p,该变量具有三个指针。
B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针。
C.定义了一个名为*p的整型数组,该数组含有三个int类型元素。
D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素。
3.有以下程序段
{ char *month[12]=
{“January“,”February“,”March”,”April”,”May“,”June”,”July”,”August”,
“September”,”October“,”November”,”December”};
for( int i=0; i<12;i++) puts;
voidmain()
{ int a=5,*b,**c;
c=&b; b=&a;
……
}
程序在执行了c=&b;b=&a;语句后,表达式:**c的值是()。
A.变量a的地址B.变量b中的值
C.变量a中的值D.变量b的地址
4.写出下面程序的输出结果,并运行验证。
(1)#include <stdio.h>
void inc(int c, int *d)
{ c++;
(*d)++;
}ຫໍສະໝຸດ Baidu
void main()
{ int a=1,b=1;
inc(c,&b);
printf(“%d,%d\n”,a,b);
}
(2)#include <stdio.h>
void main()
{ int a[5][5],*p,i,j;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
a[i][j]=i*10+j;
p=&a[0][0];
printf(“%d\n”,p[6]);
}
(3)#include <stdio.h>
void main()
{
int a[5][5]={0};i,j,(*p)[5]=a;
for(i=0,j=0;i<5;i++,j=(j+2)%5) *(*(p+i)+j)=1;
}
6.例题10.6,10.9。8.例题10.11,10.14,10.19,10.23。
7.编写程序。读入三个浮点数,将整数部分和小数部分分别输出。要求使用指针作形参。
8.编写一个函数,返回数组元素中最大值的地址,并在主函数中输出该元素。
#include <stdio.h>
int* maxp(int a[], int len)
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf(“%d\t”,a[i][j]);
printf(“\n”);
}
}
(4)#include <stdio.h>
#include <string.h>
void main( )
{ char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};
{//此处编写函数代码
}
void main()
{
int a[10]={23,43,45,231,44,456,33,26,55,78}, *p;
p=maxp(a,10);
printf(“%d\n”,*p);
}
注:本次实验报告内容为实验内容的7,8.
printf(“%d\n”,strlen(p[4]));
}
5.填空完成下列程序使得输出结果为:
JanuaryFebruary March April May June July August September October November December
#include <stdio.h>
void main()
实验六
一、实验目的
1.理解指针的定义,学会指针变量的初始化以及指针可以参与的运算。
2.掌握指针和一维数组的关系。
3.理解指针和二维数组的关系、理解行指针(或数组指针)的概念。
4.理解指针数组和数组指针的区别。
5.理解指针和函数的关系以及指针函数和函数指针的含义。
6.了解指针的指针(即二级指针)。
二、实验内容
1.分析程序的执行结果。
#include <string.h>
voidmain()
{char str[][30]={"Hello","Beijing"},*p=&str[0][0];
printf("%d\n",strlen(p+30));
}
程序运行后的输出结果是()。
A.0B.5C.7D.20
2.若有定义:int *p[3];,则以下叙述中正确的是()。
B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针。
C.定义了一个名为*p的整型数组,该数组含有三个int类型元素。
D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素。
3.有以下程序段
{ char *month[12]=
{“January“,”February“,”March”,”April”,”May“,”June”,”July”,”August”,
“September”,”October“,”November”,”December”};
for( int i=0; i<12;i++) puts;
voidmain()
{ int a=5,*b,**c;
c=&b; b=&a;
……
}
程序在执行了c=&b;b=&a;语句后,表达式:**c的值是()。
A.变量a的地址B.变量b中的值
C.变量a中的值D.变量b的地址
4.写出下面程序的输出结果,并运行验证。
(1)#include <stdio.h>
void inc(int c, int *d)
{ c++;
(*d)++;
}ຫໍສະໝຸດ Baidu
void main()
{ int a=1,b=1;
inc(c,&b);
printf(“%d,%d\n”,a,b);
}
(2)#include <stdio.h>
void main()
{ int a[5][5],*p,i,j;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
a[i][j]=i*10+j;
p=&a[0][0];
printf(“%d\n”,p[6]);
}
(3)#include <stdio.h>
void main()
{
int a[5][5]={0};i,j,(*p)[5]=a;
for(i=0,j=0;i<5;i++,j=(j+2)%5) *(*(p+i)+j)=1;
}
6.例题10.6,10.9。8.例题10.11,10.14,10.19,10.23。
7.编写程序。读入三个浮点数,将整数部分和小数部分分别输出。要求使用指针作形参。
8.编写一个函数,返回数组元素中最大值的地址,并在主函数中输出该元素。
#include <stdio.h>
int* maxp(int a[], int len)
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf(“%d\t”,a[i][j]);
printf(“\n”);
}
}
(4)#include <stdio.h>
#include <string.h>
void main( )
{ char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};
{//此处编写函数代码
}
void main()
{
int a[10]={23,43,45,231,44,456,33,26,55,78}, *p;
p=maxp(a,10);
printf(“%d\n”,*p);
}
注:本次实验报告内容为实验内容的7,8.
printf(“%d\n”,strlen(p[4]));
}
5.填空完成下列程序使得输出结果为:
JanuaryFebruary March April May June July August September October November December
#include <stdio.h>
void main()
实验六
一、实验目的
1.理解指针的定义,学会指针变量的初始化以及指针可以参与的运算。
2.掌握指针和一维数组的关系。
3.理解指针和二维数组的关系、理解行指针(或数组指针)的概念。
4.理解指针数组和数组指针的区别。
5.理解指针和函数的关系以及指针函数和函数指针的含义。
6.了解指针的指针(即二级指针)。
二、实验内容
1.分析程序的执行结果。
#include <string.h>
voidmain()
{char str[][30]={"Hello","Beijing"},*p=&str[0][0];
printf("%d\n",strlen(p+30));
}
程序运行后的输出结果是()。
A.0B.5C.7D.20
2.若有定义:int *p[3];,则以下叙述中正确的是()。