实验10C语言运行环境.docx

上传人:b****5 文档编号:12123515 上传时间:2023-04-17 格式:DOCX 页数:28 大小:30.57KB
下载 相关 举报
实验10C语言运行环境.docx_第1页
第1页 / 共28页
实验10C语言运行环境.docx_第2页
第2页 / 共28页
实验10C语言运行环境.docx_第3页
第3页 / 共28页
实验10C语言运行环境.docx_第4页
第4页 / 共28页
实验10C语言运行环境.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

实验10C语言运行环境.docx

《实验10C语言运行环境.docx》由会员分享,可在线阅读,更多相关《实验10C语言运行环境.docx(28页珍藏版)》请在冰豆网上搜索。

实验10C语言运行环境.docx

实验10C语言运行环境

实验1---0C语言运行环境

演示程序2:

#include

intmain()

{

inta,b,sum;

a=123;

b=456;

sum=a+b;

printf("sumis%d\n",sum);

return0;

}

演示程序3:

#include

intmax(intx,inty)

{intz;

if(x>y)z=x;elsez=y;

return(z);

}

intmain()

{inta,b,c;

scanf("%d,%d",&a,&b);

c=max(a,b);

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

return0;

}

程序4:

求整数10、20和35的平均值。

演示程序4:

#include

intmain()

{

inta,b,c,sum;

doubleaverage;

a=10;b=20;c=35;

sum=a+b+c;

average=sum/3.0;

printf("average=%f\n",average);

return0;

}

1.输入下面的程序:

#include

voidmain()

{

charc1,c2;

c1='a';

c2=‘b’;

printf(“%c%c\n”,c1,c2);

}

(1)运行此程序;

(2)在程序的最后增加语句“printf(“%d%d\n”,c1,c2);”再运行,并分析结果;

(3)将程序的第4行“charc1,c2;”改为“intc1,c2;”后再运行,并分析结果;

(4)将程序的第5、6行改为:

c1=a;/*不用单撇号*/

c2=b;

再运行,并分析结果;

运行出现一个错误。

因为a,b是常量字符,将它赋值给一个变量字符,不能运行。

(5)再将程序的第5、6行改为:

c1=”a”;/*用双撇号*/

c2=”b”;

再运行,并分析结果;

(6)再将程序的第5、6行改为:

c1=300;/*用大于255的整数*/

c2=400;

再运行,并分析结果。

2.输入以下程序:

#include

voidmain()

{

charc1=‘a’,c2=‘b’,c3=‘c’,c4=‘\101’,c5=‘\116’;

printf(“a%cb%c\tc%c\tabc\n”,c1,c2,c3);

printf(“\t\b%c%c”,c4,c5);

}

先用人工分析程序,写出应得结果,再与运行结果比较。

应输出:

aabbccabcAN

3.输入并运行下面的程序

#include

voidmain()

{

inta,b;

unsignedc,d;

longe,f;

a=100;

b=-100;

e=50000;

f=32767;

c=a;

d=b;

printf(“%d,%d\n”,a,b);

printf(“%u,%u\n”,a,b);

printf(“%u,%u\n”,c,b);

c=a=e;

d=b=f;

printf(“%d,%d\n”,a,b);

printf(“%u,%u\n”,c,d);

}

请对照程序和运行结果分析:

(1)将一个负整数赋给一个无符号的变量,会得到什么结果;

原样输出。

(2)将一个大于32767的长整数赋给整型变量,会得到什么结果;

原样输出。

(3)将一个长整型数赋给无符号变量,会得到什么结果(分别考虑该长整数的值大于或等于65535以及小于65535的情况)。

大于或等于65535时:

原样输出;小于65535时:

原样输出。

同学们可以改变程序中各变量的值,以便比较。

例如:

a=65580,b=-40000,e=65535,f=65580。

4.输入以下程序:

#include

voidmain()

{

inti,j,m,n;

i=8;

j=10;

m=++i;

n=j++;

printf(“%d,%d,%d,%d\n”,i,j,m,n);

}

(1)运行程序,分析变量:

i、j、m、n的值

(2)将第7、8行改为:

m=i++;

n=++j;

再运行并分析结果;

(3)将程序改为:

#include

voidmain()

{

inti,j;

i=8;

j=10;

printf(“%d,%d\n”,i++,j++);

}

运行并分析结果;

(4)在(3)的基础上,将printf语句改为:

printf(“%d,%d”,++i,++j);

运行并分析结果;

(5)再将printf语句改为:

printf(“%d,%d,%d,%d”,i,j,i++,j++);

运行并分析结果;

(6)将程序改为:

#include

voidmain()

{

inti,j,m=0,n=0;

i=8;

j=10;

m+=i++;n-=--j;

printf(“i=%d,j=%d,m=%d,n=%d\n”,i,j,m,n);

}

最后,对这次实验作一个简要的总结。

1.阅读下面的程序,说明其功能,然后运行并观察分析结果。

程序一:

#include

voidmain()

{

intx,y;

printf(“Enterintegerxandy:

\n”);

scanf(“%d%d”,&x,&y);

printf(“x=%d,y=%d\n”,x,y);

if(x>y)printf(“x=%d\n”,x);

if(y>x)printf(“y=%d\n”,y);

if(x==y)printf(“x=y=%d\n”,x);

}

功能:

判断两个数的大小,然后分别输出相应的值;

分析:

无论x>y或y>x,都分别输出x和y的值,若x==y,则输出x。

程序二:

#include

voidmain()

{

inta,b,c,t;

printf(“inputintegera,b,c:

\n”);

scanf(“%d%d%d”,&a,&b,&c);

printf(“a=%d,b=%d,c=%d\n”,a,b,c);

if(a>b)

{t=a;a=b;b=t;}

if(a>c)

{t=a;a=c;c=t;}

if(b>c)

{t=b;b=c;c=t;}

printf(“%d,%d;%d\n”,a,b,c);

}

功能:

将a,b,c按小到大的顺序排列。

分析:

若if句成立,则运行后面花括号的结果。

程序三:

#include

voidmain()

{

intn;

printf(“Enterintegern:

”);

scanf(“%d”,&n);

if(n%2)

printf(“n=%disodd.\n”,n);

else

printf(“n=%diseven.\n”,n);

}

功能:

判断输出n的值为奇数还是偶数。

分析:

若输入n的值为奇数,则输出“n=11isodd”,若输入n的值为偶数,则输出“n=12iseven”。

程序四:

#include

voidmain()

{

intn;

printf(“Enterintegern:

”);

scanf(“%d”,&n);

printf(“n=%d\n”,n);

if(n>=90)

printf(“A\n”);

elseif(n>=80)

printf(“B\n”);

elseif(n>=70)

printf(“C\n”);

elseif(n>=60)

printf(“D\n”);

else

printf(“E\n”);

}

功能:

通过判断输入的成绩,输出相应的等级。

分析:

若n>=90,为A等,若n>=80,为B等,若n>=70,为C等,若n>=60,为D等,其余为E等。

程序五:

#include

voidmain()

{

inta=3,b=4,c=5,d=0;

if(a>b)

d=a;

else

if(c>b)

d=c;

else

d=b;

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

}

功能:

判断最大值。

分析:

判断定义的a,b,c,d,找出最大值,然后附值给d,然后输出d。

程序六:

#include

voidmain()

{

intc;

scanf("%d",&c);

if(‘0’<=c&&c<=‘9’)/*条件表达式*/

{

c=c-‘0’;

printf("c=%d\n",c);

}

else

printf("dataerror!

\n");

}

功能:

根据条件,得出结果。

分析:

若满足条件,则运行c=c-‘0’。

并输出相应的值。

2.对于如下函数:

编写程序,用scanf函数输入x的值,求y值。

程序:

#include

intmain()

{intx,y;

printf("输入x:

");

scanf("%d",&x);

if(x<1)

{y=x;

printf("x=%3d,y=x=%d\n",x,y);

}

else

if(x<10)

{y=2*x-1;

printf("x=%d,y=2*x-1=%d\n",x,y);

}

else

{y=3*x-11;

printf("x=%d,y=3*x-11=%d\n",x,y);

}

return0;

}

运行程序,输入x的值(分别为x<1、1≤x<10、x≥10三种情况,如0.5、8、15),检查输出的y值是否正确。

x=0.5

不正确,因为x,y已经被定义为整型。

x=8

正确

x=15

正确

3.将第1题的程序四中的if语句改用switch语句实现,写出程序并运行。

程序:

#include

intmain()

{floatscore;

chargrade;

printf("请输入学生成绩:

");

scanf("%f",&score);

while(score>100||score<0)

{printf("\n输入有误,请重输");

scanf("%f",&score);

}

switch((int)(score/10))

{case10:

case9:

grade='A';break;

case8:

grade='B';break;

case7:

grade='C';break;

case6:

grade='D';break;

case5:

case4:

case3:

case2:

case1:

case0:

grade='E';

}

printf("成绩是%5.1f,相应的等级是%c\n",score,grade);

return0;

}

5.编写程序,用scanf函数输入一个年份year,计算这一年2月份的天数days,然后用输出函数printf输出days。

实验步骤与要求:

(1)有变量定义为整型。

(2)输入前要加提示语句。

(3)输出结果前要有必要的文字说明。

说明:

(1)闰年的条件是:

year能被4整除但不能被100整除,或者year能被400整除。

(2)如果year是闰年,则2月份的天数为29天,不是闰年则为28天。

最后,对这次实验作一个简要的总结。

程序:

#include

intmain()

{

intyear;

intr;

printf("请输入年份:

");

scanf("%d",&year);

r=year%400==0||year%100!

=0&&year%4==0;

printf("这一年二月有%d\n天",28+r);

return1;

}

总结:

平常多看书,才做得快。

1.编写输入m和n(其中,m

程序:

#include

intmain()

{inti,s=0,m,n;

scanf("%d,%d",&m,&n);

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

s=s+i;

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

return0;

}

结果:

2.下面程序的功能是计算n!

#include

intmain()

{

inti,n,s=1;

printf("Pleaseentern:

");

scanf("%d",&n);

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

s=s*i;

printf("%d!

=%d\n",n,s);return0;

}

首次运行先输入n=4,输出结果为4!

=24,这时是正确的。

为了检验程序的正确性,再输入n=10,输出为10!

=24320,这显然是错误的。

为了找到程序的错误,可以通过单步执行来观察变量的变化。

分析产生这种现象的原因,把程序改正过来,再用n=20进行实验,分析所得到的结果。

程序:

#include

intmain()

{

inti,n;

doubles=1;

printf("Pleaseentern:

");

scanf("%d",&n);

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

s=s*i;

printf("%d!

=%f\n",n,s);return0;

}

结果:

3.下列程序用于输出fibnocci数列的前20项,每行输出5个。

请补充完整后运行。

/*fibnocci数列的前两项均为1,以后各项等于其前两项之和。

*/

#include

intmain()

{

inti,f1,f2,f3,n;

f1=1;f2=1;

printf("\n%5d%5d",f1,f2);

n=2;

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

{

if(n%d==0)printf("\n");

f3=f2+f1;

printf("%5d",f3);

n++;

f1=f2;

f2=f3;

}return0;

}

4.编写程序,输出100以内能被7整除的数。

提示:

对7~100的每一个数进行测试,如该数不能被7整除,即模运算不为0,则由continue语句转去下一次循环。

只有模运算为0时,才能执行后面的printf语句,输出能被7整除的数。

程序:

#include

intmain()

{inti,n;

scanf("%d",&n);

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

if(i%7==0)

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

}

5.编写程序打印图形

1

121

12321

1234321

123454321

1234321

12321

121

1

 

提示:

分别使用递增循环和递减循环完成,先把图形分成两部分来看待,前五行一个规律,后四行一个规律。

每一部分利用双重for循环,外循环控制行,内循环控制列。

内循环又有两个并列的for循环,一个控制空格的输出,一个控制数据的输出。

程序:

#include

intmain()

{

inti,j;

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

{

for(j=1;j<=5-i;j++)

printf("");

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

printf("%2d",j);

for(j=i-1;j>=1;j--)

printf("%2d",j);

printf("\n");

}

for(i=4;i>=1;i--)

{

for(j=1;j<=5-i;j++)

printf("");

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

printf("%2d",j);

for(j=i-1;j>=1;j--)

printf("%2d",j);

printf("\n");

}

return0;

}

结果:

用公式求PI的近似值,直到发

现某一项的绝对值小于10-6为止(该项不累计加)。

程序:

#include

#include"math.h"

intmain()

{

intsign=1;

doublepi=0.0,n=1.0,term=1.0;

while(fabs(term)>=1e-6)

{

pi=pi+term;

n=n+2;

sign=-sign;

term=sign/n;

}

pi=pi*4;

printf("pi=%10.8f\n",pi);

return0;

}

结果:

1.调试下列程序,使之具有如下功能:

输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。

#include

intmain()

{

inti,n,a[10],av;

for(i=0;i

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

for(i=0;i

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

if(i%3==0)

printf("\n");

}

for(i=0;i!

=n;i++)

av+=a[i];

printf("av=%f\n",av);

return0;

}

上面给出的程序是完全可以运行的,但是运行结果是完全错误的。

调试时请注意变量的初值问题、输出格式问题等。

程序:

#include

intmain()

{

inti,n,a[10];

floatav,sum=0;

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

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

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

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

if((i+1)%3==0)

printf("\n");

}

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

sum=sum+a[i];

av=sum/10;

printf("\nav=%5f\n",av);

return0;

}

结果:

6.编写程序,任意输入10个整数的数列,先将整数按照从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。

程序:

#include

voidmain()

{

inti,j,m,n,a[10];

printf("请输入10个整数:

\n");

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

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

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

{

m=i;

for(j=m+1;j<10;j++)

if(a[m]

m=j;

n=a[i];

a[i]=a[m];

a[m]=n;

}

printf("从大到小排好顺序输出:

\n");

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

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

printf("\n");

}

7.输入两个字符串,找出其中较大者。

程序:

#include

#include

intmain()

{

charstr[2][10];

charstring[10];

inti;

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

gets(str[i]);

if(strcmp(str[0],str[1])>0)

strcpy(string,str[0]);

else

strcpy(string,str[1]);

printf("\nthelargeststringis:

\n%s\n",string);

return0;

}

结果:

8.将一个数组中的值按逆序重新存放。

例如:

原来顺序为8,6,5,4,1。

要求改为1,4,5,6,8。

程序:

#include

intreverse(inta[],intn)

{

intp=a+n-1;

intt;

while(a

t=p,p=a,a=t;

}

intmain()

{

inta[5]={8,6,5,4,1};

inti;

reverse(a,5);

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

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

printf("\n");

return0;

}

5.输入4名学生的姓名及三门课成绩,打印学生成绩表。

(姓名、三门课成绩、平均分)。

程序:

#include

voidmain()

{

charname[4][30];

doublescore[4][4]={0.0};

inti=0,j;

printf("********请输入4名学生的名字和三门成绩********\n");

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

printf("姓名:

");

scanf("%s",name[i]);

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

{

printf("第%d门成绩:

",j+1);

scanf("%lf",&score[i][j]);

score[i][3]+=score[i][j];

}

}

//输出各科成绩和平均成绩

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

printf("%s\n",name[i]);

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

printf("第%d门成绩:

%lf\n",j+1,score[i][j]

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

当前位置:首页 > 工程科技 > 交通运输

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

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