oppo2013筆試題-不全

時間:2012-9-17 地點:電子科大

題目:選擇,填空,代碼補全+行測(智力題,性格測試)

題目倒是不難,各種坑啊。一定要仔細啊。又吃虧了。。

1.下面語句的輸出結果:

cout<<strlen("\t\"\065\xff\n");

A、5

B、15

C、8

D、語句不合法

正確答案:A

\065和\xff都是ASCII字符。做題需仔細。

2、請填寫下列代碼的輸出內容

int a,b,c,d;
a=10;
b=a++;
c=++a++;
d=10*a++;
printf("b,c,d:%d,%d,%d",b,c,d);

正確答案:編譯錯誤

因爲前自增和後自增都需要左值。所以++a++這句代碼編譯錯誤

3、寫一個a個字節對齊的宏

正確答案:#pragma pack(a)

4、預處理器標誌#error的目的是什麼?

正確答案:生成編譯錯誤消息

http://blog.csdn.net/chenghf1979/article/details/5201074

5、動態鏈接庫和靜態鏈接庫的區別

http://www.cnblogs.com/Winston/archive/2008/07/05/1236273.html

6、

int *p1=(int *)0x800500;
int *p2=(int *)0x800518;
cout<<p2-p1<<endl;
代碼執行結果?

正確答案:6

0x18轉換10進製爲24.

7、

struct ks
{
	int a;
	int *b;
}s[4],*p;
int n=1,i;
	for(i=0;i<4;i++)
	{
		s[i].a=n;
		s[i].b=&s[i].a;
		n+=2;
	}
	p=&s[0];
	p++;
	printf("%d,%d\n",(++p)->a,(p++)->a);
正確答案:7,3

這道題需要注意printf參數從右邊開始壓棧

程序填空題:

一道2分查找,一道樹的層次遍歷


8、鏈表排序(pps2013校園招聘筆試題)

考試時候,思維短路。知道思想,就是沒寫出來。

//單鏈表排序
Node *ListSort(Node *head)
{
	if(head==NULL || head->next==NULL)
		return head;
	Node *p=head->next;
	head->next=NULL;
	Node *q;
	while(p!=NULL)
	{
		q=p->next;
		p->next=NULL;
		if(p->data<=head->data)//插入結點小於頭結點,直接插入結點next指向頭結點,然後將插入節點置爲頭結點
		{
			p->next=head;
			head=p;
		}else
		{
			Node *temp=head;
			while(temp->data<p->data && temp->next!=NULL)//找到第一個比插入節點數字大的節點,或者找到尾節點
				temp=temp->next;
			if(temp->data>p->data)//第一種情況找到第一個比插入節點數字大的節點
			{
				//將插入節點放在第一個比插入節點數字大的節點的後面
				p->next=temp->next;
				temp->next=p;
				//交換數據。這裏也是經常問到的o(1)下實現在鏈表某一位置的插入
				int t_data=p->data;
				p->data=temp->data;
				temp->data=t_data;
			}else
			{
				temp->next=p;
			}
		}
		p=q;
	}
	return head;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章