重慶博(bo)澳特C語言經典(dian)筆試(shi)題
時間(jian):2018-08-02 來源(yuan):未知
一.填空題:
1、以下程序的(de)輸出結(jie)果(guo)是:
#include
int main()
{
int n = 4;
while (n--)
{
printf("%d ", --n);
}
printf("\r\n");
return 0;
}
2、設有以下宏定義:
#define N 4
#define Y(n) ((N+1)*n)
則執行語句:Y(5+1)為:
3、
enum ENUM_A
{
x1,
y1,
z1 = 5,
a1,
b1
};
enum ENUM_A enumA = y1;
enum ENUM_A enumB = b1;
請問(wen)enumA和(he)enumB的值(zhi)是多(duo)少(shao)?
4、若有(you)函數(shu)max(a,b),并且函數(shu)指針(zhen)變量p已經指向函數(shu),當調用(yong)該函數(shu)時(shi)正確的調用(yong)方法(fa)是:
5、對棧(zhan)S進(jin)行下列操作:push(1), push(5), pop(), push(2), pop(), pop(), 則此(ci)時棧(zhan)頂元素是:
6、在一(yi)個32位的操作系(xi)統中,設void *p = malloc(100),請問sizeof(p)的結果是:
二.選擇題:
7、若已定義: int a[9], *p = a;并在(zai)以后的語(yu)句中未改變p的值,不能表示a[1]地址的表達式(shi)是:
A)p+1 B)a+1 C) a++ D) ++p
8、設有如下定(ding)義:
unsigned long pulArray[] = {6,7,8,9,10};
unsigned long *pulPtr;
則(ze)下列程序段的輸出結(jie)果(guo)是什么?
pulPtr = pulArray;
*(pulPtr + 2) += 2;
printf("%d, %d\r\n", *pulPtr, *(pulPtr + 2));
A) 8, 10 B) 6, 8 C) 7, 9 D) 6, 10
9、以下程序運行(xing)后,輸出結果是什么?
void main()
{
char *szStr = "abcde";
szStr += 2;
printf("%1u\r\n", szStr);
return;
}
A) cde B) 字符(fu)c的(de)ASCII碼值 C) 字符(fu)c的(de)地址(zhi) D) 出錯
10、給(gei)出以(yi)下定義:
char X[] = "hello";
char Y[] = {'h', 'e', 'l', 'l', 'o'};
則正確(que)的敘述(shu)為:
A) 數(shu)(shu)組X和數(shu)(shu)組Y等(deng)價 B) 數(shu)(shu)組X和數(shu)(shu)組Y的長度相同
C) 數(shu)組X的(de)長(chang)度(du)大于(yu)數(shu)組Y的(de)長(chang)度(du) D) 數(shu)組X的(de)長(chang)度(du)小于(yu)數(shu)組Y的(de)長(chang)度(du)
11、在32位(wei)X86下,有下列程序
#include
void main()
{
union
{
int k;
char i[2];
} *s, a;
s = &a;
s->i[0] = 0x39;
s->i[1] = 0x38;
printf("%x\r\n", a.k);
}
輸(shu)出結(jie)果是(shi):
A) 3839 B) 3938 C) 380039 D) 不可(ke)預知(zhi)
12、有如(ru)下(xia)函(han)數定(ding)義:
unsigned long MyFunc(unsigned long ulKey)
{
return (((ulKey & 0x000000ffUL) << 24) |
((ulKey & 0x0000ff00UL) << 8) |
((ulKey & 0x00ff0000UL) >> 8) |
((ulKey & 0xff000000UL) >> 24));
}
則MyFunc(0x12345678)的(de)返回值是:
A) 0x12345678 B) 0x87654321 C) 0x78563412 D) 0x12563478
13、((a>b)?a:b)代表(biao)什么含(han)義:
A) 代(dai)表a,b之中(zhong)較(jiao)小的那個(ge)值
B) 代表a,b之中較大的那個(ge)值(zhi)
C) 代表a是否比b大(da)
D) 語(yu)法(fa)錯誤
14、某系統總線(xian)(xian)的(de)(de)一(yi)個(ge)總線(xian)(xian)周期(qi)(qi)包(bao)含(han)3個(ge)時鐘周期(qi)(qi),每個(ge)總線(xian)(xian)周期(qi)(qi)可以傳送32位(wei)數據。若(ruo)總線(xian)(xian)的(de)(de)時鐘頻率為(wei)33MHz, 則總線(xian)(xian)帶寬為(wei)多少MB/s ?
33*10(6)*32/8*10(6)*3
A) 11 B) 22 C) 33 D) 44
15、如下(xia)定義,則(ze)s在內存中占多大(da)空(kong)間?
union
{
struct
{
unsigned char aa:4;
unsigned char ab:4;
} a;
unsigned char c;
unsigned char d;
} s;
A) 1 byte B) 2byte C) 3byte D) 4byte
16、如下定義:
union tagAAAA
{
struct
{
char ucFirst;
short usSecond;
char ucThird;
}half_a;
long lI;
}number;
在(zai)按1字節對齊情況(kuang)下,sizeof(union tagAAAA)的大小是:
在按4字節對(dui)齊情(qing)況下,sizeof(union tagAAAA)的(de)大小是:
A) 4byte B) 6byte C) 8byte D) 12byte
17、0x12345678在采(cai)用(yong)BigEndian中內(nei)存的排列(lie)順序是(shi) ,在采(cai)用(yong)LittleEndian內(nei)存中的排列(lie)順序是(shi) 。
(答案從左到右內存地址依次增(zeng)加)
A) 12 34 56 78 B) 34 12 78 56 C) 78 56 34 12 D) 56 78 12 34
18、關于靜態(tai)變量,下面說(shuo)法“不正確”的有:
A) 靜(jing)態變量在堆棧中分配
B) 靜態(tai)變量的作用域一定是局部的,例如在(zai)一個(ge)文件內(nei)或一個(ge)函數內(nei)
C) 靜(jing)(jing)態(tai)(tai)(tai)變量(liang)可分為靜(jing)(jing)態(tai)(tai)(tai)局變量(liang)和靜(jing)(jing)態(tai)(tai)(tai)全局部變量(liang)
D) 靜態變量存在于(yu)數據(ju)段中
19、下面(mian)正確(que)的有
A) 在中(zhong)斷中(zhong),不能同步獲取信號(hao)量,但是可以釋(shi)放(fang)信號(hao)量
B) 在中斷中,可以(yi)使用系(xi)統調(diao)用sleep函(han)數來等待一會兒
C) 每(mei)一個進程有自己的(de)獨立地(di)址空(kong)間(jian),每(mei)一個線程程序也有自己的(de)獨立地(di)址空(kong)間(jian)
D) CPU占用率為(wei)60%, 意思是(shi)CPU有(you)60%的時(shi)間在運行指(zhi)(zhi)令40%的時(shi)間沒有(you)運行指(zhi)(zhi)令
20、設有(you)如(ru)下(xia)(xia)定義:int (*ptr)();則以(yi)下(xia)(xia)敘述(shu)中正(zheng)確的是:
A) ptr 是指(zhi)向(xiang)一維數組的指(zhi)針(zhen)變量
B) ptr是指向int型數據的指針變量
C) ptr 是指向(xiang)函數的(de)指針,該函數返回一個int型數據
D) ptr是(shi)一個函(han)數(shu)名,該函(han)數(shu)的返回(hui)值是(shi)指向int型(xing)數(shu)據的指針(zhen)
21、在Windows95環境下,定義(yi)數組(zu):int **a[2][4];則(ze)數組(zu)a所占(zhan)用的內存單元為:
A)8字(zi)(zi)節(jie) B) 32字(zi)(zi)節(jie) C) 64字(zi)(zi)節(jie) D)不確定