资源描述:
《练习1指针练习2.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、指针练习题21.设有定义:int a=0,*pa=&a;以下scanf语句中能正确为变量a读入数据的是(A)A)scanf("%d",pa); B)scanf("%d",a);C)scanf("%d",&pa); D)scanf("%d",*pa);2.设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是(D)A)p=1; B)*q=2; C)q=p; D)*p=5;//**q=5//地址不能赋值,应该*P=1;3.若有说明:intn=2,
2、*p=&n,*q=p;,则以下非法的赋值语句是(D)A)p=q;B)*p=*q;C)n=*q;D)p=n;4.3.有以下程序段int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b=0;b=p[5];b中的值是(D)A)5 B)6 C)8 D)95.有以下程序void sum(int *a){ a[0]=a[1];//前后互换}main( ){ int aa[10]={1,2,3,4,5,6,7,8,9,10},i=0;for(i=2;i>=0;i--) sum(&a
3、a[i]);printf("%d",aa[0]);}44445678910执行后的输出结果是(A)A)4 B)3 C)2 D)16.有以下定义#include char a[10]={0},*b=a;不能给数组a输入字符串的语句是(B)A)gets(a) A)get(a)B)gets(a[0]) C)gets(&a[0]); D)gets(b);//首地址开始//一个数7.有以下程序main( ){ char *p[10]={"abc","aabdfg",
4、"dcdbe","abbd","cd"};printf("%d",strlen(p[4]));} 执行后输出结果是(A)A)2 B)3 C)4 D)51.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(C)A) char s[10]="abcdefg"; B) char t[]="abcdefg",*s=t;C) char s[10];s="abcdefg"; D) char s[10];strcpy(s,"abcdefg");2.设inta=12;表达式a+=a-=a*=a的值是
5、(C) A12B144C0D132文字常量区的不可以更改3.下面的选项中正确的赋值语句是(chara[5]=””,*p=a;)(A)Ap=“abcd”;Ba=“abcd”;C*p=“abcd”;D*a=“abcd”;//指向另外的空间4.若有下面的变量定义,以下语句中合法的是(A)inti=0,a[10]={0},*p=NULL;Ap=a+2;Bp=a[5];Cp=a[2]+2;Dp=&(i+2);5.有以下程序voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;
6、}}main(){charstr1[100]="abcddfefdbd",c='d';ss(str1,c);printf("%s",str1);}程序运行后的输出结果是(B)A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd6.下面程序的输出结果是_____B___。#includeintf(char*s){char*p=s;while(*p!=’ ’)p++;return(p-s);//测量字符串的长度}main(){printf(“%d”,
7、f(“FUJIAN”));}A)0B)6C)7D)8 1.下面程序的运行结果是____C____。#includevoidfun(chars1[]){inti,j;for(i=j=0;*(s1+i)!=' ';i++)if(*(s1+i)<'n'){*(s1+j)=*(s1+i);j++;}*(s1+j)=' ';}main(){charstr[]="morning",*p;p=str;fun(p);puts(p);}A)morigB)morningC)migD)or2.若有说明语句chara[]="I
8、tismine";char*p="Itismine";则以下不正确的叙述是____D___.a)a+1表示的是字符t的地址b)p指向另外的字符串时,字符串的长度不受限制c)p变量中存放的地址值可以改变d)a中只能存放10个字符//11