PTA C語言練習題12(指標1)
阿新 • • 發佈:2020-12-27
技術標籤:錯題
一、判斷題
*若有定義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;