06六章课后习题.docx
- 文档编号:17434740
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:18
- 大小:19.95KB
06六章课后习题.docx
《06六章课后习题.docx》由会员分享,可在线阅读,更多相关《06六章课后习题.docx(18页珍藏版)》请在冰点文库上搜索。
06六章课后习题
第六章数组
1下面程序的功能是计算1至50中是7的倍数的数值之和,请选择填空在C语言中,引用数组元素时,其数组下标的数据类型允许是C_。
整型常量
整型常量或整型表达式
整型表达式
任何类型的表达式
2以下对一维整型数组a的正确说明是D
Ainta(10);
Cintn;
scanf(“%d”,&n);
inta[n];
Bintn=10,a[n];
D)#defineSIZE10
Inta[SIZE];
3若有说明:
inta[10];则对a数组元素的正确引用是D
a[10」
a[3.5]
a(5)
a[10一10]
4在C语言中,一维数组的定义方式为:
类型说明符数组名A_;
A)[常量表达式]
B)[整型表达式]
C)[整型常量]或[整型表达式]
D)[整型常量]
5以下能对一维数组a进行正确初始化的语句是C
A)inta[10]=(0,0,0,0,0);B)inta[10]={};
C)inta[]={0};D)inta[10]={10*1};
6以下对二维数组a的正确说明是C
A)inta[3][];B)floata(3,4);
C)doublea[1][4];D)floata(3)(4)
7若有说明:
inta[3][4];则对a数组元素的正确引用是_C
A)a[2][4]B)a[1.3]C)a[1+I][0]D)a
(2)
(1)
8若有说明:
inta[3][4];则对a数组元素的非法引用是D_。
A)a[0][2*1]B)a[1][3]
C)[1+1][0]
9以下能对二维数组a进行正确初始化的语句是_B。
inta[2][]={{1,0,1),{5,2,3}};
inta[][3]={{1,2,3},{4,5,6}};
inta[2][4]={1,2,3},{4,5},{6}};
inta[][3]={{1,0,i}{},{1,1}};
10以下不能对二维数组a进行正确初始化的语句是C
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};
11若有说明:
inta[3][4}=(0];则下面正确的叙述是D
只有元素a[0][0]可得到初值0
此说明语句不正确
数组中各元素都可得到初值,但其值不一定为0
数组中每个元素均可得到初值0
12若有说明:
inta[][4]={0,0};则下面不正确的叙述是_D。
A)数组a的每个元素都可得到初值0
B)二维数组a的第一维大小为1
C)因为二维数组a中第二维大小的值除以初值个数的商为1,故数组.a的行
数为1
D)只有元素a[0][0]和a[0][0]可得到初值。
,其余元素均得不到初值。
13若有说明:
inta[3][4];则数组a中各元素B
可在程序的运行阶段得到初值0
可在程序的编译阶段得到初值0
不能得到确定的初值
D)可在程序的编译或运行阶段得到初值0
14以下各组选项中,均能正确定义二维实型数组a的选项是C
A)floata[3][4];
floata[][4];
floata[3][]={{1},{0}};
C)floata[3][4];
staticfloata「][4]={{0},{0}};
autofloata[][4]={{0},{0},{0}};
B)floata(3,4);
floata[3][4];
floata[][]={{0};{0}};
D)floata[3」[4];
floata[3][];
floata[][4」;
15下面程序A_(每行程序前面的数字表示行号)。
main()
{
inta[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[o]);
8}
A第3行有错误
C第5行有错误
B)第7行有错误
D)没有错误
16下面程序C
(每行程序前面的数字表示行号)。
1main()
2floata[10」={0.0};
3inti;
4for(i=0;i<3;i++)scanf("%d“,7a[i]);
5for(i=1;i<10;i++)a[0]=a[0]+a[i];
6printf(“%f\n“,a[0]);
A没有错误
C第5行有错误
B)第3行有错误
D)第7行有错误
17下面程序中有错误的行是(每行程序前面的数字表示行号)。
D
1main()
2{
3inta[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}
3
6
7
5
18下面程序D
(每行程序前面的数字表示行号)
1main()
2{
3inta[3」={0};
4inti;
5for(1=0;i<3;i++)scanf(“%d“,&a[i]);
6for(i=i;i<4;i十+)a[0」=a[0〕+a[i」;
7printf(”%d\n",a[0]);
8}
A)没有错误
C)第5行有错误
B)第3行有错误
D)第6行有错误
19若二维数组a有m列,则计算任一元素a}i}}j]在数组中位置的公式为
。
(假设a[0][0]位于数组的第一个位置上。
)D
A)i*m+j
B)j*m十iC)i*m+j一1
D)i*m+j+1
20对以下说明语句的正确理解是B_。
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)因为数组长度与初值的个数不相同,所以此语句不正确
21以下不正确的定义语句是_B。
A)doublex[5]=={2.0,4.0,s.0,8.a,10.0};
B)inty[5〕={0,1,3,5,7,9};
C)charc1[]=={‘1‘,‘2‘,‘3‘,‘4‘,‘5‘};
D)charC2[」={‘\x10‘,‘\xa‘,‘\X8‘};
22若有说明:
inta[][3}={1,2,3,4,5,6,7};则a数组第一维的大小是B
A)2
B)3
C)4
D)无确定值
23若二维数组a有m列,则在a[][]前的元素个数为B
A)J*m+iB)i*m+jC)i*m+J一1
D)i*m+J+1
24定义如下变量和数组:
Intk;inta[3][3」={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是A
for(k=0;k<3;k++)printf("%d",a[k]〕[2-k]);
A)357B)369C)159D)147
25若有以下程序段B
…
…inta[]={4,0,2,3,1};
l,J,tfor(i=1;i<5;i++)
{t=a[i];J=i一1;
while(J>=o&&t>a[j])
{a[j+1]=a[J];J一一;}
a[j+1]=t;}
则该程序段的功能是
A)对数组a进行插入排序(升序)
对数组a进行插入排序(降序)
对数组a进行选择排序(升序)
对数组a进行选择排序(降序)
26以下正确的定义语句是_D。
A)inta[1]〔4〕={1,z,3,4,5};
B)floatx[3][]={{1},{2},{3}};
C)longb[2][3]={{1},{1,2},{1,2,3}};
D)doubley=[][3]={0};
27下面程序的运行结果是_C。
main()
{inta[6][6],i,7;
for(i=1;i<6;i+十)
fox(i=1;J<6;i++)
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");}
}
A11111
11111
11111
11111
11111
B)oooo1
ooo1o
00100
o1ooo
10000
C)loooo
olooo
ooloo
ooolo
ooool
D)1ooo1
o1o1o
oo1oo
o1o1o
10001
28下面程序的运行结果是C
main()
int
{a[6],i;
for(i=1;i<6;i十+)
{a[i]=9*(i一z+4}(i>3))%5;
printf(”%2d“,a[i]);}}
A)一40404
C)一40443
B)一40403
D)一40440
29下面是对S的初始化,其中不正确的是D
A)chars[5」={"abc");
C)chars[5]="";
Bchars[5]={'a','b','c'};
Dchars[5]="abcdef“;
30下面程序段的运行结果是B
charc[5」={‘a‘,‘b,,‘\0‘,‘c',‘\0‘};
printf(“%s“,c);}
A)‘a“b‘B)abC)abcD)ab
(其中表示空格)
31对两个数组a和b进行如下初始化D
chara[]="ABCDEF“;
charb[]=={‘A‘,‘}3‘,‘C‘,‘D',‘E‘,‘F‘);
则以下叙述正确的是
A)a与b数组完全相同
C)a和b中都存放字符串
B)a与b长度相同
D)a数组比b数组长度长
32有两个字符数组a,b,则以下正确的输入格式是B
A)gets(a,b);
C)scanf(“%S%s“,&a,&b);
B)scanf("%s%s“,a,b);
D)gets("a"),gets("b");
33有字符数组a[80]和b[80],则正确的输出形式是D
A)puts(a,b);
C)putchar(a,b);
B)printf(“%s,%s",a[],b[]);D)puts(a),puts(b);
34下面程序段的运行结果是D_。
chara[7]=="abcdef";
char[4]="ABC“;
strcpy(a,b);
printf(“%c",a[5」);
A)
B)\0
C)e
D)f
(其中表示空格)
35有下面的程序段,则D
chara[3」,b[」="China“;
a一b;
printf(“%s”,a);
A)运行后将输出China
B)运行后将输出Ch
C)运行后将输出Chi
D)编译出错
36下面程序段的运行结果是B_
char[]="\t\v\\\0will\n";
printf(“%d",strlen(c));
A)14B)3C)9
D)字符串中有非法字符,输出值不确定
37判断字符串a和b是否相等,应当使用D
A)if(a==b)
C)if(strcpy(a,b))
B)(a=b)
D)if(strcmp(a,b))
38判断字符串s1是否大于字符串s2,应当使用D_。
A)if(S1>s2)B)if(strcmp(s1,s2))
C)if(strcmp(s2,S1)>0)D)if(strcmp(s1,s2)>0)
39下面程序段是输出两个字符串中对应字符相等的字符。
请选择填空。
A
charx[]="pogramnming“;
chary[]="Fortran";
inti=0;
while(x[i]!
=‘\o'&&.y[i]!
=‘\0')
(if(x[i]==Y[i])
printf(“%c“,[1]);
elsei十+;}
}
A)x[i++]
B)y[+十i]
C)x[i]
D)Y[i]
40下面描述正确的是_D。
A)两个字符串所包含的字符个数相同时,才能比较字符串
B)字符个数多的字符串比字符个数少的字符串大
c)字符串‘'STOP"与"STOP"相等
D)字符串"That“小于字符串"The"(表示空格)
41下述对C语言字符数组的描述中错误的是C_。
A)字符数组可以存放字符串
B)字符数组的字符串可以整体输入、输出
C)可以在赋值语句中通过赋值运算符“一“对字符数组整体赋值
D)不可以用关系运算符对字符数组中的字符串进行比较
42有已排好序的字符串a,下面的程序是将字符串S中的每个字符按a中元素的规律插入到a中。
请选择填空。
BB
#inctude
main()
{chara[20]=”ehiknqtw“;
chars[]=“fbla”;
inti,k,j;
for(k=0;s[k]!
=‘\o‘;k++)
{j=0;
while(S[k]>=a[j]&&a[j]!
='\0')j++;
for([1])[2];
a[j]=s[k];
}
puts(a);
}
[1]Ai=strlen(a)+k;i>=j;i一一
Ci=j;i<=strlen(a)+k;i++
Bi=strlen(a);i>=j;i一一
Di=J;i<=strlen(a);i+十
[2]A)a[i]=a[i十1]
C)a[i]=a[i一1」
B)a[i+1]=a[i]
D)a[i一1]=a[i]
43下面程序的功能是将已按升序排好序的两个字符串a和b中的字符按升序归并到字符串C中,请选择填空。
ADA
#include
main()
{chara[]="acegikrn“;
charb[〕="bdfhjlnpq“;
charc「80],*p;
inti=0,J=0,k=0;while(a[i]!
==‘\o‘
{if(a[i]
else{[2]}
k++;
}
c[k]=‘\o‘;
if([3])P=b+i;
elsep=a+i;
strcat(c,P);
puts(c);
}
[1]Ac[k]=a[i];i++;
Cc[k]=a[i」;J++;
Bc[k]=a[i」i++;
Dc[k]=a[J]j++;
[2]Ac[k]=a[i];i++;
Cc[k]=a[i」;J++;
Bc[k]=a[i」i++;
Dc[k]=a[J]j++;
[3]Aa[i]=='\0'Ca[i-1]==‘\0‘
Ba[i]!
一‘\o‘
D)a[i一i]!
=‘\o‘
44下面程序的功能是将字符串S中所有的字符C删除。
请选择填空。
A
#include
main()
{chars[80];
inti,j;
gets(s);
for(i=j=0;S[1]!
=‘\0;i++)
if(s[1]!
=‘C‘)[1];
s[j]=‘\0‘;
puts(s);}
A)s[]++]=s[i]
C)s[]=s[i];i++
B)s[++i]=s[i]
D)s[i]=s[i]
45下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。
请选择填空。
B
#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);}
A)C1==''&&c2==''
C)c1==''&&c2!
=''
B)C1!
=''&&c2==''
D)C1!
=‘’&&c2!
=''
46下面程序的运行结果是A
#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);
1
1256
12ab56
D1
2
5
6
47下面程序的运行结果是D
#include
#include
main()
{chara[80〕='AB',b[80]="LMNP";
Inti=0;
strcat(a,b);
while(a[i十+]!
=‘\0')b[i]=a[i];
puts(b);}
A)LB
B)ABLMNP
C)AB
D)LBLMNP
48下面程序的运行结果是_B。
#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*A
D)SW
49下面程序的运行结果是_B。
#include
main()
{chara[]="morning“,t;
inti,i=0;
for(i=1;i<7;1++)if(a[j] t=a[J];a[j]=a[7]; a[7]=a[i];puts(a); } A)mogninrB)moC)morningD)mornin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 06 课后 习题
![提示](https://static.bingdoc.com/images/bang_tan.gif)