最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

C语言数组练习及答案

来源:动视网 责编:小OO 时间:2025-10-07 00:54:16
文档

C语言数组练习及答案

第四部分数组4.1选择题1.以下关于数组的描述正确的是(c)。A.数组的大小是固定的,但可以有不同的类型的数组元素B.数组的大小是可变的,但所有数组元素的类型必须相同C.数组的大小是固定的,所有数组元素的类型必须相同D.数组的大小是可变的,可以有不同的类型的数组元素2.以下对一维整型数组a的正确说明是(d)。A.inta(10);B.intn=10,a[n];C.intn;D.#defineSIZE10scanf("%d",&n);inta[SIZE];inta[n];3.在C语言中,引用数组
推荐度:
导读第四部分数组4.1选择题1.以下关于数组的描述正确的是(c)。A.数组的大小是固定的,但可以有不同的类型的数组元素B.数组的大小是可变的,但所有数组元素的类型必须相同C.数组的大小是固定的,所有数组元素的类型必须相同D.数组的大小是可变的,可以有不同的类型的数组元素2.以下对一维整型数组a的正确说明是(d)。A.inta(10);B.intn=10,a[n];C.intn;D.#defineSIZE10scanf("%d",&n);inta[SIZE];inta[n];3.在C语言中,引用数组
第四部分 数组

4.1 选择题

1.  以下关于数组的描述正确的是(c )。   

A. 数组的大小是固定的,但可以有不同的类型的数组元素

B. 数组的大小是可变的,但所有数组元素的类型必须相同

C. 数组的大小是固定的,所有数组元素的类型必须相同

D. 数组的大小是可变的,可以有不同的类型的数组元素

2.  以下对一维整型数组a的正确说明是(d )。      

A.int a(10);                         B. int n=10,a[n];

C.int n;                             D. #define  SIZE  10

      scanf("%d",&n);                     int  a[SIZE];

  int a[n];           

3.  在C语言中,引用数组元素时,其数组下标的数据类型允许是(c )。    

A. 整型常量

B. 整型表达式

C. 整型常量或整型表达式

D. 任何类型的表达式

4.  以下对一维数组m进行正确初始化的是(c )。      

A. int m[10]=(0,0,0,0) ;                 B. int m[10]={ };

C. int m[ ]={0};                         D. int m[10]={10*2}; 

5.  若有定义:int  bb[ 8];。则以下表达式中不能代表数组元bb[1]的地址的是(c )。   

A. &bb[0]+1        B. &bb[1]         C. &bb[0]++            D. bb+1

6.  假定int类型变量占用两个字节,其有定义:int  x[10]={0,2,4};,则数组x在内存中所占字节数是(d )。 

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

7.  若有以下说明:                            

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

        char c='a',d,g;

        则数值为4的表达式是(d )

A. a[g-c]          B. a[4]           C. a['d'-'c']          D. a['d'-c]

8.  以下程序段给数组所有的元素输入数据,请选择正确答案填入(a )。    

#include

main()

{

 int a[10],i=0;

while(i<10) scanf("%d",________ );

}

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

9.  执行下面的程序段后,变量k中的值为(a )。 

     int  k=3, s[2];

     s[0]=k;  k=s[1]*10;

A. 不定值          B. 33              C. 30                D. 10

10. 以下程序的输出结果是(c )     

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

11. 以下程序运行后,输出结果是(d )。  

main()

{

 int  n[5]={0,0,0},i,k=2;

for(i=0;iprintf("%d\\n",n[k]);

}

A. 不确定的值      B. 2               C. 1                  D. 0

12. 以下程序运行后,输出结果是(b )。     

    main()  

int    y=18,i=0,j,a[8];

     do

       {  a[i]=y%2; i++;

          y=y/2;

} while(y>=1);

for(j=i-1;j>=0;j--) printf("%d",a[j]);

     printf("\\n");

}

A. 10000          B. 10010           C. 00110              D. 10100

13. 以下程序运行后,输出结果是(a )。   

main()

{

int a[10], a1[ ]={1,3,6,9,10}, a2[ ]={2,4,7,8,15},i=0,j=0,k;

for(k=0;k<4;k++)

if(a1[i]else               a[k]=a2[j++];

for(k=0;k<4;k++) printf("%d",a[k]);

 }

A. 1234             B. 1324             C. 2413              D. 4321

14. 以下程序运行后,输出结果是(b )。    

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);

}

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

15. 以下程序运行后输出结果是(d )。  

    main( )

int n[3],i,j,k;

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

 n[i]=0;

k=2;

for (i=0;ifor (j=0;jn[j]=n[i]+1;

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

A. 2              B. 1                  C. 0                D. 3

16. 下列程序的主要功能是输入10个整数存入数组a,再输入一个整数x,在数组a中查找x。找到则输出x在10个整数中的序号(从1开始);找不到则输出0。程序缺少的是 (b )。 

main()

{

int  i,a[10],x,flag=0;

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

 scanf("%d",&a[i]);

scanf("%d",&x);

for(i=0;i<10;i++) if _______ {flag=i+1; break;}

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

}

A. x!=a[i]       B. !(x-a[i])        C. x-a[i]            D. !x-a[i]

17. 若说明:int a[2][3];  则对a数组元素的正确引用是(c ) 。  

A. a(1,2)        B. a[1,3]           C. a[1>2][!1]        D. a[2][0]

18. 若有定义:int  b[3][4]={0};则下述正确的是(b ) 。  

A. 此定义语句不正确

B. 没有元素可得初值0

C. 数组b中各元素均为0

D. 数组b中各元素可得初值但值不一定为0

19. 若有以下数组定义,其中不正确的是(d ) 。 

A. int   a[2][3];

B  int   b[][3]={0,1,2,3};

C. int   c[100][100]={0};

D. int   d[3][]={{1,2},{1,2,3},{1,2,3,4}};

20. 若有以下的定义:int  t[5][4];能正确引用t数组的表达式是(c )。

A. t[2][4]     B. t[5][0]          C. t[0][0]           D. t[0,0]

21. 在定义int  m[ ][3]={1,2,3,4,5,6};后,m[1][0]的值是(a )。   

A. 4           B. 1                C. 2                 D. 5

22. 在定义int   n[5][6]后第10个元素是(c )。   

A. n[2][5]     B. n[2][4]          C. n[1][3]           D. n[1][4]

23. 若二维数组c有m列,则计算任一元素c[i][j]在数组中的位置的公式为(d )。

(假设c[0][0]位于数组的第一个位置)

A. i*m+j         B. j*m+i             C. i*m+j-1        D. i*m+j+1

24. 若有以下定义语句,则表达式“x[1][1]*x[2][2]”的值是(a )。      

float  x[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};

A. 0.0           B. 4.0               C. 5.0            D. 6.0 

25. 以下程序运行后,输出结果是 (a )。  

main()

{  

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

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

}

A. 0650          B. 1470              C. 5430            D. 输出值不定

26. 以下程序运行后,输出结果是(b )。    

main()

{  

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

int i,s=0;

for(i=0;i<4;i++) s+=aa[i][1];

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

}

A. 11            B. 19                C. 13               D. 20

27. 有以下程序    

main( )

 int  a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;

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

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

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

}

该程序的输出结果是(a )。

A. 18            B. 19                C. 20               D. 21

28. 若定义如下变量和数组:     

int i;

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

则下面语句的输出结果是(c )。

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

A. 1 5 9         B. 1 4 7            C. 3 5 7              D. 3 6 9 

29. 下述对C语言字符数组的描述中错误的是(c )。  

A. 字符数组可以存放字符串

B. 字符数组中的字符串可以整体输入、输出

C. 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值

D. 不可以用关系运算符对字符数组中的字符串进行比较

30. 下述对C语言字符数组的描述中正确的是 (a )。

A. 任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间

B. 一维数组的元素在引用时其下标大小没有

C. 任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间

D. 一维数组的第一个元素是其下标为1的元素

31. 不能把字符串:Hello!赋给数组b的语句是(b )。    

A. char str[10]= {'H', 'e', 'l', 'l', 'o', '! '};

B. char str[10];str="Hello!";

C. char str[10];strcpy(str,"Hello!");

D. char str[10]="Hello!";

32. 合法的数组定义是(d )。

A. int a[]="string";                           B. int a[5]={0,1,2,3,4,5};

C. int  s="string";                            D. char a[]={0,1,2,3,4,5};

33. 下列语句中,不正确的是(c )。

A. static char a[2]={1,2};                   B. static char a[2]={ '1', '2'};

C. static char a[2]={ '1', '2', '3'};       D. static char a[2]={ '1'};

34. 若给出以下定义:     

char x[ ]="abcdefg";

char y[ ]={'a','b','c','d','e','f','g'};   

则正确的叙述为(c )。

A. 数组x和数组y等价                          B. 数组x和数组y的长度相同

C. 数组x的长度大于数组y的长度                D. 数组x的长度小于数组y的长度

35. 若有数组定义: char array [ ]="China"; 则数组 array所占的空间为(c )。  

A. 4个字节       B. 5个字节        C. 6个字节          D. 7个字节

36. 若有定义和语句: 

char s[10];s="abcd";printf("%s\\n",s);

则结果是(以下└┘代表空格)(d )。

A. 输出abcd      B. 输出a          C. 输出abcd└┘└┘└┘└┘    D. 编译不通过

37. 下面程序运行后,输出结果是(c )。                   

main()

{

char  ch[7]={ "65ab21"};

int  i,s=0;

for(i=0;ch[i]>= '0'&&ch[i]<= '9';i+=2)

s=10*s+ch[i]- '0';

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

}

A. 12ba56         B. 6521            C. 6                D. 62

38. 运行下面的程序,如果从键盘上输入:123<空格>456<空格>7<回车>,输出结果是(d )。

A. 123,456,7                               B. 1,456,7

C. 1,23,456,7                              D. 1,23,456

     main()

     { 

 char  s[100];  int  c, i;

        scanf("%c",&c);  scanf("%d",&i);  scanf("%s",s);

        printf("%c,%d,%s\\n",c,i,s);

     }

39. 运行下面的程序,如果从键盘上输入:       

ab<回车>

c <回车>

def<回车>

则输出结果为(c )。

A. a           B.  a               C. ab                  D. abcdef

b            b                  c

c            c                  d

d            d

e

f

#include

    #define   N=6

    main()

{  

char  c[N];

       int   i=0;

for( ;i for( i=0;i printf("\\n");

     }

40. 运行下面的程序,如果从键盘上输入:ABC时,输出的结果是(a )。     

#include

main()

char ss[10]="12345";

strcat(ss, "67" );

gets(ss);printf("%s\\n",ss);     

   }

A. ABC             B. ABC9            C. 123456ABC        D. ABC4567

41. 判断两个字符串是否相等,正确的表达方式是(c )。

A. while(s1==s2)                     B. while(s1=s2)    

C. while(strcmp(s1,s2)==0)           D. while(strcmp(s1,s2)=0)

42. 以下程序的输出结果是(a )。

main()

  char str[12]={ 's','t','r','i','n','g'};        

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

 }

A. 6            B. 7            C. 11                D. 12

43. 若有以下程序片段:    

char str[ ]="ab\\n\\012\\\\\\"";

printf("%d",strlen(str));

上面程序片段的输出结果是 (c )。

A. 3            B. 4            C. 6                 D. 12

44. 若有以下程序段,输出结果是(a )。  

char   s[ ]="\\\\141\\141abc\";

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

A. 9             B. 12           C. 13                D. 14

45. 设有static char str[ ]="Beijing";

则执行printf("%d\\n", strlen(strcpy(str,"China")));

后的输出结果为 (a )。    

A. 5             B. 7              C. 12                D. 14

46. 以下程序运行后,输出结果是(b )。  

main()

 char  ch[3][5]={"AAAA","BBB","CC"};

printf("\"%s\"\\n",ch[1]);

}

A. "AAAA"         B. "BBB"           C. "BBBCC"          D. "CC"

47. 以下程序运行后,输出的结果是(d )。    

#include

#include

main()

char w[ ][10]={"ABCD

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

printf("%s\\n",&w[k][k]);

}

A. ABCD                                     B. ABCD

FGH                                       EFG

KL                                        IJ

M

C. EFG                                      D. FGH

JK                                        KL

48. 以下程序运行后,输出结果是(a )。

     main()

     { 

char  arr[2][4];

        strcpy(arr,"you");  strcpy(arr[1],"me");

        arr[0][3]='&';

        printf("%s \\n",arr);

     }

A. you&me        B. you           C. me            D. err

文档

C语言数组练习及答案

第四部分数组4.1选择题1.以下关于数组的描述正确的是(c)。A.数组的大小是固定的,但可以有不同的类型的数组元素B.数组的大小是可变的,但所有数组元素的类型必须相同C.数组的大小是固定的,所有数组元素的类型必须相同D.数组的大小是可变的,可以有不同的类型的数组元素2.以下对一维整型数组a的正确说明是(d)。A.inta(10);B.intn=10,a[n];C.intn;D.#defineSIZE10scanf("%d",&n);inta[SIZE];inta[n];3.在C语言中,引用数组
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top