华中科技大学C语言实验报告
课 程 实 验 报 告课程名称: C语言程序设计 专业班级: CS1409 学 号: U14813 姓 名: 唐礼威 指导教师: 吴海 报告日期: 6月24日 计算机科学与技术学院目录1 第一次实验11.1 实验目的11.2 实验内容11.3 实验小结102 第二次实验112.1 实验目的112.2 实验内容112.3 实验小结163 第三次实验163.1 实验目的163.2 实验内容163.3 实验小结254 第四次实验254.1 实验目的254.2 实验内容254.3 实验小结305 第五次实验315.1 实验目的315.2 实验内容315.3 实验小结376 第六次实验376.1 实验目的376.2 实验内容376.3 实验小结447 第七次实验447.1 实验目的447.2 实验内容447.3 实验小结558 第八次实验558.1 实验目的558.2 实验内容558.3 实验小结639 实验总结631 第一次实验实验目的(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、程序框图 开始 输入字符c c为大写Y将c转换成对应 字母 的小写N 输出字符c 结束思路:小写字母的ASCLL码比其相对应的大写字母ASCLL码值高32,所以,可用if语句进行判断大小写,再通过简单计算进行转化。II、部分程序代码char c=getchar();//定义字符变量cif (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=(0011000000111001)2, 经移位后得(1110000000000000)2即应得(57344)10(3)IP地址通常是4个用句点分隔的小整数(即点分十进制),如32.55.1.102。这些地址在机器中用无符号长整形表示。编写一个程序,以机器存储的形式读入一个互联网IP地址,对其译码,然后用常见的句点分隔的4部分的形式输出。例如,整形676879571二进制表示就是0101100011010011,按照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.