A. 超简单的c语言问题!求助高手
第一题:
main()
{ double d=3.2;
int x,y;
x=1.2;
//这里的X虽然赋值为小数,但是会自动转化成INT结果为1
y=(x+3.8)/5.0;
//这里的计算是这样的(1+3.8)=4.8然后是4.8/5.0因为这里储存的Y也是INT且计算除法的结果没有达到1,所以Y获得的是0
printf("%d\n",d*y);
//到这里就算D是任何值,因为Y是0所以乘法结果都是0 。
}
这道题注意在类型被强制转换是只会留下数字的整数部分,小数部分被省略(而非被四舍五入)
第二题:
您的算法:
177/8=22....1
22/8=2....6
看到了么,到了最后一步也并没有整除,“22/8=2....6”等号后面的数字无法再被8整除,所以您少写了这么一行:“2/8=0....2”所以正确结果是261没错。
B. C语言的编译过程中error C2106 是指多少行多少列出错了谢谢!
这个只是一个错误消息,你双击这行就可以到达错误的位置。
错误类型:
“operator”: 左操作数必须为左值
该运算符必须将左值作为其左操作数。
比如给常量赋值:
1 = a;
C. 关于C语言中指向函数的指针的调用问题
两种方式,在某些环境下是等效的,但是个人建议使用m=(*p)(a)这种方式,表意明确
说是等效的原因是实际上函数名也只是一个地址而已
但是要注意的是,m=p(a)这样的写法【据说】某些编译器认为是错误的表达式,会导致编译错误(但是同时,如果lz看书比较仔细的话,可能会在经典书籍<Pointers on C>一书中见到说两种表示都是合理的[中文版P261],所以我之前强调了是"据说",事实上,我到今天所用过的所有C编译器都支持两种表示方式;但是我们再回到经典中的经典<The C Programming Language>中使用的函数指针都是m=(*p)(a)这种方式[5.11 指向函数的指针])
D. 手机下载的视频显示出错了,错误代码261是什么意思
你手机里的播放器程序崩溃了 拿出手机卡 恢复出厂设置就好了
E. c语言问题 在一本书上看见 二进制100101B 八进制(261)O 十六进制(1FA)H
一:可以不加括号,这里加括号只是怕出错而已。八进制(261)O不加括号是:八进制261O
很容易误解为2610;十六进制(1FA)H不加括号很容易误解为1FAH;二进制100101B不加括号也不会误解。所以这里加括号仅仅是区别显示的。
二、可换成小写。
F. 一道c语言的编程问题
#include<stdio.h>
intmain(void)
{
intiBegin,iCount,i;
printf("PleaseInputtwonumber:");
scanf("%d%d",&iBegin,&iCount);
printf(" Result:");
for(i=0;i<iCount;i++)
printf("%d",iBegin+i*5);
putchar(' ');
return0;
}
G. c语言的问题
如果你这样修改的话,那就是死循环了。
i=1 i>0是成立的,执行循环
i++后 i变成2了 i>0还是成立的,执行循环
i越变越大,i>0始终是成立的,一直执行循环,没有结束的时候了。
H. C语言数组作为参数的例子,一直报错。
uchar Word{}
改成
uchar Word[]
括号写错了
把这个改过来 如果还有错误就再追问
I. c语言问题
这是你用void形式定义了一个函数而又要求它带回返回值造成的。把void改成整型,实型等有返回值的就可以了
J. 关于C语言的一个简单问题
首先,你的程序根本就不能运行,缺少两个逗号。
char ch1=164,然后%d输出结果确实是-92,-92和164的二进制都是1010 0100,内存中的数值是同一个,输出使用%d、%u会不同的结果。补码的两个数绝对值之和是256。
char ch2=261,然后%d输出的结果是5,因为261转换为二进制后的后八位是5,超过256的部分溢出。