任务35:指针数组、数组指针、指向指针的指针 《编程语言-C语言》45分钟专题训练

| 2份
| 26页
| 90人阅读
| 1人下载

内容正文:

湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。 《编程语言—C语言》 项目七: 指针 第35卷: 指针数组、数组指针、指向指针的指针 时间:45分钟 总分:100分 班级___________ 姓名__________ 学号__________ 成绩________ 一、选择题(共23小题,每小题2分,共46分) 1.若有说明语句:int *ptr[10];则以下叙述中,正确的一项是( ) A.ptr是一个具有10个指针元素的一维数组,每个元素都只能指向整型变量 B.ptr是指向整型变量的指针 C.ptr是一个指向具有10个整型元素的一维数组的指针 D.ptr是一个指向10个整型变量的函数指针 2.执行以下程序段的输出结果是( ) main() {int **pp,*p,a=10,b=20; pp=&p; p=&a; p=&b; printf("%d,%d ",*p,**pp);getch();} A.10,20 B.10,10 C.20,20 D.20,10 3.设有定义:int t[3][2],*pt[3],k;,则执行语句for(k=0;k<3;k++) pt[k]=t[k];后,下列选项中能正确表示t数组元素地址的表达式是( ) A.&t[3][2] B.*pt[2] C.*(pt+1) D.&pt[2] 4.以下程序段的输出结果是( ) main() {int a[ ]={0,2,4,6,8,10,12,14,16,18,20,22,24,26},*q[4],k; for(k=0;k<4;k++)q[k]=&a[k*3]; printf("%d ",q[3][0]);getch();} A.16 B.18 C.20 D.22 5.设有定义:int w[3][4]={{0,1},{2,4},{5,8}};int (*p)[4]=w;则以下选项中,数值为4的表达式是( ) A.*w[1]+1 B.p++,*(p+1) C.w[2][2] D.p[1][1] 6.设有定义:int s[4][6],t[6][4],(*p)[6];要求0<=i<=6,则下列选项中,正确的赋值语句是( ) A.p=t; B.p=s; C.p=s[i]; D.p=t[i]; 7.设有定义和语句:int *p[3],a[6],n;for(m=0;m<3;m++) p[m]=&a[2*m];则*(p[1]+1)引用的是a数组元素( ) A.a[0] B.a[1] C.a[2] D.a[3] 8.设有定义和语句:int a[2][3]={0},(*p)[3];p=a;则p+1表示( ) A.a[1]的起始地址 B.a[0]的起始地址 C.a[0][1]的元素地址 D.a[1][2]的元素地址 9.设有定义:char *name[ ]={ "JAME","XML","C++"};,则语句:printf("%s ",name[2]);的输出结果是( ) A.JAME B.XML C.C++ D.不定值 10.设有定义:int *p[5],则下列选项中,与其等价的是( ) A.int p[5]; B.int *p; C.int *(p[5]) D.int (*p)[5] 11.设有定义:int (*p)[4];,则下列说法中,正确的一项是( ) A.定义语句非法 B.p是一个指针数组,每个元素是一个指向整型变量的指针变量 C.p是一个行指针变量,可以将每行具有4个整型元素的二位数组名赋给它 D.p是一个指向整型变量的指针变量 12.设有定义和语句:int a[2][3],(*pa)[3],x;pa=a;,则下列选项中,对数组元素的引用中,不正确的一项是( ) A.x=*(a[0]+2); B.x=*pa[2]; C.x=pa[0][0]; D.x=*(pa[1]+2); 13.以下程序段的输出结果是( ) main( ) { char *str[ ]={"Pascal","C language","Dbase","Cobol"}; char **p;int k; p=str; printf("%s ",*(p++));getch();} A.C language B.Dbase C.Cobol D.Pascal 14.执行以下程序段的输出结果是( ) main( ) {char * a[ ]={"Pascal","C language","dBase","Coble"}; char **p;int j;p=a+3; printf("%s ",*(p--));getch();} A.C language B.Dbase C.Cobol D.Pascal 15.下列选项中,有语法错误的是( ) A.char *str[ ]={ "girl!"}; B.char str[ ][10]={ "girl!"}; C.char *str[3];str[1]= "girl!"; D.char str[3][10];str[1]= "girl!"; 16.设有定义:char *ps[ ]={ "aa","bb","cc","dd"};,则下列选项中的叙述正确的一项是( ) A.ps[0]是字符串"aa" B.*ps[0]是字符串"aa"的首地址 C.ps[0]是字符串"aa"的首地址 D.*ps[0]是字符串"aa" 17.设有定义和语句:char str[4][12]={ "aa","bbb","cccc","dd"},*strp[4]; int i;for(i=0;i<4;i++) strp[i]=str[i];,则下列选项中不能正确引用字符串的是( ) A.*strp B.str[0] C.strp[3] D.strp 18.设有定义和语句:int x[3][4],(*p)[4];p=a;,则与表达式*(*p+2)等价的选项是( ) A.a[0][2] B.*(a+2)[0] C.(*a+2)[0] D.a[2][0] 19.执行以下程序段的输出结果是( ) main( ) {int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23},(*p)[4]=a,i,j,k=0; for(i=0;i<3;i++) for(j=0;j<2;j++) k=k+=*(*(p+i)+j); printf("%d",k);getch();} A.60 B.68 C.100 D.108 20.执行以下程序段的输出结果是( ) main( ) {int x[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*p)[4]=x,k=1,m,n=0; for(m=0;m<2;m++) n+=*(*(p+m)+k); printf("%d",n);getch();} A.8 B.12 C.7 D.10 21.执行以下程序段的输出结果是( ) main( ) {int s[3][2]={1,2,3,4,5,6},*ps[3],k; for(k=0;k<3;k++) {ps[k]=s[k]; printf("%d",*(ps[k]+1));}getch();} A.123 B.135 C.246 D.456 22.执行以下程序段的输出结果是( ) main( ) {char *mm[4]={"abcd","1234","ghxy","4567"}; char **pm=mm; int i; for(i=0;i<4;i++) printf("%s",pm[i]+i);getch();} A.abcd1234ghxy4567 B.a1g4 C.a2x7 D.abcd234xy7 23.执行以下程序段的输出结果是( ) main( ) {char *a[ ]={"abcd","ef","ghi","jklmn"}; int i; for(i=0;i<4;i++) printf("%c",*a[i]);getch();} A.aegi B.dfhk C.abcd D.abcdefghijklmn 二、程序运行结果题(本题共7小题,每题3分,共21分) 24.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main( ) {char *str[ ]={"ENGLISH","MATH","MUSIC","PHYSICS","CHEMISTRY"}; char **q; int num; q=str; for(num=1;num<5;num+=2) printf("%s ",*(q++)); getch();} 25.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> void fut(int **s,int p[2][3]) {**s=*(*(p+1)+1);} main( ) {int a[2][3]={1,3,5,7,9,11},*p,x; p=&x; fut(&p,a); printf("%d ",*p); getch();} 26.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> #define N 6 void YH(int (*x)[N]) {int i,j; (*x)[0]=1; for(i=1;i<N;i++) {(*(x+i))[0]=(*(x+i))[i]=1; for(j=1;j<i;j++) (*(x+i))[j]=(*(x+i-1))[j-1]+(*(x+i-1))[j];}} main( ) { int x[N][N],i,j; YH(x); for(i=0;i<N;i++) { for(j=0;j<=i;j++) printf("%4d",x[i][j]); printf(" ");}getch();} 27.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main( ) {int b[3][2]={2,4,6,8,10,12}; int *a[2][3],**q,k,i,j; for(i=0;i<2;i++) for(j=0;j<3;j++) a[i][j]=*(b+j)+i; q=a[0]; for(k=0;k<6;k++) { printf("%d ",**q); q++;}getch();} 28.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main( ) {int b[6]={1,3,5,7,9,11},*a[6]; int **q,k; for(k=0;k<6;k++) a[k]=&b[k]; q=&a[0]; for(k=0;k<6;k++) { printf("%4d",**q);q++;}getch();} 29.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main( ) {char *b[ ]={"English","Physics","Maths","Pascal","Chemistry","End","Error"}; int num=2; if (num>=0&&num<=9) if(num>=1&&num<=5) printf ("The chosen class is:%s. ",b[num-1]); else printf ("No class is chosen.%s!! ",b[5]); else printf("Your input is:%s !! ",b[6]);getch();} 30.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> void amov(int *p,int (*a)[3],int n) { int i,j,s=0; for(i=0;i<n;i++) for(j=0;j<n;j++) { *p=(*(a+i))[j];s=s+*p;p++;} printf("s=%d",s);} main( ) { int*p,a[3][3]={{1,3,5},{2,4,6}}; p=&a[0][0]; amov(p,a,3);getch();} 三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。每处3分,共9分) 31.下列程序的功能是:在主函数中输入10个不等长的字符串,用另一函数对它们进行排序,然后在主函数中输出这10个已经排好序的字符串。程序中有三处错误,请改正。 #include <stdio.h> #include<conio.h> L1 main() L2 {void sort(char *[ ]); L3 int i; L4 char p[10],str[10][20]; L5 for(i=0;i<10;i++) L6 p[i]=str[i]; L7 printf("input 10 strings: "); L8 for(i=0;i<10;i++) L9 scanf("%s",p[i]); L10 sort(p); L11 printf("Now,the sequence is: "); L12 for(i=0;i<10;i++) L13 printf("%s ",p[i]); L14 getch();} L15 void sort(char *s[ ]) L16 {int i,j; L17 char temp; L18 for(i=0;i<9;i++) L19 for(j=0;j<9-i;j++) L20 if(strcmp(*(s+j),(s+j+1))>0) L21 {temp=*(s+j); L22 *(s+j)=*(s+j+1); L23 *(s+j+1)=temp;}} 四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分) 32.下列程序的功能是:对5个字符串排序并输出。请填空。 #include <stdio.h> #include<conio.h> #include<string.h> #define MAX 20 main() {void sort(char **p); int i; char **p,*pstr[5],str[5][MAX]; for(i=0;i<5;i++) 【1】; printf("input 5 strings: "); for(i=0;i<5;i++) scanf("%s",pstr[i]); p=【2】; sort(p); printf(" strings sorted: "); for(i=0;i<5;i++) printf("%s ",pstr[i]); getch();} void sort(char **p) {int i,j; char *temp; for(i=0;i<5;i++) {for(j=i+1;j<5;j++) {if(strcmp(*(p+i),【3】)>0) {【4】; *(p+i)=*(p+j); *(p+j)=temp;}}}} 33.下列程序的功能是:对n个整数排序并输出。请填空。 #include <stdio.h> #include<conio.h> main() {void sort(int **p,int n); int i,n,data[20],**p,*pstr[20]; printf("input n: "); scanf("%d",&n); for(i=0;i<n;i++) pstr[i]=【1】; printf("input %d integer number: ",n); for(i=0;i<n;i++) scanf("%d",pstr[i]); p=pstr; sort(p,n); printf("Now,the sequence is: "); for(i=0;i<n;i++) printf("%d ",【2】); printf(" "); getch();} void sort(int **p,int n) {int i,j,*temp; for(i=0;i<【3】;i++) {for(j=i+1;j<n;j++) {if(【4】) {temp=*(p+i); *(p+i)=*(p+j); *(p+j)=temp;}}}} 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$ 湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。 《编程语言—C语言》 项目七: 指针 第35卷: 指针数组、数组指针、指向指针的指针 时间:45分钟 总分:100分 班级___________ 姓名__________ 学号__________ 成绩________ 一、选择题(共23小题,每小题2分,共46分) 1.若有说明语句:int *ptr[10];则以下叙述中,正确的一项是( ) A.ptr是一个具有10个指针元素的一维数组,每个元素都只能指向整型变量 B.ptr是指向整型变量的指针 C.ptr是一个指向具有10个整型元素的一维数组的指针 D.ptr是一个指向10个整型变量的函数指针 【答案】A 2.执行以下程序段的输出结果是( ) main() {int **pp,*p,a=10,b=20; pp=&p; p=&a; p=&b; printf("%d,%d ",*p,**pp);getch();} A.10,20 B.10,10 C.20,20 D.20,10 【答案】C 3.设有定义:int t[3][2],*pt[3],k;,则执行语句for(k=0;k<3;k++) pt[k]=t[k];后,下列选项中能正确表示t数组元素地址的表达式是( ) A.&t[3][2] B.*pt[2] C.*(pt+1) D.&pt[2] 【答案】C 4.以下程序段的输出结果是( ) main() {int a[ ]={0,2,4,6,8,10,12,14,16,18,20,22,24,26},*q[4],k; for(k=0;k<4;k++)q[k]=&a[k*3]; printf("%d ",q[3][0]);getch();} A.16 B.18 C.20 D.22 【答案】B 5.设有定义:int w[3][4]={{0,1},{2,4},{5,8}};int (*p)[4]=w;则以下选项中,数值为4的表达式是( ) A.*w[1]+1 B.p++,*(p+1) C.w[2][2] D.p[1][1] 【答案】D 6.设有定义:int s[4][6],t[6][4],(*p)[6];要求0<=i<=6,则下列选项中,正确的赋值语句是( ) A.p=t; B.p=s; C.p=s[i]; D.p=t[i]; 【答案】B 7.设有定义和语句:int *p[3],a[6],n;for(m=0;m<3;m++) p[m]=&a[2*m];则*(p[1]+1)引用的是a数组元素( ) A.a[0] B.a[1] C.a[2] D.a[3] 【答案】D 8.设有定义和语句:int a[2][3]={0},(*p)[3];p=a;则p+1表示( ) A.a[1]的起始地址 B.a[0]的起始地址 C.a[0][1]的元素地址 D.a[1][2]的元素地址 【答案】A 9.设有定义:char *name[ ]={ "JAME","XML","C++"};,则语句:printf("%s ",name[2]);的输出结果是( ) A.JAME B.XML C.C++ D.不定值 【答案】C 10.设有定义:int *p[5],则下列选项中,与其等价的是( ) A.int p[5]; B.int *p; C.int *(p[5]) D.int (*p)[5] 【答案】C 11.设有定义:int (*p)[4];,则下列说法中,正确的一项是( ) A.定义语句非法 B.p是一个指针数组,每个元素是一个指向整型变量的指针变量 C.p是一个行指针变量,可以将每行具有4个整型元素的二位数组名赋给它 D.p是一个指向整型变量的指针变量 【答案】C 12.设有定义和语句:int a[2][3],(*pa)[3],x;pa=a;,则下列选项中,对数组元素的引用中,不正确的一项是( ) A.x=*(a[0]+2); B.x=*pa[2]; C.x=pa[0][0]; D.x=*(pa[1]+2); 【答案】B 13.以下程序段的输出结果是( ) main( ) { char *str[ ]={"Pascal","C language","Dbase","Cobol"}; char **p;int k; p=str; printf("%s ",*(p++));getch();} A.C language B.Dbase C.Cobol D.Pascal 【答案】D 14.执行以下程序段的输出结果是( ) main( ) {char * a[ ]={"Pascal","C language","dBase","Coble"}; char **p;int j;p=a+3; printf("%s ",*(p--));getch();} A.C language B.Dbase C.Cobol D.Pascal 【答案】C 15.下列选项中,有语法错误的是( ) A.char *str[ ]={ "girl!"}; B.char str[ ][10]={ "girl!"}; C.char *str[3];str[1]= "girl!"; D.char str[3][10];str[1]= "girl!"; 【答案】D。不能对地址常量赋值。 16.设有定义:char *ps[ ]={ "aa","bb","cc","dd"};,则下列选项中的叙述正确的一项是( ) A.ps[0]是字符串"aa" B.*ps[0]是字符串"aa"的首地址 C.ps[0]是字符串"aa"的首地址 D.*ps[0]是字符串"aa" 【答案】C 17.设有定义和语句:char str[4][12]={ "aa","bbb","cccc","dd"},*strp[4]; int i;for(i=0;i<4;i++) strp[i]=str[i];,则下列选项中不能正确引用字符串的是( ) A.*strp B.str[0] C.strp[3] D.strp 【答案】D 18.设有定义和语句:int x[3][4],(*p)[4];p=a;,则与表达式*(*p+2)等价的选项是( ) A.a[0][2] B.*(a+2)[0] C.(*a+2)[0] D.a[2][0] 【答案】A 19.执行以下程序段的输出结果是( ) main( ) {int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23},(*p)[4]=a,i,j,k=0; for(i=0;i<3;i++) for(j=0;j<2;j++) k=k+=*(*(p+i)+j); printf("%d",k);getch();} A.60 B.68 C.100 D.108 【答案】A 20.执行以下程序段的输出结果是( ) main( ) {int x[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*p)[4]=x,k=1,m,n=0; for(m=0;m<2;m++) n+=*(*(p+m)+k); printf("%d",n);getch();} A.8 B.12 C.7 D.10 【答案】A 21.执行以下程序段的输出结果是( ) main( ) {int s[3][2]={1,2,3,4,5,6},*ps[3],k; for(k=0;k<3;k++) {ps[k]=s[k]; printf("%d",*(ps[k]+1));}getch();} A.123 B.135 C.246 D.456 【答案】C 22.执行以下程序段的输出结果是( ) main( ) {char *mm[4]={"abcd","1234","ghxy","4567"}; char **pm=mm; int i; for(i=0;i<4;i++) printf("%s",pm[i]+i);getch();} A.abcd1234ghxy4567 B.a1g4 C.a2x7 D.abcd234xy7 【答案】D 23.执行以下程序段的输出结果是( ) main( ) {char *a[ ]={"abcd","ef","ghi","jklmn"}; int i; for(i=0;i<4;i++) printf("%c",*a[i]);getch();} A.aegi B.dfhk C.abcd D.abcdefghijklmn 【答案】A 二、程序运行结果题(本题共7小题,每题3分,共21分) 24.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main( ) {char *str[ ]={"ENGLISH","MATH","MUSIC","PHYSICS","CHEMISTRY"}; char **q; int num; q=str; for(num=1;num<5;num+=2) printf("%s ",*(q++)); getch();} 【答案】 ENGLISH MATH 25.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> void fut(int **s,int p[2][3]) {**s=*(*(p+1)+1);} main( ) {int a[2][3]={1,3,5,7,9,11},*p,x; p=&x; fut(&p,a); printf("%d ",*p); getch();} 【答案】9 26.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> #define N 6 void YH(int (*x)[N]) {int i,j; (*x)[0]=1; for(i=1;i<N;i++) {(*(x+i))[0]=(*(x+i))[i]=1; for(j=1;j<i;j++) (*(x+i))[j]=(*(x+i-1))[j-1]+(*(x+i-1))[j];}} main( ) { int x[N][N],i,j; YH(x); for(i=0;i<N;i++) { for(j=0;j<=i;j++) printf("%4d",x[i][j]); printf(" ");}getch();} 【答案】 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 27.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main( ) {int b[3][2]={2,4,6,8,10,12}; int *a[2][3],**q,k,i,j; for(i=0;i<2;i++) for(j=0;j<3;j++) a[i][j]=*(b+j)+i; q=a[0]; for(k=0;k<6;k++) { printf("%d ",**q); q++;}getch();} 【答案】2 6 10 4 8 12 28.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main( ) {int b[6]={1,3,5,7,9,11},*a[6]; int **q,k; for(k=0;k<6;k++) a[k]=&b[k]; q=&a[0]; for(k=0;k<6;k++) { printf("%4d",**q);q++;}getch();} 【答案】 1 3 5 7 9 11 29.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main( ) {char *b[ ]={"English","Physics","Maths","Pascal","Chemistry","End","Error"}; int num=2; if (num>=0&&num<=9) if(num>=1&&num<=5) printf ("The chosen class is:%s. ",b[num-1]); else printf ("No class is chosen.%s!! ",b[5]); else printf("Your input is:%s !! ",b[6]);getch();} 【答案】The chosen class is:Physics. 30.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> void amov(int *p,int (*a)[3],int n) { int i,j,s=0; for(i=0;i<n;i++) for(j=0;j<n;j++) { *p=(*(a+i))[j];s=s+*p;p++;} printf("s=%d",s);} main( ) { int*p,a[3][3]={{1,3,5},{2,4,6}}; p=&a[0][0]; amov(p,a,3);getch();} 【答案】s=21 三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。每处3分,共9分) 31.下列程序的功能是:在主函数中输入10个不等长的字符串,用另一函数对它们进行排序,然后在主函数中输出这10个已经排好序的字符串。程序中有三处错误,请改正。 #include <stdio.h> #include<conio.h> L1 main() L2 {void sort(char *[ ]); L3 int i; L4 char p[10],str[10][20]; L5 for(i=0;i<10;i++) L6 p[i]=str[i]; L7 printf("input 10 strings: "); L8 for(i=0;i<10;i++) L9 scanf("%s",p[i]); L10 sort(p); L11 printf("Now,the sequence is: "); L12 for(i=0;i<10;i++) L13 printf("%s ",p[i]); L14 getch();} L15 void sort(char *s[ ]) L16 {int i,j; L17 char temp; L18 for(i=0;i<9;i++) L19 for(j=0;j<9-i;j++) L20 if(strcmp(*(s+j),(s+j+1))>0) L21 {temp=*(s+j); L22 *(s+j)=*(s+j+1); L23 *(s+j+1)=temp;}} 答案: L4 char *p[10],str[10][20]; L17 char *temp; L20 if(strcmp(*(s+j),*(s+j+1))>0) 四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分) 32.下列程序的功能是:对5个字符串排序并输出。请填空。 #include <stdio.h> #include<conio.h> #include<string.h> #define MAX 20 main() {void sort(char **p); int i; char **p,*pstr[5],str[5][MAX]; for(i=0;i<5;i++) 【1】; printf("input 5 strings: "); for(i=0;i<5;i++) scanf("%s",pstr[i]); p=【2】; sort(p); printf(" strings sorted: "); for(i=0;i<5;i++) printf("%s ",pstr[i]); getch();} void sort(char **p) {int i,j; char *temp; for(i=0;i<5;i++) {for(j=i+1;j<5;j++) {if(strcmp(*(p+i),【3】)>0) {【4】; *(p+i)=*(p+j); *(p+j)=temp;}}}} 答案:①pstr[i]=str[i] ②pstr ③*(p+j) ④temp=*(p+i) 33.下列程序的功能是:对n个整数排序并输出。请填空。 #include <stdio.h> #include<conio.h> main() {void sort(int **p,int n); int i,n,data[20],**p,*pstr[20]; printf("input n: "); scanf("%d",&n); for(i=0;i<n;i++) pstr[i]=【1】; printf("input %d integer number: ",n); for(i=0;i<n;i++) scanf("%d",pstr[i]); p=pstr; sort(p,n); printf("Now,the sequence is: "); for(i=0;i<n;i++) printf("%d ",【2】); printf(" "); getch();} void sort(int **p,int n) {int i,j,*temp; for(i=0;i<【3】;i++) {for(j=i+1;j<n;j++) {if(【4】) {temp=*(p+i); *(p+i)=*(p+j); *(p+j)=temp;}}}} 答案:①&data[i] ②*pstr[i] ③n-1 ④**(p+i)>**(p+j) 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

任务35:指针数组、数组指针、指向指针的指针  《编程语言-C语言》45分钟专题训练-第1页
1
任务35:指针数组、数组指针、指向指针的指针  《编程语言-C语言》45分钟专题训练-第2页
2
任务35:指针数组、数组指针、指向指针的指针  《编程语言-C语言》45分钟专题训练-第3页
3

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。