c語言結果分析

十進制:256
二進制:100000000
(9個二進制位)
而char型的數據最多隻能裝下8個二進制位,溢出了最高位1,所以當char型的數據被賦值為256時其實保存的結果是00000000,其實輸出的結果回是0;
當被賦予257(100000001)時,其實保存的結果是00000001,輸出的結果是1;

❷ C語言解析字元串

使用strstr函數,怎麼用具體的可以自己manpage,方法:檢測所有「=」和「;」之間的字元串。

❸ C語言程序解析

#include<stdio.h>
const int c=2009;
int main()
{
int n,p,s,i,j,t;
scanf("%d%d",&n,&p);//輸入2個數字11和2,存入變數n和p中.
s=0;t=1;//t的初始值為1
for(i=1;i<=n;i++)//循環1,循環運算 t=t*p%c運算式 n遍.
{
t=t*p%c; //t乘以p的積,對2009求余.並將得到的值賦給t.//注:求余的意思就是只取余數位.比如10%3,則求余就得到的是1.
for(j=1;j<=i;j++)//循環2,循環運算( s=(s+t)%c)
s=(s+t)%c;
}
printf("%d\n",s);
return 0;
}
//當i=1時,t=1*2%2009,得t=2.然後進入循環2循環1次,得到s=(0+2)%2009,得s=2;
//當i=2時,t=2*2%2009,得t=4,然後進入循環2循環2次:第一次得到s=(2+4)%2009,即s=6;第二次s=(6+4)%2009,得s=10;
//當i=3時,t=4*2%2009,得t=8,然後進入循環2循環3次...
//...以此類推執行n次循環1,即11次.循環2執行了(1+2+3+..+11)次,最後得到s.

❹ C語言編程解析

int menu();
void init();
void listStu();
int insertNewStu(int row);
int getStuRowByNo(char no[]);
int deleteByNo();
void analyse(char c[]);
這么多函數,程序裡面只有void analyse(char c[])
沒有main啊,你確定能解析一行?

❺ c語言程序解析

c=(a+=a-=5), (a=b, b+3)
+=、-=優先順序相同,自右結合,
1 a-=5 , a=a-5 a=-5
2 a+=-5 , a=a+(-5) a=-10
c=-10
,表達式表示並列,結果取最後版一個,故右邊
(a=b, b+3)

a=b ,a=0
b+3=4
得權4
即c=-10, a=0,b=0

❻ C語言例題解析

if(a>b)
{max=a;min=b;}
else
{max=b;min=a;}
這一段是把A,B之間的較大值給了max,較小值給了min
if(max<c)
max=c;
else
if(min>c)
min=c;
把c跟a,b中的較大值比較,如果c大,則專max為c,否則max不變,同理得到min

printf("max=%d\nmin=%d",max,min);
輸出最屬大最小值。。。

❼ c語言解析看不懂

第一次f(2),函數里t是1*1*2=2,這時候f(2)=2,函數里t=2;第二次f(3),函數里t是2*1*2*3=12,f(3)=12。所以答案是2+12+1=15

❽ c語言要解析

程序功能:如果k不能被2整除,k=k+3,輸出k的值,然後繼續循環。如果k能被2整除,k=k+1,輸出內k的值,然後繼續循容環。
k=2,能被2整除,執行k=k+1,k=3,輸出3,繼續循環
k=3,不能被2整除,執行k=k+3,k=6,輸出6,繼續循環
k=6,能被2整除,執行k=k+1,k=7,輸出7,不滿足循環條件,退出循環。
因此,k=k+3;執行了一次,A正確。k=k+1執行了兩次,B正確。執行後k的值是7,C正確。
循環體執行了三次,而不是一次,因此D錯誤。
選D

❾ C語言代碼解析

你應該還沒學指抄針吧,學了之後這個代碼就很好懂了。我先簡單說說,你可以把a[100]這個數組看成一個個抽屜,每個抽屜依次有自己的編號。子函數中a+n-1就是a[n-1]的編號值,a即為a[0]的編號,通過編號值找到a[n-1]這個排在最後的抽屜,把它抽出來,然後它之前的抽屜依次後移一格,它再放到第一個,隨著抽屜排序的變化,抽屜里存的數的順序也發生變化。通過m計數,將上述過程重復m次完成。

❿ C語言分析

#include<conio.h>
#include<ctype.h>
#include<stdio.h>
#include<string.h>
//本程序作用:輸入字元串,把字串中所有空格前的一個字母調用C庫函數的toupper轉為大寫.
//本人使用BCC++ 5.5編譯器編譯通過,可以用這種注釋方式.比較方便.如果使用
//TC 2.0編譯,請刪除所有注釋

void fun(char *p)//字串處理函數:把輸入字串中,所有空格前的一個字元轉為大寫
//用字串指針作為參數
{
int k=0;
for(;*p;p++) //該串非空時執行循環
if(k)
{
if(*p==' ') //判斷是否到了空格處,是,處理.執行轉換大寫庫函數.
{
k=0;
*(p-1)=toupper(*(p-1));//轉為大寫
}
}
else
k=1;
//第一次運行循環時,k=0,跳轉到else這,k=1;
//接著進入if(k)語句,找不到空格,循環繼續,
//找到了,則將空格符記號前一個字元轉為大寫字母
//k=0,若字串未為空,繼續執行,又跳到else k=1這里,
//轉入if(k).....
}
void main()
{
char chrstr[64]; //定義一個長64的字元數組
int d; //用來存放輸入字串的長度

printf("\nPlease enter an English sentence within 63 letters:\n");
gets(chrstr);//輸入字元串
d=strlen(chrstr); //取其長度
chrstr[d]=' '; //字串尾補加空格符,作為fun中處理字串的記號,
//強調程序必然要轉換最後一個字元
chrstr[d+1]=0; //再加0結束字串
printf("\n\nBefore changing:\n %s",chrstr);//輸出轉換前的字串
fun(chrstr);//執行轉換
printf("\nAfter changing:\n %s",chrstr);//輸出結果

PS:這個程序適合用來做記事本或文檔處理,比如Word裡面就有每個句子的首字母自動大寫功能.這段程序也可以改一改,用來實現首字母大寫。
}