C语言作业实验练习报告.docx
- 文档编号:17033094
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:9
- 大小:248.32KB
C语言作业实验练习报告.docx
《C语言作业实验练习报告.docx》由会员分享,可在线阅读,更多相关《C语言作业实验练习报告.docx(9页珍藏版)》请在冰点文库上搜索。
C语言作业实验练习报告
实验练习一:
编程验证C语言的数据类型和各种运算符:
一、程序一:
请对照程序和运行结果分析:
①将一个负整数赋给一个无符号的变量,会得到什么结果。
思考它们在内存中的表示形式。
②将一个大于32767的长整数赋给一个整型变量,会得到什么结果。
思考它们在内存中的表示形式。
③将一个长整数赋给无符号的变量,会得到什么结果。
思考它们在内存中的表示形式。
分析:
①通过第二三组数据输出结果相同,可以看出将一个负整数赋给一个无符号的变量,会得到对应正整数存取的数值。
先把二进制转化为十进制的数:
“b=-100”的原码是10000000000000000000000001100100,反码是:
11111111111111111111111110011011,补码是:
11111111111111111111111110011100(计算机识别的都是补码)理解:
原码和反码首位数字1含义不同,原码中代表符号、反码中代表数字。
②将一个大于32767的长整数赋给一个整型变量。
在短整型所能表示的范围内数值没有影响,否则上溢而出现错误。
计算机对下溢作0处理,对上溢则无法表示,如果程序没有对强制数据类型转换异常的监控,则直接报出内存错误而意外结束。
即:
将一个大于32767的长整数赋给一个整型变量:
高位丢失,可能变成负数;
③将一个长整数赋给无符号的变量,如果超出存储范围,将会溢出,结果保存的是溢出那部分。
二、程序二:
了解++i和i++的区别:
运算符在数之前,引入的数先加1再参与运算,eg:
++i;
运算符在数之后,引入的数先参与运算再加1,eg:
i++;
分析:
第二组数据:
在i++中,运算符在数之后,所以要先进行赋值运算,再加一;故先赋值为8,所以输出的值不变。
下面以一个单程序为例:
可见在同一个语句中,不要同时输出多位值,否则可能出现歧义。
而应该分开写代码,避免歧义的产生:
上述输出方法可避免歧义的产生;
三、程序三:
了解字符类型:
char:
占8位,—128~127;
(三大基本类型:
整型、实型、字符类型char)
1.第一步:
1.第二步:
再此基础上增加一个语句:
printf(“%d%d\n”,c1,c2);
再运行,并分析结果。
分析:
在C语言中,字符是按其所对应的ASCII码值来存储的,一个字符占一个字节。
例如:
a:
97b:
98A:
65B:
66
2.第三步:
再将第2行改为:
intc1,c2;
再使之运行,并观察结果。
分析:
整型常量如int和字符型常量如:
char是不接受程序修改的固定值。
字符型只能跟整型相互切换;
%c就相当于让c1、c2按字符型输出;即最后输出字母a、b了;
3.第三步:
再将第3、4行改为:
c1=a;/*不用单撇号*/
c2=b;
再使之运行,分析其运行结果。
分析:
无结果,编译不成功。
4.第三步:
再将第3、4行改为:
c1=”a”;/*用双撇号*/
c2=”b”;
再使之运行,分析其运行结果。
分析:
无结果,编译不成功。
单引号‘’内为字符,双引号“”内为字符串
5.第四步:
再将第3、4行改为:
c1=300;/*用大于255的整数*/
c2=400;
再使之运行,分析其运行结果。
分析:
此时大于255的整数可能代表某个字母。
4、程序四:
分析:
1.\t是水平制表
2.反斜杠(\)和随后的1~3位八进制数字构成的字母序列。
例如,‘\60’、‘\101’、‘\141’分别表示字符‘0’、‘A’和‘a’,因为字符‘0’、‘A’和‘a’的ASCII码的八进制分别为60、101和141.
五、程序五:
第一步:
将第4、5行改为:
m=i++;
n=++j;
再运行。
第二步:
将程序改为:
#include
voidmain()
{
inti,j;
i=8;
j=10;
printf(“%d,%d”,i++,j++);
}
第三步:
在第二步的基础上,将printf语句改为:
printf(“%d,%d”,++i,++j);
第四步:
再将printf语句改为:
printf(“%d,%d,%d,%d”,i,j,i++,j++);
第五步:
将程序改为:
#include
voidmain()
{
inti,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和i++的区别:
运算符在数之前,引入的数先加1再赋值运算;eg:
++i
运算符在数之后,引入的数先赋值运算再加1;eg:
i++
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 作业 实验 练习 报告