前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言——小学三年级题目解析(一)

C语言——小学三年级题目解析(一)

作者头像
Ed_Frey
发布2019-11-01 16:29:12
6930
发布2019-11-01 16:29:12
举报
这是奔跑的键盘侠的第146篇文章 作者|我是奔跑的键盘侠

来源|奔跑的键盘侠(ID:runningkeyboardhero)

转载请联系授权(微信ID:ctwott)

搬砖继续^^

三年级,程序阅读题

第1题

a>0成立,进入if(b>0)循环,b>0不成立,走else,也就是a--,减完之后a为0。

答案:

a=0

末尾要打一个回车换行符。

编码运行一下看:

#include <stdio.h>

int main()
{
  int a=1,b=-1;
  if(a>0)
    if(b>0)
      a++;
    else
      a--;
  printf("a=%d\n",a);
  return 0;
}

Process started (PID=18796) >>>

C:\Users\2019_943_31.c: In function 'main':

C:\Users\2019_943_31.c:6:4: warning: suggest explicit braces to avoid ambiguous 'else' [-Wparentheses]

if(a>0)

^

<<< Process finished (PID=18796). (Exit code 0)

==========编译成功后开始运行==========

"C:\Users\2019_943_31.exe"

Process started (PID=8464) >>>

a=0

<<< Process finished (PID=8464). (Exit code 0)

================ READY ================

出现一个warning,是警告我们要用{ }来写if后面的语句。

不得不说,上面的coding习惯是不好的习惯,if及else只会执行后面一个分号语句。如果有接连2个分号语句,而你又没用括号,那默认只会执行第一个分号语句,第二个分号直接跳过。

第2题

attr[10]对应的是字母f,i--,一直到i=1为止,也就是从f54e32c2ba这个方式遍历字符。

if判断语句,判断值介于a和z之间的,也就是小写字母并且不等于a,z。显然就是fecb了,但是每个字符都要换行,答案:

f

e

c

b

b后面记得写个换行符。

coding如下:

#include <stdio.h>

int main()
{
  char attr[15]={"1ab2c23e45f"};
  int i;
  for(i=10;i>0;i--){
    if(attr[i]>'a'&&attr[i]<'z'){
      printf("%c\n",attr[i]);
    }
  }
  return 0;
}

==========编译成功后开始运行==========

"C:\Users\2019_943_32.exe"

Process started (PID=11992) >>>

f

e

c

b

<<< Process finished (PID=11992). (Exit code 0)

================ READY ================

第3题

直接看main函数,i从1开始,每次加1直到i=5,循环5次;

然后看循环里面的内容,也就是func函数执行5次。

func函数再看一下,j=0, ++j后输出1;循环下去呢??

每次都跟首轮一模一样??显然不是。

这就涉及到static关键字的用法了。

存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。

也就是说赋值j为0,只一次。第二轮循环不会再赋值0了。而是接着上一轮的结果继续。

答案:

12345

这题没有换行符。

#include <stdio.h>

void func();
int main()
{
  int i;
  for(i=1;i<=5;i++){
    func();
  }
  return 0;
}

void func()
{
  static int j=0;
  ++j;
  printf("%d",j);
}

==========编译成功后开始运行==========

"C:\Users\2019_943_33.exe"

Process started (PID=8304) >>>

12345<<< Process finished (PID=8304). (Exit code 0)

================ READY ================

-END-

© Copyright

奔跑的键盘侠原创作品 | 尽情分享朋友圈 | 转载请联系授权

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奔跑的键盘侠 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档