设为首页 加入收藏

TOP

2.8.1 面试题选
2013-10-10 23:51:30 来源: 作者: 【 】 浏览:171
Tags:2.8.1 试题

2.8 面试题选与实例精讲

2.8.1  面试题选

本小节的例子均为知名公司在招聘时使用过的试题。本章内容是C语言的基础部分,单独命题较少,命题时会增加综合题,以测试程序员对基本知识的理解程序,如例2-11、例2-12所示。

例2-11

#include
int main()
{
int a,b,c,d;
    a=10;
b=a++;
c=++a;
d=10*a++;
    printf("b,c,d:%d,%d,%d",b,c,d);
}

程序说明。

本程序首先定义了4个整型变量,然后把10赋给变量a。

b = a ++相当于b = a;a = a + 1,因此,该条语句结束后,b的值为10,a的值为11。而"c = ++ a"相当于"a = a + 1";"c = a",该条语句运行结束后a的值变为12,c的值也为12。

对于"d = 10*a ++",这条语句中有3个运算符:=、*和++,乘号运算符*的优先级最高,所以*运算先进行。++运算符只针对变量,因此这条语句相当于"d = 10*(a++);"而不是"d=(10*a)++"。"d=10*(a++)"又相当于"d = 10*a;a = a+1",所以变量d的值为120,a的值为13。

例2-12  用两种方法实现交换两个变量的值。

方法一:使用一个中间变量。

int a=1,b=2,temp;
temp=a;
a=b;
b=temp;

程序说明

首先把变量a的值1暂存到变量temp中,temp变量的值为1。

然后把变量b的值2赋给变量a,此时变量a和b的值都为2。

最后把变量temp的值1赋给变量b,此时变量b的值为1,从而实现了两个变量的值交换。

方法二:不借助于任何中间变量。

int a=1,b=2;
a=a+b;
b=a-b;
a=a-b;

程序首先把a + b的值赋给a,此时a的值变为a + b即3,b的值不变,仍为2。

语句b = a-b运行之后,b的值为3-2即1,a的值不变仍为3。

语句a = a-b运行之后,a的值为3-1即2,b的值不变仍为1。此时变量a和b的值已经实现了交换。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2.6 Emacs编辑器的使用 下一篇2.8.2 实例精讲

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: