1、指针(二)及答案解析(总分:17.00,做题时间:90 分钟)一、B选择题/B(总题数:7,分数:7.00)1.有如下程序段 int*p,a=10,b=3; p=p=“USA“;C.char*a;a=“USA“;D.char a10,*p;a=p=“USA“;7.下面程序的运行结果是_。 #includestdio.h #includestring.h fun(char*w,int n) char t,*s1,*s2; s1=w;s2=w+n-1; while(s1s2) t=*s1+;*s1=*s2-;*s2=t; main() char*p; p=“1234567“; fun(p,strl
2、en(p); puts(p); (分数:1.00)A.7654321B.1714171C.1711717D.7177171二、B填空题/B(总题数:5,分数:10.00)8.以下程序运行后输入:4,abcdef回车,则输出结果是_。 #includestdio.h #includestring.h move(char*str,int n) char temp;int i; temp=strn-1; for(i=n-1;i0;i-) stri=stri-1; str0=temp; main() char s50;int n,i,z; scanf(“%d,%s“,p=“USA“;C.char*a;
3、a=“USA“;D.char a10,*p;a=p=“USA“; 解析:7.下面程序的运行结果是_。 #includestdio.h #includestring.h fun(char*w,int n) char t,*s1,*s2; s1=w;s2=w+n-1; while(s1s2) t=*s1+;*s1=*s2-;*s2=t; main() char*p; p=“1234567“; fun(p,strlen(p); puts(p); (分数:1.00)A.7654321B.1714171C.1711717 D.7177171解析:二、B填空题/B(总题数:5,分数:10.00)8.以下程
4、序运行后输入:4,abcdef回车,则输出结果是_。 #includestdio.h #includestring.h move(char*str,int n) char temp;int i; temp=strn-1; for(i=n-1;i0;i-) stri=stri-1; str0=temp; main() char s50;int n,i,z; scanf(“%d,%s“,&n,s); z=strlen(s); for(i=1;in;i+) move(s,z); printf(“%s/n“,s); (分数:2.00)填空项 1:_ (正确答案:cdefab)解析:9.设有以下程序:
5、main() int a,b=5,m=10,*p1=&k,*p2=&m; a=p1=&m; b=(*p1)*(*p2)+a; printf(“a=%d/n“,a); printf(“b=%d/n“,b); 执行该程序后,a 的值为_,b 的值为_。(分数:2.00)填空项 1:_ (正确答案:0 50)解析:10.以下程序运行后的输出结果是_。 main() char a=“abcdefg“,*p;int i=0; p=a; while(*p) if(i%2!=0)*p=*; p+;i+; puts(a); (分数:2.00)填空项 1:_ (正确答案:a*c*e*g)解析:11.下列程序的输出结果是_。 void fun(int*n) while(*n)-); printf(“%d“,+(*n); main() int a=50; fun(&a); (分数:2.00)填空项 1:_ (正确答案:0)解析:12.以下程序的输出结果是_。 #includestdio.h main() char*p=“abcdefg“,*r; long*q; q=(long*)p; q+; r=(char*)q; printf(“%s/n“,r); (分数:2.00)填空项 1:_ (正确答案:efg)解析: