程序设计技术习题参考答案_第1页
程序设计技术习题参考答案_第2页
程序设计技术习题参考答案_第3页
程序设计技术习题参考答案_第4页
程序设计技术习题参考答案_第5页
已阅读5页,还剩125页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《程序设计技术》(第三版)习题参考答案

习题1

一、单项选择题

DADDDBCCD(注:第7小题无正确选项,正确答案为72)

二、填空题

①主

②main

③x=x*(x+b)

④普通、格式、分隔和转义

⑤指定输出数据格式

⑥voidmain()

⑦“howareyou!”

三、阅读程序题

1.9,11,9,10

2.2,-1,-1

3.aabbccabc

4.2,2

5.57

57

67.5864000,-789.124023

67.5864000,-7.89e+002

67,86,-789.12,67.5864000,-789.124023,67.5864000,

-789.124023

6.758640e+001,-7.89e+002

A,65,101,41

1234567,4553207,12d687

65535,177777,ffff,65535

COMPUTER,COM.

6.a+c=102

a+c=f

f+m=17.950000

a+m=17.650000

c+f=102.300000

double=1746.150019

四、程序设计题

//xt010401.cpp

#include<stdio.h>

#definePI3.1415926

voidmain()

{doubIer,h;

printf("请输入半径r和高h:");

scanfC%lf,%If”,&r,&h);

printf(“圆半径:%lf\nz,,2*Pl*r);

printf(“圆面积:%lf\nz,,Pl*r*r);

printf(“圆球表面积:%If\n,/,4*Pl*r*r);

printf("圆球体积:%lf\n,z,4.0/3*Pl*r*r);

,,

printf(“圆柱体积:%lf\ntPl*r*r*h);

)

//xt010402.cpp

#inoIude<stdio.h>

voidmain()

{intc;

printfCInputacharacter:;

c=getchar();

printf(,,%c\t%d\n,/,c,c);

)

//xt010403.cpp

#inoIude<stdio.h>

voidmain()

{intx,y,h=30,f=90;

x=(4*h-f)/2;

y=(f-2*h)/2;

printf(“鸡:%d,兔:%d\n”,x,y);

)

//xt010404.cpp

#include<stdio.h>

#include<math.h>

voidmain()

{doubIea,b,c,s,area;

printf("请输入三角形的三条边长(注意三条边长应能够构成三

角形):“);

scanf("%If,%If,%If”,&a,&b,&c);

s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf("三角形的面积是:%lf\n,z,area);

)

//xt010405.cpp

#inoIude<stdio.h>

voidmain()

{doubIef,c;

printf("请输入华氏温度:”);

scanf("%If",&f);

c=5.0/9.0*(f-32);

printf("与华氏温度%.2If对应的摄氏温度是:%.2f,c);

)

//xt010406.cpp

#incIude<stdio.h>

voidmain()

{charc1,c2,c3,c4,c5;

printf(”请输入需加密的字符串(5个字符):");

d=getchar();

c2=getchar();

c3=getchar();

c4二getchar();

c5二getchar();

printf("加密后的字符串是:“);

putchar(d+5);

putchar(c2+5);

putchar(c3+5);

putchar(c4+5);

putchar(c5+5);

printf("\n");

}

习题2

一、单项选择题

CBADCCCAAC

二、填空题

①a+b==O&&a*b!=0

②逻辑与

③逻辑或

④continue

⑤(c=getchar())!='\n'

⑥%c

三、阅读程序题

答案:

x=ll,y=20

,z2=l

答案:

-1--------(x<0)

sig心)=<0-----------(x=0)

1-----------(x>0)

该程序所完成功能的函数关系为:

答案:

a=2,b=l

答案:

13579

97531

答案:

A

BBB

CCCCC

DDDDDDD

EEEEE

DDD

C

答案:

2*1*0$4*3*2$

四、程序设计题

/*xt020401.cpp*/

#include<stdio.h>

voidmain()

{intnum;

printf(z,****Inputnum:****\n");

scanf("%d”,&num);

if(num%3-0&&num%5==0&&num%7-0)

printf("**YES!**\n");

eIse

printf("**NO!**\n");

)

/*xt020402.cpp*/

#include<stdio.h>

voidmain()

{inth=0;

fIoatx,y,x0=2,y0=2,d1,d2,d3,d4;

printf("***input:x,y***\n");

scanf("%f,%f",&x,&y);

d1=(x-xO)*(x-xO)+(y-yO)*(y-yO);/*点、(x,y)到各中心点的

距离*/

d2=(x-xO)*(x-xO)+(y+yO)*(y+yO);

d3=(x+xO)*(x+xO)+(y-yO)*(y-yO);

d4=(x+xO)*(x+xO)+(y+yO)*(y+yO);

if(d1<=1||d2<=111d3<=1||d4<=1)

h=15;

printf("x二%f,y=%f\n,z,x,y);

printf("h二%d\n”,h);

)

/*xt020403.cpp*/

#incIude<stdio.h>

voidmain()

{inti,j,k,n;

for(n=100;n<=999;n++)

[i=n/100;

j=n/10-i*10;

k=n%10;

if(n==i*i*i+j*j*j+k*k*k)

printf("%d\n”,n);

}

)

/*xt020404.cpp*/

#include<stdio.h>

#include<math.h>

#defineEPS1.Oe-6

voidmain()

(

floate=1,t;

Iongintj=1,n=1;

do

Ij=j*n;

t=1.0/j;

e=e+t;

n++;

}whiIe(fabs(t)>=EPS);

printf("e二%f\n”,e);

)

/*xt020405.cpp*/

#incIude<stdio.h>

voidmain()

{intnum=1;

do

{if((num+3)%5=0&&(num-3)%6==0)

break;

num+=1;

}while(1);

printf("num^d\rT,num);

)

/*xt020406.cpp*/

#include<stdio.h>

voidmain()

{intnum;

for(num=1;num<=99;num++)

if(num*num%10-num||num*num%100~num)

printf("%4d,%5d”,num,num*num);

printf("\n");

)

/*xt020407.cpp*/

#include<stdio.h>

voidmain()

{intn,k=1;

floats=0;

for(n=1;n<=10000;n++)

{s=s+1.0/(2.0*n-1)*k;

k=-k;

)

printf(,,PI=%f\n/,,4*s);

)

/*xt020408.cpp*/

#include<stdio.h>

voidmain()

{intn10,n5,n2,n1;

for(n10=1;n10<=9;n10++)

for(n5=1;n5<=17;n5++)

for(n2=1;n2<=37;n2++)

{n1=40-n10-n5-n2;

if(n1>=1&&n10*10+n5*5+n2*2+n1==100)

printf("n10=%d,n5=%d,n2=%d,rd二%d\rT,n10,n5,n2,n1);

}

}

/*xt020409.cpp*/

#incIude<stdio.h>

voidmain()

{fIoatsn=100,hn=sn/2;

intn=2;

while(n<=10)

{sn+=2*hn;

hn=hn/2;

n++;

}

printf(,z%f,%f\n,z,sn,hn);

)

/*xt020410.cpp*/

#include<stdio.h>

voidmain()

{intday,x1,x2=1;

for(day=9;day>0;day-)

[x1=(x2+1)*2;

x2=x1;

}

printf(z,TotaI二%d\n”,x1);

}

习题3

单项选择题

BBCACDDABB

填空题

①9

②o

③10

④X

⑤一致

⑥n/2

⑦sum+a

⑧sum/n

三、阅读程序题

1.246

2.s=30

3.5945842

4.lanuge

5.816

357

492

6.max=10,row=2,colum=1

四、程序设计题

//xt030401.cpp

#include<stdio.h>

#include<stdIib.h>

#include<time.h>

voidmain(void)

intnum[10],a;;

srand((unsigned)time(NULL));

printf(“请输入一个2位数,试试您是否能中奖:”);

scanf("%d",&a);

for(inti=0;i<10;i++)

{num[i]=(rand0+10)%100;

if(a==num[i])

printf("猜中一个数%d下标是%d”,a,i);

)

)

printf("-----------------------------\n");

for(i=0;i<10;i++)

printf(,z%d\tz,,num[i]);

}

//xt030402.cpp

#incIude<stdio.h>

#ir)clude<stdIib.h>

#include<time.h>

voidmain(void)

{inta[5]={23,45,60,67,88},x,i,j,yes=0;

for(i=0;i<5;i++)

printf("%d,",a[i]);

printfCXnwhichnumberdoyouwanttodelete?\n");

scanf("%d",&x);

for(i=0;i<5;i++)

if(a[i]==x)

{yes=1;

for(j=i;j<5;j++)a[j]=a[j+1];

)

if(yes==1)for(i=0;i<4;i++)printf("%d,",a[i]);

eIseprintf(z,Thenumberyouwantdoesn'texist");

)

//xt030403.cpp

#include<stdio.h>

#incIude<stdIib.h>

#include<time.h>

#defineSIZE1000

voidmain()

(

intx,a[SIZE].size,sum=0;

srand((unsigned)time(NULL));

whiIe((size=rand0%1000)>200);

printf(z,\nRandomizIistsize«1000):%d,z,size);

printf(,z\nAutomakea%dsizeoflist:\n,z,size);

for(x=0;x<size;x++)

(a[x]=rand0%1000;

printf("%d\t",a[x]);

sum+=arr[x];

)

printf(,z\nThesumofarrayeIementsis%d”,sum);

)

//xt030404.cpp

#incIude<stdio.h>

#incIude<stdIib.h>

#include<time.h>

#defineSIZE100

voidmain()

(

intx,a[SIZE],max=0,min=1000,b1,b2;

srand((unsigned)time(NULL));

printf(z/\nAutomakea%dsizeofIist:\n",size);

for(x=0;x<SIZE;x++)

[a[x]=rand()%1000;

printf("%d\t",a[x]);

for(x=0;x<SIZE;x++)

if(a[x]>max)max二a[x],b1=x;

if(a[x]<min)min=a[x],b2=x;

)

printf(z,\nThearrayeIementsmax=%din%d\nmir)=%d

in%d\n”,max,b1,min,b2);

)

//xt030405.cpp

#incIude<stdio.h>

#defineSIZE100

#defineKIND5

voidmain()

(

intx,y,Ien,totaI[KIND+1];

int

a□={1,1,1,1,2,2,2,3,5,5,5,5,1,1,3,3,3,3,3,2,2,2,5,5,5);

Ien=sizeof(a)/sizeof(a[0]);

for(x=0;x<KIND+1;x++)

{totaI[x]=0;

}

for(y=1;y<KIND+1;y++)

for(x=0;x<len;x++)

(

if(a[x]==y)totaI[y]++;

)

)

printf(z,\nTheIistkinded:\rT);

for(x=0;x<Ien;x++)printfC%d”,a[x]);

printf(,z\nThetotaIresu11:");

for(x=1;x<KIND+1;x++)printfC%d-%d,”,x,total[x]);

1

//xt030406.cpp

#defineN26

#incIude<stdio.h>

intmain(void)

{staticinta[N+1],b[N+1];

inti,j,s,m,p;

scanf("%d%d”,&s,&m);

for(i=1;i<=N;i++)a[i]=i;

i=s-1;j=O;p=O;

while(p<N)

{i++;

bh:

if(i>N)i-=N;

if(a[i]=0)(i++;gotobh;}

j++;

if(j%m-0){p++;b[p]=a[i];a[i]=0;j=0;}

}

for(i=1;i<=N;i++)printf("%3d”,b[i]);

printf("\n");

)

//xt030407.cpp

#incIude<stdio.h>

voidmain0

(

inti,j,s=0,ave,v[3];

staticinta[5][3]={{80,75,92},{61,65,71},{59,63,70},{8

5,87,90},{76,77,85}};

for(i=0;i<3;i++)

{for(j=0;j<5;j++){

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

v[i]=s/5;

s=0;

)

ave=(v[0]+v[1]+v[2])/3;

printf("math:%d\ncIanguag:%d\ndbase:%d\n,z,v[0],v[1],v[2]);

printf(z,totaIave:%d\n,z,aveI);

)

//xt030408.cpp

#include<stdio.h>

voidmain()

(

inti,j,a[10][10],b[]={1,2,3,4,5,6,7,8,9,10);

for(i=0;i<10;i++)a[0][i]=b[i];

for(i=1;i<10;i++)

for(j=0;j<10;j++)

if(i>j)a[i][j]=a[j][il;

elsea[i][j]=a[i-1][j-1];

for(i=0;i<10;i++)

{for(j=0;j<10;j++)

,,,,

printf(%d\tIa[i][j]);

printf("\n");

)

)

//xt030409.cpp

#include<stdio.h>

#include<stdIib.h>

#include<time.h>

#defineSIZE5000

#defineN7

voidmain()

(

intx,y,a[N]={0,0,0,0,0,0,0},s;

srand((unsigned)time(NULL));

x=0;

while(x<SIZE)

{s=rand()%6+1;

if(s>0&&s<7)

[a[s]++;

x++;

|

}

printf(,z\nRandomiz1-6Iist'n");

for(x=1;x<N;x++)

(

s=a[x]*0.07;

for(y=0;y<s;y++)

printf("%d”,x);

printf(,z\t%d\t%2.1f%%\n,z,a[x],(fIoat)a[x]*100/SIZE);

)

)

//xt030410.cpp

#include<stdio.h>

#defineN20

intmain0

(

intx,s,tag;

chara[N];

printf(Z/PIeaseinputnumbersandit'slengthIess

then%d:",N-1);

s=1;

while(s<N)

{scanf&a[s]);

if(a[s]==10)break;

s++;

)

printf(/z\nThenumbersis:\n");

for(x=1;x<s;x++)

printf(,,%c,/,a[x]);

}

tag=O;

for(x=1;x<s/2;x++)

I

if(a[x]!=a[s-x])

{tag=1;

break;

}

}

if(tag-0)printf(z/\nThenumberispaIindrome!");

eIseprintf(z,\nThenumberisn'tpaIindrome!");

)

习题4

一、单项选择题

ABACABCBDD

二、填空题

①主

②main函数

③main函数

④个数

⑤类型

⑥顺序

⑦函数类型

⑧float(floatx,intn)

⑨f(x,n)

⑩x*f(x,n-1)

三、阅读程序题

1.x—5,y—25

2.y=170.0

3.s1=3.14,s2=5.14

4.5002

5.5,3

6.3.00,1.00,0.25

四、程序设计题

//xt040401.cpp

#inoIude<stdio.h>

voidmain()

{voiddis(intn);

intn;

scanf(,,%d,/,&n);

dis(n);

)

voiddis(intn)

{intkO,k,sum,i;

k0=1;

do

{k=kO;

sum=0;

for(i=1;i<=n;i++)

{sum=sum+k;

k=k+2;

)

if(sum==n*n*n)

break;

eIse

kO=kO+2;

}while(1);

for(i=1;i<=n;i++)

{printf(,,%5d,/,kO);

kO=kO+2;

}

}

//xt040402.cpp

#include<stdio.h>

voidmain()

{fIoath(intn,fIoatx);

intn;

fIoatx;

scanf("%d,%f",&n,&x);

printf("h(%d,%f)”,n,x,h(n,x));

)

fIoath(intn,fIoatx)

{if(n=0)

return1;

eIseif(n==1)

return(2*x);

eIse

return(2*x*h(n-1,x)-2*(n-1)*h(n-2,x));

)

//xt040403.cpp

#include<stdio.h>

voidmain()

{intf(intn);

inti;

for(i=2;i<=1000;i++)

if(f(i))

printf("%6d”,i);

)

intf(intn)

{if(n==n*n%10||n==n*n%1001|n==n*n%1000)

return1;

eIse

return0;

)

//xt040404.cpp

#incIude<stdio.h>

voidmain()

{Iongfun(inta,intn);

intk,n;

scanf("%d,%d",&k,&n);

printf("%ld\n”,fun(k,n));

)

Iongfun(inta,intn)

{intj;

longs=0,t=0;

for(j=1;j<=n;j++)

[t=t*10+a;

s=s+t;

}

returns;

)

//xt040405.cpp

#include<math.h>

#include<stdio.h>

voidmain()

{intnum,middIe1,middIe2;

intdetect(intd);

printf("Pleaseinputapositiveevennumber(>=6);

scanf("%d”,&num);

for(middIe1=2;middIe1<=num/2;middIe1+=1)

if(detect(middle!))

{middIe2=num-middIe1;

if(detect(middIe2))

{printf("%d=%d+%d\n”,num,middIe1,middIe2);

break;

}

}

}

intdetect(intd)

{inti;

for(i=2;i<=sqrt(d*1.0);i++)

if(d%i==0)

return(0);

return1;

)

//xt040406.cpp

#include<stdio.h>

voidmain()

{fIoatf(fIoatx,intn);

fIoatx,an;

intn;

scanf("%f,%d",&x,&n);

an=f(x,n);

printf(/,an=%f\n,/,an);

)

fIoatf(fIoatx,intn)

{if(n==0)

return1;

eIse

returnx/r)*f(x,n-1);

)

//xt040407.cpp

#include<stdio.h>

voidmain()

{fIoatf(floatx,intn);

fIoatx,fn;

intn;

scanf("%f,%d",&x,&n);

fn=f(x,n);

printf("an=%f\n”,fn);

)

fIoatf(fIoatx,intn)

{if(n==0)

return1;

eIseif(n>0)

returnx*f(x,n-1);

eIse

returnf(x,n+1)/x;

)

//xt040408.cpp

#include<stdio.h>

voidmain()

{voidf(intn);

intn;

scanf("%d",&n);

while(n<=0)

scanf("%d",&n);

f(n);

)

voidf(intn)

{if(n/10=0)

putchar(n%10+'0');

eIse

{putchar(n%10+*0');

f(n/10);

)

)

//xt040409.cpp

#incIude<stdio.h>

voidmain()

{voidf(intn);

intn;

scanf&n);

while(n<=0)

scanf("%d",&n);

f(n);

)

voidf(intn)

{if(n/10)

f(n/10);

putchar(n%10+'0');

}

//xt040410.cpp

#include<stdio.h>

voidmain()

{intf(intn);

intn;

for(n=2;n<=1000;n++)

if(f(n))

printf(z/%disa完数\n”,n);

)

intf(intn)

{inti,s=0;

for(i=1;i<n;i++)

if(n%i==0)

s=s+i;

if(s==n)

return1;

eIse

return0;

)

习题5

一、单项选择题

AACCADDACB

二、填空题

①“char*fund0"定义一个返回字符指针值的函数,

“char(*func2)(。定义一个指向函数的指针

②一个返回值为单精度类型指针的函数名;

③(*p)(a,b,c)

④findmin

⑤(*f)(x,y,z);

三、阅读程序题

1.120

2.5,4,3

3.4

4.15

5.112

6.49

11

113

13

15

//xt050401.cpp

#incIude“stdio.h"

voidmain()

{voidf(int,int,int);

inta,b,c;

void(*p)(int,int,int);

,,,,

scanf(%d%d%d1&a,&b,&c);

P二f;

(*p)(a,b,c);

)

voidf(intx,inty,intz)

{intt;

if(x<y)

t=x,x=y,y=t;

if(y<z)

t=z,z=y,y=t;

if(x<y)

t=x,x=y,y=t;

printf("%5d%5d%5d\n”,x,y,z);

1

//xt050402.cpp

#incIude<stdio.h>

intmax(inta,intb)

{if(a>b)

returna;

eIse

returnb;

)

voidmain()

{intmax(inta,intb);

int(*pmax)(int,int);

intx,y,z;

pmax二max;

printfCinputtwonumbers:\n,z);

scanf("%d%d”,&x,&y);

z=(*pmax)(x,y);

printf("maxmum=%cT,z);

)

//xt050403.cpp

#include“stdio.h"

voidgcd(intx,inty)

{inttemp;

whiIe(y!=0)

{temp=x%y;

x=y;

y=temp;

}

printf("Thegreatestcommondivisoris:%d\n”,x);

)

voidIcm(intx,inty)

{inttemp,m,n;

m=x;

n=y;

whiIe(x!=0)

{temp二y%x;

y=x;

x=temp;

}

printf(/zThelowestcommonmultipleis:%d\n”,m*n/y);

)

voidmain()

{inta,b;

void(*p)(int,int);

printf(Z/PIeaseinputaandb:");

scanf("%d%d”,&a,&b);

if(a>b)

P=gcd;

eIse

p=Icm;

(*p)(a,b);

)

//xt050404.cpp

#incIude“stdio.h"

voidmain()

{intx,y;

intsum(int,int),diff(int,int),product(int,int);

voidmma(intx,inty,ints(int,int));

printf(Z,PIeaseinputx,y:\n");

scanf("%d%d”,&x,&y);

printf(z,Thesumofxandyis:");

mma(x,y,sum);

printf("Thedifferenceofxandyis:");

mma(x,y,diff);

printf(z,Theproductofxandyis:");

mma(x,y,product);

)

intsum(intx,inty)

(

returnx+y;

)

intdiff(intx,inty)

{returnx-y;

)

intproduct(intx,inty)

(

returnx*y;

)

voidmma(inta,intb,ints(int,int))

{intw;

w=s(a,b);

printf("%d\n”,w);

)

//xt050405.cpp

#include<stdio.h>

doublefund(intx),func2(inty);

voidmain()

{double(*fptr)(int);/*定义指向函数的指针变量fptr*/

intn;

printfCinputanumber:");

scanf("%d",&n);

if(n>1)

{if(r)%2==0)

fptr=func1;/*n为偶数,指针变量ptr指向函数fund()*/

eIse

fptr=func2;/*n为奇数,指针变量ptr指向函数

func2()*/

printfCvaIue=%9.4f\n,z,(*fptr)(n));

}

eIse

printf("error!\n");

}

doubIefund(intx)

{intk;

doubIevalue;

vaIue=1.0;

for(k=2;k<=x;k=k+2)

vaIue=vaIue+1/(doubIe)k;

returnvalue;

1

doublefunc2(inty)

{intk;

doubIevalue;

vaIue=1.0;

for(k=3;k<=y;k=k+2)

vaIue=vaIue+1/(doubIe)k;

returnvalue;

)

//xt050406.cpp

#incIude“stdio.h"

#include"math.h"

voidmain()

{intn,yinzi(int),(*f)(int);

f=yinzi;

printfCinputanumbern:");

scanf("%d",&n);

if((*f)(n)=2)

printf(,z\n%disaprimenumber.n);

eIse

printf(,z\n%disnotaprimenumber.n);

)

intyinzi(intx)

{inti,k=0,q=(int)sqrt(x);

for(i=1;i<=q;i++)

if(x%i==0)

{k+=2;

printf("%5d%5d”,i,x/i);

}

returnk;

)

//xt050407.cpp

#incIude<stdio.h>

#include<math.h>

doublef1(doubIex)

(

returnx*x*log(x);

)

doubIef2(doubIex)

(

returnx*sin(x);

)

doublef3(doubIex)

returnx/exp(x);

doubIecoIIect(doubIe(*p)(doublex),doubIea,doubIeb,doubIe

n)

{inti;

doubIeh,area;

h=(b-a)/n;

area=((*p)(a)+(*p)(b))/2.0;

for(i=1;i<n;i++)

area+=(*p)(a+i*h);

return(area*h);

)

voidmain()

{doubIey1,y2,y3;

y1=colIect(f1,1.0,2.0,1000);

y2=coIIect(f2,0.0,3.0,500);

y3=coIIect(f3,0.0,1.0,10000);

printf(z,y1=%6.2fy2=%6.2fy3=%6.2f\n,z,y1,y2,y3);

)

//xt050408.cpp

#include“stdio.h"

#include"math.h"

introot(doubIe*x,intm,doubIeeps,doubIe(*f)(doubIe))

{doubIexO;

do

[xO=*x;

*x=(*f)(xO);

m=m-1;

}whiIe((m!=0)&&(fabs(*x-x0)>=eps));

if(m==0)return(0);

return(1);

)

doubIef1(doubIex)

(

return(1.0+atan(x));

)

doublef2(doubIex)

(

return(0.5*cos(x));

)

doubIef3(doubIex)

return((6.0+3*x-x*x)/4);/*x=(6+3*x-x*x)/4*/

)

voidmain()

{doubIex,(*p)(doubIe);

x=1.0;

P=f1;

if(root(&x,50,0.00001,p))

,,,,

printf(x1=%f\nJx);

P=f2;

if(root(&x,50,0.00001,p))

,,,,

printf(x1=%f\nIx);

P=f3;

if(root(&x,50,0.00001,p))

printf(,,x1=%f\n,/,x);

)

//xt050409.cpp

#include“stdio.h"

int*f(intp[],intq[],intm)

{inti;

for(i=0;i<m;i++)

q[i]=p[i]*p[i];

returnq;

)

voidmain()

{inta[6]={1,2,3,4,5,6],i,*k;

intb[6];

k=f(a,b,6);

for(i=0;i<6;i++)

printf("%5d”,k[i]);

}

//xt050410.cpp

#include<stdio.h>

#incIude<stdIib.h>

voidmain()

{intwanshu(intx);

int*ptr;

ptr=(int*)maIIoc(sizeof(int));

if(ptr==NULL)

{printf("FaiIedtocreateanewobject.,z);

exit(0);

}

scanf("%d”,ptr);

if(wanshu(*ptr))

printfC%disa完数:二*ptr);

eIse

printf(z%disnota完数:,*ptr);

free(ptr);

)

intwanshu(intx)

{inti=1,SUHFO;

while(i<x)

{if(x%i==0)

sum+=i;

i++;

}

if(sum==x)

return1;

eIse

return0;

}

习题6

一、单项选择题

BDACDCACAD

二、填空题

①是其值可以是二级地址(指针)

②是其值可以是多级地址址(指针)

③沿着数组所占据的存储区域向前和向后移动多个或者是一个数组

元素

④可以在程序的运行过程中根据需要创建的数组

⑤int*v,int*key

⑥a,&key

⑦add-a

⑧&n

三、阅读程序题

1.11

2.2689

3.357911

4.14708

5.1312000

33333

681133

89333

33333

6.11111

1413111

11111

46911

67111

四、程序设计题

//xtO6O4O1.cpp

#include<stdio.h>

voidmain()

{intyh[11],row,coI,i;

*(yh+1)=1;

for(i=0;i<40-2;i++)

printfC");

,,,,

printf(%4d\n,*(yh+1));

for(row=2;row<=10;row++)

{*(yh+row)=1;/*每行的最后一个元素值为1*/

for(coI=row-1;col>=2;coI-)/*生成一行*/

*(yh+coI)=*(yh+coI)+*(yh+col-1);

for(i=0;i<40-2*row;i++)/*输出合适的空格*/

printfC");

for(col=1;coI<=row;coI++)/*输出一行*/

printf("%4d”,*(yh+coI));

printf("\n'');

}

)

//xt060402.cpp

#include<stdio.h>

#include<stdIib.h>

#include<time.h>

voidmain()

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

srand(time(NULL));

for(i=0;i<10;i++)

for(j=0;j<5;j++)

*(a[i]+j)=rand()%100;

for(i=0;i<10;i++)

{*(b+i)=a[i][0];

for(j=0;j<5;j++)

if(*(b+i)<*(*(a+i)+j))

*(b+i)=*(*(a+i)+j);

}

for(i=0;i<10;i++)

{for(j=0;j<5;j++)

prirrtf("%4d”,a[i][j]);

,,,,

printf(\t%4d\n,b[i]);

}

)

//xt060403.cpp

#include<stdio.h>

#include<stdIib.h>

#include<time.h>

intdeImem(int*v,intn,intdel);

voidmain()

{int*a,i,n,deI;

srand(time(NULL));

printf("请输入处理的数组长度:”);

scanf("%d",&n);

a=(int*)malIoc(sizeof(int)*n);

for(i=0;i<n;i++)

*(a+i)=rand()%100;

printf("删除操作前的数据如下所示:\n");

for(i=0;i<n;i++)

printf("%4d”,*(a+i));

printf("\n请输入欲删除的元素值:“);

scanf("%d”,&deI);

n=deImem(a,n,deI);

printf("删除操作后的数据如下所示:\n");

for(i=0;i<n;i++)

printf("%4d”,*(a+i));

printf("\n");

)

intdeImem(int*v,intn,intdeI)

{inti,j;

for(i=0;i<n;i++)

if(*(v+i)==deI)

{for(j=i;j<n-2;j++)

*(v+j)=*(v+j+1)

n——,i——;

)

returnn;

)

//xt060404.cpp

#incIude<stdio.h>

#include<stdIib.h>

#include<time.h>

#defineN15

voidmain()

{intscore[N][4]={0},i,j,

srand(time(NULL));

for(i=0;i<N;i++)

for(j=O;j<3;j++)

{x=rand()%100;

if(x<50)

eIse

score[i][j]=x;

)

for(i=0;i<N;i++)

for(j=O;j<3;j++)

*(*(score+i)+3)+=*(*(score+i)+j);

printfCscorel\tsocre2\tsocre3\tsum\n,/);

for(i=0;i<N;i++)

{for(j=0;j<4;j++)

printf("%d\t”,*(*(score+i)+j));

printf("\n");

}

)

//xt060405.cpp

#ir)clude<stdio.h>

#include<stdIib.h>

#include<time.h>

#defineN15

voidmain()

{intscore[N][4]=(0},i,j,x;

intt[4];

srand(time(NULL));

for(i=0;i<N;i++)〃生成模拟成绩数据

for(j=0;j<3;j++)

{x=rand0%100;

if(x<50)

j—;

eIse

score[i][j]=x;

}

for(i=0;i<N;i++)//统计每个学生的总分

for(j=0;j<3;j++)

*(*(score+i)+3)+=*(*(score+i)+j);

for(i=0;i<N-1;i++)

Ix=i;

for(j=i+1;j<N;j++)

if(score[j][3]>score[x][3])

x=j;

if(x!=i)

for(j=0;j<4;j++)

{*(t+j)=*(*(score+x)+j);

*(*(score+x)+j)=*(*(score+i)+j);

*(*(score+i)+j)=*(t+j);

)

}

printf("scorel\tsocre2\tsocre3\tsum\n,z);

for(i=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论