本文目录一览:
- 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压根就做不了。
怎么改?换单片机。