C指针练习题带答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、设有下列定义 char s[ ]={“12345”},*p=s,则下列表达式中不正确的是()。
A、p+1
B、*(s+2)
C、P=“abcd”
D、*S=”ABC”
2、设有下列定义
static int x,*p=&x,*q;
q=p;scanf(“%d,%d”,p,q);
若输入“3,4”,则x的值为()A、3 B、4 C、0 D、无法确定3、以下程序的运行结果是:A、6 B、6789 C、‘6’ D、789
include
main()
{char b[10]={'1','2','3','4','5','6','7','8','9','\0'},*p=b;
int k;
k=8;p=b+k;
printf("%s\n",p-3);}
4、有以下程序的输出结果是()
main()
{int v[]={1,3,5,7,2,4,6,8};
int I,*p;p=v;
for(i=0;i<8;i++) if(*(p+i)==i+1) printf((“%d”,*(p+i));
A、1
B、18
C、35
D、16
5、若有语句int* p,a=4;p=&a;下面均代表地址的一组选项是
A.a,p,*&a
B.&*a,&a,*p
C.*&p,*p,&a
D.&a,&*p,p
6.若有说明int* p,m=5,n;以下正确的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n; scanf("%d",*p);
C.scanf("%d",&n); *p=n;
D.p=&n; *p=m;
7.下列程序的运行结果是:
swap(int *pt1,int *pt2)
{int p;
p=*pt1;*pt1=*pt2;*pt2=p;}
main()
{int a=5,b=7,*p1,*p2;
p1=&a;p2=&b;
swap(p1,p2);
printf("*p1=%d,*p2=%d\n",*p1,*p2);
printf("a=%d,b=%d\n",a,b);}
A、*p1=7,*p2=5
B、*p1=7,*p2=5
C、*p1=7,*p2=7
D、*p1=5,*p2=5 a=5,b=7 a=7,b=5 a=5,b=5 a=5,b=7 (7)下列程序的运行结果是:
main()
{void swap1();
void swap2();
int a=3,b=4;
swap1(a,b);printf(“%d,%d\n”,a,b);
a=3,b=4;
swap2(&a,&b);printf(“%d,%d”,a,b);}
void swap1(x,y)
int x,y;
{int t;t=x;x=y;y=t;}
void swap2(x,y)
int *x,*y;
{int t;t=*x;*x=*y;*y=t;}
A、3,4
B、4,3
C、3 4
D、4 3
4,3 3,4 4 3 3 4
8.若有定义int a[]={2,4,5,8,10,12},*p=a;则*(p+1)的值是()*(a+5)的值是()
*p+1的值是()。已知char s1[10],*s2=”abc\0def”;则执行语句strcpy(s1,s2);之后,变量strlen(s1)的值是。若有一下定义char* s="\ta\017bc";则指针变量s与指向的字符串所占的字节数分别是()。若有定义:int a[]={2,4,6,8,10,12},*p=a;则*(p+1)的值是___4___. *(a+5)的值是_____12____.若有以下定义:int a[2][3]={2,4,6,8,10,12};则a[1][0]的值是__8___. *(*(a+1)+0)的值是____8____.若有以下定义int a[2][3]={2,4,6,8,10,12};则a[1][0]的值是(),*(*(a+1))的值是()。
9、若有定义“int a[9],*p=a;”,并在以后的语句中未改变p的值,不能表示a[2]地址的表达式是:。 A、p+2 B、a+2 C、a++ D、++(++p)
10.若有“char a[4]={‘A’,’\0’,’D’},*p=a,i=2,j=4;”,则下列表达式值不是1的有:
A、strlen(a);
B、j||j
C、*(p+2)
D、--i
11.以下程序的输出结果是。A、Afgh123456 B、Abfhd C、Afghd D、Afgd
#include
main()
{char *p1,*p2,ch[20]=”AbCdEfG123456”;
p1=”abcd”;p2=”efgh”;
strcpy(ch+1,p2+1);strcpy(ch+3,p1+3);
printf(“%s\n”,ch);}
12.下面程序运行结果:cde
char* s="abcde";
s+=2;
printf("%s",s);
13.下面程序把数组元素中的最小值放入a[0]中。则在if语句中条件表达式应该是 . main()
{int a[10]={6,7,2,9,1,10,5,8,4,3},*p=a,I;
for(i=0;i<10;i++,p++) if( ) *a=*p;
printf(“%d”,*a);}
A、p>a