1. 程式人生 > 其它 >PTA C語言練習題12(指標1)

PTA C語言練習題12(指標1)

技術標籤:錯題

一、判斷題
*若有定義int a[]={2,4,6,8,10},p=a;a的值是陣列首地址,則 (p+1)的值是4。
自己T
正確F
因為

*  (p+1)=a[1]=4
* 而  ** (p+1)為 *( *(p+1))意思是二維陣列的第一行第0個元素;

二、選擇題
下列程式段的輸出是____。
int c[]={1, 3, 5};
int *k=c+1;
printf("%d", *++k);

思想:*與++優先度一樣,從右往左結合,故先算k+1,再取k[2];

2-7
下列程式執行後的輸出結果是( )。
main( )
{ char a[10]={9, 8, 7, 6, 5, 4, 3, 2, 1, 0}, p=a+5;cout<<

–p; }

cout<<*–p 意思是輸出該值;

2-8

**下列程式執行後的輸出結果是( )。
main( )
{ int a[ ]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, p;p=a;cout<<p+9; }

由於符號優先性,先執行*p,後加9,故結果是9;

2-9
下列語句定義 x 為指向 int 型別變數 a 的指標,正確的是()。

A.int a, *x = a;
B.int a, *x = &a;
C.int *x = &a, a;
D.int a, x = a;

自己C
錯因:a要先定義,才能有a的地址
正確B

2-12

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

執行該程式段後,a的值是11
自己,什麼是常量什麼是變數;
常量就是 程式執行中 不可以改變的量(資料)
變數 它其實就是記憶體一個小區域,用來儲存資料的!
由於資料可以改變 所以叫變數

如何初始化指標
1.int *p1=&a;
2.int *p2;p2=&a;