1. 程式人生 > >C語言基礎及答案 9

C語言基礎及答案 9

第九章 指標

一、 選擇題

1、 指標是一種____

A、 識別符號

B、 變數

C、 記憶體地址

D、 運算子

2、 顯示指標變數P中的值,可以使用命令_____

A、 Printf(%d,p);

B、 Printf(%d,*p);

C、 Printf(%d,*p);

D、 Printf(%d,p);

3、 為指標變數P輸入整型變數i的地址,可以使用命令____

A、 Scanf(%p,&p);

B、 *p=i;

C、 P=&I;

D、 *p=&I;

4、 若有定義void *p;int *q;float *r,

下面操作不對的是____

A、 p=q;

B、 q=r;

C、 p=r;

D、 r=p;

5、 若有說明#define m 20 int n=10;下面定義不正確的是______

A、 Float s[m];

B、 Float s[m*10];

C、 Float s[m+n];

D、 Float s[m+10];

6、 若有定義int a[]={1,2,0};請問a[a[a[0]]]=______

A、 0      B1       C2        D3

7、 若有char s[10],*p=s;則下面表示式正確的是_____

A、 s=p+s;

B、 p=s+10;

C、 

s[2]=p[4];

D、 p=s[0];

8、 定義整型指標變數pq,下面操作不正確的是_______

A、 Int *p,q=null;

B、 Int *p,q=null,null;

C、 Int *p,*q=null,null;

D、 Int *p,*q=null;

9、 若有定義int a[]={1,2,3},b[3]={1,2,3};,請問a==b_______

A、 不能比較

B、 結果為真

C、 結果為假

D、 結果不確定

二  、填空題

1、 二級指標是存放一級指標的__________

2、 指標變數雖然都是存放指標,但____不同

3、 空指標名稱是_______

,表示沒有指標的一種狀態

4、 函式名和_______名可以作為指標常量

5、 不同型別的指標變數的賦值必須________

一、 程式設計

1、 輸入3個整數,按由小到大的順序輸出。

2、 寫一個函式,求一個字串的長度。在main函式中輸入字串,並輸出其長度。

3、 寫一個函式,將一個3*3的矩陣轉置。

4、 n個數按輸入順序的逆序排列,用函式實現。

參考答案

一、 選擇題

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

二、填空題

1、 單元地址

2、 基型別

3、 Null

4、 陣列

5、 顯式型別變換

二、 程式設計題

1、 Main()

     {int n1,n2,n3;

Int *p1,*p2,*p3;

Printf(input three integers n1,n2,n3:);

Scanf(%d,%d,%d,&n1,&n2,&n3);

     p1=&n1;

     p2=&n2;

     p3=&n3;

     if(n1>n2) swap(p1,p2);

     if(n1>n3) swap(p1,p3);

     if(n1>n3) swap(p2,p3);

     printf(now,the order is:%d,%d,%d\n,n1,n2,n3);

     }

Swap(int *p1,int *p2)

     {int p;

      p=*p1;*p1=*p2;*p2=p;

      }

1、 main()

{int len;

Char *str[20];

Printf(input string:);

Scanf(%s,str);

Len=length(str);

Printf(The length of string is %d.,len);

 }

Length(char *p)

 {int n;

N=0;

While(*p!=\0)

   {n++;

P++;

}

Return(n);

      }

2、 main()

{int a[3][3],*p,i;

Printf(input matrix:\n);

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

Scanf(%d %d %d,&a[i][0],&a[i][1],&a[i][2]);

p=&a[0][0];

move(p);

printf(now,matrix:\n);

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

printf(%d %d %d\n,a[i][0],a[i][1],a[i][2]);

}

Move(int *pointer)

   {int i,j;

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

For(j=i;j<3;j++)

      {t=*(pointer+3*i+j);

       *(pointer+3*i+j)=*(pointer+3*j+i);

       *(pointer+3*j+i)=t;

       }

      }        

3、 main()

{int i,n;

Char *p,num[20];

Printf(input n:);

Scanf(%d,&n);

Printf(please input these numbers:\n);

For(i=0;i

Scanf(%d,&num[i]);

P=&num[0];

Sort(p,n);

Printf(now,the sequence is:\n);

For(i=0;i

Printf(%d,num[i]);

  }

Sort(char p,int m)

 {int i;

Char temp,*p1,*p2;

For(i=0;i

   {p1=p+i;

p2=p+(m-1-i);

temp=*p1;

*p1=*p2;

*p2=temp;

}

}