帮忙做2道C语言题,据说是基础,但是我弄不来!

其实是这样,我是法学系的,全校公选课选到C语言= =,不想挂科啊啊啊!谁帮忙做下...其实还有3个实验...愿意帮忙的留个言吧...

1、下面的程序试图计算由键盘输入的任意两个整数的平均值:
#include <stdio.h>
main()
{
int x,y,a;
scanf("%x,%y,&x,&y);
a=(x+y)/2;
printf("The average is :"a);
}
调试无语法错误后,分别使用下列测试用例对上述程序进行测试:
(1)2,6
(1)1, 3
(3)-2,-6
(4)-1,-3
(5)-2,6
(6)-1,3
(7)1,0
(8)1,6
(9)32800,33000
(10)-32800,33000
通过测试,你发现程序有什么错误了吗?若有错误,请指出错误原因。并修改程序。
2、运算符sizeof用以测试一个数据或类型所占用的存储空间的字节数。请编写一个程序,测试输出各基本数据类型char, short, int, long, float, double所占用的存储空间大小。
3、输入以下程序
#include <stdio.h>
void main()
{
int j,k,m,n;
k=8;
j=10;
m=k++;
n=++j;
printf("%d,%d,%d,%d",k,j,m,n);
}
(1)、运行程序,观察结果。
(2)、分析++在变量之前和在变量之后的不同点?
详细说下第二个 不是很明白

第一个,x,y,a都是int型,所以(x+y)/2是没有小数部分的,改成
int x,y;
float a;
a=float(x+y)/2;
第二个,你用各种类型定义变量,用sizeof()计算输出就行了.用sizeof()可以计算变量占用的存储空间,所以先定义变量再计算.
第三个,m=8,n=11;m=k++运算过程为m=k,k++.n=++j运算过程为++j,n=j.就是说++在变量前时j先自加,再对n赋值,++在变量后时,先对m赋值,k再自加
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-05-23
第一个结果均为整数,原因就在楼上
第二个
int main()
{
printf("The type int : %d",sizeof(int));
}
其他类型一样
运算符sizeof用以测试一个(数据)或(类型)所占用的存储空间的字节数
所以可以不用定义变量
第三个同楼上,就是所谓的“++ ”问题
第2个回答  2009-05-23
1)2,6
(1)1, 3
(3)-2,-6
(4)-1,-3
(5)-2,6
(6)-1,3
(7)1,0
(8)1,6
(9)32800,33000
(10)-32800,33000
相似回答