第四章 数组习题集答案

  • 格式:doc
  • 大小:155.50 KB
  • 文档页数:23
A)120B)113C)140D)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);
#include <stdio.h>
main()
{
int i=0,x=0;
int a[][4]={0,2,0,3,0,3,4,0,4,5,6,7,6,5,0,0};
while (i<4)
{
x+=【】;
i++;
}
printf("%d\n",x);
}
A)a[3-i][3-j]B)a[i][3-i]C)a[i][i]D)a[3-i][4]
printf ("%d\n",strlen(s1));
A)5B)2C)6D)7
37.定义如下变量和数组:
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][0]);
A)1 4 7B)3 57C)3 6 9D)1 5 9
第四
一、选择题
1.如果char型变量占两个字节的存储单元,则按照如下方式定义的数组x占用的字节数是【】。
char x[50]={2,4,6,8,10};
A)50B)100C)10D)5
2.下面关于数组的定义正确的是【】。
A)
int n=10;
float a[n]={1.0,2.1,3.2};
B)
#define N 10
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]);
32.有下列程序段,运行时会【】。
char a[3],b[]="tianjin";
a=b;
printf(“%s”,a);
A)运行后将输出tianjinB)运行后将输出ti
C)运行后将输出tianD)编译出错
33.若已有定义char s[6]="look"; int i;下列错误的是【】。
A)for (i=0; i<6; i++) putchar(s[i]);
B)for (i=0; i<6; i++) put(s[i]) ;
A)整型常量B)整型表达式
C)整型常量或整型表达式D)任何类型的表达式
25.若有说明int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是【】。
A)2B)3C)4D)无确定值
26.下面程序段的运行结果是【】。
char st[5]={‘a’,’b’,’\0’,’c’,’\0’};
int a[N]={1,2,3};
C)
int n;
scanf("%d", &n);
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)6B)9C)10D)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];
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)6B)5C)8D)7
24.在C语言中,引用数组元素时,其数组下标的数据类型允许是【】。
A)strcpy(s1,"abcd");
B)s1=”abcd”;
Cห้องสมุดไป่ตู้for(i=0;i<5;i++) s1[i]=s2[i];
D)s[0]=’a’,s[1]=’b’,s[2]=’c’,s[3]=’d’;s[4]=’\0’;
36.运行下面程序段的输出结果是【】。
char s1[6]={'d','o','\0','i','t ','\0'};
int a[10]={1,3,5} ;
printf("%d\n",a[3] );
A) 0B)5C)3D)不确定数
29.要将字符串str2复制到字符串str1,应使用的函数是【】。
A) strcpy(str1,str2);B)strcat(str2,str1);
C)strcat(str1,str2);D)strcmp(str2,str1);
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";则下列输出语句中正确的是【】。
43.下面的程序用来求方阵的次对角线元素之和,请将程序填完整。
#include <stdio.h>
main( )
{
int i=0,x=0;
int a[][4]={0,2,0,3,0,3,4,0,4,5,6,7,6,5,0,0};
while (i<4)
{
x+=【】;
i++;
}
printf("%d\n",x);
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)11B)10C)9D)8
8.如果有char s[10]和int i,那么下面能够把输入的字符串存入数组s的选项是【】。
30.若已定义
char s1[]="go to bed";
s2[]="go on";
假设已经执行预编译命令
#include<string.h>
则函数strcmp(s1,s2)的值是【】。
A)0B)-5C)5D)13
31.若已经包含头文件<stdio.h>,且已有定义:
char s[]={‘a’,’\0’,’c’,’o’,’d’,’e’,’\0’};
38.若有一维数组初始化语句int b[5]={1,2,3,4,5};且数组的起始地址为8050H(H表示十六进制),则8058H是数组元素【】的起始地址(假设一个int型变量在内存占2个字节存储空间)。
A)b[1]B)b[4]C)b[0]D)b[2]
39.设char str[4][5];所说明的数组在存储区的起始地址为50(十进制),则数组元素str[3][3]在存储区中的地址为【】。
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};
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]);
17.要将字符串str2连接到字符串str1后,应使用的函数是【】。
A)strcpy(str1,str2);
B)strcat(str2,str1);
C)strcat(str1,str2);
D)strcmp(str2,str1);
18.下列二维数组说明中,正确的是【】。