c語言指標程式設計下面的選項中正確的賦值語句是(char a

2021-03-22 05:56:41 字數 6352 閱讀 9840

1樓:匿名使用者

根據c/c++規定,"abcd"可是為字串的地址;另外就是陣列的不可以直接賦值,但可以在初始化時進行賦值,即:

正確:char a[10]="abcd";

錯誤:char a[10];a[10]="abcd";

對地址的操作當然是和指標相關聯,顯然a是正確的;

b選項可以排除,其實a可以理解為指標常量;

c選項左右兩邊不是等級的,左邊為變數,右邊為指標;

d選項同c選項。

c語言指標程式設計下面的選項中正確的賦值語句是(char a[5],*p=a;)( )。

2樓:匿名使用者

一。cstrcmp(字元

串1,字串2)它是把字串1和字串2裡面的字元通過ascii碼依次比較是否相等,如果字串1裡的字元ascii大於字串2裡的字元ascii那麼它返回1,如果符串1裡的字元ascii小於字串2裡的字元ascii那麼它返回-1,如果兩個相等那麼返回0,而 c的ascii小於f的ascii那麼 if(strcmp(s1,s2)) 返回-1,

所以if()語句成立,則執行 printf(「%s\n」, strcat(s2,s1));

這條語句,strcat(字串1,字串2)它是把字串2裡面的字元拼接到字串1裡面所以選擇c。

二。aa p=a+2; 這裡的2加的是指標偏移量,它按照a陣列的型別偏移,不如是int型那麼加2則偏移8個位元組,指標它儲存的是地址,p=a+2;則是把a[2]的地址副給了*p,a選項它符合語法規則,因此選擇a

下面的選項中正確的賦值語句是(char a[5],*p=a;)( )。 a p=「abcd」; b a=「abcd」; c *p=「abcd」; d

3樓:

正確結果是:a

a p=「abcd」; p是字元型指標,將「abcd」的地址給了p,也就是p指向「abcd"的首地址,也就是 指向『a'的地址;

b a=「abcd」;a是字元陣列的地址,不可賦值;

c *p=「abcd」; *p是字元,不能將字串賦給它,若是*p='a',則正確。

4樓:倪裡特

1、某個變數的內容,只能是一個常量;

2、字串不是常量,字元才是常量;

3、字串的首地址也是常量,其實字串的首地址就是一個指標。

下面的選項中正確的賦值語句是(char a[5],*p=a;)( )。 是什麼意思?

5樓:匿名使用者

*p就指,記憶體在資料移動的指標,給它賦的值,就是它在記憶體中所在的位置

c語言考試題

6樓:高金山

這些都是最基本的題,但要想全部做對,還真不容易我已經儘量保證我下面的答案都是對的

就算錯也錯不會超過1-2個的

填空題1.1

2.93.96 `(~鍵的那個符號,1鍵前面)

4.a[0] a[1] a[2]

5.1600

6.文字檔案 二進位制檔案

7.fopen fclose fseek

選擇題1.c

2.b3.d

4. a

只有a是正確的,bcd都是編譯都通不過的

b. a是陣列,是不能直接對陣列進行賦值的5.c6.c

7.a指標是可以相減,進行比較,指向同一地址的,但相加是不行的8.d9.c

10. b

寫出下列程式的執行結果:

1.10,6,23,-90,0,3

2.6 7 8

在 處填入適當內容:

(1)#include

(2)2

(3)break;

(4)k+1

程式設計求解

1、1*2*3。。。n

#include

void main()

2、1+2+3+…+100

#include

void main()

7樓:匿名使用者

我來回答下把:

1.12.9解釋:t = (a>b)?a:b等價於t = ((a>b)?a:b),這下應該知道了把

3.96 `(和~鍵是同一個鍵)

解釋:a=96;96是那個字元的acsii碼值的十進位制表示,它的十六進位制表示的ascii碼值為60,你可以對96進行除16取餘法得到60,然後你去檢視下字元的ascii碼 16進製表示的那個表就會發現,它對應的是這個字元,所以就是他了,別和單引號混淆就好,單引號的ascii碼十六進位制表示為27

4.a[0] a[1] a[2]

5.1600

6.文字檔案 二進位制檔案 [這個拿的不是很準]

7.fopen fclose fseek

下面:1.c

解釋:a+=a-=a*=a,首先要知道+=,-=,*=的優先順序是相同的,但是他們的結合性是由右向左的,所以,他相當於a+=a-=(a=a*a),你還要知道,這是在同一條語句中多次修改同一個變數的值,這裡有結合性,可以保證,但是有的時候並不可以,因為語言中明確規定,求值順序未定義,一般儘可能不要在同一條語句裡多次修改同一個變數的值,有的時候還和編譯器有關的,a+=a-=(a=a*a)相當於a+=(a=a-(a=a*a)),在a=(a+(a=a-(a=a*a))),所以為0

2.b3.d解釋:你定義一個帶引數的巨集#define add(x) (x)+(x)

你要知道,巨集替換是機械化的替換,不會很智慧化的,也就是說

在這裡,替換的時候是替換成了這樣d=(a+b)+(a+b)*c;所以最後就是80了

4. a

解釋:這樣理解把, char a[5]; char *p=a;這個是把陣列的首地址賦給指標p來初始化指標,你後面再加一句p="abcd";不就是對指標的賦值嗎,使指標不再指向陣列的首地址,而是指向了字串的首地址了.相信char *p="abcd";很常見把,呵呵...

5.c解釋:因為k=2,然後執行關係表示式k==0,結果顯然判斷結果為假,所以不執行迴圈體

6.c7.a指標是不能相加的

8.d解釋:這個應該好好解釋下,這個題還好了

struct st;

a p++->n b p->n++ c (*p).n++ d ++p->n

分析:首先你要知道,這是定義了一個結構體陣列,這個static struct st a[3]=寫的易讀一點就是static struct st a[3]=,,},是不是明瞭了好多.

你做這個題目之前還需要明白一點,即箭頭操作符的優先順序高於++運算子,然後分析選項

選項a.p++是字尾加,所以執行(p++)->n(即p++->n) 相當於執行p->n,即得到的值是5

選項b. p->n++相當於(p->n)++,由於是字尾加,所以得到的值也是5

選項c.(*p).n++ 就是相當於((*p).

n)++,更相當於(p->n)++,所以和上面的是一樣的,也是5,為什麼它相當於它呢,這就要你看看箭頭操作符的由來了,箭頭操作符的由來就是為了結合解引用操作符*和點操作符.於一起的.來簡化書寫,增加可讀性

選項d.++p->n 相當於++(p->n),由於是字首加,所以得到的值為6了

9.c,選擇w會格式化

10. b ,陣列名其實就相當於一個指標,這裡對指標做運算,加1使指標下移

寫出執行結果:

1.10623-9003

2.6 7 8

填空題:

1.#include

#include

2. 2

3.break;

4.k+1

程式設計題:

1.**如下:

#include

int main()

2.**如下

#include

int main()

應該沒錯把,樓主有什麼問題可以發訊息給我

8樓:匿名使用者

未檢查,請後來人指正19

96 a

a[0],a[1],a[2]

1600

二進位制 文字

fopen fclose fseekcb

dbcc

bcdb

10,6,23,-90,0,3,

6 7 8

(1)#include

(2)2

(3)break

(4)k+1

#include

int main()

#include

int main()

9樓:真理的尋找

1)1;2)9;3)96,a;4)a[0]a[1]a[2];5)1600;6)檔案,函式;7)fopen ,fclose,fgetc

1)c;2)b;3)a;4)b;5)c;6)c;7)b;8)a;9)d;10)b

1)10623

-900

32)6,7,8

在處填入適當內容

1)stdio;2)i=2;3)m++;4)m程式設計求解:

1)int i,t=1;

main()

{ for(i=0;i這分可是真不好拿阿

10樓:雛龍

1.設x的值為15,n的值為2,則表示式x%n運算後,表示式的值為(1 )。

2.設 int a=7,b=9,t;執行完表示式t = (a>b)?a:b後,t的值是( 9)。

3.下面程式段的輸出結果是(96,` )。

int a=96; printf(「%d %c\n」,a,a);

4.a陣列定義如下,按照記憶體排列順序,a陣列中的所有元素是(a[0] a[1] a[2]

)。 char a[3];

5.設有以下巨集定義,則執行賦值語句 a=pp*20;(a為int型變數)後,a的值是(1600 )。

#define pp 80

6.在c檔案中,資料存在的兩種**形式是(ascⅱ和二進位制

)。 7.c語言中呼叫(fopen )函式開啟檔案,呼叫(fclose )函式關閉檔案,呼叫(fseek )函式可實現檔案的隨機讀寫。

1.設 int a=12; 表示式a+=a-=a*=a的值是(c )。

a 12 b 144 c 0 d 132

2.以下程式的輸出結果是( b)。

main( )

a 96 b 97 c a d b

3.以下程式的輸出結果是(d )。

#define add(x) (x)+(x)

main()

a d=70 b d=140 c d=280 d d=80

4.下面的選項中正確的賦值語句是(char a[5],*p=a;)(c )。

a p=「abcd」; b a=「abcd」; c *p=「abcd」; d *a=「abcd」;

5.若k為整形,則while迴圈執行( c)次。

k=2; while(k==0) printf(「%d」,k); k--; printf(「\n」);

a 10 b 9 c 0 d 1

6.陣列名作為實參傳遞給形參時,陣列名被處理為該陣列的(c )。

a長度 b元素個數 c首地址 d各元素的值

7.兩個指標變數不可以(a )。

a. 相加 b 比較 c 相減 d 指向同一地址

8.若有以下程式段,則值為6的表示式是(d )。

struct st;

a p++->n b p->n++ c (*p).n++ d ++p->n

9.要開啟一個已存在的非空檔案」file」用於修改,選擇正確的語句( d)。

a fp=fopen("file","r"); b fp=fopen("file","w");

c fp=fopen("file","r+"); d fp=fopen("file","w+");

10. 9.若有int a[3]=;則a+1是( b)。

a a[0]的地址 b a[1]的地址 c a[1]的值 d a[0]的值加1

寫出下列程式的執行結果:

1.main( )

,i;for(i=0;i<6;i++) printf(「%d,」,a[i]);

printf(「\n」);

}/* 結果:10,6,23,-90,0,3*/

2.f1(int a)

main()

/*6 7 8*/

在 處填入適當內容:

求100~200間的全部素數。

(1)main() }

} 程式設計求解

1*2*3。。。n

///int main()

1+2+3+…+100

//#include

int main()

一道簡單的c語言程式設計題,C語言指標一道簡單的程式設計題

include include int main c語言程式如下,源謝謝採納。不借助臨時變數 include include void main 不用藉助變數藉助變數 int a,b,c 同樣的輸入 c a a b b c 這是核心演算法,其版餘的加齊 權就行了 數字是多大哦,幾百億?include...

c語言中下列關於函式的敘述中正確的的?解釋

c正確a.函式可以沒有返回值,如 void show int x 這個函式的功能僅僅是將傳入的x輸出到控制檯,它沒有返回值,但是可用。b.函式可以巢狀呼叫,但不可以巢狀定義。標準c語言不支援巢狀定義,但是有編譯器是支援的,如gcc,下面這個程式在gcc編譯和執行是沒有任何問題的,在vc6.0中編譯不...

C語言程式設計中 二維陣列中元素指標的表示 的例題,求詳解

二維陣列和指標 用指標表示二維陣列元素。要用指標處理二維陣列,首先要解決從儲存的角度對二維陣列的認識問題。一個二維陣列在計算機中儲存時,是按行儲存的,即先儲存第一行的元素,再儲存第二行的元素。當把每一行看作一個整體,即作為一個大的陣列元素時,原來的二維陣列也就變成一個一維陣列了。而每個大陣列元素對應...