1樓:香夢沉酣
printf( "'%c' - 是一個bai", c ); 這句話就
是說你從鍵盤du輸入的字元zhi c是一個 數字或者什麼的dao
,根回據你後面的判斷才顯示,答那條語句只是一個簡單的輸出語句,%c跟後面的c是對應的,%c是輸出一個字元,你定義的c是字元型別。有什麼問題可以繼續問我哦!
2樓:匿名使用者
『a』 是一個小寫字母 輸出結果是這種樣子。
printf( "'%c' - 是一個", c );
prinf輸出語句,%c代表變數c輸出為字母。輸出結果是 『(輸入變數c的字母)』-是一個
3樓:匿名使用者
c 是你輸入的那來個字元,
%c是表示後自面的c輸入的是字元,就好像如果輸入是要當數字處理的話就寫%d,所以這裡表示的是輸出一行字是 xx是一個,xx這裡是你輸入的那個字元。然後程式去判斷如果你輸入的是小寫字母的話就在剛才那行字後面顯示「小寫字母」然後回車換行,結果就是全行顯示「xx是一個小寫字母」,以此類推,分別判斷是大寫,還是數字等等。希望你能明白
4樓:匿名使用者
貌似不用在%c上加單引號,這句應該是想要輸出:**是一個
**表示你輸入的字專符(c=getchar()這邊輸入的)
是一個後面不屬是還有輸出函式麼?就是為了判斷這個字元是:數字?大寫字母?小寫字母?回車鍵?空格?製表符?其它
5樓:匿名使用者
要在顯示器上顯示的格式 例如輸入『1』,顯示器顯示:1 -是一個數字
6樓:瘦瘦瘦__子
%c 是指輸出字元型資料;然後你後面的「' - 是一個」直接輸出,而後面跟的那個c 比如之前你賦值為a, 則答案是:a' - 是一個.
7樓:林藝輝
輸出格式如:輸入a,則輸出'a『- 是一個
c語言中比如printf(...%u...)和%d是一樣的,可是是什麼意思?還有%o,能否通俗點
8樓:
%u是用來輸出unsigned型資料的,既無符號數,以十進位制形式輸出。
%d輸出的是整型內資料,帶有負號。
通俗點就
容是用%d格式輸出的數可以帶有負號,%u輸出的書都沒有負號,用他們來輸出同一個正數結果是一樣的,單輸出負數時結果就不一樣了,如用%u格式輸出-1時結果是65535(turbo c環境下)
%o輸出的是八進位制數如:83轉化為八進位制是123#include
void main()
結果是:83,123
9樓:匿名使用者
c語言格式輸出小結
:(1)最常用的格式是%d,含義是以10進位制形式列印一個整數。內如果輸出的整數是負容數,則,輸出的第一個字元就是『-』號(2)%u格式與%d格式類似,只不過要求列印無符號10進位制整數。
(3)%o格式請求輸出8進位制整數
(4)%x和%x格式請求輸出16進位制整數。
%x格式中用小寫字母a,b,c,d,e,f來表示10到15之間的數%x格式中用大寫字母a,b,c,d,e,f來表示10到15之間的數共同點:8進位制和16進位制整數總是作為無符號數處理的。
(5)%s格式用於列印字串,與之對應的引數應該是一個字元指標,待輸出的字元始於該指標所指向的地址,直到出現一個空字元('\0')
才終止。
(6)%c格式用於列印單個字元:例如:
printf("%c",c); 等價於 putchar(c);
(7)%g,%f和%e這三個格式用於列印浮點值。
10樓:匿名使用者
這個叫做格式化字串
意思就是,遇到一個%n,那麼就從後面的引數列中以%n為型別填到%n處。
%u 是表示無符號整型,你看看c語言書上都有的啊
11樓:匿名使用者
暈 什麼叫無符號10進位制整數,呵呵 兄弟 這個你還沒整明白呢 你問輸出語法幹嗎??這有點鼻涕倒流了
c語言中scanf和printf都是輸出函式,兩者有什麼區別呢
12樓:匿名使用者
兩者完全不同,scanf是輸入函
數,printf是輸出函式,所以會經常同時出現。兩者也沒有可比性,需要弄清他們的概念。
1.scanf()是c語言中的一個輸入函式。函式 scanf() 是從標準輸入流stdio (標準輸入裝置,一般指向鍵盤)中讀內容的通用子程式,可以說明的格式讀入多個字元,並儲存在對應地址的變數中。
比如:scanf("%d %d",&a,&b);
函式返回值為int型。如果a和b都被成功讀入,那麼scanf的返回值就是2;
如果只有a被成功讀入,返回值為1;
如果a和b都未被成功讀入,返回值為0;
如果遇到錯誤或遇到end of file,返回值為eof。end of file為ctrl+z 或者ctrl+d。
2.printf()函式是格式化輸出函式, 它是c語言中產生格式化輸出的函式(在 stdio.h 中定義)。
用於向終端(顯示器、控制檯等)輸出字元。格式控制由要輸出的文字和資料格式說明組成。
printf 函式的一般形式為:
int printf(const char *format, [argument]);
format 引數是包含三種物件型別的一個字串:
(1)無格式字元複製到輸出流;
(2)轉換規範,每個規範導致在值引數列表中檢索 1 個或更多個項;
(3)轉義序列。
[argument]包含需要輸出的資料,可以是常量(字元常量、數字常量、字串常量),變數,以及運算式。此處的資料應當與前面的format中的格式控制符一一對應(如果不對應會產生錯誤)。
例子:#include
int main()
13樓:何度千尋
在使用scanf和printf函式時要加上#include 。其中scanf()是格式輸入函式,printf()函式是格式化輸出函式。
其通常的用法如下:
#include
int main()
14樓:匿名使用者
一、scanf函式的一般形式
scanf函式是一個標準庫函式,它的函式原型在標頭檔案「stdio.h」中,與printf函式相同,c語言也允許在使用scanf函式之前不必包含stdio.h檔案。
scanf函式的一般形式為: scanf(「格式控制字串」,地址表列); 其中,格式控制字串的作用與printf函式相同,但不能顯示非格式字串, 也就是不能顯示提示字串。地址表列中給出各變數的地址。
地址是由地址運算子「&」後跟變數名組成的。例如,&a,&b分別表示變數a和變數b 的地址。這個地址就是編譯系統在記憶體中給a,b變數分配的地址。
在c語言中,使用了地址這個概念,這是與其它語言不同的。 應該把變數的值和變數的地址這兩個不同的概念區別開來。變數的地址是c編譯系統分配的,使用者不必關心具體的地址是多少。
變數的地址和變數值的關係如下: &a--->a567 a為變數名,567是變數的值,&a是變數a的地址。在賦值表示式中給變數賦值,如:
a=567 在賦值號左邊是變數名,不能寫地址,而scanf函式在本質上也是給變數賦值,但要求寫變數的地址,如&a。 這兩者在形式上是不同的。&是一個取地址運算子,&a是一個表示式,其功能是求變數的地址。
void main()
注意&的用法!
在本例中,由於scanf函式本身不能顯示提示串,故先用printf語句在螢幕上輸出提示,請使用者輸入a、b、c的值。執行scanf語句,則退出tc螢幕進入使用者螢幕等待使用者輸入。使用者輸入7、8、9後按下回車鍵,此時,系統又將返回tc螢幕。
在scanf語句的格式串中由於沒有非格式字元在「%d%d%d」之間作輸入時的間隔, 因此在輸入時要用一個以上的空格或回車鍵作為每兩個輸入數之間的間隔。
如: 7 8 9或 7
89格式字串
格式字串的一般形式為: %[*][輸入資料寬度][長度]型別 其中有方括號的項為任選項。各項的意義如下:
1.型別
表示輸入資料的型別,其格式符和意義下表所示。
格式 字元意義
d 輸入十進位制整數
o 輸入八進位制整數
x 輸入十六進位制整數
u 輸入無符號十進位制整數
f或e 輸入實型數(用小數形式或指數形式)
c 輸入單個字元
s 輸入字串
2.「*」符
用以表示該輸入項讀入後不賦予相應的變數,即跳過該輸入值。 如 scanf("%d %*d %d",&a,&b);當輸入為:1 2 3 時,把1賦予a,2被跳過,3賦予b。
3.寬度
用十進位制整數指定輸入的寬度(即字元數)。例如: scanf("%5d",&a);
輸入:12345678
只把12345賦予變數a,其餘部分被截去。又如: scanf("%4d%4d",&a,&b);
輸入:12345678將把1234賦予a,而把5678賦予b。
4.長度
長度格式符為l和h,l表示輸入長整型資料(如%ld) 和雙精度浮點數(如%lf)。h表示輸入短整型資料。
使用scanf函式還必須注意以下幾點:
a. scanf函式中沒有精度控制,如: scanf("%5.2f",&a); 是非法的。不能企圖用此語句輸入小數為2位的實數。
b. scanf中要求給出變數地址,如給出變數名則會出錯。如 scanf("%d",a);是非法的,應改為scnaf("%d",&a);才是合法的。
c. 在輸入多個數值資料時,若格式控制串中沒有非格式字元作輸入資料之間的間隔則可用空格,tab或回車作間隔。c編譯在碰到空格,tab,回車或非法資料(如對「%d」輸入「12a」時,a即為非法資料)時即認為該資料結束。
d. 在輸入字元資料時,若格式控制串中無非格式字元,則認為所有輸入的字元均為有效字元。例如:
scanf("%c%c%c",&a,&b,&c);
輸入為:
d e f
則把'd'賦予a, 'f'賦予b,'e'賦予c。只有當輸入為:
def時,才能把'd'賦於a,'e'賦予b,'f'賦予c。 如果在格式控制中加入空格作為間隔,如 scanf ("%c %c %c",&a,&b,&c);則輸入時各資料之間可加空格。
void main()
scanf("'c14f14%c%c",&a,&b);
printf("%c%c ",a,b);
由於scanf函式"%c%c"中沒有空格,輸入m n,結果輸出只有m。
而輸入改為mn時則可輸出mn兩字元,見下面的輸入運**況:
input character a,b
mnmn
void main()
scanf("%c %c",&a,&b);
本例表示scanf格式控制串"%c %c"之間有空格時, 輸入的資料之間可以有空格間隔。e. 如果格式控制串中有非格式字元則輸入時也要輸入該非格式字元。
例如:scanf("%d,%d,%d",&a,&b,&c); 其中用非格式符「 , 」作間隔符,故輸入時應為: 5,6,7
又如
則輸入應為
a=5,b=6,c=7g. 如輸入的資料與輸出的型別不一致時,雖然編譯能夠通過,但結果將不正確。
void main()
由於輸入資料型別為整型, 而輸出語句的格式串中說明為長整型,因此輸出結果和輸入資料不符。如改動程式如下:
void main()
執行結果為:
input a long integer
1234567890
1234567890 當輸入資料改為長整型後,輸入輸出資料相等。
鍵盤輸入函式
getchar函式getchar函式的功能是從鍵盤上輸入一個字元。其一般形式為: getchar(); 通常把輸入的字元賦予一個字元變數,構成賦值語句,如:
char c;
c=getchar();#include
void main()
使用getchar函式還應注意幾個問題:
1.getchar函式只能接受單個字元,輸入數字也按字元處理。輸入多於一個字元時,只接收第一個字元。
2.使用本函式前必須包含檔案「stdio.h」。
3.在tc螢幕下執行含本函式程式時,將退出tc 螢幕進入使用者螢幕等待使用者輸入。輸入完畢再返回tc螢幕。
void main()
輸入三個小寫字母
輸出其ascii碼和對應的大寫字母。
void main()
輸出各種資料型別的位元組長度。
二、printf printf的格式控制中,寬度是指輸出的資料要佔多少格,並不是說資料本身是多少格,比如我完全可以設定單獨的一個數字1佔20格.當然,設定的寬度如果比要輸出的數的實際寬度小的話,就失去作用了.比如12345,你設定寬度為4的話,它照樣輸出12345.
再比如這裡-3.2e+03的寬度是8,已經超過6了.這種情況,資料會原樣輸出,不管寬度.
至於是-3.2還是-3.22,我在自己電腦上執行結果是3.
22,而且根據我看過的書上的解釋,也應該是3.22.只能認為tc 2.
0的作者沒能很好地理解標準了,因此在tc 3.0的時候修正了這個錯誤.
最後,根據我所知道的,%e是以科學計數法形式輸出,而科學計數法規定了數的標準形式是整數位只有1位.所以你想控制數字位數的想法是無法實現的.
請問在c語言中1ll的意義,請問在c語言中1LL的意義
這個ll是long long int的意思,就是長長整型,c99標準的新東西。1ll也就是長長整型的1。c語言中的printf scanf sprintf sscanf等函式中需要用格式字串來控制資料的輸出格式。比如 printf lx 65535 將65535輸出為十六進位制格式 輸入引數 lx ...
誰能解釋一下C語言中字元變數的作用
首先,幾乎所有的成品商業軟體都需要與使用者進行交換,而軟體與人進行交換最基本的形式就是字元,或者說文字。對於字元或者說文字,不可能一直只讀取,而不儲存,若要儲存則必須使用字元變數。比如下面的 要儲存使用者建議的字串,沒有char變數是無法儲存的。char buf 256 printf 使用者建議 s...
c語言中return的用法,一個c語言中return的用法
跟return 沒有任何關係,肯定是scanf 的問題不然你用下面這個語句 c a b a b 代替 c max a,b 你再仔細檢查一下scanf 函式 不妨寫成這樣 scanf d,d a,b 輸入 3,4 注意輸入格式一定要與scanf 的格式一樣 你把scanf d n,d n a b 改為...