当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

成都理工大学:《C++语言程序设计》实验五 指针

资源类别:文库,文档格式:PDF,文档页数:4,文件大小:118.41KB,团购合买
一、实验目的 指针是 C 语言中最为有用的数据类型之一。本实验是为了巩固理论课程所讲 的有关指针类型的概念,正确使用指针变量、指针数组、字符串指针和二级指针 (指向指针的指针),编写简捷、高效的程序,掌握指针的运算。
点击下载完整版文档(PDF)

实验五指针 、实验目的 指针是C语言中最为有用的数据类型之一。本实验是为了巩固理论课程所讲 的有关指针类型的概念,正确使用指针变量、指针数组、字符串指针和二级指针 (指向指针的指针),编写简捷、高效的程序,掌握指针的运算。 实验要求 1.深刻理解和区分普通变量和指针变量、地址的概念。 2.通过编程进一步理解和体会使用指针的优点:可以处理一批长度不确定 的数据或一批动态变化的数据,可以提高程序执行的效率。 3.正确使用指针变量、指针数组、字符串指针和二级指针编写程序。 4.掌握指针的基本运算。 5.怎样通过指针类型的变量去访问某个变量或数组元素的值。 编写 写实验报告(五) 三、实验内容 5-1通过程序S5-1C理解指针与数组的关系 源程序S5-1C maino i int a[5]* p,i for(i=0;i<5;i++) a0=i+1; for(i=0;i<5;i++) i printf("*p+%d=%dt", i, (p+i) printf("a[%d]=%dn", i,a[]); 写出程序运行的结果,并通过输出结果理解指针与数组的关系。 5-2完善程序S5-2C,使程序能从第一个字符串中删去任何在第二个字符串中 出现的字符。输入 abcdefg给sl,cde给s2,会输出什么结果? 源程序S5-2C maI { char sI[20],s2[20]*pl,*p2 scanf("%os%s",Sl, S2 );

1 实验五 指 针 一、实验目的 指针是 C 语言中最为有用的数据类型之一。本实验是为了巩固理论课程所讲 的有关指针类型的概念,正确使用指针变量、指针数组、字符串指针和二级指针 (指向指针的指针),编写简捷、高效的程序,掌握指针的运算。 二、实验要求 1. 深刻理解和区分普通变量和指针变量、地址的概念。 2. 通过编程进一步理解和体会使用指针的优点:可以处理一批长度不确定 的数据或一批动态变化的数据,可以提高程序执行的效率。 3. 正确使用指针变量、指针数组、字符串指针和二级指针编写程序。 4. 掌握指针的基本运算。 5. 怎样通过指针类型的变量去访问某个变量或数组元素的值。 6. 编写实验报告(五)。 三、实验内容 5-1 通过程序 S5-1.C 理解指针与数组的关系。 源程序 S5-1.C main() { int a[5],*p,i; for(i=0;i<5;i++) a[i]=i+1; p=a; for(i=0;i<5;i++) { printf("*[p+%d]=%d\t",i,*(p+i)); printf("a[%d]=%d\n",i,a[i]); } } 写出程序运行的结果,并通过输出结果理解指针与数组的关系。 5-2 完善程序 S5-2.C,使程序能从第一个字符串中删去任何在第二个字符串中 出现的字符。输入 abcdefg 给 s1,cde 给 s2,会输出什么结果? 源程序 S5-2.C main() { char s1[20],s2[20],*p1,*p2; int i; scanf("%s%s",s1,s2);

tf("n for(i=0;*(p1+i)l="VO;i++) strcpy (&sl[], &sli+1D); printf ("%s"sl) 5-3通过指针数组p和一维数组a构成一个3×2的二维数组,并为数组赋初值, 要求先按行的顺序输出二维数组,再按列的顺序输出二维数组。试完善程 序S5-3C。 源程序S5-3C n { Int 1,J, a[={2.4,6,.8,10,12},*p[3]; for(i=0;i*p2)p2 printf("MAX=%d, INDEX=%d\n" *p2 5-5有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡 报到3的人,退出圈子,问最后留下的是原来第几号的那位。试编程S5-5C, 并写出运行过程和结果

2 printf("\n"); for(i=0;*(p1+i)!= '\0';i++) { for(p2=s2;*(p2)!= ‘\0’;p2++) strcpy(&s1[i],&s1[i+1]); } printf ("%s",s1); } 5-3 通过指针数组 p 和一维数组 a 构成一个 3×2 的二维数组,并为数组赋初值, 要求先按行的顺序输出二维数组,再按列的顺序输出二维数组。试完善程 序 S5-3.C。 源程序 S5-3.C main() { int i,j,a[]={2,4,6,8,10,12},*p[3]; for(i=0;i*p2) p2= ; printf("MAX=%d,INDEX=%d\n",*p2, ); } 5-5 有 n 个人围成一圈,顺序排号。从第一个人开始报数(从 1 到 3 报数),凡 报到 3 的人,退出圈子,问最后留下的是原来第几号的那位。试编程 S5-5.C, 并写出运行过程和结果

5-6完善程序S5-6C,使其能按字典顺序对多个字符串排序。 源程序S5-6C #include #include <string i char *t 1,, n, char *s[]=(pascal","basic","fortran", turbo C j scanf("%d",&n) /*输入字符串的个数n*/ for(i=0;i<n-1;++) *用冒泡法排序* 〖指导〗 字符串的比较不能用相等运算符=”,只能用字符串比较函数 strumph;函 数 strcmpo的两个参数是两个地址值,因此可以用 strcmp(s[],S[进行比较 5-7调试程序S5-7C。该程序的功能是将数组ⅹ的元素倒序输出。例如,输入1 2345,则输岀为54321。改正错误,但不能改变程序的结构和删除整行。 源程序S5-7C #include<stdio h #define m 20 inti,x[M]n,m,*p,,亭 printf("\nEnter n: ) canf("%d", n) printf("nEnter array x[i](i=0-n): n"); for(i=0; i<n; i++ scanf("%d", x+i) printf("n") K-X EXt EXTm for( k<=p, k++j-) int t=*k printf("n The array inverted: n);

3 5-6 完善程序 S5-6.C,使其能按字典顺序对多个字符串排序。 源程序 S5-6.C #include #include main() { char *t; int i,j,n; char *s[ ]={"pascal", "basic","fortran","turbo C"}; scanf ("%d",&n); /* 输入字符串的个数 n */ for(i=0;i #define M 20 main() { int i,x[M],n, m, *p,*k,*j; printf("\nEnter n:"); scanf("%d",n); printf("\nEnter array x[i](i=0~n):\n"); for(i=0;i<n;i++) scanf("%d",x+i); printf("\n"); m=n/2; k=x; j=x+n; p=x+m; for(;k<=p;k++,j--) { int t=*k; k=j;*j=t; } printf("\nThe array inverted:\n");

for(i=0; i #include<ctype. h i char ch[80]c, printf("\nPlease input a string: " gets(ch) for(; *c; c++) d if(c=') k=0 *c=toupper( (c-D)); else printf("rEsult is: %s", ch); getcho *5-9编写程序S5-9C,模拟用户注册和登录的过程。将S4-11C改为用指 针实现

4 for(i=0;i #include main() { char ch[80],*c; int d,k=0; printf("\nPlease input a string:"); gets(ch); c=ch; for(;*c;c++) if(k) { if(c=' ') { k=0; *c=toupper(*(c-1)); } } else k=1; printf("\nResult is: %s",ch); getch(); } *5-9 编写程序 S5-9.C,模拟用户注册和登录的过程。将 S4-11.C 改为用指 针实现

点击下载完整版文档(PDF)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
已到末页,全文结束
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有