华中科技大学C语言实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程实验报告课程名称:C语言程序设计
专业班级:CS1409
学号:U201414813
姓名:唐礼威
指导教师:吴海
报告日期:2015年6月24日
计算机科学与技术学院
目录
1 第一次实验 (1)
1.1 实验目的 (1)
1.2 实验容 (1)
1.3 实验小结 (10)
2第二次实验 (11)
2.1 实验目的 (11)
2.2 实验容 (11)
2.3 实验小结 (16)
3第三次实验 (16)
3.1 实验目的 (16)
3.2 实验容 (16)
3.3 实验小结 (25)
4第四次实验 (25)
4.1 实验目的 (25)
4.2 实验容 (25)
4.3 实验小结 (30)
5第五次实验 (31)
5.1 实验目的 (31)
5.2 实验容 (31)
5.3 实验小结 (37)
6 第六次实验 (37)
6.1 实验目的 (37)
6.2 实验容 (37)
6.3 实验小结 (44)
7第七次实验 (44)
7.1 实验目的 (44)
7.2 实验容 (44)
7.3 实验小结 (55)
8第八次实验 (55)
8.1 实验目的 (55)
8.2 实验容 (55)
8.3 实验小结 (63)
9 实验总结 (63)
1 第一次实验
1.1实验目的
(1)熟练掌握各种运算符的运算功能,操作数的类型,运算结果的类型及运算过程中类型转换,重点是C语言特有的运算符,例如位运算符,问号运算符,逗号运算符等;熟记运算符的优先级和结合性。
(2)掌握if,while,for循环语句的用法与含义。
(3)掌握简单C程序(顺序结构程序)的编写方法。
(4)掌握getchar, putchar, scanf 和printf 函数的用法
(5)学会简单使用函数调用
1.2 实验容
(一)使用两个变量实现两数交换
【部分程序代码:】
#include
void main() //主函数
{
int a,b; //定义两变量
a=a+b;
b=a-b;
a=a-b; //精华部分,实现交换
}
要点说明:要先用一个数储存两个数的值,于是将a+b的值赋给a,从中减去b即获得a的值,赋给b。在从中减去新的b即得原b值,赋给a便实现
了两变量值的交换。
(二)程序设计
(1)编写一个程序,输入字符c,如果c是大写字母,则将c转换成对应的小写,否则c的值不变,最后输出c。
I、程序框图
思路:小写字母的ASCLL码比其相对应的大写字母ASCLL码值高32,所以,可用if
语句进行判断大小写,再通过简单计算进行转化。
II、部分程序代码
char c=getchar(); //定义字符变量c
if (c>='A'&&c<='Z') //条件判断
{
c=c+32; //改变ascll码值实现C变c
printf("%c",c);
}
else
printf("%c",c);
(2)编写一个程序,输入无符号短整数x,m,n(0 ≤m≤15, 1 ≤n≤16-m),取出x从第m位开始向左的n位(m从右至左编号为0~15),并使其向左端(第15位)靠齐。
I、程序框图
开始
输入x,m,n
将x右移m位,再
左移(16-n)位
输出x
结束
II、部分程序代码
unsigned short x, m, n; //定义无符号短整型变量
printf("请依次输入短整数x,m,n:");
scanf("%hu %hu %hu", &x, &m, &n);
x = x >> m; //向右移位
x = x << (16 - n); //向左移位
若输入的数为x=12345,m=3,n=3,由于(12345)10=(11001)2,经移位后得(00000)2即应得(57344)10
(3)IP地址通常是4个用句点分隔的小整数(即点分十进制),如32.55.1.102。这些地址在机器中用无符号长整形表示。编写一个程序,以机器存储的形式读入一个互联网IP
地址,对其译码,然后用常见的句点分隔的4部分的形式输出。例如,
整形676879571二进制表示就是:00101000 01011000 01011100 11010011,按照8位一组可表示为:40 88 92 211,由于CPU处理数据的差异,它的顺序是颠倒的,所有最终格式为211.92.88.40。
I、程序框图
开始
输入无符号
长整形x
移位,将每个字节提
取出来。
按ip地址
格式输出
结束
II、部分程序代码
unsigned long int x; //定义无符号长整形
int a, b, c, d;
printf("请输入一个整数:\n");
scanf("%lu", &x);
a = x >> 24;
b = x >> 16 & 0x000000ff;
c = x >> 8 & 0x000000ff;
d = x & 0x000000ff;
printf("%d.%d.%d.%d", d, c, b, a);
system("pause");
【测试】
输入676879571应输出211.92.88.40
(三)自设题
(1)设计一个程序,在字符模式下,以某个字符拼出“王”汉字图形,显示输出。