C语言第七八章补充作业 答案Word格式文档下载.docx

上传人:b****5 文档编号:19753471 上传时间:2023-01-09 格式:DOCX 页数:17 大小:24.18KB
下载 相关 举报
C语言第七八章补充作业 答案Word格式文档下载.docx_第1页
第1页 / 共17页
C语言第七八章补充作业 答案Word格式文档下载.docx_第2页
第2页 / 共17页
C语言第七八章补充作业 答案Word格式文档下载.docx_第3页
第3页 / 共17页
C语言第七八章补充作业 答案Word格式文档下载.docx_第4页
第4页 / 共17页
C语言第七八章补充作业 答案Word格式文档下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C语言第七八章补充作业 答案Word格式文档下载.docx

《C语言第七八章补充作业 答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言第七八章补充作业 答案Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。

C语言第七八章补充作业 答案Word格式文档下载.docx

F.chardisk[];

G.intn,floppy[n];

H.intcash[4]={1,2,3,4,5,6};

答案:

ADE

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

1main()

2{

floata[3]={1};

3

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

【10】请回答下列问题。

(1)array是一个一维整形数组,有10个元素,前6个元素的初值是9,4,7,49,32,-5,请写出正确的说明语句。

___

(2)该数组下标的取值范围是从___到___(从小到大)。

(3)如何用scanf函数输入数组的第二个元素。

(4)如何用赋值语句把39存入第一个元素。

(5)如何表示把第六个和第四个元素之和存入第一个元素。

intarray[10]={9,4,7,49,32,-5};

09

scanf(%d,&

array[1]);

array[0]=39;

array[0]=array[5]+array[3];

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

(假

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

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

【12】若有说明:

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

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

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

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

intk;

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

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

for(k=0;

k<

k++)printf(%d,a[k][2-k]);

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

【14】若有以下程序段:

……

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

i,j,t;

for(i=1;

5;

i++)

{

t=a[i];

j=i-1;

while(j>

=0&

&

t>

a[j])

{a[j+1]=a[j];

j--;

}

a[j+1]=t;

则该程序段的功能是B。

A)对数组a进行插入排序(升序)

B)对数组a进行插入排序(降序)

C)对数组a进行选择排序(升序)

D)对数组a进行选择排序(降序)

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

AhaMAAha<

CR>

(<

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

#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

【题16】设数组a包括10个整型元素。

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

请填空。

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

for(i=0;

10;

scanf(“%d”,&

a[i]);

for(【1】;

【2】

printf(“=”,b[i]);

if(【3】==0)printf(“\n”);

【1】i=1【2】b[i]=a[i]+a[i-1]【3】

(i%3)

进制。

n】下面程序将十进制整数转换成17【题.

inti,base,n,j,num[20];

printf(“Enterdatathatwillbeconverted\n”);

printf(“Enterbase\n”);

base);

do{

num[i]=n【1】base;

n=n【2】base;

}while(n!

=0);

printf(“Thedata%dhasbeenconvertedintothe%d--base

data:

\n”,n,base);

for(【3】)

printf(“%d”,num[j]);

【1】%【2】/【3】j=i;

j>

=1;

j--

【题18】下面程序的功能是将二维数组a中每个元素向右移一列,最右一列换到最左一列,移后的数组存到另一二维数组b中,并按矩阵形式输出a和b。

例如:

arraya:

arrayb:

456645

123312

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

inti,j;

printf(“arraya:

\n”);

for(j=0;

j<

j++)

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

【1】;

printf(“\n”);

for(【2】;

i++)b[i][0]=a[i][2];

printf(“arrayb:

2;

printf(“]”,b[i][j]);

【3】;

【1】b[i][j+1]=a[i][j]【2】i=0;

2【3】printf(“\n”)

编程答案:

[1]#defineM50

main()

{

inta[M],c[5],i,n=0,x;

printf(“Enter0or1or2or3or4,toendwith–1\n”);

scanf(“%d”,&

x);

while(x!

=-1)

if(x>

=0&

x<

=4)

a[n]=x;

n++;

for(i=0;

i<

i++)

c[i]=0;

n;

c[a[i]]++;

printf(“Theresultis:

=4;

printf(“%d:

%d\n”,ic[i]);

}

[2]main()

inta[5][5],i,j,n=1;

for(j=0;

j<

j++)

a[i][j]=n++;

=i;

printf(“M”,a[i][j]);

[3]#include<

#include<

chara[80],b[]=“ab”,max;

inti=1,j;

printf(“Inputastring\n”);

gets(a);

puts(a);

max=a[0];

while(a[i]!

=‘\0'

if(a[i]>

max)

max=a[i];

j=i;

for(i=strlen(a)+2;

i>

j;

i--)

a[i]=a[i-2];

a[i+1]=‘a'

a[i+2]=‘b'

第八章函数补充作

【题1】以下正确的说法是B。

建立函数的目的之一是A)提高程序的执行效率

B)提高程序的可读性

C)减少程序的篇幅

D)减少程序文件所占内存

【题2】以下正确的说法是B。

A)用户若需调用标准库函数,调用前必须重新定义

B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义

C)系统根本不允许用户重新定义标准库函数

D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调

【题3】若调用一个函数,且此函数中没有return语句,则正确的说法是D。

该函数A)没有返回值

B)返回若干个系统默认值

C)能返回一个用户所希望的函数值

D)返回一个不确定的值

【题4】以下不正确的说法是D。

C语言规定A)实参可以是常量、变量或表达式

B)形参可以是常量、变量或表达式

C)实参可以为任意类型

D)形参应与其对应的实参类型一致

【题5】以下正确的说法是C。

A)定义函数时,形参的类型说明可以放在函数体内

B)return后边的值不能为表达式

C)如果函数值的类型与返回值类型不一致,以函数值类型为准

D)如果形参与实参的类型不一致,以实参类型为准

【题6】以下程序是选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。

请选择填空。

sub(intk,intn)

inta1,a2;

a2=【1】;

(为:

C)

a1=k-【2】;

A)

if((k%3==0&

a2==5)||(k%3==0&

a1==5))

printf(“%d”,k);

returnn;

elsereturn-1;

intn=0,k,m;

for(k=10;

=99;

k++)

m=sub(k,n);

if(m!

=-1)n=m;

printf(“\nn=%d”,n);

【1】A)k*10B)k_x0010_C)k/10D)k*10_x0010_

【2】A)a2*10B)a2C)a2/10D)a2_x0010_

【题7】折半查找法的思路是:

先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。

如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;

反之,测试中点之前的元素,测试方法同前。

函数binary的作用是应用折半查找法从存有10个整数的a数组中对关键字m进行查找,若找到,返回其下标值;

返回-1。

binary(inta[10],intm)

intlow=0,high=9,mid;

while(low<

=high)

mid=(low+high)/2;

if(m<

a[mid])【1】;

elseif(m>

a[mid])【2】;

B)

elsereturn(mid);

return(-1);

【1】A)high=mid-1B)low=mid+1C)high=mid+1D)low=mid-1

【2】A)high=mid-1B)low=mid+1C)high=mid+1D)low=mid-1

【题8】以下程序的正确运行结果是D。

#defineMAX10

inta[MAX],i;

sub1();

sub3(a);

sub2();

sub2()

inta[MAX],i,max;

max=5;

max;

i++)a[i]=i;

sub1()

MAX;

i++)a[i]=i+i;

sub3(inta[])

inti;

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

A)024681012141618

01234

B)01234

024681012141618

C)0123456789

D)024681012141618

【题9】以下程序的功能是用递归方法计算五位学生的年龄,请填空。

递归公式如下:

10(n?

1)?

age(n)?

?

age(n?

2(n?

age(intn)

intc;

if(n==1)c=10;

elsec=【1】;

return(c);

intn=5;

printf(“age:

%d\n”,【2】);

【1】age(n-1)+2【2】age(5)

【题10】以下search函数的功能是利用顺序查找法从数组a的10个元素中对关键字m进行查找。

顺序查找法的思路是:

从第一个元素开始,从前向后依次与关键字比较,

直到找到此元素或查找到数组尾部时结束。

若找到,返回此元素的下标;

若仍未找到,则返回值-1。

intsearch(inta[10],intm)

=9;

i++)if(【1】)return(i);

inta[10],m,i,no;

);

【2】no=search(nOKFOUND!

%d”,no+1);

】)printf(“if(【3\\elseprintf(“nSorryNotFound!

”);

}3【】no>

=0a,m1【】a[i]==m【2】

【题11】以下程序的运行结果是

intk=1;

main(){inti=4;

fun(i);

n”,i,k);

printf(“

(1)%d,%d\}

fun(intm)

m+=k;

k+=m;

{chark=‘B'

-‘A'

);

n”,kprintf(“

(2)%d\}\n”,m,k);

printf(“(3)%d,%d

}

(2)1(3)5,6

(1)4,6

】以下程序的运行结果是12【题。

intn=1;

staticintx=5;

inty;

y=n;

printf(“MAIN:

x=-y=-n=-\n”,x,y,n);

func();

func()

staticintx=4;

inty=10;

x=x+2;

n=n+10;

y=y+n;

printf(“FUNC:

MAIN:

x=5y=1n=1

FANC:

x=6y=21n=11

MAIN:

x=5y=1n=11

x=8y=31n=21

【题13】以下程序的功能是输出1至5的阶乘。

intfac(intn)

staticintf=1;

f=f*n;

return(f);

=5;

printf(“%d!

=%d\n”,i,fac(i));

【题14】以下程序的输出结果是a=_36__,b=_16__,c=_19__。

/*指针*/

intfunc(inta,int*p);

voidmain()

{inta=1,b=2,c;

c=func(a,&

b);

b=func(c,&

a=func(b,&

c);

printf(a=%d,b=%d,c=%d,a,b,c);

intfunc(inta,int*p)

{a++;

*p=a+2;

return(*p+a);

[1]floatf2(intn)

if(n==1)

return1;

else

return(f2(n-1)*n);

floatf1(intx,intn)

floatj=1;

for(i=1;

=n;

j=j*x;

returnj;

[2]max(intarr[][4])

inti,j,max;

max=arr[0][0];

4;

if(arr[i][j]>

max=arr[i][j];

return(max);

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

当前位置:首页 > 医药卫生 > 基础医学

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

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