本文目錄一覽:
- 1、C語言請大佬解答下面這個程序是怎麼運行的?輸入-125
- 2、求幾個比較有趣,簡單的C語言源代碼 小白自己敲着練一下手感
- 3、一段簡單的c語言代碼
- 4、C語言題程序第二個輸出結果是124還是125呢?求大俠幫忙解釋
- 5、我知道c語言定義char的情況下’A’+’B’不等於131,想問但是-125是怎麼算出來的?
- 6、如何用51單片機產生125KHz的載波,求C語言代碼,晶振11.0592!
C語言請大佬解答下面這個程序是怎麼運行的?輸入-125
主函數中輸入-125後打印出-號,然後將-125取絕對值,用125調用函數fun——
k==2,用2去除125餘1,所以r=125%2中r為1。由於!1為0,所以跳過while循環進入for下一次循環。
k==3,用3去除125餘2,所以r=125%3中r為2。由於!2為0,所以再跳過while循環進入for下一次循環。
k==4,用4去除125餘1,所以r=125%4中r為1。由於!1為0,也跳再過while循環進入for下一次循環。
k==5,用5去除125餘0,所以r=125%5中r為0。由於!0為1,所以執行while循環體:先打印出5(k的值),再n=n/k==125/5=25;由於251則再打印出*號。這一循環結果輸出是5*。下面r=n%k即r=25%5==0,而!0為1,所以進入while第二次輪循環。
第二次while循環中先打印出5(k的值),再n=n/k即n=25/5==5,並打印*號,屏幕顯示5*5*。
r=n%k即r=25%5==0,!0==1,所以再次進入while循環體:打印5,n=n/k即n=5/5==1,由於n1不再成立,所以不再打印*號。這時屏幕顯示5*5*5。
下面n=n%k即n=1%5==1,而!1==0,所以退出while循環進入for循環。
這時k==5,而sqrt(n)即sqrt(1)==1,顯然51不成立而退出for循環。
最後因n==1而這執行print退出fun函數(最後那句輸出是解決n是質數的)。
由於主函數中先打印了-號,所以最後顯示結果是-5*5*5。
求幾個比較有趣,簡單的C語言源代碼 小白自己敲着練一下手感
最簡單的模擬計時器:
#includestdio.h
#includeconio.h
#includewindows.h
int m=0,s=0,ms=0; //m是分 s是秒 ms是毫秒
//以下是5個自編函數
void csh( ); //初始化界面
void yinc(int x,int y); //隱藏光標的函數(y值設為0就會隱藏)
void jishi( ); //計時器運行(每100毫秒變化一次)
void Color (short x, short y); //設定顏色的函數(y設為0就是黑底)
void gtxy (int x, int y); //控制光標位置的函數
int main( ) //主函數
{ csh( );
getch( );
while(1)
{ jishi( );
Sleep(100); //間隔100毫秒
if( kbhit( ) )break; //有鍵按下就退出循環
}
return 0;
}
void csh( ) //初始化界面
{Color(14,0); //設定淡黃字配黑底
printf(「\n\n\t 計時器」);
Color(10,0); //設定淡綠字配黑底
printf(“\n\t┌───────────┐”);
printf(“\n\t│ │”);
printf(“\n\t└───────────┘”);
gtxy(10,4); //光標到屏幕第10列4行處輸出
Color(7,0); //恢復白字黑底
printf(” 00:00:00 “);
yinc(1,0 ); //隱藏光標(yinc代表隱藏)
return;
}
void jishi( ) //計時器運行
{ms+=1;
if(ms==10){s+=1;ms=0;}
if(s==60){m+=1;s=0;}
gtxy(10,4);
Color(9,0); //設定淡藍字配黑底
if(m9) printf(” %d:”,m);
else printf(” 0%d:”,m);
Color(14,0); //設定淡黃字配黑底
if(s9) printf(“%d:”,s);
else printf(“0%d:”,s);
Color(12,0); //設定淡紅字配黑底
printf(“0%d”,ms);
}
void gtxy (int x, int y) //控制光標位置的函數
{ COORD pos;
pos.X = x;
pos.Y = y;
SetConsoleCursorPosition ( GetStdHandle (STD_OUTPUT_HANDLE), pos );
}
void Color (short ForeColor= 7, short BackGroundColor= 0) //設定顏色的函數
{ HANDLE handle = GetStdHandle ( STD_OUTPUT_HANDLE );
SetConsoleTextAttribute ( handle, ForeColor + BackGroundColor * 0x10 );
}
void yinc(int x,int y) //隱藏光標的設置(gb代表光標)
{ CONSOLE_CURSOR_INFO gb={x,y}; //x為1-100,y為0就隱藏光標
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), gb);
}
一段簡單的c語言代碼
這個問題很簡單。。
當——出現在變量前時,優先級是最高的,所以,你那個程序,編譯器會先做三次自減計算,結果為一,而你補充那個,系統會理解為W——,這個時候優先級沒有乘法高,編譯器先做×運算,再做W--運算,所以結果會是125,運算過後,W的值變為8。
C語言題程序第二個輸出結果是124還是125呢?求大俠幫忙解釋
第一個運行後,data=124;打印
124,相信你也清楚。下面是第二個:
data=change(data);
首先,調用change
函數,這個函數的
返回
其實
還是
=形參,就是你放多少進去,返回多少回來,然後,它偷偷修改了地址裏面的東西(+1);
現在,我們來看看第二條,調用的時候,data=124,它放進去
124,返回來
還是
124,然後偷偷修改
data
的內容成
125;可惜,賦值語句
是
右結合的,要等右邊運算完。而
change
函數里
的++,在函數結束的時候,就執行了。也就是說,函數退出來的時候,data=125,但函數的
返回值
是
124;然後
把這個
124
又賦值給
data,於是
data
又從
125
變成了
124;
如果你想驗證,可以在
change
中,int
test=*data++;printf(“%d,”,*data);return
test;
2個
124
中間
的
125
,就是
被
偷偷修改
data,(124,124
,
125
,
124)
我知道c語言定義char的情況下’A’+’B’不等於131,想問但是-125是怎麼算出來的?
‘A’+’B’=131=10000011;
但是在計算機中用補碼錶示,所以:10000011=11111100+1=11111101=-125.(補碼=反碼+1,符號位不變)。
所以char型是考慮符號位的。
你可以試一下unsigned char,這個不考慮符號位,結果是131.
如何用51單片機產生125KHz的載波,求C語言代碼,晶振11.0592!
125khz是8us周期,如果出方波的話,每4us就要反轉一次電平。
11.0592MHZ下,51隻能跑到1.08us的周期,更本來不及處理。
以51的特性,換用24Mhz的晶振,每8個周期一次反轉,估計除了出方波就什麼也不能幹了。C語言就算了,51壓根就做不了。
怎麼改?換單片機。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/199046.html