《C语言程序设计实验与习题》上机实.docx

上传人:b****4 文档编号:3850157 上传时间:2023-05-06 格式:DOCX 页数:32 大小:23.24KB
下载 相关 举报
《C语言程序设计实验与习题》上机实.docx_第1页
第1页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第2页
第2页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第3页
第3页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第4页
第4页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第5页
第5页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第6页
第6页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第7页
第7页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第8页
第8页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第9页
第9页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第10页
第10页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第11页
第11页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第12页
第12页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第13页
第13页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第14页
第14页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第15页
第15页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第16页
第16页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第17页
第17页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第18页
第18页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第19页
第19页 / 共32页
《C语言程序设计实验与习题》上机实.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《C语言程序设计实验与习题》上机实.docx

《《C语言程序设计实验与习题》上机实.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计实验与习题》上机实.docx(32页珍藏版)》请在冰点文库上搜索。

《C语言程序设计实验与习题》上机实.docx

《C语言程序设计实验与习题》上机实

《C语言程序设计实验与习题》

上机实验参考答案

(此答案仅作为教师指导学生上机实验时参考使用,不得转发给学生!

第2章

实验一基本数据类型

1、floatc;doubled;

c=211.5f;d=211.5;

printf("a/b=%d\n",a/b);

2、printf("%d,%o,%x\n",0x65,0x65,0x65);

3、e=’o’+2;f=’m’+2;g=’e’+2;

4、ra=de*PI/180;

实验二算术运算符和表达式

1、printf("%f\n",x+a%3*(int)(x+y)%2/4);

printf("%f\n",(float)(a+b)/2+(int)x%(int)y);

2、printf("%d\n",(x=1,y=100,z=(x+y)*5));

printf("%d\n",x=(i=10,j=5,i*j));

printf("%d\n",(x=i=10,j=5,i*j));

3、doublea,b,c,s,area;

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

第3章

实验一数据的格式化输出

实验二数据的格式化输入

1、a=b;

B=g;

2、1012410.34↙

3、a=3b=7x=8.57y=71.82c1=Ac2=a↙

4、略

第4章

实验一if语句

2、wan==ge&&qian==shi

3、c>=’a’&&c<=’z’||c>=’A’&&c<=’Z’

c>=’0’&&c<=’9’

4、

#include

#include

voidmain()

{doublex,y,z;

printf("输入x,y的值:

\n");

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

if(x>=0&&y>=0)z=log10(x)+log10(y);

else

if(x<0&&y>=0)z=sin(x)+cos(y);

else

if(x<0&&y<0)z=exp(2*x)+exp(2*y);

elsez=tan(x+y);

printf("Z=%.2f\n",z);

}

实验二switch语句

2、

#include

voidmain()

{

floatm,y,s;

printf(“请输入本金和存款年限:

\n”);

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

if(y>8){n=y-8;y=8;}

switch(y)

{

case1:

s=m+m*0.63%*12;break;

case2:

s=m+m*0.66%*12*2;break;

case3:

case4:

s=m+m*0.69%*12*y;break;

case5:

case6:

case7:

s=m+m*0.75%*12*y;break;

case8:

s=m+m*0.84%*(y+n);break;

defaut:

printf("wrong\n");

}

printf(“本金利息合计:

%f\n”,s);

}

第5章

实验一循环语句的使用

1、temp=m;m=n;n=temp;m=n;n=r

2、tn=tn+a;a=a*10;

3、【程序如下:

#include

voidmain()

{

floats,f0,h,x;

intn,i;

printf(“输入区间分隔数n:

”);

scanf(“%d”,&n);

h=1.0/n;

f0=4.0;//初值,x=0.0时f(0.0)=4.0

s=0.0;

for(i=1;i

{s+=f0*h;

x=i*h;

f0=4/(1+x*x);

}

printf(“s=%f\n”,s);

}

实验二循环的嵌套

1、【程序如下:

#include

#include

voidmain()

{

longintsum,temp;

intn,i,j=1;;

printf(“Pleaseinputhowmanytermsyouwantthecomputertocalculate(1—9):

\n”);

scanf(“%d”,&n);

if(n<1||n>=10)

{printf(“Overflow!

\n”);

exit(0);

}

sum=0;

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

{sum+=j;

j=j*10+i+1;

}

printf(“sum=%ld\n”,sum);

}

2、if(x>=4)

3、【程序如下:

#include

voidmain()

{

intm,i,s;

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

{t=0;

for(n=1;n<=m/2;n++)

if(m%n==0)t+=n;

if(m==t)printf(“%6d”,m);

}

printf(“\n);

}

4、【程序如下:

#include

voidmain()

{

intx,y,z;

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

{

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

{

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

{

if(x+y+z==8)printf(“x=%d,y=%d,z=%d”,x,y,z);}

}

}

}

}

5、if(x/y==s)t+=10;

实验三continue语句和break

1、x=10y=6

2、a=12y=12a=16y=28

3、a=8

4、k=4

5、money>10000break

第6章

实验一一维数组

1、mid=(low+high)/2;

if(x==a[mid])

{

printf("%d",mid);

break;

}

elseif(x

elselow=mid+1;

2、for(i=0;i

for(j=0;j

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

{

temp=a[j];

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

a[j+1]=temp;

}

3、scanf("%d",&base);

for(i=0;n!

=0;i++)

{num[i]=n%base;

n=n/base;

}

printf("theresultis:

");

for(i--;i>=0;i--)

{if(num[i]>=0&&num[i]<=9)c='0'+num[i];

elsec='a'+num[i]-10;

printf("%c",c);

}

实验二二维数组

1、intcur_i=0,cur_j;

intcount,size=0,i,j;

while((size%2)==0)

{printf("\nentersquaresize(ODDnumber):

");

scanf("%d",&size);

}

cur_j=(size-1)/2;

for(count=1;count<=size*size;count++)

{magic[cur_i][cur_j]=count;

if((count%size)==0)

{cur_i++;continue;}

cur_i--;

cur_j++;

if(cur_i<0)cur_i+=size;

elseif(cur_j==size)cur_j-=size;

}

for(i=0;i

{printf("\n");

for(j=0;j

}

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

{a[i][0]=1;

a[i][i]=1;

}

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

for(j=1;j

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

3、inti,j,high=1,low=1,sh,sl;

printf("inputscore:

\n");

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

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

{scanf("%d",&score[i][j]);

while(score[i][j]>100||score[i][j]<0)

{

printf("输入成绩应在0~100之间,请重新输入:

\n");

scanf("%d",&score[i][j]);

}

}

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

{sum[i]=0;

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

sum[i]+=score[i][j];

aver[i]=sum[i]/6;

}

sh=sl=sum[1];

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

if(sum[i]>sh){sh=sum[i];high=i;}

elseif(sum[i]

printf("%d总分最高,\n%d总分最低\n",high,low);

printf("请输入学生学号:

");

scanf("%d",&i);

while((i<1)||(i>4)){printf("请重新输入:

\n");scanf("%d",&i);}

for(j=1;j<7;j++)printf("第%d次考试成绩为:

%d,\n",j,score[i][j]);

printf("平均成绩为:

%d\n",aver[i]);

printf("请输入考试次数:

");

scanf("%d",&j);

while((j<1)||(j>6)){printf("请重新输入:

\n");scanf("%d",&j);}

aver[0]=0;

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

{printf("学号:

%d,成绩:

%d\n",i,score[i][j]);

aver[0]+=score[i][j];}

aver[0]/=4;

printf("平均成绩:

%d\n",aver[0]);

第7章

实验二数组作为函数参数

1、

voidcount(charch[])

{

inti=0;

while(ch[i]!

='\0')

{

if(ch[i]>='a'&&ch[i]<='z'||ch[i]>='A'&&ch[i]<='Z')

alph++;

elseif(ch[i]>='0'&&ch[i]<='9')

digit++;

elseif(ch[i]=='')

space++;

else

others++;

i++;

}

return;

}

count(text);

实验三递归调用

1、

floataver(intn)

{

floataverage;

if(n==1)

average=a[0];

else

average=((n-1)*aver(n-1)+a[n-1])/n;

returnaverage;

}

ave=aver(10);

第8章

实验一指针和指针变量

1、p=px;px=py;py=p;

2、if(*p1>*p2){*m=*p1;*n=*p2;}

else{*m=*p2;*n=*p1;}

if(*m<*p3)*m=*p3;

elseif(*n>*p3)*n=*p3;

3、switch(c){

case'u':

*((unsigned*)p3)=*((unsigned*)p1);

*((unsigned*)p1)=*((unsigned*)p2);

*((unsigned*)p2)=*((unsigned*)p3);break;

case'i':

*((int*)p3)=*((int*)p1);

*((int*)p1)=*((int*)p2);

*((int*)p2)=*((int*)p3);break;

case'f':

*((float*)p3)=*((float*)p1);

*((float*)p1)=*((float*)p2);

*((float*)p2)=*((float*)p3);break;

case'd':

*((double*)p3)=*((double*)p1);

*((double*)p1)=*((double*)p2);

*((double*)p2)=*((double*)p3);break;

case'c':

*((char*)p3)=*((char*)p1);

*((char*)p1)=*((char*)p2);

*((char*)p2)=*((char*)p3);

}

实验二指针与数组

1、while(p

t=*p;

*p=*q;

*q=t;

p++;

q--;

}

2、score[i]=max=*(*a+i);

for(p=a+1;p

score[i]+=*(*p+i);

if(max<*(*p+i))

max=*(*p+i);

}

3、int*p,count=0,t;

while(count

t=*(a+n-1);

for(p=a+n-2;p>=a;p--)

*(p+1)=*p;

*a=t;

count++;

}

实验三指针数组与指向指针的指针

1、for(i=1;i<5;i++)

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

if(a[i][j]>*p[0])p[0]=&a[i][j];

else

for(m=4;m>=1;m--)

if(a[i][j]<*p[m]){

for(n=1;n

p[m]=&a[i][j];

break;

}

2、for(p=pa;p

for(i=0;i

for(j=0;j

if(*(*p+j)<*(*p+j+1)){

t=*(*p+j);

*(*p+j)=*(*p+j+1);

*(*p+j+1)=t;

}

实验四指针与函数

1、第一处:

switch(op){

case'+':

func=add;break;

case'-':

func=sub;break;

case'*':

func=mul;break;

case'/':

func=div;break;

default:

done=0;

}

第二处:

printf("%f%c%f=%f\n",op1,op,op2,(*func)(op1,op2));

2、第一处:

return(*func)(a,b);

第二处:

switch(op){

case'+':

result=compute(add,op1,op2);break;

case'-':

result=compute(sub,op1,op2);break;

case'*':

result=compute(mul,op1,op2);break;

case'/':

result=compute(div,op1,op2);break;

default:

done=0;

}

3、inti;

*p=0;

for(i=1;i

if(*(a+i)>*(a+*p))*p=i;

returna+*p;

第9章

实验一字符数组

1、for(j=0;j<80;j++){

scanf("%c",&a[i][j]);

if(a[i][j]>='A'&&a[i][j]<='Z')capital++;

elseif(a[i][j]>='a'&&a[i][j]<='z')lowercase++;

elseif(a[i][j]>='0'&&a[i][j]<='9')digital++;

elseif(a[i][j]=='')blank++;

elseothers++;

}

2、for(j=i+1;s[j]!

='\0';j++)s[j-1]=s[j];

while(i>0){

s[j-1]=s[0];

for(j=1;s[j]!

='\0';j++)s[j-1]=s[j];

i--;

}

s[j-1]='\0';

3、for(len=0;s[i][len]!

='\0';len++);

half=len/2;

for(j=0;j

for(k=j+1;k

if(s[i][j]

ch=s[i][j];

s[i][j]=s[i][k];

s[i][k]=ch;

}

if(len%2)half++;

for(j=half;j

for(k=j+1;k

if(s[i][j]>s[i][k]){

ch=s[i][j];

s[i][j]=s[i][k];

s[i][k]=ch;

}

实验二字符串指针变量

1、for(p=str;*p!

='\0';p++)

if(*p=='')word=0;

elseif(word==0){

word=1;

if(*p>='a'&&*p<='z')*p-=32;

}

2、charch=*s,*p=s;

if(ch!

='\0'){

for(;*(s+1)!

='\0';s++)*s+=*(s+1);

*s+=ch;

for(;p

}

3、intfind=0,num=0;

for(;*s!

='\0';s++)

if(*s>='0'&&*s<='9'){find=1;*p=*p*10+*s-48;}

elseif(find){find=0;p++;num++;}

if(find)num++;

returnnum;

实验三字符串处理函数

1、for(s=str;*s==''&&*s!

='\0';s++);

strcpy(str,s);

if(*s!

='\0'){

for(s=str+strlen(str)-1;*s=='';s--);

*(s+1)='\0';

}

2、for(p=str;p

for(q=p+1;q

if(strcmp(*p,*q)==1){

s=*p;

*p=*q;

*q=s;

}

第10章

实验一结构体

1、在VC中的运行结果(以下同)

Thesizeofintis4.

Thesizeofcharis1.

Thesizeoffloatis4.

ThesizeofstructStudentis40.

Thesizeofsis40.

2、

for(i=0;i

if(xuehao==stu[i].number)

{

l=i;

break;

}

if(l!

=-1)

printf("%ld%s%c%6.2f%6.2f%6.2f%6.2f\n",stu[l].number,stu[l].name,stu[l].sex,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[l].aver);

else

printf("Thesearchedstudentisnotexistent!

\n");

3、

#include

#defineN10

structBook

{

charname[40];

floatprice;

};

voidsort(structBookb[],intn);

voidmain()

{

structBookb[N];

inti;

printf("Pleaseinput%dbooks'informationasfollow:

\n",N);

printf("NamePrice\n");

for(i=0;i

{

printf("Pleaseinput%dthbook'sinformation:

\n",i+1);

scanf("%s%f",b[i].name,&b[i].price);

}

sort(b,N);

for(i=0;i

printf("%s%6.2f\n",b[i].name,b[i].price);

}

voidsort(structBookb[],intn)

{

structBookk;

inti,j;

for(i=0;i

for(j=0;j

if(b[j].price>b[j+1].price)

{k=b[j];b[j]=b[j+1];b[j+1]=k;}

}

实验二共用体

1、

Thesizeofintis4.

Thesizeofcharis1.

Thesizeoffloatis4.

ThesizeofunionU_valueis4.

Thesizeofu1is4.

Thevalueofu1.ivis100

Thevalueofu1.cvisd

Thevalueofu1.fvis0.000000

Thesizeofu2is4.

Thevalueofu2.ivis-858993599

Thevalueofu2.cvisA

Thevalueofu2.fvis-107373064.000000

Thesizeofu3is4.

Thevalueofu3.ivis1078523331

Thevalueofu3.cvis

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2