1、1:机试常用变量类型 CC+常用的变量类型有很多种,想通过机试,掌握好其中的几种就可以,他们分别是int,double, string, charint 类型是最常用的整数类型,对于输入类型是整形的变量,使用int来进行定义和读入。还有一种更大的整形变量是long long,在机试中一般不会涉及到考察,如果考虑到运算的过程中有可能超过int的大小,再考虑使用long long,int最大可以到达231级别,long long最大可以到达263。PS:有时机试读入多个整数的时候会是这样的形式5,10中间有一个逗号,在这种情况下,其实读入也是很简单的,可以这么写:scanf(“%d%c%d”,&a
2、,&b,&c);或者是:scanf(“%d”,&a);getchar();有的机试题会说:两个整数之间有若干个空格符或tab字符。在这种情况下,读入的方式还是使用scanf(“%d%d”,&b)这样,scanf函数或者cin函数都可以很好的吃掉除了数字字符以外的字符。double类型是最常用的浮点数类型,当运算涉及到小数运算的时候,需要使用double来定义。其中,特别需要注意的一点是,如果使用了如下语句:double x=a/b;在这里,a和b是int,那么x的值将是a和b整除后的结果,而不是想要的结果,想要得到期望的结果,须改成double x=(a+0.0)/b;在这里,将a加上一个浮点
3、数,程序会在后台将它强制转换成一个double类型的数字,此时再除一个整数,就没有问题了string类型是遇到字符串类问题应该首选的变量,区别于字符数组char,string类型是直接将字符数组封装了进去,定义string s相当于定义了一个大小特别长的字符数组。使用string的好处是,避免了使用char数组时定义数组长度过小导致越界,同时更加直观的将字符串看做了一个对象。如果要定义一个string变量,首先得包含string的头文件以及使用C+中的标准命名空间,标准命名空间这个东西,只要记得写上就行,没有任何影响。#include /这一句是c+的头文件,c语言代码一样可以把它包含进来,只
4、要将程序后缀名改成.cpp即可,其他都是一样的。string.husing namespace std;在不同的环境下,可能会有不同的头文件包含了string的用法,可能的头文件有cstring,string。在机试的环境中,一般使用string.h即可。定义一个string和定义其他变量方式相同:string s;读入和输出string也只需要使用cins;cout这是比c语言的字符数组要简单了很多的。需要注意的是,string类型读入的时候与char数组的scanf读入一样,都是遇到空格符或者回车符就停止读入,当做一个完整字符串来处理,因此,使用string处理带空格的字符串是不明智的,其
5、他情况下是都可以的。string变量包含了很多强大的功能,如:cpp view plaincopyprint?1. si;/这么写,返回的就是字符串s第i+1位的字符,返回的类型是char型,其中,s0是它的第一位,与字符串相同。 2. s.size();/返回字符串的长度,返回的长度是l,则s从s0到sl-1表示的是其每一位的字符。3. if(s1s2)/两个string是可以方便的使用大小于符号以及等于号来比较大小的,比较的方式是,从左向右按位进行比较,每一位按照字典序来比较。如”aaaa”abc”bcd”,但值得注意的一点是,比较的时候应用变量进行比较,即s1s2这种,而不能用”aa”b
6、b”这样,如果要比较他俩的大小,应这么写:4. s1=aa;s2=bb5. ifstring类型还有很多强大的功能,但是对于机试来说,会使用以上三种功能就足够了。char50,char100这种字符数组与string类型很像,只不过他是C语言里面的用法,对于机试,只建议在输入带有空格字符的字符串时使用char数组,使用的方式是:gets(s);在这里,gets函数区别于scanf函数的是,gets函数会直接将一整行读进来,而不会遇到空格就停下来。常见机试题类型初级题常见的类型无非就是字符串处理类的题目和数字处理类的题目,在这里归结如下:字符串处理类字符串所有大写转小写:1. for(inti=
7、0;i=A&si=0;i-)字符串比较大小:如果比较的规则与字符串的比较规则相同,则直接使用s1s2这种方式,如果规则不同,则用一重循环按位比较即可。2、数字处理类数字处理类的题目,最常见的两种考察形式是整数拆分、进制转换和排序。整数拆分是指将一个整数拆分开每一位,比如123拆分成1,2,3。整数拆分的思路有两种,第一种是直接用字符串读入,然后把每一位用字符的形式提取出来:2. numi=si-0还有一种思路是不断去除以10,把余数提取出来,方法是:1. while(n!=0)3. numi=n%10;4. n=n/10;5. i+;6. 进制转换:进制转换又分为10进制转换成别的进制以及别的
8、进制转换成10进制,进制转换其实特别简单,只需要记住如下代码:10进制转换成X进制numi=n%x;n=n/x;X进制转换成10进制=length;3. ans=ans*x+numi;4. 其中,numi表示的是该x进制数的每一位,比如一个二进制数101,用这种转换方式去转换,ans的值从i=0到i=2处理后分别是1,2,5。排序:排序这个东西,其实不需要学习冒泡啊、快排啊之类的算法,应对机试,C+中自带的sort函数就可以很好的解决,请看下面一段代码1. prename=codeclass=cpp2. #include/这个是包含sort函数的头文件 3. usingnamespacestd;4. intarr100,n;5. intcmp(intx,inty)/这个函数是sort函数比较两个元素优先级的函数,在这里计算出两个元素的优先级,然后返回即可。6. 7. intimportance1,importance2;8. /此处插入代码计算x,y的重要性 9. returnimportance1importance2;/此处返回小于号,意思是优先级小的在前,如returnx
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1