以下是c语言新手常见问题

1、程序画面一闪而过
#includeint main(void){ int iSignal; /*定义变量表示信号灯的状态*/ printf("the Red Light is 0,the Green Light is 1
"); /*输出提示信息*/ scanf("%d",&iSignal); /*输入iSignal变量*/ if(iSignal==1) /*使用if语句进行判断*/ { printf("the Light is green,cars can run
"); /*判断结果为真时输出*/ } if(iSignal==0) /*使用if语句进行判断*/ { printf("the Light is red,cars can't run
"); /*判断结果为真时输出*/ } return 0;}
解析:在XP以上的系统用win-tc,dev-cpp等IDE编译运行此程序时,无论输入什么数字,结果都是一闪而过,因为程序执行完语句后就直接退出了。
解决方案:这里有几个办法:
1.下面函数用来求出两个整数之和,并通过形参传回两数相加之和值,请填空。
2.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。
3.下列程序的输出结果是____0__________ 。
4.若要使指针p指向一个double类型的动态存储单元,请填空。
5. 若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是 __p[5]_______。
C.a=7+b,b++,a+7问题出现在没有[;]结束。本身赋值没有问题,可以这样理解a=(7+b,b++,a+7) 括号内是一个逗号表达式,计算结果是依次计算,取最后一个值。也就是a=a+7。D.a=7+b,c=a+7;结果测试没有问题。Ea=7+b++=a+7;首先赋值运算符是从右向左进行的,如a=b=c;这句会先把c的值赋值给b,再把b的值赋值给a。(不过,非常不建议如此赋值)这里 7+b++=a+7中 7+b++是不能当作左值的,也就是不能被赋值,会出现问题。