• c语言每日一练(13)


    前言:
    每日一练系列,每一期都包含5道选择题,2道编程题,博主会尽可能详细地进行讲解,令初学者也能听的清晰。每日一练系列会持续更新,上学期间将看学业情况更新。

     五道选择题:

    1、程序运行的结果为()

    1. #include
    2. int main()
    3. {
    4. int x=1.9;
    5. x++;
    6. printf("%d",x);
    7. }

    A、1    B、2    C、2.9    D、3

    解析:简单题,考察的是你对于整型变量的理解整型变量如果初始值被赋予小数,那么在vs编译器上就会直接将小数部分给舍去,也就是说,代码1中给x赋予1.9,实际上只是给x赋予1,接着走到x++,使x=2,所以最后打印出来的结果就是2,选B 

    2、设有整型变量a,b,c,它们的初值是1,运行表达式++a| |++b&&++c后,a,b,c的值分别是 ()

    A、2,1,1       B、2,2,2     C、2,2,1      D、2,1,2

    解析:易错题,考察||(或)运算和&&(且)运算的运用,||运算只要一边为真即为真,所以当我们判定完一边为真的时候另一边就不用再判定,计算机会直接跳过。&&运算,两边都为真才为真,只要有一边为假就为假,所以一旦发现一边为假则不再判定另一边。

    跟据规则走,首先遇到的是++a,先++后使用,a=2,2为真,是||运算,所以后面的部分不进行,连带着&&也没有进行,所以最后a=2,b=1,c=1,选A

    3、以下程序运行的结果为()

    1. #include
    2. int main()
    3. {
    4. int x = 5;
    5. int i = 0, j = 0, k = 0;
    6. x = (i = 4, j = 16, k = 32);
    7. printf("%d %d %d %d", x,i,j,k);
    8. }

    A、5,4,16,32     B、5,0,0,0    C、32,4,16,32    D、32,0,0,0

    解析:考察你对于逗号表达式的理解,逗号表达式从左往右进行,整个表达式的结果为最后一个表达式。

    从左往右走,首先给i赋值为4,接着给j赋值为16,最后来到最后一个表达式,k=32,而根据逗号表达式的运行可知整个表达式的结果也是k=32,所以最后是x=k=32,同时对x和k赋值,所以x和k最后均为32,综上所述,i=4,j=16,x=k=32,所以最后打印出来的结果为32,4,16,32选C

    4、有如下程序,程序运行后的输出结果是()

    1. #include
    2. int main()
    3. {
    4. int x = 072;
    5. printf("%d\n", x+1);
    6. }

    A、72      B、73       C、115       D、59

     解析:基础题,考察你对细节的掌控,八进制数的前缀为0,十六进制的前缀为0x,十进制数没有前缀。所以该程序赋值给x的值是一个八进制的72,转换为十进制就是2*1+7*8=58,最后打印出x+1即59,故选D

    5、若想定义 int 型变量 a,b,c,d 并都赋值为 1,以下写法中错误的

    A、int a=b=c=d=1;
    B、int a=1, b=1, c=1, d=1;
    C、int a,b,c,d; a=b=c=d=1;
    D、int a,b,c,d=1; a=b=c=d;

    解析:一个一个走,先看A选项,A选项的操作并没有定义b,c,d这三个整型变量,故A错误,B选项挨个定义,没有问题,B正确。C选项全部定义完了再赋值,C正确,D选项,先定义a,b,c,d四个变量的同时给d赋值为1,最后令a=b=c=d,令a,b,c与d相等,所以最后,a,b,c,d均为1,D正确,综上所述,选A

    编程题1: 

    剑指 Offer 10- I. 斐波那契数列 - 力扣(LeetCode)

    提示:记得取模,一开始博主也没有取模,想半天,哈哈 

    1. int fib(int n) {
    2. if (n == 0)
    3. {
    4. return 0;
    5. }
    6. if (n <= 2)
    7. {
    8. return 1;
    9. }
    10. //以上特殊情况单独处理下
    11. int f1 = 1; int f2 = 1; int f3 = 0; int i = 0;
    12. for (i = 3; i <= n; i++)
    13. //我们一开始计算的就是第三个斐波那契数,所以令i=3
    14. {
    15. f3 = (f1 + f2) % 1000000007;
    16. //先储存下一个斐波那契数
    17. f1 = f2;
    18. f2 = f3;
    19. //进行数据更新
    20. }
    21. return f3;
    22. //返回目标
    23. }

    编程题2: 

    134. 加油站 - 力扣(LeetCode)

    提示:此题较难,建议学习贪心算法之后再过来进行,这里博主并没有使用贪心算法,使用最朴实无华的方法通过的,目的是让大家能够感受一下代码的严谨。拷贝博主的代码有时也是通不过的,因为博主没有使用技巧答题,当你网络不好时可能会因为超出时间限制而失败,多试几次就可以。 

     

    1. int canCompleteCircuit(int* gas, int gasSize, int* cost, int costSize) {
    2. int oil = 0;
    3. int i = 0;
    4. if(gasSize==1)
    5. //只有一个单独处理
    6. {
    7. if(gas[0]>=cost[0])
    8. return 0;
    9. }
    10. for (i = 0; i < gasSize; i++)
    11. {
    12. int tmp = i;
    13. //不要在函数内对循环变量操作,因此使用tmp来间接操作
    14. int flag = 1;
    15. //判定是否可以行进的变量
    16. oil = gas[tmp];
    17. if (oil > cost[tmp])
    18. {
    19. oil -= cost[tmp];
    20. for (++tmp; tmp < gasSize; tmp++)
    21. {
    22. oil += gas[tmp];
    23. oil -= cost[tmp];
    24. if (oil < 0)
    25. {
    26. flag = 0;
    27. break;
    28. }
    29. }
    30. if (flag == 0)
    31. {
    32. continue;
    33. }
    34. for (tmp = 0; tmp < gasSize; tmp++)
    35. {
    36. oil += gas[tmp];
    37. oil -= cost[tmp];
    38. if (tmp == i)
    39. {
    40. break;
    41. }
    42. if (oil < 0)
    43. {
    44. flag = 0;
    45. break;
    46. }
    47. }
    48. if (flag == 1)
    49. {
    50. return tmp;
    51. }
    52. else
    53. {
    54. continue;
    55. }
    56. }
    57. else
    58. {
    59. continue;
    60. }
    61. }
    62. return -1;
    63. }

    好了,今天的练习到这里就结束了,感谢各位友友的来访,祝各位友友前程似锦O(∩_∩)O

     

     

  • 相关阅读:
    7.1提出问题&7.2欧拉方法
    el-table给某一行加背景色
    计算机网络重点概念整理-第六章 应用层【期末复习|考研复习】
    独家巨献!阿里专家兼Github贡献者,整理的SpringBoot入门到成神
    基于web的学校二手书城系统/二手书交易系统
    链表的基本操作
    包装类、多线程的基本使用
    Citespace、vosviewer、R语言的文献计量学 、SCI
    【Verilog】HDLBits题解——Circuits/Sequential Logic/Latches and Flip-Flops
    Ruoyi表单构建
  • 原文地址:https://blog.csdn.net/fq157856469/article/details/132645813