第六篇,C语言指针经典练习(共两篇)

(第一篇)

一、选择题

1. 变量的指针,其含义是指该变量的____. 

  a)值              b)地址

  c)名              d)一个标志

2.若有语句int *point,a=4;和point=&a;下面均代表地址的一组选项是__ _.

  a)a,point,*&a             b)&*a,&a,*point

  c)*&point,*point,&a       d)&a,&*point ,point

3.若有说明;int *p,m=5,n;以下正确的程序段的是________.

 a)p=&n;               b)p=&n;

   scanf("%d",&p);        scanf("%d",*p);  

 c)scanf("%d",&n);        d)p=&n;  

                            *p=m;

  1. 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是__ _____.       scanf(%d,&a);

main()

{

int *p,*q,a,b;

p=&a;

printf(input a:);  

scanf(%d,&a);

scanf(%d,*p);   //scanf(%d,a);   

……

}

  1. *p表示的是指针变量p的地址    &p
  2. *p表示的是变量a的值,而不是变量a的地址  
  3. *p表示的是指针变量p的值   p    
  4. *p只能用来说明p是一个指针变量

5. 已有变量定义和函数调用语句:int a=25; print_value(&a); 下面函数的正确输出结果是______.

void print_value(int *x)   

{   

printf(%d\n,++*x);      (*x) = (*x) + 1    *x

}

a)23      b)24     c)25     d)26

6.若有说明: long * p,a;则不能通过scanf语句正确给输入项读入数据的程序段是

  A) *p=&a;  scanf("%ld",p);           

  B) p=(long *)malloc(8);  scanf("%ld",p);

  C) scanf("%ld",p=&a);

  D) scanf("%ld",&a);

7.有以下程序

   #include<stdio.h>

   main()

{  int m=1,n=2,*p=&m,*q=&n,*r;

   r=p;p=q;q=r;

   printf("%d,%d,%d,%d\n",m,n,*p,*q);

}程序运行后的输出结果是 

A)1,2,1,2                   B)1,2,2,1

C)2,1,2,1                   D)2,1,1,2

8. 有以下程序

main()

{ int  a=1, b=3, c=5;

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

  *p =*p1*(*p2);  a * b

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

}执行后的输出结果是 

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

9. 有以下程序

  main()

{   int a,k=4,m=4,*p1=&k,*p2=&m;

a=p1==&m; 

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

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

A)4 B)1   C)0     D)运行时出错,无定值

11.有以下程序段 
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3], b;  b=p[5];  b中的值是( )
  A)5      B)6     C)8     D)9

12.若有以下定义,则对a数组元素的正确引用是_________.

 int a[5],*p=a;

  1. *&a[5]   b)a+2  c)*(p+5)  d)*(a+2)    

13.若有以下定义,则p+5表示_______.   

  int  a[10],*p=a;

  a)元素a[5]的地址             b)元素a[5]的值

  c)元素a[6]的地址             d)元素a[6]的值

14.设已有定义: int a[10]={15,12,7,31,47,20,16,28,13,19},*p; 下列语句中正确的是( )

  A) for(p=a;a<(p+10);a++); 

  B) for(p=a;p<(a+10);p++);

  C) for(p=a,a=a+10;p<a;p++);

D) for(p=a;a<p+10; ++a);

15.有以下程序段 
#include <stdio.h>

int main()

{   int x[] = {10, 20, 30};    

    int *px = x;

printf("%d,", ++*px);    printf("%d,", *px);  

    px = x;

printf("%d,", (*px)++);     printf("%d,", *px);       

px = x;

printf("%d,", *px++);     printf("%d,", *px);  

    px = x;

printf("%d,", *++px);    printf("%d\n", *px); 

    return 0;

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

A)11,11,11,12,12,20,20,20  B)20,10,11,10,11,10,11,10

C)11,11,11,12,12,13,20,20        D)20,10,11,20,11,12,20,20

16.设有如下定义则程序段的输出结果为  

int arr[]={6,7,8,9,10};

   int *ptr;

   ptr=arr;

   *(ptr+2)+=2;

   printf ("%d,%d\n",*ptr,*(ptr+2)); 

A)8,10          B)6,8         C)7,9          D)6,10

17.若有定义:int a[]={2,4,6,8,10,12},*p=a;则*(p+1)的值是_4__. *(a+5)的值是__12__. 

18.若有以下说明和语句,int c[4][5],(*p)[5];p=c;能正确引用c数组元素的是___ __.

A) p+1       B) *(p+3)     C) *(p+1)+3    D) *(p[0]+2))

19若有定义:int a[2][3],则对a数组的第i行j列元素地址的正确引用为__ __.

  a)*(a[i]+j)        

  b)(a+i)       

c)*(a+j)  

d)a[i]+j     

20若有以下定义:int a[2][3]={2,4,6,8,10,12};则a[1][0]的值是_8_. *(*(a+1)+0)的值是_8 _.

21.有以下定义  char a[10],*b=a;  不能给数组a输入字符串的语句是()
A)gets(a)   B)gets(a[0])    C)gets(&a[0]);    D)gets(b);

22.下面程序段的运行结果是_____.

  char *s="abcde";

  s+=2;printf("%d",s);     //以十进制形式输出地址值

  a)cde     b)字符'c'     c)字符'c'的地址     d)无确定的输出结果

23.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(  
A) char s[10]="abcdefg";      B) char t[]="abcdefg",*s=t;
C) char s[10];s="abcdefg";     D) char s[10];strcpy(s,"abcdefg");

24.设已有定义: char *st="how are you"; 下列程序段中正确的是(  )

  A) char  a[11], *p;  strcpy(p=a+1,&st[4]);

  B) char  a[11];      strcpy(++a, st); 

  C) char  a[11];      strcpy(a, st); 

D) char  a[], *p;    strcpy(p=&a[1],st+2);

25.有以下程序 输出结果是( )

main()

{

char a[]="programming",b[]="language";

char *p1,*p2;

int i;

p1=a;p2=b;

for(i=0;i<7;i++)

if(*(p1+i)==*(p2+i))

printf("%c",*(p1+i));   ga

A)gm      B)rg         C)or        D)ga

26.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是_____.

a)c=*p1+*p2;    b)p2=c    c)p1=p2      d)c=*p1*(*p2);

27.以下正确的程序段是____.

  a)char str[20];                    b)char *p;   

   scanf("%s",&str);                 scanf("%s",p); 

  c)char str[20];                    d)char str[20],*p=str;

scanf("%s",&str[2]);                scanf("%s",p[2]);   

28.若有说明语句则以下不正确的叙述是____. 

   char a[]="It is mine"; 

   char *p="It is mine"; 

  a)a+1表示的是字符t的地址    

  b)p指向另外的字符串时,字符串的长度不受限制  

  c)p变量中存放的地址值可以改变   

  d)a中只能存放10个字符  

29下面程序的运行结果是___.

  #include  <stdio.h>

  #include  <string.h>

  main()

  {  char *s1="AbDeG"; 

    char *s2="AbdEg"; 

    s1+=2;s2+=2;

   printf("%d\n",strcmp(s1,s2));

  }

  a)正数    b)负数   c)零   d)不确定的值

30.有以下程序运行后的输出结果是____。
 void f(int *x,int *y)

{

int t;

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

}

main()

{

int a[8]={1,2,3,4,5,6,7,8},i=0,*p,*q;

p=a;q=&a[7];

while(*p!=*q && i<8)

{

f(p,q);

p++;    

q--;    

i++;    

}

for(i=0;i<8;i++)

{

printf("%d,",a[i]);

}

}

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

  1. 已定义以下函数 
         fun (int *p) 
       { 

return  *p;  

}
   该函数的返回值是    

A) 不确定的值                             B) 形参p中存放的值     p  
  C) 形参p所指存储单元中的值        D) 形参p的地址值   &p

32. 有以下程序 

int f(int b[][4])

{ int i,j,s=0;

  for(j=0;j<4;j++)

  {  i=j;

     if(i>2)  

{

i=3-j;

}

     s+=b[i][j];

 }

return s;

}

main( )

{ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};

  printf("%d\n",f(a) );

} 执行后的输出结果是

A) 12      B) 11       C) 18      D) 16

33.若有以下函数首部则下面针对此函数的函数声明语句中正确的是 

int  fun(double  x[10], int  *n)    double *x

A)int  fun(double x, int *n); B)int  fun(double  , int );

C)int  fun(double *x, int n); D)int  fun(double *,  int *);

34.有以下程序执行后的输出结果是(   

void sum(int *a)

{ a[0]=a[1];}

main( )

{

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

for(i=2;i>=0;i--)

{

sum(&aa[i]);

}

printf("%d\n",aa[0]);

}

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

35.下段代码的运行结果是: 

int main()
{
char a;
char *str=&a;
strcpy(str,"hello");
puts(str); 

return 0;
}

A)hello   B)null   C)h    D)发生异常

36.下段程序的运行结果是

void main()

{

char *p,*q;

char str[]="Hello,World\n";

q = p = str;

p++;  

print(q);

print(p);

}

void print(char *s)

{

printf(%s,s);

}

A)H    e   

B)Hello,World      ello,World

C)Hello,World     Hello,World

D)ello,World     ell,World

37.有以下程序  
void fun(char *c,int d)
{

*c=*c+1;

d=d+1;

printf("%c,%c,",*c,d);
}
void  main()
{

char a='A',b='a';

fun(&b,a);

printf("%c,%c\n",a,b);
}
程序运行后的输出结果是___。
A) B,a,B,a B) a,B,a,B C) A,b,A,b D) b,B,A,b

  1. 下面选项属于函数指针的是:
  1. (int*)p(int, int)   B、int *p(int, int)  C、两者都是 D、两者都不是

   

39、若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是__ __.

A)(*p)max(a,b);          B)*pmax(a,b);                

C) (*p)(a,b);             D) *p(a,b);          

40、下面几个选项中的代码能通过编译的是 :   

A)int* fun()

{

int s[3]={1,3,4};

return s;  int *

}

int main()

{

int * result;

result = fun();

for(int i =0;i<3;i++)

printf("%d\n",result[i]); 

return  0;

}

  1. int& fun()  

{

int s[3]={1,3,4};

return s;

}

int main()

{

int * result;

result = fun();

for(int i =0;i<3;i++)

printf("%d\n",result[i]);

return  0;

}

C)int* fun()

{

int s[3]={1,3,4};  

return &s;  int (*)[3]     

}

int main()

{

int * result;

result = fun();

for(int i =0;i<3;i++)

printf("%d\n",result[i]);

return  0;

}

D)int& fun() 

{

int s[3]={1,3,4};

return &s;

}

int main()

{

int * result;

result = fun();

for(int i =0;i<3;i++)

printf("%d\n",result[i]);

return  0;

}

41、列选项中声明了一个指针数组的是: 

A)int *p[2];       

B)int (*p)[2];  

C)typedef int* intPtr; intPtr p[2];         数据类型:int*   变量名 intPtr

D)A和B

E)A和C

F)B和C

42、下面代码能通过编译的是:   

A)int main()

{

int a[3]={1,2,3};

int *b[3]={&a[1],&a[2],&a[3]};

int **p = b;  

return  0;

}

B)int main()

{

int a[3]={1,2,3};

int *b[3]={a[1],a[2],a[3]};  

int **p = b; 

return  0;

}

C)int main()

{

int a[3]={1,2,3};

int *b[3]={&a[1],&a[2],&a[3]};

int *p = b;      

return  0;

}

D)int main()

{

int a[3]={1,2,3};

int *b[3]={&a[1],&a[2],&a[3]};

int *p = &b;   

return  0;

}

43、对于语句int *   pa[5];下列描述中正确的是_ __.

A) pa是一个指向数组的指针,所指向的数组是5个int型元素

B) pa是一个指向某数组中第5个元素的指针,该元素是int型变量

C) pa [5]表示某个元素数组的第5个元素的值 

D) pa是一个具有5个元素的指针数组,每个元素是一个int型指针  

44、若有以下定义,且0≤i<4,则不正确的赋值语句是____.

int b[4][6], *p, *q[4];

A) q[i] = b[i];             B) p = b;

C) p = b[i]                D) q[i] = &b[0][0];

45、若要对a进行++运算,则a应具有下面说明____.    

A) int a[3][2];            B) char *a[ ] = {12,ab};

C) char (*a)[3];           D) int b[10], *a = b;  

46、若有以下说明语句:

char *language[ ] = {FORTRAN,BASIC,’’PASCAL,’’JAVA,C};

char **q;

q = language + 2;

则语句printf(%o\n, *q) 输出的是_ __.

  1. language[2]元素的地址       

B)字符串PASCAL

C) language[2]元素的值,它是字符串PASCAL的首地址

D)格式说明不正确,无法得到确定的输出

47若有以下程序:

void main()

{

   char *a[3] = {"I","love","China"};

   char **ptr = a;

   printf("%c  %s" , *(*(a+1)+1), *(ptr+1) );

}

这段程序的输出是()

A) I  l

B) o  o

C)o  love

D) I  love

一、填空题

(1) 若有以下定义,则不移动指针p且通过指针p引用值为98的数组元素的表达式是  p[5]        

  int w[10]={23,54,10,33,47,98,72,80,61}, *p=w;  

(2) 以下程序通过函数指针p调用函数fun,请在填空栏内,写出定义变量p的语句。

   void fun(int *x,int *y)      

   { …… }

   main()

   { int a=10,b=20;

   void(*p)(int*,int*)              ; /*定义变量p */     

     p=fun;

p(&a,&b);

    ……

    }

 (3) 下列程序的输出结果是     0       

void fun(int *n)  

  {

while( (*n)--)  

        {

}  

         printf(“%d”,++(*n));     

}

 main()

    {

int a=100;

       fun(&a);

    }

(4) 以下程序的输出结果是                。    

  main()

  { char *p="abcdefgh ",*r;

   long *q;

   q=(long*)p;    

   q++;  

     r=(char*)q;

      printf("%s\n",r);}

(5) 以下程序中,select 函数的功能是:在N行M列的二维数组中,选出一个最大

值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。   

  #define N 3

#define M 3

  int select(int a[3][3],int *n)

   { int i,j,row=1,colum=1;

for(i=0;i<3;i++)   

for(j=0;j<3;j++)   

        if(a[i][j]>a[row][colum])   a[0][0] > a[1][1]   a[0][1]>a[0][0]

{

row=i;

colum=j;

}

     *n=    row        ;       

    return  a[row][colum]        ;     

  }

  main()

  { int a[3][3]={9,11, 23,6,1,15,9,17,20},max,n;

    max=select(a,&n); 

   printf("max=%d,line=%d\n",max,n) ;

  }

(6) 设有以下程序:       

  #include <stdio.h>

main()

{

int a,b,k=4,m=6,*p1=&k,*p2=&m;

a = p1 == &m;    

b=(*p1)/(*p2)+7;   0+7=7

              

printf("a=%d\n",a);  //0

printf("b=%d\n",b) ; //7

}

   执行该程序后,a的值为   0    ,b的值为    7    。

(7)  以下程序运行后的输出结果是       

#include <stdio.h>

main()

{    

char s[]="9876",*p;

for ( p=s ; *p>'7' ;p++) printf("%s\n", p);

printf("%s\n", p);

}

(第二篇)

二、选择题

(1) 若有说明:int i, j=7,*p=&i;,则与i=j;等价的语句是     
A)i=*p;    B)*p=*&j;          C)i=&j;          D)i=**p;

(2) 以下程序执行后a的值是    

A) 4   B) 1    C) 0    D) 运行时出错,a无定值
main()
{

int a,k=4,m=6,*p1=&k,*p2=&m;
a= p1==&m; 
printf(“%d \ n”,a);
}

(3) 以下程序运行后,输出结果是        
A  cde B字符c的ASCLL码值 C  字符C的地址D 出错
main()
{char *s=“abcde”;
s=s+2; 
printf(“%ld \n”,s);}

(4) 下列程序的输出结果是      
main()
{int a[5]={2,4,6,8,10},*p,**k;
p=a; 
k=&p; 
printf(“%d”,*(p)); printf(“%d\n”,**k);


}
A)44   B)22     C)24      D)46

(5) .若有下面的程序片段
int a[12]={0},*p[3],**pp,i;   
for(i=0;i<3;i++)  
p[i]=&a[i*4]; 
pp=p;
则对数组元素的错误引用是       
A、pp[0][1] B、a[10] C、p[3][1] D、*(*(p+2) + 2)

(6) 有如下说明     

   int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

  则数值为9的表达式是

    A) *p+9 B ) *(p+8) C) *p+=9 D)  p+8

(7) 有如下程序段       

  int *p,a=10,b=1;

  p=&a; a=*p+b;

   执行该程序段后,a的值为

  A) 12 B) 11  C) 10 D) 编译出错

(8) 对于基类型相同的两个指针变量之间,不能进行的运算是

A) <  B) =  C) + D) –   

(9) 有以下程序     
main()
{ char str[]="xyz",*ps=str;
   while(*ps) ps++;
   for(ps--;ps-str>=0;ps--) 

puts(ps);

}
执行后输出结果是
A) yz<回车>xyz           B) z<回车>yz
C) z<回车>yz<回车>xyz    D) x<回车>xy<回车>xyz

(10) 若定义了以下函数:     

  void f(……p)  -> double**解引用才是double*

  {

……

double*

       *p=(double *)malloc(10*sizeof( double));

       ……

  }

 p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调

函数,则形参p的正确定义应当是

  1. double *p B) float **p  C) double **p D) float *p

(11) 下列程序的输出结果是   

 A) 非法 B)a[4]的地址 C)5 D)3

main()

  {

char a[10]={9,8,7,6,5,4,3,2 ,1,0},*p=a+5;

    printf(“%d”,*--p);      }

(12) 下列程序的运行结果是     

  A) 6 3              B ) 3 6

C) 编译出错        D) 0 0

     void fun(int *a, int *b)  

 { int *k;

        k=a; a=b; b=k;}   

     main()

      { int a=3, b=6, *x=&a, *y=&b;

 fun(x,y);  

         printf(“%d %d”, a, b);

      }

(13) 下面程序的输出结果是    

    A) 0 B) 1 C) 10 D) 9

  main()

  { int a[ ]={1,2,3,4,5,6,7,8,9,0},*p;

      p=a;

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

}   

(14) 若定义:int a=511,*b=&a;, printf("%d\n",*b);的输出结果为     

    A) 无确定值     B) a 的地址     C) 512     D) 511

(15) 以下程序的输出结果是   ___________

  char cchar(char ch)

  { if(ch>=‘A’&&ch<=‘Z') ch=ch- ‘A'+‘a';

    return ch;

    }

  main()

  { char s[]="ABC+abc=defDEF", * p=s;

   while(*p)

  { *p=cchar(*p);

  p++;

   }

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

   }

 A) abc+ABC=DEFdef B) abc+abc=defdef

 C) abcaABCDEFdef D) abcabcdefdef

(16) 若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确

的语句是  ______________

  1. p=2*(int*)malloc(sizeof(int));    0x100*2
  2. p=(int*)malloc(2*sizeof(int)) ;              int *p = (int*)malloc(sizeof(int)*2)   malloc(8)
  3. p=(int*)malloc(2*2);
  4. p=(int*)calloc(2,sizeof(int)) ;

(17) 若有以下定义和语句:  __________

  int s[4][5],(*ps)[5];    

ps=s;

   则对s数组元素的正确引用形式是

  A) ps+1   B) *(ps +3) C) ps[0][2] D) *(ps+1)+3

(18) 以下程序的输出结果是 ______________

#include <stdio.h>

#include<string.h>

main()

{ char b1[8]="abcdefg",b2[8],* pb=b1+3;  

while (--pb>=b1)

strcpy(b2,pb);   

int l=strlen(b2);

printf("%d\n",strlen(b2));

}

  A) 8   B) 3   C) 1   D) 7

(19) 在说明语句:int *f();中,标识符f代表的是________

  A) 一个用于指向整型数据的指针变量 B) 一个用于指向一维数组的行指针

  C) 一个用于指向函数的指针变量D) 一个返回值为指针型的函数名

(20) 若有说明:int i, j=2,*p=&i;,则能完成i=j 赋值功能的语句是____________

  A) i=*p; B) *p=*&j; C) i= &j; D) i=**p;

(21) 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是_________

A)p=q;  B)*p=*q; C)n=*q;  D)p=n;  

(22) 有以下程序  _________

void fun(char *c,int d)      

{ *c=*c+1;

d=d+1;

printf(“%c,%c,”,*c,d);

}

main()

{ char a=’A’,b=’a’;

fun(&b,a);

printf(“%c,%c\n”,a ,b);

}

程序运行后的输出结果是

A)B,a,B,a   B)a,B,a,B   C)A,b,A,b   D)b,B,A,b

(23) 有以下程序  _____________

#include<stdio.h>

main()

{ char *p=“abcde\Ofghjik\0”; 

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

}

程序运行后的输出结果是

A)12  B)15  C)6  D)5

(25) 有以下程序    _____________

void ss(char *s,char t)

{ while(*s)

{if(*s==t)

*s=t-‘a’+’A’;

s++;

}

}

main()

{char str1[100]=“abcddfefdbd” ,c=’d’;

ss(str1,c);

printf(“%s\n”,str1);

}

程序运行后的输出结果是

A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd

(26) 有以下程序   ___________________

#include stido.h

main()

{char*p,*q;

p=(char*)malloc(sizeof(char)*20);

q=p;

scanf(“%s%s”,p,q);

printf(“%s%s\n”,p,q);

  }

若从键盘输入:abcde f<回车>,则输出结果是:

A)defdef   B)abcdef   C)abcd D)dd

(27) 下面程序的运行结果是:__________

void swap(int*a,int*b)

{int *t;

t=a;a=b;b=t;

}

main()

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

swap(p,q);

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

}

A) 33    B) 35     C)53     D)55   

(28) 若有一些定义和语句  ____________
#include <stdio.h>
int a=4,b=3,*p,*q,*w;
p=&a; q=&b; w=q; q=NULL;   
则以下选项中错误的语句是
A) *q=0; B) w=p; C) *p=a; D) *p=*w;    //A 选项段错误

(29) 有以下程序_______________
int *f(int *x,int *y)
 { if(*x<*y)
        return x;
   else return y;
  }
main()
 { int a=7,b=8,*p,*q,*r;
   p=&a; q=&b;
   r=f(p,q);
   printf("%d,%d,%d\n",*p,*q,*r);
    }
执行后输出结果是
A) 7,8,8 B) 7,8,7 C) 8,7,7 D) 8,7,8

(30) 有以下程序___________
main()
{ char *s[]={"one","two","three"},*p;
  p=s[1]; 

  printf("%c,%s\n",*(p+1),s[0]);
}
执行后输出结果是
A) n,two  B) t,one  C) w,one  D) o,two

(31) 有以下程序  _____________
main()
{ int x[8]={8,7,6,5,0,0},*s;
  s=x+3;  
  printf("%d\n",s[2]);
 }
执行后输出结果是
A) 随机值 B) 0  C) 5 D) 6

(32) 以下函数的功能是通过键盘输入数据为数组中的所有元素赋值。
#define N 10
void arrin(int x[10])
{ int i=0;
  while(i<10) 
  scanf("%d",_________);   &x[i]  i++    x+i = &x[i]
 }
在下划线处应填入的是___________
 A) x+i  B) &x[i+1]  C) x+(i++)  D) &x[i++]

 (34) 有以下程序
main()
{ int a[][3]={{1,2,3},{4,5,0}},(*pa)[3],i;
  pa=a;
  for(i=0;i<3;i++)
  if(i<2)

a[1][i]=a[1][i]-1;        
  else  a[1][i]=1
  printf("%d\n",a[0][1]+a[1][1]+a[1][2]);   
  }
执行后输出结果是   __________
A) 7    B) 6     C) 8     D) 无确定值

(35) 有以下程序
void fun(int *a,int i,int j)
{ int t;
  if (i<j)
  { t=a[i];a[i]=a[j];a[j]=t;
    fun(a,++i,--j);
    }
  }
main()
{ int a[]={1,2,3,4,5,6},i;
fun(a,0,5);
for(i=0;i<6;i++)
printf("%d",a[i]);
}
执行后输出结果是  _____________

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

 需要内存分析解析私聊

  • 5
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肖爱Kun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值