专栏首页奔跑的键盘侠C语言——小学三年级题目解析(一)

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

这是奔跑的键盘侠的第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

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

本文分享自微信公众号 - 奔跑的键盘侠(runningkeyboardhero),作者:我是奔跑的键盘侠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

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

    printf("The end value of a is %d.\n",a);

    Ed_Frey
  • C语言——小学题目B卷解析(终)

    第6题,简单说明:系统有默认的转化规则,就是从精度底的转化为精度高的,避免计算时精度的丢失。coding一下:

    Ed_Frey
  • C语言——小学一年级题目解析(二)

    显然,2>1,if不成立, 只执行b=3。输出结果a为首次赋值的2,b为第二次赋值3。

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

    printf("The end value of a is %d.\n",a);

    Ed_Frey
  • Android项目实战(五十七):Glide 高斯模糊效果

    听着music睡
  • Android项目实战之Glide 高斯模糊效果的实例代码

    以上所述是小编给大家介绍的Android项目实战之Glide 高斯模糊效果的实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

    砸漏
  • HDU 3018 Ant Trip(欧拉回路)

    #include <bits/stdc++.h> using namespace std; const int N=100005; int f[N]; ...

    用户2965768
  • Golang Leetcode 961. N-Repeated Element in Size 2N Array.go

    更多内容请移步我的repo:https://github.com/anakin/golang-leetcode

    anakinsun
  • 【LeetCode】面试题46. 把数字翻译成字符串

    给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有...

    韩旭051
  • N皇后问题

    AI那点小事

扫码关注云+社区

领取腾讯云代金券