乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      啟明星辰2011校園招C筆試題(一)

       lycbje 2014-09-30

      題目來自互聯(lián)網(wǎng):http://wenku.baidu.com/view/1b71537201f69e314332947f.html

      答案:自己做的,可能有錯誤,請多指正。               QQ:447872587

      C語言部分:語言部分

      一、簡單編程,請用一句語句完成下列操作

      1.     位操作:將變量unsigned long register的0,4,6位清0

       32位下:register&=0xffffffae

      分析:0,4,6清0;10101110對應著:1010對應a; 1110對應e

      2.     字符串操作:判斷字符串char* str1是否起始位置包含char* str2的內容

      if(strstr(str1,str2)==str1)

      3.     內存操作:將指針unsigned char* ptr的內容向后移動4個字節(jié)

      *(ptr+4)=*ptr;

      4.將無符號變量unsigned int val進行字節(jié)序顛倒

      (val&0x000000ff<<24)|( val&0x0000ff00<<8) |( val&0x00ff0000>>8)| ( val&0xff000000>>24)

      二、寫出下列程序的運行結果 32位

      1、指針變量:

      Unsignedchar*p1;

      Unsignedchar*p2;

      p1=(Unsigned char*)0x801000;

      p2=(Unsigned char*)0x810000;

      請問:p1+5=?  p2+5=?

      p1+5=0x801000+5*4=0x801000+0x14=0x801014

      p2+5=0x810005+5*4=0x810000+0x14=0x810014

      2.算數(shù)運算

      Main()

      {

      Unsignedchar a,b,c,d;

      a=30;

      b=a++;

      c=++a;

      d=10*(a++);

      }

      請問:b=?c=?d=?

      b=30,c=32,d=3200

      3、邏輯運算

      unsigned int regval = 0x451AD,evenMask= 0x306,bitConvert = 0xFF;

          int event = 0,convert = 0;

          event = regval& bitConvert;

          convert = regval^ convert;

      請問:event=?   Convert=?

      event= 260  Convert=282962

      分析:event=0x451AD&0x306,

      0x 4 5 1 A D

      & 0x     3 0 6

      = 0x 0 0 1 0 4 即:16*16+4=260

      convert = 0x451AD ^ convert;

       

      三、請指出下列程序存在的問題,如何修正:

      1、說明:以下代碼是把一個字符串倒序,如”abcd”倒序后變?yōu)椤眃cba”

      int _tmain(intargc, _TCHAR*argv[])

      {

          char*src = "hello,world";

          char *dest = NULL;

          intlen = strlen(src);

          char*dest = (char*)malloc(len);

          char*d = dest;

          char*s = src[len];

          while(len-- != 0)

          {

               d++= s--;

      }

          printf("%s",dest);

          return0;

      }

      正確應該為:

      1. #include "string"  
      2.   
      3. #include <iostream>  
      4.   
      5. using namespace std;  
      6.   
      7.    
      8.   
      9. int _tmain(intargc, _TCHAR*argv[])  
      10.   
      11. {  
      12.   
      13.     char*src = "hello,world";  
      14.   
      15.     char*dest = NULL;  
      16.   
      17.     int len = strlen(src);  
      18.   
      19.     dest= (char*)malloc(len+1); //要為\0分配一個空間  
      20.   
      21.     char* d = dest;  
      22.   
      23.     char* s = &src[len-1];     //指向最后一個字符  
      24.   
      25.     while(len-- != 0)  
      26.   
      27.     {  
      28.   
      29.          *d++= *s--;  
      30.   
      31.          *d=0;                      //尾部要加上\0  
      32.   
      33.     }  
      34.   
      35.     cout<<dest<<endl;  
      36.   
      37.     system("pause");  
      38.   
      39.     free(dest);                   //使用完,應當釋放空間,以免造成內存泄露  
      40.   
      41.     return0;  
      42.   
      43. }  


       

      方法二:

      1. int _tmain(intargc, _TCHAR*argv[])  
      2.   
      3. {  
      4.   
      5. char str[]="hello,world";  
      6.   
      7.     int len = strlen(str);  
      8.   
      9.     char t = 0;  
      10.   
      11.     int i;  
      12.   
      13.     for(i=0;i<len/2;i++)  
      14.   
      15.     {  
      16.   
      17.          t=str[i];  
      18.   
      19.          str[i]=str[len-i-1];//不要忘懷多減一個,重視數(shù)組的下標  
      20.   
      21.          str[len-i-1]=t;  
      22.   
      23.     }  
      24.   
      25.     cout<<str<<endl;  
      26.   
      27.     system("pause");  
      28.   
      29.     return0;  
      30.   
      31. }  


       

      四、簡答題:

      1、頭文件的ifndef/define/endif干什么用的?

      防止頭文件被重復引用

      2、定義函數(shù)局部變量的時候:

      Char array1[100];

      Char *array2;

      array1和array2都可以當做指針引用,這兩個指針在使用的時候有什么區(qū)別?

      當做函數(shù)參數(shù)傳遞的時候,數(shù)組可以當指針用,本質就是取數(shù)組第一個元素的內存地址傳過去,當數(shù)組作為函數(shù)參數(shù)傳遞的時,該數(shù)組自動退化為同類型的指針。

      指針也可以當數(shù)組用,但是兩者的本質不一樣;

      數(shù)組名對應著一塊內存,而不是指向一塊內存,其地址和容量在生命周期不變,但數(shù)組內容可以改變;

      指針可以隨時指向任意的內存塊,其特征是可變,常用指針來操作動態(tài)內存。

      五、內存問題:

       很簡單,不詳述。

      六、程序編寫:

      編寫一個函數(shù),輸入?yún)?shù)為一個字符串指針,將其中的大寫變?yōu)樾?/strong>

      1. char* Atoa(char str[])  
      2.   
      3. {  
      4.   
      5.     for(int i=0;str[i]!='\0';i++)  
      6.   
      7.     {  
      8.   
      9.          if(str[i]>='A' && str[i]<='Z')  
      10.   
      11.              str[i] += 32;  
      12.   
      13.     }  
      14.   
      15.     returnstr;  
      16.   
      17. }  
      18.   
      19. int _tmain(intargc, _TCHAR*argv[])  
      20.   
      21. {  
      22.   
      23. char str[100]="Hello,World";  
      24.   
      25.   Atoa(str);  
      26.   
      27.   cout<< str;  
      28.   
      29. return 0;  
      30.   
      31. }  


       

       

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多