夯实c语言基础

二维数组

在C语言中,定义二维数组时需要指定行和列的大小。在引用中,int a[][3]={1,2,3,4,5,6,7,8}定义了一个二维数组a,其中有两行三列,即a[0]=1, a=2, a=3, a=4, a=5, a=6。而int a[]则是错误的定义方式,因为在定义时必须指定列的大小,只能省略行的大小。结果为10的是a[2],即二维数组中第二行第三列的元素。

在引用中,int a=5,b=-3,c=4;printf("%d %d",(++a,b++,b++),b++);的输出结果为 6 -2。这是因为逗号表达式的求值顺序是从左到右,其中(++a,b++,b++)的值为 6,而b++的值为-2。

对于C语言中的二维数组int d[3]={{1},{2},{3,4}},其中第一行有一个元素 1,第二行有一个元素 2,第三行有两个元素 3和 4。由于第一行只有一个元素,而定义时指定了每行有三个元素,因此编译器会自动将第一行剩余的两个元素初始化为0,即d=0, d=0。因此,正确的定义方式应该是int d={{1,0},{2,0},{3,4}}。

题干 以下数组定义并初始化中正确的是( b  )。
  A.int  a[][3];
  B.int  b[][3]={2*3};
  C.int  c[][3]={};
  D.int  d[2][3]={{1}{2}{3,4}};
题干

以下数组定义并初始化中不正确的是(  d )。
  A.int  a[]={1,2,3,4};
  B.int  a[][3]={1,2,3,4};
  C.int  a[3][3]={0};
  D.int  a[3][]={{1},{2,3},{4,6,7}};

题干 以下程序的输出结果为(  c )。
#include  "stdio.h"
void  main()
{
        int  s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i=0;
        for(i=0;i<12;i++)
                c[s[i]]++;
        for(i=1;i<5;i++)
                printf("%d",c[i]);
}
  A.1234   B.3344   C.4332   D.1123
题干 以下程序实现从一维数组中,找值为t的元素,请填空。
#include  "stdio.h"
void  main()
{
        int  a[10]={1,2,3,4,5,6,7,8,9,10},i,t;
        scanf("%d",&t);
        for(i=0;i<=9;i++)
                if(a[i]==(  b ))
                        (  d );
        if(i>=( c  ))
                printf("没找到!\n");
        else
                printf("找到了,下标为%d\n",(  a ));
}
  A.i   B.t   C.10   D.break

题干 有以下两程序段,执行的结果分别为:(  c )、(  a )。
//程序段一
int  a[10]={3,2,1,9,8,7,0,4,5,6},i,m;
m=a[0];
for(i=1;i<=9;i++)
        if(a[i]>m)
                m=a[i];
printf("%d",m);
//程序段二
int  a[10]={3,2,1,9,8,7,0,4,5,6},i,m;
m=0;
for(i=1;i<=9;i++)
        if(a[i]>a[m])
                m=i;
printf("%d",m);
注意体会两段代码的区别
  A.3   B.4   C.9   D.10
题干 以下程序实现:输入任意整数插入到有序递增序列后,序列仍有序递增,请填空。
#include  "stdio.h"
void  main()
{
        int  a[10]={2,4,6,8,10,12,14,16,18},t,i;
        scanf("%d",&t);
        for(i=8;i>=0;i--)
                if(( a  )>t)
                        (  b )=a[i];
                else
                        (  c );
        ( b  )=t;
        for(i=0;i<=9;i++)
                printf("%d  ",a[i]);
}
  A.a[i]   B.a[i+1]   C.break   D.continue
题干 以下程序实现从键盘输入10个整数,求该10个数的平均值,及各数和平均值之差,请填空。
#include  "stdio.h"
void  main()
{
        int  a[10],i;
        double  s=0,pj;
        for(i=0;i<=9;i++)
        {
                scanf("%d",&a[i]);
                (  d );
        }
        pj=( b  );
        printf("平均值:%f\n各差值为:\n",pj);
        for(i=0;i<=9;i++)
                printf("%d-%f=%f\n",a[i],( a  ),(   c   ));
}
  A.pj   B.s/10   C.a[i]-pj   D.s=s+a[i]

题干 以下程序实现从键盘输入10个整数,并分别正序逆序输出,请填空。
#include  "stdio.h"
void  main()
{
        int  a[10],i;
        for(i=0;i<=(  a );i++)
                scanf("%d",(   d));
        printf("\n正序:");
        for(i=0;i<=9;i++)
                printf("%d  ",(  b ));
        printf("\n逆序:");
        for(i=0;i<=9;i++)
                printf("%d  ",( c  ));
}
  A.9   B.a[i]   C.a[9-i]   D.&a[i]
题干 有以下两程序段,执行的结果分别为:( b  )、(  d )。
//程序段一
int  a[10]={1,2,3,4,5,6,7,8,9,11},i,s=0;
for(i=0;i<=9;i++)
        if(i%2==1)
                s+=a[i];
printf("%d",s);
//程序段二
int  a[10]={1,2,3,4,5,6,7,8,9,11},i,s=0;
for(i=0;i<=9;i++)
        if(a[i]%2==1)
                s+=a[i];
printf("%d",s);
  A.25   B.31  C.35   D.36
题干 下列程序段定义了一个数组并循环输入每个元素的值,请填空。
int  i,a[10];
for(i=( a  );i<=(  b );i++)
        scanf(“%d”,(  c ));
  A.0   B.9  C.&a[i]   D.a[10]
题干 以下程序实现一维数组10个元素的逆置存储并显示,请填空。
#include  "stdio.h"
void  main()
{
        int  a[10]={1,2,3,4,5,6,7,8,9,12},i,t;
        for(i=0;i<=( b  );i++)
        {
                ( a  )=a[i];
                a[i]=( d  );
                (  d )=t;
        }
        for(i=0;i<=9;i++)
                printf("%d  ",a[i]);
}
  A.t   B.4   C.9   D.a[9-i]

 

 

题干 以下能正确定义一维数组的选项是(  c )。
  A.int  num[]; 
  B.int  num[0...100];
  C.#define  N  100;
      int  num[N];
  D.int  N=100;
      int  num[N];

 

题干 以下数组定义并初始化中正确的是( d  )。
  A.int  N,a[N][N];
  B.int  a[1][2]={{1},{3}};
  C.int  a[2][]={{1,2},{3,4}};
  D.int  a[3][2]={{1,2},{3,4}};
题干 以下程序实现求任意输入串的长度,请填空。
void  main(){
        char  a[80];
        ( d  );
        scanf("%s",(  a ));
        while(( c  )‘\0’)           
                (  b );
        printf("%d\n",i);
}
  A.a   B.i++   C.a[i]!=   D.int  i=0
题干 以下程序实现显示斐波那数列前20项(每行显示四个数据左对齐),请填空。
#include    "stdio.h"
void  main()
{
        int  a[20]={1,1},i;
        for(i=(  d );i<=19;i++)
                (  c )=a[i-1]+(  b );
        for(i=0;i<=19;i++)
        {
                printf("%-12d",a[i]);
                if((  a )%4==0)
                        printf("\n");
        }
}
  A.(i+1)   B.a[i-2]   C.a[i]   D.2
题干 以下程序实现求一维数组中,高于平均值元素个数和低于平均值元素个数,请填空。
#include  "stdio.h"
void  main()
{
        int  a[10]={1,2,3,4,5,6,7,8,9,10},i,ggs=( a  ),dgs=(  a );
        double  s=0,pj;
        for(i=0;i<=9;i++)
                (  d );
        pj=s/10;
        for(i=0;i<=9;i++)
                if(a[i]>pj)
                        ( c  );
                else  if(pj>a[i])
                        dgs++;
        printf("ggs:%d,dgs:%d\n",ggs,dgs);
}
  A.0   B.1   C.ggs++   D.s=s+a[i]
题干 以下程序的输出数值结果为(  c )。 
#include  "stdio.h"
void  main()
{
        int  p[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.43   B.44   C.45   D.46
题干 已有定义char  a[]="xyz",b[]={‘x’,‘y’,‘z’},以下叙述正确的是( c  )。
  A.数组a和b的存储空间长度相同
  B.数组a的存储空间长度小于数组b的存储空间长度
  C.数组a的存储空间长度大于数组b的存储空间长度
  D.上述说法均不正确

 

 

题干 以下程序实现将输入的任意串a复制到b,请填空。
void  main(){
        char  a[80],b[80];
        int  i=0;
        scanf("%s",a);
        while(a[i]){
                (  b )=(  a );
                (  c );
        }
        (  b )=‘\0’;
        printf("%s\n",b);
}
  A.a[i]   B.b[i]   C.i++   D.b[i+1]

夯实c语言基础_第1张图片

你可能感兴趣的:(c语言,算法,c++)