作业帮 > 综合 > 作业

大一基础C语言问题有以下定义语句double a,b; intw; long c;若各变量已正确赋值,则下列选项中正确的

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 16:33:45
大一基础C语言问题
有以下定义语句
double a,b; intw; long c;
若各变量已正确赋值,则下列选项中正确的表达式是______.
D、w=a=b; 错误
若变量a已正确定义,合法的语句是______.
C、a=a++=5错误
若变量已正确定义并赋值,下面符合C语言语法的表达式是______.
B、a=b=c+2 正确 为什么 前两个是错的 最后一个是正确的?
1.以下4个选项中,不能看作一条语句的是______.
A、{;} B、a=0,b=0,c=0;
C、if(a>0); D、if(b==0) m=1;n=2;?
2.以下函数值的类型是______.
fun(float x)
{
float y;
y=3*x-4;
return y;
}
A、int B、不确定 C、void D、float
3.若有代数式,则不正确的C语言表达式是( C ).
A.a/b/c*e*3 B.3*a*e/b/c C.3*a*e/b*c D.a*e/c/b*3
4.表达式18/4*sqrt(4.0)/8值的数据类型是( C ).
A.int B.floatC.double D.不确定
5.( × ) 字符数组不要求它的最后一个字符为‘\0’,甚至可以不包含‘\0’.
然后下面5题麻烦讲解下
0)w=a=b w的类型和a b不同,类型不同占用的存储空间和存放的寄存器也不一样,如果要赋值需重新对类型进行注释:w=(int)a=(int)b
0)a=a++=5连环赋值是c和C++特有用法,顺序是从右到左依次赋值,但是,赋值的左边对象必须是一个左值,左值必须是占用固定存储空间的,a++就不是左值,他是一个运算式:a=a+1;
1)D、if(b==0) m=1;n=2;这个是两个语句,因为他有两个;符号
2)以下函数值的类型是 int ,c语言规定,函数类型不写的都是int,例如char fun(float x),函数类型就是char,fun(float x)和int fun(float x)是等价的.
3)暂时没找到错误
4)4.0是一个double类型,和常数混合运算后的值还是double类型.为什么知道4.0是double不是float,因为库函数规定了sqrt()中的形参必须是double.
5)最后一题在使用中的确是允许的,但是会出非常对的漏洞,例如puts的输出函数式见到‘0’就结束的,如果字符数组存满了数据,puts遇不到结束符‘0’就会一直输出,就会出现一堆乱码
再问: w=a=b; ���ϵͳ�ѵ������Զ�����ǿ��ת����?
再答: ���еģ���ֵ�����ԭ���˵������ͨ�����ߴ�һ���Ĵ������ݵ���һ���Ĵ�����double���͵ļĴ�����int�Dz�һ��ġ�
再问: main() { int a; double c=1.0; a=c; printf("%d",a);} ������ǿ��Ե���?
再答: ���Լ����²��Ժ�ij�����о���ģ�������ʵ�����Ǿ��ȵĶ�ʧ������3.245ת����int��ͱ��3�ˡ�double��intת�����ã�Ҫ���������͵�ת��������unsigned��int��ת������������ء�
再问: ���Ҫ��ֵ�����¶����ͽ���ע�ͣ�w=��int��a=��int��b �������ע�� ��ϵͳǿ�Ƶ�ת����ʲô����أ�
再答: �����Ҿ����б�Ҫ��ϸ˵�¡��Ҹ�������㣺 ����#include ����void main() ����{ ����unsigned x=-1; ����if (x