C语言习题6.docx

上传人:b****7 文档编号:24050325 上传时间:2023-05-23 格式:DOCX 页数:61 大小:41.40KB
下载 相关 举报
C语言习题6.docx_第1页
第1页 / 共61页
C语言习题6.docx_第2页
第2页 / 共61页
C语言习题6.docx_第3页
第3页 / 共61页
C语言习题6.docx_第4页
第4页 / 共61页
C语言习题6.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

C语言习题6.docx

《C语言习题6.docx》由会员分享,可在线阅读,更多相关《C语言习题6.docx(61页珍藏版)》请在冰豆网上搜索。

C语言习题6.docx

C语言习题6

第七章 数组

7.1 选择题

【题7.1】在C语言中,引用数组元素时,其数组下标的数据类型允许是    。

A)整型常量B)整型表达式

C)整型常量或整型表达式D)任何类型的表达式

【题7.2】以下对一维整型数组a的正确说明是    。

A)inta(10);B)intn=10,a[n];

C)intn;D)#defineSIZE10

scanf(“%d”,&n);inta[SIZE];

inta[n];

【题7.3】若有说明:

inta[10];则对a数组元素的正确引用是    。

A)a[10]B)a[3.5]C)a(5)D)a[10-10]

【题7.4】在C语言中,一维数组的定义方式为:

类型说明符数组名    ;

A)[常量表达式]B)[整型表达式]

C)[整型常量]或[整型表达式]D)[整型常量]

【题7.5】以下能对一维数组a进行正确初始化的语句是    。

A)inta[10]=(0,0,0,0,0);B)inta[10]={};

C)inta[]={0};D)inta[10]={10*1};

【题7.6】以下对二维数组a的正确说明是    。

A)inta[3][];B)floata(3,4);

C)doublea[1][4];D)floata(3)(4);

【题7.7】若有说明:

inta[3][4];则对a数组元素的正确引用是    。

A)a[2][4]B)a[1,3]C)a[1+1][0]D)a

(2)

(1)

【题7.8】若有说明:

inta[3][4];则对a数组元素的非法引用是    。

A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]

【题7.9】以下能对二维数组a进行正确初始化的语句是    。

A)inta[2][]={{1,0,1},{5,2,3}};

B)inta[][3]={{1,2,3},{4,5,6}};

C)inta[2][4]={{1,2,3},{4,5},{6}};

D)inta[][3]={{1,0,1},{},{1,1}};

【题7.10】以下不能对二维数组a进行正确初始化的语句是    。

A)inta[2][3]={0};

B)inta[][3]={{1,2},{0}};

C)inta[2][3]={{1,2},{3,4},{5,6}};

D)inta[][3]={1,2,3,4,5,6};

【题7.11】若有说明:

inta[3][4]={0};则下面正确的叙述是    。

A)只有元素a[0][0]可得到初值0

B)此说明语句不正确

C)数组a中各元素都可得到初值,但其值不一定为0

D)数组a中每个元素均可得到初值0

【题7.12】若有说明:

inta[][4]={0,0};则下面不正确的叙述是    。

A)数组a的每个元素都可得到初值0

B)二维数组a的第一维大小为1

C)因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1

D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

【题7.13】若有说明:

inta[3][4];则数组a中各元素    。

A)可在程序的运行阶段得到初值0

B)可在程序的编译阶段得到初值0

C)不能得到确定的初值

D)可在程序的编译或运行阶段得到初值0

【题7.14】以下各组选项中,均能正确定义二维实型数组a的选项是    。

A)floata[3][4];B)floata(3,4);

floata[][4];floata[3][4];

floata[3][]={{1},{0}};floata[][]={{0};{0}};

C)floata[3][4];D)floata[3][4];

staticfloata[][4]={{0},{0}};floata[3][];

autofloata[][4]={{0},{0},{0}};floata[][4];

【题7.15】下面程序    (每行程序前面的数字表示行号)。

1main()

2{

3floata[3]={3*0};

4inti;

5for(i=0;i<3;i++)scanf(“%d”,&a[i]);

6for(i=1;i<3;i++)a[0]=a[0]+a[i];

7printf(“%d\n”,a[0]);

8}

A)第3行有错误B)第7行有错误

C)第5行有错误D)没有错误

【题7.16】下面程序    (每行程序前面的数字表示行号)。

1main()

2{

3floata[10]={0.0};

4inti;

5for(i=0;i<3;i++)scanf(“%d”,&a[i]);

6for(i=1;i<10;i++)a[0]=a[0]+a[i];

7printf(“%f\n”,a[0]);

8}

A)没有错误B)第3行有错误

C)第5行有错误D)第7行有错误

【题7.17】下面程序中有错误的行是    (每行程序前面的数字表示行号)。

1main()

2{

3floata[3]={1};

4inti;

5scanf(“%d”,&a);

6for(i=1;i<3;i++)a[0]=a[0]+a[i];

7printf(“a[0]=%d\n”,a[0]);

8}

A)3B)6C)7D)5

【题7.18】下面程序    (每行程序前面的数字表示行号)。

1main()

2{

3floata[3]={0};

4inti;

5for(i=0;i<3;i++)scanf(“%d”,&a[i]);

6for(i=1;i<4;i++)a[0]=a[0]+a[i];

7printf(“%d\n”,a[0]);

8}

A)没有错误B)第3行有错误

C)第5行有错误D)第6行有错误

【题7.19】若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为    。

(假设a[0][0]位于数组的第一个位置上。

A)i*m+jB)j*m+iC)i*m+j-1D)i*m+j+1

【题7.20】对以下说明语句的正确理解是    。

inta[10]={6,7,8,9,10};

A)将5个初值依次赋给a[1]至a[5]

B)将5个初值依次赋给a[0]至a[4]

C)将5个初值依次赋给a[6]至a[10]

D)因为数组长度与初值的个数不相同,所以此语句不正确

【题7.21】以下不正确的定义语句是    。

A)doublex[5]={2.0,4.0,6.0,8.0,10.0};

B)inty[5]={0,1,3,5,7,9};

C)charc1[]={‘1’,‘2’,‘3’,‘4’,‘5’};

D)charc2[]={‘\x10’,‘\xa’,‘\x8’};

【题7.22】若有说明:

inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是    。

A)2B)3C)4D)无确定值

【题7.23】若二维数组a有m列,则在a[i][j]前的元素个数为    。

A)j*m+iB)i*m+jC)i*m+j-1D)i*m+j+1

【题7.24】定义如下变量和数组:

intk;

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

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

for(k=0;k<3;k++)printf(“%d”,a[k][2-k]);

A)357B)369C)159D)147

【题7.25】若有以下程序段:

……

inta[]={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进行选择排序(降序)

【题7.26】以下正确的定义语句是    。

A)inta[1][4]={1,2,3,4,5};

B)floatx[3][]={{1},{2},{3}};

C)longb[2][3]={{1},{1,2},{1,2,3}};

D)doubley[][3]={0};

【题7.27】下面程序的运行结果是    。

main()

{

inta[6][6],i,j;

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

for(j=1;j<6;j++)

a[i][j]=(i/j)*(j/i);

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

{

for(j=1;j<6;j++)

printf(“%2d”,a[i][j]);

printf(“\n”);

}

}

A)11111B)00001C)10000D)10001

11111000100100001010

11111001000010000100

11111010000001001010

11111100000000110001

【题7.28】下面程序的运行结果是    。

main()

{

inta[6],i;

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

{

a[i]=9*(i-2+4*(i>3))%5;

printf(“%2d”,a[i]);

}

}

A)-40404B)-40403

C)-40443D)-40440

【题7.29】下面是对s的初始化,其中不正确的是    。

A)chars[5]={“abc”};B)chars[5]={‘a’,‘b’,‘c’};

C)chars[5]=“”;D)chars[5]=“abcdef”;

【题7.30】下面程序段的运行结果是    。

charc[5]={‘a’,‘b’,‘\0’,‘c’,‘\0’};

printf(“%s”,c);

A)‘a’‘b’B)abC)abc

【题7.31】对两个数组a和b进行如下初始化

chara[]=“ABCDEF”;

charb[]={‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};

则以下叙述正确的是    。

A)a与b数组完全相同B)a与b长度相同

C)a和b中都存放字符串D)a数组比b数组长度长

【题7.32】有两个字符数组a、b,则以下正确的输入格式是    。

A)gets(a,b);B)scanf(“%s%s”,a,b);

C)scanf(“%s%s”,&a,&b);D)gets(“a”),get(“b”);

【题7.33】有字符数组a[80]和b[80],则正确的输出形式是    。

A)puts(a,b);B)printf(“%s%s”,a[],b[]);

C)putchar(a,b);D)puts(a),puts(b);

【题7.34】下面程序段的运行结果是    。

chara[7]=“abcdef”;

charb[4]=“ABC”;

strcpy(a,b);

printf(“%c”,a[5]);

A)空格B)\0C)eD)f

【题7.35】有下面的程序段

chara[3],b[]=“China”;

a=b;

printf(“%s”,a);

则    。

A)运行后将输出ChinaB)运行后将输出Ch

C)运行后将输出ChiD)编译出错

【题7.36】下面程序段的运行结果是    。

charc[]=“\t\v\\\0will\n”;

printf(“%d”,strlen(c));

A)14B)3C)9D)字符串中有非法字符,输出值不确定

【题7.37】判断字符串a和b是否相等,应当使用    。

A)if(a==b)B)if(a=b)

C)if(strcpy(a,b))D)if(strcmp(a,b))

【题7.38】判断字符串s1是否大于字符串s2,应当使用    。

A)if(s1>s2)B)if(strcmp(s1,s2))

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

【题7.39】下面程序段是输出两个字符串中对应字符相等的字符。

请选择填空。

charx[]=“programming”;

chary[]=“Fortran”;

inti=0;

while(x[i]!

=‘\0’&&y[i]!

=‘\0’)

{

if(x[i]==y[i])printf(“%c”,【1】);

elsei++;

}

【1】A)x[i++]B)y[++i]C)x[i]D)y[i]

【题7.40】下面描述正确的是    。

A)两个字符串所包含的字符个数相同时,才能比较字符串

B)字符个数多的字符串比字符个数少的字符串大

C)字符串“STOP”与“STOP”相等

D)字符串“That”小于字符串“The”

【题7.41】下述对C语言字符数组的描述中错误的是    。

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

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

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

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

【题7.42】有已排好序的字符串a,下面的程序是将字符串s中的每个字符按a中元素的规律插入到a中。

请选择填空。

#include

main()

{

chara[20]=“cehiknqtw”;

chars[]=“fbla”;

inti,k,j;

for(k=0;s[k]!

=‘\0’;k++)

{

j=0;

while(s[k]>=a[j]&&a[j]!

=‘\0’)j++;

for(【1】)【2】;

a[j]=s[k];

}

puts(a);

}

【1】A)i=strlen(a)+k;i>=j;i--B)i=strlen(a);i>=j;i--

C)i=j;i<=strlen(a)+k;i++D)i=j;i<=strlen(a);i++

【2】A)a[i]=a[i+1]B)a[i+1]=a[i]

C)a[i]=a[i-1]D)a[i-1]=a[i]

【题7.43】下面程序的功能是将已按升序排好序的两个字符串a和b中的字符按升序归并到字符串c中。

请选择填空。

#include

main()

{

chara[]=“acegikm”;

charb[]=“bdfhjlnpq”;

charc[80],*p;

inti=0,j=0,k=0;

while(a[i]!

=‘\0’&&b[j]!

=‘\0’)

{

if(a[i]

else{【2】}

k++;

}

c[k]=‘\0’;

if(【3】)p=b+j;

elsep=a+i;

strcat(c,p);

puts(c);

}

【1】A)c[k]=a[i];i++;B)c[k]=a[j];i++;

C)c[k]=a[i];j++;D)c[k]=a[j];j++;

【2】A)c[k]=a[i];i++;B)c[k]=a[j];i++;

C)c[k]=a[i];j++;D)c[k]=a[j];j++;

【3】A)a[i]==‘\0’B)a[i]!

=‘\0’

C)a[i-1]==‘\0’D)a[i-1]!

=‘\0’

【题7.44】下面程序的功能是将字符串s中所有的字符c删除。

请选择填空。

#include

main()

{

chars[80];

inti,j;

gets(s);

for(i=j=0;s[i]!

=‘\0’;i++)

if(s[i]!

=‘c’)【1】;

s[j]=‘\0’;

puts(s);

}

【1】A)s[j++]=s[i]B)s[++j]=s[i]

C)s[j]=s[i];j++D)s[j]=s[i]

【题7.45】下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。

请选择填空。

#include

main()

{

chars[80],c1,c2=‘’;

inti=0,num=0;

gets(s);

while(s[i]!

=‘\0’)

{

c1=s[i];

if(i==0)c2=‘’;

elsec2=s[i-1];

if(【1】)num++;

i++;

}

printf(“Thereare%dwords.\n”,num);

}

【1】A)c1==‘’&&c2==‘’B)c1!

=‘’&&c2==‘’

C)c1==‘’&&c2!

=‘’D)c1!

=‘’&&c2!

=‘’

【题7.46】下面程序的运行结果是    。

#include

main()

{

charch[7]={“12ab56”};

inti,s=0;

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

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

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

}

A)1B)1256C)12ab56D)1

2

5

6

【题7.47】当运行以下程序时,从键盘输入:

aabb

ccdd

表示回车),则下面程序的运行结果是    。

#include

main()

{

chara1[5],a2[5],a3[5],a4[5];

scanf(“%s%s”,a1,a2);

gets(a3);gets(a4);

puts(a1);puts(a2);

puts(a3);puts(a4);

}

A)aaB)aaC)aaD)aabb

bbbbbbcc

ccccdddd

ccddddee

【题7.48】当运行以下程序时,从键盘输入:

ab

c

def

表示回车),则下面程序的运行结果是    。

#include

#defineN6

main()

{

charc[N];

inti=0;

for(;i

for(i=0;i

}

A)abcdefB)aC)bD)ab

bcc

cdd

d

e

f

【题7.49】当运行以下程序时,从键盘输入:

AhaMAAha表示回车),则下面程序的运行结果是    。

#include

main()

{

chars[80],c=‘a’;

inti=0;

scanf(“%s”,s);

while(s[i]!

=‘\0’)

{

if(s[i]==c)s[i]=s[i]-32;

elseif(s[i]==c-32)s[i]=s[i]+32;

i++;

}

puts(s);

}

A)ahAMaB)AhAMaC)AhAMaahAD)ahAMaahA

【题7.50】下面程序的运行结果是    。

#include

main()

{

chara[80]=“AB”,b[80]=“LMNP”;

inti=0;

strcat(a,b);

while(a[i++]!

=‘\0’)b[i]=a[i];

puts(b);

}

A)LBB)ABLMNPC)ABD)LBLMNP

【题7.51】下面程序的运行结果是    。

#include

main()

{

charstr[]=“SSSWLIA”,c;

intk;

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*AD)SW

【题7.52】下面程序的运行结果是    。

#include

main()

{

chara[]=“mor

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1