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,並將其打印輸出。