C語言練習好題目

2021-10-10 10:28:42 字數 3307 閱讀 6533

1.求sn=a+aa+aaa+aaaa+aaaaa的前5項之和,其中a是乙個數字

例如:2+22+222+2222+22222

int

main()

printf

("sum = %d"

, sum)

;return0;

}

2.求出0~100000之間的所有「水仙花數」並輸出。也叫自冪數

"水仙花數」是指乙個n位數,其各位數字的n次方之和確好等於該數本身,如 : 153=1 ^ 3+5 ^ 3+3 ^ 3,則153是乙個「水仙花數」

#include

#include

intmain()

//2.計算每一位的n次方之和 sum

tmp = i;

while

(tmp)

//比較i和sum的值是否相等

if(i == sum)

}return0;

}

3.列印菱形

//列印'*'

for(j =

0; j <

2*i+

1; j++

)// '*' 是

printf

("\n");

}//列印下半部分

for(i =

0; i < line -

1; i++

)//列印'*'

for(j =

0; j <2*

(line-

1-i)-1

; j++

)// 下半部分的第一行是11個,第二行是9個

printf

("\n");

}return0;

}4.旋轉字串

實現乙個函式,可以左旋字串中的k個字元。

例如:abcd左旋乙個字元得到bcda

abcd左旋兩個字元得到cdab

首先你的字串應該滿足可以修改這個條件,如果為常量字串,那就不能修改,是不對的

#include

#include

void

left_move

(char

* arr,

int k)3.*

(arr + len -1)

= tmp;}}

intmain()

第二種實現方法三步翻轉法

//abcdef

//ba fedc 把這兩個字串分別逆序

//在整體逆序

void

reverse

(char

* left,

char

* right)

}void

left_move

(char

* arr,

int k)

intmain()

5.字串旋轉結果

作業內容

寫乙個函式,判斷乙個字串是否為另外乙個字串旋轉之後的字串。

例如:給定s1 = aabcd和s2 = bcdaa,返回1

給定s1 = abcd和s2 = acbd,返回0.

aabcd左旋乙個字元得到abcda

aabcd左旋兩個字元得到bcdaa

aabcd右旋乙個字元得到daabc

void

left_move

(char

* s1,

int k)

//3.

*(s1 + len -1)

= tmp;}}

intis_left_move

(char

* s1,

char

* s2)

return0;

}int

main()

else

return0;

}

第二種方法

//arr1:"abcdefabcdef\0"

//arr2:"cdefab\0"

//看一下arr2是否是arr1的子串

//但是你會發現自己給自己追加的時候,會把後面的'\0'給覆蓋掉,然後他就找不到挺值得標記了

#include

#include

intis_left_move

(char

* str1,

char

* str2)

else

}int

main()

else

return0;

}

楊氏矩陣

有乙個數字矩陣,矩陣的每行從左到右是遞增的,矩陣從上到下是遞增的,請編寫程式在這樣的矩陣中查詢某個數字是否存在。

要求:時間複雜度小於o(n);

//1 2 3

//4 5 6

//7 8 9

//這裡面右上角的這個數具有特殊的意義,因為對於一行來說他是最大的值,但是對於一列來說他又是最小的值,所以那這個數去和我們需要查詢的那個數

//去比較,就可以很快的去掉一行或者一列

intfindnum

(int arr[3]

[3],

int k,

int row,

int col)

else

if(arr[x]

[y]else

}return0;

}int

main()

,,};

int k =7;

int ret =

findnum

(arr, k,3,

3);if

(ret ==1)

else

}

struct s

;#define offsetof(struct_name,member_name) (int)&(((struct_name*)0)->member_name)

//(int)&((struct s*)0)->c1

//(struct s*)0相當於把0變成了乙個結構體指標然後找到結構體內的成員變數,取其位址,然後和首位址相減就會得到乙個指標型別,強制型別轉換

intmain()

c語言作文的題目 c語言練習題目

解題報告寫 1.2.3.4.5.6 不寫挑戰題 1.小李發獎金 money.cpp pas c 題目描述 當然打撞球只是小李的休閒娛樂活動,對待他的本職工作,他還是非常兢兢業業的。但是小李的老闆是個周扒皮,每次都想剋扣小李的工資和獎金,甚至制定出非常奇葩的規則。又到了每年發年終獎的時候了,今年老闆的...

c語言小題目練習

題目1 乙個數如果恰好等於它的因子之和,這個數就稱為 完數 例如6 1 2 3.程式設計找出1000以內的所有完數。include int main if sum i return 0 題目2 有一分數序列 2 1,3 2,5 3,8 5,13 8,21 13.求出這個數列的前20項之和。inclu...

程式設計小白C語言題目練習4

若有以下定義和語句 char s1 12345 s2 1234 printf d n strlen strcpy s1,s2 則輸出結果是 strcpy是一種 c語言的標準庫函式,strcpy把含有 0 結束符的字串複製到另乙個 位址空間 返回值的型別為char strlen所作的是乙個計數器的工作...