商城网站建设公司电话化工企业建网站
目录
1.C语言的结构
2.三种循环结构
3.逻辑真假判断
4. printf函数
5. 强制类型转化
6. 多分支选择结构
7. 标识符的定义
8. 三目运算符
1.C语言的结构
选择结构、顺序结构、循环结构
2.三种循环结构
for、while、do-while
3.逻辑真假判断
C语言用0表示false,用非0(不止1)表示true
0不能用来表示“真”
①下边的表达式哪个满足:-10<=x<=10,和100<=x<=110时值为“真”,否则为“假”( B )
A. ((10>x)&&(x>-10))||(100>x-100)
B. !((x<-10)||(x>10))||!((x<100)||(x>110))
C. (x<10)&&(x>-10)&&(x>100)&&(x<110)
D. (x>-10)&&(x<10)||(x<110)&&(x>100)
选项 A
- 分析逻辑表达式:
 ((10>x)&&(x>-10))||(100>x-100),后半部分100>x-100可化简为200 > x,这个表达式主要判断的是x小于10且大于-10或者x小于200,并不能准确实现题目要求的-10<=x<=10和100<=x<=110这两个区间判断,存在多余的取值范围情况,所以不符合题意。选项 B
- 分析逻辑表达式:
 !((x<-10)||(x>10))||!((x<100)||(x>110)),!((x<-10)||(x>10))等价于(x >= -10) && (x <= 10),!((x<100)||(x>110))等价于(x >= 100) && (x <= 110),整体表示x在-10到10这个区间或者x在100到110这个区间时表达式为真,刚好满足题目要求的条件,符合题意。选项 C
- 分析逻辑表达式:
 (x<10)&&(x>-10)&&(x>100)&&(x<110),按照逻辑与运算规则,要求x同时满足小于10、大于-10、大于100和小于110,这是不可能同时满足的条件,所以不符合题意。选项 D
- 分析逻辑表达式:
 (x>-10)&&(x<10)||(x<110)&&(x>100),前半部分表示x在-10到10区间,后半部分表示x在100到110区间,但该表达式在x取值稍微超出这两个区间一点时也可能为真(比如x = 11时后半部分就为真了),不能精准符合题目要求,所以不符合题意。综上,答案是 B 选项。
②下边的表达式哪个满足:当x和y的值都大于0,小于n时值为“真”,否则为“假”( D )
A. (x>0)&&(y>0)&&(x<n)&&(y<n)
B. (x<n)&&(y<n)&&x&&y
C. !(x<=0)||(y<=0)||(y>=n)||(x>=n)
D. !(x<=0)&&!(y<=0)&&!(y>=n)&&!(x>=n)
选项 A
- 分析逻辑表达式:
 (x>0)&&(y>0)&&(x<n)&&(y<n),这个表达式要求x既要大于0又要小于n,同时y也要既大于0又要小于n,是x和y各自都要同时满足大于0且小于n的条件,而题目要求的是x和y的值整体满足大于0、小于n即可,并非各自都要同时满足,所以该选项不符合题意。选项 B
- 分析逻辑表达式:
 (x<n)&&(y<n)&&x&&y,表达式中的x&&y部分只是简单判断x和y不为0,而前面(x<n)&&(y<n)也只是分别判断x和y小于n,无法准确体现出x和y都要在0到n这个区间内的要求,所以不符合题意。选项 C
- 分析逻辑表达式:
 !(x<=0)||(y<=0)||(y>=n)||(x>=n),根据逻辑或运算的规则,只要其中一个子表达式为真,整个表达式就为真。该表达式只要x或者y出现小于等于0、大于等于n这些不符合要求的情况之一,表达式就为真了,与题目要求的当不符合条件时表达式为假不符,所以不符合题意。选项 D
- 分析逻辑表达式:
 !(x<=0)&&!(y<=0)&&!(y>=n)&&!(x>=n),!(x<=0)等价于x > 0,!(y<=0)等价于y > 0,!(y>=n)等价于y < n,!(x>=n)等价于x < n,整体就是要求x大于0且小于n,同时y也要大于0且小于n,正好符合当x和y的值都大于0、小于n时值为 “真”,否则为 “假” 的要求,所以符合题意。综上,答案是 D 选项。
4. printf函数
如:printf ("%d",3>2>1)
在 C 语言(以及很多遵循类似语法规则的编程语言中),关系运算符(如
>)的结合性是从左到右依次进行运算的。首先计算
3>2,这个比较的结果是1(在 C 语言中,关系表达式成立时返回值为1,表示逻辑真;不成立时返回0,表示逻辑假)。然后用这个结果
1再去和1进行>比较,也就是计算1>1,该比较的结果是0(因为1并不大于1,关系表达式不成立)。如:printf ("%d\n”,034)
在 C 语言(以及一些相关的编程语言中),以
0开头的数字常量表示八进制数。所以这里的034实际上是一个八进制数。要计算八进制数
034对应的十进制数值,可以使用按权展开的方法。八进制数从右到左每位的权值依次是8^0、8^1、8^2……对于八进制数
034,其转换为十进制数的计算过程如下:
5. 强制类型转化
①float x = 3.1415926;输出语句printf (“%6d”,(int)x);
运行的输出结果是:3
②计算题
int a=3,b=4; float x=3.5,y=2.5;
则表达式 (float)(a+b)/2 + (int)x%(int)y 的值为:4.5
6. 多分支选择结构
①嵌套的if语句
②switch语句,case后只能为常量和常量表达式
7. 标识符的定义
不能使用关键字
- 不能与 C 语言的关键字相同,如
 int、float、if、else、while等都是关键字,不能用作用户定义的标识符。合法字符组成
- 只能由字母(包括大写和小写)、数字和下划线
 _组成。- 标识符的第一个字符必须是字母或下划线,不能是数字。
 
8. 三目运算符
①x=1,y=3 x=y>2?6:5
这里的结果为x=6
思路:首先计算
y > 2这个条件表达式的值
- 如果
 y的值大于2,那么y > 2的结果为真(在 C 语言中就是值为1),此时整个三元条件表达式y > 2? 6 : 5的值就为6,然后再将这个值6赋给变量x,即x的值最终变为6。- 如果
 y的值小于等于2,那么y > 2的结果为假(值为0),此时整个三元条件表达式y > 2? 6 : 5的值就为5,然后再将这个值5赋给变量x,即x的值最终变为5。②表达式x>0?1:(x<0?-1:0)在x>0时的结果是:
对于表达式
x>0?1:(x<0?-1:0),首先判断最外层的条件x>0。已知当前情况是
x>0,根据三元条件运算符的运算规则,当x>0这个条件成立(也就是为真)时,整个表达式x>0?1:(x<0?-1:0)的值就取1,而不会再去管后面嵌套部分(x<0?-1:0)的情况了。所以,表达式
x>0?1:(x<0?-1:0)在x>0时的结果是1。

