1樓:匿名使用者
b不對,正確的是ch=getchar()
c是對的
2樓:聽不清啊
答案c是對的,答案b是錯的。
getchar 由巨集實現:#define getchar() getc(stdin)。getchar有一個int型的返回值.
當程式呼叫getchar時.程式就等著使用者按鍵.使用者輸入的字元被存放在鍵盤緩衝區中.
直到使用者按回車為止(回車字元也放在緩衝區中).當使用者鍵入回車之後,getchar才開始從stdio流中每次讀入一個字元.getchar函式的返回值是使用者輸入的字元的ascii碼,如出錯返回-1,且將使用者輸入的字元回顯到螢幕.
如使用者在按回車之前輸入了不止一個字元,其他字元會保留在鍵盤快取區中,等待後續getchar呼叫讀取.也就是說,後續的getchar呼叫不會等待使用者按鍵,而直接讀取緩衝區中的字元,直到緩衝區中的字元讀完為後,才等待使用者按鍵.
getch與getchar基本功能相同,差別是getch直接從鍵盤獲取鍵值,不等待使用者按回車,只要使用者按一個鍵,getch就立刻返回,getch返回值是使用者輸入的ascⅱ碼,出錯返回-1.輸入的字元不會回顯在螢幕上.getch函式常用於程式除錯中,在除錯時,在關鍵位置顯示有關的結果以待檢視,然後用getch函式暫停程式執行,當按任意鍵後程式繼續執行.
3樓:風影美
你這答案錯了吧。。b絕對是錯的
int getchar(void); getchar函式定義是這樣的,所以用法一般是ch = getchar();
c是對的,只要是一個數字就行
有個c語言題目,請大家幫幫忙,謝謝!!!!
4樓:◆江城子
0x12345678=0001 0010 0011 0100 0101 0110 0111 1000
按低位儲存,八位一個位元組,應該是b
5樓:匿名使用者
lz程式環境 tc下,
union
r, *s=&r;
一個聯合中的資料成員在記憶體中的儲存是互相重疊的,每個資料成員都在相同的記憶體地址開始。它們共享同一塊記憶體。union的長度為其內最長成員的長度,本題來說,在tc環境下是4個位元組。
並且聯合的儲存是:
低地址存高位位元組,高地址存低位地址。
0x12345678=0001 0010 0011 0100 0101 0110 0111 1000
八位一個位元組,剛好4個位元組。
按照儲存原則,在讀取這塊記憶體的時候,s->c[0]指向的地址塊的編碼實際上是 0111 1000 所以輸出 0x78;
假如輸出s->c[1]指向的是 0101 0110 輸出 0x56;
假如輸出s->i[0]指向的是 0101 0110 0111 1000 輸出5678;
假如輸出s->i[1]指向的是 0001 0010 0011 0100 輸出 1234;
環境是tc,如果在c++下面,鑑於現在的機器都是32位了,int變為了4個位元組,所以此時這個union的長度變為了8個位元組;
6樓:
在windoes下選b
其它的就可能不是這個答案了
主要是由機器存放位元組的順序來決定的
7樓:匿名使用者
~~~~~~~~~~
8樓:
答案是b,分析如下:聯合體r變數k是長整形佔32位4個位元組,最大數為+2147483647,s->k=0x12345678;給k附值,其中一個十六進位制數佔4位,因為儲存是從低位開始且一個位元組一個位元組,即78,56,34,12正好存滿。s->c[i]是以位元組為單位讀取,所以c[0]就是第一個位元組78,如果s->c[4]會輸出s->c[4]free;說前本人已在tc上驗證。
這種題在c二級上常見。 謝謝觀讀!!
9樓:匿名使用者
你定義的共用體型別union 包含3個成員變數,成員變數它們的起始地址都是相同的,成員變數不是順序的儲存,是疊放在一起的,其中i 陣列佔4個位元組,k 變數佔4個位元組,c陣列佔2個位元組,共用體型別的長度為最大成員所佔空間的長度4個位元組,定義的 r變數是共用體型別的變數,s是指向r變數的指標,執行s->k=0x12345678;是對r變數中的k 成員進行賦值,0x12345678的字首0x表示該資料是16進位制的資料,因此每兩個數就佔1個位元組,按照低位元組存在低地址原則,78應該存入r變數的第一個位元組,56存入第二個位元組,34存入第三個位元組,12就存入第四個位元組,printf(%x\n,s->c[0]);的含義是按16進位制形式輸出s->c[0]中的資料,也就是r變數中的第一個位元組,即78。故選 b.
10樓:匿名使用者
#include
main()
r,*s=&r;
s->k=0x12345678;
printf("%x\n",s->c[0]);
} //題目有點語法錯誤
資料在記憶體中是以二進位制儲存的
0x12345678儲存為
10010001101000101011001111000而c[0]正好指向r所佔記憶體的最後8位即01111000二進位制的01111000以16趕製輸出,結果就是78
11樓:飄渺世間天
看機器了,在我的機器上int和long一樣是32個位(bit),char是8個位,而聯合體中的儲存空間是依聯合中佔位最多的型別來決定其儲存空間的,該聯合中int[2]共佔64位,long佔32位,char[2]佔16位,int[2]是佔的最多的,所以這個聯合體佔用的記憶體就是64位,所有資料共用這一塊64bit的記憶體。
16位數的每一位數相當於2進位制的4個位,所以2位數就佔8位也就是一個位元組(byte)(12,34,56,78各佔一個位元組),所以當:
s->k = 0x12345678時,
這塊64bit的記憶體的內容就是 0x????????12345678,問號代表沒有用到的位元組。
由於一個char佔8位,也就是一個位元組,資料從低位向高位儲存,所以c[0]的內容就是0x78,c[1]的內容就是0x56,(i[0] = 12345678,i[1]內容不確定),所以這一句:
printf(「%x\n,s->c[0]);
就以16進位制的方式列印出了一第個8位儲存空間中的內容,也就是0x78,效果同:
printf("%x\n",s->i[0] << 24 >> 24);
12樓:匿名使用者
程式修改如下,就能按你的要求輸出!
你設定的聯合有4位元組長,所以要設定c[4],要輸出最高位,在第4位元組是c[3],否則不能顯示"12"
#include
main()
r, *s=&r;
s->k=0x12345678;
printf("%x\n",s->c[3]);
printf("%x\n",s->c[0]);
printf("%x\n",s->i[1]);
printf("%x\n",s->i[0]);}
13樓:
我還暈哦
你寫**的格式真是爛的很捏
這題的答案比較複雜
你這4個如果一定要選的話只有b靠點譜!
14樓:玲ぺぅ瓏
跟本是題目錯了嘛。蒙人你啊。
沒答案。
15樓:
溢位了在編譯器裡面輸入sizeof(long),就可以看到long能夠佔用的位元組數,如果給他賦的值超過它佔用的位元組數,就會跑到後面的記憶體地址裡面,這裡是s->c,於是s->c的顯示值就應該是0x12345678的後面幾位,因此答案是b
一道c語言題,請大家幫幫忙,謝謝,求詳解啊
一道c語言的題目,請各位幫幫忙急,急得很!!先謝謝各位!!
16樓:自我程式設計
語法沒發現問題,如果你說的是邏輯問題,那隻能你自己核實,沒有註釋,不明白你這個**想實現什麼功能,除了賦值就是判斷,我看那個很長的與或組合的條件語句,你邏輯上有沒有理對,如果條件太長,你可以考慮把單個條件用變數接收,最後再用變數組條件句,可能會清晰點
17樓:
沒有發現什麼錯誤。你有什麼問題?
一個c語言題目,求解,求大佬幫幫忙,救救孩子吧。感謝!
18樓:聽不清啊
這個題目通過人工
bai計算比較du方便。首先確定個位數的zhi個數,個位dao數,因為必須要是奇數,所
版以有3種可能,再
權看千位數,因為不可以是零,所以有4種可能。剩下來的兩位數從四個數字中產生,所以有4×3種可能。
所以總數就是3×3×4×3=108種。
如果一定要用c語言編寫程式的話,那就直接寫一個輸出語句,輸出108就可以了。
問幾個c語言的題,請大家幫幫忙
19樓:高金山
32、求出4*4階矩陣的最小值及其所在的位置。
#include
int main()
return 0;
} 34、將一個字串逆置後接到原串的後面。
#include
int main()
35、將字元陣列a中的字串複製到字元陣列b,不允許使用字串複製函式。
#include
int main()
36、將字元陣列a中的字串中的每個字元按加4的方法加密到字元陣列b,輸出陣列a與陣列b中的字串。
#include
int main()
37、輸入一個字串,輸出每個大寫英文字母出現的次數。
#include
int main()
,i;gets(a);
for(i=0;a[i]!=0;i++)
if(a[i]<='z'&&a[i]>='a')n[a[i]-'a']++;
for(i=0;i<26;i++)
printf("%d ",n[i]);
return 0;
} 38、有五個學生,每個學生有四門課程,將有不及格課程的學生成績輸出。
#include
int main()
if(b==0)
return 0;
} 39、用選擇排序法對一維整型陣列中的十個數升序排序。
#include
int main()
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
} 40、用起泡排序法對一維整型陣列中的十個數升序排序。
#include
int main()
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;}
20樓:
32:main()
}33:直接定義了4*4階矩陣
main()
34:#include
void fun(char *s,int n)printf("%d",count);
}38:
main()
}39:
main()
printf("the sort array value:");
for(i=0;i<10;i++)
printf("%d",a[i]);
} 好累啊,你自己除錯下啊,有問題hi我
要解釋,C語言大一題目,一道大一c語言課程設計的題目,求大神
子表示式a b?a b 顯然的a b為真.執行a 由於逗號運算子是順序點,所以計算a b時a的值已經自增1 6 2 8 a 5b 2 給a,b賦值 a b?a b 滿足a b,執行a 反之,執行b a 是先返回a的值再自加一。a b a自加一後為6,此時a 6,b 2 三目運算子,前面的表示式為真,...
大一c語言考試題急,誰有大一C語言考試題?快考試了,跪求題庫
1 c源程式檔案的副檔名是 c 編譯後生成的檔名字尾是 obj 經過連線後生成檔案 名字尾是 exe 在vc 6.0中用run命令執行當前程式時,執行的程式副檔名是 exe 2 結構化程式的三種基本結構是 順序 選擇 迴圈 3 整型常量有三種表示方法,它們是 十進位制整數 八制整數 十六整數 4 表...
幫忙做一些C語言的題目。感謝,麻煩幫我做一些c語言的題目啊,謝謝啦
一 選擇題 1 下面四個選項組中,均是不合法的識別符號是 c a a p 0 do b a1 p2 int c 1a p a 11 d pow p1 12w 2 下面一組數中,合法的十六進位制數是 c a 18 b 0xa c 0x1g d 011 3 字串 abc d ef n 有 a 個字元。a...