第6章 数组Word文件下载.docx
《第6章 数组Word文件下载.docx》由会员分享,可在线阅读,更多相关《第6章 数组Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
![第6章 数组Word文件下载.docx](https://file1.bdocx.com/fileroot1/2023-1/29/49a18100-fd17-4973-9d73-bd10df784bea/49a18100-fd17-4973-9d73-bd10df784bea1.gif)
的输出是A。
A.6B.7C.11D.12
(9)设有定义:
则printf("
%d\n"
sizeof(s));
的输出是D。
(10)合法的数组定义是A。
A.chara[]="
string"
B.inta[5]={0,1,2,3,4,5};
C.chara="
D.chara[]={0,1,2,3,4,5}
(11)合法的数组定义是B。
A.inta[3][]={0,1,2,3,4,5};
B.inta[][3]={0,1,2,3,4};
C.inta[2][3]={0,1,2,3,4,5,6};
D.chara[2][3]={0,1,2,3,4,5,};
(12)下列语句中,正确的是D。
A.chara[3][]={'
abc'
B.chara[][3]={'
C.chara[3][]={'
a'
"
1"
D.chara[][3]={"
a"
(13)下列定义的字符数组中,printf("
%s\n"
str[2]);
的输出是C。
staticstr[3][20]={"
basic"
foxpro"
windows"
A.basicB.foxproC.windowsD.输出语句出错
(14)下列各语句定义了数组,其中哪一个是不正确的C。
A.chara[3][10]={"
China"
"
American"
Asia"
B.intx[2][2]={1,2,3,4};
C.floatx[2][]={1,2,4,6,8,10};
D.intm[][3]={1,2,3,4,5,6};
(15)数组定义为inta[3][2]={1,2,3,4,5,6},值为6的数组元素是B。
A.a[3][2]B.a[2][1]
C.a[1][2]D.a[2][3]
(16)在C语言中,引用数组元素时,其数组下标的数据类型允许是_C_。
A.整型常量B.整型表达式
C.整型常量或整型表达式D.任何类型的表达式
(17)以下对一维整型数组a的正确说明是_D_。
A.inta(10);
B.intn=10,a[n];
C.intn;
D.#defineSIZE10
scanf(“%d”,&
n);
inta[SIZE];
inta[n];
(18)若有说明:
inta[10];
则对a数组元素的正确引用是_D_。
A.a[10]B.a[3.5]
C.a(5)D.a[10-10]
(19)在C语言中,一维数组的定义方式为:
类型说明符数组名_A_。
A.[常量表达式]B.[整型表达式]
C.[整型常量]或[整型表达式]D.[整型常量]
(20)以下能对一维数组a进行正确初始化的语句是_C_。
A.inta[10]=(0,0,0,0,0);
B.inta[10]={};
C.inta[]={0};
D.inta[10]={10*1};
(21)以下对二维数组a的正确说明是_C_。
A.inta[3][];
B.floata(3,4);
C.doublea[1][4];
D.floata(3)(4);
(22)若有说明:
inta[3][4];
则对a数组元素的非法引是_D_。
A.a[0][2*1]B.a[1][3]C.a[4-2][0]D.a[0][4]
(23)若有说明:
inta[3][4]={0};
则下面正确的叙述是_D_。
A.只有元素a[0][0]可得到初值0
B.此说明语句不正确
C.数组a中各元素都可得到初值,但其值不一定为0
D.数组a中每个元素均可得到初值0
(24)若有说明:
则对a数组元素的正确引用是C_。
A.a[2][4]B.a[1,3]C.a[1+1][0]D.a
(2)
(1)
(25)对以下说明语句的正确理解是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.因为数组长度与初值的个数不相同,所以此语句不正确
(26)若有说明inta[][3]={1,2,3,4,5,6,7};
则a数组第一维的大小是B。
A.2B.3C.4D.无确定值
(27)定义如下变量和数组:
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
(28)下面是对s的初始化,其中不正确的是D_。
A.chars[5]={“abc”};
B.chars[5]={‘a’,‘b’,‘c’};
C.chars[5]=“”;
D.chars[5]=“abcdef”;
(29)对两个数组a和b进行如下初始化
chara[]=“ABCDEF”;
charb[]={‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};
则以下叙述正确的是D_。
A.a与b数组完全相同B.a与b长度相同
C.a和b中都存放字符串D.a数组比b数组长度长
(30)有两个字符数组a、b,则以下正确的输入格式是B_。
A.gets(a,b);
B.scanf(“%s%s”,a,b);
C.scanf(“%s%s”,&
a,&
b);
D.gets(“a”),get(“b”);
(31)有字符数组a[80]和b[80],则正确的输出形式是D_。
A.puts(a,b);
B.printf(“%s%s”,a[],b[]);
C.putchar(a,b);
D.puts(a),puts(b);
(32)下面程序段的运行结果是D_。
chara[7]=“abcdef”;
charb[4]=“ABC”;
strcpy(a,b);
printf(“%c”,a[5]);
A.空格B.\0C.eD.f
(33)有下面的程序段
chara[3],b[]=“China”;
a=b;
printf(“%s”,a);
则D_。
A.运行后将输出ChinaB.运行后将输出Ch
C.运行后将输出ChiD.编译出错
(34)判断字符串a和b是否相等,应当使用D_。
A.if(a==b)B.if(a=b)C.if(strcpy(a,b))D.if(strcmp(a,b))
(35)判断字符串s1是否大于字符串s2,应当使用D_。
A.if(s1>
s2)B.if(strcmp(s1,s2))
C.if(strcmp(s2,s1)>
0)D.if(strcmp(s1,s2)>
0)
(36)下面程序段是输出两个字符串中对应字符相等的字符。
请选择填空。
charx[]=“programming”;
chary[]=“Fortran”;
inti=0;
while(x[i]!
=‘\0’&
&
y[i]!
=‘\0’)
{if(x[i]==y[i])printf(“%c”,A_);
elsei++;
}
A.x[i++]B.y[++i]C.x[i]D.y[i]
(37)下面描述正确的是D_。
A.两个字符串所包含的字符个数相同时,才能比较字符串
B.字符个数多的字符串比字符个数少的字符串大
C.字符串“STOP”与“stop”相等
D.字符串“That”小于字符串“The”
(38)下面程序的功能是将字符串s中所有的字符c删除。
#include<
stdio.h>
intmain()
{
chars[80];
inti,j;
gets(s);
for(i=j=0;
s[i]!
=‘\0’;
i++)
if(s[i]!
=‘c’)A_;
s[j]=‘\0’;
puts(s);
return0;
}
A.s[j++]=s[i]B.s[++j]=s[i]
C.s[j]=s[i];
j++D.s[j]=s[i]
(39)下面程序的运行结果是D_。
chara[80]=“AB”,b[80]=“LMNP”;
inti=0;
strcat(a,b);
while(a[i++]!
=‘\0’)b[i]=a[i];
puts(b);
return0;
A.LBB.ABLMNPC.ABD.LBLMNP
(40)下面程序的运行结果是B_。
chara[]=“morning”,t;
inti,j=0;
for(i=1;
i<
7;
i++)
if(a[j]<
a[i])
j=i;
t=a[j];
a[j]=a[7];
a[7]=t;
puts(a);
A.mogninrB.moC.morningD.mornin
2.填空题
(1)C语言中,数组的各元素必须具有相同的数据类型,元素的下标下限为0,下标必须是正整数、0、或者符号常量。
但在程序执行过程中,不检查元素下标是否越界。
(2)C语言中,数组在内存中占一片连续的存储区,由数组名代表它的首地址。
数组名是一个地址常量,不能对它进行赋值运算。
(3)执行staticintb[5],a[][3]={1,2,3,4,5,6};
后,b[4]=0,a[1][2]=6。
(4)设有定义语句staticinta[3][4]={{1},{2},{3}};
则a[1][0]值为2,a[1][1]值为0,a[2][1]的值为0。
(5)如定义语句为chara[]="
b[]="
95"
,语句printf("
%s"
strcat(a,b));
的输出结果为windows95。
(6)输入20个数,输出它们的平均值,输出与平均值之差的绝对值为最小的数组元素。
请填空。
intmain()
{
floata[20],pjz=0,s,t;
inti,k;
for(i=0;
20;
i++);
{
scanf(“%f”,&
a[i]);
pjz+=a[i]
pjz/=20;
s=fabs(a[0]-pjz);
if(fabs(a[i]-pjz)<
s)
s=fabs(a[i]-pjz);
t=a[i];
}
printf(“%f\n”,t);
(7)以下程序以每行10个数据的形式输出a数组,请填空。
inta[50],i;
printf("
输入50个整数:
"
);
i<
50;
i++)scanf("
%d"
&
a[i]);
=50;
i++)
if(i%10==0)
printf("
%3d\n"
a[i-1]);
printf("
%3d"
a[i-1]);
(8)下面程序的功能是输出数组s中最大元素的下标,请填空。
intmain()
intk,p;
ints[]={1,-9,7,2,-10,3};
for(p=0,k=p;
p<
6;
p++)
if(s[p]>
s[k])k=p;
k);
3.阅读程序,分析程序的功能。
(1)
string.h>
voidmain()
inti;
80;
{
s[i]=getchar();
if(s[i]=='
\n'
)break;
}
s[i]='
i=0;
while(s[i])putchar(s[i++]);
putchar(‘\n’);
程序功能;
从键盘输入一个字符串,并逐一输出
(2)
charstr[10][80],c[80];
inti;
10;
gets(str[i]);
strcpy(c,str[0]);
if(strlen(c)<
strlen(str[i]))
strcpy(c,str[i]);
c);
strlen(c));
从键盘输入10个字符串,找到其中最长的一个输出它及它的长度
(3)
intmain()
chara[10][80],c[80];
inti,j,k;
gets(a[i]);
9;
k=i;
for(j=i+1;
j<
j++)
if(strcmp(a[j],a[k])<
0)k=j;
if(k!
=i)
{strcpy(c,a[i]);
strcpy(a[i],a[k]);
strcpy(a[k],c);
//字符串交换
puts(a[i]);
从键盘输入10个字符串,并将它们按大到小顺序排好再输出
(4)阅读程序,写出运行结果。
inta[6]={12,4,17,25,27,16},b[6]={27,13,4,25,23,16},i,j;
for(j=0;
j<
j++)if(a[i]==b[j])break;
if(j<
6)printf("
%d"
a[i]);
printf("
\n"
结果:
4252716
(5)阅读程序,写出运行结果。
chara[8],temp;
intj,k;
j++)a[j]='
+j;
a[7]='
j++)
temp=a[6];
for(k=6;
k>
0;
k--)a[k]=a[k-1];
a[0]=temp;
a);
return0;
结果:
gabcdef
fgabcde
efgabcd
(6)阅读下列程序,写出程序运行的输出结果。
charstr1[]="
*******"
for(inti=0;
4;
str1);
str1[i]='
'
str1[strlen(str1)-1]='
*******
*****
***
*
4.程序设计题
(1)输入20个整数,求其中最大值和最小值。
intd[20],i,max,min;
d[0]);
max=min=d[0];
{
scanf(“%d”,&
d[i]);
if(d[i]>
max)max=d[0];
if(d[i]<
min)min=d[0];
}
printf(“maxis%d,minis%d.\n”,max,min);
(2)求一个4*4矩阵对角线上的最小值,矩阵的值在程序运行时,由用户输入。
#include"
stdio.h"
intd[4][4],i,j,min;
scanf("
&
d[i][j]);
min=d[0][0];
if(d[i][i]<
min)min=d[i][i];
if(d[i][3-i]<
min)min=d[i][3-i];
min);
(3)输入10个整数,按从大到小的顺序输出。
inta[10],i,j,t;
for(i=0;
scanf(“%d”,&
for(j=0;
8-i;
j++)
if(a[j]<
a[j+1])
{t=a[j];
a[j]=a[j+1];
a[j+1]=t;
printf(“%d”,a[i]);
printf(“\n”);
(4)编程序。
输入单精度型一维数组a[10],计算并输出a数组中所有元素的平均值。
floata[10],ave=0;
ave+=a[i];
ave/=10.0;
printf(“%f”,ave);
(5)编一个程序,利用数组求费波那契(Fibonacci)序列:
1,1,2,3,5,8,…。
请按每行5个数的格式输出前20项。
序列满足关系式:
F[n]=F[n-1]+F[n-2]。
intf[20]={1,1};
inti;
for(i=2;
f[i]=f[i-1]+f[i-2];
if(i%5==0)
printf(“%5d”,f[i]);