C++语言实验报告模板(共9页).docx

上传人:飞****2 文档编号:14070069 上传时间:2022-05-02 格式:DOCX 页数:9 大小:74.35KB
返回 下载 相关 举报
C++语言实验报告模板(共9页).docx_第1页
第1页 / 共9页
C++语言实验报告模板(共9页).docx_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《C++语言实验报告模板(共9页).docx》由会员分享,可在线阅读,更多相关《C++语言实验报告模板(共9页).docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上1 表达式和标准输入与输出实验1.1 实验目的(1) 熟练掌握各种运算符的运算功能,操作数的类型,运算结果的类型及运算过程中的类型转换,重点是C语言特有的运算符,例如位运算符,问号运算符,逗号运算符等;熟记运算符的优先级和结合性。(2)掌握getchar, putchar, scanf 和printf 函数的用法。(3)掌握简单C程序(顺序结构程序)的编写方法。1.2 实验内容及结果1.2.1. 源程序改错下面给出了一个简单C语言程序例程,用来完成以下工作:(1)输入华氏温度f,将它转换成摄氏温度C后输出;(2)输入圆的半径值,计算并输出圆的面积;(3)输入短整数、,

2、将的高字节作为结果的低字节,的高字节作为结果的高字节,拼成一个新的整数,然后输出;在这个例子程序中存在若干语法和逻辑错误。要求参照2.1.3和2.1.4的步骤对下面程序进行调试修改,使之能够正确完成指定任务。程序代码:#include#define PI 3.14159;voidmain( void ) int f ; short p, k ; double c , r , s ;/* for task 1 */ printf(“Input Fahrenheit:” ) ; scanf(“%d”, f ) ; c = 5/9*(f-32) ; printf( “ n %d (F) = %.2f

3、 (C)nn ”, f, c ) ;/* for task 2 */printf(input the radius r:);scanf(%f, &r);s = PI * r * r;printf(nThe acreage is %.2fnn,&s);/* for task 3 */printf(input hex int k, p :);scanf(%x %x, &k, &p );newint = (p&0xff00)|(k&0xff00)8;printf(new int = %xnn,newint);【分析及改正】本程序共存在9处错误,分析如下:(1)#define PI 3.14159;错

4、误原因:宏定义在预处理时会将后续程序中的标示符展开为对应全部字符串。改正:去掉其后分号(2)voidmain(void) 错误原因:函数返回值与函数名之间应加空格,C90标准建议main函数应返回一个int作为状态值改正:int main(void) (3)short p,k;错误原因:后续用到了newint变量但并未声明改正:short p,k,newint;(4)scanf(“%d”, f );错误原因:应该把要读入的变量的地址传递给scanf才能正确写入改正:scanf(%d,&f);(5)c = 5/9*(f-32) ;错误原因:5和9是整型常数,相除会截断小数部分,应该将其中任意一个

5、输表示为或转换为浮点数类型改正:c = 5.0/9*(f-32);(6)scanf(%f, &r);错误原因:double类型对应的占位符是%lf改正:scanf(%lf,&r);(7)printf(nThe acreage is %.2fnn,&s);错误原因:要输出s的值应该将s作为参数传递给printf,不应传递其地址改正:printf(nThe acreage is %.2fnn,s);(8)scanf(%x %x, &k, &p ); printf(new int = %xnn,newint);错误原因:k,p为short类型,对应十六进制占位符应为%hx改正:scanf(%hx %

6、hx,&k,&p); printf(new int = %hxnn,newint);(9)newint = (p&0xff00)|(k&0xff00)8)&0x00ff);1.2.2 源程序修改替换下面的程序利用常用的中间变量法实现两数交换,请改用不使用第3个变量的方法实现。该程序中t是中间变量,要求将定义语句中的t删除,修改下划线处的语句,使之实现两数对调的操作。程序代码:#includevoid main( ) int a, b, t; printf(“Input two integers:”); scanf(“%d %d”,&a,&b); t=a ;a=b;b=t; prinf(“na=

7、%d,b=%d”,a,b); 【分析】使用异或方式交换#include int main(void) int a,b; printf(Input two integers:); scanf(%d %d,&a,&b); a = ab; b = ab; a = ab; printf(na=%d, b=%d,a,b); return 0;【测试】如果输入 12 21,应该输出:a=21,b=12,程序运行结果如下,程序正确。1.2.3 程序设计(1)编写一个程序,输入字符,如果是大写字母,则将转换成对应的小写,否则的值不变,最后输出。【分析】因为同一个字母的大小写字母的ASCII码值相差32,若ch

8、为大写字母,则ch+32为对应的小写字母。【程序】#include int main(void) char ch; puts(Enter a character:); ch = getchar(); if(ch=A&ch=Z) / 若ch为大写,则变成小写 ch += 32; putchar(ch); return 0;【测试】1. 测试大写变小写。若输入B,应输出b,程序运行结果如下,程序正确。2. 测试其他字符。若输入a,应输出a,程序运行结果如下,程序正确。(2)编写一个程序,输入无符号短整数x,(0 15, 1 16-),取出x从第位开始向左的位(从右至左编号为015),并使其向左端(

9、第15位)靠齐。【分析】将x首先右移m位,再左移(16-m)位,则末尾会补0,即可将第m位开始向左的n位且向最高位靠齐【程序】#include int main(void) unsigned short x,m,n; puts(Please input x,m and n, separated by space:); scanf(%hu%hu%hu,&x,&m,&n); x=m; x=(16 - n); printf(%hxn,x); return 0;【测试】若 x=58207,m=4,n=4,因为(58207)10 = (1110 0011 0101 1111)2,处理后为(101 000

10、0 0000 0000)2= (5000)16 ,程序应该输出十六进制数:5000,运行结果如下,程序正确。(3)IP地址通常是4个用句点分隔的小整数(即点分十进制),如32.55.1.102。这些地址在机器中用无符号长整形表示。编写一个程序,以机器存储的形式读入一个互联网IP地址,对其译码,然后用常见的句点分隔的4部分的形式输出。例如,整形二进制表示就是: ,按照8位一组可表示为:40 88 92 211,由于CPU处理数据的差异,它的顺序是颠倒的,所有最终格式为211.92.88.40。【算法思想】分别利用逻辑尺取出读入的长整形数的四部分,从最低位起每8位(1个字节)为一个部分,然后按照正

11、常顺序输出其对应的十进制IP地址。【程序】#include int main(void) unsigned long ipAdress; unsigned short first, second, third, fourth; puts(Input the IP Address in unsigned long int form:); scanf(%lu,&ipAdress); first = (ipAdress&0xFF)24; second = (ipAdress&0xFF0000)16; third = (ipAdress&0xFF00)8; fourth = ipAdress&0xFF

12、; printf(%hu.%hu.%hu.%hu,fourth,third,second,first);【测试】若输入,应输出 211.92.88.40。运行结果如下,表明程序正确。 1.3 实验体会 在做改错题时,我的方法是首先浏览一遍,找出明显的错误,然后将初步修改后的代码输入编译器并编译,再根据编译器的警告与错误提示修改程序至完全正确,这个过程很需要细心和耐心,这个过程能够很好的帮助我再今后不犯类似错误。源程序修改与替换题锻炼我们举一反三的能力,我们在平时写程序时就应该思考对于一个问题有没有多钟解决方案,不使用中间变量交换两个整数是很常见的问题,我利用一个数异或自身等于0,0异或任意位保留原位的原理来交换。程序设计题提高了我们对所学知识的熟练度和理解程度,只有实践才能学会C语言,在亲手编写代码的过程中发现问题,理解概念。专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁