C语言实验指导书-jal 下载本文

C语言实验指导书

实验二 C语言运算符和表达式

【目的与要求】

1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。

2.学会使用C语言的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。

3.进一步熟悉C程序的编辑、编译、连接和运行的过程。

【上机内容】

【示例】

【例1】输入并运行以下程序,写出运行结果。 main() {

char c1,c2; c1=97;c2=98;

printf(\ }

在此基础上

1)加一个下面printf语句,并运行之。 printf(\ 2)再将第3行改为: int c1,c2;

再使之运行。

3)再将第4行改为: c1=300; c2=400;

再使之运行,分析其运行结果。

在该程序中,说明了字符型数据在特定情况下可作为整型数据处理,整型数据有时也可以作为字符型数据处理。

【例2】分析下程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。

main() {

char c1='a',c2='b',c3='c',c4='\\101',c5='\\116'; printf(\ printf(“\\t\\b%c %c”,c4,c5); }

- 7 -

C语言实验指导书

在该程序中,主要考查对转义字符的掌握情况。

【例3】分析下面程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。

main() {

int i , j , m , n ; i=8; j=10;

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

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

分别作以下改动之后,先分析再运行: 1)将第四行改为: m=i++; n= ++ j; 2)程序改为: main() { int i , j ; i=8; j=10;

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

3)在2)的基础上,将printf语句改为: printf(“%d,%d”, ++ i, ++ j ); 4)再将printf语句改为: printf(“%d,%d,%d,%d”,i,j,i++,j++); 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); }

此程序主要考查自加、自减运算符以及复合运算符的用法。 【练习】

1.要将“China”译成密码,密码规律是:用原来的字母后面第5个字母代替原来的字母。例如,字母“A”后面第5个是“F”,用“F”代替“A”。因此,“China”应译为“Hmnsf”。请编一程序,用赋初值的方法使c1、c2、c3、c4、c5五个变量的值分别为’C’、’h’、’i’、’n’、’a’,经过运算,使其分别变为’H’、’m’、’n’、’s’、’f’,

- 8 -

C语言实验指导书

并输出。

2.求下面算术表达式的值。

(1)x+a%3*(x+y)%2/4 设x=2.5,a=7,y=4.7

(2)(float)(a+b)/2+(int)x%(int)y

设a=2,b=3,x=3.5,y=2.5

先自己分析,再试着用程序求解,看得到的结果是否一致。

3.写出下面表达式运算后a的值,设原来a=10。设a和n已定义成整型变量。 (1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 先自己分析,再试着用程序求解,看得到的结果是否一致。

- 9 -

C语言实验指导书

实验三 简单的C程序设计

【目的与要求】

1.理解C语言程序的顺序结构

2.掌握常用的C语言语句,熟练应用赋值、输入、输出语句。

【上机内容】

【示例】

【例1】按格式要求输入/输出数据。 #include \ main() { int a,b; float x,y;

char c1,c2;

scanf(“a=%d,b=%d”,&a,&b); scanf(“%f,%e”,&x,&y);

scanf(“%c%c”,&c1,&c2);

printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\\n”,a,b,x,y,c1,c2); }

运行该程序,必须按如下方式在键盘上输入数据 a=3,b=7 ↙ 8.5,71.82 ↙

aA ↙

请同学们写出输出结果

【例2】输入三角形三边长,求三角形面积。 #include “math.h” main()

{

float a,b,c,s,area;

scanf(“%f,%f,%f”,&a,&b,&c); s=1.0/2*(a+b+c);

area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“area=%f”,area);

}

【例3】已知圆半径,圆柱高,求圆周长,圆柱体积。 main()

- 10 -