1、
问:C语言提供的算术运算符包括几种?
答:有五种:+、-、*、/、%(取余)
问:他们都是什么运算符
答:双目运算符
问:%用于什么运算?
答:%只能用于整数的运算
问:%能用于浮点型数据吗?
答:不能,会出错。例如5.4%2是非法的。
问:C中,两个整数相除,商为什么?舍去了还是进一
答:商为整数,是舍去了
问:5/2的值为?
答:2
问:5.0/2的值为
答:2.5
问:5/2.0的值为
答:2.5
2、书本上134面第21题
#include <stdio.h>
void main( )
{
int a=15,b=21,m=0;
switch(a%3)
{
case 0:m++;break;
case 1:m++;
switch(b%2)
{
default:m++;
case 0:m++;break;
}
}
printf("%d\n",m);
}
/*
分析题目
首先a=15,除以3正好余数为0,所以case0,即m=1,结束了,break直接退出到switch整个之后
所以就是m=1
*/

我之前用的不是这个编译器,之后一直错,是这个错误

3、P134-T19
C语言规定,在缺省{}时,else总是和上面离它最近的未配对的if配对
#include<stdio.h>
void main()
{
int a=1,b=3,c=5,d=4;
int x;
if(a<b)
if(c<d) x=1;
else
if(a<c)
if(b<d) x=2;
else x=3;
else x=6;
else x=7;
printf("%d\n",x);
}
/*
分析:if(1<3)正确
执行,if(5<4)错误,执行else,没有括号所以找最近的
所以执行,else if(1<5)正确,所以if(3<4)错误,执行else x=3;
所以x=3
*/
分析错误

/*
分析:if(1<3)正确
执行,if(5<4)错误,执行else,没有括号所以找最近的
所以执行,else if(1<5)正确,所以if(3<4)这里是正确的,3是小于4,执行else x=2;
所以x=2
*/
P134-T18
ASCII码对照

0字符是48,9字符是57,A是65,肯定不能比,所以是NO
错误,答案是YES

关系运算符和关系表达式
大于>=
<= 左结合性
‘0’<=c<=‘9’
(‘0’<=c)<=‘9’
正确,正确
所以为YES
0’<=c<='9’这个表达式的值一直是真的,关系表达式,<= >=是自左向右的结合性。‘0’<=c值为真,即为1,所以(‘0’<=c)<='9’值也为真
如果改为
‘0’<=c&&c<=‘9’

1万+

被折叠的 条评论
为什么被折叠?



