指標和陣列習題

2022-11-30 01:06:03 字數 3148 閱讀 1468

一、1 陣列可以在定義時整體賦初值,但不能在賦值語句中整體賦值

2. 取陣列a的第5個元素的位址,正確的寫法是

a) *a[4] b) &a[4] c) a[4] d) *(a+4)

3. 程式段輸出結果是

int main()

12345 b) 12345 c) 12345d) 12345

12345.1234612345.12345 12345.12345 12345.1235

4、若x為整形變數,p是基型別為整形的指標變數,則正確的賦值表示式 ( )

a p=&x b p=x c *p=&x d *p=*x

5,設p1和p2均為指向同乙個int型一維陣列的指標變數,k為int型變數,下列不正確的語句是( )

a k=*p1+*p2 b k=*p1*(*p2) c p2=k d p1=p2

6.對於相同型別的指標變數,不能進行( )運算。

a, + b, - c, = d, ==

7.有函式定義如下,則其返回值為( )

int *f(int a)

a 乙個不可用的儲存單元位址值

b乙個不可用的儲存單元位址值

c n中的值

d 形參a中得值

8,下列關於字串的描述中,錯誤的是( )

a,一維字元陣列可以存放乙個字串

b,可以用乙個字串給二維字元陣列賦值

c,二維字元陣列可以存放多個字串

d;可以用乙個字串給二維字元陣列進行初始化

9;下列關於字元陣列的描述中,錯誤的是( )

a.字元陣列中得每乙個元素都是字元

b,字元陣列可以使用初始值表進行初始化

c,字元陣列可以存放字串

d 字元陣列就是字串

10;下列關於陣列下標的描述中,錯誤的是( )

a;c++中,陣列元素的下標是從0開始的

b,陣列元素下標是乙個整型常量表示式

c,陣列元素可以用下標來表示

d,陣列元素的某維數下標值應小於該維的大小

11,下面能正確地將字串「c++」進行完整賦值操作語句的是( )

a char s【3】= d,char s【3】; s【0】=『c』;s 【1】=『+』;s【2】=『+』;

12,在c++中,二維陣列元素在記憶體中的存放順序為( )

a.按行存放b。按列存放

c,有使用者自己定義d,有編譯器決定

二、解釋下列語句含義(10分)

(1) int *p(); 語句含義

(2) int (*p)(); 語句含義

(3) int (*p)[3]; 語句含義

(4) int *p[4]; 語句含義

(5) int **p; 語句含義

三、閱讀程式選擇正確答案填空

程式功能:檢查給定字串s是否滿足下列兩條件:

1、從字串首字元起,在順序檢查s中的字元的過程中,遇到的右括號「)」的個數在任何時候均不超過所遇到的左括號「(」的個數;

2、字串s中左括號「(」的個數與右括號「)」的個數相同。

若字串s同時滿足上述條件1和條件2,函式返回非0值,否則返回0值。

int check( (1

4 }

return ((lp != rp) ? 0 : 1);

}(1) a. char *s b. char sc. char sd. char s

(2) a. *sb. *s == 0c. *s != 0 d. s

(3) a. rp > lp b. rp < lpc. rp == lp d. rp != lp

(4) a. sb. (*sc. ++(*sd. ++s

四、閱讀程式(22分)

(1) 下面程式執行會出錯嗎?如果會,請改正。(4分)

#include <>

main()

printf("%s", buffer);

}(2) 給下面程式找錯。請標註在程式上,並給予恰當的文字說明。(6分)

#include <>

main()

(3) 輸入一行字元(最多80個),統計其中的大寫字母,小寫字母,數字,空格及其它字元的個數。

#include <>

#define ucase 0

#define lcase 1

#define num 2

#define space 3

#define other 4

int main()

;while(temp=getchar()!=』\n』)

printf(「upper case: %d\nlower case: %d\nnumber: %d\n\space: %d\n\);

return 0;

}(4) 使用者輸入若干個(不超過20個)小於100的正整數,程式設計求出這些數的最大值、最小值和平均值。使用者輸入乙個負數表示輸入結束。

/*這題……讓輸入正整數,負數表示結束,輸入0咋整……*/

#include <>

main()

if(i==0)printf(「no input.\n」);

else

}(5) 利用memcpy()函式實現char* my_strcpy(char* dst, char* src)函式,把字串src拷貝到dst內,並返回dst。

char* my_strcpy(char *dst,char *src)

(6) 使用者輸入一行字串,可能輸入的字元個數不定,以回車作為結束標誌。統計使用者的輸入中一共有多少個單詞。單詞之間以空格或者\t作為分隔。

#include

#include

using namespace std;

int main()

if(input[ 』||input[

cout

}(7). 分析下面的程式,請找到並改正其中的任意五行錯誤或不當的**,不改正不得分(可以在題目上直接改)。

統計字元數。判斷乙個由』0』 ~ 『9』這10個字元組成的字串中哪個字元出現的次數最多。

輸入資料:第一行是測試資料的組數m,每組測試資料佔1行,每行資料不超過1000個字元且非空。

指標陣列與陣列指標的區別

陣列指標 也稱行指標 定義 int p n 優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p 1時,p要跨過n個整型資料的長度。如要將二維陣列賦給一指標,應這樣賦值 int a 3 4 int p 4 該語句是定義乙個陣列指標,指向...

實驗總結報告 串和陣列

學號 姓名 時間 1 目的 1.做實驗的目的 2.2.撰寫實驗報告的目的 2 內容 1.說明實驗次數及實驗內容 本次實驗用乙個實驗課時完成。實驗內容 1.編寫函式strassign strcopy strlenth strcompare strconcat substring replace 完成串...

字元陣列,字元指標,sizeof,strlen總結

cpp 字元陣列,字元指標,sizeof,strlen總結 對於字元陣列與字元指標 1.以字串形式出現的,編譯器都會為該字串自動新增乙個0作為結束符,如在 中寫 abc 那麼編譯器幫你儲存的是 abc 0 2.字串直接量作為字元指標的初始值 hello 是乙個字串直接量,編譯器將其作為const c...