c语言实验答案.docx

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

c语言实验答案.docx

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

c语言实验答案.docx

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编制程序,接受用户输入的数值,输出以该值为半径的圆面积,

#include

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++)

{

if(max

max=a[i];

if(min>a[i])

min=a[i];

}

printf("max=%d,min=%d\n",max,min);

}

//7.3编程实现用一、二维数组分别输出杨辉三角

#include//用二维数组输出杨辉三角形

voidmain()

{

inta[10][10],i,j;

for(i=0;i<10;i++)//将杨辉三角形中值为1的数输入

{

a[i][i]=1;

a[i][0]=1;

}

for(i=2;i<10;i++)//从第3行第2列开始,计算2维数组中的值,外循环控制行数

for(j=1;j<=i-1;j++)//内循环控制列,结束条件根据规律正好是行数减1

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

for(i=0;i<10;i++)//输出2维数组

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

{

printf("%5d",a[i][j]);

if(i

{

printf("\n");

break;

}

}

}

/*

#include//用一维数组输出杨辉三角形

voidmain()

{

inta[10]={1},b[10]={1};

inti,j;

for(i=0;i<10;i++)//外层循环,控制输出行数,确定每行数是什么(也相当于列了),然后输出。

{

for(j=1;j<=i;j++)//确定每行的数组元素

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

for(j=1;j<=i;j++)//保存到数组b中做备份

b[j]=a[j];

for(j=0;j<=i;j++)//输出这些数组元素

printf("%5d",a[j]);

printf("\n");//回车

}

}

*/

//8.1编程实现将二维数组行列元素互换。

#include

voidmain()

{

inta[3][4],b[4][3];

inti,j;

for(i=0;i<3;i++)//对数组a赋值

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

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

for(i=0;i<3;i++)//得到数组b

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

b[j][i]=a[i][j];

for(i=0;i<4;i++)//输出数组b

{

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

printf("%4d",b[i][j]);

printf("\n");

}

}

//8.2编程实现求二维数组中最大元素值及其行号、列号。

#include

voidmain()

{

inta[3][4],max,hang,lie;

inti,j;

for(i=0;i<3;i++)//对数组a赋值

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

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

max=a[0][0];hang=0;lie=0;//赋初值

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

for(j=0

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

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

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

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