真题指针.docx

上传人:b****6 文档编号:9122178 上传时间:2023-02-03 格式:DOCX 页数:20 大小:21.68KB
下载 相关 举报
真题指针.docx_第1页
第1页 / 共20页
真题指针.docx_第2页
第2页 / 共20页
真题指针.docx_第3页
第3页 / 共20页
真题指针.docx_第4页
第4页 / 共20页
真题指针.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

真题指针.docx

《真题指针.docx》由会员分享,可在线阅读,更多相关《真题指针.docx(20页珍藏版)》请在冰豆网上搜索。

真题指针.docx

真题指针

 23)已定义以下函数(0604B)

      intfun(int*p)

      {return*p;}

      fun函数返回值是

      A)不确定的值B)一个整数C)形参p中存放的值D)形参p的地址值

  37)有以下程序(0604A)

      voidfun1(char*p)

      {

      char*q;

      q=p;

      while(*q!

='\0')

      {(*q)++;q++;}

      }

      main()

      {chara[]={“Program”},*p;

      p=&a[3];fun1(p);printf(“%s\n”,a);

      }

      程序执行后的输出结果是

      A)Prohsbn B)Prphsbn  C)Progsbn D)Program

    38)有以下程序(0604C)

      voidswap(char*x,char*y)

      {

      chart;

      t=*x;*x=*y;*y=t;

      }

      main()

      {

      char*s1=”abc”,*s2=”123”;

      swap(s1,s2);printf(“%s,%s\n”,s1,s2);

      }

      程序执行后的输出结果是

      A)123,abc  B)abc,123  C)1bc,a23 D)321,cba

  47)设有以下定义和语句(0604A)

      charstr[20]=”Program”,*p;

      p=str;

      则以下叙述中正确的是

      A)*p与str[0]中的值相等

      B)str与p的类型完全相同

      C)str数组长度和p所指向的字符串长度相等

      D)数组str中存放的内容和指针变量p中存放的内容相同

 

(29)在16位编译系统上,若有定义inta[]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是(0609A)。

A)p向高地址移动了一个字节B)p向高地址移动了一个存储单元

C)p向高地址移动了两个字节D)p与a+1等价

(30)有以下程序:

main()

{inta=1,b=3,c=5;

int*p1=&a,*p2=&b,*p=&c;

*p=*p1*(*p2);

printf("%d\n",c);

}

执行后的输出结果是(0609C)。

A)1B)2C)3D)4

(31)若有定义:

intw[3][5];,则以下不能正确表示该数组元素的表达式是(0609D)。

A)*(*w+3)B)*(w+1)[4]C)*(*(w+))D)*(&w[0][0]+1)

(33)若有定义语句:

intk[2][3],*pk[3];,则以下语句中正确的是(0609B)。

A)pk=k;B)pk[0]=&k[1][2];

C)pk=k[0];D)pk[1]=k;

(37)有以下程序:

main()

{chars[]={"aeiou"},*ps;

ps=s;printf("%c\n",*ps+4);

}

程序运行后的输出结果是(0609B)。

A)aB)cC)uD)元素s[4]的地址

(38)以下语句中存在语法错误的是(0609A)。

A)charss[6][20];ss[1]="right?

";

B)charss[][20]={"right?

"};

C)char*ss[6];ss[1]="right?

";

D)char*ss[]={"right?

"};

(39)若有定义:

char*x="abcdefghi";,以下选项中正确运用了strcpy函数的是(0609D)。

A)chary[10];strcpy(y,x[4]);

B)chary[10];strcpy(++y,&x[1]);

C)chary[10],*s;strcpy(s=y+5,x);

D)chary[10],*s;strcpy(s=y+1,x+1);

(40)有以下程序:

intadd(inta,intb){return(a+b);}

main()

{intk,(*f)(),a=5,b=10;

f=add;

..........

}

则以下函数调用语句错误的是(0609C)。

A)K=(*f)(a,b);B)K=add(a,b);

C)K=*f(a,b);D)k=f(a,b);

0704

 (28)有以下函数

      intfun(char*s)

      {char*t=s;

      while(*t++);

      return(t-s);

      }

      该函数的功能是(0704B)

      A)比较两个字符的大小    B)计算s所指字符串占用内存字节的个数

      C)计算s所指字符串的长度 D)将s所指字符串复制到字符串t中

(29)设已有定义:

floatx;则以下对指针变量p进行定义且赋初值的语句中正确的是(0704D)

      A)float*p=1024;   B)int*p=(floatx);

      C)floatp=&x;      D)float*P=&x;

    (30)有以下程序

      #include

      main()

      {intn,*p=NULL;

      *p=&n;

      printf(“Inputn:

”);scanf(“%d”,&p);printf(“outputn:

”);printf(“%d\n”,p);

      }

      该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是(0704A)

  Aintn,*p=NULL;B)*p=&n; C)scanf(“%d”,&p) D)printf(“%d\n”,p);

    (31)以下程序中函数f的功能是:

当flag为1时,进行有由小到大排序;当flag为0时,进行由大到小排序。

(0704B)

      voidf(intb[],intn,intflag)

      {inti,j,t;

      for(i=0;i

      for(j=i+1;j

      if(flag?

b[i]>b[j]:

b[i]

      }

      main()

      {inta[10]={5,4,3,2,1,6,7,8,9,10},i;

      f(&a[2],5,0);f(a,5,1);

      for(i=0;i<10;i++)printf(“%d,”a[i]);

      }

      程序运行后的输出结果是

      A)1,2,3,4,5,6,7,8,9,10, 

B)3,4,5,6,7,2,1,8,9,10,

      C)5,4,3,2,1,6,7,8,9,10,

 D)10,9,8,7,6,5,4,3,2,1,

    (32)有以下程序

      voidf(intb[])

      {inti;

      for(i=2;i<6;i++)b[i]*=2;

      }

      main()

      {inta[10]={1,2,3,4,5,6,7,8,9,10},i;

      f(a);

for(i=0;i<10;i++)printf(“%d,”,a[i]);

      }

      程序运行后的输出结果是(0704B)

      A)1,2,3,4,5,6,7,8,9,10,

     B)1,2,6,8,10,12,7,8,9,10

      C)1,2,3,4,10,12,14,16,9,10,

      D)1,2,6,8,10,12,14,16,9,10,

 (36)有以下程序(0704B同32)

      voidf(int*q)

      {inti=0;

      for(;i<5;i++)(*q)++;

      }

      main()

      {inta[5]={1,2,3,4,5},i;

      f(a);

      for(i=0;i<5;i++)printf(“%d,”,a[i]);

      }

      程序运行后的输出结果是

      A)2,2,3,4,5, B)6,2,3,4,5, C)1,2,3,4,5, D)2,3,4,5,6,

  (40)有以下程序

      voidf(intn,int*r)

      {intr1=0;

      if(n%3==0)r1=n/3;

      elseif(n%5==0)r1=n/5;

      elsef(--n,&r1);

      *r=r1;

      }

      main()

      {intm=7,r;

      f(m,&r);printf(“%d\n”,r);

      }

      程序运行后的输出结果是(0704A)

      A)2 B)1 C) 3 D)0

 

(15)若在定义语句:

inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是(0709C)

A)scanf("%d",a,b,c);                     B)scanf("%d%d%d",a,b,c);

C)scanf("%d",p);                         D)scanf("%d",&p);

(29)设有定义:

charp[]={’1’,’2’,’3’},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是(0709A)

A)sizeof(p)      B)sizeof(char)    C)sizeof(*q)     D)sizeof(p[0])

(30)有以下函数

  intaaa(char*s)

  {char*t=s;

while(*t++);

t--;

return(t-s);

}

以下关于aaa函数的功能叙述正确的是(0709A)

A)求字符串s的长度               B)比较两个串的大小

C)将串s复制到串t                D)求字符串s所占字节数

(32)有以下程序(0709D)

#include

voidfun(char **p)

{++p;   printf("%s\n",*p);}

main()

{char *a[]={"Morning","Afternoon","Evening","Night"};

fun(a);

}

程序的运行结果是

A)Afternoon     B)fternoon     C)Morning     D)orning

(33)若有定义语句:

inta[2][3],*p[3];,则以下语句中正确的是(0709C)

A)p=a;      B)p[0]=a;      C)p[0]=&a[1][2];     D)p[1]=&a;

(34)有以下程序

  #include

  voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/

  {intt,i,j;

for(i=0;i

for(j=i+1;j

if(a[i]

}

main()

{intc[10]={1,2,3,4,5,6,7,8,9,0},i;

fun(c+4,6);

for(i=0;i<10;i++)  printf("%d,",c[i]);

printf("\n");

}

程序运行的结果是(0709D)

A)1,2,3,4,5,6,7,8,9,0,           B)0,9,8,7,6,5,1,2,3,4,

C)0,9,8,7,6,5,4,3,2,1,            D)1,2,3,4,9,8,7,6,5,0,

(35)有以下程序(0709C)

  #include

  int fun(chars[])

{intn=0;

while(*s<=’9’&&*s>=’0’)  {n=10*n+*s-’0’;s++;}

return(n);

}

main()

{chars[10]={’6’,’1’,’*’,’4’,’*’,’9’,’*’,’0’,’*’};

printf("%d\n",fun(s));

}

程序运行的结果是

A)9      B)61490        C)61        D)5

(38)有以下程序:

(0709D)

#include

voidfun(char*t,char*s)

{

while(*t!

=0)t++;

while((*t++=*s++)!

=0);

}

main()

{

charss[10]=”acc”,aa[10]=”bbxxyy”;

fun(ss,aa);

printf(“%s,%s\n”,ss,aa);

}

程序运行结果是

A)accxyy,bbxxyyB)acc,bbxxyy

C)accxxyy,bbxxyyD)accbbxxyy,bbxxyy

 (42)有以下程序(0709A)

#include 

void fun(intn,int*p)

{  int  f1,f2;

if(n==1||n==2)    *p=1;

else

{   fun(n-1,&f1);     fun(n-2,&f2);

    *p=f1+f2;

}

}

main()

{    int    s;

     fun(3,&s);      printf("%d\n",s);

}

程序的运行结果是

A)2                 B)3            C)4                D)5

 

(23)有以下程序(0804D)

#include

main()

{inta[]={1,2,3,4},y,*p=&a[3];

--p;y=*p;printf("y=%d\n",y);

}

程序的运行结果是

A)y=0B)y=1C)y=2D)y=3

25)设有如下程序段(0804A)

chars[20]="Beijing",*p;

p=s;

则执行p=s;语句后,以下叙述正确的是

A)可以用*p表示s[0]

B)s数组中元素饿个数和p所指字符串长度相等

C)s和p都是指针变量

D)数组s中的内容和指针变量p中的内容相同

(32)有以下程序(0804C)

#include

voidfun(int*s,intnl,intn2)

{inti,j,t;

i=n1;j=n2;

while(i

i++;j--;}

}

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},k;

fun(a,0,3);fun(a,4,9);fun(a,0,9);

for(k=0;k<10;k++)printf("%d",a[k]);printf(“\n”);

}

程序的运行结果是

A)0987654321B)4321098765C)5678901234D)0987651234

(33)有以下程序(0804A)

#include

#include

voidfun(char*s[],intn)

{char*1;inti,j;

for(i=0;i

for(j=i+1;j

if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j]=t;}

}

main()

{char*ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};

fun(ss,5;printf("%s,%s\n",ss[0],ss[4]);

}

程序的运行结果是

A)xy,aaaaccB)aaaacc,xyC)bcc,aabccD)aabcc,bcc

(35)有以下程序(0804C)

#include

voidfun(char*a,char*b0

{while(*a==’*’)a++;

while(*b=*a){b++;a++;}

}

main()

{chau*s="*****a*b****",t[80];

fun(s,y;puts(t);

}

程序的运行结果是

A)*****a*bB)a*bC)a*b****D)ab

 

23)  若有定义语句:

doublex[5]={1.0,2..0,3.0,4.0,5.0},*p=x;则错误引用x数组元素的是(0809B)

A)*p  B)x[5] C)*(p+1) D)*x

 

(21)有以下程序(0904C)

#iinclude

main()

{char*s={“ABC”};

do

{printf(“%d”;*s%l0);s++

}whi1e(*s);

}

注意:

字母A的ASCII码值为65。

程序运行后的输出结果是

A)5670

B)656667

C)567

D)ABC

(25)有以下程序(0904A)

#include

voidfun(char*s)

{while(*s)

{if(*s%2==0)printf(“%c”,*s);

s++;

}

}

main()

{chara[]=(“good”};

fun(a);printf(“\n”);

}

注意:

字母a的ASCII码值为97,程序运行后的输出结果是

A)d

B)go

C)god

D)good

(26)有以下程序(0904B)

#include

voidfun(int*a,int*b)

{int*c;

c=a;a=b;b=c;

}

main()

{intx=3,y=5,*p=&x,*q=&y;

fun(p,q);printf(“%d,%d,”,*p,*q):

fun(&x,&y);printf(“%d,%d\n”;*p,*q);

}

程序运行后的输出结果是

A)3,5,5,3

B)3,5,3,5

C)5,3,3,5

D)5,3,5,3

(27)有以下程序(0904A)

#include

voidf(int*p,int*q);

main()

intm=l,n=2,*r=&m;

f(r,&n);printf(“%d,%d”,m,n);

}

voidf(int*p,int*q)

{p=p+l:

*q=*q+1;}

程序运行后的输出结果是

A)1,3

B)2,3

C)1,4

D)1,2

(29)若有以下定义(0904B)

intx[10],*pt=x;

则对x数组元素的正确引用是

A)*&x[10]

B)*(x+3)

C)*(pt+10)

D)pt+3

(31)有以下程序(0904A)

#include

main()

{char*a[]=(“abcd”,“ef”,“gh”,“ijk”};inti;

for(i=0;i<4;i++)printf(“%c”,*a[i]);

}

程序运行后的输出结果是

A)aegi

B)dfhk

C)abcd

D)abcdefghijk

(32)以下选项中正确的语句组是(0904D)

A)chars[];s=“BOOK!

”;

B)char*s;s={“BOOK!

”};

C)chars[10];s=“BOOK!

”;

D)char*s;s=“BOOK!

”;

(35)有以下程序(0904C)

#include

intb=2.;

intfun(int*k)

{b=*k+b;return(b);}

main()

{inta[10]={1,2,3,4,5,6,7,8),i;

for(i=2;i<4;i++){b=fun(&a[i])+b;printf(“%d”,b);}

printf(“\n”);

}

程序运行后的输出结果是

A)1012

B)810

C)1028

D)1016

 

(32)下列函数的功能是(0909)

fun(char*a,char*b)

{while((*b=*a)!

=’\0’){a++,b++;}}

A)将a所指字符串赋给b所指空间

B)使指针b指向a所指字符串

C)将a所指字符串和b所指字符串进行比较

D)检查a和b所指字符串中是否有’\0’

(33)设有以下函数(0909)

voidfun(intn,char*s){……}

则下面对函数指针的定义和赋值均是正确的是

A)void(*pf)();pf=fun;

B)viod*pf();pf=fun;

C)void*pf();*pf=fun;

D)void(*pf)(int,char);pf=&fun;

(37)设有定义:

char*c;,以下选项中能够使字符型指针c正确指向一个字符串的是(0909)

A)charstr[]=”string”;c=str;

B)scanf(“%s”,c);

C)c=getchar();

D)*c=”string”;

 

(23)下列语句中,正确的是(1003A)

A)char*s;s="Olympic";B)chars[7];s="Olympic";

C)char*s;s={"Olympic"};D)chars[7];s={"Olympic"};

(27)若有定义int(*pt

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1