C語言中的陣列具有的特性是 A 所有元素具有相同的資料型別B 元素下標從1開始

2021-03-26 17:47:12 字數 7879 閱讀 8509

1樓:匿名使用者

a:所有元素具有相同的資料型別

>>正確. 定義陣列形式為 type name[size]; 每個元素的型別都是type.

b:元素下標從1開始

>>錯誤, 從0開始.

c:所有元素佔用連續的記憶體

>>正確. 陣列佔記憶體連續. 從陣列名即首地址開始.

d:陣列名是一個地址常量

>>正確. 陣列名值為陣列首地址, 型別為一個常量陣列指標.

c語言中陣列元素下標的資料型別

2樓:匿名使用者

c:整形常量,字元形常量或整形表示式

3樓:匿名使用者

c的陣列可以理解為數學中的含有第0項的數列 , 含有 a[0], a[1], a[n-1] 共 n 個資料,訪問是要用整形的***x去訪問。

這種題不要死記硬背~~

在c語言中,引用陣列元素時,其陣列下標的資料型別允許是____。 (a)整型常量 (b)整型表示式 (c)整型常

4樓:

單選題麼?是的話選a

c是怎麼回事沒打全啊

5樓:

a b都是可以的 c 你沒寫全。

6樓:手機使用者

整形常量或整形表示式

在c語言中,引用陣列元素時,其陣列下標的資料型別允許是

7樓:匿名使用者

b比如int a[20]

下表就可以是常量,

i=8 j=9

a[i+j]

也行,下標i+j就是整形表示式

8樓:匿名使用者

推薦回答b比如int a[20] 下表就可以是常量, i=8 j=9 a[i+j] 也行,下標i+j就是整形表示式

9樓:匿名使用者

a。陣列下標必須是整型的!而且c不會幫你去算,必須是個常量!

10樓:樹幹草莓

選a,整型常量表示式,整型表示式有可能是變數的,b不對

11樓:

想你想好想見你想你下班寫吧寫吧擺大巴

c語言的陣列問題,若有定義:int a[2][3];以下選項中對a陣列元素正確引用的是 a.a[2][!1] b.a[2][3]

12樓:匿名使用者

選d。一個二維陣列可以被認為是一個帶有 x 行和 y 列的**。下面是一個二維陣列,包含 2 行和 3列:

因此,陣列中的每個元素是使用形式為 a[ i , j ] 的元素名稱來標識的,其中 a 是陣列名稱,i 和 j 是唯一標識 a 中每個元素的下標。i最大值為1,j最大值為2,超出此範圍則表示錯誤。

13樓:孤獨的蠍子

d 因為1>2為假,所以表示式為0 ; 其次!1也就是非真,即為假,所以a[1>2][!1]等價於a[0][0]

14樓:藍人

d,陣列的有效範圍是a[0][0] - a[1][2]

a,b,c都超過範圍了。

15樓:匿名使用者

定義的陣列引用時那個數下標減1

c語言誰幫我改進下?:陣列a[20],輸入一個數b,將b與陣列元素比較,若相等,輸出與b相等的元素的下標號。

16樓:匿名使用者

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

}//  如果是專正常跳出for迴圈的話i等於20 說明屬 沒有找到這個數,如果在迴圈過程中找的這個數的話 i一定 <= 19所以 如果i 的值只要等於20 就說明沒找到

if (20 == i)

17樓:it孤鶩

#include

main()

;int b,i,flag=0;

scanf("%d",&b);

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

if(b==a[i])

if(flag)

printf("找到了!與b相等的元素下標號是%d\n",i);

else

printf("陣列中沒版

有這個數權\n");}

c語言陣列題 有一個陣列,資料元素從下標為1的位置開始存放,試編寫一個演算法:刪除陣列

18樓:天秤座的龍騎士

#include

int shanchu(int *a,int n)} for(j=i;j<=n-1;j++)return n-1;

}void print(int *a,int n)printf("\n");

}int main()

print(a,n);

n=shanchu(a,n);

print(a,n);

return 0;

}有問題請追問。**已給出

19樓:漠影歌

給你個思路,嘗試自己去寫吧,挺簡單的:

假設a陣列要操作的數

組,b陣列是刪除資料內後存放a陣列元素容的陣列首先,通過for迴圈對該a陣列進行遍歷,通俗一點就是給個臨時變數i,讓i++,使得a陣列能從第一個查詢到最後一個,在for迴圈體裡面可以將a陣列的值逐個放入b陣列中,我們需要進行一次判斷,如果a陣列的值除以2 取餘之後為0,則這個數為偶數,當這個if語句成立的時候break,跳出迴圈,設定一個臨時變數儲存當前a陣列的下標,再之後再寫一個迴圈,i要等於剛剛設定的那個臨時變數,然後逐個將將a陣列的剩下的值逐個放入b陣列中

在c語言中,引用陣列元素時,其陣列下標的資料型別允許是______。 a.整型常量 b.整型表達

20樓:惡疾臭魚

a和b都對,不過當然是c更完整,就像數人頭,總不可能有一點幾個人頭吧

21樓:明白小子天枰

c 如果是定義陣列長度的話就只能是a 這裡注意題名是引用 還是定義

c語言陣列的定義

22樓:打孃胎裡喜歡你

c語言支援一維陣列和多維陣列。如果一個陣列的所有元素都不是陣列,那麼該陣列稱為一維陣列。

在c語言中使用陣列必須先進行定義,一維陣列的定義方式為:型別說明符; 陣列名 ;[常量表示式]。

其中,型別說明符是任一種基本資料型別或構造資料型別。陣列名是使用者定義的陣列識別符號,方括號中的常量表示式表示資料元素的個數,也稱為陣列的長度。例如:

int a[10];  /* 說明整型陣列a,有10個元素 */

float b[10], c[20];  /* 說明實型陣列b,有10個元素,實型陣列c,有20個元素 */

char ch[20];  /* 說明字元陣列ch,有20個元素 */

對於陣列型別說明應注意以下幾點:

1、陣列的型別實際上是指陣列元素的取值型別。對於同一個陣列,其所有元素的資料型別都是相同的。

2、陣列名的書寫規則應符合識別符號的書寫規定。

3、陣列名不能與其它變數名相同。例如:

int a;

float a[10];

是錯誤的。

4、方括號中常量表示式表示陣列元素的個數,如a[5]表示陣列a有5個元素。但是其下標從0開始計算。因此5個元素分別為a[0], a[1], a[2], a[3], a[4]。

5、不能在方括號中用變數來表示元素的個數,但是可以是符號常數或常量表示式。例如:

#define fd 5

// ...

int a[3+2],b[7+fd];

是合法的。但是下述說明方式是錯誤的。

int n=5;

int a[n];

6、允許在同一個型別說明中,說明多個陣列和多個變數。例如:

int a,b,c,d,k1[10],k2[20];

23樓:匿名使用者

我是菜鳥~~~

把具有相同資料型別的若干變數按有序的形式組織起來,

以便於程式處理,這些資料元素的集合就是陣列,按照陣列

元素的型別不同,可分為:數值陣列、字元陣列、指標陣列

結構陣列等各種類別。

陣列說明的一般形式為:

型別說明符 陣列名[常量表示式],......;

其中型別說明符可以是任一種基本資料型別或構造資料型別

陣列名是定義的陣列識別符號。常量表示式表示資料元素的個

數,也就是陣列的長度。

對陣列型別的說明應注意:

1)陣列的型別實際上是陣列元素的取值型別。

2)陣列名的書寫應符合識別符號的書寫規範。

3)陣列名不能與其他變數名相同。

4)常量表示式表示陣列元素的個數,但是其下標從0開始計算

5)不能在方括號中用變數來表示元素的個數,但是可以用符號

常數或常量表示式。

6)允許在同一個型別說明中,說明多個陣列和多個變數。

陣列元素的表示方法

一般比較簡單就是陣列名[下標]來引用,先定義後用,如果

是小數的話,直接自動取整。

陣列賦值分為:初始化賦值和動態賦值

初始化賦值一般形式為:

static 型別說明符 陣列名[常量表示式]=;

static表示靜態儲存型別,c語言規定只有靜態儲存陣列和外部陣列

才可做初始化賦值。

c語言對陣列的初始化賦值還有幾個規定:

1)可以只給部分元素賦值。

2)只能給元素逐個賦值,不能給陣列整體賦值。

3)如不給可初始化的陣列賦初值,在在陣列說明中,可以不給出陣列

元素的個數。

下面看一下多維陣列

主要看一下二維陣列,其他的就可以用二維陣列類推得到

二維陣列的型別說明的一般形式是:

型別說明符 陣列名[常量表示式1][常量表示式2]...;

在c語言中二維陣列是按行排列的

二維陣列的表示方法:

陣列名[下標][下標]

二維陣列的初始化

二維陣列初始化也是在型別說明時給各下標變數賦以初值。 二維陣列可

按行分段賦值,也可按行連續賦值。

二維陣列的初始化還應該注意:

1)可以只對部分元素賦初值,未賦初值的元素自動取為0。

2)如對全部元素賦初值,則第一維的長度可以不給出。

字元陣列:

用來存放字元變數的陣列稱為字元陣列。

c語言允許用字串的方式對陣列作初始化賦值。例如:

static char c=; 可寫為:

static char c=; 或去掉{}寫為:

sratic char c="c program";

用字串方式賦值比用字元逐個賦值要多佔一個位元組, 用於存放字串結

束標誌'\0'。上面的陣列c在記憶體中的實際存放情況為: c program\0`\0'是

由c編譯系統自動加上的。由於採用了`\0'標誌,所以在用字串賦初值時一

般無須指定陣列的長度, 而由系統自行處理。在採用字串方式後,字元數

組的輸入輸出將變得簡單方便。 除了上述用字串賦初值的辦法外,還可用

printf函式和scanf函式一次性輸出輸入一個字元陣列中的字串, 而不必

使用迴圈語句逐個地輸入輸出每個字元。

void main()

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

注意在本例的printf函式中,使用的格式字串為"%s", 表示輸出的是一

個字串。而在輸出表列中給出陣列名則可。 不能寫為: printf("%s",c);

void main()

char st[15];

本例中由於定義陣列長度為15, 因此輸入的字串長度必須小於15,

以留出一個位元組用於存放字串結束標誌`\0`。 應該說明的是,對一個字

符陣列,如果不作初始化賦值,則必須說明陣列長度。還應該特別注意的是,

當用scanf函式輸入字串時,字串中不能含有空格,否則將以空格作為串

的結束符。例如執行例4.8,當輸入的字串中含有空格時,運**況為:

input string:this is a book this 從輸出結果可以看出空格以後的字元

都未能輸出。 為了避免這種情況, 可多設幾個字元陣列分段存放含空格的

串。程式可改寫如下:

lesson

void main()

本程式分別設了四個陣列, 輸入的一行字元的空格分段分別裝入四個陣列。

然後分別輸出這四個陣列中的字串。在前面介紹過,scanf的各輸入項必須以

地址方式出現,如 &a,&b等。但在例4.8中卻是以陣列名方式出現的,這是為

什麼呢?這是由於在c語言中規定,陣列名就代表了該陣列的首地址。 整個

陣列是以首地址開頭的一塊連續的記憶體單元。如有字元陣列char c[10],在

記憶體可表示如圖4.2。設陣列c的首地址為2000,也就是說c[0]單元地址為2000。

則陣列名c就代表這個首地址。因此在c前面不能再加地址運算子&。如寫作

scanf("%s",&c);則是錯誤的。 在執行函式printf("%s",c) 時,按陣列名c

找到首地址,然後逐個輸出陣列中各個字元直到遇到字串終止標誌'\0'為止。

字串常用函式:

用於輸入輸出的字串函式在使用前應包含標頭檔案"stdio.h",使用其他字串

函式則應包含標頭檔案"string.h".下面介紹幾個常用的字串函式:

1)字串輸出函式 puts 格式:puts(字元陣列名) 功能:把字元陣列中的字元

串輸出到顯示器。

#include"stdio.h"

main()

2)字串輸入函式gets 格式:gets(字元陣列名) 功能:從標準輸入裝置上

輸入一個字串。

#include"stdio.h"

main()

tips:gets函式並不以空格作為字串輸入結束的標誌,而只是以回車作為輸入

結束,這是與scanf不同的部分

3)字串連線函式strcat 格式:strcat(字元陣列名1,字元陣列名2)

功能:把字元陣列2中的字串連線到字元陣列1中字串後面,並刪去字串

1後的串標誌"\0",本函式返回字元陣列1的首地址。

#include"string.h"

main()

4)字串拷貝函式strcpy 格式:strcpy(字元陣列名1,字元陣列名2)

功能:把字元陣列2中的字串拷貝到字元陣列1中,串結束標誌 "\0"也一同

拷貝,字元陣列2也可以是一個字元常量,就相當於把一個字串賦予一個字元陣列

#include"string.h"

main()

5)字串比較函式strcmp格式:strcmp(字元陣列1,字元陣列2) 功能:

按照ascii碼順序比較兩個陣列中的字串,並有函式返回值返回比較結果

#include"string.h"

main()

a[i]=n;

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

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

printf("\n");

}例二:

main()

;int b[3],i,j,l;

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

printf("\narray a:\n");

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

printf("\narray b:\n");

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

printf("%5d",b[i]);

printf("\n");

}例三:

void main()

if(p!=i)

puts(cs[i]);

printf("\n");

C語言中陣列的合併

兩個陣列合並,參考 include stdio.h int d 0 用於記錄陣列c的大小,和陣列c的輸出類的一些操作 void main if leap 0 break 經歷了一個內for迴圈,leap 0的話,表明排序成功了,不需要接下來在排序了。void prin int p,int n 自定義...

C語言中關於二維陣列的問題,c語言關於定義二維陣列的問題

float a 5 是定義了一個指向陣列的指標,如果要把它當成二維陣列的話,相當於列數為5,行數可以動態分配。如 float a 5 int n 2 定義行數為2 a new float n 5 int sum 0 for int i 0 i 對於你定義的這個陣列,它表示有5個float 型別的指標...

c語言中strlens是什麼意思s是陣列

strlen s 表示求字串s的長度。strlen函式原型 int strlen char s 標頭檔案 string.h 格式 strlen 字元陣列名 功能 計算給定字串的 unsigned int型 長度,不包括 0 在內 說明 返回s的長度,不包括結束符null。參考 include inc...