c语言实验答案.docx
- 文档编号:23446418
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:43
- 大小:27.29KB
c语言实验答案.docx
《c语言实验答案.docx》由会员分享,可在线阅读,更多相关《c语言实验答案.docx(43页珍藏版)》请在冰豆网上搜索。
c语言实验答案
//1.1编写一程序,在屏幕上输出如下内容:
//X|X|X
//---+---+---
//||
//---+---+---
//0|0|0
#include
voidmain()
{
printf("X|X|X\n");//注意转义字符\n的用法
printf("---+---+---\n");
printf("||\n");
printf("---+---+---\n");
printf("0|0|0\n");
}
//1.2输出"Helloworld!
"语句
#include
voidmain()
{
printf("Helloworld!
\n");
}
//2.1编写一程序,接受用户输入的两个整数,并计算它们的和、差、积、商,程序运行结果应如下所示。
//注意,尖括号部分表示用户输入数据或要被替换的输出内容,尖括号本身并不需要输入或输出。
//多使用几组整数尝试一下,你发现了什么?
//Theprogramgetstwointegers,andcomputestheirsum,difference,productandquotient.
//Thefirstnumber:
<第一个整数在此输入>
//Thesecondnumber:
<第二个整数在此输入>
//Resultsasfollows:
//<第一个整数>+<第二个整数>=<和>
//<第一个整数>-<第二个整数>=<差>
//<第一个整数>*<第二个整数>=<积>
//<第一个整数>/<第二个整数>=<商>
#include
voidmain()
{
inta,b;
printf("Theprogramgetstwointegers,andcomputestheirsum,difference,productandquotient.\n");
printf("Thefirstnumber:
");
scanf("%d",&a);
printf("Thesecondnumber");
scanf("%d",&b);
printf("Resultsasfollows:
\n");
printf("%d+%d=%d\n",a,b,a+b);
printf("%d-%d=%d\n",a,b,a-b);
printf("%d*%d=%d\n",a,b,a*b);
printf("%d+%d=%f\n",a,b,1.0*a/b);//做除法时要注意,除得的结果是实数
}
//2.2输入半径r的值,求出圆周长,圆面积
#include
#definePI3.14
voidmain()
{
intr;
floatzhouchang,mianji;
printf("pleaseinputr:
");
scanf("%d",&r);
zhouchang=2*PI*r;
mianji=2*PI*r*r;
printf("zhouchang=%f\n",zhouchang);
printf("mianji=%f\n",mianji);
}
//3.1如何实现下述输出要求?
//A.输出整数1234,输出共占8位,数据左对齐。
//B.输出整数1234,输出共占10位,数据右对齐。
//C.输出十六进制整数0xFFDE3C02,输出共占8位,数据左对齐。
//D.输出十六进制整数0xFFDE3C,输出共占8位,数据右对齐,前补0。
//E.输出浮点数10.36,输出共占6位,数据右对齐。
//F.输出浮点数123.4567890,输出共占12位,精度6位,数据右对齐。
//G.输出浮点数123.4567890,精度3位,数据左对齐。
#include
#definePI3.14
voidmain()
{
printf("%-8d\n",1234);
printf("%10d\n",1234);
printf("%-8X\n",0xFFDE3C02);
printf("00%X\n",0xFFDE3C);
printf("%6.2f\n",10.36);
printf("%12.6f\n",123.4567890);
printf("%-.3f\n",123.4567890);
}
//3.2编制程序,接受用户输入的数值,输出以该值为半径的圆面积,
//以该值为半径的球体表面积与体积,pi取值3.1415926536,结果保留10位有效数字。
#include
#definePI3.1415926536
voidmain()
{
floatr,yuan,qiu,tiji;//分别为半径,圆面积,球面积,球体积
printf("pleaseinputr:
");
scanf("%f",&r);
yuan=PI*r*r;
qiu=4*PI*r*r;
tiji=4.0/3*PI*r*r*r;
printf("yuan=%f\nqiu=%f\ntiji=%f\n",yuan,qiu,tiji);
}
//4.1给出一个百分制成绩,要求输出成绩等级'A','B','C','D','E'。
//90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'。
//分别用if和switch语句实现。
#include
voidmain()
{
intscore;
printf("pleaseinputscore:
");
scanf("%d",&score);
switch(score/10)
{
case10:
case9:
printf("A\n");break;
case8:
printf("B\n");break;
case7:
printf("C\n");break;
case6:
printf("D\n");break;
default:
printf("E\n");
}
}
/*以下为if结构
#include
voidmain()
{
intscore;
printf("pleaseinputscore:
");
scanf("%d",&score);
if(score>=90)
printf("A\n");
elseif(score>=80)
printf("B\n");
elseif(score>=70)
printf("C\n");
elseif(score>=60)
printf("D\n");
else
printf("E\n");
}*/
//5.1使用循环结构打印下述图形,打印行数n由用户输入。
图中每行事实上包括两部分,中间间隔空格字符数m也由用户输入。
//**********
//**********
//**********
//**********
//**********
#include
voidmain()
{
intn;//行数
inti,j;//i为行的循环变量,j是普通的循环变量
printf("pleasen:
");
scanf("%d",&n);
for(i=1;i<=n;i++)//外层循环i控制行数
{
for(j=1;j<=n-i;j++)
printf("");
for(j=1;j<=2*i-1;j++)//输出星号
printf("*");
for(j=1;j<=10;j++)//输出中间的空格
printf("");
for(j=2*(n-i+1)-1;j>=1;j--)//输出星号
printf("*");
printf("\n");
}
}
//5.2编制程序,按照下述格式打印九九乘法表。
//Nine-by-nineMultiplicationTable
//----------------------------------------------------------------------
//123456789
//----------------------------------------------------------------------
//11
//224
//3369
//4481216
//5510152025
//661218243036
//77142128354249
//8816243240485664
//991827364554637281
//----------------------------------------------------------------------
#include
voidmain()
{
inti,j;
printf("Nine-by-nineMultiplicationTable\n");
printf("------------------------------------------------\n");
printf("\n");
for(i=1;i<9;i++)
printf("%4d",i);
printf("\n------------------------------------------------\n");
for(i=1;i<=9;i++)//此双循环结构为本题核心
{printf("%d",i);
for(j=1;j<=i;j++)
printf("%4d",i*j);
printf("\n");
}
printf("------------------------------------------------\n");
}
//5.3存在自然数,其所有小于自身的因子之和等于该数,这样的数称为完数。
//设计算法,判断某个给定的自然数n是否为完数,要求具有容错处理功能。
#include
voidmain()
{
intn;
intsum=0;//sum保存自然数n的因子之和
inti;
printf("pleaseinputn:
");
scanf("%d",&n);
for(i=1;i if(n%i==0) sum+=i; if(n==sum)//注意判断相等要用“==”运算符,而不是“=” printf("yes\n"); else printf("no\n"); } //6.1按照下述格式打印2009年5月日历: //Calander2009-5 //------------------------------------------------------ //SuMoTuWeThFrSa //------------------------------------------------------ //12 //3456789 //10111213141516 //17181920212223 //24252627282930 //31 //------------------------------------------------------ #include voidmain() { inti; printf("Calander2009-5\n"); printf("-----------------------------------------\n"); printf("SuMoTuWeThFrSa\n"); printf("-----------------------------------------\n"); for(i=0;i<5;i++) printf(""); for(i=1;i<=31;i++) { printf("%4d",i); if(i%7==2) printf("\n"); } printf("\n-----------------------------------------\n"); } //6.2打印所有100至999之间的水仙花数。 所谓水仙花数是指满足其各位数字立方和为该数字本身的整数。 #include voidmain() { inti,j,k,m;//i,j,k分别表示百位、十位、个位数字 for(m=100;m<1000;m++) { i=m/100; j=(m-i*100)/10; k=(m-i*100-j*10)%10; if(m==i*i*i+j*j*j+k*k*k) printf("%d\n",m); } } //6.3接受用户输入的正整数n,计算f(n)=1+1/2! +1/3! +...+1/n! 的值。 #include voidmain() { intn,p=1,i; floatsum=0; printf("pleaseinputn: "); scanf("%d",&n); for(i=1;i<=n;i++) { p=p*i; sum+=1.0/p; } printf("sum=%f\n",sum); } //6.4接受用户从键盘输入的年份值与月份值,打印2009年以后(含)任意月份的日历,2009年前的拒绝打印。 #include voidmain() { inti;//循环变量 intj,day;//j表示周一的位置,day表示月的天数 intyear,month,run;//输入的年,月份,run为闰年的标识 longx=0,x1=0,x2=0;//输入的年月之前共有多少天,x为总天数,x1是之前年天数,x2是当年前面月天数 printf("Pleaseinputyear: ");scanf("%d",&year);//输入年份 printf("Pleaseinputmonth: ");scanf("%d",&month);//输入月份 /////////////////////////////////////// ///////////求得输入的年月之前有多少天——x=x1+x2,x1是之前年天数,x2是当年前面月天数 /////////////////////////////////////// for(i=2009;i { if((i%4==0&&i%100! =0)||(i%400==0))//如果i年是闰年 x1=x1+366; else x1=x1+365; } if((year%4==0&&year%100! =0)||(year%400==0)) run=1; else run=0; for(i=1;i { if(i==4||i==6||i==9||i==11) x2=x2+30; else { if(i! =2) x2=x2+31; else { if(i==2&&run==1)//2月份并且是闰年 x2=x2+29; else x2=x2+28; } } } x=x1+x2; ///////////////////////////////////////////////////////// ////////////求得输入的年月之前有多少天——x,然后下面的事可操作 ///////////////////////////////////////////////////////// printf("-----------------------------\n"); printf("SuMoTuWeThFrSa\n"); printf("-----------------------------\n"); //////////////////////////////////////////确定星期一是第几个位置,用前面的天数余7,然后对应位置,这里假定2009年1月1日是星期4,如果不是switch规则也要更改 switch((x+1)%7) {case0: j=4;break; case1: j=5;break; case2: j=6;break; case3: j=7;break; case4: j=1;break; case5: j=2;break; case6: j=3;break; } ////////////////////////////////////////定输入的月份有多少天 if(month==4||month==6||month==9||month==11) day=30; else {if(month! =2) day=31; else {if(month==2&&run==1)//2月份并且是闰年 day=29; else day=28; } } //////////////////////////////////////////////////确定j和day后,开始输出 for(i=1;i printf("");//每个位置是4个空格 for(i=1;i<=day;i++) {printf("%4d",i); if((i-(7-j+1))%7==0) printf("\n"); } printf("\n"); } //7.1编程实现用数组打印Fibonacci数列的前20项。 #include voidmain() { longa[30],i; a[0]=a[1]=0; a[2]=1; for(i=3;i<21;i++) a[i]=a[i-1]+a[i-2]+a[i-3]; for(i=0;i<20;i++) { if(i! =0&&i%5==0) printf("\n"); printf("%d\t",a[i]); } } //7.2编程实现从键盘输入的一组数中找出其中最大值和最小值。 #include voidmain() { inta[10],max,min,i; for(i=0;i<10;i++) { scanf("%d",&a[i]); } max=min=a[0];//maxmin赋初值 for(i=0;i<=9;i++) {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 答案