• 寒假作业2月13号


    数组练习

    1、选择题

    1.1、若有定语句int a[3][6]; ,按在内存中的存放顺序a 数组的10个元素是 D

    A)a[0][4]                   B) a[1][3]                     C)a[0][3]                D)a[1][4]

     

    1.2、有数组 int   a[5] = {1020304050},  以下表达式编译错误是_____B ______

    A)   a ++ ;

    B)   a[5] =  20  ;

    C)    a + 20  ;

    D)   (a-3,   a[3]) ;

    1.3、以下误的定义语句是 _B_____    

    Aint   x[][3]  =  {{0},{1},{1,2,3}};

    Bint   x[4][3]  =  {{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

    Cint                  x[4][]  =   {{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

    Dint                 x[][3]  =   {1,2,3,4};

    1.4设int i,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句

          for(i=0;i<3;i++)

          printf(″%d, ″,x[i][2-i]);

    的输出结果是 D

       A)1, 4, 7     B)1, 5, 9    C)3, 6, 9    D)3, 5, 7

     

    1.5表达式“sizeof(int [1][2])/sizeof(int)”的值为_C___。

    A)  2   B)  3 C)  4 D)  5

     

    1.6有以下程序

    #include main()

    { char s[]="012xy\07s34f4w2";   

    int i,n=0;

    for(i=0;s[i]!=0;i++)

    if(s[i]>='0'&&s[i]<='9')

     n++;

    printf("%d\n",n);

    }

    程序运行后的输出结果是___B_ ________

    A)0       B)3      C)7         D)8

    1.7、有以下程序

    #include   

     main(   )

    { char s[ ]=wstuv; printf(%c\n,*s+2);  

    }

    程序运行后的输出结果是

    At       B)  tuv      Cy      D)出错

    1.8  数组  int  a[5] = {1020304050}, 有以下语句,其输出__C_____

           printf(“%d\n”*&a +1)    );

       A)  20    B)  30    C)  随机值   D)编译报错

    1.9  有以程序

        # include

    int  main()

    { int   s[12]={1,2,3,4,4,3,2,1,1,1,2,3},  c[5]={0,0,0,0,0},  i  ;

    for(i=0;i<12;i++)          c[s[i]]++  ;

    for(i=1;i<5;i++) printf(%d,”,c[i]);  printf(\n);

    }      C

    A) 4 3 3 2        B) 2 ,   3 4 4    

      C)  1 2 3 4      D ) 4 4 2 3 

     1.10   有数组  int  a[3][4] = {10,20,30,40,50,60,70,80,90,100,110,120},执行以下语句输出的是_________D______

          printf(“%d\n”,  *(*a+2) + 3   );    

      A) 语句有错  B) 120     C)  30     D)  33

    2、填空题

        2.1、有以下程序

    #include   

    main(   )

    { int i,n[ ]={0,0,0,0,0};

    for(i=1;i<=4;i++)

    {n[i]=n[i-1]*3+1;

    printf(%d,n[i]);}

    }

    程序运行后输出结果是 ___1 4 13_______

        2.2、执行以程序的输出结果_3 7 .

    #include 

    int  main()

    { int i,n[4]={1000};

    for(i=1;i<=3;i++)

    { n[i]=n[i-1]*2+1; printf("%d",n[i]); }

    }

    2.3、下面程序运行的结果为___3 5______

           main()

            {

               int  x[5]i

               x[0] = 1x[1] = 2

               fori = 2i<5i++x[i] = x[i-1] + x[i-2];

               fori = 2i<5i++printf“%d”x[i]);

    }

    2.4有以下程序

    #include <sthio.h>

    int  main()

    {

    int  arr[] = {1,3,5,7,2,4,6,8},  i,   start  ;

    scanf(%d”, &start);

     for(i=0,i<7,i+=2)

    printf(%d,arr[(start+i)%5]);

    }

    若在程序运行时输整数 10 <>,则输出结果为____1___

    2.5下面程序运行的结果为__4 5 8 2 0_______

    #include "stdio.h"

          main()

          { int i,j,a[]={0,2,8,4,5};

            printf("\n");

             for(i=1;i<=5;i++)

            {  j=5-i;

              printf("%2d",a[j]);

             }

          }

       2.6有以下程序

    #include   

    int  main()

    { int n[2],i,j;

    for(i=0;i<2;i++) n[i]=0; for(i=0;i<2;i++)

        for(j=0;j<2;j++) n[j]=n[i]+1;

    printf(%d\n,n[1]);

    }

    程序运行后的输出结果是 13

     3、编程题

    3.1、 一个班10个学生的成绩,存放在一个一维数组中,要求找出其中成绩最高的学生的成绩和该生的序号。试编程。(试着用下标法和地址法两种方法表示数组)

    1. #include
    2. int main()
    3. {
    4. int a[] = {55,88,76,54,88,99,46,35,66,78};
    5. int max = a[0];
    6. int maxi = 0;
    7. for(int i=1;i<10;i++)
    8. {
    9. if(max < a[i]){
    10. max = a[i];
    11. maxi = i;
    12. }
    13. }
    14. printf("成绩最高为:%d,序号为:%d",max,maxi);
    15. return 0;
    16. }
    1. #include
    2. int main()
    3. {
    4. int a[] = {55,88,76,54,88,99,46,35,66,78};
    5. int max = *a;
    6. int maxi = 0;
    7. for(int i=1;i<10;i++)
    8. {
    9. if(max < (*(a+i))){
    10. max = *(a+i);
    11. maxi = i;
    12. }
    13. }
    14. printf("成绩最高为:%d,序号为:%d",max,maxi);
    15. return 0;
    16. }

    3.2、有5个学生上4门课程,要求输入全部学生的各门课程成绩,然后输出各门课程的平均成绩,并按照各个学生的平均成绩排序(成绩最高的学生排在数组最前面,最低学生排在数组最后面的行) (试着用下标法和地址法两种方法表示数组)

    1. #include
    2. int main()
    3. {
    4. int a[5][4],sum=0,sum1=0;
    5. for(int i=0;i<5;i++)
    6. {
    7. for(int j=0;j<4;j++)
    8. {
    9. scanf("%d",&a[i][j]);
    10. }
    11. }
    12. for(int j=0;j<4;j++)
    13. {
    14. for(int i=0;i<5;i++)
    15. {
    16. sum+=a[i][j];
    17. }
    18. }
    19. printf("%d\n",sum);
    20. for(int i=0;i<5;i++)
    21. {
    22. sum1=0;
    23. for(int j=0;j<4;j++)
    24. {
    25. sum1+=a[i][j];
    26. }
    27. printf("%d\n",sum1);
    28. }
    29. for(int i=0;i<5;i++)
    30. {
    31. for(int j=0;j<4;j++)
    32. {
    33. scanf("%d",&(*(*(a+i)+j)));
    34. }
    35. }
    36. for(int j=0;j<4;j++)
    37. {
    38. for(int i=0;i<5;i++)
    39. {
    40. sum+=*(*(a+i)+j);
    41. }
    42. }
    43. printf("%d\n",sum);
    44. for(int i=0;i<5;i++)
    45. {
    46. sum1=0;
    47. for(int j=0;j<4;j++)
    48. {
    49. sum1+=*(*(a+i)+j);
    50. }
    51. printf("%d\n",sum1);
    52. }
    53. return 0;
    54. }

  • 相关阅读:
    `sh -c`命令——解决命令权限问题、一条命令中执行多个指令
    【C++】泛型编程 ⑥ ( 类模板 | 类模板语法 | 代码示例 )
    动态路由RID ospf
    golang 关于别名
    使用Multipass编译OpenHarmony工程
    java计算机毕业设计高校运动会源码+mysql数据库+系统+lw文档+部署
    关于安卓12闪屏页适配(一)
    Flex布局实战详解
    字节新鲜面经
    SSM 校园兼职平台
  • 原文地址:https://blog.csdn.net/2201_75638688/article/details/136123726