- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 数组习题解答
1.以下各题中,选择一个正确的翻案。
⑴能正确对一维数组a中所有元素进行初始化的是(D)。
A. int a[5]={ } B. int a[]={0} C.int a[5]=0,0,0,0,0 D.int a[5]={0}
#includestdio.h
void main()
{
int i;
int a[5]={0};
for(i=0;i5;i++)
printf(%d ,a[i]);
}
⑵有说明int k=3,a[10];
则下列可以正确引用数组元素的表达式是( A )。
A. a[k] B. a[10] C.a[1.3] D.a[3*5]
⑶有定义int d[][3]={1,2,3,4,5,6};
执行语句printf(%c ,d[1][0]+A);
结果是(D)。
A. A B. B C. D D. E
#includestdio.h
void main()
{
int d[][3]={1,2,3,4,5,6};
printf(%c ,d[1][0]+A);
}
⑷有定义char c=A,ch[20]={a,b,c,\0,d,\0};
若执行:printf(%s ,ch);
结果为(B)。
A. ‘abc’ B. abc C. abcd D. abc\0d
#includestdio.h
void main()
{
char c=A,ch[20]={a,b,c,\0,d,\0};
printf(%s ,ch);
}
⑸对数组进行初始化char carr[]={s,t,u,d,e,n,t},barr[]=student;
则正确的是(D)。
A. carr与barr长度相同 B. carr比barr
C. carr与barr相同 D. carr比barr短
#includestdio.h
void main()
{
char carr[]={s,t,u,d,e,n,t},barr[]=student;
}
2.阅读下列程序,写出运行结果。
⑴
#includestdio.h
void main()
{
int i,j,d[4][4]={{1,2,3,4},{5,6,7,8},{4,3,2,1},{1,2,3,4}};
for(i=0;i4;i++)
for(j=0;ji;j++)
if(d[i][j]d[j][i])
d[j][i]=d[i][j];
for(i=0;i4;i++)
{
printf(\n);
for(j=0;j4;j++)
if(j=i)
printf(%6d,d[i][j]);//显示主对角线以上的元素
else
printf(%6c, );
}
putchar(\n);
}
运行结果:
1 5 4 4
6 7 8
2 3
4
⑵若输入十进制数3291时,下列程序输出为:
6333
#includestdio.h
void main()
{
int i,d,m,n;
char s[8];
scanf(%d,n);
i=0; //存储字符数组下标
do
{
m=n/8;
d=n%8;
s[i]=0+d;//余数转换为数字字符
i++;
n=m; //商作为下一轮行循环操作的被除数
}while(n!=0); //商不为0,继续循环
for(i--;i=0;i--)
putchar(s[i]);
}
3.程序填空。
⑴从键盘输入 一个数,将其插入到一个升序数组中,保持数组仍然按升序排列。
#includestdio.h
void main()
{
int data,temp,k;
static int a[9]={-10,2,4,8,10,15,25,50};
printf(\nEnter adata:);
scanf(%d,data);
a[8]=data;
for(k=8;k=0;k--)
{
if(a[k]a[k-1])
{
temp=a[k];
a[k]=a[k-1];
a[k-1]=data;
}
else
break;
}
for(k=0;k=8;k++)
printf(%7d,a[k]);
putchar(\n);
}
注:原程序的代
文档评论(0)