C语言程序设计实验2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

相关文档
最新文档