專項練習 陣列和字串(二)

2021-07-31 20:39:19 字數 2806 閱讀 9655

私有成員不能被派生類訪問

#include

#include

void fun(char* s)

main()

主函式中呼叫fun(p)函式後,進入函式fun(char* s);

實參 char *p和形參char *s間,只是簡單的位址值的形式傳參。

如果在fun(char* s)函式中輸出s,會出現string;但形參的指向的內容沒有改變實參指向的內容,輸出結果為program。

做如下改動

#include

#include

void fun(char **s)

main()

就可以改變實參指向的內容。

int a1=x+y-z; int b1=x

*y/z;

int a2=x-z+y; int b2=x/z*y;

int c1=x

<>z; int d1=x&y|z;

int c2=x>>z<正確:選項x+y有溢位的可能,但是通過-z又可以得到正確的結果,

如用char來模擬int(-128-127),127 + 1 = -128,-128 - 1 = 127,

b. b1一定等於b2

錯誤:整除會捨棄資料

c. c1一定等於c2

錯誤:移位會丟棄超出位

d. d1一定等於d2

錯誤:d1是(x&y)|z,d2是x|(z&y);

記住空類的sizeof()是1

#include 

char fun(char *c)

main()

printf("\n");

}

函式fun(char *c)功能:當指標c指向的內容是大寫字母,則指標所指向內容為原內容+32,由於小寫字母與對應大寫字母所對應的數值之差是32,所以此函式功能是將指標所指的大寫字母轉換成對應的小寫字母。

所以輸入open the door時,輸出open the door

#include 

#include

void fun ( int

*pl,int

*p2,int

*s )

main( )

,b [2] = {10,20},*s = a;

fun (a,b,s);

printf ( "%d \n", *s);

}

呼叫malloc時返回的值是乙個int*,實際上 s = malloc返回的新指標p4,

s = *pl + (p2++ ); 即 p4= *pl + (p2++ );不影響實參,輸出為1;

若沒有 s = (int*) malloc(sizeof(int));這一句,輸出為11。

#include

using

namespace

std;

class testclass

testclass(char c)

~testclass()

};int main()

testclass p1, *p2;對p1進行呼叫預設建構函式testclass() ;

p2 = new testclass(『x』);對p2進行呼叫建構函式testclass(char c) ;

delete p2;呼叫析構函式~testclass() ;

最後還要對p1呼叫析構函式~testclass() ;

輸出為:axbb

int total = 0;

for (int i = 0, j = 5; total < 10 || j > 3; ++i, --j)

迴圈過程:

i=0,j=5;total<10為真,tatal=0+0+5=5;

i=1,j=4;total<10為真,total=5+1+4=10;

i=2,j=3;total<10為假,j>3為假,跳出迴圈。變數total的結果為10。

5的二進位制為101,7的二進位制為111,101與111按位或後為111即十進位制的7,所以結果為7。

例如:若a所指陣列中的資料最初排列為:9,1,4,2,3,6,5,8,7;按規則移動後,資料排列為:1,9,2,8,3,7,4,6,5。形參n中存放a所指陣列中資料的個數。

規定fun函式中的max存放的當前所找的最大值,px存放當前所找最大值得下標。 請在程式的下畫線處填入正確的內容並將下畫線刪除,使程式得出正確的結果。

試題程式。

#include

#define n 9

void fun(int a[ ], int n)

if (min > __ )

}if (pn != i)

if (px != i + 1)

}}int main( )

; printf("\nthe original data:\n");

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

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

printf("\n");

fun(b, n);

printf("\nthe data after mocinng \n");

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

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

printf("\n");

}

答案是 a[i] ,a[j], a[j]。

專項練習 陣列和字串(三)

錯誤 表頭可以為表或單元素值 表尾是指除去表頭後剩下的元素組成的表 即使只剩乙個元素也視為表 可以為空表 void foo int b 3 void main foo a printf d a 2 1 int b 3 即是int b 3 b是指向有三個int元素陣列的指標 陣列做形參退化為指標。a ...

專項練習之字串

時間限制 1 s 空間限制 128000 kb 題目等級 青銅 bronze 給出乙個英語句子,希望你把句子裡的單詞順序都翻轉過來 輸入描述 input description 輸入包括乙個英語句子。輸出描述 output description 按單詞的順序把單詞倒序輸出 樣例輸入 sample ...

陣列和字串練習

二 學習心得 三 github 庫鏈結 注意 中心下標可能出現在陣列的兩端。include using namespace std intmain i,j,lsum 0,rsum 0,re 1 int n sizeof nums sizeof nums 0 for i 1 i n i for j 0...