版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验十 指 针(一)一、实验目的1.掌握指针变量的定义与引用。2.掌握指针与变量、指针与数组的关系。3.掌握用数组指针作为函数参数的方法。4.掌握字符指针和字符串的使用。二、实验内容1阅读、调试、运行程序,比较阅读的结果和运行的结果。(1)#include<stdio.h>int b=2;int func(int *a) b+=*a; return(b); void main()int a=2,res=2;res+=func(&b);printf(”%dn”,res);(2)#include<stdio.h>void main() int a=28,b; cha
2、r s10,*p; p=s; do b=a%16; if(b<10) *p=b+48; else *p=b+55; p+; a=a/5; while(a>0); *p='0' puts(s);(3)#include<stdio.h>void main() int x5=2,4,6,8,10,*p; p=x; printf("%d,",*(p+);(4)#include<stdio.h>int sub(int *s);void main() int i,k; for(i=0;i<4;i+) k=sub(&i);
3、 printf("%2d",k); printf("n");int sub(int *s)static int t=0; t=*s+t; return t;(5)#include<stdio.h>void main() int va10,vb10,*pa,*pb,i; pa=va;pb=vb; for(i=0;i<3;i+,pa+,pb+) *pa=i;*pb=2*i; printf("%dt%dn",*pa,*pb); pa=&va0;pb=&vb0; for(i=0;i<3;i+) *pa=
4、*pa+i;*pb=*pb*i; printf("%dt%dn",*pa+,*pb+); (6)#include<stdio.h>void fun(int *a,int *b) int *k; k=a; a=b; b=k;void main() int a=3,b=6,*x=&a,*y=&b; fun(x,y); printf(”%d %d”,a,b);(7)#include<stdio.h>void main()int a=2,4,6,8,10;int y=1,x,*p;p=&a1;for(x=0;x<3;x+)y+=
5、*(p+x);printf("%dn",y);2. 完善程序,并调试运行(1)以下程序是先输入数据给数组a赋值,然后按照从a0到a4的顺序输出各元素的值,最后再按照从a4到a0的顺序输出各元素的值。请填空。#include<stdio.h>void main()int a5; int i,*p; p=a; for(i=0;i<5;i+) scanf("d",p+); (1) for(i=0;i<5;i+,p+) printf("%d",*p); printf("n"); (2) for(i=
6、4;i>=0;i-,p-) printf("%d",*p); printf("n");(2)下面程序的功能是将字符串 b复制到字符串 a中,请填空。#include<stdio.h>void s(char *s,char *t) int i=0; while( (1) ) (2) ; void main() char a20,b10; scanf("%s",b); s( (3) ); puts(a); (3)以下程序调用findmax函数求数组中最大的元素在数组中的下标,请填空。 #include<stdio.
7、h> void findmax(int *s, int t, int *k) int p; for(p=0,*k=p;p<t;p+) if(sp>s*k) (1) ; void main() int a10,i,k; for(i=0;i<10;i+) scanf("%d",&ai); findmax(a,10,&k); printf("%d,%dn",k,ak); (4)下面程序通过函数average 计算数组中各元素的平均值,请填空#include<stdio.h>float average (int
8、 *pa ,int n)int i; float avg=0.0; for (i=0;i<n;i+) avg=avg+ (1) ; avg= (2) ; return avg;void main()int a5=2,4,6,8,10; float meam; meam=average(a,5); printf("mean=%fn",meam);(5)下面程序的功能是:读入10个整数,输出其中的素数及这些素数之和。#include <stdio.h> int isprime(int x);void main() int i,a10,*p=a,sum=0; p
9、rintf("Enter 10 num :n"); for (i=0;i<10;i+)scanf("%d",&ai); for(i=0;i<10;i+) if (isprime(*(p+ (1) )=1) printf("%d",*(a+i); sum+=*(a+i); printf("n The sum =%dn",sum); int isprime(int x) int i; for(i=2;i<=x/2;i+) if(x%i=0) return(0); (2) ; (6) 以下程序的
10、功能是:将无符号八进制数字构成的字符串转换为十进制整数。例如, 输入的字符串为:556,则输出十进制数 366。请填空。 #include "stdio.h" void main() char *p,s6; int n; p=s; gets(p); n=*p-'0' while(_(1)_!='0') n=n*8+*p-'0' printf("%dn",n); 3. 修正程序,并调试运行(1)下面程序的功能是:在一个一维整型数组中找出其中最大的数及其下标。程序中共有4条错误语句,请改正错误。注意:不要增行或
11、删行,也不要更改程序的结构。#include<stdio.h>#define N 10/*found*/int fun(int *a,int *b,int *n);int *c,max=*a; for(c=a+1;c<a+n;c+) if(*c>max) max=*c; /*found*/b=c-a; return max;void main()int aN,i,max,p=0; printf("please enter 10 integers:n"); for(i=0;i<N;i+)/*found*/scanf("%d",
12、ai);/*found*/max=fun(a,p,N); printf("max=%d,position=%d",max,p);(2)下面程序的功能是:将一个字符串中第m个字符开始的全部字符复制成为另一个字符串。程序中共有4条错误语句,请改正错误。注意:不要增行或删行,也不要更改程序的结构。#include<stdio.h>void strcopy(char *str1,char *str2,int m)/*found*/ char p1,p2;int i,j;/*found*/p1= str1+m;p2=str2;/*found*/ while(p1); *p
13、2+=*p1+; *p2='0'void main()int i,m; char *p1,*p2,str180,str280;p1=str1;p2=str2;gets(p1); scanf("%d",&m);/*found*/strcopy(str10,str20,m); puts(p1);puts(p2);(3)下面程序的功能是:为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换;输出数组元素。程序中共有4条错误语句,请改正错误。注意:不要增行或删行,也不要更改程序的结构。#include<stdio.h>
14、;void main()int a10;void input();void output();void max_min();input(a,10);max_min(a,10);output(a,10);void input(int *arr,int n) int *p,i; p=arr; printf("please enter 10 integers:n"); for(i=0;i<n;i+)/*found*/scanf("%d",&p+);void max_min(int *arr,int n) int *min,*max,*p,t; min=max=arr; for(p=arr+1;p<arr+n;p+) if(*p>*max) /*found*/*max=*p; else if(*p<*min) min=p; t=*arr;*arr=*min;*min=t;/*foun
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 传媒工作室探班制度规范
- 孕产妇档案随访管理制度
- 上海人防档案管理制度
- 景区文件档案管理制度
- 幼儿园安全档案归档制度
- 档案管理制度实验室
- 办公室行为规范处罚制度
- 档案员kpi考核制度
- 2025年烟台科技学院单招职业适应性考试题库带答案解析
- 2026年内蒙古交通职业技术学院单招综合素质考试模拟测试卷带答案解析
- 进展性卒中课件
- 口腔客服接诊技巧
- 华为完整版本
- 心血管-肾脏-代谢综合征(CKM)综合管理中国专家共识2025解读课件
- 八年级英语下册集体备课教案:Unit 8 Have you read Treasure Island yet P1
- DB31-T 1433-2023 扬尘在线监测技术规范
- 加油站应急救援知识培训
- 安全生产标准化绩效考核评定报告
- 安徽永牧机械集团有限公司年产10000吨钢结构加工项目环境影响报告表
- 就业单位提前退休申请书
- QSY136-2023年生产作业现场应急物资配备选用指南
评论
0/150
提交评论