1樓:匿名使用者
應該是輸出1。程式是這樣的,先定義
了一個陣列a,並賦值。然後定義了一個指標陣列sum。在for迴圈中,使用了
num[i]=&a[i];語句,也就是,指標陣列的每個元素分別指向了陣列a的每個元素。前面定義的p,是指向指標的指標,也就是p指向了一個地址,而這個地址又執行了另外一個地址。執行p=num後,p就 指向了num陣列的第一個元素。
後面使用printf(「%d」,**p);輸出的時候,實際上就是輸出了陣列a 的第一個元素,就是1。
1.有如下程式, 該程式的輸出結果是( ) main( ) { int a[3][3]={{1,2},{3,4},{5,6 5
2樓:free發哥降臨
int main( )
,,},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)
s+=a[i][j];
printf("%d\n",s);
a[2][2]沒賦值為0
3樓:匿名使用者
#include
void main ()
,,},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j
printf("%d\n",s);
}執行結果14
; 以下程式執行後,輸出結果是fut(int **s, int p[2][3]) {**s=p[1][1]; }main() {int a[2][3]={1,3,5,7
4樓:樂酷科技
程式是有點問題的
修改如下
專:#include
void fut(int **s, int p[2][3])void main() ,*p;
p=new int;
fut(&p,a);
printf("%d\n",*p);}
輸出為屬0
#include
5樓:兄弟連教育北京總校
#include
usingnamespacestd;
intmain()
1.和2.的句子 為什麼可以作為 if(!
b)下的一個語句之所以可以作為一個語句,是因為程式塊的內部是if-else語句,else 是和離它最近且未和任何 else 配對的 if 進行配對的,雖然沒有使用{}進行限定,但是由於預設的if-else配對關係,會自動將if(!b)裡面的if-else配對,當作一個塊執行!
以下程式的輸出結果是 main() { int a[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf("%d%d%d%d",a[0][3],a[1
6樓:
a陣列雖然定義的是4x4的,但是初始化列表中僅僅初始化了其中3x3的部份,所以a[0][3]、a[3][0]的值都是沒有初始化的,是隨機值,所以選d
7樓:匿名使用者
正確答案bai是:a
解析:在按題du目中的語句對陣列zhia[4][4]賦值後dao,陣列中的各個元素值如專下:
第一行屬:1,3,5,0
第二行:2,4,6,0
第三行:3,5,7,0
第四行:0,0,0,0
因此,輸出的元素a[0][3]=0;a[1][2]=6;a[2][1]=5;a[3][0]=0。故選項為a。
以下程式的輸出結果不確定
8樓:倒黴熊
因為超出了a陣列的範圍了,
這裡*(p+5)就等同於a[5].
但是,很顯然,a陣列的下標最大到4,不會到5的,因為下標從0開始。
所以其值就不能確定了,也許0,也許是別的。
9樓:無憂網事
因為c語言陣列下標是
bai從du0開始計數的。定義陣列zhiint a[5],指定陣列a有dao5個元素,這5個元素從a[0]到版a[4]。程式中*(p+5),實際上權是a[5],指向陣列的第6個元素。
但是陣列a沒有第六個元素,*(p+5)這個引用超界了。這種超界,c語言不給出任何提示。
10樓:
p指向a[0]。所以p+5越界了。所以是不確定的結果。
下面程式的執行結果是( )。 main( ) { int b[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int *q=b;
11樓:匿名使用者
p是b的首地址,為int型,也就是第一個元素,p++表示下一個int型資料, 所以p+2 表示第三個元素即3 ,選擇c,
注意,這個跟資料型別有關,如果p為int,b為char, 一般的 int是16位,char是8位,即2倍關係,那麼這個時候p+(a)就相當於b+(2a)了,a是步長。
12樓:匿名使用者
q是指標,初始q指向陣列首位,q+2表示,從初始位置向後移動兩個元素,所有就指向了第三個,即3.所以選c
13樓:樂行樂
c.3int *q=b; b是b[0]的地址,所以q些時也指向b[0]
*(q+2) ); q[0+2]等於q[2]等於b[2];
有以下程式, #include
14樓:聽不清啊
#include
main()
,,};
int b[3]=,i;
for(i=1;i<3;i++)
b[i]=a[i][2]+a[2][i];
for(i=1;i<3;i++)
printf("%d",b[i]);
printf("\n");
}程式執行後的輸出結果是(1418)
這是因為b[1]=a[1][2]+a[2][1]=6+8=14b[2]=a[2][2]+a[2][2]=9+9=18而輸出時沒有空格,所以14與18就連起來了。
15樓:1997排長
a[i]是指a陣列的第i項元素,沒有什麼執行不執行的。
a[i]++就是把該元素+1了。
如果有這樣的語句:x = a[i]++; 那麼才是先把該元素賦值給 x,然後該元素自己+1。
注:a[i]++ 是個表示式,其值為 a[i] 的原始值,這個表示式求值後,a[i]自身+1。
16樓:徐鼕鼕
#include
int main ()
;for (i=1;i<3;i++)
for(j=i;j<3;j++) printf("%d",a[i][j]);
printf("\n");
}陣列a[3]是由a[0][0]~a[2][2]組成的,第一層迴圈取 i 為1,而j等於i開始就是a[1][1]=5,a[1][2]=6,第二層迴圈i為2,j等於i開始就是a[2][2]=9了,輸出結果是569.
17樓:
#include
main ()
;for (i=1;i<3;i++)
for(j=i;j<3;j++) printtf(」%d」,a[i][j]);//a[1][1]=5,a[1][2]=6,a[2][2]=9
printf(」\n」);}
以下程式執行後的輸出結果是maindouble a int b b a 10 4 printfd,f n」,b,a
10 4得到的是整數2,將2賦給a,在輸出a是顯示2.000000 如果要得到2.500000,需要10.0 4或10 4.0 這是因為10和4都是整數,兩個整數的商仍是一個整數,所以10 4是等於2而不是2.5 因為10和4都是整.所以結果也是整.你把10或是4其中一個加一個.0結果就會有小數了....
下面程式的運算結果是,下程式的執行結果是
執行後,會輸出 123 這個程式編譯都無法通過,所以會卡在編譯的地方 下程式的執行結果是 a此題中y,z為靜態變數,程式結束時才會釋放記憶體。第一次呼叫f1 時,內x a 1,z 3,y 0,執行y z 後y 1,z 4 所以返 容回x y z 1 1 4 6.第二次呼叫f1 時,x a 1,z 4...
c程式執行結果是
下面三句有問題 case 0 printf break case 1 printf break case 2 printf break 改為 case 0 printf break case 1 printf break case 2 printf break 執行結果 第一次錯誤是死迴圈和除數為0...