題目來(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)問: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)問: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)問: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)指出下列程序存在的問題,如何修正: 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)該為: [cpp] view plaincopy
方法二: [cpp] view plaincopy
四、簡(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)存地址傳過去,當(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)存問題: 很簡(jiǎn)單,不詳述。 六、程序編寫: 編寫一個(gè)函數(shù),輸入?yún)?shù)為一個(gè)字符串指針,將其中的大寫變?yōu)樾?/strong> [cpp] view plaincopy
|
|