如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
实验十一C指针的操作目的要求:掌握指针的概念,会定义和使用指针变量。初步学会使用数组的指针和指向数组的指针变量。初步学会使用字符串的指针和指向字符串的指针变量。实验内容:1.用指针方法,编写一个函数,求矩阵主对角线元素之和Sum。#include<stdio.h>#defineN4fun(int(*a)[N],int*b);main(){intx[N][N]={{22,45,56,30},{17,25,67,34},{24,46,68,63},{13,34,56,78}},y[N],i,j,sum=0;printf("原始数据:\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%4d",x[i][j]);printf("\n");}printf("sum=%3d\n",fun(x,y));}fun(int(*a)[N],intmin){inti,j,sum=0;for(i=0;i<N;i++){for(j=0;j<N;j++)if(i==j)sum+=a[i][j];}returnsum;}2.编一个程序,输入15个整数存入一维数组,按逆序存放后再输出(用指针完成)。#include<stdio.h>main(){intt,a[15],*p1,*p2;printf("输入\n");for(p1=a;p1<a+15;p1++)scanf("%d",p1);for(p1=a,p2=a+14;p1<p2;p1++,p2--)t=*p1,*p1=*p2,*p2=t;for(p1=a;p1<a+15;p1++)printf("%d",*p1);printf("\n");}3.输入一个3×6的二维整型数组,输出其中最大值、最小值以及它们所在行和列的下标(用指针完成)。#include<stdio.h>main(){inti,j,a[3][6],*p=*a,min,max,xb0_h,xb0_l,xb1_h,xb1_l;for(i=0;i<3;i++)for(j=0;j<6;j++){scanf("%d",p);if(i==0&&j==0){max=*p;min=*p;xb0_h=0;xb0_l=0;xb1_h=0;xb1_l=0;}if(max<*p){max=*p;xb1_h=i;xb1_l=j;}if(min>*p){min=*p;xb0_h=i;xb0_l=j;}p++;}printf("最大值为:%d,行标:%d,列标:%d\n",max,xb1_h,xb1_l);printf("最小值为:%d,行标:%d,列标:%d\n",min,xb0_h,xb0_l);}4.用指针编写程序实现:输入一个字符串,计算该字符串的长度,并统计该串中含小写字母、大写字母和其他字符的个数。#include<stdio.h>main(){chara[100],*p=a;intx=0,y=0,z=0,n=0;gets(a);while(*p!='\0'){if(*p>='a'&&*p<='z')x++;elseif(*p>='A'&&*p<='Z')y++;elsez++;p++;n++;}printf("小写=%d,大写=%d,其他=%d,长度=%d\n",x,y,z,n);}5.用指针编写程序完成,将字符串a赋给一个字符数组,然后从第一个字母开始间隔地输出该串。(如输入的是abcdefghijkl,输出为acegik)#include<stdio.h>#include<string.h>main(){chara[100],b[100],*p=a,*q=b;inti=0;gets(a);i=strlen(a);while(p<a+i){*q=*p;p=p+2;q++;}*q='\0';puts(b);}6.编写一个指针型函数,从键盘接收一个1~7之间的整数,根据指定的数字,返回与该数字相对应的是星期几。例如数字6则返回Saturday。(此题为选做)#include<stdio.h>char*week(intn){staticchar*name[]={"0","mon","thu","wen","thr","fri","sta","sun"};if(n>=1&&n<=7)returnname[n];}intmain(){inti;scanf("%d",&i);printf("%s\n",week(i));return1;}7