土豆春季實習試題之慘烈教訓

今天做土豆的春季C++實習生招聘試題,很多不應該錯的錯了,在此挑出一些重要的錯誤,供自己參考,以免以后再犯。

一、一道編程題,很簡單,但是錯了。

題目:

? ?輸入一個數組,求它的逆序數組。如輸入: 1 2 3 4,輸出 4 3 2 1

它給出了框架,讓填寫部分代碼:

#include<iostream>
#include <vector>
#include <string>
using namespace std;
class  example
{
public:static const vector<int>& reverse1(const vector<int>& r){vector<int>  temp(r.begin(),r.end());vector<int>::iterator vbegin=temp.begin();vector<int>::iterator vend=temp.end()-1;while(vbegin<vend){swap(*vbegin++,*vend--);}static const vector<int> temp2(temp.begin(),temp.end());return temp2;}
protected:
private:
};
void main()
{int d[]={1,2,3,4,5};vector<int> f(d,d+5);const vector<int> s=example::reverse1(f);copy(s.begin(),s.end(),ostream_iterator<int>(cout," "));
}

在上述的代碼中,要注意以下幾點:

1.

vector<int>::iterator vend=temp.end()-1;

一定要注意temp的最后一個元素是end()-1,而不是end(),end()指向量中最后一個元素的下一個元素。

2.當返回類型是指針或引用時,必須強調使用static局部變量,否則使用普通的局部變量,一旦函數調用結束,變量就會釋放掉,使得指針或引用指向不確定的對象。

3.靜態成員函數,可以直接使用類名直接調用。

二、

? ?int i=001+010+100;
? ?cout<<i<<endl;

輸出結果: 109

分析:

001,010 都是以0開頭的8進制數,分別等于1,8,因此上式等于109

舉一反三:

??int i=0x001+0x010+100;
? ?cout<<i<<endl;

輸出結果: 117

分析:

0X001,0X010 都是以0x開頭的16進制數,分別等于1,16,因此上式等于117

三、

編程題:

對于一個數字A,它的“DA(DA為一位整數)”數PA為A中所有DA拼成的數。例如1566的PA數為66,因為它有兩個6。現在有兩個數A和B,DA分別是DA1和DA2,求解A和B的PA書PA1+PA2? ?0<A,B<10^30

例如 A:1566,DA1=6;于是PA1=66

B:4231554,DA2=5;于是PA2=55,PA1+PA2=66+55=121

由于A,B的范圍較大,實際上已經超過了long long 的范圍,所以屬于大數據相加。

#include<iostream>
#include <vector>
#include <string>
using namespace std;
class example
{
public:static const string& calc(const string& stra,unsigned int a,const string& strb,unsigned int b)//這里a,b為一位整數{int count_a=0;int count_b=0;int i=0,j=0;//計算stra中有多少個afor(string::const_iterator vbegin=stra.begin();vbegin!=stra.end();++vbegin){if ((*vbegin-'0')==a){count_a++;}}//計算strb中有多少個bfor(string::const_iterator vbegin=strb.begin();vbegin!=strb.end();++vbegin){if ((*vbegin-'0')==b){count_b++;}}int na=count_a;int nb=count_b;int length=na>nb?na:nb;int* pa=new int[length+1];//由于stra可能都是a組成的,一旦相加有可能越位。int* pb=new int[length+1];memset(pa,0,(length+1)*sizeof(int));memset(pb,0,(length+1)*sizeof(int));//計算pawhile (count_a--){pa[i++]=a;}//計算pbwhile (count_b--){pb[j++]=b;}for (int i=0;i<length;i++){pa[i]=pa[i]+pb[i];}int ncount=0;//相加的兩個數的最終位數for (int i=0;i<length;i++){if (pa[i]>9){int temp=pa[i]/10;pa[i+1]+=temp;pa[i]=pa[i]%10;ncount=length;}else{ncount=length-1;continue;}}//至此pa就是最后的結果,但是pa是反著的。可以參考我的博客:<a target=_blank href="http://blog.csdn.net/xiamentingtao/article/details/46362577">http://blog.csdn.net/xiamentingtao/article/details/46362577</a>static string s1;//整數轉字符串for (int i=ncount;i>=0;i--){char s=pa[i]+'0';s1.append(1u,s);//string& append (size_t n, char c);}delete[] pa;pa=NULL;delete[] pb;pb=NULL;return  s1;}
protected:
private:
};void main()
{const string vi=example::calc("12455555555555555555555555555",5,"45666666666666666666666666666666666666666666666666112",6);}


四、不能被重載為類的成員運算符的是哪些運算符?

 1. 并不是所有的操作符都能被重載。除了. ,.* ,:: ,? : ,sizeof,typeid這幾個運算符不能被重載,其他運算符都能被重載2.  重載不能改變該運算符用于內置類型時的函義,程序員不能改變運算符+用于兩個int型時的含義。
3.  運算符函數的參數至少有一個必須是類的對象或者類的對象的引用。這種規定可以防止程序員運用運算符改變內置類型的函義。
8.4 重載不能改變運算符的優先級。
8.5 重載不能改變運算符的結合律。
8.6 重載不能改變運算符操作數的個數。比如+需要兩個操作數,則重載的+也必須要有兩個操作數。



本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/259310.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259310.shtml
英文地址,請注明出處:http://en.pswp.cn/news/259310.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux-redhat替換yum網絡源為centos網絡源

2019獨角獸企業重金招聘Python工程師標準>>> 1.為什么要替換 redhat系統使用yum命令安裝軟件時會出現This system is not registered with RHN. RHN support will be disabled. 原因是redhat的yum安裝軟件需要注冊&#xff0c;是收費的。而centos的yum源是免費的。這…

計算機如何打開無線網絡適配器,win7系統下網絡適配器打不開怎么解決

通常情況下我們的電腦中都會有一個網絡適配器&#xff0c;這是計算機聯網的設備&#xff0c;不過最近有深度技術win7旗艦版系統用戶卻遇到了網絡適配器打不開的情況&#xff0c;該怎么辦呢&#xff0c;接下來系統城小編就給大家分享一下win7系統下網絡適配器打不開的具體解決方…

cf13C Sequence(DP)

題意&#xff1a; N個數。a1...aN。 對于每個數而言&#xff0c;每一步只能加一或減一。 問最少總共需要多少步使得新序列是非遞減序列。 N (1?≤?N?≤?5000) 思路&#xff1a; *一個還不知道怎么證明的結論&#xff08;待證&#xff09;&#xff1a;最后的新序列b1...bN中…

【華為OD機試真題2023CD卷 JAVAJS】求幸存數之和

華為OD2023(C&D卷)機試題庫全覆蓋,刷題指南點這里 求幸存數之和 知識點數組 時間限制:1s 空間限制:256MB 限定語言:不限 題目描述: 給一個正整數列 nums,一個跳數 jump,及幸存數量 left。運算過程為:從索引為0的位置開始向后跳,中間跳過 J 個數字,命中索引為J+…

JavaScript編碼規范

1. 變量命名規范 變量名包括全局變量&#xff0c;局部變量&#xff0c;類變量&#xff0c;函數參數等等&#xff0c;他們都屬于這一類。 基本規范 變量命名都以類型前綴有意義的單詞組成&#xff0c;單詞首字母都需要大寫。例如&#xff1a;sUserName&#xff0c;nCount。 前綴…

大數據相加(轉載)

轉載&#xff1a;http://www.du52.com/text.php?id411 在這個大數據的年代里&#xff0c;我們不可避免會遇到兩個超越正常數據類型&#xff08;如int,long,long long&#xff09;的整數相加。顯然兩個大數據已經不能使用傳統的加號直接相加&#xff0c;但是相加的原理仍然是不…

微型計算機中使用的光盤應屬于什么媒體,計算機應用基礎練習題

計算機應用基礎一、判斷題1、微型機中硬盤工作時&#xff0c;應特別注意避免強烈震動【是】2、在Windows中&#xff0c;文件夾或文件的換名只有一種方法【否】3、用戶在連接網絡時&#xff0c;只可以使用域名&#xff0c;不可以使用IP地址【否】4、在WORD2007中&#xff0c;您可…

七天學會SALTSTACK自動化運維 (3)

七天學會SALTSTACK自動化運維 (3) 導讀SLSTOP.SLSMINION選擇器SLS文件的編譯總結參考鏈接導讀 SLS SLS (aka SaLt State file) 是 salkstack 中非常基礎和重要的一種配置文件. 重要程度僅次于minion和 master 的主配置文件(或者說是一種數據結構&#xff0c;使用yaml編寫), 因…

qt-embedded-linux-opensource-src-4.5.3移植到s3c6410

首先要有配置好的環境&#xff0c;本文使用的編譯環境如下&#xff1a; 主機系統&#xff1a;Ubuntu 9.10 主機編譯器&#xff1a;gcc 版本 4.4.1 交叉編譯器&#xff1a;arm-linux-gcc-4.0.1 軟件資源&#xff1a;qt-embedded-linux-opensource-src-4.5.3.tar.gz qt-x11-opens…

C++ 類中特殊的成員變量(常變量、引用、靜態)的初始化方法

<p style"line-height: 19px; margin: 10px auto; color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;">有些成員變量的數據類型比較特別&#xff0c;它們的初始化方式也和普通數據類型的成員變量有所不同…

【Intellij Idea】設置JDK

1&#xff0c;File-->Project Structure 說明&#xff1a;可以設置整個工程的JDK&#xff0c;也設置每個modules的JDK,但是一般整個工程的JDK. 2&#xff0c;或者通過快捷鍵&#xff1a;ctrlaltshifts 轉載于:https://www.cnblogs.com/august-shi/p/6655469.html

c#操作html dom元素,C#獲取與修改HTML DOM元素信息

用C#和JavaScript交互首先要解決C#讀取HTML DOM元素的問題。 在System.Windows.Browser命名空間下&#xff0c;有一個HtmlDocument、HtmlPage、HtmlElement等類&#xff0c;可以用來讀取HTML DOM元素。其讀取方法和JavaScript如出一轍。引用內容&#xff1a; //初始化一個docum…

Hibernate之工具類HibernateUtil

原創文章&#xff0c;轉載請注明&#xff1a;Hibernate之工具類HibernateUtil By Lucio.Yang 1.最簡單的工具類&#xff0c;實現SessionFactory的單例共享&#xff0c;session的管理 package com.cc.hibernate;import org.hibernate.Session; import org.hibernate.SessionFac…

c++讀取文件–結束條件的判斷

轉載&#xff1a;http://blog.sina.com.cn/s/blog_623e3c050100neei.html 在使用C/C讀文件的時候&#xff0c;一定都使用過eof&#xff08;&#xff09;這個函數來判斷文件是否為空或者是否讀到文件結尾了&#xff0c;也會在使用這個函數的過程中遇到一些問題&#xff0c;如不…

繪圖用計算機配置要求,繪圖筆記本電腦基本配置要求 繪圖筆記本推薦

現在很多工業圖、工程圖都需要用電腦來話&#xff0c;比如CAD、PS、三維畫圖這些軟件對電腦的配置要求還是比較高的&#xff0c;還有一些對色彩要求高的動畫軟件&#xff0c;那就更加需要配置了&#xff0c;下面小編就來簡單說說繪圖筆記本電腦最基本的配置要求以及繪圖筆記本推…

關于dllimport的使用

最近做一個動態加載插件的項目&#xff0c;插件中的dll 主要是各廠商各型號的讀卡器的通用類庫&#xff0c;stdapi.dll&#xff0c;WltRS.dll&#xff0c;有的還有進一步封裝的dll&#xff0c;主要是為了簡化通用類庫的操作。 這些類庫都是用C語言&#xff0c;或者C來編寫的&am…

如何在MVCsheet表單頁面的后臺取到頁面自定義字段的值?

問題&#xff1a;<asp:HiddenField id"test" runat"server"/> 在前臺加了這樣一個隱藏元素&#xff0c;mvcsheet表單頁面&#xff0c;如何在后臺獲取到值&#xff0c;直接使用 test.value一直是空的。 前臺經過一系列判斷處理寫入該值&#xff0c;需…

BigDecimal.setScale?處理java小數點

BigDecimal.setScale()方法用于格式化小數點 setScale(1)表示保留一位小數&#xff0c;默認用四舍五入方式 setScale(1,BigDecimal.ROUND_DOWN)直接刪除多余的小數位&#xff0c;如2.35會變成2.3 setScale(1,BigDecimal.ROUND_UP)進位處理&#xff0c;2.35變成2.4 setScale(1,B…

C++的字符串分割函數

轉載&#xff1a;http://blog.csdn.net/shanzhizi/article/details/17189267 C的字符串沒有分割函數&#xff0c;因此需要自己寫方便使用。而受到開發工具的影響&#xff0c;有很多用起來比較麻煩啦&#xff0c;下面這個比較不錯奧。 用STL進行字符串的分割 涉及到string類的…

計算機無法正常更新,無法完成更新正在撤銷更改請不要關閉你的計算機如何修復...

我們電腦開機的時候可能會遇到各種問題&#xff0c;比如就有用戶發現電腦開機的時候&#xff0c;一直提示無法完成更新正在撤銷更改請不要關閉你的計算機&#xff0c;等待了很長時間也進不去系統&#xff0c;遇到這樣的問題該怎么辦呢&#xff1f;不用擔心小編給大家支招&#…