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

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

这是奔跑的键盘侠的第145篇文章

作者|我是奔跑的键盘侠

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

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

搬砖继续^^

二年级,程序填空题

第3题

这题考点,是switch case语法的应用,每个case后要加一个break,才会结束,否则会继续后面的case,直到break才会停止。

而这题,实在很简单,甚至不需要看加减乘除是如何计算的。

答案:

6. op

7. break

8. default

#include<stdio.h>

int main()
{
  int num1,num2;
  char op;
  // scanf("%d%c%d",&num1,&op,&num2);
  num1=4;
  num2=5;
  // op='+';
  // op='-';
  // op='x';
  // op='/';
  op='s';
  switch(op){
    case '+':
      printf("%d+%d=%d\n",num1,num2,num1+num2);
      break;
    case '-':
      printf("%d-%d=%d\n",num1,num2,num1-num2);
      break;
    case 'x':
      printf("%dx%d=%d\n",num1,num2,num1*num2);
      break;
    case '/':
      if(num2){
        printf("%d/%d=%2.1f\n",num1,num2,(double)num1/num2);
      }else{
        printf("divided by 0!\n");
      }
      break;
    default:
      printf("error input!\n");
      break;    
  }

  return 0;
}

虽然简单到不需要调试的程度,但还是码了一下。

有些点稍微留意一下,比如填空时,标点符号要注意看,这道题标点都填好了,答案就不能再写了;如果填空地方没有标点,那就要格外小心了。

另外像除法中的%2.1f和(double)num1/num2,如果让我们自己设计算法时,类型转换要小心。

第4题

这个题属于一个老生常谈的题目,倒序排列数字。原数字从个位开始逐个提取,x10不断,直到末位取完。

而这题,实在很简单,甚至不需要看加减乘除是如何计算的。

答案:

9. newnum*10

10. num%10

11. num/10

#include <stdio.h>

int invert(int num);
int main()
{
  int num;
  // scanf("%d",&num);
  num=364;
  printf("the inverted num is %d",invert(num));
  return 0;
}

int invert(int num)
{
  int newNum=0;
  while(num!=0){
    newNum=num%10+newNum*10;
    num=num/10;
  }
  return newNum;
}

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

"C:\Users\2019_943_29.exe"

Process started (PID=20984) >>>

the inverted num is 463<<< Process finished (PID=20984). (Exit code 0)

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

代码稍微变化了一下,开头声明invert函数,invert函数后置;然后17行对应的2个算式互换了位置。按照我的习惯,先入为主,根据题目方向自己写出代码,然后自己代码对应的就是答案。不知道这个逻辑是否合理?感觉被牵着走经常会没思绪

第5题

现学现卖,熬到到指针、数组这块,已经慢慢感觉到难度了,像malloc和free的配对使用,到数组定义方式,处处都要小心再小心,虽然现在我也还还没整明白

毕竟才开始,慢慢来。

关于这道题,定义了一个10个元素的整型数组,要scanf输入10个元素;

然后遍历数组元素,找到最小值;

再次遍历数组,统计与最小值数值相同的元素个数。

输出。

答案:

13. p

14. *p

15. *p==minValue

#include <stdio.h>
#define N 10

int main()
{
  int array[N]={0},*p,cnt=0,minValue;
  for(p=array;p<array+N;p++){
    scanf("%d",p);
  }
  minValue=array[0];
  for(p=array;p<array+N;p++){
    if(*p<minValue){
      minValue=*p;
    }
  }
  for(p=array;p<array+N;p++){
    if(*p==minValue){
      cnt++;
    }
  }
  printf("the min value is :%d,the num of same elment is :%d\n",minValue,cnt);
  return 0;
}

编译运行结果如下:

关于13题,还是写个&array[i]比较顺手,可惜是p在自加,如果硬撸个&array[cnt++]这一段虽然可以成立,但是最后一段统计相同元素个数的cnt初值就乱套了。

显然,这题是要我们用p指针来作答,scanf后面的变量必须是地址,于是乎答案就是填p了。

而14,15都是通过指针来遍历数组元素,于是乎,都是用*p来表述数组元素的值。

-END-

© Copyright

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

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

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

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

    Ed_Frey
  • Python——关于排序算法(合并排序法)

    如果有2个已经排好序的列表a = [3,5,6,9]和b = [2,4,7,8],以及目标c = []

    Ed_Frey
  • Python——九九乘法表(While循环)

    徘徊了两个月,只好重新来过。看了一下专业培训的,上课大概就要上500小时+,我这短短几个月的酱油式填鸭,连100个小时都没凑?,接下来就简单的习题式的更新些帖子...

    Ed_Frey
  • Counting Bits

    Tyan
  • Android获得控件在屏幕中的绝对坐标

    计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标

    他叫自己MR.张
  • grpc之golang学习笔记2

    上一篇文章简单体验了一下grpc的golang使用,从环境安装到简单demo的编写,编译和测试,感觉还不错,今天再进一步学习分析其用法和一些要注意的坑。

    黑光技术
  • C++版 - 剑指offer 面试题47:不用+、-、×、÷做加法 题解

    提交网址: http://www.nowcoder.com/practice/59ac416b4b944300b617d4f7f111b215?tpId=13&...

    Enjoy233
  • 机器人如何进行速度倍率的调节?

    用户在示教机器人轨迹时,往往会不断的调节机器人的速度倍率。这时就需要不断地去按速度倍率调节键(速度倍率+%键和速度倍率-%键 )。如何进行速度倍率的调节,如何进...

    机器人网
  • 知道亚马逊无货源模式是真是假?你对它真的了解吗?

    最近很多小伙伴都在讨论一个话题“亚马逊无货源模式”,或许,有些人觉得这模式是假的,哪有这么好事让赚大钱,更别说怎么盈利,怎么回报成本等。但有些事不会无风不起浪,...

    Djkkkkki
  • Elasticsearch的ConcurrentMapLong

    elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/common/util/concurren...

    codecraft

扫码关注云+社区

领取腾讯云代金券