实验六指针程序设计.docVIP

  • 30
  • 0
  • 约2千字
  • 约 3页
  • 2016-11-26 发布于重庆
  • 举报
实验六指针程序设计

实验六 指针 一、实验目的 1.理解指针的定义,学会指针变量的初始化以及指针可以参与的运算。 2.掌握指针和一维数组的关系。 3.理解指针和二维数组的关系、理解行指针(或数组指针)的概念。 4.理解指针数组和数组指针的区别。 5.理解指针和函数的关系以及指针函数和函数指针的含义。 6.了解指针的指针(即二级指针)。 二、实验内容 1.分析程序的执行结果。 #include string.h void main() { char str[][30]={Hello,Beijing},*p=str[0][0]; printf(%d\n,strlen(p+30)); } 程序运行后的输出结果是()。 A.0 B.5 C.7 D.20 2.若有定义:int *p[3]; ,则以下叙述中正确的是()。 A. 定义了一个基类型为int的指针变量p,该变量具有三个指针。 B. 定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针。 C. 定义了一个名为*p的整型数组,该数组含有三个int类型元素。 D. 定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素。 3.有以下程序段 void main( ) { 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)++; } 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;i5;i++) for(j=0;j5;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;i5;i++,j=(j+2)%5) *(*(p+i)+j)=1; for(i=0;i5;i++) { for(j=0;j5;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”}; printf(“%d\n”,strlen(p[4])); } 5.填空完成下列程序使得输出结果为: January February March April May June July August September October November December #include stdio.h void main() { char *month[12]= { “January “,”February “,”March”,” April”,” May “,”June”,” July”,” August”, “September”,” October “,”November”,” December”}; for( int i=0; i12;i++) puts ; } 6.编写程序。读入三个浮点数,将整数部分和小数部分分别输出。要求使用指针作形参。 7.编写一个函数,返回数组元素中最大值的地址,并在主函数中输出该元素。 #include stdio.h int* maxp(int a[], int len) {//此处编写函数代码 } void main() { int a[10]={23,43,45,231,44,456,33,26,55,78}, *p; p=maxp(a,10); printf(“%d\n”,*p); } 注:本次实验报告内容为实验内容的6,7.

文档评论(0)

1亿VIP精品文档

相关文档