1樓:
a裡面str本來就是個指向字串的指標。
d裡面p[2]表示字串的第三個字元,加&才表示地址。
2樓:匿名使用者
b. char *p; scanf("%s",p);
d. char str[20],*p=str; scanf("%s",p[2]);
a:str是陣列的名字,它單獨出現時候代表的是該陣列的首地址,
&用在變數前代表取其地址,對str這個地址取地址,不是程式想要的吧!
b:p做為一個指標,沒有初始化.記住,指標一定要初始化後才能使用!
c:str[2]的意思其實是 *(str + 2),
所以&str[2]其實就是&*(str + 2),也就是str + 2,還是個地址,所以是正確的.
d. char str[20],*p=str; scanf("%s",p[2]);
:p[2]代表 *(p+2),代表第三個字元了
3樓:樓淳靜
a. char str[20]; scanf("%s",str);
4樓:匿名使用者
a裡面str前不能加&
d裡面要加&
5樓:雷
b應該也是對的啊!!
為什麼b不對 !!
b是對的!!
其他同意樓上的!!
c語言題一道,如下: 若變數都以正確定義,則以下程式段的輸出是: int a=10;b=50;c=
6樓:小心情的月寒塘
a=10b=30c=10
首先判斷條件那裡沒打括號意味著判斷條件只執行到第一個語句為止a=10
b=50
c=30
判斷a>b 否 不執行 a=b
執行b=c=30
執行c=a=10
7樓:匿名使用者
a=10b=30c=10
因為 if 條件成立的話,沒有花括號的情況預設執行後面的一條語句
8樓:匿名使用者
a=10b=30c=10
一道c語言題:下面的程式段執行後,輸出結果是
9樓:匿名使用者
答案是0;
int i,j,x=0;
static int a[8][8]; //定義的bai時候系統自動初du
始化,把陣列中zhi所有的元dao素都賦成0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=2*i+j; //將陣列右上角的回3x3的子矩答陣賦值;(注意,此時結束時j的值是3)
for(i=0;i<8;i++)
x+=a[i][j];//這裡j的值是3,所以相當於把a[0][3] a[1][3] a[2][3]到a[7][3]累加到x上,而在上面的賦值中又沒有給這些值賦值,所以這些值都是0;而x的初值也是0,所以最後輸出的x應當為0;
printf("%d",x);
10樓:匿名使用者
用來static定義陣列,就已經給陣列初值了源,即使所有的值均為0.
你用for在給陣列賦值的時候,只給了a[0][0]至a[2][2]的值,即那些值現在已經有變化了.在經過兩個for之後,j的值應該變為了3.
那麼再經歷下一個for,應該執行的語句就是x+=a[i][3],可想而知,不論你經歷多少次迴圈,只要j是3,那麼些a[n][3]就是0.因為第3列根本就沒有變化過.值仍舊為0
所以結果為0
11樓:匿名使用者
static int a[8][8], a中的每個元素都是0
第三個for的時候 j=3, a[i][3]都是0,所以結果是0
12樓:匿名使用者
是0 e:\case.win\nasm>gcc z.c -o z.exe
e:\case.win\nasm>z
0 e:\case.win\nasm>
#include "stdio.h"
int main()
c語言選擇題,求解釋,c語言選擇題,求大佬解釋一下答案為啥是D
這題沒有正確答案,輸出應該是12 p 20指向了str 1 也就是 中國石油大學 這個字串,根據定義看,這是個gbk編碼的漢字字串,而strlen是按位元組算長度的,一個漢字兩個位元組所以 中國石油大學 長度是12 還有,定義裡的 char p str,雖然按照c語言規則是可行的,但嚴格來說還是應該...
C語言選擇題,求詳解,C語言選擇題一個,求詳解
a 是對的,換行會看的更加清晰。define size 10 把size的巨集定義為10 char str1 size 的意思 就是char str1 10 char str2 size 2 的意思就是char str2 12 b,char str 裡面應該要放入具體的容量,比如 char str ...
c語言這道選擇題看不懂,c語言一道選擇題不懂
選b。scanf輸入的是x 0 0 x 1 0 x 2 0 分別為2,4,6,其它位置為0 然後輸出x 0 0 x 0 1 x 1 0 為輸出2,0,4,答案為b。二維陣列可以看成是一維陣列,它的每個元素都是陣列。如x 0 它就是一個陣列,scanf d x 0 就是對x 0 一維陣列的第一個元素x...