一個公司的C/C++程式員面試問題

一個公司的C/C++程式員面試問題收藏自http://blog.csdn.net/w3nsir來自vchelp主要針對應界畢業的同學和一年以下工作經驗的人;希望對大家有協助;演算法:1.什麼是NPC,NP-Hard?2.起泡排序的時間複雜度是多少?說出至少一個比它更快的演算法;排序的極限時間複雜度是多少?3.有一個鏈表,如何判斷它是一個迴圈鏈表?如果鏈表是單向的呢?如果出現迴圈的點可能在任意位置呢?如果緩衝空間是有限的,比如是一個常數呢?如果只能使用2個緩衝呢?4.有一個檔案,儲存了若干個整數,

自己寫的線程池類(使用C++,pure API,Mutex,Event)

電腦網路實驗要求寫一個檔案傳輸程式。由於以前自己寫的線程類和SOCKET類丟失掉了(寢室電腦被盜),現在重寫這幾個類,乾脆就寫了一個線程池,用的是C++STL和純API。而且,為了保證這個線程類本身是安全執行緒的,我還使用了WinApi中的互斥量。同時仿照C#的類庫,線上程類中加入了Join方法。調用線程對象Join方法的線程將等待線程對象直到執行完畢。以下是原始碼。/////////////////////////////////MyThread.h//////////////////////

讀《The C Programming Language》(8)

第六章講的是結構體,包括structure, union和bit-fields。除了介紹基本知識,作者在舉例子的時候牽扯了一些資料結構的知識,比如二叉樹、雜湊表等,學起來很有意思。這章的內容上大學學C語言時好像沒有作為重點,學得稀裡糊塗,出來之後才發覺很有用。第一節 結構體基本知識這節一個要注意的地方是,在結構體struct point {    int x;    int y;};的聲明中,point是可以省略的,作者管它叫structure

讀《資料結構(C語言版)》(1)

今天開始認真讀這本清華版的資料結構,嚴蔚敏和吳偉民編著。也許你會奇怪我為什麼會選擇這本C語言描述的資料結構書,現在的資料結構不都用物件導向語言描述嗎?其實這本書不是我選的,而是我參加的機試指定的參考書。不過對於本書選用的語言,我倒有自己的看法。用C語言描述顯然有很多不便,但是在一個充斥著用OO描述資料結構的世界裡,從OO中抽身出來用C看待資料結構的思想,也許更能看清資料結構的本質。好了,言歸正傳。在今天這第一篇文章裡,我來探討一下資料結構的基本概念。作者一開篇就歸納了電腦解題的一般步驟:“首先要

指標變數也是傳值調用的(C語言)!

先看看下面一段代碼:#include <stdio.h>#include <stdlib.h>void F(int *pi){    pi = (int *)malloc(sizeof(int));}main(){    int *pi = NULL;    F(pi);    printf("%d/n", pi ==

在consolemode中使用 C/C++ 編譯器

文章目錄 HTML Tags and JavaScript tutorial  HTML Tags and JavaScript tutorial在consolemode中使用 C/C++ 編譯器我總是鼓勵 C/C++ 的學習者,在剛接觸這個程式語言的時候,先以 console mode(DOS-like)程式為目標。換言之,不要一開始就想寫 GUI 程式、想開視窗、想有眩目亮麗的畫面 -- 那隻是未走先飛,揠苗助長罷了。所謂

C語言不定參數

轉自: http://blog.chinaunix.net/space.php?uid=22566367&do=blog&id=382046最近,遇到一個c語言的不定參數問題。其實,對於c語言的不定參數問題,只需要三個函數就可以搞定了。這三個函數的標頭檔是<stdarg.h>,其實下面的三個函數都是一個宏定義(macro)。    這三個函數是:    void va_start(va_list ap, last);    type va_arg(va_list

C 標準庫 errno.h

 對於編程式來講,我們需要十分注意錯誤的返回,所以我想要謝謝我對於error.h的理解。         對於早期的unix程式採用的“其他地方”,是一個具有外部連結的資料對象。任何失敗的系統調用都從核心中儲存一個叫做errno的整型變數作為錯誤編,它或者返回-1,或者返回其他適當的無意義的值來說明一個錯誤。但是,如果兩個系統調用都發生了錯誤,但是還沒來的及輸出那麼其中一個錯誤就有可能被覆蓋掉。這是不安的。       數學錯誤:                      當一個結果在數值上太大

C macros __LINE__, __FILE__ and __func__

It is possible for a C program to print the currently executing line of source code, the file of the source code, and the name of the current function. The currently executing line is available in a preprocessor variable called__LINE__:#include

c++異常使用

// ExceptionStudy.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include <iostream>using namespace std;class CMyException{public:CMyException(void){cout << "CMyException constructor" <<

最簡單的C++中調用LUA函數原始碼

#include "stdafx.h"#include <iostream>extern "C" {#include "lua.h"#include "lauxlib.h"#include "lualib.h"}#pragma  comment(lib,"lua51.lib")using namespace std;int LuaAdd(lua_State* L,int x,int y){int

在C++中使用Apache的Log4cxx記錄日誌帖)

1.介紹Log4cxx是開放原始碼項目Apache Logging Service的子項目之一,是Java社區著名的log4j的c++移植版,用於為C++程式提供日誌功能,以便開發人員對目標程式進行調試和審計。有關log4cxx的更多資訊可以從Apache Logging Service的網站http://logging.apache.org獲得。當前的穩定版本為0.9.7,本文內容及範例程式碼都是基於此版本。此外,範例程式碼的編譯環境為Windows環境中的Microsoft Visual

MoveFile, MoveFileEx, CopyFile的幾點心得 C++

關鍵字:MoveFile, MoveFileEx, CopyFile, 檔案唯讀屬性, 檔案隱藏屬性,GetFileAttributes, SetFileAttributes, 檔案屬性的讀取與設定1. 檔案的唯讀和隱藏屬性對函數的影響1.1 移動操作(MoveFile和MoveFileEx)testcase 1: 設源檔案為c:/file1, 目標檔案file2, 且目標檔案不存在。測試結果:

C#自訂控制項3中方式

很多時候我們需要使用到自訂控制項 而在C#中 我們主要以3中方式建立自訂控制項,還有些需要注意的地方時常被忽略 比如Click事件,使用者控制項的Click並不像系統的Button單擊1.繼承自.NET類庫中已有的控制項 如TextBox MenuStrip Pannel2.繼承自Control類3.繼承自UserControl類 下面是3個小樣本1.繼承自類庫中現有的控制項下面自訂一個ExtendTextBox 該控制項擴充了一個屬性,可以現在文字框只能輸入數字,字母或者所有字元 1

C#自訂控制項的3種方式

很多時候我們需要使用到自訂控制項 而在C#中 我們主要以3中方式建立自訂控制項,還有些需要注意的地方時常被忽略 比如Click事件,使用者控制項的Click並不像系統的Button單擊1.繼承自.NET類庫中已有的控制項 如TextBox MenuStrip Pannel2.繼承自Control類3.繼承自UserControl類 下面是3個小樣本1.繼承自類庫中現有的控制項下面自訂一個ExtendTextBox 該控制項擴充了一個屬性,可以現在文字框只能輸入數字,字母或者所有字元 1

漢諾塔問題演算法(c語言控制台動畫示範版)

遞迴思想非常簡單也是最常見的演算法之一,其中一代表例題就是漢諾塔問題。解題的演算法很簡單:void Hanoi(int n,int A,int B,int C){    if(n>0)    {        Hanoi(n-1,a,c,b);        move(a,b);            show();                 Hanoi(n-1,c,b,a);   

Factory 方法模式(C++描述)

Factory 方法模式是對簡單原廠模式的改進。首先看看簡單原廠模式的缺點。軟體是之所以區別於程式,是因為它可以被人們使用,並能間接創造效益。需求是軟體開發的核心,忽視使用者的需求,軟體本身就沒有存在的價值。假如Nokia又新開發了一款新手機N99,對於採用簡單原廠模式設計的系統,我們的做法是:1.新增一個CN99類繼承自CNokia抽象類別,這個符合OCP原則。註:OCP:Open-Closed Principle開閉原則。OCP關注的是靈活性,改動是通過增加代碼進行的,而不是改動現有的代碼。

C++單例類對象的執行個體化和銷毀

在程式中,如果new了一個對象,那麼就應該負責對象的delete,但是如果這個對象是一個單例類的執行個體,那麼對象銷毀的時候就可能出現一些問題,例如Person是一個單例的類,但是同時有A,B,C三個人new了一個Person類的對象,那麼A,B,C三個人得到的是同一個執行個體對象,但是可能發生A在用完這個對象之後執行了delete操作,導致仍然在使用這個對象的B,C出現錯誤。   

C++多執行緒安全性,原子程式碼片段,Critical section應用

原子程式碼片段,Critical section 使用方法使用方法Example Code For Critical Sections with Win32 API/* Sample C/C++, Windows, link to kernel32.dll *///在windows平台下,調用了kernel32.dll的windows API函數#include <windows.h>static CRITICAL_SECTION cs;/* This is the

淺談C語言的可變參數

  C語言中有些函數使用可變參數,比如常見的int printf( const char* format, ...),第一個參數format是固定的,其餘的參數的個數和類型都不固定。  C語言用va_start等宏來處理這些可變參數。這些宏看起來很複雜,其實原理挺簡單,就是根據參數入棧的特點從最靠近第一個可變參數的固定參數開始,依次擷取每個可變參數的地址。下面我們來分析這些宏。  在stdarg.h標頭檔中,針對不同平台有不同的宏定義,我們選取X86平台下的宏定義:typedef char * 

總頁數: 4314 1 .... 284 285 286 287 288 .... 4314 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.