c实验题目实验15及答案.docx

上传人:b****8 文档编号:8769817 上传时间:2023-02-01 格式:DOCX 页数:19 大小:23.78KB
下载 相关 举报
c实验题目实验15及答案.docx_第1页
第1页 / 共19页
c实验题目实验15及答案.docx_第2页
第2页 / 共19页
c实验题目实验15及答案.docx_第3页
第3页 / 共19页
c实验题目实验15及答案.docx_第4页
第4页 / 共19页
c实验题目实验15及答案.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

c实验题目实验15及答案.docx

《c实验题目实验15及答案.docx》由会员分享,可在线阅读,更多相关《c实验题目实验15及答案.docx(19页珍藏版)》请在冰豆网上搜索。

c实验题目实验15及答案.docx

c实验题目实验15及答案

实验一顺序结构的程序设计

1.输入x的值,根据下面的多项表达式求y的值:

y=

x5+

+2x-4

(1)编程,注意要有输入数据的提示语句。

#include""

main()

{

doublex,y;

printf("pleaseinputx:

\n");

scanf("%lf",&x);

y=4*x*x*x*x*x+12*x*x*x**x*x*x+2*x-4;

printf("y=%\n",y);

}

(2)x取下列值时,分别运行此程序

键盘输入(x=)

分析结果

运行结果

程序的错误之处

1

1

2

23

3

789

4

*10-2

5

2.任意输入一个三位整数,然后逆序输出。

如输入为123,则输出为321。

(1)编程,注意要有输入数据的提示语句

(2)用八进制的形式输出各位数字的ASCII码。

(3)输入取下列值时,分别运行此程序

键盘的输入

分析结果

运行结果

程序的错误之处

1

123

2

4567

3

1234567

#include<>

main()

{

intx,inversed,hundred,ten,indiv;

printf("pleaseinputx:

\n");

scanf("%d",&x);

hundred=x/100;

ten=(x-hundred*100)/10;

indiv=x%10;/*indiv=(x-hundred*100)-ten*10;*/

inversed=indiv*100+ten*10+hundred;

printf("theoriginalnumberis%d\n",x);

printf("theinversednumberis%d\n",inversed);

printf("theoctnumberis%0,%0,%0\n",indiv+'0',ten+'0',hundred+'0');

}

#include<>

main()

{

intx,inversed,hundred,ten,indiv;

printf("pleaseinputx:

\n");

scanf("%d",&x);

indiv=x%10;

ten=((x-indiv)/10)%10;

hundred=(((x-indiv)/10-ten)/10)%10;

inversed=indiv*100+ten*10+hundred;

printf("theoriginalnumberis%d\n",x);

printf("theinversednumberis%d\n",inversed);

printf("theoctnumberis%0,%0,%0\n",indiv+'0',ten+'0',hundred+'0');

}

实验二选择结构的程序设计

1.编程计算下面的分段函数。

4x-8-1≤x<0

y=3x2+10x-10≤x<1

8x3-3x2+2x-11≤x<2

(1)事先编好程序和流程图。

要求用if语句结构实现,注意数据类型和输入提示语句。

#include<>

main()

{

floatx,y;

printf("inputx:

\n");

scanf("%f",&x);

if(x>=-1&&x<2)

{

if(x>=-1&&x<0)

y=4*x-8;

elseif(x>=0&&x<1)

y=3*x*x+10*x-1;

else

y=8*x*x*x-3*x*x+2*x-1;

printf("y=%10.2f",y);

}

else

printf("DATAERROR!

");

}

(2)将程序运行六遍,分别从键盘上输入-1,,0,,1,这六个数,记录下运行结果并核对结果的正确性。

键盘的输入

分析结果

运行结果

调试说明

键盘输入-1

键盘输入

键盘输入0

键盘输入

键盘输入1

键盘输入

(3)再将程序运行二遍,分别从键盘上输入和2二个数,记录下运行结果并核对结果的正确性。

键盘的输入

观察到的运行结果

程序的错误之处和调试说明

键盘输入

键盘输入2

④修改程序,使之能正确处理任何数据。

当输入数据大于等于2或小于-1时,通知用户“DataError”,程序结束。

键盘的输入

运行结果

程序的错误之处和调试说明

键盘输入

键盘输入-1

键盘输入0

键盘输入1

键盘输入2

键盘输入

4.水果店有苹果,一级元/kg,二级元/kg,三级元/kg,四级kg,输入苹果的等级、数量以及顾客的付款数,显示出苹果的等级、数量、应付款数以及找给顾客的钱数。

(1)事先编好程序,分别用if语句和用switch语句结构实现,要求程序能正确处理任何数据。

当输入苹果的等级、数量以及顾客的付款数不合要求时,通知用户“DataError”,程序结束。

注意苹果等级、数量以及顾客付款数数据的类型和输入数据的提示语句。

(2)将程序运行六遍,分别从键盘上输入六组数,记录运行步骤、过程和结果,并核对结果的正确性。

键盘的输入

预期结果

运行结果

调试说明

输入1,,20

输入2,,10

输入3,,11

输入4,,

输入5,3,7

输入2,,-10

#include<>

main()

{

floatweight,money,paid;

intrank;

printf("inputrank,weight,money:

\n");

scanf("%d",&rank);

printf("inputweight:

\n");

scanf("%f",&weight);

printf("inputmoney:

\n");

scanf("%f",&money);

switch(rank)

{

case1:

paid=*weight;break;

case2:

paid=*weight;break;

case3:

paid=*weight;break;

case4:

paid=*weight;break;

default:

paid=0;

}

if(weight<=0||money<=0||paid<=0||(money-paid)<0)

printf("DATAERROR!

");

else

{

printf("therankis%d!

",rank);

printf("theweightis%10.1f!

",weight);

printf("paid%10.2fyuan",paid);

printf("thechangeis%10.2fyuan",money-paid);

}

}

实验三循环结构的程序设计

1.编程序计算1!

+2!

+3!

+4!

+5!

(1)分别用单层循环和双层循环编写此程序,作出流程图。

单层循环

#include<>

main()

{

intsum=0,p=1;

intn,i;

printf("pleaseinputn:

\n");

scanf("%d",&n);

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

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

{

p=p*i;

sum=sum+p;

}

printf("Theresultis%d:

\n",sum);

}

双层循环:

#include<>

main()

{

intsum=0,p;

intn,i,j;

printf("pleaseinputn:

\n");

scanf("%d",&n);

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

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

{

for(j=1,p=1;j<=i;j++)

{

p=p*j;

}

sum=sum+p;

}

printf("Theresultis%d:

\n",sum);

}

(2)分析两种编程的差别。

单层循环效率更高,计算量小。

(3)若计算

,运行程序观察程序结果是否正确,若有错误如何修改。

不正确,数据越界,将intsum=0,p=1;改为longsum=0,p=1;

printf("Theresultis%d:

\n",sum);改为printf("Theresultis%ld:

\n",sum);

(4)若计算

,运行程序观察程序结果是否正确,若有错误如何修改。

不正确,数据越界,将intsum=0,p=1;改为unsignedlongsum=0,p=1;

printf("Theresultis%d:

\n",sum);改为printf("Theresultis%ld:

\n",sum);

2.编写程序并上机调试

电视大奖赛有20名评委给选手评分。

评分规则是:

去掉1个最高分,去掉1个最低分,其余18名评委的平均分选手的得分。

设计评分程序。

#include<>

#defineNUM20

main()

{

intsmin=0,smax=0,score;

floatsum=0;

printf("pleaseinputplayer'sscore:

\n");

scanf("%d",&score);

smax=smin=score;

for(i=1;i

{

scanf("%d",&score);

if(score>smax)smax=score;

if(score

sum=sum+score;

}

sum=sum–smax–smin;

printf("Theresultis%6.2f:

\n",sum/(NUM-2));

}

 

实验四数组和指针应用的程序设计

1.定义一个有10个元素的一维数组count,从键盘上输入8个整数,将其按从大到小的顺序排列,并将排序后的数组输出。

(1)作出流程图。

(2)用数组的方法编写程序(排序算法可自己选择)

#defineN8

#include""

main()

{

intcount[N+2],i,j,n;

printf("input%dnumbers:

\n",N);

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

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

printf("\n");

for(i=1;i

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

if(count[j]>count[i])

{

n=count[i];

count[i]=count[j];

count[j]=n;

}

printf("thesortednumbers:

\n");

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

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

}

#defineN8

#include""

main()

{

intcount[N+2],i,j,n;

printf("input%dnumbers:

\n",N);

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

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

printf("\n");

for(i=1;i

for(j=1;j

if(count[j]

{

n=count[j];

count[j]=count[j+1];

count[j+1]=n;}

printf("thesortednumbers:

\n");

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

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

}

(3)用指针的方法编写程序(排序算法可自己选择)

#defineN8

#include""

main()

{

intcount[N+2],i,j,n,*p;

p=count;

printf("input%dnumbers:

\n",N);

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

scanf("%d",p+i);

printf("\n");

for(i=1;i

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

if(*(p+j)>*(p+i))

{

n=*(p+i);

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

*(p+j)=n;

}

printf("thesortednumbers:

\n");

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

printf("%d",*(p+i));

}

#defineN8

#include""

main()

{

intcount[N+2],i,j,n,*p;

p=count;

printf("input%dnumbers:

\n");

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

scanf("%d",p+i);

printf("\n");

for(i=1;i

for(j=1;j

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

{

n=*(p+j);

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

*(p+j+1)=n;

}

printf("thesortednumbers:

\n");

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

printf("%d",*(p+i));

}

2.输入2个字符串,将这两个字符串连接起来并输出,再将连接后的字符串反向。

(1)分别输出连接后的字符串和反向后的字符串,并求连接后的字符串长度。

(2)用字符数组的方法编写程序

#defineNUM100

#include""

#include""

main()

{

charstr1[NUM],str2[NUM],str3[NUM]=;

inti,len;

printf("inputstring1:

\n");

gets(str1);

printf("inputstring2:

\n");

gets(str2);

strcat(str1,str2);

printf("theconcatenationstrings:

%s\n",str1);

len=strlen(str1);

printf("theconcatenationstrings'slen:

%d\n",len);

for(i=0;i

str3[i]=str1[len-i-1];

str3[i]='\0';

printf("thereversestrings:

%s\n",str3);

}

(3)用指针的方法编写程序

#defineNUM100

#include""

main()

{

charstr1[NUM],str2[NUM],str3[NUM],*p1,*p2,*p3;

inti,len;

p1=str1;

p2=str2;

p3=str3;

printf("inputstring1:

\n");

gets(p1);

printf("inputstring2:

\n");

gets(p2);

strcat(p1,p2);

printf("theconcatenationstrings:

%s\n",p1);

len=strlen(p1);

printf("theconcatenationstrings'slen:

%d\n",len);

for(i=0;i

*(p3+i)=*(p1+len-i-1);

*(p3+i)='\0';

printf("thereversestrings:

%s\n",p3);

}

实验五函数应用的程序设计

编写一函数,统计字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串并输出统计结果。

(1)作出流程图

(2)用值传送的方式实现函数调用,分别从键盘上输入三个不同字符串,并记录下运行的过程和结果。

#include""

intstat1(charc1)

{

if(c1>='a'&&c1<='z'||c1>='A'&&c1<='Z')

return0;

elseif(c1=='')

return1;

elseif(c1>='0'&&c1<='9')

return3;

else

return4;

}

main()

{

charc;

inti,letters=0,space=0,digit=0,others=0;

printf("pleaseinputsomecharacters\n");

while((c=getchar())!

='\n')

{

switch(stat1(c))

{

case0:

letters++;break;

case1:

space++;break;

case2:

digit++;break;

default:

others++;

}

}

printf("stat2:

char=%dspace=%ddigit=%dothers=%d\n",

letters,space,digit,others);

}

(3)用字符数组传送的方式实现函数调用,分别从键盘上输入三个不同字符串,并记录下运行的过程和结果。

#defineN100

#include""

#include""

intletters=0,space=0,digit=0,others=0;

voidstat2(charp2[N])

{

inti;

for(i=0;p2[i]!

='\0';i++)

{

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

letters++;

elseif(p2[i]=='')

space++;

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

digit++;

else

others++;

}

}

main()

{

charstr[N];

printf("pleaseinputsomecharacters\n");

gets(str);

stat2(str);

printf("stat2:

char=%dspace=%ddigit=%dothers=%d\n",

letters,space,digit,others);

}

(4)用指针变量传送的方式实现函数调用,分别从键盘上输入三个不同字符串,并记录下运行的过程和结果。

#defineN100

#include""

#include""

intletters=0,space=0,digit=0,others=0;

voidstat3(char*p3)

{

for(;*p3!

='\0';p3++)

{

if(*p3>='a'&&*p3<='z'||*p3>='A'&&*p3<='Z')

letters++;

elseif(*p3=='')

space++;

elseif(*p3>='0'&&*p3<='9')

digit++;

else

others++;

}

}

main()

{

charstr[N];

printf("pleaseinputsomecharacters\n");

gets(str);

stat3(str);

printf("stat3:

char=%dspace=%ddigit=%dothers=%d\n",

letters,space,digit,others);

}

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

当前位置:首页 > 考试认证 > IT认证

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

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