第四章 数组习题
一、选择题
1.    如果char型变量占两个字节的存储单元,则按照如下方式定义的数组x占用的字节数是【 】。
char x[50]={2,4,6,8,10};
    A)  50      B)  100        C)  10      D)  5
2.    下面关于数组的定义正确的是【 】。
    A)
        int n=10;
        float a[n]={1.0,2.1,3.2};
    B)
        #define N 10
        int a[N]={1,2,3};
    C)
        int n;
        scanf("%d", &n);scanf输入整型数组
        int a[n];
    D)
        #define N 10;
        int a[N]={1,2,3};
3.    若有说明 int a[5][4];  则对其数组元素的正确引用是【 】。
    A)a[3+1][2]      B)a(2)(3)          C)a[0,2]    D)a[3][5]
4.    若定义了数组int k[][4]={{1},{1,2,3},{5,6}};则数组共有【 】元素。
    A)6          B)  9            C)  10        D)  12
5.    要将20,30,40,50  存入数组b中,  下列正确的程序段是【 】。
    A)
        int  i,b[4];
        for(i=0;  i<4;  i++)
        b[i]=(i+2)*10;
    B)
        int  b[4];
        b={20,30,40,50};
    C)
        int  b[4];
        b[1]=20,b[2]=30,b[3]=40,b[4]=50;
    D)
        int  b[4];
        b[4]={20,30,40,50};
6.    下列二维数组初始化语句中正确且与语句float a[]={0,1,2,0,4,0}等价的是【 】。
    A)  float a[6]={0,1,2,0,4};        B)  float a[]={0,1,2,0,4};
    C)  float a[7]={0,1,2,0,4,0};    D)  float a[5]={0,1,2,0,4};
7.    printf("%d \n ", strlen ("ATS\n012\1\\" )) ; 程序段的输出结果是【 】。
    A)  11    B)  10      C)  9    D)  8
8.    如果有char s[10]和int i,那么下面能够把输入的字符串存入数组s的选项是【 】。
    A)  scanf("%s",&s);
    B)  gets(s);
    C)  for(i=0;i<10;i++)  scanf("%c",s[i]);
    D)  for(i=1;i<10;i++)  getc(s[i]);
9.    若有说明char s1[]=”good”,s2[]=”idea”, 则下列输出语句中正确的是【 】。
    A)  printf("%s%s",&s1[0],&s2[0]);   
    B)  printf("%c%c",s1,s2);
    C)  putc(s1);putc(s2);
    D)  puts(s1,s2);
10.    若有定义char str[7]; 要将键盘输入的字符串"a book" 赋给str,应使用【 】。
    A)  gets(str);    B)  scanf("%s",str);    C)  str="a pear";    D)  getchar(str);
11.    若有说明 char s1[5],s2[7];,要将字符串存储到s1和s2中,下列语句中正确的是【 】。
    A)  scanf("%s%s",&s1, &s2);        B)  gets(s1, s2);
    C)  scanf("%s%s", s1, s2);        D)  s1=getchar( ); s2=getchar( );
12.    下面程序段运行后,输出结果是【 】。
main()
{
  char s[20]="1234\0abcd";
  printf("%d,%d\n",strlen(s),sizeof(s));
}
    A)  4,20    B)  5,20    C)  9,10    D)  10,10
13.    下列一维数组说明中,不正确的是【 】。
A)  float a[5+6];
B)  int n=10, a[n];
C)  #define M 10
    int a[M+5] ;
D)  float a[10], b[9] ;
14.    定义如下变量和数组:
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句输出结果是【 】。
for(i=0;i<3;i++) printf("%d",x[i][2-i]);
    A)  1 4 7    B)  3 5 7    C)  3 6 9    D)  1 5 9
15.    下面程序段的运行结果是【 】。
char c[5]={‘a’,’b’,’\0’,’c’,’\0’};
printf(“%s”,c)  ;
A)  ’a’  ‘b’        B)  ab        C)  ab c        D)  ab
16.    运行下面程序段的输出结果是【 】。
int a[7]={1,3,5} ;
printf("%d\n",a[3] );
A)  0        B)5        C) 3        D)  不确定数
17.    要将字符串str2连接到字符串str1后,应使用的函数是【 】。
    A)  strcpy(str1,str2);
    B)  strcat(str2,str1);
    C)  strcat(str1,str2);
    D)  strcmp(str2,str1);
18.    下列二维数组说明中,正确的是【 】。
A)  int n=5; float  a[n][5];   
B)  int a[][9];
C)  #define L1  7
      #define L2  8
      float a[L1][L2];
D)  int n, m; scanf ("%d%d",&n,&m); float a[m][n];
19.    若 int data[5][6];且数组的起始地址为100(十进制), 则元素data[3][2]的地址为【 】。
A)  120    B)  113    C)  140    D)  126
20.    若已有定义 char s[10]; int i;下列输入函数调用中错误的是【 】。
A)  for (i=0; i<10; ++i) s[i]=getchar( ) ;
B)  for (i=0; i<10; i++) scanf("%c",s[i] );
C)  scanf("%s",s);
D)  gets(s);
21.    设定义char a[20] ,要想使数组a得到字符串“how are you”应使用【 】
A)  printf("%s",a);    B)  gets(a);    C)  a=gets();    D)  printf("%c",a);
22.    若有说明char s1[]="good",s2[]="well";则下列输出语句中正确的是【 】。
A)  printf("%s%s",&s1, &s2);    B)  printf("%s%s", s1[], s2[]);
C)  puts(s1, s2);        D)  puts(s1);  puts(s2);
23.    若有定义 char  s[]="a boy" ;则数组的长度自动定义为【 】。
A)  6    B)  5    C)  8    D)  7
24.    在C语言中,引用数组元素时,其数组下标的数据类型允许是【 】。
A)整型常量                      B)整型表达式
C)整型常量或整型表达式          D)任何类型的表达式
25.    若有说明int a[][3]={1,2,3,4,5,6,7}; 则a数组第一维的大小是【 】。
A) 2          B)3              C)4        D) 无确定值
26.    下面程序段的运行结果是【 】。
char st[5]={‘a’,’b’,’\0’,’c’,’\0’};
puts(st);
A)  ‘a’’b’    B)  ab    C)  ab c    D)  ab
27.    下面程序段的运行结果是【 】。
int i;
char st[5]={‘a’,’b’,’\0’,’c’,’\0’};
for(i=0;i<5;i++)
    printf(“%c”,st[i]);
A)  ‘a’’b’    B)  ab    C)  ab c    D)  ab
28.    运行下面程序段的输出结果是【 】。
int a[10]={1,3,5} ;
printf("%d\n",a[3] );
A)  0    B)  5    C)  3    D)  不确定数
29.    要将字符串str2复制到字符串str1,应使用的函数是【 】。
    A)  strcpy(str1,str2);        B)  strcat(str2,str1);   
    C)strcat(str1,str2);        D)  strcmp(str2,str1);
30.    若已定义
char s1[]="go to bed";
s2[]="go on";
    假设已经执行预编译命令
#include<string.h>
    则函数strcmp(s1,s2) 的值是【 】。
A)  0    B)  -5    C)  5    D)  13
31.    若已经包含头文件<stdio.h>,且已有定义:
char s[]={‘a’,’\0’,’c’,’o’,’d’,’e’,’\0’};
int i;
若要输出 “a code”,应使用【 】。
A)  puts(s);        B)  for(i=0;i<6;i++) printf("%s",s[i]);
C)  printf("%s",s);        D)  for(i=0;i<6;i++) putchar(s[i]);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。