凯里学院C语言程序设计实验报告
装订线
装订线
×××××专业××年级××班,学号××××××姓名××成绩 合作者实验日期年月日 指导教师评阅日期年月日
实验二数据类型、运算符和表达式
一、实验目的:
(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。
(2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。 (3)掌握C语言的输入和输出函数的使用
(4)进一步熟悉C程序的编辑、编译、连接和运行的过程,学会使用stepbystep功能。
(5)认真阅读教材数据类型,算术运算符和表达式,赋值运算符和表达式部分内容。
二、实验内容:
(1)输人并运行下面的程序 #include
charc1,c2; c1='a'; c2='b';
printf(\ }
(2)按习题3.7的要求编程序并上机运行 该题的要求是:
要将“China”译成密码,密码规律是:用原来字母后面的第4个字母代替原来的字母。
例如,字母“A”后面第4个字母是“E”,用“E”代替“A”。因此,“China”应译为“Glmre\。
请编一程序,用赋初值的方法使。cl,c2,c3,c4,c5五个变量的值分别为‘C’、‘h’、‘i’、‘n’、‘a’,经过运算,使cl,c2,c3,c4,c5分别变为‘G’、‘l’、‘m’、‘r’、‘e’,并输出。 三、实验步骤:
(1)输人并运行下面的程序 #include
charc1,c2; c1='a';
c2='b';
printf(\ }
① 运行此程序。 程序结果为:
②在此基础上增加一个语句: printf(\ 再运行,并分析结果。 ③将第2行改为: intc1,c2;
再使之运行,并观察结果。 ④再将第3行改为; cl=a;/*不用单撇号*/ c2=b;
再使之运行,分析其运行结果。
分析:编译通不过,会显示a、b未被定义。 ⑤再将第4,5行改为: cl=\用双撇号*/ c2=\
再使之运行,分析其运行结果。
分析:编译通不过,有语法上的错误。 ⑥再将第4,5行改为:
c1=300;/*用大于255的整数*/ c2=400;
再使之运行,分析其运行结果。
分析:字符型变量为一个字节,且为无符号型,字符会输出ASCII表中44和144所对应的字符,而要将其转换为数字,会进行符号位扩展,则会输出44和-112。
(2)输人并运行教材第3章习题3.6给出的程序 #include
charc1='a',c2='b',c3='c',c4='\\101',c5='\\116'; printf(\ printf(\ }
分析输出结果:(短线代表空格数) aa-bb---cc------abc -------A-N
(3)输人并运行下面的程序 #include
装订线
装订线
voidmain() {
inta,b;
unsignedc,d; longe,f; a=100; b=-100; e=50000; f=32767; c=a; d=b;
printf(\ printf(\ printf(\ c=a=e; d=b=f;
printf(\ printf(\ }
请对照程序和运行结果分析:
①将一个负整数斌给一个无符号的变t,会得到什么结果。画出它们在内存中的表
示形式。
符号位会变成数位位,数值的绝对值增大。
②将一个大于32767的长整数斌给整型变t,会得到什么结果。画出它们在内存中
的表示形式。
会出现从低位向高位截取16位,且第16位为符号位。
③将一个长整数赋给无符号变量,会得到什么结果(分别考虑该长整数的值大于或
等于65535以及小于65535的情况)。画出它们在内存中的表示形式。
会出现从低位向高位截取16位,且第16位为符号位。大于截取,等于为零,小于不变。
读者可以改变程序中各变的值,以便比较。例如:a=65580,b=-40000.e= 65535,f=65580。 (4)输人习题3.10 #include
inti,j,m,n; i=8; j=10; m=++i; n=j++;
装订线