• 校软第二次考核11.11


    题解:

    一、选择题

    1. A ,命令,以#号带头的行是预编译处理命令

    2.B 

      array[][3]:

          1 2 3

          4 5 0

          6 0 0

      *p[3] 是一个数组指针

      **dp是一个指向指针的指针

      *(--dp-1) == p , p+5 的地址(从1开始数,1,2,3,4,5)

      那么,*(p+5) == 5  

      深入理解C语言数组和指针:https://www.cnblogs.com/maluning/p/7955648.html

      数组指针和指针数组     :https://blog.csdn.net/u013719339/article/details/80563247

    3.B

      因为数组名本身代表的就是数组的首地址,所以不需要&

      如果是 int a;,那么 int *p = &a 才对

    4. A  =        =       =       =      =

       100    104    108  112  116

    5.A  结构体嵌套

    6.D 原地逆序,链表直接头尾互换就ok了,O(1),数组原地逆序 O(n)

      头部插入,链表O(1),数组还要往后挪n个单位 O(n)

      返回头结点,都是一样的速度,head,a[0]

      返回随机节点,链表需要模拟一个随机值,然后next到那个值O(n)

              数组直接用下标就好 a[i]

    7.C

      程序区:存放二进制代码的区域

      静态存储区:只读的变量区域,如const常量等。

      动态存储区:堆、栈、动态变量(malloc)、函数调用返回等。

      详解:https://blog.csdn.net/qq_36802648/article/details/79600741

    8.B  head->next == NULL 

      单链表详解:https://www.cnblogs.com/wft1990/p/6718623.html

    9.C

      每隔一年半生一个,那么15个孩子,一共用了 14*1.5年(15个节点,14段,每个1.5年)

      设最大的孩纸 x 岁,最小的孩纸 y岁

      x = 8 y

      x = y + 14*1.5              ,解得 x = 24, y = 3

    10.

      array[][3]:

          1 2 0

          3 4 0

          5 6 7

      *(array + 1) == 第二行的首地址  array[1][0]

      *(*(array + 1) + 3) == 0 

      二维数组的指针表示:https://zhidao.baidu.com/question/457190355.html

    二、判断题

    1.数组特定的值初始化后,余下的值都为0     ,正确

    2. c 不可以是 float类型  (只能是整形和字符型),错误

    3.(那上面少打个 & ,是逻辑运算与) ,&& 和 || 都是短路运算  , 正确

    4.对于不同类型的值进行运算时,向取值范围大的那类转换 int->unsigned int    ,正确

     unsigned int 只有正数,没有负数,所以 a + b是个值很大的正数(肯定大于0的啦)

    5.正确

      详解:https://www.cnblogs.com/xwdreamer/archive/2012/04/12/2444494.html

    三、填空题

    1. sizeof(d) = 12,因为:struct内存对齐

      详解:https://blog.csdn.net/u014170207/article/details/53113901

    2. a+b > 0  ,因为: int 转化为 unsigned int

    3.  a = 9, b = 0

      b^=a--;    

      b 0 0 0 0    0

      a 1 0 0 1    9

    ----------------------

      b 1 0 0 1    9

      a 1 0 0 0    8

    ------------------------

      a&=b++;

      a 1 0 0 0    8

      b 1 0 0 1    9

    ----------------------

      a 1 0 0 0    8

      b 1 0 1 0    10

    ------------------------

      b|=--a;

      b 1 0 1 0    10

      a 0 1 1 1    7

    -------------------

      b 1 1 1 1    15

      a 0 1 1 1    7

    4.输出 49  8  (手动模拟一边就ok)

    5 while(x > 0) if(sum == i)

    6.for(int i=1; i<=n ; i+=2)     for(int j=1 ; j<=i ; j++)      f*=j  

    7 length - 1     array[j] = array[i]     array[i] =  traget 或者  array[j] = target    (快排的一小段)

    四、编程题

    1.

     1 #include <stdio.h>
     2 int gcd(int a,int b){
     3     return b == 0 ? a:gcd(b,a%b);
     4 }
     5 int lcm(int a,int b,int x){
     6     return (a/x) * b;
     7 }
     8 int main(){
     9     int a,b;
    10     scanf("%d%d",&a,&b);
    11     int x = gcd(a,b);
    12     printf("gcd:%d  lcm:%d",x,lcm(a,b,x));
    13     return 0;
    14 }

    2.

     1 #include <stdio.h>
     2 double fac(int x){
     3     if(x == 0) return 1;
     4     double ans = 1;
     5     for(int i=1;i<=x;i++) 
     6         ans *= i;
     7     return ans;
     8 }
     9 int main(){
    10     printf("n e
    ");
    11     printf("- -----------
    ");
    12     for(int i=0;i<10;i++){
    13         printf("%d ",i);
    14         double ans = 0;
    15         for(int j=0;j<=i;j++){
    16             ans += (1.0/fac(j));
    17         }
    18         printf("%.10g",ans);
    19         if( i != 9) puts("");
    20     }
    21     return 0;
    22 }
  • 相关阅读:
    如何删除git所有提交历史,如何在不删除本地仓库文件的情况下删除远程仓库文件
    目标检测(一)
    Mac更新git,使用git创建仓库,PyCharm、Vscode中使用git上传项目
    miniconda配置安装pytorch cuda版本 + pytorch lightning
    ssh隧道解决PyCharm跨过跳板机连接服务器问题
    numpy实现多层感知机,完成手写数字识别任务
    GoJS 使用笔记
    使用Xamarin开发移动应用示例——数独游戏(五)保存游戏进度
    Kendo UI Grid 使用总结
    使用Xamarin开发移动应用示例——数独游戏(七)添加新游戏
  • 原文地址:https://www.cnblogs.com/lukelmouse/p/9959814.html
Copyright © 2020-2023  润新知