锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 1.鏄笉鏄竴涓埗綾誨啓浜嗕竴涓獀irtual 鍑芥暟錛屽鏋滃瓙綾昏鐩栧畠鐨勫嚱鏁頒笉鍔爒irtual ,涔熻兘瀹炵幇澶氭? virtual淇グ絎︿細(xì)琚殣褰㈢戶鎵跨殑銆?/font>private 涔熻闆嗘垚錛屽彧浜嬫淳鐢熺被娌℃湁璁塊棶鏉冮檺鑰屽凡銆?/font>virtual鍙姞鍙笉鍔犮?/font>瀛愮被鐨勭┖闂撮噷鏈夌埗綾葷殑鎵鏈夊彉閲?static闄ゅ)銆?/font>鍚屼竴涓嚱鏁板彧瀛樺湪涓涓疄浣?inline闄ゅ)銆?/font>瀛愮被瑕嗙洊瀹冪殑鍑芥暟涓嶅姞virtual ,涔熻兘瀹炵幇澶氭併?/font>鍦ㄥ瓙綾葷殑絀洪棿閲岋紝鏈夌埗綾葷殑縐佹湁鍙橀噺銆傜鏈夊彉閲忎笉鑳界洿鎺ヨ闂?/font> #include <iostream> 鏂規(guī)硶榪樻湁寰堝銆?/font> 鍐呭瓨綆$悊鏄搷浣滅郴緇熶腑鐨勯噸瑕侀儴鍒嗭紝涓や笁鍙ヨ瘽鎭愭曡皝涔熻涓嶆竻妤氬惂锝烇綖 褰撶▼搴忚繍琛屾椂闇瑕佷粠鍐呭瓨涓鍑鴻繖孌電▼搴忕殑浠g爜銆備唬鐮佺殑浣嶇疆蹇呴』鍦ㄧ墿鐞嗗唴瀛樹腑鎵嶈兘琚繍琛岋紝鐢變簬鐜板湪鐨勬搷浣滅郴緇熶腑鏈夐潪甯稿鐨勭▼搴忚繍琛岀潃錛屽唴瀛樹腑涓嶈兘澶熷畬鍏ㄦ斁涓嬶紝鎵浠ュ紩鍑轟簡铏氭嫙鍐呭瓨鐨勬蹇點傛妸鍝簺涓嶅父鐢ㄧ殑紼嬪簭鐗囨柇灝辨斁鍏ヨ櫄鎷熷唴瀛橈紝褰撻渶瑕佺敤鍒板畠鐨勬椂鍊欏湪load鍏ヤ富瀛橈紙鐗╃悊鍐呭瓨錛変腑銆傝繖涓氨鏄唴瀛樼鐞嗘墍瑕佸仛鐨勪簨銆傚唴瀛樼鐞嗚繕鏈夊彟澶栦竴浠朵簨闇瑕佸仛錛氳綆楃▼搴忕墖孌靛湪涓誨瓨涓殑鐗╃悊浣嶇疆錛屼互渚緾PU璋冨害銆?/font> 鍐呭瓨綆$悊鏈夊潡寮忕鐞嗭紝欏靛紡綆$悊錛屾寮忓拰孌甸〉寮忕鐞嗐傜幇鍦ㄥ父鐢ㄦ欏靛紡綆$悊 鍧楀紡綆$悊錛氭妸涓誨瓨鍒嗕負(fù)涓澶у潡銆佷竴澶у潡鐨勶紝褰撴墍闇鐨勭▼搴忕墖鏂笉鍦ㄤ富瀛樻椂灝卞垎閰嶄竴鍧椾富瀛樼┖闂達(dá)紝鎶婄▼ 搴忕墖鏂璴oad鍏ヤ富瀛橈紝灝辯畻鎵闇鐨勭▼搴忕墖搴﹀彧鏈夊嚑涓瓧鑺備篃鍙兘鎶婅繖涓鍧楀垎閰嶇粰瀹冦傝繖鏍蜂細(xì)閫犳垚寰堝ぇ鐨勬氮璐癸紝騫沖潎嫻垂浜?0錛呯殑鍐呭瓨絀洪棿錛屼絾鏃舵槗浜庣鐞嗐?/font> 欏靛紡綆$悊錛氭妸涓誨瓨鍒嗕負(fù)涓欏典竴欏電殑錛屾瘡涓欏電殑絀洪棿瑕佹瘮涓鍧椾竴鍧楃殑絀洪棿灝忓緢澶氾紝鏄劇劧榪欑鏂規(guī)硶鐨勭┖闂村埄鐢ㄧ巼瑕佹瘮鍧楀紡綆$悊楂樺緢澶氥?/font> 孌靛紡綆$悊錛氭妸涓誨瓨鍒嗕負(fù)涓孌典竴孌電殑錛屾瘡涓孌電殑絀洪棿鍙堣姣斾竴欏典竴欏電殑絀洪棿灝忓緢澶氾紝榪欑鏂規(guī)硶鍦ㄧ┖闂村埄鐢ㄧ巼涓婂張姣旈〉寮忕鐞嗛珮寰堝錛屼絾鏄篃鏈夊彟澶栦竴涓己鐐廣備竴涓▼搴忕墖鏂彲鑳戒細(xì)琚垎涓哄嚑鍗佹錛岃繖鏍峰緢澶氭椂闂村氨浼?xì)琚珛躬璐瑰湪璁〗帡姣忎竴孌電殑鐗╃悊鍦板潃涓婏紙璁$畻鏈烘渶鑰楁椂闂寸殑澶у閮界煡閬撴槸I/O鍚э級銆?/font> 孌甸〉寮忕鐞嗭細(xì)緇撳悎浜嗘寮忕鐞嗗拰欏靛紡綆$悊鐨勪紭鐐廣傛妸涓誨瓨鍒嗕負(fù)鑻ュ共欏碉紝姣忎竴欏靛張鍒嗕負(fù)鑻ュ共孌點傚ソ澶勫氨寰堟槑鏄撅紝涓嶇敤鎴戝璇翠簡鍚с?/font> 鍚勭鍐呭瓨綆$悊閮芥湁瀹冭嚜宸辯殑鏂規(guī)硶鏉ヨ綆楀嚭紼嬪簭鐗囨柇鍦ㄤ富瀛樹腑鐨勭墿鐞嗗湴鍧錛屽叾瀹為兘寰堢浉浼箋?/font> 榪欏彧鏄竴涓ぇ姒傝屽凡錛屼笉瓚充互璇存槑鍐呭瓨綆$悊鐨勭毊姣涖傛棤璁哄摢涓鏈搷浣滅郴緇熶功涓婇兘鏈夎緇嗙殑璁茶В int main(int argc, char* argv[]) a /= SQR(k+m)/SQR(k+m); return 0; define 鍙槸瀹氫箟鑰屽凡錛屽湪緙栨嫨鏃跺彧鏄畝鍗曚唬鎹*X鑰屽凡錛屽茍涓嶇粡榪囩畻鏈硶鍒欑殑 a /= (k+m)*(k+m)/(k+m)*(k+m); -------------------------------------------------------------------------- (1)const char *p 涓涓寚鍚慶har綾誨瀷鐨刢onst瀵硅薄鎸囬拡錛宲涓嶆槸甯擱噺,鎴戜滑鍙互淇敼p鐨勫鹼紝浣垮叾鎸囧悜涓嶅悓鐨刢har錛屼絾鏄笉鑳芥敼鍙樺畠鎸囧悜闈瀋har瀵硅薄錛屽錛?br>const char *p; (2)char const *p 1)2)鏄竴鏍風(fēng)殑錛屾鏃?p鍙互淇敼錛岃宲涓嶈兘淇敼銆俻涓篶onst pointer.鍗蟲寚鍚慶onst 瀵硅薄鐨勬寚閽堬紝瀵硅薄鍙銆?/font> 甯擱噺鎸囬拡錛屾寚閽堟湰韜墍鎸囧悜鐨勫湴鍧涓嶅彲鏀瑰彉銆?/p>
(4)const char * const p -------------------------------------------------------------------------- 濡傛灉灝戜簡涓?鍙?緙栬瘧鏃跺氨浼?xì)鎶ラ?鍑忓皯浜嗗嚭閿欑殑鍙兘琛?鍙互媯嫻嬪嚭鏄惁灝戜簡= -------------------------------------------------------------------------- A: A: -------------------------------------------------------------------------- 鏁扮粍瓚婄晫 -------------------------------------------------------------------------- 鏁扮粍瓚婄晫 -------------------------------------------------------------------------- ==鏁扮粍瓚婄晫 -------------------------------------------------------------------------- #define MAX_SRM 256 DSN get_SRM_no() 緋葷粺浼?xì)鍒濆鍖杝tatic int鍙橀噺涓?,浣嗚鍊間細(xì)涓鐩翠繚瀛?鎵璋撶殑涓嶅彲閲嶅叆... -------------------------------------------------------------------------- 6錛?錛?錛? -------------------------------------------------------------------------- unsigned char c; v.c = 100; } 3 -------------------------------------------------------------------------- A1: 32浣嶇殑緋葷粺涓嬶紝 A2: int a = ~0; 浠庢満鍒朵笂錛歝鏄潰鍚戣繃紼嬬殑錛堜絾c涔熷彲浠ョ紪鍐欓潰鍚戝璞$殑紼嬪簭錛夛紱c++鏄潰鍚戝璞$殑錛屾彁渚涗簡綾匯備絾鏄紝 浠庨傜敤鐨勬柟鍚戯細(xì)c閫傚悎瑕佹眰浠g爜浣撶Н灝忕殑錛屾晥鐜囬珮鐨勫満鍚堬紝濡傚祵鍏ュ紡錛沜++閫傚悎鏇翠笂灞傜殑錛屽鏉傜殑錛?nbsp; llinux鏍稿績澶ч儴鍒嗘槸c鍐欑殑錛屽洜涓哄畠鏄郴緇熻蔣浠訛紝鏁堢巼瑕佹眰鏋侀珮銆?/font> 浠庡悕縐頒笂涔熷彲浠ョ湅鍑猴紝c++姣攃澶氫簡+錛岃鏄巆++鏄痗鐨勮秴闆嗭紱閭d負(fù)浠涔堜笉鍙玞+鑰屽彨c++鍛紝鏄洜涓篶++姣?br>c鏉ヨ鎵╁厖鐨勪笢瑗垮お澶氫簡錛屾墍浠ュ氨鍦╟鍚庨潰鏀句笂涓や釜+錛涗簬鏄氨鎴愪簡c++ C璇█鏄粨鏋勫寲緙栫▼璇█錛孋++鏄潰鍚戝璞$紪紼嬭璦銆?br>C++渚ч噸浜庡璞¤屼笉鏄繃紼嬶紝渚ч噸浜庣被鐨勮璁¤屼笉鏄昏緫鐨勮璁°?/font> -------------------------------------------------------------------------- void main() 鏂規(guī)硶浜岋細(xì) 鏂規(guī)硶涓夛細(xì) -------------------------------------------------------------------------- a.t = 'b';鏁堟灉鐩稿綋浜?a.t= 'b' & 0xf; 'b' --> 01100010 -------------------------------------------------------------------------- 60 -------------------------------------------------------------------------- 榪涚▼闂撮氫俊鐨勬柟寮忔湁 鍏變韓鍐呭瓨錛?綆¢亾 錛孲ocket 錛屾秷鎭槦鍒?, DDE絳?/font> -------------------------------------------------------------------------- 7 struct CELL // Declare CELL bit field 絳? -------------------------------------------------------------------------- A* p; 絳? -------------------------------------------------------------------------- typedef struct class c }; 杈撳嚭cout<<sizeof(c)<<endl;鐨勭粨鏋? 絳? 鍙? sizeof(union)錛屼互緇撴瀯閲岄潰size鏈澶х殑涓簎nion鐨剆ize ---------------------------------------------------------------------------------- 25.i鏈鍚庣瓑浜庡灝? 絳? -------------------------------------------------------------------------- 絳? -------------------------------------------------------------------------- 絳? -------------------------------------------------------------------------- employee緇撴瀯濡備笅錛歟mployee_id, employee_name, depart_id,depart_name,wage 絳? -------------------------------------------------------------------------- 絳? -------------------------------------------------------------------------- #include <iostream.h> class A A: -------------------------------------------------------------------------- 絳? return (*pucData == 0x22); -------------------------------------------------------------------------- 絳? 2.Mutex 3.Semaphore 4.Event -------------------------------------------------------------------------- 寤鴻〃 go create table [order] go --鏌ヨ -------------------------------------------------------------------------- A:閿欒--鍙傛暟鐨勫兼敼鍙樺悗錛屼笉浼?xì)浼犲?br>GetMemory騫朵笉鑳戒紶閫掑姩鎬佸唴瀛橈紝Test鍑芥暟涓殑 str涓鐩撮兘鏄?NULL銆?br>strcpy(str, "hello world");灝嗕嬌紼嬪簭宕╂簝銆?/p>
淇敼濡備笅: 鏂規(guī)硶浜?void GetMemory2(char **p)鍙樹負(fù)浜岀駭鎸囬拡. -------------------------------------------------------------------------- 浠g爜鐗囨柇: -------------------------------------------------------------------------- 絳? 絎竴嬈$О,濡傛灉鐩哥瓑鐨勮瘽錛岃繖66涓偗瀹氶兘鏄湡鐨?浠庤繖66涓腑鍙栧嚭35涓潵,涓庡墿涓嬬殑娌$О榪囩殑35涓瘮 鏂規(guī)硶浜? -------------------------------------------------------------------------- 絳? -------------------------------------------------------------------------- 絳? fun( a ); -------------------------------------------------------------------------- 絳? -------------------------------------------------------------------------- 絳?瀵?br>榪欎釜 sizeof鏄紪璇戞椂榪愮畻絎︼紝緙栬瘧鏃跺氨紜畾浜?br>鍙互鐪嬫垚鍜屾満鍣ㄦ湁鍏崇殑甯擱噺銆?/p>
]]>
--------------------------------------------------------------------------
2.杈撳叆涓涓瓧絎︿覆錛屽皢鍏墮嗗簭鍚庤緭鍑恒傦紙浣跨敤C++錛屼笉寤鴻鐢ㄤ吉鐮侊級
using namespace std;
void main()
{
char a[50];memset(a,0,sizeof(a));
int i=0,j;
char t;
cin.getline(a,50,'\n');
for(i=0,j=strlen(a)-1;i<strlen(a)/2;i++,j--)
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
cout<<a<<endl;
}
--------------------------------------------------------------------------
3.璇風(fēng)畝鍗曟弿榪癢indows鍐呭瓨綆$悊鐨勬柟娉曘?/font>
鎴戝厛璇翠釜澶ф錛屽笇鏈涜兘澶熸姏鐮栧紩鐜夊惂
--------------------------------------------------------------------------
4.
#include "stdafx.h"
#define SQR(X) X*X
{
int a = 10;
int k = 2;
int m = 1;
printf("%d\n",a);
}
榪欓亾棰樼洰鐨勭粨鏋滄槸浠涔堝晩?
=>a /= (k+m)*1*(k+m);
=>a = a/9;
=>a = 1;
5.
const 絎﹀彿甯擱噺錛?br>(1)const char *p
(2)char const *p
(3)char * const p
璇存槑涓婇潰涓夌鎻忚堪鐨勫尯鍒紱
濡傛灉const浣嶄簬鏄熷彿鐨勫乏渚э紝鍒檆onst灝辨槸鐢ㄦ潵淇グ鎸囬拡鎵鎸囧悜鐨勫彉閲忥紝鍗蟲寚閽堟寚鍚戜負(fù)甯擱噺錛?br>濡傛灉const浣嶄簬鏄熷彿鐨勫彸渚э紝const灝辨槸淇グ鎸囬拡鏈韓錛屽嵆鎸囬拡鏈韓鏄父閲忋?/font>
char c1='a';
char c2='b';
p=&c1;//ok
p=&c2;//ok
*p=c1;//error
(3)char * const p
榪欑鏄湴鍧鍙?qiáng)鎸囧悜瀵硅薄閮戒笉鑳戒慨鏀广?/font>
6.涓嬮潰鏄疌璇█涓袱縐峣f璇彞鍒ゆ柇鏂瑰紡銆傝闂摢縐嶅啓娉曟洿濂斤紵涓轟粈涔堬紵
int n;
if (n == 10) // 絎竴縐嶅垽鏂柟寮?br> if (10 == n) // 絎簩縐嶅垽鏂柟寮?/font>
7.涓嬮潰鐨勪唬鐮佹湁浠涔堥棶棰橈紵
void DoSomeThing(...)
{
char* p;
...
p = malloc(1024); // 鍒嗛厤1K鐨勭┖闂?br> if (NULL == p)
return;
...
p = realloc(p, 2048); // 絀洪棿涓嶅錛岄噸鏂板垎閰嶅埌2K
if (NULL == p)
return;
...
}
p = malloc(1024); 搴旇鍐欐垚錛?p = (char *) malloc(1024);
娌℃湁閲婃斁p鐨勭┖闂達(dá)紝閫犳垚鍐呭瓨娉勬紡銆?/font>
--------------------------------------------------------------------------
8.涓嬮潰鐨勪唬鐮佹湁浠涔堥棶棰橈紵騫惰緇欏嚭姝g‘鐨勫啓娉曘?br>void DoSomeThing(char* p)
{
char str[16];
int n;
assert(NULL != p);
sscanf(p, "%s%d", str, n);
if (0 == strcmp(str, "something"))
{
...
}
}
sscanf(p, "%s%d", str, n); 榪欏彞璇ュ啓鎴愶細(xì) sscanf(p, "%s%d", str, &n);
9.涓嬮潰浠g爜鏈変粈涔堥敊璇?
Void test1()
{
char string[10];
char *str1="0123456789";
strcpy(string, str1);
}
10.涓嬮潰浠g爜鏈変粈涔堥棶棰?
Void test2()
{
char string[10], str1[10];
for(i=0; i<10;i++)
{
str1[i] ='a';
}
strcpy(string, str1);
}
11.涓嬮潰浠g爜鏈変粈涔堥棶棰?
Void test3(char* str1)
{
char string[10];
if(strlen(str1)<=10)
{
strcpy(string, str1);
}
}
==strcpy鎷瘋礉鐨勭粨鏉熸爣蹇楁槸鏌ユ壘瀛楃涓蹭腑鐨刓0 鍥犳濡傛灉瀛楃涓蹭腑娌℃湁閬囧埌\0鐨勮瘽 浼?xì)涓鐩村鍒訛紝鐩村埌閬囧埌\0,涓婇潰鐨?23閮藉洜姝や駭鐢熻秺鐣岀殑鎯呭喌
寤鴻浣跨敤 strncpy 鍜?memcpy
12.涓嬮潰浠g爜鏈変粈涔堥棶棰?
{
static int SRM_no; //鏄笉鏄繖閲屾病璧嬪垵鍊鹼紵
int I;
for(I=0;I<MAX_SRM;I++,SRM_no++)
{
SRM_no %= MAX_SRM;
if(MY_SRM.state==IDLE)
{
break;
}
}
if(I>=MAX_SRM)
return (NULL_SRM);
else
return SRM_no;
}
13.鍐欏嚭榪愯緇撴灉:
{// test1
char str[] = "world"; cout << sizeof(str) << ": ";
char *p = str; cout << sizeof(p) << ": ";
char i = 10; cout << sizeof(i) << ": ";
void *pp = malloc(10); cout << sizeof(p) << endl;
}
14.鍐欏嚭榪愯緇撴灉:
{// test2
union V {
struct X {
unsigned char s1:2;
unsigned char s2:3;
unsigned char s3:3;
} x;
} v;
printf("%d", v.x.s3);
15.鐢–++鍐欎釜紼嬪簭錛屽浣曞垽鏂竴涓搷浣滅郴緇熸槸16浣嶈繕鏄?2浣嶇殑錛熶笉鑳界敤sizeof()鍑芥暟
16浣嶇殑緋葷粺涓嬶紝
int i = 65536;
cout << i; // 杈撳嚭0錛?br>int i = 65535;
cout << i; // 杈撳嚭-1錛?/font>
int i = 65536;
cout << i; // 杈撳嚭65536錛?br>int i = 65535;
cout << i; // 杈撳嚭65535錛?/font>
if( a>65536 )
{
cout<<"32 bit"<<endl;
}
else
{
cout<<"16 bit"<<endl;
}
--------------------------------------------------------------------------
16.C鍜孋++鏈変粈涔堜笉鍚?
c++緙栧啓闈㈠悜瀵硅薄鐨勭▼搴忔瘮c瀹規(guī)槗
17.鍦ㄤ笉鐢ㄧ涓夋柟鍙傛暟鐨勬儏鍐典笅錛屼氦鎹袱涓弬鏁扮殑鍊?br>#include <stdio.h>
{
int i=60;
int j=50;
i=i+j;
j=i-j;
i=i-j;
printf("i=%d\n",i);
printf("j=%d\n",j);
}
i^=j;
j^=i;
i^=j;
// 鐢ㄥ姞鍑忓疄鐜幫紝鑰屼笖涓嶄細(xì)婧㈠嚭
a = a+b-(b=a)
18.鏈夊叧浣嶅煙鐨勯潰璇曢錛堜負(fù)浠涔堣緭鍑虹殑鏄竴涓鎬殑瀛楃錛?/font>
'b' & 0xf -->>00000010
鎵浠ヨ緭鍑篈scii鐮佷負(fù)2鐨勭壒孌婂瓧絎?/font>
char t:4;灝辨槸4bit鐨勫瓧絎﹀彉閲忥紝鍚屾牱
unsigned short i:8;灝辨槸8bit鐨勬棤絎﹀彿鐭暣褰㈠彉閲?/font>
19.int i=10, j=10, k=3; k*=i+j; k鏈鍚庣殑鍊兼槸?
20.榪涚▼闂撮氫俊鐨勬柟寮忔湁?
21.
struct A
{
char t:4;
char k:4;
unsigned short i:8;
unsigned long m;
}
sizeof(A)=?錛堜笉鑰冭檻杈圭晫瀵歸綈錛?/font>
{
unsigned character : 8; // 00000000 ????????
unsigned foreground : 3; // 00000??? 00000000
unsigned intensity : 1; // 0000?000 00000000
unsigned background : 3; // 0???0000 00000000
unsigned blink : 1; // ?0000000 00000000
} screen[25][80]; // Array of bit fields
浜屻佷綅緇撴瀯
浣嶇粨鏋勬槸涓縐嶇壒孌婄殑緇撴瀯, 鍦ㄩ渶鎸変綅璁塊棶涓涓瓧鑺傛垨瀛楃殑澶氫釜浣嶆椂, 浣嶇粨鏋?
姣旀寜浣嶈繍綆楃鏇村姞鏂逛究銆?
浣嶇粨鏋勫畾涔夌殑涓鑸艦寮忎負(fù):
struct浣嶇粨鏋勫悕{
鏁版嵁綾誨瀷 鍙橀噺鍚? 鏁村瀷甯告暟;
鏁版嵁綾誨瀷 鍙橀噺鍚? 鏁村瀷甯告暟;
} 浣嶇粨鏋勫彉閲?
鍏朵腑: 鏁版嵁綾誨瀷蹇呴』鏄痠nt(unsigned鎴杝igned)銆?鏁村瀷甯告暟蹇呴』鏄潪璐熺殑鏁?
鏁? 鑼冨洿鏄?~15, 琛ㄧず浜岃繘鍒朵綅鐨勪釜鏁? 鍗寵〃紺烘湁澶氬皯浣嶃?
鍙橀噺鍚嶆槸閫夋嫨欏? 鍙互涓嶅懡鍚? 榪欐牱瑙勫畾鏄負(fù)浜嗘帓鍒楅渶瑕併?
渚嬪: 涓嬮潰瀹氫箟浜嗕竴涓綅緇撴瀯銆?
struct{
unsigned incon: 8; /*incon鍗犵敤浣庡瓧鑺傜殑0~7鍏?浣?/
unsigned txcolor: 4;/*txcolor鍗犵敤楂樺瓧鑺傜殑0~3浣嶅叡4浣?/
unsigned bgcolor: 3;/*bgcolor鍗犵敤楂樺瓧鑺傜殑4~6浣嶅叡3浣?/
unsigned blink: 1; /*blink鍗犵敤楂樺瓧鑺傜殑絎?浣?/
}ch;
浣嶇粨鏋勬垚鍛樼殑璁塊棶涓庣粨鏋勬垚鍛樼殑璁塊棶鐩稿悓銆?
渚嬪: 璁塊棶涓婁緥浣嶇粨鏋勪腑鐨刡gcolor鎴愬憳鍙啓鎴?
ch.bgcolor
娉ㄦ剰:
1. 浣嶇粨鏋勪腑鐨勬垚鍛樺彲浠ュ畾涔変負(fù)unsigned, 涔熷彲瀹氫箟涓簊igned, 浣嗗綋鎴愬憳闀?
搴︿負(fù)1鏃? 浼?xì)琚湄?fù)鏄痷nsigned綾誨瀷銆傚洜涓哄崟涓綅涓嶅彲鑳藉叿鏈夌鍙楓?
2. 浣嶇粨鏋勪腑鐨勬垚鍛樹笉鑳戒嬌鐢ㄦ暟緇勫拰鎸囬拡, 浣嗕綅緇撴瀯鍙橀噺鍙互鏄暟緇勫拰鎸囬拡,
濡傛灉鏄寚閽? 鍏舵垚鍛樿闂柟寮忓悓緇撴瀯鎸囬拡銆?
3. 浣嶇粨鏋勬婚暱搴?浣嶆暟), 鏄悇涓綅鎴愬憳瀹氫箟鐨勪綅鏁頒箣鍜? 鍙互瓚呰繃涓や釜瀛?
鑺傘?
4. 浣嶇粨鏋勬垚鍛樺彲浠ヤ笌鍏跺畠緇撴瀯鎴愬憳涓璧蜂嬌鐢ㄣ?
渚嬪:
struct info{
char name[8];
int age;
struct addr address;
float pay;
unsigned state: 1;
unsigned pay: 1;
}workers;
涓婁緥鐨勭粨鏋勫畾涔変簡鍏充簬涓涓伐浜虹殑淇℃伅銆傚叾涓湁涓や釜浣嶇粨鏋勬垚鍛? 姣忎釜浣嶇粨
鏋勬垚鍛樺彧鏈変竴浣? 鍥犳鍙崰涓涓瓧鑺備絾淇濆瓨浜嗕袱涓俊鎭? 璇ュ瓧鑺備腑絎竴浣嶈〃紺哄伐
浜虹殑鐘舵? 絎簩浣嶈〃紺哄伐璧勬槸鍚﹀凡鍙戞斁銆傜敱姝ゅ彲瑙佷嬌鐢ㄤ綅緇撴瀯鍙互鑺傜渷瀛樿串絀洪棿銆?/font>
--------------------------------------------------------------------------
22.涓嬮潰鐨勫嚱鏁板疄鐜板湪涓涓浐瀹氱殑鏁頒笂鍔犱笂涓涓暟錛屾湁浠涔堥敊璇紝鏀規(guī)
int add_n(int n)
{
static int i=100;
i+=n;
return i;
}
鍥犱負(fù)static浣垮緱i鐨勫間細(xì)淇濈暀涓婃鐨勫箋?br>鍘繪帀static灝卞彲浜?/font>
23.涓嬮潰鐨勪唬鐮佹湁浠涔堥棶棰?
class A
{
public:
A() { p=this; }
~A() { if(p!=NULL) { delete p; p=NULL; } }
};
浼?xì)寮曡典h棤闄愰掑綊
24.
union a {
int a_int1;
double a_double;
int a_int2;
};
{
a a1;
char y;
} b;
{
double c_double;
b b1;
a a2;
VC6鐜涓嬪緱鍑虹殑緇撴灉鏄?2
鎴?sun)鍦╒C6.0+win2k涓嬪仛榪囪瘯楠?
short - 2
int-4
float-4
double-8
鎸囬拡-4
int i = 1;
int j = i++;
if((i>j++) && (i++ == j)) i+=j;
i = 5
26.
unsigned short array[]={1,2,3,4,5,6,7};
int i = 3;
*(array + i) = ?
4
27.
class A
{
virtual void func1()錛?br> void func2();
}
Class B: class A
{
void func1(){cout << "fun1 in class B" << endl;}
virtual void func2(){cout << "fun2 in class B" << endl;}
}
A, A涓殑func1鍜孊涓殑func2閮芥槸铏氬嚱鏁?
B, A涓殑func1鍜孊涓殑func2閮戒笉鏄櫄鍑芥暟.
C, A涓殑func2鏄櫄鍑芥暟.錛孊涓殑func1涓嶆槸铏氬嚱鏁?
D, A涓殑func2涓嶆槸铏氬嚱鏁幫紝B涓殑func1鏄櫄鍑芥暟.
A
28.
鏁版嵁搴擄細(xì)鎶藉嚭閮ㄩ棬錛屽鉤鍧囧伐璧勶紝瑕佹眰鎸夐儴闂ㄧ殑瀛楃涓查『搴忔帓搴忥紝涓嶈兘鍚湁"human resource"閮ㄩ棬錛?
select depart_name, avg(wage)
from employee
where depart_name <> 'human resource'
group by depart_name
order by depart_name
29.
緇欏畾濡備笅SQL鏁版嵁搴擄細(xì)Test(num INT(4)) 璇風(fēng)敤涓鏉QL璇彞榪斿洖num鐨勬渶灝忓鹼紝浣嗕笉璁鎬嬌鐢ㄧ粺璁″姛鑳斤紝濡侻IN錛孧AX絳?/p>
select top 1 num
from Test
order by num desc
30.
杈撳嚭涓嬮潰紼嬪簭緇撴灉銆?
{
public:
virtual void print(void)
{
cout<<"A::print()"<<endl;
}
};
class B:public A
{
public:
virtual void print(void)
{
cout<<"B::print()"<<endl;
};
};
class C:public B
{
public:
virtual void print(void)
{
cout<<"C::print()"<<endl;
}
};
void print(A a)
{
a.print();
}
void main(void)
{
A a, *pa,*pb,*pc;
B b;
C c;
pa=&a;
pb=&b;
pc=&c;
a.print();
b.print();
c.print();
pa->print();
pb->print();
pc->print();
print(a);
print(b);
print(c);
}
A::print()
B::print()
C::print()
A::print()
B::print()
C::print()
A::print()
A::print()
A::print()
31.
璇曠紪鍐欏嚱鏁板垽鏂綆楁満鐨勫瓧鑺傚瓨鍌ㄩ『搴忔槸寮搴?little endian)榪樻槸闄嶅簭(bigendian)
bool IsBigendian()
{
unsigned short usData = 0x1122;
unsigned char *pucData = (unsigned char*)&usData;
}
32.綆榪癈ritical Section鍜孧utex鐨勪笉鍚岀偣
瀵瑰嚑縐嶅悓姝ュ璞$殑鎬葷粨
1.Critical Section
A.閫熷害蹇?br>B.涓嶈兘鐢ㄤ簬涓嶅悓榪涚▼
C.涓嶈兘榪涜璧勬簮緇熻(姣忔鍙彲浠ユ湁涓涓嚎紼嬪鍏變韓璧勬簮榪涜瀛樺彇)
A.閫熷害鎱?br>B.鍙敤浜庝笉鍚岃繘紼?br>C.涓嶈兘榪涜璧勬簮緇熻
A.閫熷害鎱?br>B.鍙敤浜庝笉鍚岃繘紼?br>C.鍙繘琛岃祫婧愮粺璁?鍙互璁╀竴涓垨瓚呰繃涓涓嚎紼嬪鍏變韓璧勬簮榪涜瀛樺彇)
A.閫熷害鎱?br>B.鍙敤浜庝笉鍚岃繘紼?br>C.鍙繘琛岃祫婧愮粺璁?/p>
33.涓涓暟鎹簱涓湁涓や釜琛?
涓寮犺〃涓篊ustomer錛屽惈瀛楁ID,Name;
涓寮犺〃涓篛rder錛屽惈瀛楁ID,CustomerID錛堣繛鍚慍ustomer涓璉D鐨勫閿級,Revenue錛?br>鍐欏嚭姹傛瘡涓狢ustomer鐨凴evenue鎬誨拰鐨凷QL璇彞銆?/p>
create table customer
(
ID int primary key,Name char(10)
)
(
ID int primary key,CustomerID int foreign key references customer(id) , Revenue float
)
select Customer.ID, sum( isnull([Order].Revenue,0) )
from customer full join [order]
on( [order].customerid=customer.id )
group by customer.id
34.璇鋒寚鍑轟笅鍒楃▼搴忎腑鐨勯敊璇茍涓斾慨鏀?br>void GetMemory(char *p){
p=(char *)malloc(100);
}
void Test(void){
char *str=NULL;
GetMemory=(str);
strcpy(str,"hello world");
printf(str);
}
char *GetMemory(){
char *p=(char *)malloc(100);
return p;
}
void Test(void){
char *str=NULL;
str=GetMemory(){
strcpy(str,"hello world");
printf(str);
}
void GetMemory2(char **p, int num)
{
*p = (char *)malloc(sizeof(char) * num);
}
35.紼嬪簭鏀歸敊
class mml
{
private:
static unsigned int x;
public:
mml(){ x++; }
mml(static unsigned int &) {x++;}
~mml{x--;}
pulic:
virtual mon() {} = 0;
static unsigned int mmc(){return x;}
......
};
class nnl:public mml
{
private:
static unsigned int y;
public:
nnl(){ x++; }
nnl(static unsigned int &) {x++;}
~nnl{x--;}
public:
virtual mon() {};
static unsigned int nnc(){return y;}
......
};
mml* pp = new nnl;
..........
delete pp;
A:
鍩虹被鐨勬瀽鏋勫嚱鏁板簲璇ヤ負(fù)铏氬嚱鏁?br>virtual ~mml{x--;}
36.101涓‖甯?00鐪熴?鍋囷紝鐪熷亣鍖哄埆鍦ㄤ簬閲嶉噺銆傝鐢ㄦ棤鐮濈爜澶╁鉤縐頒袱嬈$粰鍑虹湡甯侀噸榪樻槸鍋囧竵閲嶇殑緇撹銆?/p>
101涓厛鍙栧嚭2鍫?
33,33
絎竴嬈$О,濡傛灉涓嶇浉絳?璇存槑鏈変竴鍫嗛噸鎴栬交
閭d箞鎶婇噸鐨勯偅鍫嗘嬁涓嬫潵,鍐嶆斁鍙﹀35涓腑鐨?3
濡傛灉鐩哥瓑,璇存槑鍋囩殑閲?濡傛灉涓嶇浉絳?鏂版斁涓婂幓鐨勮繕鏄噸鐨勮瘽,璇存槑鍋囩殑杞?涓嶅彲鑳芥柊鏀句笂鍘葷殑杞?
涓嬮潰灝變笉鐢ㄨ浜?/p>
絎?棰樹篃鍙互鎷緼(50),B(50)姣斾竴涓嬶紝涓鏍風(fēng)殑璇濇嬁鍓╀笅鐨勪竴涓拰鐪熺殑姣斾竴涓嬨?br>濡傛灉涓嶄竴鏍鳳紝灝辨嬁鍏朵腑鐨勪竴鍫嗐傛瘮濡侫(50)鍐嶅垎鎴愪袱鍫?5姣斾竴涓嬶紝涓鏍風(fēng)殑璇濆氨鍦?br>B(50)涓紝涓嶄竴鏍峰氨鍦ˋ(50)涓紝緇撳悎絎竴嬈$殑緇撴灉灝辯煡閬撲簡銆?/p>
37.static鍙橀噺鍜宻tatic 鍑芥暟鍚勬湁浠涔堢壒鐐癸紵
static鍙橀噺錛氬湪紼嬪簭榪愯鏈熷唴涓鐩存湁鏁堬紝濡傛灉瀹氫箟鍦ㄥ嚱鏁板錛屽垯鍦ㄧ紪璇戝崟鍏冨唴鍙錛屽鏋滃湪鍑芥暟鍐咃紝鍦ㄥ湪瀹氫箟鐨刡lock鍐呭彲瑙侊紱
static鍑芥暟錛氬湪緙栬瘧鍗曞厓鍐呭彲瑙侊紱
38.鐢– 鍐欎竴涓緭鍏ョ殑鏁存暟,鍊掔潃杈撳嚭鏁存暟鐨勫嚱鏁?瑕佹眰鐢ㄩ掑綊鏂規(guī)硶 ;
void fun( int a )
{
printf( "%d", a%10 );
a /= 10;
if( a <=0 )return;
}
39.鍐欏嚭紼嬪簭緇撴灉:
void Func(char str[100])
{
printf("%d\n", sizeof(str));
}
4
鍒嗘瀽:
鎸囬拡闀垮害
40.int id[sizeof(unsigned long)];
榪欎釜瀵瑰悧錛熶負(fù)浠涔??
]]>
So you have a common abstract class named 'Hole' and 3 concrete classes Pussy, Ass, and Mouth which all extend from Hole:
class Pussy extends Hole {}
class Mouth extends Hole {}
class Ass extends Hole {}
So, now let's say you have a Penis.Fuck(Hole h) method. The Penis class is unconcerned about what the specific Hole instance is, it's gonna fuck it the same regardless. Specificly we thrust the Hole with a Penis until the Penis is spent. Finally, we give the hole the Penis' load.
class Penis {
public Fuck(Hole h) {
while(!this.isSpent) {
h.TakeAThrust(this);
this.arousal++;
}
h.TakeALoad(this.load);
}
}
Now here's where polymorphism gets fun. The Hole will respond different to the thrusting and load depending on what specific type of Hole we're implementing.
First we must implement an abstract class which defines an abstract interface.
abstract class Hole {
public abstract void TakeAThrust(Penis p);
public abstract void TakeALoad(Load l);
}
Now all that's left is the varying implementations of these methods in the seperate concrete classes. For example, an Ass' implementation of TakeAThrust could look something like:
public void TakeAThrust(Penis p) {
if(!enoughLube && p.Circumference > 6) {
analFissureCount++;
}
}
See, the beauty of it is... the Penis doesn't even need to know it's fucking an Ass for the Ass to behave like a proper Ass.
Now, let's see how we might implement TakeALoad differently for Mouth and Pussy:
//in Pussy
public void TakeALoad(Load l) {
//randomly determine whether to cause a pregnancy with a 10% chance...
if(Math.RandomNumber() % 10 == 0) {
this.Woman.EggFactory.GetEgg().Inseminate(l);
}
}
//in Mouth
public void TakeALoad(Load l) {
//50-50 chance of spitting or swallowing
if(Math.RandomNumber() % 1 == 0) {
this.Spit(l);
} else {
this.Swallow(l);
}
}
Putting it all together with client code
Now that we have our classes well planned out with polymorphism in mind, we can see the kind of luxury it is for the client programmer to work with.
//create an array of 4 women
Woman[] women = new Woman[]{new Woman(), new Woman(), new Woman(), new Woman()};
//create a hole array to reference the holes of all 4 women, plus two additional holes.
Hole[] holes = new Hole[4*3 + 2];
for(int i = 0; i < women.Length; i++) {
holes[3 * i + 0] = women[i].Mouth;
holes[3 * i + 1] = women[i].Pussy;
holes[3 * i + 2] = women[i].Ass;
}
//additional holes (so the faggy programmers don't feel left out)
Man m = new Man();
holes[12] = m.Mouth;
holes[13] = m.Ass;
//now we loop through the holes and fuck them all with the same Penis
Penis p = new Man().Penis;
foreach(Hole h in holes) {
p.Fuck(h);
}
See how easy it makes it for the client programmer?