一道c語言題,求解答,萬分感謝,一道c語言題,求解答,謝謝啦

2021-03-11 00:08:13 字數 3982 閱讀 1536

1樓:谷歌地

小夥子這個題不用仔細分析

那麼一大段迴圈就是唬人的

就相當於一

個人出題問你版1 * 2 * 3 * 5 一直乘,乘到1000,然權後乘以0,等於多少一樣

都是唬人的

很明顯,這個陣列搞來搞去就是把陣列a的最後一個元素變成指標陣列的最後一項唄

那就找找陣列a的最後一項,還有p的最後一項,或者pp的最後一項

看下答案

選項a,看起來很像是正確答案,但陣列下標從0開始,最大下標是11,所以a錯

b,很明顯是這個指標陣列的最後一項,那就是12唄

cd不要看了

當然你要深究,那麼,這個指標陣列長度是3,最後一項是p[2]存放a[8]的地址

然後p[2][3] = a[8 + 3]

2樓:威封凜凜

int a[12]=, 陣列a包含12個元素,為1到12*p[3], 指標陣列

**p,i; 指向指標的指標和變數i

for(i=0;i<3;i)應該為for(i=0;i<3;++i) 迴圈

p[i]=&a[i*4]; 意思是p[i]的值為a[i*4]的地版址,這裡權p[i]是指標

也就是p[0]指向a[0]地址

p[1]指向a[4]地址

p[2]指向a[8]地址

pp=p;pp指向指標陣列p的地址 pp是指向指標的指標,p是指標陣列,所以p也是指向指標的指標,可以pp=p

我覺得解釋到這裡差不多了,我相信你可以的

3樓:匿名使用者

int*p[3];定義來

指標陣列

自p,它由3個指向整型資料的指標元素組成,也就是說p[0],p[1],p[2]均是指標。

p[2]=&a[8]

p[2][3]=*(p[2]+3)

*(p[2]+3)=a[11]=12

一道c語言題,求解答,謝謝啦

4樓:匿名使用者

a選項,pp[i][j] 非法,抄不能表示陣列a中元襲素的bai地址。

c選項,*(*(p+i)+j) 表示的是數du組a某個元素的zhi內容,而不是元dao素的地址。

d選項,p無法表示陣列a元素的地址,p是一個指標陣列,從它取一遍才能得到陣列a元素的地址。

c語言資料結構題,求大佬解答,萬分感謝!!!! 5

5樓:哈米哈達

之前儲存的

原始碼:#include

#include

typedef int elemtype;

struct btreenode

;//1、輸出二叉樹,可在前序遍歷的基礎上修改。採用廣義**式,元素型別為int

void printbtree_int(struct btreenode* bt)}}

//2、根據陣列 a 中 n 個權值建立一棵哈夫曼樹,返回樹根指標

struct btreenode* createhuffman(elemtype a, int n)

for (i = 1; i < n; i++)//進行 n-1 次迴圈建立哈夫曼樹

if (b[j] != null)

}for (j = k2; j < n; j++)//從當前森林中求出最小權值樹和次最小

else if (b[j]->data < b[k2]->data)

k2 = j;}}

//由最小權值樹和次最小權值樹建立一棵新樹,q指向樹根結點

q = malloc(sizeof(struct btreenode));

q->data = b[k1]->data + b[k2]->data;

q->left = b[k1];

q->right = b[k2];

b[k1] = q;//將指向新樹的指標賦給b指標陣列中k1位置

b[k2] = null;//k2位置為空

}free(b); //刪除動態建立的陣列b

return q; //返回整個哈夫曼樹的樹根指標

}//3、求哈夫曼樹的帶權路徑長度

elemtype weightpathlength(struct btreenode* fbt, int len)//len初始為0

}//4、哈夫曼編碼(可以根據哈夫曼樹帶權路徑長度的演算法基礎上進行修改)

void huffmancoding(struct btreenode* fbt, int len)//len初始值為0

else//訪問到非葉子結點時分別向左右子樹遞迴呼叫,並把分支上的0、1編碼儲存到陣列a}}

//主函式

void main()

a = malloc(n*sizeof(elemtype));

printf("從鍵盤輸入%d個整數作為權值:", n);

for (i = 0; i < n; i++)

scanf(" %d", &a[i]);

fbt = createhuffman(a, n);

printf("廣義表形式的哈夫曼樹:");

printbtree_int(fbt);

printf("\n");

printf("哈夫曼樹的帶權路徑長度:");

printf("%d\n", weightpathlength(fbt, 0));

printf("樹中每個葉子結點的哈夫曼編碼:\n");

huffmancoding(fbt, 0);

}來自yaoowei2012

一道c語言問題,請詳細說明一下運算過程,萬分感謝。

6樓:super豔豔

大致的功能是將a的內容反向輸出,4,3,2,1. 難理解的是static int t = 3; 這個變數只初始化一次,因為是靜態變數所以資料在堆區,當fun結束後不會被釋放,下次繼續可以使用這個變數,且值是上次使用後的,當j=0時,t=3,*y=x[3];當j=1時,t=2,*y=x[2];以此類推,當然fun的傳參不夠安全,很容易陣列越界

7樓:找自己_做自己

t, 只能在void fun中使用,,先執行

void main() 在執行void fun(int*x,int*y );跳轉到定義。執行void fun(int*x.int*y)裡面的,在執行 int a=,j,x=0; 接下來執行for(j=0;j<4;j++) j=5時不執行。

8樓:匿名使用者

核心問題是 static int t=3;儲存在靜態資料區的變數會在程式剛開始執行時就完成初始化,也是唯一的一次初始化,main函式中迴圈呼叫4次fum函式,第一次呼叫把a[3]賦給x並輸出,因為t--,第二次把a[2]賦給x並輸出……

一道c語言題,求解答

9樓:江湖有痴人

從main函式開始來,第一個switch判斷a與3取餘源為1,則程式進入case 1,c++,變bai量c此時自加du1為1,然而並未遇zhi

到break,所以並未跳出switch語句,dao進入case 2,此時進入第二個switch判斷b與2取餘為1,後面並未有case 1這個選擇語句,所以出錯進入default語句,變數c再次自加1為2,跳出程式,用printf函式輸出變數c,結果顯示為2. ok,搞定

10樓:煙火夜空

題目 考 switch 語句的特bai性,duswitch語句,找到 入口zhi後dao(就是對應值),跳轉到入口處,往下執行回。(如遇到break 就結束switch 語句)答

題目中,a=10,a%3=1,選擇入口case 1:執行 c++,c=1;未遇見break 語句,繼續往下執行 case 2:又switch(b%2);

b=11,b%2=1,無case 1入口,選擇default 入口:執行c++,c=2;結束2個switch ,列印c《回車》→2《回車》

11樓:天雲一號

switch(a%3)}

一道c語言程式題目,求解答,一道C語言程式題目,求解答

上面的 中,沒有對s進行輸入,所以如果輸出s的話,指定會是亂碼的啊把指標調回p 0 的話,可以p 回去 或者在p改變之前,用tmp p儲存起始位置。struct stu tmp p p p tmp p 此外,我猜,這個程式中的s是為了儲存平均值?struct stu int main int i,l...

一道c語言程式題,求解答過程,一道C語言程式題,求解答過程

小孚天天推 第一次convleft 1234 1000 1234 1000 10 1 234 10 2341 可以看出向左移動看一位 第二次convright 2341 10 1000 2341 10 1 1000 234 1234 可以看出向右移動了一位 第三次convright 當然就是把123...

c語言題目求解答,一道c語言題目,求解答!!!!!!!

include stdio.h void dfs int k int main int argc,char argv dfs n printf n return 0 執行樣例 一道c語言題目,求解答!scanf 函式中沒有精度控制。如 scanf 5.2f a 是非法的。不能企圖用此語句輸入小數為2...