久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

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

 lycbje 2014-09-30

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

答案:自己做的,可能有錯(cuò)誤,,請(qǐng)多指正,。               QQ:447872587

C語(yǔ)言部分:語(yǔ)言部分

一、簡(jiǎn)單編程,,請(qǐng)用一句語(yǔ)句完成下列操作

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

 32位下:register&=0xffffffae

分析:0,4,6清0,;10101110對(duì)應(yīng)著:1010對(duì)應(yīng)a; 1110對(duì)應(yīng)e

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

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

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

*(ptr+4)=*ptr;

4.將無(wú)符號(hào)變量unsigned int val進(jìn)行字節(jié)序顛倒

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

二、寫出下列程序的運(yùn)行結(jié)果 32位

1,、指針變量:

Unsignedchar*p1;

Unsignedchar*p2;

p1=(Unsigned char*)0x801000;

p2=(Unsigned char*)0x810000;

請(qǐng)問(wèn):p1+5=?  p2+5=?

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

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

2.算數(shù)運(yùn)算

Main()

{

Unsignedchar a,b,c,d;

a=30;

b=a++;

c=++a;

d=10*(a++);

}

請(qǐng)問(wèn):b=?c=?d=?

b=30,c=32,d=3200

3,、邏輯運(yùn)算

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

    int event = 0,convert = 0;

    event = regval& bitConvert;

    convert = regval^ convert;

請(qǐng)問(wèn):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;

 

三、請(qǐng)指出下列程序存在的問(wèn)題,,如何修正:

1,、說(shuō)明:以下代碼是把一個(gè)字符串倒序,如”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;

}

正確應(yīng)該為:

  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分配一個(gè)空間  
  20.   
  21.     char* d = dest;  
  22.   
  23.     char* s = &src[len-1];     //指向最后一個(gè)字符  
  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);                   //使用完,,應(yīng)當(dāng)釋放空間,,以免造成內(nèi)存泄露  
  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];//不要忘懷多減一個(gè),,重視數(shù)組的下標(biāo)  
  20.   
  21.          str[len-i-1]=t;  
  22.   
  23.     }  
  24.   
  25.     cout<<str<<endl;  
  26.   
  27.     system("pause");  
  28.   
  29.     return0;  
  30.   
  31. }  


 

四,、簡(jiǎn)答題:

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

防止頭文件被重復(fù)引用

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

Char array1[100];

Char *array2;

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

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

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

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

指針可以隨時(shí)指向任意的內(nèi)存塊,其特征是可變,,常用指針來(lái)操作動(dòng)態(tài)內(nèi)存,。

五、內(nèi)存問(wèn)題:

 很簡(jiǎn)單,,不詳述,。

六、程序編寫:

編寫一個(gè)函數(shù),,輸入?yún)?shù)為一個(gè)字符串指針,,將其中的大寫變?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. }  


 

 

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多