溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C重點(diǎn)基礎(chǔ)自測(cè)第一部分(精華)

發(fā)布時(shí)間:2020-07-31 10:53:08 來(lái)源:網(wǎng)絡(luò) 閱讀:284 作者:zheng_feng 欄目:編程語(yǔ)言

*答案在末尾!

1、寫出bool、float、指針變量與“零值”比較的if語(yǔ)句;

2、在linux32位操作系統(tǒng)下,計(jì)算sizeof的值;

char str[] = “heoll”;

char* p = str;

int n;

void fun(int arr[])

{}

void* ptr = malloc(168);

sizeof(str);sizeof(p);sizeof(n);sizeof(arr);sizeof(ptr);

3、給出下列的定義

a、一個(gè)有10個(gè)指針的數(shù)組,該指針的是指向一個(gè)整型的;

b、一個(gè)指向有10個(gè)整型數(shù)組的指針;

c、一個(gè)指向函數(shù)的指針,該函數(shù)有一個(gè)整數(shù)參數(shù)并返回整型;

d、一個(gè)有10個(gè)指針的數(shù)組,指針指向一個(gè)函數(shù),該函數(shù)有一個(gè)整型參數(shù)并返回整型;

4、以下代碼有什么問(wèn)題?

int main()

    char a;

    char* str = &a;

    strcpy(str,“hello”);

    printf(str);

    return 0;

5、以下代碼有什么問(wèn)題?

str = “aaa”;

printf("%s\n",str);

str[0] = 'A';

printf("%s\n",str);

6、C/C++中的struct有什么不同?

7、以下代碼有什么問(wèn)題?

void getmetmemory(char *p)

{

    p = (char*)malloc(100);

    strcpy(p,"hello world");

}

int main()

{

    char* str = NULL;

    getmemory(str);

    printf("%s\n"str);

    free(str);

    return 0;

}

8、以下代碼會(huì)產(chǎn)生什么結(jié)果,為什么?

char str[10];

strcpy(str."0123456789");

9、volatile關(guān)鍵字的作用;

/*************************************************************

答案

/*************************************************************

1、一般規(guī)范的:

bool:if(falg) if(!flag)

float:const float EPS = 0.000001;    if((x >= -EPS )&&(x <= EPS))

指針:if(p == NULL) if(p != NULL)

2、6、4、4、4、4;

3、int* a[10];    int(*a)[10];    int (*a)(int);  int (*a[10])(int);  

4、沒(méi)有為str分配內(nèi)存空間,將一個(gè)字符串拷貝到一個(gè)字符變量指針?biāo)傅刂贰?梢猿鲱A(yù)期結(jié)果

但是越界進(jìn)行讀寫導(dǎo)致程序崩潰。

5、“aaa”是字符串常量,str是指針,指向這個(gè)字符串常量,所以聲明str的時(shí)候就有問(wèn)題了。

又const char* str = “aaa”;是常量對(duì)str[0]的賦值操作是不合法的。

6、重要區(qū)別是C中struct不可以包含成員函數(shù),而在C++中它就是一個(gè)類只是默認(rèn)是public的罷了。

7、p傳給getmemory函數(shù)的是p的一個(gè)副本,在函數(shù)體為p開(kāi)辟了空間超了函數(shù)體p還給還給操作系統(tǒng)了,

p所指向的內(nèi)存空間沒(méi)有釋放導(dǎo)致內(nèi)存泄漏。

8、str越界寫入數(shù)據(jù),會(huì)導(dǎo)致段錯(cuò)誤。

9、一個(gè)定義為volatile的變量表示該變量會(huì)經(jīng)常被改變。多用于下面三個(gè)地方

(1)、中斷服務(wù)程序中修改的供其它程序檢測(cè)的變量需要加volatile;

(2)、多任務(wù)環(huán)境下各任務(wù)間共享的標(biāo)志應(yīng)該加volatile;
(3)、存儲(chǔ)器映射的硬件寄存器通常也要加volatile說(shuō)明,因?yàn)槊看螌?duì)它的讀寫都可能由不同意義;



向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI