日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

笔试训练1 知识点整理

發(fā)布時間:2025/3/19 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 笔试训练1 知识点整理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

static關(guān)鍵字的作用
1設(shè)置局部變量的存儲域,static局部變量的作用范圍為該函數(shù)體,該變量的內(nèi)存只被分配一次,因此其值在下次調(diào)用時仍維持上次的值;

?(只執(zhí)行一次,延長局部變量的聲明周期直至程序結(jié)束)


2限制全局變量的作用域,static全局變量可以被模塊內(nèi)所用函數(shù)訪問,但不能被模塊外其它函數(shù)訪問;


3限制函數(shù)的作用域,static函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用,這個函數(shù)的使用范圍被限制在聲明它的模塊內(nèi);


局部變量和全局變量是否可以重名:

?, 局部會屏蔽全局. 要用全局變量, 需要使用"::"

?

程序的內(nèi)存分配:

代碼段,數(shù)據(jù)段(數(shù)據(jù)區(qū)、bss),堆,棧

注:數(shù)據(jù)區(qū):初始化的全局變量

?bss:靜態(tài)變量和未初始化的全局變量/初始化為0

?

堆和棧的區(qū)別:

一、堆棧空間分配區(qū)別:

?1、棧空間:由操作系統(tǒng)自動分配釋放 ,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧;
2、堆空間: 一般由程序員分配釋放, 若程序員不釋放,程序結(jié)束時可能由OS回收,分配方式倒是類似于鏈表。
二、堆棧緩存方式區(qū)別:
?1、棧使用的是一級緩存, 他們通常都是被調(diào)用時處于存儲空間中,調(diào)用完畢立即釋放;
?2、堆是存放在二級緩存中,生命周期由虛擬機(jī)的垃圾回收算法來決定(并不是一旦成為孤兒對象就能被回收)。所以調(diào)用?這些對象的速度要相對來得低一些。
三、堆棧數(shù)據(jù)結(jié)構(gòu)區(qū)別:
  堆(數(shù)據(jù)結(jié)構(gòu)):堆可以被看成是一棵樹,如:堆排序;
  棧(數(shù)據(jù)結(jié)構(gòu)):一種先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu)。

程序閱讀題:

#include<stdio.h>
#include<string.h>
int inc(int a)
{
return(++a);
}

int multi(int*a, int *b, int*c)
{
return(*c = (*a) * (*b));
}

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);
fun(&temp, &arg1, arg2);
printf("%d\n",*arg2);
}

int main()
{
int a;
show(multi, 10, &a);
return 0;
}

答案:110

#include<stdio.h>
#include<string.h>
void test2()
{
char string[10], str1[10];
int i;
for(i = 0; i < 10; i++)//i < 9
{
str1 = 'a';//錯誤:賦值時類型不兼容
}

//string[10] = '\0';
strcpy(string, str1);
printf("%s\n",string);
}
int main()
{
test2();
return 0;
}

修改的方法:

紅色標(biāo)識處


編程題:

寫一個函數(shù),判斷單鏈表是否存在環(huán):

struct??listtype??

{??

????int?data;??

????struct?listtype?*?next;??

}list; ?

int?find_cicle(list?*head)??

{??

?????list?*pFast=head;??

?????list?*pSlow=head;??

?????if?(pFast==NULL)??

?????{??

??????????printf(“鏈表是空的\n”);

?return -1;

??????}??

?????while(pFast?&&?pFast->next)??

????{??

????????pFast=pFast->next->next;??

????????pSlow=pSlow->next;??

????????if?(pFast==pSlow)??

???????{??

??Printf(“鏈表存在環(huán)!~\n”);

???????????return?1;??

????????}??

?????}??

?Printf(“鏈表不存在環(huán)!~\n”);

?????return?0??

}?

N個人排成一圈,順序排好,從第一個開始報(bào)數(shù)(1-3),凡是報(bào)的3的退出圈子,問最后剩下哪個?

#include <stdio.h>


int main()
{
int a;
int i,j=0;
int count = 0, x = 0, all = 1;
printf("請輸入人數(shù):\n");
scanf("%d",&a);

x = a;
int b[x][2];


for(i = 0; i < x; i++)
{
b[i][0] = i+1;
b[i][1] = 1;
}//初始化


while(1)
{
if(b[j%x][1] == 0)
{
j++;
continue;
}

count++;
if(count%3 == 0)
{
b[j%x][1] = 0;
count = 0;
++all;
}
j++;
if(all == x)
{
break;
}
}//去除死亡者


for(i = 0; i < x; i++)
{
if(b[i][1] == 1)
{
printf("幸存者是%d ",i+1);
}
}
printf("\n");//輸出幸存者
return 0;
}


總結(jié)

以上是生活随笔為你收集整理的笔试训练1 知识点整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。