实验10C语言运行环境文档格式.docx

上传人:b****6 文档编号:18361511 上传时间:2022-12-15 格式:DOCX 页数:28 大小:29.40KB
下载 相关 举报
实验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

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.输入以下程序:

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.输入并运行下面的程序

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(“%u,%u\n”,c,d);

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

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

原样输出。

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

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

大于或等于65535时:

原样输出;

小于65535时:

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

例如:

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

4.输入以下程序:

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)将程序改为:

inti,j;

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)将程序改为:

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

m+=i++;

n-=--j;

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

}

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

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

程序一:

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。

程序二:

inta,b,c,t;

printf(“inputintegera,b,c:

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;

c)

a=c;

c=t;

if(b>

{t=b;

b=c;

printf(“%d,%d;

%d\n”,a,b,c);

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

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

程序三:

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”。

程序四:

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

if(n>

=90)

printf(“A\n”);

elseif(n>

=80)

printf(“B\n”);

=70)

printf(“C\n”);

=60)

printf(“D\n”);

printf(“E\n”);

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

若n>

=90,为A等,若n>

=80,为B等,若n>

=70,为C等,若n>

=60,为D等,其余为E等。

程序五:

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

d=a;

if(c>

d=c;

d=b;

d=%d\n"

d);

判断最大值。

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

程序六:

intc;

scanf("

%d"

&

if(‘0’<

=c&

&

c<

=‘9’)/*条件表达式*/

{

c=c-‘0’;

printf("

c=%d\n"

}

else

dataerror!

\n"

);

功能:

根据条件,得出结果。

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

并输出相应的值。

2.对于如下函数:

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

程序:

{intx,y;

输入x:

"

x);

if(x<

1)

{y=x;

x=%3d,y=x=%d\n"

x,y);

else

10)

{y=2*x-1;

x=%d,y=2*x-1=%d\n"

x,y);

{y=3*x-11;

x=%d,y=3*x-11=%d\n"

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语句实现,写出程序并运行。

程序:

{floatscore;

chargrade;

请输入学生成绩:

%f"

score);

while(score>

100||score<

0)

{printf("

\n输入有误,请重输"

switch((int)(score/10))

{case10:

case9:

grade='

A'

break;

case8:

B'

case7:

C'

case6:

D'

case5:

case4:

case3:

case2:

case1:

case0:

E'

成绩是%5.1f,相应的等级是%c\n"

score,grade);

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

实验步骤与要求:

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

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

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

说明:

(1)闰年的条件是:

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

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

intyear;

intr;

请输入年份:

year);

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

=0&

year%4==0;

这一年二月有%d\n天"

28+r);

return1;

总结:

平常多看书,才做得快。

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

n),求m+(m+1)+…+n的和的程序

intmain()

{inti,s=0,m,n;

m,&

for(i=m;

i<

=n;

i++)

s=s+i;

%d\n"

s);

结果:

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

inti,n,s=1;

Pleaseentern:

for(i=1;

s=s*i;

%d!

=%d\n"

n,s);

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

=24,这时是正确的。

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

=24320,这显然是错误的。

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

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

inti,n;

doubles=1;

=%f\n"

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

请补充完整后运行。

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

*/

inti,f1,f2,f3,n;

f1=1;

f2=1;

\n%5d%5d"

f1,f2);

n=2;

i<

=20;

i++)

{

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

f3=f2+f1;

%5d"

f3);

n++;

f1=f2;

f2=f3;

}return0;

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

提示:

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

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

{inti,n;

scanf("

for(i=7;

if(i%7==0)

i);

5.编写程序打印图形

1

121

12321

1234321

123454321

1

 

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

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

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

#include<

inti,j;

=5;

for(j=1;

j<

=5-i;

j++)

printf("

"

=i;

%2d"

j);

for(j=i-1;

j>

=1;

j--)

for(i=4;

i>

i--)

for(j=1;

for(j=i-1;

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

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

#include"

math.h"

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;

pi=%10.8f\n"

pi);

return0;

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

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

inti,n,a[10],av;

for(i=0;

n;

a[i]);

{printf("

if(i%3==0)

);

i!

=n;

av+=a[i];

av=%f\n"

av);

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

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

inti,n,a[10];

floatav,sum=0;

for(i=0;

10;

%5d"

a[i]);

a[i]);

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

sum=sum+a[i];

av=sum/10;

\nav=%5f\n"

av);

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

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

请输入10个整数:

i++)

9;

m=i;

for(j=m+1;

j<

j++)

if(a[m]<

a[j])

m=j;

n=a[i];

a[i]=a[m];

a[m]=n;

}

从大到小排好顺序输出:

i++)

%4d"

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

string.h>

charstr[2][10];

charstring[10];

inti;

2;

gets(str[i]);

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

strcpy(string,str[0]);

strcpy(string,str[1]);

\nthelargeststringis:

\n%s\n"

string);

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

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

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

intreverse(inta[],intn)

intp=a+n-1;

intt;

while(a<

p)

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

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

reverse(a,5);

5;

%d"

a[i]);

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

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

#include<

charname[4][30];

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

inti=0,j;

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

for(i=0;

i<

4;

++i){

姓名:

scanf("

%s"

name[i]);

for(j=0;

3;

{

第%d门成绩:

j+1);

scanf("

%lf"

score[i][j]);

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

}

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

%s\n"

3;

%lf\n"

j+1,score[i][j]);

平均成绩为:

scor

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

当前位置:首页 > 工程科技 > 城乡园林规划

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

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