C语言期末考试——重点考点
目录1.C语言的结构2.三种循环结构3.逻辑真假判断4. printf函数5. 强制类型转化6. 多分支选择结构7. 标识符的定义8. 三目运算符1.C语言的结构选择结构、顺序结构、循环结构2.三种循环结构for、while、do-while3.逻辑真假判断C语言用0表示false,用非0(不止1)表示true0不能用来表示“真”①下边的表达式哪个满足-10x10,和100x110时值为“真”否则为“假” B A. ((10x)(x-10))||(100x-100)B. !((x-10)||(x10))||!((x100)||(x110))C. (x10)(x-10)(x100)(x110)D. (x-10)(x10)||(x110)(x100)选项 A分析逻辑表达式((10x)(x-10))||(100x-100)后半部分100x-100可化简为200 x这个表达式主要判断的是x小于10且大于-10或者x小于200并不能准确实现题目要求的-10x10和100x110这两个区间判断存在多余的取值范围情况所以不符合题意。选项 B分析逻辑表达式!((x-10)||(x10))||!((x100)||(x110))!((x-10)||(x10))等价于(x -10) (x 10)!((x100)||(x110))等价于(x 100) (x 110)整体表示x在-10到10这个区间或者x在100到110这个区间时表达式为真刚好满足题目要求的条件符合题意。选项 C分析逻辑表达式(x10)(x-10)(x100)(x110)按照逻辑与运算规则要求x同时满足小于10、大于-10、大于100和小于110这是不可能同时满足的条件所以不符合题意。选项 D分析逻辑表达式(x-10)(x10)||(x110)(x100)前半部分表示x在-10到10区间后半部分表示x在100到110区间但该表达式在x取值稍微超出这两个区间一点时也可能为真比如x 11时后半部分就为真了不能精准符合题目要求所以不符合题意。综上答案是 B 选项。②下边的表达式哪个满足当x和y的值都大于0小于n时值为“真”否则为“假” D A. (x0)(y0)(xn)(yn)B. (xn)(yn)xyC. !(x0)||(y0)||(yn)||(xn)D. !(x0)!(y0)!(yn)!(xn)选项 A分析逻辑表达式(x0)(y0)(xn)(yn)这个表达式要求x既要大于0又要小于n同时y也要既大于0又要小于n是x和y各自都要同时满足大于0且小于n的条件而题目要求的是x和y的值整体满足大于0、小于n即可并非各自都要同时满足所以该选项不符合题意。选项 B分析逻辑表达式(xn)(yn)xy表达式中的xy部分只是简单判断x和y不为0而前面(xn)(yn)也只是分别判断x和y小于n无法准确体现出x和y都要在0到n这个区间内的要求所以不符合题意。选项 C分析逻辑表达式!(x0)||(y0)||(yn)||(xn)根据逻辑或运算的规则只要其中一个子表达式为真整个表达式就为真。该表达式只要x或者y出现小于等于0、大于等于n这些不符合要求的情况之一表达式就为真了与题目要求的当不符合条件时表达式为假不符所以不符合题意。选项 D分析逻辑表达式!(x0)!(y0)!(yn)!(xn)!(x0)等价于x 0!(y0)等价于y 0!(yn)等价于y n!(xn)等价于x n整体就是要求x大于0且小于n同时y也要大于0且小于n正好符合当x和y的值都大于0、小于n时值为 “真”否则为 “假” 的要求所以符合题意。综上答案是 D 选项。4. printf函数如printf (%d,321)在 C 语言以及很多遵循类似语法规则的编程语言中关系运算符如的结合性是从左到右依次进行运算的。首先计算32这个比较的结果是1在 C 语言中关系表达式成立时返回值为1表示逻辑真不成立时返回0表示逻辑假。然后用这个结果1再去和1进行比较也就是计算11该比较的结果是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 a3,b4; float x3.5,y2.5;则表达式 (float)(ab)/2 (int)x%(int)y 的值为4.56. 多分支选择结构①嵌套的if语句②switch语句case后只能为常量和常量表达式7. 标识符的定义不能使用关键字不能与 C 语言的关键字相同如int、float、if、else、while等都是关键字不能用作用户定义的标识符。合法字符组成只能由字母包括大写和小写、数字和下划线_组成。标识符的第一个字符必须是字母或下划线不能是数字。8. 三目运算符①x1,y3 xy2?6:5这里的结果为x6思路首先计算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。②表达式x0?1:(x0?-1:0)在x0时的结果是对于表达式x0?1:(x0?-1:0)首先判断最外层的条件x0。已知当前情况是x0根据三元条件运算符的运算规则当x0这个条件成立也就是为真时整个表达式x0?1:(x0?-1:0)的值就取1而不会再去管后面嵌套部分(x0?-1:0)的情况了。所以表达式x0?1:(x0?-1:0)在x0时的结果是1。