c实验题目实验15及答案Word文档格式.docx
- 文档编号:21906000
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:19
- 大小:23.78KB
c实验题目实验15及答案Word文档格式.docx
《c实验题目实验15及答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《c实验题目实验15及答案Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
2.任意输入一个三位整数,然后逆序输出。
如输入为123,则输出为321。
(1)编程,注意要有输入数据的提示语句
(2)用八进制的形式输出各位数字的ASCII码。
(3)输入取下列值时,分别运行此程序
键盘的输入
123
4567
1234567
#include<
>
intx,inversed,hundred,ten,indiv;
%d"
hundred=x/100;
ten=(x-hundred*100)/10;
indiv=x%10;
/*indiv=(x-hundred*100)-ten*10;
*/
inversed=indiv*100+ten*10+hundred;
theoriginalnumberis%d\n"
x);
theinversednumberis%d\n"
inversed);
theoctnumberis%0,%0,%0\n"
indiv+'
0'
ten+'
hundred+'
ten=((x-indiv)/10)%10;
hundred=(((x-indiv)/10-ten)/10)%10;
实验二选择结构的程序设计
1.编程计算下面的分段函数。
4x-8-1≤x<0
y=3x2+10x-10≤x<1
8x3-3x2+2x-11≤x<2
(1)事先编好程序和流程图。
要求用if语句结构实现,注意数据类型和输入提示语句。
main()
floatx,y;
printf("
inputx:
scanf("
%f"
if(x>
=-1&
&
x<
2)
{
0)
y=4*x-8;
elseif(x>
=0&
1)
y=3*x*x+10*x-1;
else
y=8*x*x*x-3*x*x+2*x-1;
y=%10.2f"
}
printf("
DATAERROR!
(2)将程序运行六遍,分别从键盘上输入-1,,0,,1,这六个数,记录下运行结果并核对结果的正确性。
调试说明
键盘输入-1
键盘输入
键盘输入0
键盘输入1
(3)再将程序运行二遍,分别从键盘上输入和2二个数,记录下运行结果并核对结果的正确性。
观察到的运行结果
程序的错误之处和调试说明
键盘输入2
④修改程序,使之能正确处理任何数据。
当输入数据大于等于2或小于-1时,通知用户“DataError”,程序结束。
键盘输入2
4.水果店有苹果,一级元/kg,二级元/kg,三级元/kg,四级kg,输入苹果的等级、数量以及顾客的付款数,显示出苹果的等级、数量、应付款数以及找给顾客的钱数。
(1)事先编好程序,分别用if语句和用switch语句结构实现,要求程序能正确处理任何数据。
当输入苹果的等级、数量以及顾客的付款数不合要求时,通知用户“DataError”,程序结束。
注意苹果等级、数量以及顾客付款数数据的类型和输入数据的提示语句。
(2)将程序运行六遍,分别从键盘上输入六组数,记录运行步骤、过程和结果,并核对结果的正确性。
预期结果
输入1,,20
输入2,,10
输入3,,11
输入4,,
输入5,3,7
输入2,,-10
main()
floatweight,money,paid;
intrank;
inputrank,weight,money:
\n"
&
rank);
inputweight:
weight);
inputmoney:
money);
switch(rank)
case1:
paid=*weight;
break;
case2:
case3:
case4:
default:
paid=0;
if(weight<
=0||money<
=0||paid<
=0||(money-paid)<
0)
else
therankis%d!
rank);
theweightis%10.1f!
weight);
paid%10.2fyuan"
paid);
thechangeis%10.2fyuan"
money-paid);
实验三循环结构的程序设计
1.编程序计算1!
+2!
+3!
+4!
+5!
(1)分别用单层循环和双层循环编写此程序,作出流程图。
单层循环
intsum=0,p=1;
intn,i;
pleaseinputn:
n);
nis%d\n"
n);
for(i=1;
i<
=n;
i++)
p=p*i;
sum=sum+p;
Theresultis%d:
sum);
双层循环:
intsum=0,p;
intn,i,j;
for(j=1,p=1;
j<
=i;
j++)
p=p*j;
sum=sum+p;
(2)分析两种编程的差别。
单层循环效率更高,计算量小。
(3)若计算
,运行程序观察程序结果是否正确,若有错误如何修改。
不正确,数据越界,将intsum=0,p=1;
改为longsum=0,p=1;
printf("
改为printf("
Theresultis%ld:
(4)若计算
改为unsignedlongsum=0,p=1;
2.编写程序并上机调试
电视大奖赛有20名评委给选手评分。
评分规则是:
去掉1个最高分,去掉1个最低分,其余18名评委的平均分选手的得分。
设计评分程序。
#defineNUM20
intsmin=0,smax=0,score;
floatsum=0;
pleaseinputplayer'
sscore:
score);
smax=smin=score;
NUM;
if(score>
smax)smax=score;
if(score<
smin)smin=score;
sum=sum+score;
sum=sum–smax–smin;
Theresultis%6.2f:
sum/(NUM-2));
实验四数组和指针应用的程序设计
1.定义一个有10个元素的一维数组count,从键盘上输入8个整数,将其按从大到小的顺序排列,并将排序后的数组输出。
(1)作出流程图。
(2)用数组的方法编写程序(排序算法可自己选择)
#defineN8
#include"
intcount[N+2],i,j,n;
printf("
input%dnumbers:
N);
=N;
i++)
scanf("
count[i]);
N;
for(j=i+1;
if(count[j]>
count[i])
n=count[i];
count[i]=count[j];
count[j]=n;
thesortednumbers:
%d"
count[i]);
for(j=1;
N-i+1;
if(count[j]<
count[j+1])
n=count[j];
count[j]=count[j+1];
count[j+1]=n;
(3)用指针的方法编写程序(排序算法可自己选择)
intcount[N+2],i,j,n,*p;
p=count;
p+i);
if(*(p+j)>
*(p+i))
n=*(p+i);
*(p+i)=*(p+j);
*(p+j)=n;
*(p+i));
if(*(p+j)<
*(p+j+1))
n=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=n;
=8;
2.输入2个字符串,将这两个字符串连接起来并输出,再将连接后的字符串反向。
(1)分别输出连接后的字符串和反向后的字符串,并求连接后的字符串长度。
(2)用字符数组的方法编写程序
#defineNUM100
charstr1[NUM],str2[NUM],str3[NUM]=;
inti,len;
inputstring1:
gets(str1);
inputstring2:
gets(str2);
strcat(str1,str2);
theconcatenationstrings:
%s\n"
str1);
len=strlen(str1);
theconcatenationstrings'
slen:
%d\n"
len);
for(i=0;
len;
str3[i]=str1[len-i-1];
str3[i]='
\0'
;
thereversestrings:
str3);
(3)用指针的方法编写程序
charstr1[NUM],str2[NUM],str3[NUM],*p1,*p2,*p3;
p1=str1;
p2=str2;
p3=str3;
gets(p1);
gets(p2);
strcat(p1,p2);
p1);
len=strlen(p1);
*(p3+i)=*(p1+len-i-1);
*(p3+i)='
p3);
实验五函数应用的程序设计
编写一函数,统计字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串并输出统计结果。
(1)作出流程图
(2)用值传送的方式实现函数调用,分别从键盘上输入三个不同字符串,并记录下运行的过程和结果。
intstat1(charc1)
if(c1>
='
a'
c1<
z'
||c1>
A'
Z'
)
return0;
elseif(c1=='
'
return1;
elseif(c1>
9'
return3;
return4;
charc;
inti,letters=0,space=0,digit=0,others=0;
pleaseinputsomecharacters\n"
while((c=getchar())!
\n'
switch(stat1(c))
case0:
letters++;
break;
space++;
digit++;
others++;
stat2:
char=%dspace=%ddigit=%dothers=%d\n"
letters,space,digit,others);
(3)用字符数组传送的方式实现函数调用,分别从键盘上输入三个不同字符串,并记录下运行的过程和结果。
#defineN100
intletters=0,space=0,digit=0,others=0;
voidstat2(charp2[N])
inti;
p2[i]!
if(p2[i]>
p2[i]<
||p2[i]>
elseif(p2[i]=='
elseif(p2[i]>
charstr[N];
gets(str);
stat2(str);
(4)用指针变量传送的方式实现函数调用,分别从键盘上输入三个不同字符串,并记录下运行的过程和结果。
voidstat3(char*p3)
for(;
*p3!
p3++)
if(*p3>
*p3<
||*p3>
elseif(*p3=='
elseif(*p3>
stat3(str);
stat3:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 题目 15 答案