1樓:匿名使用者
答案ac
a越界 ,不解釋了
c很明顯嘛,陣列名是什麼,是一個地址,是常量,常量可以自增麼,當然不可以,lz見過2++的麼,這個是錯的
d和e一個意思,只不過表達起來不同而已
2樓:匿名使用者
a錯的,陣列定義的a[5],也就是a[0]~a[4];
c,a是首地址,a++也就是自加1,從a[0]指向了a[1]
d,對指標接引用專,如果沒有改屬變a指標,*a就等於a[0],如果經過c選項a++,那麼*a就等於a[1]
3樓:匿名使用者
a ,c,d
a的錯誤是超過了陣列上限,因為陣列是從0開始的c,d的錯誤是把陣列當成普通變數運算了,沒有指定陣列數列
4樓:匿名使用者
答案是a ,c,
c: a是陣列的起始地址是不到改變的,所以錯了,
d:是一個指標引用,相當於a[0]
5樓:寒竹真人
a,陣列a的下標從0到4,5超出了下標最大值
d,不能對陣列使用*標誌
問一道c語言的問題。請高手解答!
6樓:匿名使用者
首先while(--k)這裡,括號
來裡的是自--k的返回值,--在k的前
bai面是先k減掉
du1再返回結果,因此執行zhi到這裡k為4,括號中的值為dao4,大於0應該是true,所以需要執行迴圈裡的內容。
下面是printf這個函式,首先要先計算出printf的引數的值,也就是k-=3的值,那麼這個表示式實際上就是k先減去3,再返回減掉以後的k的值,那麼應該是1,於是輸出也就是1
所以答案應該是a
本題主要考點就是--k,k--之類和k-=3之類的返回值和操作後k的值的關係。(這裡可以把語句當作函式來理解,因此有返回值一說)
7樓:匿名使用者
應該是a
while(--k) printf("%d",k-=3);
--k先自減,k變成4,printf("%d",k-=3); 裡面表示式先求值
內,k變成1,輸容出1,然後再--k先自減,k變成0,判斷while(0),結果跳出迴圈。
唉,我生平最討厭這種題……
8樓:匿名使用者
a吧第一次執行迴圈
k-=3
k=4-3=1
第二次--k先執行 k=0
while(0)退出吧
我也不知道,沒測試..順嘴胡說的,嘿嘿
9樓:望遠鏡裡的星星
答案:baia)1
第一次while條件判斷前,duk就先自減1,所以zhi是判斷條件時dao k=4 ,條件為真專(非0為真),進入迴圈體然後屬printf輸出時,k又自減3,所以 k=1,輸出1然後第二次while條件判斷前,k又先自減1,所以是判斷條件時 k=0 ,條件為假(0為假),所以結束迴圈
10樓:匿名使用者
答案:a
解釋:bai
k初始du 5
--k 4 //進入第一輪迴圈zhik-=3 1 //程式dao
列印出1
--k 0 //while的條件版為0,即false,跳出權迴圈,程式結束。
7道c語言題,求高手解答。
11樓:匿名使用者
1 swap呼叫的時候實參傳給形參,x給m,y給n 。而這裡面有一個重大的問題就是x與m並不是同一個記憶體單元,y與n也不是同一個記憶體單元,這就暗示著你對m和n的改變並沒有使得x和y有任何的效果,因為它們是不同的記憶體單元,所以你交換的只是m和n記憶體單元中的值,而對x y沒有任何影響,此題關鍵分清楚它們是佔據不同的記憶體單元的。這個主要就是對記憶體地址和記憶體中存放的值搞此就ok,所以指標要學好!
2 答案應該是c不是d 。 m成立 等價於m為真 等價於m非0 等價於m不是0 等價於m不等於0 即m!=0
3 答案應該是b不是d 。 由2題推導可知w等價於w!=0 而!w就是w!=0的否命題就是w==0
4 你再好好驗證一下吧,在vc6中printf("%");是沒有任何輸出的,只有printf("%%");才會輸出一個%
5 第二行是一個逗號表示式,但沒有用,你依次執行一下先是給x和y賦值6,接著把x賦給z,z=6,然後++y,y變成了7整個表示式的值是++y的值也就是7. 但你搞清啊,最後printf("%d",z);這個輸出的是啥? 是z的值啊!!
不是上邊表示式的值,z的值是6呀! 如果第二行這樣寫:z=(x,++y);這樣的話結果是7 注意看有沒有括號。
6 選b
7 應該是8,fseek的第二個引數應該是偏移量,第三個引數0說明是從頭開始,也就是數字1開始的,對於數字1它的偏移是0,數字2是1,數字3是2,依次數字9應該是8
12樓:匿名使用者
1、很常見的問題了,這麼跟你說吧,呼叫swap(x,y);的時候,把x和y複製了一份,成為形參,形引數據交換了,那麼x,y實際值沒變,不是嗎?
2、表示式m和表示式m!=0是等價的,c語言中所有的邏輯表示式的真假都是由表示式的值來判斷的,當值為非0數則為真,為0則為假。當m為非0時,m為真,m!
=0也為真,但m為0時,m為假,m!=0也為假。
3、同2
4、%本來就有自己的含義,也即是說合法的情況是%後面必須有一個格式符,如果沒有,編譯器也會認為合法,預設的情況,那就是%,只是如果你想列印一個%和一個s的話就不能只寫一個%了
5、優先順序的問題,逗號優先順序很低的,z=x,++y;等價於(z=x),(++y);
6、b7、第三個引數0等價於巨集seek_set,即檔案開始處,9
一道c語言選擇題,希望高手給出詳細解答!
13樓:匿名使用者
我覺得輸出的是「89」這個字串。
14樓:匿名使用者
這根本就個錯的程式,char*s="aa89gggh",得到的s指向只讀資料;應該是char s="aa89gggh";
執行結果見樓上。
15樓:
s是字串常量,存放在字串常量區,是不可修改的!
一道c語言的選擇題 希望高手給出詳細解答
16樓:is誰在看
字元常量是用單引號括起來的單個字元構成。有兩種表示方法:一種是用該字元的圖形符號,如'b' ,'y','*'。
另外還可以用字元的ascii碼錶示,即用反斜符(\)開頭,後跟字元的ascii碼,這種方法也稱為轉義序列表示法
17樓:匿名使用者
應該是這樣的:
b中的\ 後面最多只能有3個八進位制數,而它出現了4個。。
急求c語言高手解答三個題目!!!詳細說明最好!!!
18樓:匿名使用者
malloc在沒有足夠空間申請的時候會返回null,也就是0
因為&是取址運算子,注意,是運算。最後的q-p實際上等於q地址-p地址的偏移量,系統很智慧的給出了偏移5個int
realloc才可以在執行時改變空間的大小(陣列的大小)
19樓:與科技苦於
malloc給你的是地址,0地址就是null,while(1)一直執行,直到沒有記憶體可以申請,就返回null,此時p的值就為null,下面的語句向0地址寫入資料,程式就會終止
a[5]沒越界...就算越界了,比如a[6],雖然越界了,可不代表它沒有值,但他的值是不確定的對!
20樓:
1, malloc無空間時返回null,即0. 當指標指向0地址時,則是空指標,這裡是不允許直接寫入的。所以或奔潰退出
2. 陣列a的大小是6,因為5後面還有個逗號。 q指向第六個元素,p指向第1個元素,兩個整型指標相減為5.
3. 大小不是你想變,想變就能變。 一旦分配就不能再改變分配空間的大小了(除非釋放後重新分配)
21樓:匿名使用者
malloc返回連續的儲存單元的首地址 0地址不可用。
a陣列實際元素為 1 2 3 4 5 0 所以a[5]存在 地址差為5。
陣列一旦定義了,整個大小都不能變。 但是可以在程式執行時確定陣列長度(使用動態聯編定義動態陣列)
一道大一計算機c語言程式設計題,急求高手解答,謝謝,**等,感激不盡!
22樓:瘋瘋愛嬤嬤
#include
#include
int di(int x)
return y;
}int main()純手打
23樓:匿名使用者
題目自身有問題。
但是可以給你判斷質數的小函式int fun(x)
int fun(x)
24樓:匿名使用者
大概 就像這種一
樣:不過你的那個誰都懶得 # include# include# includestruct fri_... printf("謝謝使用
"); return 0; } /*增加聯絡人*/ void insert() { struct fri_list *ptr1,*ptr2,*p; char name[...
急求c語言高手解答題目詳細說明最好
malloc在沒有足夠空間申請的時候會返回null,也就是0 因為 是取址運算子,注意,是運算。最後的q p實際上等於q地址 p地址的偏移量,系統很智慧的給出了偏移5個int realloc才可以在執行時改變空間的大小 陣列的大小 malloc給你的是地址,0地址就是null,while 1 一直執...
c語言題目求解答,一道c語言題目,求解答!!!!!!!
include stdio.h void dfs int k int main int argc,char argv dfs n printf n return 0 執行樣例 一道c語言題目,求解答!scanf 函式中沒有精度控制。如 scanf 5.2f a 是非法的。不能企圖用此語句輸入小數為2...
一道c語言程式題目,求解答,一道C語言程式題目,求解答
上面的 中,沒有對s進行輸入,所以如果輸出s的話,指定會是亂碼的啊把指標調回p 0 的話,可以p 回去 或者在p改變之前,用tmp p儲存起始位置。struct stu tmp p p p tmp p 此外,我猜,這個程式中的s是為了儲存平均值?struct stu int main int i,l...