㈠ 夏普程序員筆試題和面試題答案目
試題1:
void test1()
{
char string[10];
char* str1 = "0123456789";
strcpy( string, str1 );
}
試題2:
void test2()
{
char string[10], str1[10];
int i;
for(i=0; i<10; i++)
{
str1[i] = 'a';
}
strcpy( string, str1 );
}
試題3:
void test3(char* str1)
{
char string[10];
if( strlen( str1 ) <= 10 )
{
strcpy( string, str1 );
}
}
解答:
試題1字元串str1需要11個位元組才能存放下(包括末尾的’\0’),而string只有10個位元組的空間,strcpy會導致數組越界;
對試題2,如果面試者指出字元數組str1不能在數組內結束可以給3分;如果面試者指出strcpy(string, str1)調用使得從str1內存起復制到string內存起所復制的位元組數具有不確定性可以給7分,在此基礎上指出庫函數strcpy工作方式的給10分;
對試題3,if(strlen(str1) <= 10)應改為if(strlen(str1) < 10),因為strlen的結果未統計’\0’所佔用的1個位元組。
考查對基本功的掌握:
(1)字元串以’\0’結尾;
(2)對數組越界把握的敏感度;
(3)庫函數strcpy的工作方式,
(4)對strlen的掌握,它沒有包括字元串末尾的'\0'。
試題4:
void GetMemory( char *p )
{
p = (char *) malloc( 100 );
}
void Test( void )
{
char *str = NULL;
GetMemory( str );
strcpy( str, "hello world" );
printf( str );
}
解答:
試題4傳入中GetMemory( char *p )函數的形參為字元串指針,在函數內部修改形參並不能真正的改變傳入形參的值,執行完
char *str = NULL;
GetMemory( str );
後的str仍然為NULL;
試題5:
char *GetMemory( void )
{
char p[] = "hello world";
return p;
}
void Test( void )
{
char *str = NULL;
str = GetMemory();
printf( str );
}
試題5中
char p[] = "hello world";
return p;
的p[]數組為函數內的局部自動變數,在函數返回後,內存已經被釋放。這是許多程序員常犯的錯誤,其根源在於不理解變數的生存期。
試題6:
void GetMemory( char **p, int num )
{
*p = (char *) malloc( num );
}
void Test( void )
{
char *str = NULL;
GetMemory( &str, 100 );
strcpy( str, "hello" );
printf( str );
}
試題6的GetMemory避免了試題4的問題,傳入GetMemory的參數為字元串指針的指針,但是在GetMemory中執行申請內存及賦值語句
*p = (char *) malloc( num );
後未判斷內存是否申請成功,應加上:
if ( *p == NULL )
{
...//進行申請內存失敗處理
}
試題7:
void Test( void )
{
char *str = (char *) malloc( 100 );
strcpy( str, "hello" );
free( str );
... //省略的其它語句
}
試題7存在與試題6同樣的問題,在執行
char *str = (char *) malloc(100);
後未進行內存是否申請成功的判斷;另外,在free(str)後未置str為空,導致可能變成一個“野”指針,應加上:
str = NULL;
試題6的Test函數中也未對malloc的內存進行釋放。
剖析:
試題4~7考查面試者對內存操作的理解程度,基本功扎實的面試者一般都能正確的回答其中50~60的錯誤。但是要完全解答正確,卻也絕非易事。
對內存操作的考查主要集中在:
(1)指針的理解;
(2)變數的生存期及作用范圍;
(3)良好的動態內存申請和釋放習慣。
再看看下面的一段程序有什麼錯誤:
swap( int* p1,int* p2 )
{
int *p;
*p = *p1;
*p1 = *p2;
*p2 = *p;
}
在swap函數中,p是一個“野”指針,有可能指向系統區,導致程序運行的崩潰。在VC++中DEBUG運行時提示錯誤“Access Violation”。該程序應該改為:
swap( int* p1,int* p2 )
{
int p;
p = *p1;
*p1 = *p2;
*p2 = p;
}
預處理器(Preprocessor)
1. 用預處理指令#define 聲明一個常數,用以表明1年中有多少秒(忽略閏年問題)
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
2. 寫一個“標准”宏MIN,這個宏輸入兩個參數並返回較小的一個。
#define MIN(A,B) ((A) <= (B)?(A) : (B)) 1 2
㈡ 為什麼應聘程序員筆試都是數學題
程序是需要一定的邏輯思維的,數學就是很好驗證一個人的邏輯思維。最好是幾何題估計更好
㈢ 初級程序員考試內容
主要考試科目是兩科:上午是綜合知識,75道單選題;下午是應用技術,5道案例題,主要考流程圖1題,C語言3題,C++和java二選一,以填空題和選擇題為主。
㈣ 程序員考試都考哪些內容
程序員要考 計算機基礎,操作系統,資料庫,多媒體,網路基礎,程序設計基礎,軟體工程基礎,數據結構與演算法,標准化和知識產權,安全基礎知識,C語言,以及從VB、C++、JAVA三種語言選一種。
考試形式分為上午考試和下午考試(各75分,150分鍾,一共150分,300分鍾)
上午考試內容:計算機基礎,操作系統,資料庫,多媒體,網路基礎,程序設計基礎,軟體工程基礎,數據結構與演算法,標准化和知識產權,安全基礎知識,計算機英語(其中硬體基礎,網路基礎,程序設計基礎,軟體工程占的比重更大)。
下午考試內容:C語言,數組,數據結構及常用演算法,以及從VB、C++、JAVA三種語言選一種。(二維數組,數據結構中的堆棧及排序等考得比較多。)
㈤ 幫忙翻譯一下下面的英文筆試題,謝謝!(程序員筆試題)
1。RCPPurpose測試項目的候選人的學習能力和解決問題的skillRequirements 1。日蝕RCP應用設計,使用菜單或按鈕來顯示「你好,世界」。2。設計一個模塊將添加菜單或按鈕到以前的應用、新菜單或按鈕會顯示「你好,SoEasy」。以前的應用程序應該能夠得到這個新的模塊更新網站。實施條件1。這個項目應該提交的電子郵件它是想要有第二部分提交的URL,不管是候選人能弄到第二部分工作網站,一個詳細的文件要求。2這個項目應該在4 days.2完成。項目的日期SortingPurpose測試候選人的電腦科學背景和編碼演算法)要求使用任何程序語言,(java, c/c++, python, perl, etc)排序1000整數的數組和只有一個名單,其中可容納只有10個整數。你可以用一些地方/臨時變數,但沒有更多的收集和列表/陣列結構。實施條件1。這個項目應該產生隨機抽取的1000整數,並且列印出了結果,你總人數的比較執行代碼。目的是為了減少的比較。2。這個項目應該在2天完成
㈥ 急需程序員筆試題,附帶答案
一、選擇題(每題1分,共20分)
1. 下列那種語言是面向對象的(C)
A. C B. PASCAL C. C++ D. FORTRAN77
2.在 Windows9x 下,可以進入 MS-D0S 方式。當在 DOS 提示符下鍵入 (B ) 命令後,
系統將退出 MS-DOS方式,返回到 WIndows 方式。
A. CLOSE B. EXIT C. QUIT D. RETURN
3.下面哪些是面向對象的基本特性:(A,B,C )
A 多態 B 繼承 C 封裝 D 介面
4.在C++中經常要進行異常處理,下面哪些是異常處理常用到的關鍵詞:(A,B,C)
A try B catch C throw D break E contiue
5.資料庫技術中的「臟數據',是指(D)的數據。
A.錯誤 B.回返 C.未提交 D.未提交的隨後又被撤消
6.TCP/IP是一種(A,B)
A.標准 B.協議 C.語言 D.演算法
7. 下面有關計算機操作系統的敘述中,不正確的是( )
A 操作系統屬於系統軟體
B 操作系統只負責管理內存儲器,而不管理外存儲器
C UNIX 是一種操作系統
D 計算機的處理器、內存等硬體資源也由操作系統管理
8.微機上操作系統的作用是( D)
A 解釋執行源程序 B 編譯源程序
C 進行編碼轉換 D 控制和管理系統資源
9.下列存儲器中存取速度最快的是(A )
A 內存 B 硬碟 C 光碟 D 軟盤
10.在計算機中,—個位元組是由多少個二進制位組成的( )
A. 4 B. 8 C. 16 D. 24
11. 存儲16×16點陣的一個漢字信息,需要的位元組數為( )
A 32 B 64 C 128 D 256
12. 以下選項中合法的字元常量是(C)
A."B" B. '\010' C. 68 D. D
13. 假定x和y為double型,則表達式x=2,y=x+3/2的值是()
A. 3.500000 B. 3 C. 2.000000 D. 3.000000
14. 以下合法的賦值語句是()
A. x=y=100 B. d--; C. x+y; D. c=int(a+b);
15. 設正x、y均為整型變數,且x=10 y=3,則以下語句
pprintf("%d,%d\n",x--,--y); 的輸出結果是()
A.10,3 B. 9,3 C. 9,2 D.10,2
16. x、y、z被定義為int型變數,若從鍵盤給x、y、z輸入數據,正確的輸入語句是()
A .INPUT x、y、z; B. scanf("%d%d%d",&x,&y,&z);
C. scanf("%d%d%d",x,y,z); D. read("%d%d%d",&x,&y,&z);
17.以下數組定義中不正確的是()
A) int a[2][3]; B) int b[][3]={0,1,2,3};
C) int c[100][100]={0}; D) int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
18. 以下程序的輸出結果是()
main()
{
int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0];
}
A) 0650 B) 1470 C) 5430 D) 輸出值不定
19 以下程序的輸出結果是()
main()
{
char st[20]= "hello\0\t\\\";
printf(%d %d \n",strlen(st),sizeof(st));
}
A) 9 9 B) 5 20 C) 13 20 D) 20 20
20. 當調用Windows API函數InvalidateRect,將會產生什麼消息()
A:WM_PAINT B:WM_CREATE
C:WM_NCHITTEST D:WM_SETFOCUS
二、填空題(每題3分,共30分)
1.請列舉當前一些當前流行的資料庫引擎__________
2. 為了將當前盤當前目錄中的所有文本文件(擴展名為.TXT)的內容列印輸出,正確
的單條DOS命令為______。
3. 計算機網路分為區域網和廣域網,網際網路屬於 廣域網。
4. 設y是int型變數,請寫出判斷y為奇效的關系表達_______。
5. 設有以下程序:
main()
{ int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{ n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序運行後,如果從鍵盤上輸入1298;則輸出結果為____。
6.以下程序運行後的輸出結果是______。
main()
{ char s[ ]="9876",*p;
for ( p=s ; pbr>}
7.以下函數的功能是:求x的y次方,請填空。
double fun( double x, int y)
{ int i;
double z;
for(i=1, z=x; ibr>return z;
}
8.以下程序段打開文件後,先利用fseek函數將文件位置指針定位在文件末尾,然後調
用ftell函數返回當前文件位置指針的具體位置,從而確定文件長度,請填空。
FILE *myf; ling f1;
myf= ______("test.t","rb");
fseek(myf,0,SEEK_END); f1=ftel(myf);
fclose(myf);
printf("%d\n",f1);
9. 以下程序輸出的最後一個值是______。
int ff(int n)
{ static int f=l;
f=f*n;
return f;
}
main()
{ int i;
for(I=1;I<=5;I++ printf("%d\n",ff(i));
)
10. 以下程序運行後的輸出結果是_____。
main()
{ int i=10, j=0;
do
{ j=j+i; i-;
while(i>2);
printf("%d\n",j);
}
三、判斷題(每題2分,共20分)
1:動態鏈結庫不能靜態調用。
2:UDP是面向無連接的網路連接
3:ASP是一種資料庫引擎
4:隊列是先進後出。
5:Weblogic是分布式應用伺服器。
6:TCP,UDP都是傳輸層的協議。
7: 兩個線程不能共存於同一地址空間
8: JAVA是一種跨平台的開發工具
9.在WINDOWS操作系統中對外設是以文件的方式進行管理
10. 虛擬內存實際是創建在硬碟上的
四、問答題(每題10分,共30分)
1. 寫出從資料庫表Custom中查詢No、Name、Num1、Num2並將Name以姓名顯示、計算出
的和以總和顯示的SQL。
Select No、Name、Num1、Num2 from custom;
2. 何為「事務處理」,談談你對它的理解。
3. 常用的數據結構有哪些?請枚舉一些。(不少於5個)
4. 什麼是OOP?什麼是類?請對比類和對象實例之間的關系。
5. 有一組數字(3,10,6,8,98,22),請編程排序(升降序皆可),語言不限,演算法不限,但須註明是何種演算法。
[email protected]
㈦ 哪裡有java筆試題
https://www.nowcoder.com/contestRoom?mutiTagIds=639
牛客網-Java專題
很適合程序猿刷筆試面試題
望採納 謝謝。