实验十 指针与数组(参考答案) 实验目的 掌握指向多维数组的指针变量、掌握指针数组及其使用,理解多级指针的概念 要点提示 1.数组名表示数组的地址,二维数组可以理解为几行几列的矩阵,由几个一维数组 组成。 2.指向m个数组成的一维数组的指针变量定义格式: 类型标识符 ()[m 例int()[4] 3.指针数组的定义格式 类型标识 *数组名[ 数组长度说明即: 例int*p[4: 4.指向指针的指针定义格式: 类型说明符**指针变量名: 例in *柳:这里D为二级指针,它所指向的是一个指向整数型数据的指针 5.Main函数可以有两个 即argc和arg形参。Argc是指命令行中参数的个数 agrv是指向字符串的指针数组。 实验内容 .多维数组的地址 2 指向一维数组的指针变量 指针数组的定义和使用 4.指向指针的指针的定义使用 5.指针字符数组处理多个字符串 6.指针数组作main函数的形参 实验步骤 读懂并输入程序,完成填空后输出结果。 实验1用指向数组元素的指针变量输出二维数组中a[][]元素的值。 main( Static inta3[4={1,3,5,7 9,1l,13,15, 17,19,21,23 int *p.ij: scanf("%d%d,&i,&j)方 print"a%d%d=%dn",id,【*(p+i*4+】方 程序运行结果:
实验十 指针与数组(参考答案) 实验目的 掌握指向多维数组的指针变量、掌握指针数组及其使用,理解多级指针的概念。 要点提示 1.数组名表示数组的首地址,二维数组可以理解为几行几列的矩阵,由几个一维数组 组成。 2.指向 m 个数组成的一维数组的指针变量定义格式: 类型标识符 (*p)[m]; 例 int (*p)[4]; 3.指针数组的定义格式: 类型标识 *数组名[ 数组长度说明]; 例 int *p[4]; 4. 指向指针的指针定义格式: 类型说明符 **指针变量名; 例 int **p; 这里 p 为二级指针,它所指向的是一个指向整数型数据的指针。 5.Main 函数可以有两个参数,即 argc 和 argv 形参。 Argc 是指命令行中参数的个数, agrv 是指向字符串的指针数组。 实验内容 1. 多维数组的地址 2. 指向一维数组的指针变量 3. 指针数组的定义和使用 4. 指向指针的指针的定义使用 5. 指针字符数组处理多个字符串 6. 指针数组作 main 函数的形参 实验步骤 读懂并输入程序,完成填空后输出结果。 实验 1 用指向数组元素的指针变量输出二维数组中 a[i][j]元素的值。 main() { static int a[3][4]={1, 3, 5, 7, 9, 11,13,15, 17,19,21,23}; int *p, i,j; p=a; printf("\nInput i and j (i<3,j<4):"); scanf("%d %d", &i,&j); printf("a[%d][%d]=%d\n",i,j,【*(p+i*4+j)】); } 程序运行结果:
Inputiand j(i<3.j<4):2 3 【a231-23】 实验2 main() {static int a314={1,3,5,7,9,11,13,15,17,19,21,23 int("p)[4].ij. p=a; scanf("%d,%d"). printf("af%d,%d-%dn",ij,*(【*(p+iy】)y 程序运行结果: Inputiandj(i<3.j<4):2 3 【a2]31-23】 实验3 main() int i, void average() 作函数说明/ static int score[3][4]={65.67,70,60;,{80,87,90,81,{90,99,100.,98; average(score,3)月 void average(p.n) 体n为学生人数/ int ("p)(4].n int i; float sum=0,aver, for (i=0:isn:it+) um+【((p+i)】 aver=【sumn】 printf("\naverage=%5.2fn"aver): 程序运行结果: average-【78.5】 实验4 main() static char*name7刀= ("Sunday","Monday","Tuesday","Wednesday"."Thursday""Friday","Saturday"): printf"nInput the number(-6)") scanf("%d",&n); if(n<7)&&(>-0) printf("InThe name is:%s",*(name+n)):/*[name[n)):*
Input i and j (i<3,j<4): 2 3 【a[2][3]=23 】 实验 2 main() { static int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int (*p)[4],i,j; p=a; scanf("%d, %d", &i,&j); printf("a[%d,%d]=%d\n",i,j,*(【*(p+i)+j 】)); } 程序运行结果: Input i and j (i<3,j<4): 2 3 【a[2][3]=23】 实验 3 main() { int i; void average(); /* 函数说明 */ static int score[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}}; average(score,3); } void average(p,n) /* n 为学生人数 */ int (*p)[4], n; { int i; float sum=0, aver; for (i=0; i<n; i++) sum=sum + 【*(*(p+i)) 】; aver=【 sum/n 】; printf("\naverage=%5.2f\n",aver); } 程序运行结果: average=【 78.5 】 实验 4 main() {static char *name[7]= {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}; int n; printf("\nInput the number(0-6):"); scanf("%d", &n); if ((n< 7) && (n>=0)) printf("\nThe name is: %s", *(name+n)); /*[name[【 n】]); */
printf("nInput error"). 程序运行结果: Input the number(0-6):1 the day is【Monday】 实验5 main( static char *name[="Sunday""Monday","Tuesday","Wednesday","Thursday""Friday","Saturday") char【**p】 intk p-str for(k=0:k<7:k++) printf("%sin".(p++)): 实验6 main(int argc,char *argv) while (arge>1) 【+4 printf("nHello%!argv) -argc;
else printf("\nInput error"); } 程序运行结果: Input the number(0-6): 1 the day is 【Monday 】 实验 5 main() { static char *name[ ]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}; char 【**p】; int k; p=str; for (k=0; k<7; k++) printf("%s\n", *(p++)); } 实验 6 main(int argc, char *argv[]) { while (argc>1) { 【 ++argv; 】 printf("\nHello %s!", *argv); -argc; }}