您好,欢迎访问三七文档
第10章指针数组字符串1.以下定义指向整型变量i的指针变量p,正确的是(4)。①inti,p=i;②inti,*p=i;③inti,p=&i;④inti,*p=&i;2.inti,*p;以下表示将i的地址送入变量p的操作正确的是(4)。①*p=i;②p=i;③*p=&i;④p=&i;3.inti,*p=&i;以下与&i不等价的是(1)。①*p②*&p③&*p④p4.float*p;若p=(float*)2000;则执行完p++后p=(4)。①(float*)2000②(float*)2001③(float*)2002④(float*)20045.以下程序段不正确的是(4)。①#includestdio.hvoidmain(){char*s=Good!;printf(%s,s);}②#includestdio.hvoidmain(){chars[80]=Good!;printf(%s,s);}③#includestdio.hvoidmain(){char*s;s=Good!;printf(%s,s);}④#includestdio.hvoidmain(){chars[80];s=Good!;printf(%s,s);}6.以下程序段正确的是(2)。①#includestdio.hvoidp(chara[]){printf(%s,a);}voidmain(){char*s=Good!;p(*s);}②#includestdio.hvoidp(char*a){printf(%s,a);}voidmain(){chars[80]=Good!;p(s);}③#includestdio.hvoidp(chara){printf(%s,a);}voidmain(){char*s=Good!;p(s);}④#includestdio.hvoidp(char*a){printf(%s,a);}voidmain(){chars[80]=Good!;p(s[80]);}7.与变量i等价的是(135)。①*&i②&*i③*&*&i④&*&*i⑤*&*&*&i8.定义完inti=0,a[10];后,以下表示地址的是(12345)。①&i②&a[i]③&*&i④a⑤a+i9.定义完intn=10,*p=&n;后,变量的地址和内容如下图所示,与&n等价的是(123)。①(int*)2000②*((int*)3000)③*&p或&*p或p或&*&n④&p或(int*)3000⑤*&n或*((int*)2000)或*p或&*n10.定义完intn=10,a[10],*p,*q=&n;后,可以对指针变量p赋值的表达式有(1245)。①&n或&a[0]②(int*)720844③720844④NULL⑤q11.与while(*p){printf(%c,*p);p++;}等价的语句有(1245)。①while(*p)printf(%c,*p++);②while(*p)printf(%c,*(p++));③while(*p)printf(%c,(*p)++);④while(*p)printf(%c,*p),p++;⑤while(*p)printf(%c,*p),++p;12.要使以下程序运行结果输出:7,则可以使用的表达式有(1245)。#includestdio.hvoidmain(){inta[5]={1,3,5,7,9},*p=&a[0];printf(%d,____);}①p[3]②*(p+3)③*p+3④*(a+3)⑤a[3]13.要使以下程序运行结果输出a数组10个元素的值,则可以使用的表达式有(1345)。#includestdio.hvoidmain(){inta[10]={0,1,2,3,4,5,6,7,8,9},*p=&a[0],i;for(i=0;i10;i++)printf(%d,_____);}①*p++②*a++③p[i]④a[i]⑤*(p++)14.要使以下程序运行结果输出a数组10个元素的值,则可以使用的表达式有(1345)。#includestdio.hvoidmain(){inta[10]={0,1,2,3,4,5,6,7,8,9},*p=&a[0],i;for(i=0;i10;i++)printf(%d,_____);}①*p++②*a++③*(p+i)④*(a+i)⑤*(p++)15.要使以下程序运行结果输出a数组10个元素的值,则可以使用的表达式有(15)。#includestdio.hvoidmain(){inta[10]={0,1,2,3,4,5,6,7,8,9},*p=&a[0],i;for(i=0;i10;i++)printf(%d,_____);}①*p++②*(++p)③(*p)++④++(*p)⑤*(p++)16.要使以下程序运行结果输出a数组10个元素的值,则定义函数p()可以使用的有(12345)。#includestdio.h/*此处定义函数p()*/voidmain(){inta[10]={0,1,2,3,4,5,6,7,8,9};p(a);}①voidp(intx[]){inti;for(i=0;i10;i++)printf(%d,x[i]);}②voidp(intx[1]){inti;for(i=0;i10;i++)printf(%d,x[i]);}③voidp(intx[10]){inti;for(i=0;i10;i++)printf(%d,x[i]);}④voidp(int*x){inti;for(i=0;i10;i++)printf(%d,x[i]);}⑤voidp(intx[20]){inti;for(i=0;i10;i++)printf(%d,x[i]);}17.已知inta[10],i=1,*p=a;则与&a[i]是等价的有(12345)。①a+i②&*(a+i)③p+i④&*(p+i)⑤&p[i]18.以下程序用于输出二维数组,在下划线处可填的表达式有(1235)。#includestdio.hvoidmain(){inta[3][4]={0,1,2,3,4,5,6,7,8,9,10,11},i,j;for(i=0;i3;i++){for(j=0;j4;j++)printf(%2d,____);printf(\n);}}运行结果输出:01234567891011①*(*(a+i)+j)②*(a[i]+j))③(*(a+i))[j]④*(a+i)[j]⑤a[i][j]19.以下程序用于输出二维数组,在下划线处可填的表达式有(1235)。#includestdio.hvoidPr(int(*p)[4]){inti,j;for(i=0;i3;i++){for(j=0;j4;j++)printf(%2d,____);printf(\n);}}voidmain(){inta[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};Pr(a);}运行结果输出:01234567891011①*(*(p+i)+j)②*(p[i]+j))③(*(p+i))[j]④*(p+i)[j]⑤p[i][j]20.以下下划线处可以填的表达式有(125)。#includestdio.hvoidf(int__________){inti,j;for(i=0;i3;i++){for(j=0;j4;j++)printf(%3d,p[i][j]);printf(\n);}}voidmain(){inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};f(a);}运行结果输出:123456789101112①(*p)[4]②p[][4]③*p[4]④*(p[4])⑤p[4][4]21.以下程序用于输出字符串s的值,在下划线处不可填的表达式有(4)。#includestdio.hvoidmain(){char______=Good!;printf(%s,s);}运行结果输出:Good!①s[]②s[10]③*s④s22.以下程序段中cpy()函数实现字符串复制,正确的是(2345)。①#includestdio.hvoidcpy(char*t,char*f){for(;*f!=0;f++,t++)*t=*f;}voidmain(){chars[10];cpy(s,Good!);printf(%s,s);}②#includestdio.hvoidcpy(char*t,char*f){for(;(*t=*f)!=0;f++,t++);}voidmain(){chars[10];cpy(s,Good!);printf(%s,s);}③#includestdio.hvoidcpy(char*t,char*f){for(;*t=*f;f++,t++);}voidmain(){chars[10];cpy(s,Good!);printf(%s,s);}④#includestdio.hvoidcpy(char*t,char*f){for(;*t++=*f++;);}voidmain(){chars[10];cpy(s,Good!);printf(%s,s);}⑤#includestdio.hvoidcpy(char*t,char*f){while(*t++=*f++);}voidmain(){chars[10];cpy(s,Good!);printf(%s,s);}23.以下程序运行结果是:7,9_________#includestdio.hvoidmain(){inta[3]={5,7,9},*p=&a[1],x=*p++;printf(%d,%d,x,*p);}24.以下程序运行结果是:__7,8_______#includestdio.hvoidmain(){inta[3]={5,7,9},*p=&a[1],x=(*p)++;printf(%d,%d,x,*p);}25.以下程序运行结果是:____5,7_____#includestdio.hvoidswap(intx,inty){intt;t=x;x=y;y=t;}voidmain(){inta=5,b=7;swap(a,b);printf(%d,%d,a,b);}26.以下程序运行结果是:__7,5_______#includestdio.hvoidswap(int*x,int*y){intt;t=*x;*x=*y;*y=t;}voidmain(){inta=5,b=7;swap(&a,&b);printf(%d,%d,a,b);}27.#includestdio.hvoidmain(){inta=3,b=5,c=7,*p=&a,x;printf(%x,%x,%x,%x\n,&a,&b,&c,p);p++;x=(*p)++;printf(%d,%d,%d,%d,%d\n,a,b,c,*p,x);}TC下运行结果输出:ffca,ffcc,ffce,ffca(这些都是变量的地址,具体因系统而异)_______3,6,7,6,5________28.#includestdio.hvoidmain(){inta=3,b=5,c=7,*p=&b,x;printf(%x,%x,%x,%x\n,&a,&b,&c,p);p++;x=(*p)++;printf(%d,%d,%d,%d,%d\n,a,b,c,*p,x);}VC下运行结果输出:12ff7c,12ff78,12ff74,12ff78(这些都是变量的地址,具体因系统而异)_____4,5,7,4,3______________________29.#includestdio.hvoidmain(){inti=5,j=4,k=3,*p=&i;printf(%d,%d,,i,*p);p++;printf(%d,%d,,i,*p);*p=*p+2;printf(%d,%d,%d,i,j,*p);}TC下运行结果输出:_____5,5,5,4,5,6,6________
本文标题:第10章C语言练习
链接地址:https://www.777doc.com/doc-2241501 .html