学习情境四数组习题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学习情境四数组习题

一、选择题

1.以下为一维整型数组a的正确说明是_________.

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

2.以下对二维数组a的正确说明是________.

A.int a[3][];

B.float a(3,4);

C.double a[1][4]

D.float a(3)(4);

3.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为______.(假设a[0][0]位于数组的第一个位置上。)

A.i*m+j

B.j*m+i

C.i*m+j-1

D.i*m+j+1

4.若二维数组a有m列,则在a[i][j]前的元素个数为________.

A.j*m+i

B.i*m+j

C.i*m+j-1

D.i*m+j+1

5.若有以下程序段:

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

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

{

t=a[i];j=i-1;

while(j>=0&&t>a[j])

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

a[j+1]=t;

}

则该程序段的功能是_________.

A.对数组a进行插入排序(升序)

B.对数组a进行插入排序(降序)

C.对数组a进行选择排序(升序)

D.对数组a进行选择排序(降序)

6.有两个字符数组a、b,则以下正确的输入语句是_______.

A.gets(a,

B.; B.scanf("%s%s",a,B.;

C.scanf("%s%s",&a,&B.;

D.gets("a"),gets("b");

7.下面程序段的运行结果是_________.

char a[7]="abcdef";

char b[4]="ABC";

strcpy(a,B.;

printf("%c",a[5]);

A.空格

B.\0

C.e

D.f

8.判断字符串s1是否大于字符串s2,应当使用_______.

A.if(s1>s2)

B.if(strcmp(s1,s2))

C.if(strcmp(s2,s1)>0)

D.if(strcmp(s1,s2)>0)

9.下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔,请选择填空。

#include

main()

{

char s[80],c1,c2=' ';

int i=0,num=0;

gets(s);

while(s[i]!= '\0')

{

c1=s[i];

if(i==0)c2=' ';

else c2=s[i-1];

if(___)num++ i++;

}

printf("There are %d words.\n",num);

}

A.c1==''&&c2==''

B.c1!= '' && c2==''

C.c1=='' && c2!= ''

D.c1!= ''&&c2!= ''

10.下面程序的运行结果是________.

#include

main()

{

char str[]="SSSWLIA",c;

int k;

for(k=2;(c=str[k])!= '\0';k++)

{

switch(C.

{

case 'I':++k;break;

case 'L':continue;

default:putchar(C.;continue;

}

putchar('*');

}

}

A.SSW*

B.SW*

C.SW*A

D.SW

11.下面程序段执行后,s的值是________ static char ch[ ]= ″600″;

int a,s=0;

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

s=10*s+ch[a]-'0′

A.600

B.6

C.0

D.出错

12.有如下程序,其运行结果是_________。

main( )

{

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

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

n[i]=0;

k=2;

for(i=0;i

for(j=0;j

n[j]=n[i]+1;

printf(″%d/n″,n[k]);

A.2

B.1

C.0

D.3

二、填空题

1.若有定义:double x[3][5];则x数组中行下标的下限为_________,列下标的上限为_________。

2.数组在内存中占一片连续的存储区,由代表它的首地址。

3.若有以下程序段 char str[]="xy\n\012\\\n";printf("%d",strlen(str)),执行后的输出结果是。

4.下面程序以每行4个数据的形式输出a数组,请填空。

#define N 20

main()

{

int a[N],i;

for(i=0;i

for(i=0i

{

if (_____________) printf("\n");

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

}

printf("\n");

}

5.下面程序可求出矩阵a的主对角线上的元素之和,请填空。

main()

{

int a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j;

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

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

if(_____)sum=sum+_______;

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

}

6.当从键盘输入18并回车后,下面程序的运行结果是________。

main()

{

int x,y,i,a[8],j,u,v;

scanf("%d",&x);

y=x;i=0;

相关文档
最新文档