C语言程序设计实验2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的
1. 掌握C语言数据类型,熟悉各种数据类型的定义和赋值。
2. 掌握表达式值的计算方法与计算原则。
3. 学会使用C的有关算术运算符,特别是自加(++)和自减(--)运算符的使用。
4. 进一步熟悉C程序的编辑、编译、连接和运行的过程。
二、实验内容(程序清单及运行结果)
1. 计算以下各表达式的结果并上机验证计算结果是否正确。
① 25/3%3
计算结果:2
② 3.5+1/2+56%10
计算结果:9.5
③若有定义:int b=7;float a=2.5,c=4.7;
a+(int)(b/3*(int)(a+c)/2)%4
计算结果:5.5
④若有:int x,y,z
执行语句:x=(y=(z=10)+5)-5;
x=? y=? z=?
计算结果:x=10 y=15 z=10
⑤ x,a均是整型
执行 x=(a=4,6*2)后,x的值是多少?
执行 x=a=4,6*2后,x的值是多少?
计算结果:x=12
x=4
⑥若有:int x=5,n=5;
执行x+=n++后,x=?,n=?
计算结果:x=10,n=6
2. 读以下源程序,写出输出结果并上机验证,想一想为什么会有这样的结果?
#include "stdio.h"
int main()
{ char ch1,ch2;
ch1='a'; ch2='B';
printf("ch1=%c,ch2=%c\n",ch1-32,ch2+32);
printf("ch1+200=%d\n", ch1+200);
printf("ch1+200=%c\n", ch1+200);
printf("ch1+256=%d\n", ch1+256);
printf("ch1+256=%c\n", ch1+256);
return 0;
}
计算结果:ch1=A,ch2=b
ch1+200=297
ch1+200=)
ch1+256=353
ch1+256=a
3. 分析下程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。
#include “stdio.h”
int main()
{
int i , j , m , n ;
i=8;
j=10;
m=++i;
n=j++;
printf(“%d,%d,%d,%d”,i,j,i++,j++);
return 0;
}
计算结果:9,11,9,11
分别作以下改动之后,先分析再运行:
1)将第四行改为:
m=i++; n= ++ j;
计算结果:9,11,9,11
2)程序改为:
main()
{
int i , j ;
i=8; j=10;
printf(“%d,%d”, i++, j++); }
计算结果:8,10
3)在2)的基础上,将printf语句改为:
printf(“%d,%d”, ++ i, ++ j );
计算结果:9,11
4)再将printf语句改为:
printf(“%d,%d,%d,%d”,i,j,i++,j++);
计算结果:9,11,9,11
5)程序改为:
main()
{
int i , j , m=0 , n=0 ;
i=8; j=10;
m+= i ++; n -= --j;
printf(“i=%d,j=%d,m=%d,n=%d”,i,j,m,n);
}
计算结果:i=9,j=9,m=8,n=-9
(二)完成程序
要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。
1.求任意输入字符的ASCⅡ码。
#include
int main( )
{char a,b ;//变量的定义
printf(“请输入一个字符:”);
scanf(“%c”,&a);
b=(int)a;
printf(“\n\n%c的ASCⅡ码为%d\n”,a,b);
return 0;
}
2、输出任意一个十进制数对应的八进制,十六进制数。
#include
int main( )
{
int a;
scanf(“%d”,&a);
printf(“\n%d(10) ,%o(8), %x(16)\n”, a,a,a );
return 0;
}
(三)调试程序
要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。
1. 调试下面的程序,找出错误
#include
int main( )
{ int u=v=89;
printf(“u=%d,v=%d\n”,u,v);
return 0;
}
正确:#include
int main( )
{ int u=89,v=89;
printf(“u=%d,v=%d\n”,u,v);
return 0;
}
u=89,v=89
2.下面的程序试图计算由键盘输入的任意两个整数的平均值,找出错误
#include
int main()
{
int x,y,a;
scanf("%x,%y",&x,&y);
a=(x+y)/2;
printf("The average is %d:\n", a);