C语言实验方案_第1页
C语言实验方案_第2页
C语言实验方案_第3页
C语言实验方案_第4页
C语言实验方案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言实验项目名称——实验L编程环境的认识

1、P4-例1.2;求两数之和:2、P894.8;设圆半径r=1.5,圆柱高h=3,求圆周长、

#include<stdio.h>圆面积、圆球表面积、圆球体积、圆柱体积。

voidmain(void)#include<stdio.h>

{voidmain()

intab,sum;

a=123;b=456;floath.r,i,s,sq,vq,vz;

sum=a+b;floatpi=3.1415926;

printf("Sumis%d\n",sum);printf("请输入圆半径r:");

}scanf("%f',&r);

prirM”请输入圆柱高h:");

2、P5-例1.3;求两数中较大者:scanf("%f',&h);

#include<stdio.h>l=2*pi*r;

voidmain(void)s=r*r*pi;

(sq=4*pi*r*r;

intniax(inlx,inty);vq=3.0/4.0*pi*r*r*r;

inta,b,c;vz=pi*r*r*h;

printf("请输入两个整数:");prirtf("\n圆周长为:1=%6.2f\ii",l);

scanf("%d,%d",&a,&b);prir.tf("圆面积为:s-%6.2hii",s);

c=max(a.b);printf("圆球表面积为:sq=%6.2f\n",sq);

printf("max=%d\n",c);prinf("圆球体积为:vq=%6.2f\n",vq);

)pri「1f("圆柱体积为:vz=%6.2f\n",vz);

intmax(intx,inty))

(

intz;3、P894.9;输入一个华氏温度,要求输出摄氏温度。

if(x>y)z=x;公式为C=5/9(F—32)

elsez=y;#include<stdio.h>

return(z);voidniain()

){

floatc,f;

实验项目名称——实验2:顺序结构prirUC请输入一个华氏温度:");

1、P87例4.12;求一元二次方程的根。a,b,c由键盘scanfr%r',&D;

2

输入,设b—4ac>0oc=(5.0/9.0)*(f-32);

#include<stdio.h>printf("摄氏温度为:%5.2f\n",c);

#include<math.h>

voidmain(void)

{实验项目名称一一实验3、选择结构

floata,b,c,disc,xl,x2,p,q;I、4个数的排序(降序);

printf("请输入a,b,c的值:");#include<stdio.h>

scanf("%f,%f,%f,,&a,&b,&c);voidmain(void)

disc=b*b~4*a*c;{

p=-b/(2*a);floata,b,c.d.t;

q=sqrt(disc)/(2*a);primf("请输入四个数个

xl=p+q;x2=p-q;

printf("x1=%5.21Anx2=%5.2f\n",x1,x2);if(a<b)

scanf("%c".&a):

t=a;if(a>=48&&a<=57)

a=b;printf("这是数字!\n”);

b=t;elseif(a>=65&&a<=90||a>=97&&a<=122)

)printf("这是字母!\n”);

if(a<c)else

(printf("这是特殊字符!\n”);

t=a;)

a=c;

c=t;3.任意输入10个数,求最大值,最小值.平均值;

)#include<stdio.h>

if(a<d)voidmain()

((

t=a;inti,j,m,a[10],max,min;

a=d;floatsum=0;

d=t;for(i=0;i<10;i++)

}{

if(b<c)printf。输入第%d个数:*i+1);

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

t=b;sum=sum+a|“:

b=c;)

c=t;min=a[0];

)max=a[0];

if(b<d)

(for(m=0;m<10;ni++)

t=b;{

b=d;max=max>a[m+l]?max:a[m+1];

d=t;}

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

if(c<d){

(min=min<a[j+l]?min:a[j+1];

t=c;)

c=d;prirtf("Max=%d\nMin=%d\nAvcragc=%0.2f\n'\niax,ini

d=t;n,sum/IO);

)I

printf(M%5.2f%5.2f%5.2f%5.2f\n”,a,b,c,d);

)4、输入20个数,将所有大于60的数据输出;

#includc<stdio.h>

2、任意输入一个字符,请判断是字母、数字还是特殊字voidmain()

符;{

#include<stdio.h>intaf20];

voidmain()inti,j;

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

chara;{

prinlf("请任意输入一个字符:");prinlf("请输入第%d个数:",i+1);

scanf("%d".&a[i]):

)

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

(

if(aUl>60)

printf("%d6、PI125.7;给你一个不多于5位的正整数,要求:

)①求出它是几位数:

printf("\n");②分别输入每一位数;

)③按逆序输出各位数字。

#include<stdio.h>

5、求一元二次方程AX2+BX+CR的根(实根或虚根),#include<math.h>

系数A、B、C由人工输入。voidmain(void)

#include<stdio.h>(

#inckide<math.h>longintnum;

voidmain()intindiv,ten,hundred,thousand,ten_(housand,place;

{printf("请输入一个整数(0-99999):");

floata,b,c,disc,x1,x2,rcalpart,imagpart;scanf("%ld",&num);

prinlf("请输入一元二次方程的系数a,b,c:");if(num>9999)

placc=5;

prin(f("Theequation");elseif(num>999)

if(fabs(a)<=le-6)place=4;

printf("isnotaquadratic\n");elseif(num>99)

elseplace=3;

|elseif(nuni>9)

disc=b*b~4*a*c;place=2;

if(fabs(disc)<=le-6)elseplace=I;

printf("hastwoequalprintf("位数=%<1\11"卬依€);

roots:%8.4f\n",-b/(2*a));printf("每位数字为:");

elseten_thousand=num/1(X)()0;

if(disc>le-6)thousand=(int)(num-ten_thousand*10000)/1000;

{hundrcd=(int)(nuni-tcn_thousand*100(X)-thousand*100

x1=(-b+sqrt(disc))/(2*a);0)/100;

x2=(-b-sqrt(disc))/(2*a);ten=(int)(num-ten_thousand*1OOOO-thousand*1000-hun

printf("hasdistinctrealrools:%8.4fdred*100)/10;

and%8.4(\n",xl,x2);indiv=(int)(num-ten」housand*10000-thousand*1000-h

)undred*IOO-ten*10);

elseswi:ch(place)

{{

realpart=-b/(2*a);case5:

iniagpart=sqrt(-disc)/(2*a);

prin(f("hascomplexrootsAn");pririif("%d,%d,%d,%d,%d",len_(housand,thousand,hun

drcd,tenjndiv);

prinlf("%8.4f+%8.4fi\n",realpart,imagpart);printf("\n反序数字为:");

printf("%8.4f-%8.4fi\n*\realpart,imagpart);prir.tf("%d%d%d%d%d\nn,indiv,ten.hundred,thousand,t

enthousand):

break;prir.tf("\n数列和sum=%ld\ii,,,sum);

case4:

printf(,,%d,%d,%d.%d",thousand,hundredJen,indiv);

prinlf(”\n反序数字为:”);2、输出一等比数列的前十项,并求和。(输入首项与公

比)

printf(',%d%d%d%d\n",indiv,tcn,hundred,thousand);#include<stdio.h>

break;voidmain()

case3:{

printf(',%d,%d,%d",hundred,ten.indiv);longinta,q,i,sum=0;

printf("\n反序数字为:”);loop:printf("请输入等比数列的首项a=");

printf(',%d%d%d\n",indiv,ten,hundred);scanfC'%ld".&a);

break;prir.tf("请输入等比数列的公比q=");

case2:scanf("%ld”,&q);

prin(f("%d,%d",ten.indiv);if(q==O)

prinlf("\n反序数字为:”);{

prinlf("%d%d\n",indiv,ten);printf("数据输入错误,等比数列的公比不能为0,

break;请重新输入\n");

case1:gotoloop;

printf("%d",indiv);)

prinlf(”\n反序数字为:");else

printf("%d\n"jndiv);(

break;prinlf("等比数列前十项为:");

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

(

a=a*q;

sum=sum+a/q;

实验项目名称一一实验4、循环结构prin(f("%ld",a/q);

1、输出一等差数列的前十项,并求和。(输入首项与公)

差)printf("\n数列和sum=%ld\n",sum);

#include<stdio.h>)

voidmain())

(

longinta,d.i,sum=0;3、P1296.1;输入两个正整数m和n,求其最大公倍

primfT请输入等差数列的首项a=");数和最小公约数。

scanf("%ldH,&a);#include<stdio.h>

printf("请输入等差数列的公差d=");voidmain()

scanf("%ld",&d);{

printf("等差数列前十项为:");intp,r,n,m,temp;

for(i=0;i<10;i++)printf("请输入第一个整数门;

(scanf("%d'\&m);

a=a+d;primf("请输入第二个整数巧;

sum二sum+a-d;scanf("%d'\&n);

printf("%ld\a-d);if(in<n)

temp=n;

n=in;6、假设我国2000年的人口数量为128000万,我国人口

m=temp;的平均绝对增长率为5%。,请计算20XX年我国的人

)口数量。

p=n*m;#include<stdio.h>

while(n!=O)voidmain(void)

((

r=m%n;floata=128000,b,c,i,d=l;

m=n;loop:printf("请输入一个你想要杳询的年份:");

n=r;scanf(M%f',&b);

}if(b<=2000)

primfT它们的最大公约数为:%d\n”,m);{

printf(“它们的最小公倍数为:%d\n",p/m);printf("数据输入有误,不能小于2000,请重新

输入W”);

gotoloop;

4、P1296.4;求和(1到20的阶乘))

#include<stdio.h>else

voidniciin(){

(c=b-2000;

floatb,c=l,i,s=0;for(i=0;i<=c;i++)

for(i=l;i<21;i++){

(d=d*1.005;

for(b=l;b<=i;b++)prin(f("%0.0f年的人口数量为%0.0f万

(\n",2000+i,a*d/1.005);

c=c*b:)

II

s=s+c;)

c=l;

)7、一个整数,它加上100后是一个完全平方数,再加上

printfC'%f\n'\s);168乂是一个完全平方数,请问该数是多少?

)#include<stdio.h>

#includc<math.h>

5、输出以下三种形式的九-九表(文件voidmain()

名:exam65.cpp)(选做题){

#include"stdio.h"longinti,x,y,z;

voidmain()printf("题目是:一个整数,它加上100后是一个完全

{平方数,再加\n上168又是一个完全平方数,请

inti,j;问该数是多少?\n”);

for(i=l;i<=9:i++)for(i=l;i<100000;i++)

{{

for(j=l;j<=9;j++)x=sqrt(i+100);

printf("%dy=sqrt(i+268);

printf("\n");if(x*x==i+100&&y*y==i+268j

printf("\n%ld\n,,,i);

#include<stdio.h>

voidmain()

{

inta[10],ij,k,l,t;

8、百钱买百鸡问题:鸡翁一,值钱五,鸡母一,值钱三,for(i=0;i<10;i++)

鸡雏三,值钱一,问百钱买百鸡,鸡公、鸡母、鸡雏{

几何,(公鸡5元/只、母鸡3元/只、小鸡3只/元)printf(”请输入第%d个整数:",i+l);

#includc<stdio.h>scanfC'%d",&a[i]);

voidmain()}

(for(j=0g<9y++)

intcocks,hens,chicks;for(k=0;k<9-j;k++)

for(cocks=0;cocks<50;cocks++){

for(hens=0;hens<50;hens++)if(a[k]>a[k+l])

|{

chicks=100-cocks-hcns;t=a[k];

if(3*cocks+2*hens+chicks/3.0==100)a[k]=a[k+l];

alk+l]=t;

prin(f("\ncocks=%d,hens=%d,chicks=%d\n",cocks.hens)

,chicks);)

)prir.tf("\n由小到大为:“);

printf("\n");for(l=0;I<10;l++)

)printf("%d",a[l]);

prirtf(”\n");

9、爱因斯坦台阶问题:有人走一台阶,若以每步走两级

则最后剩一级:若以每步走三级则最后剩两级;若以

每步走四级则最后剩三级;若以每步走五级则最后剩2、先用数组保存15个整数,然后任意输入一个数,要

四级;若以每步走六级则最后剩五级;若以每步走七求指出该数在数组中的具体位置,若该数不在数组

级则刚好不剩。问台阶至少有几阶?(义件中,则输出“无此数工(查找功能)

名:exam69.cpp)#include<stdio.h>

#inckide<stdio.h>voidmain()

voidmain()(

{inta[15],i,j,k,sum=0;

longinti;for(i=0;i<!5;i++)

for(i=0;i<l0000;i++){

{printf("请输入第%d个整数:",i+1);

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

if(i%2==1&&i%3==2&&i%4==3&&i%5==4&&i%6=}

=5&&i%7==0)prirtfCAn");

break;prii:tf("请输入,个你要查找的整数)

)scanfC'%d",&j);

primf("台阶至少有%ld阶!\n",i);for(k=0;k<15;k++)

)|

if(a[k]==j)

实验项目名称——实验5:数组{

1、输入10个整数,排序(升序或降序)输出。printf("%d是数据库中的第%d个数

\n"J.k+l);

SU1T1++;2、给他年、月、日,计算该日是该年的第几天

#include<stdio.h>

intleap(inty)

if(sum==O){

primff数据库中无此数\n");relurn(y%400==0)||(y%4==0&&y%l00!=0)?1:0;

printf("\n");)

intlegaKinty,inlm,inld)

(

实验项目名称——造6;函数intlimit=31;

1、验证歌德巴赫猜想(要求写出判别素数的函数)if(d<l||m<l||m>12)

#inckide<stdio.h>return0;

#include<math.h>switch(m)

charprime(intk)(

(case4:

charresult='y';case6:

intn,i;case9:

n=(int)sqrt(k);case11:

for(i=2;i<=n;i++)limit—;

()

if(k%i==O)if(m==2)

(limit=leap(y)==l?29:28;

resull='n';retum(d>Iimit)?O:l;

break;)

Ivoidmain(void)

)(

returnresult;inty,m,d,i,sum=0;

}intmonth[l2]={0,31,28,31,30,31,30,31,31,30,31,30);

voidmain(void)prirUC请输入一个年份数据,如2007-5-15,请输入:

{");

intn,a;loop:scanf("%d-%d-%d",&y,&m,&d);

loop:prinlf("请输入大于6的偶数,n="):if(legal(y,m,d)==l)

scanf("%d",&n);

if(n<6||n%2!=0)if(leap(y)==l)

month[2]++;

prime数据输入错误,请重新输入\n)fbr(i=l;i<m;i++)

gotoloop;sum+=month[i];

)sum+=d;

elseprintf("这是%(1年的第%d天\n",y,sum);

(I

for(a=3;a<n/2;a+=2)else

if(priinc(a)=='y'&&primc(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论