欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    第4章第1章基础知识1基础简介.docx

    • 资源ID:266558       资源大小:70.01KB        全文页数:9页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第4章第1章基础知识1基础简介.docx

    第4章第1章基础知识1.1基础简介蓝桥比赛中,前几题往往会考查学生的基础知识,基础知识包含的内容很多,这里选择几个知识点介绍。一、计算机中数据的表示计算机中数据分为数值型数据和非数值型数据。计算机中的数字、字母、符号等信息都必须转换成二进制数据保存在计算机中。这样才能被计算机识别。能够进行算术运算得到明确数值概念的信息称为计算机数值数据,其余如字符、文字、图像、声音等均为非数值数据。L数值类型数据的表示计算机中常用的进制包括十进制、八进制、十六进制和二进制。十进制以正常数字1-9开头,八进制以数字O开头,十六进制以0x(或OX)开头,二进制不能在C语言中直接书写,部分编译器支持以Ob或OB开头的二进制数据表示。例如:inta=12,b=012,c=0xl2;printf(*%d%d%d*,a,b,c);输出结果:121018上述输出结果为十进制输出,数据要想以八进制或者十六进制的形式输出,需要改变输出控制符,如下所示:printf(*%d%o%x”,a,b,c);输出结果:121212那如何表示二进制数据呢?常用的方法就是采用字符数组的方式,下面例子实现了如何将一个十进制数转换成二进制数并存储在字符数组中:WhiIe(num>0)辗转取余(arrn+=num%2+'0'num=2;)2.非数值类型数据非数值类型数据也是以二进制数据形式保存在计算机中。最简单的就是字符数据,其采用的编码是ASCIl编码。ASClI码也是以整数形式存储在计算机中的,这个整数为编码,常用的编码和字符对应如下:F号编码字符备注10NUL(NULL)多用于字符串结束标志213CR回车键3480其它字符9的编码是依次是4957465A大写字母BZ的编码依次是6690597a小写字母bz的编码依次是98122将一段字符转换成整数存放到一个变量中,常用的方法是:intchnum(charstr)inti,n,num-0;for(i=0;stri!=>0,;i+)if(stri>=*O,&&stri<=,9,)num-num*10+stri-O,;returnnum;)另外,汉字的表示是采用国家标准的汉字字符集GB2312-80,对收录字符进行分区管理:字库分成94个区,每个区有94个汉字(按位编排),每一个汉字在字库中有确定的区和位编号,即所谓的两个字节表示的区位码,区位码第一个字节表示区号,第二个字节表示位号,由区位码即可获取汉字在字库中的地址.GB2312内码范围:A1A1-FEFE,其中汉字的编码范围是B0A1-E7FE,第一字节OXB(H)XF7,对应区号16-87;第二个字节OxAbOxFE,对应位号01-94。例:“啊”是GB2312中的第一个汉字,区位码是1601。下面代码实现了汉字十六进制和十进制区位码的计算:chara5;StrCPy(a,"啊");printf(z,%XH%XHnz,(unsignedchar)aO,(unsignedchar)al);intb=(unsignedchar)a0*256+(unsignedchar)a1;printf(z,%dzb);输出结果:BOHAlH45217每个汉字在字库中以点阵字模形式存储,一般为16X16点阵形式。每个点用一个二进制位表示,存1的点,可以在屏幕上显示一个亮点,存O的点则不显示,存字的16*16点阵信息在显示器上显示,即可出现对应汉字。二、进制转换不同进制的转换方式很多,基本上分为三类:十进制转其它进制,其它进制转十进制,其它进制之间的相互转换。这里以十进制转其它进制为例,介绍一下进制转换的思想。十进制整数转换为其它进制(以2进制为例,其它进制都类似),采用方法是:除2取余,逆排序法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把所有余数按逆序排列,也就是把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。这就是所谓“除2取余,逆序排列”。十进制转换成其它n进制的方法也是类似,可以称之为“除n取余,逆排序”,具体十进制转换成n进制的案例程序如下:charHex16=,0','1','2',,'A','B','C','D','E','F'scanf(*%d*,&num)"/十进制数SCanf;要转换的进制216doresulti+=num%jZ;num=num/jz;while(num!=0);for(i;i>=0;i-)输出结果Printf('%c”,Hexfresulti);三、闰年计算地球绕太阳的运行周期为365天5小时48分46秒(合365.24219天),即一回归年(tropicalyear)0公历的平年只有365天,比回归年短约0.2422天,每四年累积约一天,把这一天加于2月末(即2月29日),使当年的时间长度变为366天(112月分别为31天、29天、31天、30天、31天、30天、31天、31天、30天、31天、30天、31天),这一年就是闰年。按照每四年一个闰年计算,平均每年就要多算出0.0078天,经过400年就会多出大约3天来,因此,每400年中要减少3个闰年。闰年的计算,归结起来就是通常说的:四年一闰;百年不闰,四百年再闰。利用逻辑表达式表示:year%4=0&&year%100!=0year%400=0而对于每月天数的表示,由于也没有规律性,所以常用的表示方式是利用数组来表示。如:intdays13=0,31,28,31,30,31,30,31,31,30,31,30,31);四、文件操作在程序中,经常会遇到需要读取的数据量比较大的情况,如果用键盘输入,则输入时间较长,这时就需要用到文件操作了。常用的文件操作分成以下四步:一是打开文件;二是判断文件打开是否成功;三是读取(写入)文件;四是关闭文件。例如:FILE*fp;fp=fopen("D:","r");if(fP=NULD(printf(*failtoOPen!n");return0;)while(!feof(fp)chi+=fgetc(fp);fclose(fp);由于程序竞赛中,往往只需要从文件中读入程序数据即可,为了简化读入过程,读取文件数据最常用的方法就是文件重定向技术。常用的方式是使用freopen()函数,其声明为:FILE*freopen(constchar*fiIename,constchar*mode,FILE*stream);重定向技术的使用方法如下:将输入重定向到文件,后面的输入语句直接到文件中读取数据freopen("","r",stdin);将输出重定向到文件,后面的输出语句直接将数据输出到文件中freopen("","w",stdout);从文件中读取数据,存入变量中inta,b;scanf(,%d%d”,&a,&b);printf("%dn”,a+b);关闭文件fclose(stdin);fclose(stdout);1.2购物单(2017试题A)【题目描述】小明刚刚找到工作,老板人很好,只是老板夫人很爱购物。老板忙的时候经常让小明帮忙到商场代为购物。小明很厌烦,但又不好推辞。这不,XX大促销又来了!老板夫人开出了长长的购物单,都是有打折优惠的。小明也有个怪癖,不到万不得已,从不刷卡,直接现金搞定。现在小明很心烦,请你帮他计算一下,需要从取款机上取多少现金,才能搞定这次购物。取款机只能提供100元面额的纸币。小明想尽可能少取些现金,够用就行了。你的任务是计算出,小明最少需要取多少现金。以下是让人头疼的购物单,为了保护隐私,物品名称被隐藏了。180.90 10. 2556.14104. 65 100. 30 297. 15 26. 75130. 62240. 28270. 62 115. 87247. 34 73.21 101.00 79. 54278.44 199. 2612. 97166. 30 125. 5084. 98113. 35 166. 5788折65折9折9折88折半价65折 半价58折8折88折95折9折半价 半价7折半价 9折78折58折9折68折 半价42.56 81.90131.78 255. 89109. 17 146. 69 139. 33 141. 16 154. 7459. 42 85. 44293. 70 261. 7911.30268. 27 128. 29251.03 208. 39 128. 8862. 06 225. 8712. 89 34. 2862. 16 129. 12218. 37289. 699折95折8折78折9折68折65折78折8折8折68折88折65折88折58折88折8折75折75折9折75折75折75折58折半价半价8折需要说明的是,88折指的是按标价的88%计算,而8折是按80%计算,余者类推。特别地,半价是按50%计算。请提交小明要从取款机上提取的金额,单位是元。答案是一个整数,类似4300的样子,结尾必然是00,不要填写任何多余的内容。特别提醒:不许携带计算器入场,也不能打开手机。【解析】该题的计算不算复杂,难点在于如何将数据读入到数组中。这里利用了C+中的文件读取技术:文件重定向。程序的具体步骤是:(1)对数据进行预处理由于原始数据有数字,也有中文,需要进行预处理。将数据复制到文本文件中,利用替换工具将“半价”替换成“50”,然后将“折”替换成""(空)。最后将文件保存为(2)读取数据到数组利用文件重定向技术:freopen,将数据输入改成到文件中读取。然后利用循环语句读取文件数据。(3)计算数据并输出将读取的数据进行计算,这里注意的是:折扣如果小于10的话,需要进行乘10处理。【参考程序】#include<iostream>usingnamespacestd;floatprice100;intdiscount100;intmain()(inti;freopcn(z,zz,"r”,stdin);i=0;while(cin>>pricei>>discounti)i+;i=0;floatsum=0;while(pricei!=0)(if(discounti<10)sum+=pricei*discounti10;elsesum+=pricei*discounti100;i+;)cout<<sum<<endl;return0;)1.3第几天(2018试题A)【问题描述】2000年的1月1日,是那一年的第1天。那么,2000年的5月4日,是那一年的第几天?注意:需要提交的是一个整数,不要填写任何多余内容。【参考答案】125【解析】本题考查

    注意事项

    本文(第4章第1章基础知识1基础简介.docx)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

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

    收起
    展开