本文目錄一覽:
有關C語言的幾道題,求答案及解釋
1、題目倒數第二句改為“輸入字符A後”的話,ch的值是’A’,getchar()是從標準輸入流讀取一個字符,並返回這個字符,賦值給了ch,所以ch的值就是你輸入的那個字符,你輸入A,它的值就是A
2、暫時還不是很明白,C和D都能在win-tc下編譯通過,值都存在變量str3,和str4裡面,可以通過printf(“%s”,strX);看,但是沒有字符串沒有存在指針指向的地址,不懂,指針還待學習……
3、輸出為goodgood;
*sp = s表示把s數組的首地址賦予指針sp,
sp = sp + 2讓指針sp往前移兩個位置,也就是它現在指向了s[2],原來是指向s[0]
sp = “to”我想是把“to”賦予sp,因為sp本身也是個變量,原來存儲的是s數組的地址,現在變成了“to”,如果你在後面加上
printf(“%s”,sp);
你會發現輸出的是to,
puts(s)就是輸出字符串s;
可以明顯發現,後面幾條語句根本沒有對數組S進行操作,所以輸出結果就是s初始化的值
*******************************************************************************
目前的認識就這些了
C語言 程序分析題 求詳解
這個程序應該是把
十進制數
轉換成
二進制數
輸出
#include
//
頭文件
void
main()
{
int
a,b[10],c,i=0;
//
a存儲待轉換的十進制數,b[10]存儲轉換後的二進制位,
//
c
是存儲
餘數
,
printf(“輸入一個整數\n”);
scanf(“%d”,a);
//
輸入需轉換的十進制數
while(a!=0)
//
只要a不為零,就繼續轉換
{
c=a%2;
//
把a除以2
的餘數賦值給c
a=a/2;
//
把商存入a進行下一次循環
b[i]=c;
//
把餘數存到數組中作為二進制中的一位
i++;
}
for(;i0;i–)
printf(“%d”,
b[i-1]);
//反向輸出餘數,即得到二進制
例如輸入4
因為4
!=
4
/
2
=
2((商=a)………..0(餘數=c=b[0])
因為2
!=
2
/
2
=
1((商=a)………..0(餘數=c=b[1])
因為1
!=
1
/
2
=
0((商=a)………..1(餘數=c=b[2])
因為
=
結束循環輸出
b[2]
b[1]
b[0]
即
100,也就是二進制的
4
兩道C語言題求解,知道的謝謝解答。(請寫出詳細分析過程!!謝謝!滿意答案與解釋者給分。)
第一題D項怎麼有兩項啊?
反正我確定*ps是絕對不能引用字母o的,因為*ps代表字母p的首地址。
第二題
沒答案
因為首先j=10,然後到下一步i=9,
!(j%i)=0,是假的,所以又進行下一步, 判斷(ij-1) ,實際上是99,又是假的。此次循環結束
所以又進行上一步j=11,然後又到下一步i=9,!(j%i)=0是假的,又進行下一步,910,假的。
於是返回上一步i=10,!(j%i)=0還是假的,1010還是假的。沒有任何步驟被執行。
不知你有沒有打錯什麼字?
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/200258.html