二级C语言教程章节测试9.docx

上传人:b****5 文档编号:6209830 上传时间:2023-01-04 格式:DOCX 页数:18 大小:26.33KB
下载 相关 举报
二级C语言教程章节测试9.docx_第1页
第1页 / 共18页
二级C语言教程章节测试9.docx_第2页
第2页 / 共18页
二级C语言教程章节测试9.docx_第3页
第3页 / 共18页
二级C语言教程章节测试9.docx_第4页
第4页 / 共18页
二级C语言教程章节测试9.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

二级C语言教程章节测试9.docx

《二级C语言教程章节测试9.docx》由会员分享,可在线阅读,更多相关《二级C语言教程章节测试9.docx(18页珍藏版)》请在冰豆网上搜索。

二级C语言教程章节测试9.docx

二级C语言教程章节测试9

二级C语言教程章节测试9.一维数组与指针

(一)

一、选择题

    

(1)有以下程序

     main()

     {int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;

      printf("%d\n",*p+*q);

     }

    程序运行后的输出结果是_____。

     A)16   B)10   C)8   D)6

    

(2)有以下程序

     main()

     {int a[]={2,4,6,8,10},y=0,x,*p;

      p=&a[1];

      for(x=1;x<3;x++) y+=p[x];

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

     }

    程序运行后的输出结果是_____。

     A)10   B)11   C)14   D)15

    (3)有以下程序

     voidsort(int a[],int n)

     {int i,j,t;

      for(i=0;i

        for(j=i+1;j

          if(a[i]

     }

     main()

     {int aa[10]={1,2,3,4,5,6,7,8,9,10},i;

      sort(aa+2, 5);

      for(i=0;i<10;i++)printf("%d,",aa[i]);

      printf("\n");

     }

    程序运行后的输出结果是_____。

     A)1,2,3,4,5,6,7,8,9,10,   B)1,2,7,6,3,4,5,8,9,10,

     C)1,2,7,6,5,4,3,8,9,10,   D)1,2,9,8,7,6,5,4,3,10,

    (4)有以下程序

     voidsum(int a[])

     { a[0]=a[-1]+a[1]; }

     main()

     {int a[10]={1,2,3,4,5,6,7,8,9,10};

      sum(&a[2]);

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

     }

    程序运行后的输出结果是_____。

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

    (5)有以下程序

     voidswap1(int c0[],int c1[])

     {int t;

      t=c0[0];   c0[0]=c1[0];   c1[0]=t;

     }

     voidswap2(int *c0,int *c1)

     {int t;

      t=*c0;   *c0=*c1;   *c1=t;

     }

     main()

     {int a[2]={3,5}, b[2]={3,5};

      swap1(a,a+1);   swap2(&b[0],&b[1]);

      printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);

     }

    程序运行后的输出结果是_____。

     A)3553  B)5335  C)3535  D)5353

    (6)有以下程序

    main()

    {

      intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;

      while(i++<7) if(p[i]%2)  j+=p[i];

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

    }

    程序运行后的输出结果是_____。

    

    A)42B)45C)56D)60

    (7)有以下程序

    void f(int *x,int *y)

    {    int t;

       t=*x;*x=*y;*y=t;

    }

    main()

    {  int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;

       p=a;q=&a[7];

       while(p

      {

      f(p,q);

      p++;

      q--;

      }

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

         printf("%d,",a[i]);

    }

    程序运行后的输出结果是                      

    A)8,2,3,4,5,6,7,1,

    B)5,6,7,8,1,2,3,4,

    C)1,2,3,4,5,6,7,8,

    D)8,7,6,5,4,3,2,1,

    (8)以下叙述中错误的是 _____。

   

    A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

    B)数组名代表的是数组所占存储区的首地址,其值不可改变

    C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

    D)可以通过赋初值的方式确定数组元素的个数

    (9)有以下程序

    #define N 20

    fun(int a[],int n,intm)

    {  inti,j;

       for(i=m;i>=n;i--)

          a[i+1]=a[i];

    }

    main()

    {

      inti,a[N]={1,2,3,4,5,6,7,8,9,10};

      fun(a,2,9);

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

        printf("%d",a[i]);

    }

    程序运行后的输出结果是_____。

    

    A)10234B)12344C)12334D)12234

    (10)有以下程序

    prt(int *m,int n)

    {

      inti;

      for(i=0;i

          m[i]++;

    }

    main()

    {

      inta[]={1,2,3,4,5},i;

      prt(a,5);

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

         printf("%d,",a[i]);

    }

    程序运行后的输出结果是_____。

     

    A)1,2,3,4,5,  B)2,3,4,5,6,

    C)3,4,5,6,7,  D)2,3,4,5,1,

    (11)有以下程序

    main()

    {  int a[]={1,2,3,4,5,6,7,8,9,0},*p;

       for(p=a;p

         printf("%d,",*p);

    }

    程序运行后的输出结果是_____。

                

    A)1,2,3,4,5,6,7,8,9,0,

    B)2,3,4,5,6,7,8,9,10,1,

    C)0,1,2,3,4,5,6,7,8,9,

    D)1,1,1,1,1,1,1,1,1,,1,

    (12)有以下程序

    intf(inta)

    {returna%2;}

    main()

    {ints[8]={1,3,5,2,4,6},i,d=0;

     for(i=0;f(s[i]);i++)d+=s[i];

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

    }

    程序运行后的输出结果是_____。

    A)9   B)11   C)19   D)21

    (13)设有定义语句

    intx[6]={2,4,6,8,5,7},*p=x,i;

    要求依次输出x数组6个元素中的值,不能完成此操作的语句是_____。

    A)for(i=0;i<6;i++)printf("%2d",*(p++));

    B)for(i=0;i<6;i++)printf("%2d",*(p+i));

    C)for(i=0;i<6;i++)printf("%2d",*p++);

    D)for(i=0;i<6;i++)printf("%2d",(*p)++);

    (14)有以下程序

    #include

    main()

    {inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;

     *q=*(p+5);

      printf("%d%d\n",*p,*q);

    }

    程序运行后的输出结果是_____。

    A)运行后报错 B)66    C)611  D)510

    (15)已有定义:

inti,a[10],*p;,则合法的赋值语句是_____。

    A)p=100;   B)p=a[5];  C)p=a[2]+2; D)p=a+2;

    (16)有以下程序

    main()

    {intx[]={1,3,5,7,2,4,6,0},i,j,k;

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

     for(j=2;j>=i;j--)

       if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}

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

       for(j=4;j<7-i;j++)

        if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;}

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

       for(j=4;j<7-i;j++)

        if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1]=k;}

     for(i=0;i<8;i++)printf("%d",x[i]);

     printf("\n");

    }

    程序运行后的输出结果是_____。

    A)75310246  B)01234567   C)76310462  D)13570246

    (17)有以下程序段

    inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;

    b=p[5];

    b中的值是_____。

    A)5   B)6   C)8   D)9

    (18)有以下程序

    voidswap1(intc[])

    {intt;

     t=c[0];c[0]=c[1];c[1]=t;

    }

    voidswap2(intc0,intc1)

    { intt;

      t=c0;c0=c1;c1=t;

    }

    main()

    {inta[2]={3,5},b[2]={3,5};

     swap1(A); swap2(b[0],b[1]);

     printf(“%d %d %d %d\n”,a[0],a[1],b[0],b[1]);

    }

    其输出结果是_____。

    A)5353  B) 5335 C)3535  D)3553

    (19) 有以下程序

    voidsum(int*A)

    {a[0]=a[1];}

    main()

    { intaa[10]={1,2,3,4,5,6,7,8,9,10},i;

      for(i=2;i>=0;i--)&nb

      sp;sum(&aa[i]);

      printf(“%d\n”,aa[0]);

    }

    执行后的输出结果是_____。

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

    (20)有以下程序

    voidsort(inta[],intn)

    { inti,j,t;

      for(i=0;i

         for(j=i+2;j

             if(a[i]

    }

    main()

    {intaa[10]={1,2,3,4,5,6,7,8,9,10},i;

     sort(aa,10);

     for(i=0;i<10;i++)   printf(“%d”,aa[i]);

     printf(“\n”);

    }

    其输出结果是_____。

    A)1,2,3,4,5,6,7,8,9,10,    B)10,9,8,7,6,5,4,3,2,1,

    C)9,2,7,4,5,6,3,8,1,10,  D)1,10,3,8,5,6,7,4,9,2,

    (21)以下能正确定义一维数组的选项是_____。

    A)int  num[];          B)#define N100

                                   Int num[N];

    C)int num[0..100];         D)int N=100;

    int  num[N];

    (22)有以下程序

    main()

    { int p[7]={11,13,14,15,16,17,18},i=0,k=0;

     while(i<7&&p[i]%2){k=k+p[i];i++;}

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

    }

    执行后输出结果是_____。

    A)58 B)56 C)45 D)24

    (23)有以下程序

    main()

    { int x[8]={8,7,6,5,0,0},*s;

     s=x+3

     printf("%d\n",s[2]);

    }

    执行后输出结果是_____。

    A)随机值   B)0   C)5   D)6

    (24)以下函数的功能是:

通过键盘输入数据,为数组中的所有元素赋值。

    #define N 10

    void  arrin(int x[N])

    { int i=0;

     while(i

      scanf("%d",     );

    }

    在下划线处应填入的是_____。

    A)x+i   B)&x[i+1]  C)x+(i++)  D)&x[++i]

    (25)以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序

    voidsort(inta[],intn)

    {int i,j,t;

    for(i=0;i

    for(j=i+1,j

    if(a[i]

    }

    main()

    {intaa[10]={1,2,3,4,5,6,7,8,9,10},i;

    sort(&aa[3],5);

    for(i=o;i<10;i++) print(“%d,”,aa[i]);

    printf(‘\n”);

    }

    程序运行后的输出结果是_____。

    A)1,2,3,4,5,6,7,8,9,10     B)10,9,8,7,6,5,4,3,2,1,

    C)1,2,3,8,7.6.5.4.9,10     D)1,2,10,9,8,7,6,5,4,3

    (26)以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。

    voidreverse(int a[],intn)

    {int i,t;

    for(i=0;i

    {t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

    }

    main()

    {int b[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;

     reverse(b,8);

     for(i=6;i<10;i++)s+=b[i];

     printf(“%d\n”,s);

    }

    程序运行后的输出结果是_____。

    A)22     B)10   C)34   D)30

    (27)以下程序调用findmax函数返回数组中的最大值

    findmax(int *a,int n)

    {int  *p,*s;

    for(p=a,s=a; p-a

    if(            ) s=p;

    return(*s);

    }

    main()

    {int x[5]={12,21,13,6,18};

    printf("%d\n",findmax(x,5));

    }

    在下划线处应填入的是_____。

    A)p>s        B)*p>*s      C)a[p]>a[s]   D)p-a>p-s

    (28)若有定义:

int aa[8];。

则以下表达式中不能代表数组元aa[1]的地址的是_____。

    A)&aa[0]+1   B)&aa[1]      C)&aa[0]++  D)aa+1

    (29)以下程序的输出结果是_____。

    f(int b[],int m,int n)

    {int i,s=0;

    for(i=m;i

    return s;

    }

    main()

    {int x,a[]={1,2,3,4,5,6,7,8,9};

    x=f(a,3,7);

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

    }

    A)10       B)18       C)8        D)15

    (30)假定int类型变量占用两个字节,其有定义:

int x[10]={0,2,4};,则数组x在内存中所占字节数是_____。

    A)3     B)6        C)10      D)20

    (31)以下程序的输出结果是_____。

    main()

    {  int  i,a[10];

    for(i=9;i>=0;i--) a[i]=10-i;

    printf(“%d%d%d”,a[2],a[5],a[8]);

    }

    A)258     B)741   C)852         D)369

    (32)下列程序的输出结果是_____。

    A)非法          B)a[4]的地址      C)5             D)3

    main()

    {  char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;

       printf(“%d”,*--p);

    }

    (33)下面程序的输出结果是_____。

    A)0      B)1          C)10       D)9

    main()

    { int a[]={1,2,3,4,5,6,7,8,9,0,},*p;

      p=a;

      printf(“%d\n”,*p+9);

    }

    (34)当调用函数时,实参是一个数组名,则向函数传送的是_____。

    A)数组的长度              B)数组的首地址

    C)数组每一个元素的地址            D)数组每个元素中的值

    (35)以下程序的输出结果是_____。

    A)20     B)21    C)22    D)23

    main()

    { int i, k, a[10], p[3];

      k=5;

      for(i=0;i<10;i++)  a[i]=i;

      for(i=0;i<3;i++)   p[i]=a[i*(i+1)];

      for(i=0;i<3;i++)   k+=p[i]*2;

      printf(“%d\n”,k);

    }

    (36)以下函数返回a所指数组中最小的值所在的下标值

    fun(int  *a, int n)

    {  int  i,j=0,p;

    p=j;

    for(i=j;i

    if(a[i]

    return(p);

    }

    在下划线处应填入的是_____。

    A)i=p            B)a[p]=a[i]      C)p=j           D)p=i

    (37)有如下说明

    int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

    

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1