• 【C语言】每日一题(半月斩)——day2


     

    目录

    一.选择题

    1、以下程序段的输出结果是( )

    2、若有以下程序,则运行后的输出结果是( ) 

    3、如下函数的 f(1) 的值为( ) 

    4、下面3段程序代码的效果一样吗( ) 

    5、对于下面的说法,正确的是( ) 

    二,编程题

    1.尼科彻斯定理

    2.等差数列


     

     

    一.选择题

    1、以下程序段的输出结果是( )

    1. int main()
    2. {
    3. char s[] = "\\123456\123456\t";
    4. printf("%d\n", strlen(s));
    5. return 0;
    6. }

    A: 12              B:13             C: 16               D: 以上都不对 

    解析

    考察的是转义字符

    \\ 表示字符'\',\123表示字符'{',\t表示制表符;

    转义字符通常考察两种:

    ①\ddd ddd表示1~3个八进制

    ②\xhh hh表示1~2个十六进制

    正确答案:A

    2、若有以下程序,则运行后的输出结果是( ) 

    1. #include
    2. #define N 2
    3. #define M N + 1
    4. #define NUM (M + 1) * M / 2
    5. int main()
    6. {
    7. printf("%d\n", NUM);
    8. return 0;
    9. }

    A: 4         B: 8         C: 9         D: 6 

    解析

    考察的是define宏定义

    宏只是替换,替换后NUM的样子是(2+1+1)*2+1/2,计算得8 ;

    #define是宏定义,只进行替换

    正确答案:B

    3、如下函数的 f(1) 的值为( ) 

    1. int f(int n)
    2. {
    3. static int i = 1;
    4. if (n >= 5)
    5. return n;
    6. n = n + i;
    7. i++;
    8. return f(n);
    9. }

    A:5         B:6         C:7         D:8

    解析:
    考察的是函数递归

    static修饰的局部变量——称为静态局部变量

     static实际修改了局部变量的存储类型,将原本应该存储在栈区的局部变量存储在静态区。静态区上数据存储的特点是,程序结束变量才被释放。我们常见的全局变量就是存储在静态区上。现在我们分析static修饰后作用域和生命周期的变化:

    【作用域】:作用域不变,只是出作用域不被销毁
    【生命周期】:生命周期变长,程序结束生命周期才结束

    正确答案:C

    4、下面3段程序代码的效果一样吗( ) 

    1. int b;
    2. ①const int* a = &b;
    3. ②int const* a = &b;
    4. ③int* const a = &b;

    A: (2)=(3)         B: (1)=(2)         C: 都不一样         D: 都一样 

    解析:

    考察的是const; 

    将变量转成常量

    但并不是真正的变成常量,只是语法形式变成常量;本质上还是变量,

    counst 修饰的变量不能再被改变;

    修饰指针有两种方法

    counst int* p ;

    int * counst p;

    • const 放在的左边

    限制的指针指向的内容,也就是说: 不能通过指针来修改指针指向的内容

    但是指针变量是可以修改的,也就是指针指向其他变量的

    • const 放在的右边

    限制的是指针变量本身,指针变量不能再指向其他对象

    但是可以通过指针变量来修改指向的内容

    正确答案:B

    5、对于下面的说法,正确的是( ) 

     A: 对于 struct X{short s;int i;char c;},sizeof(X)等于sizeof(s) + sizeof(i) + sizeof(c)

    B: 对于某个double变量 a,可以使用 a == 0.0 来判断其是否为零

    C: 初始化方式 char a[14] = "Hello, world!"; 和char a[14]; a = "Hello, world!";的效果相同

    D: 以上说法都不对 

     解析:

    考察的是结构体和sizeof;

    A.没有考虑内存对齐

    B.考察浮点型的比较,由于浮点型存在误差,不能直接判断两个数是否相等,通常采用比较两个数差的绝对值是否小于一个很小的数,作为误差

    C.第二种的a代表首元素的地址,地址是常量不可以改变

    正确答案:D

    二,编程题

    1.尼科彻斯定理

    验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。

    例如:

    1^3=1

    2^3=3+5

    3^3=7+9+11

    4^3=13+15+17+19

    输入一个正整数m(m≤100),将m的立方写成m个连续奇数之和的形式输出。

    数据范围:1≤m≤100 

    尼科彻斯定理——牛客网 

    1. #include<math.h>
    2. int main()
    3. {
    4. int m = 0;
    5. scanf("%d", &m);
    6. //获得m的三次幂的数
    7. int ret = pow(m, 3);
    8. printf("m的立方数:%d\n", ret);
    9. //如果m是1
    10. if (m == 1)
    11. {
    12. printf("%d", m);
    13. }
    14. //找到首个元素
    15. int num = m * m - m + 1;
    16. //进行循环找到后面m个数字
    17. for (int i = 0; i < m; i++)
    18. {
    19. //打印首个数字
    20. if (i == 0)
    21. {
    22. printf("%d ", num);
    23. }
    24. //打印后面的
    25. else {
    26. printf("+ %d ", num);
    27. }
    28. num += 2;
    29. }
    30. return 0;
    31. }

     通过示例发现,我们只要找到相加数字串的首个数字就可以通过+2的方式找到后面m-1个;

    4^3=13+15+17+19;

    首数字13是4*4-4+1得到的数字,然后就是通过循环找到后面几个数字;

    2.等差数列

    等差数列 2,5,8,11,14。。。。
    (从 2 开始的 3 为公差的等差数列)
    输出求等差数列前n项和

    数据范围:1≤n≤1000
    输入描述:
    输入一个正整数n。
     
    输出描述:
    输出一个相加后的整数。

    等差数列———牛客网

    1. int main()
    2. {
    3. int n = 0;
    4. int arr[1000];
    5. scanf("%d", &n);
    6. //将等差数列存入数组
    7. for (int i = 0; i < 1000; i++)
    8. {
    9. arr[i] = 3 * (i + 1) - 1;
    10. }
    11. //将等差数累加
    12. int sum = 0;
    13. for (int j = 0; j < n; j++)
    14. {
    15. sum = sum + arr[j];
    16. }
    17. printf("%d", sum);
    18. return 0;
    19. }

     

     

  • 相关阅读:
    泰山OFFICE技术讲座:文字边框高度研究
    QUIC 协议:特性、应用场景及其对物联网/车联网的影响
    【VulnHub靶场】——BOREDHACKERBLOG: SOCIAL NETWORK
    AVLTree模拟实现
    Seata入门系列【7】Seata之TCC模式入门案例
    Redis的学习
    Python 文件名正则表达式:深入探索与实用技巧
    数据结构与算法笔记:基础篇 - 初始动态规划:如何巧妙解决“双十一”购物时的凑单问题?
    excel笔记
    干货|小白也能自制电子相册赶紧码住~
  • 原文地址:https://blog.csdn.net/m0_67367079/article/details/132890227