亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: moonwhite999
打印 上一主題 下一主題

兩道嵌入式面試題 [復制鏈接]

論壇徽章:
0
31 [報告]
發(fā)表于 2010-03-21 14:58 |只看該作者
當條件與i相關,就用第一個。否則用第二個。

論壇徽章:
0
32 [報告]
發(fā)表于 2010-03-21 15:07 |只看該作者
想抄就抄下來吧,也沒什么.
你想,連++,--的問題都可以上大學生的教材乃至試卷,還有什么不可能的?
說不定 ...
cjaizss 發(fā)表于 2010-03-19 23:26


仰望高人

論壇徽章:
0
33 [報告]
發(fā)表于 2010-03-21 21:31 |只看該作者
第二道題貼上我的程序吧,已調試通過的,我知道在大牛眼里不屑一顧,但我剛工作時得到很多不認識的人的幫助,現(xiàn)在還常懷感激,我也深知對一些人很簡單的問題,在另一些人那里則很困難,因為我也是從那個階段過來的。
#include <stdio.h>
#include <string.h>

int nCharHash[26];

int FindOnceChar( char *strsrc,char &c,int &ipos)
{
        int nLen = strlen(strsrc);
        int i;
        for ( i = 0;i < nLen;i++)
        {
                nCharHash[strsrc[i]-'a']++;
        }
        for ( i = 0;i < nLen;i++)
        {
                if ( 1 == nCharHash[strsrc[i]-'a'] )
                {
                        c = strsrc[i];
                        ipos = i;
                        break;
                }
        }
        if ( i == nLen)
        {
                return -1;
        }
    return  0;
}

int main()
{
        char *testchar = "abcdabce";
        char c;
        int nPos;
        int nRet;
        nRet = FindOnceChar(testchar,c,nPos);
        if ( 0 == nRet )
        {
                printf( "The char Which placed only once is %c,the position is %d\n",c,nPos);
        }
        return 0;

}

第一道題大家不必再費腦筋了,因為我沒有做過嵌入式開發(fā),我還以為是后臺的無限循環(huán)程序可以處理中斷的,沒想到看到答案真讓我大跌眼鏡,這家公司看來我也不必去了。

論壇徽章:
4
CU大牛徽章
日期:2013-03-13 15:29:07CU大;照
日期:2013-03-13 15:29:49CU大;照
日期:2013-03-13 15:30:192015年迎新春徽章
日期:2015-03-04 09:57:09
34 [報告]
發(fā)表于 2010-03-21 22:18 |只看該作者
學習了。

論壇徽章:
0
35 [報告]
發(fā)表于 2010-03-22 08:29 |只看該作者
回復 7# 老手


    里面講的好像也是一些優(yōu)化,第二個要比第一個效率高寫,不用每次循環(huán)的時候,都去判斷。

論壇徽章:
0
36 [報告]
發(fā)表于 2010-03-22 09:56 |只看該作者
回復 33# moonwhite999


    同學,你這代碼寫的亂啊。。。   局部變量也沒初始化,找到的也不是第一個唯一出現(xiàn)的字母,很不規(guī)范啊。。

論壇徽章:
0
37 [報告]
發(fā)表于 2010-03-22 12:23 |只看該作者
第二道題貼上我的程序吧,已調試通過的,我知道在大牛眼里不屑一顧,但我剛工作時得到很多不認識的人的幫助 ...
moonwhite999 發(fā)表于 2010-03-21 21:31



設計思路上, 你做了2個假設:

1. 字符串中都是英文字母,且都是小寫的.
2. 字符串里符合要求的情況要么沒有,要么只會有一次..


你很認真.
可以訓練一段時間,再上沙場.

論壇徽章:
0
38 [報告]
發(fā)表于 2010-03-22 13:09 |只看該作者
回復  jhzhu_snps


    能不能把判斷拿到循環(huán)外由業(yè)務邏輯決定,試想下,如果在for()里改變了condit ...
doofy 發(fā)表于 2010-03-20 21:39



    既然出了這樣的題,就假設這個condition是循環(huán)不變量好了。問題就變成關于循環(huán)不變量的控制流分析及優(yōu)化的作用和影響,所以我覺得答案應該是:
    1. 外提循環(huán)不變量能提高代碼的執(zhí)行效率
   2. 在硬件提供強大的分支預測的優(yōu)化功能時,外提循環(huán)不變量的優(yōu)化效果有限
   3. 外提在控制語句中所使用的循環(huán)不變量會導致代碼膨脹,可能不適用于嵌入式應用。

論壇徽章:
0
39 [報告]
發(fā)表于 2010-03-22 14:25 |只看該作者
回復 33# moonwhite999


    樓主我也寫了個,和你思路一樣。只是簡化了一些,希望能有幫助。

  1. #include <stdio.h>
  2. #include <limits.h>

  3. char* find_first_once(char* s)
  4. {
  5.         int map[UCHAR_MAX] = {0};
  6.         char *tmp = s;
  7.         while (*tmp)
  8.                 ++map[*tmp++];
  9.         while (*s)
  10.                 if (1 == map[*s])
  11.                         return s;
  12.                 else
  13.                         s++;
  14.         return NULL;
  15. }

  16. int main(int argc, char* argv[])
  17. {
  18.         char *s = "abcdabce";
  19.         char *p = find_first_once(s);
  20.         if (p)
  21.         {
  22.                 printf("%c:%d\n", *p, p-s);
  23.         }
  24.         else
  25.         {
  26.                 printf("none!\n");
  27.         }
  28.         return 0;
  29. }
復制代碼

論壇徽章:
0
40 [報告]
發(fā)表于 2010-03-22 14:46 |只看該作者
shun shou xie le ge

  1. int find(char * str)
  2. {
  3.         int ii,var,len;
  4.         len=strlen(str);
  5.         for(ii=0;ii<len;ii++)
  6.         {
  7.                 char b= str[ii];
  8.                 int jj;
  9.                 for(jj=0;jj<len;jj++)
  10.                 {
  11.                         if (b == str[jj] && jj !=ii)
  12.                         break;
  13.                 }
  14.                 if(jj == len)
  15.                 {
  16.                         printf("%c:pos:%d\n",str[ii],ii);
  17.                         break;
  18.                 }
  19.         }
  20. }
  21. void main()
  22. {
  23.         char strin[]="abcdabce";
  24.         find(strin);
  25. }
復制代碼

result:
XX@XX:/opt/$ ./a.out
d:pos:3
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP