《C語言程式設計(第3版)》教材配套習題 第七章

2021-10-06 16:30:16 字數 2946 閱讀 6024

查詢問題

字串輸入與轉換

刪除字串中的空格

選擇法排序

輸入:第一行給出乙個不超過10的正整數n。第二行給出n個整數,其間以空格分隔。

輸出:在一行中輸出從大到小有序的數列,相鄰數字間有乙個空格,行末不得有多餘空格。

核心:從頭開始,找出其後所有數中的最大值,並將該值換到最前面

#include 

#define n

10void

swap

(int *a,int *b)

;int main()

//從第乙個數開始,與其後的數依次比較;比較至倒數第二個數即可

for( i=

0; i1; i++

)swap

(&a[index]

,&a[i]);

}for

( i=

0; i)return0;

}void

swap

(int *a,int *b)

//傳入指標

冒泡法排序(公升序)

核心:每一趟都通過兩兩交換,將最大值換到最右邊

for

( i=

1; i}

二分查詢法

思路:與中值比較,找到 / 中值左片區 / 中值右片區

left =0;

right = n-1;

//最大陣列下標

while

( left<=right )

printf

("%d\n"

,mid)

;

十六進製制字串轉換成十進位製非負整數

輸入:在一行中給出乙個不超過80個字元長度的、以#結束的非空字串。

輸出:第1行中輸出已濾去所有非十六進製制字元(不區分大小寫)的字串。 在第2行中輸出轉換後的十進位制數。題目保證輸出結果在長整型範圍內。

重點

輸入以某字元結尾的字串:(a[i]=getchar()) != 『#』

將字串轉換成整數:尤其注意數字需要減去』0』,不能直接用

char a[n]

, b[n]

;//已定義n為80

int i=

0, j=0;

int factor =1;

long long result =0;

while

((a[i]

=getchar()

)!='#')

i++;}

for( j=j-

1; j>=

0; j--

)printf

("%s\n"

, b)

;printf

("%lld"

, result)

;

大小字母轉換

重點

小寫轉大寫—— -『a』+『a』

大寫轉小寫—— -『a』+『a』

[例1](使用1個陣列)

i =0;

while

((str[i]

=getchar()

)!='\0'

)else

if(str[i]

>=

'a'&& str[i]

<=

'z')

i++;}

[例2](使用2個陣列)

i =0;

while

((str1[i]

=getchar()

)!='\0'

)else

if(str1[i]

>=

'a'&& str1[i]

<=

'z')

else

i++;}

str2[i]

='\0'

;

電碼加密之指標的應用

要求:小寫字母z變換成為a,其他字母變換成為該字母ascii碼順序後一位的字母,比如o變換成為p。

裁判測試程式樣例

#include 

# include

# define maxline

80void

encrypt

( char *s)

;int main

(void

)/* 請在這裡填寫答案 */

解答

void

encrypt

( char *s)

}

使用1個陣列

不要忘了給新字串乙個結尾』\0』

i = j =0;

while

((str[i]

=getchar()

)!='\0'

) i++;}

str[j]

='\0'

;//把str陣列下標為j及其之後的內容截掉

使用2個陣列

不要忘了給新字串乙個結尾』\0』

i = j =0;

while

((str1[i]

=getchar()

)!='\0'

) i++;}

str2[j]

='\0'

;//給新陣列乙個結尾

C語言程式設計(第3版)習題3

3.1 分析並寫出下列程式的執行結果。3.2 參考例3.1程式,從鍵盤任意輸入乙個3位整數,程式設計計算機並輸出它的逆序數 忽略整數前的正負號 例如,輸入 123,則忽略負號,由123分離出其中百位1 十位2 個位3,然後計算3100 210 1 321,並輸出321。3.3 設銀行定期存款的年利率...

C語言程式設計(第3版)習題4

4.1 分析並寫出下面程式的執行結果。3 假設程式執行時輸入123456.include main 4.2 分析下面程式,請指出錯誤的原因和程式錯在 並改正錯誤。include main 改 include main 4.3 填空題。1 要使下面的程式螢幕顯示1,2,34,則從鍵盤輸入的資料格式應為...

浙大版《C語言程式設計(第3版)》習題2 5

本題要求編寫程式,計算平方根序列 1 2 3 的前n項之和。可包含標頭檔案math.h,並呼叫sqrt函式求平方根。輸入格式 輸入在一行中給出乙個正整數n。輸出格式 在一行中按照 sum s 的格式輸出部分和的值s,精確到小數點後兩位。題目保證計算結果不超過雙精度範圍。輸入樣例 10輸出樣例 sum...