C語言學習

2021-08-31 01:14:25 字數 2193 閱讀 4170

1、區域性變數能否和全域性變數重名? 

答:可以重名,作用域不同,在函式中優先使用區域性變數,在c語言中沒有::引用全域性的說法。在函式外,區域性變數無法被訪問,所以沒有影響。

2、如何引用乙個已經定義過的全域性變數? 

答:extern + 全域性變數名

3、全域性變數可不可以定義在可被多個.c檔案包含的標頭檔案中?為什麼?

答:可以

4、請寫出下列**的輸出內容   

#include  int main(void)   

答: b = 10, c  = 12, d = 120;

5、static全域性變數與普通的全域性變數有什麼區別?static區域性變數和普通區域性變數有什麼區別?static函式與普通函式有什麼區別?

答:加static全域性其他檔案無法呼叫,加static區域性變數放在.data,函式結束但是static全域性變數依然存在,加static函式,不能被其他檔案呼叫。

6、程式的區域性變數存在於(堆疊)中,全域性變數存在於(靜態區 )中,動態申請資料存在於( 堆)中。 

區域性變數 棧區

全域性變數  static宣告變數 靜態區

malloc申請 堆

7、設有以下說明和定義:  

typedef union

long i;  //8bits

int k[5]; //20bits

char c;  //1bits

} date;  //24bits

struct data

int cat;  //4

date cow;  24//

double dog;  //8

} too;  

date max;   

則語句 printf("%d",sizeof(struct data)+sizeof(max));的執行結果是

union的結構體大小演算法是size為可以整取所有成員size,有陣列的話,size一定要能放下陣列,但是在算除法的時候,按照變數型別大小算。struct的size大小演算法和union不一樣,union為記憶體共享,一時間只有乙個變數在其中,而struct是成員中必須都有記憶體,用偏移量演算法。但是當在strct中有union的時候先排除union計算大小,後加上union的大小就行。

8、佇列和棧有什麼區別?

佇列是先進先出 棧是先進後出

9、寫出下列**的輸出內容   

#include

int inc(int a)   //自增函式,傳值操作,a的值不變。

int multi(int*a,int*b,int*c)   

typedef int(func1)(int in);   

typedef int(func2) (int*,int*,int*);  

void show(func2 fun,int arg1, int*arg2)  

func1 p=&inc;   

int temp =p(arg1);  //temp = 11; 

fun(&temp,&arg1, arg2);   

printf("%dn",*arg2);   

main()   

int a;          //區域性變數a為0;

show(multi,10,&a);    

return 0;

答:110

10、請找出下面**中的所有錯誤 (題目不錯,值得一看)  

說明:以下**是把乙個字串倒序,如「abcd」倒序後變為「dcba」   

#include"string.h"   

main()   //main函式沒有宣告型別 ,應該為int型別

char*src="hello,world";   

char* dest=null;   

int len=strlen(src)+1;   

dest=(char*)malloc(len+1); //『/0』的儲存位置 //沒有釋放申請的記憶體

char* d=dest;   

char* s=src[len];           

while(len--!=0)   

d++=s--;          //沒問題是,=號的運算優先順序比後置自增自減高

printf("%s",dest);   

return 0;   

C語言學習

c語言學習 2013 3 26 1 編寫strcat s,t 函式,功能 將t指向的字串複製到s指向的字串的尾部。程式設計思路 1 通過while迴圈找到字串s的結束符。2 從找到的結束符開始將t複製到s,同時移動二者的指標。2 編寫函式strend s,t 如果字串t出現在字串s的尾部,該函式返回...

c語言學習

今天總結一些c 語言方面的知識 變數的概念 其值在作用域內可以改變的量稱為變數。乙個變數應該有乙個名字,並在記憶體中佔據一定儲存空間。區域性變數和全域性變數 區域性變數是在函式內作定義說明的,其作用域僅限函式內,離開該函式再使用這種變數是非法的。全域性變數也稱為外部變數,是在函式外部定義的變數,它不...

c語言學習

計算機工作基本原理 現代計算機可分為幾個部件 cpu 處理單元 擔負著絕大部分的計算工作。ram 隨機訪問儲存器 作為乙個工作區來儲存程式和檔案。硬碟 永久儲存器 即使在計算機關機時也能記下程式和檔案。以及各種外圍裝置 如鍵盤,滑鼠和監視器 用來提供人與計算器之間的通訊。cpu工作過程 從記憶體中獲...