日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

中体骏彩C++面试题

發布時間:2023/11/27 生活经验 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 中体骏彩C++面试题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下面是我憑記憶想到的幾個題目,有需要的同學就拿去吧,我也算做了點善事.


中體駿彩C++筆試題
2013-11-18


1.指針的含義是:B
A.名字 B.地址 C.名稱 D.符號


2.給出下面的程序輸出:
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <locale>
using namespace std;
?
int main(int argc,char** argv){
? ? char str[] = "陶";
? ? char str1[] = "ztjcy中體駿彩";
? ? wchar_t str2[] = L"ztjcy中體駿彩";
? ? cout << strlen(str) << "," << sizeof(str) <<endl; ? ? ? ??
? ? cout << strlen(str1) << "," << sizeof(str1) <<endl; ? ?17,18?
? ? wcout << wcslen(str2)<< "," << sizeof(str2) <<endl; ? ?9,40
?
? ? return 0;
} ? ? ?
注意漢字占3個字節,是utf8編碼時,寬字符大小是2字節, ?




3.重載(overload)和重寫(overwrite)的區別?
重載overload:是函數名相同,參數列表不同 重載只是在類的內部存在。但是不能靠返回類型來判斷。
重寫override:也叫做覆蓋。子類重新定義父類中有相同名稱和參數的虛函數。函數特征相同。但是具體實現不同,主要是在繼承關系中出現的 。




4.指出下面程序的錯誤?
class A{
public:
A(){ p = this; }
? ? ? ? ~A(){ if(p){
delete p;
p = null;
}
}
private:
A* p;
}




5.線程A在無限制地循環運行,線程B采用什么方式能讓線程A安全退出?
有很多種退出線程的方法,這些方法的被稱做線程之間的消息傳遞、同步、共享等。


終止線程,可以向線程發送消息/信號,或者一個互斥量,或者改變內存中的變量等,來通知線程,當線程收到這些消息/信號后,先做一些處理,比如釋放掉線程內的資源,保存線程的運行結果等,然后自己退出線程,并返回一個UINT值。




6.TCP和UDP的區別?
TCP---傳輸控制協議,提供的是面向連接、可靠的字節流服務。當客戶和服務器彼此交換數據前,必須先在雙方之間建立一個TCP連接,之后才能傳輸數據。TCP提供超時重發,丟棄重復數據,檢驗數據,流量控制等功能,保證數據能從一端傳到另一端。
UDP---用戶數據報協議,是一個簡單的面向數據報的運輸層協議。UDP不提供可靠性,它只是把應用程序傳給IP層的數據報發送出去,但是并不能保證它們能到達目的地。由于UDP在傳輸數據報前不用在客戶和服務器之間建立一個連接,且沒有超時重發等機制,故而傳輸速度很快




7.PeekMessage()和GetMessage()的區別?
相同點:
? ? ? PeekMessage函數與GetMessage函數都用于查看應用程序消息隊列,有消息時將隊列中的消息派發出去。
不同點:
? ? ? 無論應用程序消息隊列是否有消息,PeekMessage函數都立即返回,程序得以繼續執行后面的語句(無消息則執行其它指令,有消息時一般要將消息派發出去,再執行其它指令)。GetMessage函數只有在消息隊列中有消息時返回,隊列中無消息就會一直等,直至下一個消息出現時才返回。在等的這段時間,應用程序不能執行任何指令。
(從他們的不同點上來看,PeekMessage函數有點像“乞丐行乞”,有你就施舍點,沒有也不搶。GetMessage函數有點像“強盜打劫”,有你得給,沒有我就等你什么時候有了再給,這段時間我什么都不干,我就等你。)




8.輸入一個整數,將它輸出為以逗號分隔的字符串,比如1234567890,輸出為"1,234,567,890"?
#include <iostream>
#include <string>
using namespace std;
int main()
{
? ? ? ? //此程序用來格式化數字為“逗號分隔千位”的數值表示法,如:23,343,434,436
? ? ? ? string str_number;
? ? ? ? int str_length;
? ? ? ? int swap_number;
? ? ? ? cout<<"please enter an integer >= 1000:"<<endl;
? ? ? ? cin>>str_number;
? ? ? ? str_length = str_number.length();
? ? ? ? swap_number = str_length % 3;
? ? ? ? if(swap_number != 0)
? ? ? ? {
? ? ? ? ? ? ? ? cout<<str_number.substr(0,swap_number);
? ? ? ? ? ? ? ? for (int i=swap_number;i<=str_length-3;i=i+3)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? cout<<","<<str_number.substr(i,3);
? ? ? ? ? ? ? ? }
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? ? ? for (int i=0;i<=str_length-3;i=i+3)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? cout<<str_number.substr(i,3);
? ? ? ? ? ? ? ? ? ? ? ? if(i != str_length-3)
? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cout<<",";
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? }
? ? ? ? cout<<endl;
? ? ? ? return 0;
}




9.給定一個大小為100的整數數組,要求隨機地插入1......100中的數,要求不能插入重復的數,給出最高效的解法?
這題主要是借助stl中的set數據結構和rand()來實現高效的解法.set數據結構的一個特點是,鍵值合一,自動排序.
這里注意rand()的頭文件是stdlib.h文件.下面是實現的參考代碼




#include <stdlib.h>
#include <iostream>
#include <set>
using namespace std;


void create_rand(int len){
? ? if(len <= 0){
? ? ? ? cout << "please input a invalid value: " << endl;
? ? ? ? return;
? ? }


? ? set<int> random_set;
? ? do{
? ? ? ? int val = rand()%len;
? ? ? ? if(val == 0)
? ? ? ? ? ? val = len;
? ? ? ? if(!random_set.count(val))
? ? ? ? ? ? random_set.insert(val);
? ? }while(random_set.size()<len);


? ? cout << "random array between 1 and" << len << ": ?" ?<< endl;
? ? set<int>::iterator set_it = random_set.begin();
? ? while(set_it != random_set.end()){
? ? ? ? cout << *set_it << endl;
? ? ? ? ++set_it;
? ? }
}


int main(int argc, char** argv){
? ? create_rand(100);


? ? return 0;
}


這個是php的實現版本:
<?php
? ? function create_rand(){
? ? ? ? $arr = array();
? ? ? ? do{
? ? ? ? ? ? $rand = rand(1,100);
? ? ? ? ? ? if(!in_array($rand))
? ? ? ? ? ? ? ?$arr[] = $rand;?
? ? ? ? }while(count($arr)<100);


? ? ? ? return $arr;
? ? }


? ? echo "create random integers between 1 and 100:\n";
? ? var_dump(create_rand());
?>






總結

以上是生活随笔為你收集整理的中体骏彩C++面试题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。