c语言提高

当在大学期间学习了c语言以后发现自己的真的对编程只是停留在初级阶段,没有理解编程的思维或者懂自己的脑子去思考解决问题的能力。这就是大学缺少思考带来的结果。当面试几次发现,自己的能力真的不行的时候,不由得恐惧起来。

今天开始我要开始思考这去解决问题,记录自己学习的编程的过程。

先写一个面试题目吧,面试公司是一家叫做瑞斯康达科技发展有限公司,题目很简单,在选择题中,如下;

#include<stdio.h>

int main(void)

{

     int x=10, y=10,i;

     for(i=0; x>8; y=++i)

        prinrf("%d, %d",x--,y);

}

看看这题真的很简单,但是我们还是从最基础的开始。就从for循环开始讲解这道题考什么。

printf()打印的x--和y的值。我们分析一下就知道了。刚开始x的值是10,符合x>8这个判断的要求。所以第一次打印就是x--,从左往右先把x的值赋值给%d然后才执行--,所以打印出来就是10,而不是9。第二个就是y的打印,for循环先执行第一句i=10,然后做判断是否x>8,如果满足条件执行循环里面的语句,当循环中的语句执行完了以后,再回来执行y=++i这句,那么我们第一次打印当然不会去改变y=10的值。所以输出第一次的打印的字符如下:

10,10,

第二次还是判断x>8是否成立,从第一次执行完后,x变成了x=9了,但是还是满足条件的,进入循环中。由上面解释的同样的道理可知,x=9,而此时y已经变了。y先执行++i这句,因为从左往右++的优先级大于=的优先级的,故++i后为1,赋值给y后,y变成了1。所以最终第二次循环完了以后,最终显示结果如下:

9, 1

第三次进行判断,此时x变为8,不符合判断的条件,因此将推出循环,结束程序。但是程序的最终显示为如下:

10,109,1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值