习题参考答案03OUC13C语言程序设计项目化教程武桂力2Word格式文档下载.docx

上传人:b****6 文档编号:19860998 上传时间:2023-01-11 格式:DOCX 页数:18 大小:20.71KB
下载 相关 举报
习题参考答案03OUC13C语言程序设计项目化教程武桂力2Word格式文档下载.docx_第1页
第1页 / 共18页
习题参考答案03OUC13C语言程序设计项目化教程武桂力2Word格式文档下载.docx_第2页
第2页 / 共18页
习题参考答案03OUC13C语言程序设计项目化教程武桂力2Word格式文档下载.docx_第3页
第3页 / 共18页
习题参考答案03OUC13C语言程序设计项目化教程武桂力2Word格式文档下载.docx_第4页
第4页 / 共18页
习题参考答案03OUC13C语言程序设计项目化教程武桂力2Word格式文档下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

习题参考答案03OUC13C语言程序设计项目化教程武桂力2Word格式文档下载.docx

《习题参考答案03OUC13C语言程序设计项目化教程武桂力2Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《习题参考答案03OUC13C语言程序设计项目化教程武桂力2Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。

习题参考答案03OUC13C语言程序设计项目化教程武桂力2Word格式文档下载.docx

3.i=j,a[i][j]

4.strcmp(str[0],str[1])<

0?

str[0]:

str[1]s

项目6

1.C2.A3.C4.B5.B6.D

7.A8.A9.C10.A11.D12.D

13.A

1.对2.对3.对4.对5.对6.对

7.错8.对9.错10.对11.错12.对

13.对14.错15.错16.错

1.程序中的main()函数

2.函数说明、函数体

3.maxis2

4.2*i+1a(i)a(i)

5.age(n-1)+2;

age(5)

6.5109

7.i<

10array[i]average(score)

8.i=3j<

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

9.123

三、编程题

1.

intisprime(inta)

{

inti;

for(i=2;

i<

sqrt((double)a);

i++)

if(a%i==0)return0;

return1;

}

2.

intsum(intn)

inti,k=0;

for(i=0;

=n;

i++)k+=i;

returnk;

3.

floatp(intn,intx)

floatt,t1,t2;

if(n==0)return1;

elseif(n==1)returnx;

else

{

t1=(2*n-1)*x*p((n-1),x);

t2=(n-1)*p((n-2),x);

t=(t1-t2)/n;

returnt;

}

4.

intmax_value(intarr[][4])

inti,j,max;

max=arr[0][0];

2;

for(j=0;

j<

4;

j++)

if(arr[i][j]>

max)max=arr[i][j];

returnmax;

5.

#defineM50

voidmain()

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

n=0;

printf("

Enter1or2or3or4,toendwith-1\n"

);

scanf("

%d"

&

x);

while(x!

=-1)

if(x>

=1&

&

x<

=4){a[n]=x;

n++;

}

scanf("

f(a,c,n);

Outputtheresult:

\n"

;

for(i=1;

=4;

i++)printf("

%d:

%d\n"

i,c[i]);

f(inta[],intc[],intn)

n;

i++)c[a[i]]++;

项目7

1.B2.D3.D4.C5.B6.C

7.D8.B9.D10.A11.B

二、填空题

1.num=*b;

num=*c;

2、hELLO!

3、ef

4.412

5.810

6.*(a+i)=*(a+j);

*(a+j)=t

7.二维数组各元素的五种表示方法:

1)a[i][j]

2)(*(a+i))[j]

3)*(a[i]+j)

4)*(*(a+i)+j)

5)*(&

a[0][0]+4*i+j)

三、程序设计

main()

{intx,y,z,t;

int*p1,*p2,*p3;

printf(“Pleaseinput3numbers:

”);

scanf(“%d,%d,%d”,&

x,&

y,&

z);

p1=&

x;

p2=&

y;

p3=&

z;

printf(“oldvaluesare:

\n”);

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

t=*p3;

*p3=*p2;

*p2=*p1;

*p1=t;

printf(“newvaliesare:

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

{int*p,a[20],i;

printf(“Pleaseinput10numbers\n”);

for(i=0;

10;

scanf(“%d”,&

a[i]);

printf(“Theoriginalarrayis:

for(p=data;

p<

data+20;

p++)

{if((p-&

data[0])%5==0)printf(“\n”);

printf(“%4d”,*p);

sort(data,20);

printf(“thepresentarrayis:

data[0]%5==0)printf(“\n”);

voidsort(intarray[],intn)

{int*p1,*p2,t;

for(p1=array;

p1<

array+(n-1);

p1++)

for(p2=p1+1;

p2<

array+n;

p2++)

if(*p1>

*p2)

{t=*p1;

*p1=*p2;

*p2=t;

voidinv(int*x,intn)

{

int*p,temp,*i,*j,m=(n-1)/2;

i=x;

j=x+n-1;

p=x+m;

for(;

=p;

i++,j--)

{temp=*i;

*i=*j;

*j=temp;

return;

{inti,a[10]={3,7,9,11,0,6,7,5,4,2};

printf("

Theoriginalarray:

%d,"

a[i]);

inv(a,10);

Thearrayhasbenninverted:

4.指针法:

main(){

inta[5],i,*pa;

pa=a;

for(i=0;

5;

i++){

*pa=i;

pa++;

printf("

a[%d]=%d\n"

i,*pa);

下标法:

inta[5],i;

a[i]=i;

i,a[i]);

{voidsort(char*a[],intn)

staticchar*name[]={“Changhua”,“Liping”,“Chenmei”,“Gaofeng”};

intn=4,i;

sort(name,n);

printf(%s\n”,name[i]);

voidsort(char*a[],intn)

{char*temp;

inti,j;

n-1;

for(j=0;

n-i-1,j++)

if(strcmp(a[j],a[j+1])>

0)

{temp=name[j];

name[j]=name[j+1];

name[j+1]=temp;

}}

项目8

1.A2.D3.A4.B5.C6.C

1.10,x

2.12,0

3.5,3

4.p<

person+3,old=p→age;

q→name,old;

5.while(p!

=NULL) 

 

{c=c+1;

p=p→next;

项目9

选择题

1.A2.A3.C4.D5.C6.C

7.B8.D

二、程序设计

#include<

stdio.h>

FILE*fp;

charch;

if((fp=fopen("

text1.c"

"

rt"

))==NULL)

Cannotopenfilestrikeanykeyexit!

"

getch();

exit

(1);

ch=fgetc(fp);

while(ch!

=EOF)

putchar(ch);

fclose(fp);

/*

函数功能:

把srcName文件内容拷贝到dstName

函数入口参数:

文件路径

函数返回值:

非0值表示拷贝成功,否则出错

*/

intCopyFile(constchar*srcName,constchar*dstName)

#defineBUF_SIZE1024

charbuf[BUF_SIZE];

intfhSrc=-1;

intfhDst=-1;

intrval=1;

intrtn;

/*打开文件*/

fhSrc=open(srcName,O_RDONLY|O_BINARY);

if(fhSrc==-1)

gotoERROR;

fhDst=open(dstName,O_WRONLY|O_CREAT|O_TRUNC|O_BINARY);

if(fhDst==-1)

/*拷贝文件*/

while((rtn=read(fhSrc,buf,BUF_SIZE))>

0)

if(write(fhDst,buf,rtn)==-1)

gotoERROR;

if(rtn==0)

gotoEXIT;

ERROR:

rval=0;

EXIT:

if(fhSrc!

=-1)

close(fhSrc);

if(fhDst!

close(fhDst);

#undefBUF_SIZE

returnrval;

#include<

stdlib.h>

time.h>

dos.h>

#defineDEAL50/*设计最大交易次数*/

structdeal

structdatedt;

/*每笔交易的日期*/

structtimeti;

/*每笔交易的时间*/

doubleearning;

/*每笔交易的收入额度*/

doublepayout;

/*每笔交易的支出额度*/

};

typedefstructdealFINANCE;

FINANCEperson[DEAL]={0};

floatSumOfEarning(FINANCEper,intyear)

inti;

floatsum=0.0;

DEAL;

if(per.dt.da_year==year)

sum+=per.earning;

returnsum;

floatSumOfPayout(FINANCEper,intyear)

sum+=per.payout;

floatBalance(FINANCE*per)

floatsum1=0.0,sum2=0.0;

sum1+=(per+i)->

earning;

sum2+=(per+i)->

payout;

returnsum1+sum2;

voidOneYearBalance(FINANCE*per,intyear)

if((per+i)->

dt.da_year!

=year)continue;

paramof%d:

"

year);

SumofearningSumofpayoutBalance\n"

%28.2f%21.2f%19.2f\n"

sum1,sum2,sum1+sum2);

voidPrintBalance(FINANCE*per)

DateTimeEarningPayoutBalance\n"

dt.da_year!

=0)

printf("

%d/%d/%d"

(per+i)->

dt.da_year,

(per+i)->

dt.da_mon,(per+i)->

dt.da_day);

%d:

%d:

ti.ti_hour,

ti.ti_min,(per+i)->

ti.ti_sec);

earning!

%8.2f\n"

earning);

payout!

%8.2f\n"

payout);

Balance(per));

voidPrintOneYear(FINANCE*per)

inti,year;

PleaseInputoneyear:

scanf("

year);

=year)continue;

OneYearBalance(per,year);

voidGetDateTime(FINANCE*per)

Pleaseinputonedeal:

getdate(&

per->

dt);

%d/%d/%d:

per->

dt.da_year,per->

dt.da_mon,

per->

gettime(&

ti);

ti.ti_hour,per->

ti.ti_min,

charInputOneDeal(FINANCE*per)

charstring[10];

Pleaseinputdeal(+/-)\n"

GetDateTime(per);

%s"

string);

if(string[0]=='

-'

payout=atof(string);

else

earning=atof(string);

voidMenu()

1.InputOnedeal\n"

2.PrintAlltheBalance\n"

3.PrintOneyearBalance\n"

4.ExittoDOS\n"

读取数据文件

函数参数:

读入的记录条数

intLoadData(void)

FILE*fp=fopen("

deal.dat"

"

rb"

if(fp==NULL)

return0;

i=fread(person,sizeof(FINANCE),DEAL,fp);

fclose(fp);

returni;

保存数据文件

保存几条数据

voidSaveData(inti)

intwritten;

wb"

perror("

Opendeal.daterror:

return;

written=fwrite(person,sizeof(FINANCE),i,fp);

if(written!

=DEAL)

Writedeal.daterror:

charkey;

i=LoadData();

while

(1)

Menu();

key=bioskey(0);

switch(key)

case'

1'

:

InputOneDeal(person+i);

i++;

break;

2'

PrintBalance(person);

3'

PrintOneYear(person);

4'

SaveData(i);

exit(0);

default:

break;

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

当前位置:首页 > 表格模板 > 表格类模板

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

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