古詩詞大全網 - 成語故事 - 誰幫我看看這個幾個?計算機算法基礎...

誰幫我看看這個幾個?計算機算法基礎...

壹、簡答題。

1. 某程序根據輸入的總分和課程數目計算平均分。寫出實現下面輸入輸出形式的輸入和輸出語句。

Input total score : 300

Input numbers: 4

The average score is : 75.0

其中,“Input total score :”、“Input numbers:”、“The average score is :”、”75.0”為屏幕輸出信息;300、4為從鍵盤輸入的數據。

1.float score;

int n;

printf("Input total score:");

scanf("%f",&score);

printf("Input numbers:");

scanf("%d",&n);

printf("The average score is :%.1f",score/n);

2. 敘述變量名、變量值、變量地址之間有什麽關系?

值是存在內存中的

變量名是通俗說相當於壹個地址的別名

地址即妳存入內存單元的那個值的起始地址

3. 結構化算法的原則是什麽?

采取以下方法來保證得到結構化算法

由上而下;

逐步細化;

問題模塊化。

4. 寫出壹組數 84、97、50、37、8、51利用冒泡法排序進行排序的過程(不寫算法)。

84 50 37 8 51 97

50 37 8 51 84 97

37 8 50 51 84 97

8 37 50 51 84 97

5. 字符型數據的存儲原理是什麽?

在內存中char以補碼形式存儲,最高位位符號位,unsigned無符號位

6. 將下面的語義用C表達式的形式描述。

(1)3個整數a,b,c可以構成壹個直角三角形。

(2)數學成績(math)和語文成績(Chinese)都高於90分。

(1)(a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a)

(2)math>90&&Chinese>90

7. 設day=31,m_count=7,設計輸出語句。輸出形式為:there are 217 days。其中,“217”由day和m_count計算得到。

printf("there are %d days。",day*m_count);

8. 設主函數main( )調用函數f1( ),函數f1( )調用函數f2( ),f2( )調用函數f3( ),畫圖表示出這些函數調用的過程及關系。

f3()-f2()-f1()-main(),

9. 畫圖表示壹個二維字符數組(每行最多存儲9個字符)存儲5個字符串:“China”、“German”、“Russian”、“Japan”、“American”的示意圖。

a[5][9]

10. 函數smallest帶有3個整型參數x、y、z,返回壹個整型結果。寫出該函數的首部。

int smallest(int x,int y,int z)

11. 設x=12345,則printf(“%10d\n”,x); 的輸出結果是什麽?

(有5個空格) 12345(加換行)

12. 從鍵盤讀取兩個整數並把讀入的整數分別存儲在整數變量a、b中,該輸入語句是什麽?

scanf("%d",&a);scanf("%d",&b);

13. 字符串的結束表示’\0’在字符串使用過程中的作用是什麽?

是字符串的壹個結束標誌,例如輸出的話根據判斷是否遇到\0

來控制輸出

判斷是否到字符串結尾。

14. 某程序中有如下定義:

int func(int a , int b , int c)

{

return( 2*a + 4*b/c );

}

在主函數中分別執行語句:k=func(1,2,1)*10; 後,k的取值是多少?

k=100

15. 窮舉法解題的好處是什麽?適合於解什麽類型的題目?

簡單,適合列舉個數有限且較少情況。

16. 結構化算法中有哪幾種基本控制結構,它們的***同點是什麽,控制結構之間的連接方式如何?

算法是解決問題所需操作步驟的集合,是程序設計的根本,就如同人們為了完成壹件事情必須有壹個正確的步驟壹樣.

算法的表示有三種,自然語言,流程圖和偽碼.

自然語言:來表示具有表示選擇結構或循環結構算法時不方便且不清楚.

流程圖:優點是直觀容易看懂,不足之處就是比較費事.

偽碼:非正式語言,采用文字和圖形符號表示,介於自然語言和計算機語言,具備了自然語言的通俗易懂,同時兼備了計算機語言的簡明緊湊,因此,編程人員常借助此方法完成算法設計.

順序,循環,選擇。

***同點

只有壹個入口

只有壹個出口

結構中的每壹部分都有機會被執行到

結構內不存在死循環

相互之間通過組合 連接在壹起 如 嵌套

二、畫出解決下列問題的算法的N-S圖。

1. 輸入三角形的三條邊,判斷其能否構成三角形,若能構成,判斷它是不是直角

.輸入a、b、c三個數——判斷a+b>c&&b+c>a&&a+c>b——是則判斷是否直角,是則輸出是直角三角形,否則輸出不是直角三角形——否則不構成三角形。

2. 輸出n個數中最小的數。

.輸入n個數,並設置min為第壹個數——從第壹個數到第n個數,如果少於min,則令min等於那個數——輸出min

3. 輸入n,求n!。

s=1;

for(i=1;i<=n;i++)

s*=i;

輸出s

4. 解數學燈謎。已知有以下算式成立,其中 A、B、C 均為壹位正整數,求它們各為多少。 A B C - C B = C A

5. 寫出折半查找的算法。

6. 輸入壹個3行4列的整數類型數組a,並按3行4列的形式將其輸出。

輸入a[3][4]——for(i=0;i<3;i++)

for(j=0;j<4;j++)

printf("%d",a[i][j]);

7. 編寫壹個算法,實現字符串復制的功能。設目標字符串的名字為str_des,源字符串的名字為str_src。

將源字符串str_scr[0]~strscr[長度-1]分別賦值到str_des[0]~strdes[長度-1]

8. 輸入三角形的三條邊,判斷其能否構成三角形,若能構成三角形判斷它是哪種三角形(等邊、等腰或壹般三角形)

9. 已知壹數學函數為:

0 x<0

x 0≤x<10

f(x)= x+10 10≤x<20

-x 20≤x<30

-x-10 x≥30

其中,自變量x為整數。設計雙分支算法解決該問題。

if(x<0) f(x)=0;else{

if(0<=x<10) f(x)=x

else{

...}}嵌套選擇語句

10. 編寫壹個人口統計算法,1982 年我國人口為 12 億,如果按年增長率分別為:2%、1.5%、1%、0.5%計算,各需多少年後,我國人口會翻壹番(24億)

for(p=0.02;p>0;p-=0.005){

s=12;

n=0;

while(s<24){

s*=(1+p);

n++;

}

printf("%d",n);

}

11. 編寫算法,輸出壹個4×4的矩陣a中最小數所在的位置。

12. 按下列規則將電文原文譯成密碼,將字母‘A’變成‘F’,‘B’變成‘G’,……,‘V’變成‘A’,‘W’變成‘B’,……,‘Z’變成‘E’,即將字母後移5個字母,其余字符不變,輸入以‘!’結束。

輸入字符串str,i=0;while(ch!='!'){str[i++]=ch;scanf("%c",&ch);}

譯碼:if(str[i]>='A'&&str[i]<='Z') str[i]='A'+(str[i]-'A'+5)%26

13. 寫出冒泡法排序的算法。

14. 輸出100以內的所有素數。

for(i=2;i<100;i++){

flag=0;

for(j=2;j<=sqrt(i);j++){

if(i%j==0){

flag=1;break;}

}

if(flag==0)printf("%d ",i);

}

15. 輸入三角形的三條邊,判斷其能否構成三角形,若能構成,判斷它是不是直角三角形。

16. 求1+2+…+100。

s=0;

for(i=1;i<100;i++)

s+=i;

printf("%d",s);

17. 打印Fibonacci數列的前25項。

利用數組儲存a[0]~a[24],a[0]=1;a[1]=1;

for(i=2;i<25;i++)

a[i]=a[i-1]+a[i-2];

for(i=0;i<25;i++)

printf("%d",a[i]);

18. 寫出判斷壹個數是否是素數的算法。

19. 輸出n個數中最大的數。

20. 統計壹個字符串中有多少個大寫字母。

n=0;

for(i=0;str[i]!=NULL;i++)

if(str[i]>='A'&&str[i]<='Z')

n++;

輸出n;

21. 輸入壹個具有10個元素的壹維數組a,並將其打印輸出。