现在的位置: 首页 > 14 二级C语言 > 正文

C语言考点

2011年09月27日 14 二级C语言 ⁄ 共 1120字 ⁄ 字号 暂无评论

选择题和基本概念题

【数据类型】

C语言基本的数据类型有 int long float double char。

【字符型 char,整数型 int,浮点型 float,双精度浮点型 double】是C语言中最基本的数据类型。

1
2
3
4
字符型 char <-> %c
整数型 int <-> %d
浮点型 float <-> %f
双精度浮点型 double <-> %lf

常考的 int 表示的范围在不同环境下是不一样的,在绝大多数情况下,是32位,但在Turbo C 2.0环境下,表示的是 16位。

如果 int 表示的是16位,则范围从 -32768~32767。

下面的程序在 C-Free 和 Turbo C 2.0 环境下运行结果是不一样的。

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
int main()
{
    int i = 32767, j = -32768;
    printf("%d %d\n", i, i+1);
    printf("%d %d\n", j, j-1);
    getchar();
    return 0;
}

在 C-Free 中,i 和 j 是32位的;在 Turbo 2.0 中, i 和 j 是16位的。

如果把 i 和 j 的类型改为 long (%ld) , 那么在 C-Free 和 Turbo 2.0 表示的都是

【表达式】

表达式分为逻辑表达式和算术表达式。

逻辑表达式通常出现在 if 和 while 语句的后面,包含 > < && || ! 等运算符,值为真或者假,也就是 1 或者 0

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
 
int main()
{
    int i = 3, n;
 
    n = i>3;
    printf("%d\n", n); 
 
    return 0;
}

算法表达式中常考的就是 ++i 和 i++ 了。
++i、i++ 和 i = i + 1的不同之处在于前者比后者多了表达式的功能。

表达式 ++i 的值是 i+1,而表达式 i++的值是 i

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
 
int main()
{
    int i = 3, n;
 
    printf("%d\n", i++);
    printf("%d\n", ++i);
 
    return 0;
}

2011年春选择题26题

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
int main()
{
    int x,a=3,b=2; 
 
    x= a>b++ ? a++ : b++;
 
    printf("x=%d a=%d b=%d\n", x, a, b);
 
    return 0;
}

【条件表达式中的短路】

计算机其实也会偷懒,在 if ( 条件a && 条件b && 条件c) 语句中,如果发现 条件a 为假,就不再去判断条件b和条件c了。

偷懒之心,人皆有之。只要符合要求,偷懒还有助于提高效率。 如果 条件a 为假,那整个表达式一定为假,也就是 0

2010年秋 基本概念题 第3题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
int main()
{
    int a=0, b=1, c=2;
 
    if (a>0 && ++b>0)
        c++;
    else
        c--;
 
    printf("a=%d b=%d c=%d\n", a, b, c);
 
    return 0;
}

对于条件表达式中的或者关系 if ( 条件a || 条件b || 条件c) ,计算机也会偷懒一下,你知道是怎么偷懒吗?

抱歉!评论已关闭.