4道C語言的基礎題目,麻煩各位知友幫個忙,剛開始學C

時間 2021-10-14 23:59:29

1樓:異世血

一、a[0] = "abcd",

a[1] = "ef",

a[2] = "gh",

a[3] = "ijk";

那你*a[i]就是每一個字串首地址的字元了。如果要輸出每個字串,可以:

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

printf("%s",a[i]);

二、p是一個字元指標,首地址為&a[4],puts(p)就是輸出p指向的字串。

如果要輸出a[4],需printf("%c\n",*p);

三、是。因為&a[0][0]是取首地址,然後&a[0][0]+2*2+1就是加了5個int型,20個位元組,就得到了

a[1][2]的地址。

四、a是傳的一個陣列,運用的時候是傳一個地址,是一個數,h[41]是一個整數,*p也可以接受一個地址。其實a用起來也可的。

2樓:匿名使用者

一:# include "stdio.h"

main()

;int i;

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

printf("%c",*a[i]);

printf("\n");

}輸出結果是aegi 為什麼只是輸出了每一行的首個字母呢?

printf("%s",*a[i]);應使用%s來輸出字串二:# include "stdio.h"

main()

為什麼結果是456789 不是4 嗎?

p=&a[4];

p的地址取到了a+4,輸出的結果從第五個字元開始!

三:int a[2][3]=;

則 *(&a[0][0]+2*2+1) 是不是表示 a[1][2] ,為什麼?

因為c是按行來排的a[1][0]==a+3,a+5==a[1][2]四:若有以下呼叫語句,則不正確的fun函式的首部是()main()

a) void fun(int m,int x[ ])b) void fun(int s,int h[41])c) void fun(int p,int *s)為什麼a是錯誤的呢?

a) void fun(int m,int x[ ])要求的是int陣列,呼叫傳的是一個陣列元素

3樓:

一、printf("%c",*a[i]);

%c是字元 %s才是字串

二、puts函式是輸出字串到標準輸出裝置三、&a[0][0]是a[0][0]的地址。二維陣列多個元素,在記憶體中是線性排列。往後移5個整型單元,得到a[1][2]的地址。

然後再用*號取這個單元。

四、a b c都是正確的。fun(n,&a[9]);語句中,實參&a[9]是整型變數的地址,是int * 型。所以c是正確的。

a b中的形參int x和 int h[41],並非真的陣列。x和h都是int *型的指標。而且它們的值是可變的。

4樓:匿名使用者

1.char *a=;定義了一個陣列a,其元素為char*

printf("%c",*a[i]);就是輸出單個字元。實際就是輸出每個char*元素指向字串的第一個字元

2.puts函式原型為int puts(char *string);遇到string指向char為\0返回。

3.*(&a[0][0]+2*2+1)是&a[0][0]地址加5,二維陣列在記憶體上的儲存等效於一維。

4.a選項引數為陣列的首地址,fun(n,&a[9]);&a[9]是一個整型數的地址,答案為c

5樓:匿名使用者

第一題:char a是定義陣列,而*a是定義陣列指標,意思是a[0],a[1],a[2]……都是指向陣列指標代表的陣列的第一個陣列的首個地址,如此處a[0]就是指向"abcd"這個char陣列儲存的首個字母a的地址,a[1]則是指向ef中的e,所以輸出的時候只輸出一個,如果想輸出第二個可以 printf("%c",*(a[i]+1))

第二題:同樣的道理,但put會輸出該指標指向的陣列以及之後位置的陣列所儲存的值

第三題:只要記住*(a[i]+b)表示a[i]陣列之後的b個陣列於是,如*(a[1]+2)表示a[3]。另外需要知道的是二維陣列其實同一位陣列儲存方式一樣,如a[2][2],和b[4],這裡a[0][0]就是b[0],a[0][1]就是b[1],所以a[0][0]+5樓主可以想到,就是a[5]的位置也就是對應的a[2][3]的第五個,a[1][2]

第四題,也感覺是b,h[41]是值,&a[9]地址,形參和實參型別不符,

一道簡單的c語言題目,一道簡單的C語言題目

s 2 是一個指標陣列,指向兩個字串 s 0 s 1 while s 1 0 迴圈,條件為 s 1 0 字串的最後一個值是 0 這裡遍歷s 1 字串,一共會遍歷4次。 寒鐵礦 你定義了一個指標陣列,s 0 指向的是第一個 字串的起始地址,s 1 指向的是第二個 字串的起始地址。while s 1 0...

三道C語言的題目

第一個巨集定義就是代替,10 10 15 10 15 100 15?10 15,100 15是錯的,所以答案是15 第二個還是巨集定義就是完全的串代替 z 2 n y 5 1 2 3 3 1 5 1 2 24 48 第三個輸出1,3,2,printf d,x y?y x 1 2?不大於啊,答案是x ...

c語言以下有個c語言的題目希望各位高手們幫幫

有點不知所云了阿.asm 亓倫 由4x4組成16個按鈕矩陣,設計成16個音。2 可隨意彈奏想要表達的 2 電路原理圖 圖4.22.1 3 系統板硬體連線 1 把 微控制器系統 區域中的p1.0埠用導線連線到 音訊放大模組 區域中的spk in埠上 2 把 微控制器系統 區域中的p3.0 p3.7埠用...