实验二 C语言的基础知识
【目的与要求】
1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。
2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(—)运算符的使用。
3.进一步熟悉C程序的编辑、编译、连接和运行的过程。
【上机内容】
【一般示例】
【例1】输入并运行下程序,写出运行结果。
mian()
{
char c1 , c2;
c1=97;c2=98;
printf(“%c %c”, c1, c2);
}
在此基础上
1)加一个printf语句,并运行之。
printf(“%d,%d”, c1, c2 );
2)再将第二行改为:
int c1, c2;
再使之运行。
3)再将第三行改为:
c1=300; c2=400;
再使之运行,分析其运行结果。
在该程序中,说明了字符型数据在特定情况下可作为整型数据处理,整型数据有时也可以作为字符型数据处理。
【例2】分析下程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。
main()
{
char c1=’a’,c2=’b’,c3=’c’,c4=’101’,c5=’116’;
printf(“a%c b%ctabcn”,c1,c2,c3);
printf(“tb%c %c”,c4,c5);
}
在该程序中,主要考查对转义字符的掌握情况。
【例3】
分析下程序,写出运行结果,再输入计算机运行,将得到的结果与你分析得到的结果比较对照。
main()
{
int i , j , m , n ;
i=8; j=10;
m=++i; n=j++;
printf(“%d,%d,%d,%d”,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’,并输出。
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
先自己分析,再试着用程序求解,看得到的结果是否一致。