实验六.指针实验一
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六指针实验一
一. 实验目的
(1)掌握指针变量的定义、引用和运算
(2)掌握指针与变量、指针与数组的关系
二. 实验环境
Turbo C++ 3.0或Visual C++ 6.0
三. 实验预习
(1)、变量的指针就是变量的______。存放变量地址的变量是指针变量,它用来指向另一个变量。
(2)、指针变量的基类型用来指定该指针变量可以指向的__________。例如int *pointer_1,*pointer_2;定义的基类型为_____指针变量__________和__________。
(3)、指针变量全面的“*”表示该变量的类型为__________,在定义指针变量时必须指定__________。注意,只有整型变量的地址才能放到指向整型变量的指针变量中。
(4)、指针变量中只能存放地址(指针),不要将一个整数(或任何其他非地址类型的数据)赋给一个指针变量。其中,取地址运算符为_____,指针运算符(“间接访问”运算符)为_____,取其指向的内容。
四.上机实验
1、编辑运行下面程序,并分析运行结果。
有n个人围成一圈,从第一个人开始报数(从1到3报数),凡是报到3的人退出圈子,问最后留下的是原来第几号的那位。
#include
#define N 50
int main()
{
int i,k,m,n,num[N],*p;
printf("please input the total of numbers:");
scanf("%d",&n);
p=num;
for(i=0;i *(p+i)=i+1; /*从1到n为每个人编号*/ i=0; /*i为循环计数变量*/ k=0; /*k为报数计数变量*/ m=0; /*m为退出人数*/ while(m { if(*(p+i)!=0) k++; if(k= =3) { *(p+i)=0; /*对退出的人的编号置0*/ k=0; m++; } i++; if(i= =n) i=0; } while(*p= =0) p++; printf("%d is left\n",*p); return 0; } 运行结果(注意,按照屏幕输出格式写): 2、调试、补全程序 字符串连接程序,不使用系统提供的字符串连接函数,将第二个字符串连接至第一个字符串后。 #include #define M 80 int main( ) { char sub1[M],sub2[M]; char *ps1=sub1,*ps2=sub2; printf(“please input strings:\n”); printf(“string1:”); gets(ps1); printf(“string2:”); gets(__________); while(*ps1!=’\0’) ps1++; while(*ps2!=’\0’) __________=*ps2++; *ps1=’\0’; printf(“new string:”); puts(sub1); return 0; } 3、实验提高 编写下列程序: 设计一个二维数组存储学生的四门课程成绩,要求从键盘输入学生的学号,输出该学生的所有课程成绩。 五、实验小结 六、教师评语