C语言第五章习题带答案Word文件下载.docx

上传人:b****8 文档编号:22917520 上传时间:2023-02-06 格式:DOCX 页数:12 大小:19.36KB
下载 相关 举报
C语言第五章习题带答案Word文件下载.docx_第1页
第1页 / 共12页
C语言第五章习题带答案Word文件下载.docx_第2页
第2页 / 共12页
C语言第五章习题带答案Word文件下载.docx_第3页
第3页 / 共12页
C语言第五章习题带答案Word文件下载.docx_第4页
第4页 / 共12页
C语言第五章习题带答案Word文件下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

C语言第五章习题带答案Word文件下载.docx

《C语言第五章习题带答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言第五章习题带答案Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。

C语言第五章习题带答案Word文件下载.docx

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.因为数组长度与初值的个数不相同,所以此语句不正确

二、填空题

6.求所有不超过200的N值,N的平方是具有对称性质的回文数。

所谓回文数就是将一个数从左到右与从右到左读都是一样的,例如:

34543和1234321都是回文数。

例如:

满足题意要求的数有:

N=1,11*11=121;

N=111,111*111=12321。

#include<

stdio.h>

main()

{intm[16],n,i,t,count=0;

longa,k;

printf("

Resultis:

\n"

);

for(n=10;

n<

200;

n++)

{k=0;

t=1;

a=n*n;

for(i=1;

a!

=0;

i++)

{①;

a/=10;

}

for(;

i>

1;

i--)

{k+=m[i-1]*t;

②;

if(③)printf("

%2d:

%10d%10d\n"

++count,n,n*n);

}

}

则①为(m[i]=a%10;

)、②为(t*=10;

)、③为(k==n*n)。

7.设数组a包括10个整型元素。

下面程序的功能是求出a中各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。

则①是(i=1)、②是(b[i]=a[i-1]+a[i];

)、③是(i%3)。

{inta[10],b[10],i;

for(i=0;

i<

10;

scanf("

a[i]);

for(①;

i++)②

for(i=1;

{printf("

%3d"

b[i]);

if(③==0)printf("

8.下面程序用“顺序查找法”查找数组a中是否存在某一关键字。

则①是(break;

)、②是(i==8)。

{inta[8]={25,57,48,37,12,92,86,33};

inti,x;

scanf("

x);

8;

if(x==a[i])

{printf("

Found!

Theindexis:

%d\n"

i+1);

①;

if(②)printf("

Can'

tfound!

"

三、读程序,写结果

9.若有以下输入(<

CR>

代表回车),则下面程序的运行结果是(SearchSuccessful!

5)。

52<

{inta[8]={6,12,18,42,44,52,67,94};

intlow=0,mid,high=7,found,x;

found=0;

while((low<

=high)&

&

(found==0))

{mid=(low+high)/2;

if(x>

a[mid])low=mid+1;

elseif(x<

a[mid])high=mid-1;

else{found=1;

break;

if(found==1)printf("

SearchSuccessful!

mid);

elseprintf("

tsearch!

练习5-2答案

1.已知:

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

,则下面语句的输出结果是(C)。

for(i=0;

3;

i++)printf("

x[i][2-i]);

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

2.以下对二维数组a的正确说明是(C)。

A.inta[3][];

B.floata(3,4);

C.doublea[1][4];

D.floata(3)(4);

inta[3][4];

,则对数组元素引用正确的是(C)。

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

(2)

(1)

4.已知:

,则对数组元素的非法引用是(D)。

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

5.以下能对二维数组a进行正确赋初值的语句是(B)。

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

6.以下不能对二维数组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};

7.已知:

inta[3][4]={0};

,则下面正确的叙述是(D)。

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

B.此说明语句是错误的

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

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

8.若有说明:

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

,则a数组第一维的大小是(B)。

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

9.若二维数组a有m列,则在a[i][j]前的元素个数为(B)。

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

10.下面的程序是求出数组a矩阵的两条对角线上的元素之和,则①是(j=2)、②是(j>

=0或j>

-1)。

{inta[3][3]={1,3,6,7,9,11,14,15,17},sum1=0,sum2=0,i,j;

for(j=0;

j<

j++)

if(i==j)sum1=sum1+a[i][j];

for(①;

②;

j--)

if(i+j==2)sum2=sum2+a[i][j];

sum1=%d,sum2=%d\n"

sum1,sum2);

11.从键盘上输入若干(不超过1000个)学生的成绩,计算出平均成绩,并输出低于平均分的学生的成绩,用输入负数结束输入。

则①是(a)、②是(a)、③是(sum/n)、④是(x[i]<

ave)。

{floatx[1000],sum=0,ave,a;

intn=0,i;

Entermark:

"

%f"

a);

while(a>

0&

n<

1000)

{sum+=①;

x[n]=②;

n++;

ave=③;

Output:

ave=%f\n"

ave);

n;

if(④)printf("

%f\n"

x[i]);

12.下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,请填空,①是(j<

=2或j<

3)、②是(b[j][i]=a[i][j];

)、③是(i<

=2或i<

3)。

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

intb[3][2],i,j;

arraya:

<

i<

=1;

{for(j=0;

①;

%5d"

a[i][j]);

printf("

arrayb:

③;

j++)printf("

b[i][j]);

13.下面程序的功能是检查二维数组是否对称(即:

对所有i和j都有a[i][j]=a[j][i])。

请填空,①是(i=j+1注i值赋为0…j+1皆可,赋为j+1效率最高)、②是(found=1)。

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

inti,j,found=0;

for(j=0;

4;

for(①;

if(a[j][i]!

=a[i][j])

{②;

if(found)printf("

No"

Yes"

练习5-3答案

1.为了判断两个字符串s1和s2是否相等,应当使用(D)。

A.if(s1==s2)B.if(s1=s2)

C.if(strcpy(s1,s2))D.if(strcmpy(s1,s2)==0)

2.调用strlen("

abcd\0ef\0g"

)的返回值是(A)。

A.4B.5C.8D.9

charstr1[10],str2[10]={"

books"

,则在程序中能够将字符串"

赋给数组str1的正确语句是(B)。

A.str1={"

B.strcpy(str1,str2);

C.str1=str2;

D.strcpy(str2,str1);

4.下面程序段的运行结果是(B)。

(注:

□代表空格)

charc[5]={'

a'

b'

\0'

c'

printf("

%s"

c);

A.'

'

B.abC.ab□cD.ab□

5.下面程序段的运行结果是(D)。

chara[7]="

abcdef"

charb[4]="

ABC"

strcpy(a,b);

%c"

a[5]);

A.□B.\0C.eD.f

6.以下程序是对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不同字符的ASCII码之差。

输入的两个字符串分别为"

abcdefg"

和"

abceef"

,则第一个不同字符为'

d'

和'

e'

,输出为-1.请填空,①是('

)、②是(str1[i]-str2[i])。

{charstr1[100],str2[100],c;

inti,s;

Enterstring1:

gets(str1);

Enterstring2:

gets(str2);

i=0;

while((str1[i]==str2[i]&

str1[i]!

=①))i++;

s=②;

s);

7.下面程序的功能是在三个字符串中找出最小的。

请填空,①是(strcmp(str[0],str[1])<

0?

str[0]:

str[1])、②是(s)。

或①是(str[0])、②是(strcmp(s,str[1])<

s:

str[1])。

string.h>

{chars[20],str[3][20];

inti;

i++)gets(str[i]);

strcpy(s,①);

if(strcmp(str[2],s)<

0)strcpy(s,str[2]);

%s\n"

②);

8.下面程序的功能是在任意的字符串a中将与字符'

相等的所有元素的下标值分别存放在整型数组b中,请填空,①是(a[i]=='

)、②是(k++)。

{chara[80];

inti,b[80],k=0;

gets(a);

a[i]!

='

if(①){b[k]=i;

k;

9.当运行以下程序时,从键盘输入:

AhaMA□Aha<

(□代表空格,<

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

{chars[80],c='

inti=0;

while(s[i]!

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

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

i++;

puts(s);

10.下面程序的运行结果是(SW*)。

{charstr[]="

SSSWLIA"

c;

intk;

for(k=2;

(c=str[k])!

k++)

{switch(c)

{case'

I'

:

++k;

case'

L'

continue;

default:

putchar(c);

putchar('

*'

11.下面程序段的运行结果是(600)。

charch[]="

600"

inta,s=0;

for(a=0;

ch[a]>

ch[a]<

9'

a++)s=10*s+ch[a]-'

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

当前位置:首页 > 教学研究 > 教学案例设计

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

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