实验10C语言运行环境.docx
- 文档编号:18391951
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:28
- 大小:29.40KB
实验10C语言运行环境.docx
《实验10C语言运行环境.docx》由会员分享,可在线阅读,更多相关《实验10C语言运行环境.docx(28页珍藏版)》请在冰点文库上搜索。
实验10C语言运行环境
演示程序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++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 10 语言 运行 环境