-
它在書中寫錯了。
無限迴圈的原因是 j 被定義為無符號字元,所以它總是正數,而 for 迴圈不能跳出來,所以將 j 定義為 char 就足夠了,而不是 char。
但結果不是預期的10111,還是需要放的。
y<<=1;
相反。 y>>=1;
顯然,需要右移才能把握住每一點。
只需修改這兩個地方即可。
-
變數 j 0 255 的範圍始終大於 0
j 定義為 char
修改後的程式。
#include
void main()
unsigned char y=23,i=0,a[8];
char j;
doa[i]=y&1;
i++;y<<=1;
while(y>=1);
for(j=i-1;j>=0;j--)
printf("%d",a[j]);
printf("");
-
您可以獲得您要求的結果!
#include
void main()
unsigned char y=23,i=0,a[8];
int j;改變! 改變! 改變! 改變! 改變! 改變! 改變! 改變! 改變!
doa[i]=y&1;
i++;y>>=1;改變! 改變! 改變! 改變! 改變! 改變! 改變! 改變!
while(y>=1);
for(j=i-1;j>=0;j--)
printf("%d",a[j]);
printf("");
-
1.首先,開啟我們的VC++程式設計軟體,點選左上角的“檔案”選單,選擇“新建”。
3. 然後,填寫專案名稱以及建立位置,然後單擊“確定”按鈕。
4. 接下來,在專案型別中選擇“空專案”,然後單擊“完成”按鈕。
5.然後,會出現乙個專案資訊提示框,我們只需要點選“確定”按鈕即可。
6. 建立專案後,單擊“檔案”選單,然後選擇“新建”按鈕。
7. 在新專案中選擇建立 C++ 原始檔。
8. 然後,填寫我們原始檔的檔名,點選“確定”按鈕(這裡的檔名可以與專案名稱不同)。
9. 然後,我們可以編寫程式的**。
10. 編寫程式後**。
11. 單擊工具欄中的“編譯”按鈕以編譯程式。
12. 提示“0 個錯誤,0 個警告”。
13. 單擊工具欄中的“鏈結”按鈕以建立我們的 C 程式。
14. 通過這種方式,我們成功地建立了我們的 C 語言程式。
-
首先開啟它,在裡面建立乙個新的C++檔案,寫上名字,進去編碼
-
來源** > 預處理>編譯 >優化 >編譯>鏈結 -->可執行檔案。
-
沒有迴圈體? 後來“; “這是乙個迴圈,只是乙個語句,但沒有”{}”。
A 過了一會兒有乙個; ,後跟 --x 而不執行將導致無限迴圈。
x=5 in 而 in b 始終為真,因此這將是乙個無限迴圈。
每次在 c 中新增 x++ 時,x- 在迴圈中再次減小,因此條件 x<10 始終為真,並且將處於無限迴圈中。
在 d 中,do 在前面,會先在迴圈中執行一次,然後確定條件,所以當 ++x 和 x 到 101 中條件不滿足時,迴圈就會退出。
因此,選擇了 D。
-
d 不是乙個無限迴圈。
而(滿足條件)。
因此 a while(x) ; 由於 x 從不等於 0,因此迴圈部分中沒有對 x 值執行任務操作。
b while(x =5) ;x = 5 的條件始終為真,所以這是乙個賦值操作,結果肯定是賦值成功。
c 在 for 語句中,即 for x++ 和 for x-- 所以 x 的值始終為 0,並且始終滿足 x<10 的條件。
-
我不認為 d 會形成乙個無休止的迴圈。
A:x 初始化為 10
while(x);它正在執行乙個無限迴圈(當 x 為 true 時執行乙個空語句),並且 b:x 初始化為 10
while(x=5);x=5 是將 x 賦值為 5,則為真。 因此,執行 while 空語句。
所以無休止的迴圈。
c:在for語句中,x被初始化為0,然後在迴圈體中,x的值在0到1之間不斷跳躍,始終滿足for語句的條件,所以一直處於無限迴圈中。
d:x 初始化為 100
做一次 ++x,然後 x 的值是 101
但是它不符合while條件判斷,所以它退出了。
所以它不會形成乙個無休止的迴圈!
-
迴圈是乙個語句,如果想跟上多個語句的步伐,必須將 {} 括起來形成復合語句,但符合的語句在語法上仍然是乙個語句,所以乙個迴圈只能是乙個語句,而 C 中的空語句就是乙個";"這也是乙個可以用作迴圈的語句,但它什麼也做不了!
-
a)int x=10;
while(x);-x;
while(x);是 while(10); 在 c 中,該值被轉換為邏輯值,非 0 是邏輯 1,因此迴圈是無窮無盡的。
b)int x=10;
while(x=5);
同上,無限迴圈。
c)int x; for (x=0;x<10;x++)x--;
執行乙個 x 值不變的迴圈,即無限迴圈。
d)int x=100;
do while (x>=1000);
這不是乙個無休止的迴圈。
-
問題 7 中有錯誤。 輸出應為 printf("%s",p);而不是 *p。 匯出帶有 %s 的 *p 將崩潰。
要用 p 計算答案,迴圈條件是 p 分別輸出 9876 和 876
由於輸出中沒有空格或換行符,因此答案應該是。
問題 8,在迴圈中,當 i%2 不為 0 時,集合為星號。 即 i=1 3 5 7
所以輸出是:
-
數 1 到 9 個偶數和奇數。
-
首先,迴圈 i = 1、2、3、4、5、6、7、8、9 共 9 次。
當 i==2,4,6,8 if 條件為 true 時,執行 a++,所以 a=4; 然後,continue 表示新迴圈的開始,此時 b++ 不執行;
僅當 i==1,3,5,7,9 且 if 條件不為真時,b++ 才會執行 5 次。
因此 a=4,b=5答案是b
-
迴圈體是乙個do-while迴圈,在執行乙個語句的時候,第一次是先輸入do{},然後執行該語句,第乙個迴圈:a+=2; ,這句話的結果是 a 被重新分配給 (10+2=12); 「x+=a;,這句話的結果是 x 被重新賦值為 (0+12=12); if(x>50) 為 false,並且不執行 break; 」;while(a=14);有兩個過程,首先,變數 a 被重新賦值給 14,其次,表示式 a=14 被平滑執行,然後結果是 true,所以 while 迴圈繼續。
第二週期:a+=2; ,這句話的結果是 a 被重新賦值為 (14+2=16); 「x+=a;,這句話的結果是x被重新分配給(12+16=28); if(x>50) 為 false,並且不執行 break; 」;while(a=14);有兩個過程,首先,變數 a 被重新賦值給 14,其次,表示式 a=14 被平滑執行,然後結果是 true,所以 while 迴圈繼續。
第三週期:a+=2; ,這句話的結果是 a 被重新賦值為 (14+2=16); 「x+=a;,這句話的結果是 x 被重新分配給 (28+16=44); if(x>50) 為 false,並且不執行 break; 」;while(a=14);有兩個過程,首先,變數 a 被重新賦值給 14,其次,表示式 a=14 被平滑執行,然後結果是 true,所以 while 迴圈繼續。
第 4 個週期:a+=2; ,這句話的結果是 a 被重新賦值為 (14+2=16); 「x+=a;,這句話的結果是 x 被重新分配給 (44+16=60); if(x>50) 為 true 並中斷; ,所以跳出迴圈。
輸出變數 a 和 x 的值,即 a=16 x=60。
-
你無法清楚地閱讀你的 **6 或 7 行。
-
這不是將十進位數轉換為二進位數的演算法嗎? 當 64 轉換為二進位時,它是 1000000。
-
當 a=2 時,c = 2%2 = 0
a = 2/ 2 = 1.
b[i] = 0.
當 a = 1 時,c = 1%2 = 1
a = 1/2 = 0
週期結束。 最後一位數字是 1
-
你錯的原因是,在第一步中,當 i=0 時,a=0 為真,但 b=0 1 應該等於 1,你寫 b=0,這導致少乙個 1
-
迴圈執行後。
a=0+2+4+6+8+10=30
b=1+3+5+7+9+11=36
當你數 b 時,你從 1+3 開始,你數 0+3。
首先,我會明確地告訴你,選項 c 是正確的,選項 A strcpy 是乙個字串複製函式,它可以將字串 “China” 複製到字元陣列 str2 中並覆蓋 str1 中的 “beijing”,選項 c strcat 是乙個字串連線函式,可以將 “China” 連線到“beijng”的後面。 因此,C. >>>More
總結。 kiss 程式的輸出是:“ababa”。
在程式中定義乙個字元陣列 a,並初始化為"ababa"。在 main 函式中,呼叫函式 f(&a[1]),即將 a[1] 的位址傳遞給函式 f,p 指向 a 陣列中第二個字元“b”的位址。 然後,在函式 F 中,使用 for 迴圈將字串(即字元陣列)P 遍歷到字串,並使用 if 語句確定它是否為小寫字母,如果是,則從字元的 ASCII 程式碼中減去 32 以將其轉換為相應的大寫字母。 >>>More