① c語言運行結果後面怎麼多了一個問號如何去掉菜鳥求助……
你的最後一行 printf("%c\n",X);應該是只有0~100時才可以輸出對應的字元X。但是你把它放在if語句的後面,那麼不論你輸入什麼數值,都要輸出X,但是當輸入數值小於0或者大於100時,X是沒有被賦值的。你應該把這條語句放在前面的4個對X賦值的語句之後。
② C語言這個代碼運行結果為什麼是問號
倘若樓主是想實現大小寫轉換的的話,你小寫字母應該是a-32,因為小寫字母的ASCII碼值大。而?也有ASCII碼值,是63,你可以去刻意控制輸入的值,先心中猜想,在對照看看
③ c語言字母大小寫轉換運行時總是轉換結果後自動帶個問號,怎麼回事
給出你的代碼,然後幫你解決
你試一下如下代碼:
#include <stdio.h>
int main()
{
char ch;
ch=getchar();
if ( ch >='A' && ch<='Z' )
printf("%c\n", ch+'a'-'A' );
else
printf("%c\n", ch );
return 0;
}
④ C語言運算符中問號是什麼意思
問號是條件運算符的意思,跟冒號組合使用。條件運算符優先順序高於賦值、逗號運算符,低於其他運算符。
表達式為:表達式1?表達式2:表達式3。先求解表達式1,若其值為真(非0)則將表達式2的值作為整個表達式的取值,否則(表達式1的值為0)將表達式3的值作為整個表達式的取值。
(4)c語言類型轉換出現問號擴展閱讀
條件運算符具有右結合性
當一個表達式中出現多個條件運算符時,應該將位於最右邊的問號與離它最近的冒號配對,並按這一原則正確區分各條件運算符的運算對象。如果在問號和冒號之間還有一個問號或者冒號,應該滿足就近配對,使結構不發生紊亂。
例如:
w<x ? x+w : x<y ? x : y與 w<x ? x+w : ( x<y ? x : y) 等價。
w<x ? x+w : x<y ? x : y與 (w<x ? x+w : x<y) ? x : y 不等價。
⑤ c語言中" : "(冒號)和問號是什麼意思
bool a = 1>3?false:true;
?: 是三元運算符由條件運算符組成的條件表達式的一般形式為:
表達式1 ? 表達式 2 : 表達式3,其中表達式 1、表達式2、表達式3,既可以是一個簡單的表達式,又可以是由各種運算符組成的復合表達式。
計算過程很好理解:先求表達式1的值, 如果為真, 則求表達式2 的值並把它作為整個表達式的值。 如果表達式1 的值為假,則求表達式3 的值並把它作為整個表達式的值。
(5)c語言類型轉換出現問號擴展閱讀:
C語言包含的各種控制語句僅有9種,關鍵字也只有32 個,程序的編寫要求不嚴格且以小寫字母為主,對許多不必要的部分進行了精簡。實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。
⑥ c語言這個程序怎麼輸出結果是一個問號,這是個連接字元串程序 #include "stdafx.h"
還有個問題是:mystrcat最後return s;
但是這個s已經不是指定字元串的開始了。換句話說,你成功的連接了字元串,但是你返回的是這字元串之後的地址空間。
char *mystrcat(char *s,char *ct) //字元串連接
{
char * const ret = s;
while(*(s++));
s--;
while(*ct)
*(s++) = *(ct++);
return ret;
}
⑦ C語言中,問號表示什麼意思
?用來判斷條件的真假,:用來根據判斷結果決定取值。
如(a<b)?a:b"是一個"條件表達式",如果a<b為真,則表達式取a值,否則取b值。條件運算符由"?"和":"兩個符號組成, 要求有3個操作對象,所以條件運算符也叫三目運算符。
條件表達式的一般形式為:表達式1?表達式2:表達式3
C語言的基本構成:
1、數據類型
C的數據類型包括:整型、字元型、實型或浮點型(單精度和雙精度)、枚舉類型、數組類型、結構體類型、共用體類型、指針類型和空類型。
2、常量與變數
常量其值不可改變,符號常量名通常用大寫。
變數是以某標識符為名字,其值可以改變的量。標識符是以字母或下劃線開頭的一串由字母、數字或下劃線構成的序列,請注意第一個字元必須為字母或下劃線,否則為不合法的變數名。變數在編譯時為其分配相應存儲單元。
⑧ C語言 輸出 問號
空格的原因是printf("the reverse line is:\n %s", rev);這句裡面有一個空格(你的格式是換行後空格輸出 所以有一個空格)
至於燙的原因 是
for (i = 0; i <= len; ++i)
rev[len - i] = ori[i - 1];
是當i=0的時候引用了ori[-1]是位置的內存,所以出現的
改為
for (i = 1; i <= len; ++i)
rev[len - i] = ori[i - 1];
就行了
ps:你用的是Windows編譯器 謝謝採納