第一篇:應(yīng)數(shù)計(jì)算機(jī)程序設(shè)計(jì)(C語言)實(shí)驗(yàn)
問題 A: 問候世界
時(shí)間限制: 1 Sec 內(nèi)存限制: 2 MB 題目描述
輸出:Hello world
輸入
無
輸出
Hello world
樣例輸入 樣例輸出
Hello world
提示 Append Code #include
int main(){
printf(“Hello worldn”);
return 0;}
問題 B: Hello world!時(shí)間限制: 1 Sec 內(nèi)存限制: 2 MB 題目描述
Xiao_ming有兩個(gè)哥哥,大哥叫Da_min,二哥叫Er_min。三兄弟放學(xué)回家,父母分別跟他們打招呼。
輸入
無
輸出
請輸出: Hello Da_min, Hello Er_min, Hello Xiao_ming!
樣例輸入 樣例輸出
Hello Da_min, Hello Er_min, Hello Xiao_ming!
提示
請注意換行符
Append Code #include
int main(){
printf(“Hello Da_min,nHello Er_min,nHello Xiao_ming!n”);
return 0;}
問題 C: I/O練習(xí)
時(shí)間限制: 1 Sec 內(nèi)存限制: 2 MB 題目描述
I/O是Input/Output的縮寫,是“輸入與輸出”的意思。從鍵盤輸入一個(gè)整數(shù),然后輸出這個(gè)整數(shù)。
輸入
一個(gè)整數(shù),在int類型的表示范圍內(nèi)。
輸出
輸入的整數(shù)。
樣例輸入
樣例輸出 提示 Append Code #include
int main(){ int n;scanf(“%d”,&n);printf(“%dn”,n);}
問題 A: 貨幣兌換
時(shí)間限制: 1 Sec 內(nèi)存限制: 2 MB 題目描述
給出人民幣對美元、歐元、日元的當(dāng)日匯率,求給定金額的人民幣能兌換成外幣的金額,求給定金額的外幣能兌換成人民幣的金額。要計(jì)算的外幣有三種:美元、歐元、日元。
輸入
輸入有三行。
第一行依次為美元、歐元、日元外幣匯率,用空格分開。匯率用100外幣為單位,精確到小數(shù)點(diǎn)后4位,如668.5200表示“100美元=668.5200人民幣”。匯率浮動(dòng)范圍為(0,10000)。第二行為外幣金額x,第三行為人民幣金額y。x,y均為整數(shù),且0 輸出 輸出為兩行。 第一行是金額為x的美元、歐元、日元兌換成人民幣的金額,用空格分開。第二行是金額為y的人民幣兌換成美元、歐元、日元的金額,用空格分開。所有金額精確到小數(shù)點(diǎn)后兩位。樣例輸入 668.5200 908.0685 7.9852 1500 1500 樣例輸出 10027.80 13621.03 119.78 224.38 165.19 18784.75 提示 了解浮點(diǎn)數(shù)據(jù)類型的精確度和輸出控制。 Append Code #include int main(){ double a,b,c; double x,y; scanf(“%lf%lf%lf/n”,&a,&b,&c); scanf(“%lf”,&x); scanf(“%lf”,&y); printf(“%.2lf %.2lf %.2lfn”,x*0.01*a, x*0.01*b, x*0.01*c); printf(“%.2lf %.2lf %.2lfn”,y/a*100, y/b*100, y/c*100); return 0;} 問題 B: 求字符的值 時(shí)間限制: 1 Sec 內(nèi)存限制: 2 MB 題目描述 從鍵盤輸入3個(gè)字符(不含雙字節(jié)字符),分別輸出每個(gè)字符的十進(jìn)制值(ASCII碼)、八進(jìn)制值和十六進(jìn)制值。 輸入 輸入為3個(gè)字符。 輸出 輸出為3行。 每一行為每個(gè)字符(對應(yīng)輸入順序)的十進(jìn)制、八進(jìn)制和十六進(jìn)制值,用空格分隔開。每個(gè)輸出的值占3個(gè)字符,不足3個(gè)字符前面補(bǔ)0。 樣例輸入 0 A 樣例輸出 048 060 030 032 040 020 065 101 041 提示 了解字符值的存儲(chǔ)和整型的關(guān)系。 Append Code #include int main(){ char a,b,c; scanf(“%c%c%c”,&a,&b,&c); printf(“%.3d %.3o %.3xn”,a,a,a); printf(“%.3d %.3o %.3xn”,b,b,b); printf(“%.3d %.3o %.3xn”,c,c,c); return 0;} 問題 C: 奇數(shù)還是偶數(shù)? 時(shí)間限制: 1 Sec 內(nèi)存限制: 2 MB 題目描述 輸入一個(gè)整數(shù),判讀它是奇數(shù)還是偶數(shù)。 輸入 輸入只有一行,為一個(gè)100以內(nèi)的正整數(shù)。 輸出 輸出為一行。 若輸入為偶數(shù)則輸出“even”,奇數(shù)輸出“odd”。 樣例輸入 樣例輸出 even 提示 用整數(shù)運(yùn)算可以解決,練習(xí)“?:”表達(dá)式。 Append Code #include int main(){ int a; scanf(“%d”,&a); if(a>=0&&a<=100); if(a%2==0)printf(“even”); else printf(“odd”); return 0;} 問題 A: 判斷是否是元音字母 時(shí)間限制: 1 Sec 內(nèi)存限制: 2 MB 題目描述 輸入一個(gè)英文字母,判斷是否是元音字母。元音字母是:a,e,i,o u,A,E,I,O,U 輸入 輸入一個(gè)英文字母 輸出 是元音字母,輸出“yes”,否則輸出“no”,行尾沒有回車。 樣例輸入 A 樣例輸出 yes 提示 Append Code #include void main(){ char c; scanf(“%c”,&c); if((c>='a'&&c<='z')||(c>='A'&&c<='Z')){ if(c=='A'||c=='E'||c=='I'||c=='O'||c=='U'||c=='a'||c=='e'||c=='i'||c=='o'||c=='u') printf(“yes”); else printf(“no”); return 0; } } 問題 B: 你過線了嗎? 時(shí)間限制: 1 Sec 內(nèi)存限制: 128 MB 題目描述 經(jīng)過四年的學(xué)習(xí),你決定報(bào)考我國著名的“285”高校之一的北青大學(xué),經(jīng)過認(rèn)真的復(fù)習(xí),殘酷的考試,終于知曉了自己的考試成績,也知道了北青大學(xué)的錄取分?jǐn)?shù)線,請你編程判斷,自己過線了嗎? 輸入 輸入有2行,第一行有4個(gè)正整數(shù),分別表示三門課程的分?jǐn)?shù)線以及總分分?jǐn)?shù)線。第二行有3個(gè)非負(fù)整數(shù),分別表示你考的三門課程的成績。 輸出 如果你的三門課程成績都不低于相應(yīng)課程的分?jǐn)?shù)線,且你的考試總分也不低于北青大學(xué)的總分分?jǐn)?shù)線要求,則輸出“congratulations”,否則輸出“sorry”。 樣例輸入 70 240 80 80 82 樣例輸出 congratulations 提示 如果你不會(huì)使用分支語句,同樣可以使用條件運(yùn)算符實(shí)現(xiàn)該程序。 Append Code #include int main(){ int a,b,x,y,c,d,e; scanf(“%d %d %d %d”,&a,&b,&x,&y); scanf(“%d %d %d”,&c,&d,&e); if(c printf(“sorry”); else printf(“congratulations”); return 0;} 問題 C: k個(gè)數(shù)的平均值 時(shí)間限制: 1 Sec 內(nèi)存限制: 128 MB 題目描述 求k個(gè)數(shù)的平均值。 輸入 輸入分為兩部分:第一個(gè)數(shù)是k,然后輸入k個(gè)較小的整數(shù)。 輸出 輸出為這k個(gè)整數(shù)的平均值,保留3位小數(shù)。 樣例輸入 1 2 3 樣例輸出 2.000 提示 Append Code #include 問題 D: 多個(gè)數(shù)的平均值 時(shí)間限制: 1 Sec 內(nèi)存限制: 128 MB 題目描述 求k個(gè)數(shù)的平均值。 輸入 輸入k個(gè)較小的整數(shù),以EOF結(jié)尾。 輸出 輸出為這k個(gè)整數(shù)的平均值,保留3位小數(shù)。 樣例輸入 2 3 樣例輸出 2.000 提示 Append Code #include int c,k,i=0; double a,sum=0; while(scanf(“%lf”,&a)!=EOF) { i++; sum+=a; } printf(“%.3lf”,sum/i);} 問題 A: 分?jǐn)?shù)轉(zhuǎn)小數(shù) 時(shí)間限制: 1 Sec 內(nèi)存限制: 2 MB 提交: 4367 解決: 2562 [提交][狀態(tài)][討論版] 題目描述 求一個(gè)分?jǐn)?shù)的小數(shù)值,要求保留小數(shù)點(diǎn)后2位,并且進(jìn)行四舍五入。輸入 輸入為一個(gè)分?jǐn)?shù)m,格式為:“分子/分母”,也可能會(huì)有負(fù)號:“-分子/分母”。 輸出 輸出m的小數(shù)值,輸出保留到小數(shù)后2位,根據(jù)小數(shù)點(diǎn)后的第3位向前四舍五入。 樣例輸入 -5/3 樣例輸出 -1.67 提示 printf函數(shù)是可以進(jìn)行四舍五入的。 Append Code [提交][狀態(tài)][討論版] ???< 中文 ????? English ??? All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include int main(){ double a,b,m; scanf(“%lf/%lf”,&a,&b); m=a/b; printf(“%.2f”,m);} 問題 B: 產(chǎn)生等差序列 之一 時(shí)間限制: 1 Sec 內(nèi)存限制: 2 MB 提交: 6534 解決: 2688 [提交][狀態(tài)][討論版] 題目描述 根據(jù)給出的初始數(shù)、公差和序列長度求等差序列。 輸入 輸入為一行,格式見sample。其中,start為初始數(shù),step為公差,times為序列長度。滿足,times>0,step不為0。 輸出 把這個(gè)等差序列輸出在一行里,序列兩數(shù)之間用一個(gè)空格分隔。 樣例輸入 start = 1, step = 2, times = 100 樣例輸出 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 155 157 159 161 163 165 167 169 171 173 175 177 179 181 183 185 187 189 191 193 195 197 199 提示 Append Code [提交][狀態(tài)][討論版] ???< 中文 ????? English ??? All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include int main(){ int x,y,z,n; int a[1000]; scanf(“start = %d, step = %d, times = %d”,&x,&y,&z); for(n=0;n { a[n]=x+y*n; } for(n=0;n { if(n==z-1) printf(“%d ”,a[n]); else printf(“%d ”,a[n]); } } 問題 C: 產(chǎn)生等差序列 之二 時(shí)間限制: 1 Sec 內(nèi)存限制: 2 MB 提交: 5970 解決: 2119 [提交][狀態(tài)][討論版] 題目描述 根據(jù)給出的初始數(shù)、公差和終止條件求等差序列。 輸入 輸入為一行,格式見sample。其中,start為初始數(shù),step為公差,end為終止條件。滿足,step不為0,并且start和end的大小關(guān)系與step的方向一致。end不一定是序列的最后一個(gè)數(shù)。start、step和end均為int類型的范圍內(nèi)的整數(shù)。 輸出 把這個(gè)等差序列輸出在一行里,序列兩數(shù)之間用一個(gè)空格分隔。 樣例輸入 start = 1, step = 2, end = 200 樣例輸出 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99 101 103 105 107 109 111 113 115 117 119 121 123 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 155 157 159 161 163 165 167 169 171 173 175 177 179 181 183 185 187 189 191 193 195 197 199 提示 根據(jù)start和step的大小關(guān)系,判斷序列終止的條件可能不同。 Append Code [提交][狀態(tài)][討論版] ???< 中文 ????? English ??? All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include int main(){ int i,j,k,b,n; int a[1000]; scanf(“start = %d, step = %d, end = %d”,&i,&j,&k); a[0]=i; if(j>=0) for(n=0;a[n]<=k;n++) a[n+1]=i+(n+1)*j;else for(n=0;a[n]>=k;n++) a[n+1]=i+(n+1)*j; for(b=0;b if(b==n-1) printf(“%d”,a[b]);else printf(“%d ”,a[b]);} 問題 D: Print Graphics Problerm(II)時(shí)間限制: 1 Sec 內(nèi)存限制: 16 MB 提交: 5259 解決: 2184 [提交][狀態(tài)][討論版] 題目描述 向標(biāo)準(zhǔn)輸出上打印一些用ASCII字符組成的圖形。 輸入 輸入為多個(gè)整數(shù)n,0 輸出 若n為偶數(shù),則輸出一個(gè)正向的n層等腰三角形;n為奇數(shù),則輸出一個(gè)倒向的n層等腰三角形。三角形由“+”組成。任意兩個(gè)圖形之間有一個(gè)空行分隔,格式見sample。 樣例輸入 4 0 樣例輸出 +++++++++ +++++++ +++++ +++ + + +++ +++++ +++++++ 提示 Append Code [提交][狀態(tài)][討論版] ???< 中文 ????? English ??? All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include int main(){ int i,j,k; int a[100]; scanf(“%d”,&a[0]); for(i=1;i<100;i++) { scanf(“%d”,&a[i]); if(a[i]==0) break; } for(i=0;i<=100;i++) { if(a[i]==0) break; if(a[i]%2==0) { for(j=1;j<=a[i];j++) { for(k=1;k<=(a[i]-j);k++) printf(“"); for(k=1;k<=(2*j-1);k++) printf(”+“); printf(”n“); } printf(”n“); } else { for(j=a[i];j>=1;j--) { for(k=a[i]-j;k>=1;k--) printf(”“); for(k=2*j-1;k>=1;k--) printf(”+“); printf(”n“); } printf(”n“); } } return 0;} 問題 E: 它滿足條件嗎? 時(shí)間限制: 1 Sec 內(nèi)存限制: 128 MB 提交: 3696 解決: 2040 [提交][狀態(tài)][討論版] 題目描述 需要判斷給定的一個(gè)整數(shù)是否同時(shí)滿足如下三個(gè)條件: 1.它是一個(gè)完全平方數(shù)。2.它是一個(gè)偶數(shù)。3.它是一個(gè)正數(shù)。 注:若一個(gè)數(shù)能表示成某個(gè)自然數(shù)的平方的形式,則稱這個(gè)數(shù)為完全平方數(shù)。例如: 0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,484,529 輸入 一個(gè)int范圍內(nèi)的整數(shù)。 輸出 如果輸入的數(shù)字滿足條件,則輸出yes,否則輸出no。 樣例輸入 樣例輸出 yes 提示 注意邏輯表達(dá)式判斷三個(gè)條件的順序。 如果你不會(huì)使用分支語句,同樣可以使用條件運(yùn)算符實(shí)現(xiàn)該程序。 庫函數(shù)sqrt()可以用于求一個(gè)數(shù)的平方根。 Append Code [提交][狀態(tài)][討論版] ???< 中文 ????? English ??? All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include int main(){ int x,y; scanf(”%d“,&x); y=sqrt(x); if(x==y*y&&x%2==0&&x>0) printf(”yes“); else printf(”no“); return 0;} 問題 A: 輸出整數(shù)的最低兩位 時(shí)間限制: 1 Sec 內(nèi)存限制: 2 MB 提交: 5800 解決: 2383 [提交][狀態(tài)][討論版] 題目描述 把一個(gè)整數(shù)的最低兩位打印出來,不輸出整數(shù)的符號。 輸入 輸入為一個(gè)整數(shù)n,不會(huì)超出int類型的數(shù)據(jù)范圍。輸出 輸出n的最低兩位數(shù)字。但是,輸入的數(shù)字本身不足兩位時(shí),不應(yīng)當(dāng)補(bǔ)0。如,輸入為“1”,則輸出為“1”。 樣例輸入 -102 樣例輸出 02 提示 printf函數(shù)可以完成補(bǔ)0的操作。 Append Code [提交][狀態(tài)][討論版] ???< 中文 ????? English ??? All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include int main(){ int z; scanf(”%d“,&z); if(z<0) z*=-1; if(z<100) printf(”%dn“,z); else { int ans=z%100; if(ans<10) printf(”0“); printf(”%dn“,ans); } return 0;} 問題 B: 笛卡爾平面 時(shí)間限制: 1 Sec 內(nèi)存限制: 16 MB 提交: 5805 解決: 1693 [提交][狀態(tài)][討論版] 題目描述 在數(shù)學(xué)里,笛卡兒坐標(biāo)系(Cartesian坐標(biāo)系),也稱直角坐標(biāo)系,是一種正交坐標(biāo)系。二維的直角坐標(biāo)系是由兩條相互垂直、0 點(diǎn)重合的數(shù)軸構(gòu)成的。在平面內(nèi),任何一點(diǎn)的坐標(biāo) 是根據(jù)數(shù)軸上對應(yīng)的點(diǎn)的坐標(biāo)設(shè)定的。 二維的直角坐標(biāo)系通常由兩個(gè)互相垂直的坐標(biāo)軸設(shè)定,通常分別稱為 x-軸 和 y-軸;兩個(gè)坐標(biāo)軸的相交點(diǎn),稱為原點(diǎn),通常標(biāo)記為 O,既有“零”的意思,又是英語“Origin”的首字母。每一個(gè)軸都指向一個(gè)特定的方向。這兩個(gè)不同線的坐標(biāo)軸,決定了一個(gè)平面,稱為 xy-平面,又稱為笛卡兒平面。 以笛卡爾平面上一個(gè)點(diǎn)的坐標(biāo)(x,y)坐標(biāo)為輸入,輸出該點(diǎn)是否在坐標(biāo)軸上或者位于哪一個(gè)象限。 輸入 輸入為一行。輸入的坐標(biāo)x、y值都會(huì)帶有1位小數(shù),括號和逗號都是英文半角符號,逗號后面有一個(gè)空格。 輸出 四個(gè)象限輸出為“quadrand I”、“quadrand II”、“quadrand III”、“quadrand IV”,x-軸和y-軸輸出為“x axis”和“y axis”,原點(diǎn)輸出為“origin” 輸出為以下三種: (-1.0,-2.5)is in quadrand III(0.0, 4.8)is on the y axis(0.0, 0.0)is origin 樣例輸入 (-1.0,-2.5) 樣例輸出 (-1.0,-2.5)is in quadrand III 提示 Append Code [提交][狀態(tài)][討論版] ???< 中文 ????? English ??? All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include int main(){ double x,y; scanf(”(%lf, %lf)“,&x,&y); if(x>0&&y>0) printf(”(%.1lf, %.1lf)is in quadrand I“,x,y); else if(x<0&&y>0) printf(”(%.1lf, %.1lf)is in quadrand II“,x,y); else if(x<0&&y<0) printf(”(%.1lf, %.1lf)is in quadrand III“,x,y); else if(x>0&&y<0) printf(”(%.1lf, %.1lf)is in quadrand IV“,x,y); else if(x!=0&&y==0) printf(”(%.1lf, %.1lf)is on the x axis“,x,y); else if(x==0&&y!=0) printf(”(%.1lf, %.1lf)is on the y axis“,x,y); else if(x==0&&y==0) printf(”(%.1lf, %.1lf)is origin“,x,y); return 0;} 問題 C: Print Graphics Problerm(I)時(shí)間限制: 1 Sec 內(nèi)存限制: 16 MB 提交: 2220 解決: 1439 [提交][狀態(tài)][討論版] 題目描述 向標(biāo)準(zhǔn)輸出上打印一些用ASCII字符組成的圖形。 輸入 輸入為一個(gè)整數(shù)n,0 輸出一個(gè)n層等腰三角形,格式見sample。 樣例輸入 樣例輸出 + +++ +++++ +++++++ +++++++++ 提示 推導(dǎo)出第i層要輸出的空格和“+”與i的關(guān)系,用循環(huán)很容易完成。 Append Code [提交][狀態(tài)][討論版] ???< 中文 ????? English ??? All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include int main(){ int a,i,t; scanf(”%d“,&a); for(i=1;i<=a;i++) { for(t=1;t<=a-i;t++) printf(”“); for(t=1;t<=2*i-1;t++) printf(”+“); printf(”n“); } } 問題 D: 輸出連續(xù)的整數(shù)序列 之一 時(shí)間限制: 1 Sec 內(nèi)存限制: 128 MB 提交: 2938 解決: 1579 [提交][狀態(tài)][討論版] 題目描述 輸出指定區(qū)間內(nèi)的所有整數(shù)。 輸入 輸入只有1行,即N,N是一個(gè)int類型的數(shù)據(jù)。 輸出 如果N>0,則輸出[1,N]區(qū)間內(nèi)的所有整數(shù);如果N =0,則輸出0;如果N<0,則輸出[N,-1]內(nèi)的所有整數(shù)。 如果輸出的整數(shù)多于1個(gè),則兩兩之間用一個(gè)空格隔開。 樣例輸入 樣例輸出 2 3 4 5 6 7 8 9 提示 Append Code [提交][狀態(tài)][討論版] ???< 中文 ????? English ??? All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include int main(){ int n,m,i; scanf(”%d“,&n); if(n==0) printf(”%d“,0); else if(n>0) { printf(”%d“,1); for(i=1;i printf(” %d“,i+1);} else { printf(”%d“,n); for(i=n;i<-1;i++) printf(” %d“,i+1); } return 0;} 問題 E: 輸出連續(xù)的整數(shù)序列 之二 時(shí)間限制: 1 Sec 內(nèi)存限制: 128 MB 提交: 3835 解決: 844 [提交][狀態(tài)][討論版] 題目描述 輸出若干個(gè)連續(xù)的整數(shù)序列。 輸入 輸入有多行。第一行是N>0,表示后面有N行輸入。 之后每行輸入包含2個(gè)數(shù)據(jù)P和Q,兩者之間用空格隔開,且均在int類型的表示范圍內(nèi)。 輸出 輸出N個(gè)連續(xù)的整數(shù)序列,序列兩兩之間用一個(gè)空行隔開。 其中第i個(gè)序列是在P和Q之間的整數(shù),包括P和Q,且當(dāng)輸出的數(shù)據(jù)多于1個(gè)時(shí),兩兩之間用一個(gè)空格隔開。 樣例輸入 100 10-10 10 10 樣例輸出 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100-10-9-8-7-6-5-4-3-2-1 0 1 2 3 4 5 6 7 8 9 10 10 提示 當(dāng)P或Q是int類型的能夠表示的最大值或者最小值時(shí),應(yīng)該如何處理? Append Code [提交][狀態(tài)][討論版] ???< 中文 ????? English ??? All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include int main(){ int n,m,i,a,b,e,j=1; scanf(”%d“,&n); i=1; while(i<=n) { i++; scanf(”%d%d“,&a,&b); if(a>b) { e=a; a=b; b=e; } printf(”%d“,a); for(j=1;j<=b-a;j++) { printf(” %d“,a+j); } printf(”nn“); } return 0;} Problem A: 編寫函數(shù):求三個(gè)整數(shù)的最大值(Append Code)Time Limit: 1 Sec Memory Limit: 2 MB Submit: 5834 Solved: 2272 [Submit][Status][Web Board] Description 求三個(gè)整數(shù)的最大值。 ---------------編寫一個(gè)函數(shù)maxValue()求三個(gè)整數(shù)的最大值。其原型為: int maxValue(int a,int b,int c); 功能:函數(shù)的三個(gè)參數(shù)傳入a,b,c的值,返回其中最大值。函數(shù)的調(diào)用格式見“Append Code”。 Input 輸入三個(gè)int類型的整數(shù),兩兩之間用空格隔開。 Output 輸出三個(gè)整數(shù)的最大值。 Sample Input 1 2 3 Sample Output 3 HINT 參看系統(tǒng)首頁上的“Append Code”使用說明,討論版(Web Board)上也有。 Append Code append.c, append.cc,[Submit][Status][Web Board] ???< 中文 ????? English ??? All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include intmaxValue(inta,intb,intc){ if(c>=a&&c>=b){returnc;} if(a>=b&&a>=c)returna;if(b>=a&&b>=c)returnb;} intmain(){ intx, y, z;scanf(”%d %d %d“, &x, &y, &z);printf(”%d“, maxValue(x, y, z));return0;} Problem B: 編寫函數(shù):計(jì)算分段函數(shù)(Append Code)Time Limit: 1 Sec Memory Limit: 2 MB Submit: 6176 Solved: 2797 [Submit][Status][Web Board] Description 設(shè)有函數(shù)y=f(x)定義為: 給定x的值,編程求出y的值并輸出。 ---------------編寫函數(shù)func()和output(),其原型為: double func(double x);功能:計(jì)算f(x)并返回。int output(int n, double x) 功能:按照題意的格式輸出。 函數(shù)的調(diào)用格式見“Append Code”。 Input 輸入的第一個(gè)是測試樣例數(shù)N,后跟N個(gè)輸入為x的值。 Output 輸出為N行,每行順序與輸入對應(yīng)的y=f(x)的計(jì)算結(jié)果,即y的值。輸出時(shí)y值保留6位小數(shù),且不輸出無意義的0。每行的格式為: case i:y=?.其中i表示測試用例編號(從1開始),?表示計(jì)算結(jié)果。 Sample Input 4-3 0.5 2.1 10.08 Sample Output case 1:y=3.case 2:y=0.841471.case 3:y=3.37061.case 4:y=30.16.HINT 參看系統(tǒng)首頁上的“Append Code”使用說明,討論版(Web Board)上也有。 Append Code append.c, append.cc,[Submit][Status][Web Board] ???< 中文 ????? English ??? All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include double func(double x){ double y; if(x<0) y=-x; else if(x<1) y=sin(2*x); else if(x<5) y=sqrt(x*x*x+x); else y=2*x+10; return y; } int output(int n,double x){ printf(”case %d:y=%.6g.n“,n,x);} int main(){ int i, cases; double x; scanf(”%d“, &cases); for(i = 1;i <= cases;i++) { scanf(”%lf“, &x); output(i, func(x)); } return 0;} Problem C: 幾點(diǎn)幾分幾秒 Time Limit: 1 Sec Memory Limit: 2 MB Submit: 3606 Solved: 1547 [Submit][Status][Web Board] Description 一天24小時(shí),每小時(shí)60分鐘,每分鐘60秒。一天共有86400秒。0點(diǎn)0分0秒是每天的第1秒; 0點(diǎn)0分1秒是每天的第2秒; 0點(diǎn)1分0秒是每天的第61秒; 1點(diǎn)0分0秒是每天的第3601秒; 23點(diǎn)59分59秒是每天的第86400秒。你的任務(wù)是編寫一個(gè)程序,把每天的第n秒轉(zhuǎn)換成具體的24小時(shí)制時(shí)間(從00:00:00到23:59:59)。 Input 輸入為若干整數(shù)n,表示每天的第n秒,1<=n<=86400,當(dāng)輸入n為0時(shí)表示輸入結(jié)束。 Output 每行輸出一個(gè)第n秒對應(yīng)的具體時(shí)間,格式為“hh:mm:ss”。時(shí)、分、秒各占2位,不足兩位要補(bǔ)0,如0點(diǎn)0分0秒為“00:00:00”。 Sample Input 1 2 61 3600 9999 86400 0 Sample Output 00:00:00 00:00:01 00:01:00 00:59:59 02:46:38 23:59:59 HINT Append Code [Submit][Status][Web Board] ???< 中文 ????? English ??? All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include int main(){ long int n,h,m,s;for(;;){ scanf(”%ld“,&n);if(n<=0||n>86400)break;n=n-1;h=n/3600%60;m=n/60%60;s=n%60;printf(”%02ld:%02ld:%02ldn“,h,m,s);} return 0;} Problem D: 編寫函數(shù):求整數(shù)的位數(shù) 之一Code) (Append Time Limit: 1 Sec Memory Limit: 2 MB Submit: 2282 Solved: 1557 [Submit][Status][Web Board] Description 輸入一個(gè)十進(jìn)制正整數(shù),它共有幾位數(shù)字組成? ---------------編寫一個(gè)函數(shù)digits(),其原型為: int digits(int n); 功能:返回n的十進(jìn)制位數(shù)。 函數(shù)的調(diào)用格式見“Append Code”。 Input 一個(gè)不超過10位的正整數(shù)num。 Output 輸出num有多少位十進(jìn)制數(shù)字。 Sample Input 1000 Sample Output 4 HINT 參看系統(tǒng)首頁上的“Append Code”使用說明,討論版(Web Board)上也有。 Append Code append.c, append.cc,[Submit][Status][Web Board] ???< 中文 ????? English ??? All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include int digits(int n){ int i=0;while(n!=0){ n=n/10;i++;} return i;} int main(){ int num;scanf(”%d“, &num);printf(”%dn“, digits(num));} Problem A: 求矩陣的每行之和 Time Limit: 1 Sec Memory Limit: 16 MB Submit: 3723 Solved: 2107 [Submit][Status][Web Board] Description 編寫一個(gè)程序,求矩陣各行元素值相加之和。其中,矩陣的元素都是很小的整數(shù),且各行元素之和的數(shù)值不會(huì)超出int類型的表示范圍。Input 輸入為多行。第一行K>0,表示有K個(gè)測試用例。之后K個(gè)測試用例中,首先是兩個(gè)整數(shù)0<=M,N<=100,表示該測試用例的矩陣是一個(gè)M行N列的矩陣。之后是一個(gè)M行N列的整數(shù)組成的矩陣。 Output 輸出有K行,每個(gè)測試用例的結(jié)果占一行。每行的格式為: case i:d1 d2...dj 其中i表示測試用例的編號(從1開始),d1、d2、....、dj表示相應(yīng)測試用例的各行的和,兩兩之間用空格隔開。 Sample Input 4 3 3 1 2 3 1 2 3 1 2 3 2 3 1 1 1 1 1 1 1 1 1 5 1 3 4 5 6 7 Sample Output case 1:6 6 6 case 2:3 3 case 3:1 case 4:3 4 5 6 7 HINT Append Code [Submit][Status][Web Board] ???< 中文 ????? English ??? All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include int i,k,m,n,j,x,y; int s[120]; scanf(”%d“,&k); for(i=1;i<=k;i++) { scanf(”%d %d“,&m,&n); for(x=1;x<=m;x++) { s[x]=0; for(j=1;j<=n;j++) { scanf(”%d“,&y); s[x]=s[x]+y; } } printf(”case %d:“,i); for(x=1;x<=m;x++) { if(x==1) printf(”%d“,s[x]); else printf(” %d“,s[x]); } printf(”n“); } } Problem B: Print Graphics Problerm(IV)(Append Code)Time Limit: 1 Sec Memory Limit: 16 MB Submit: 2494 Solved: 1663 [Submit][Status][Web Board] Description 向標(biāo)準(zhǔn)輸出上打印一些用ASCII字符組成的圖形。 ---------------編寫一個(gè)函數(shù)用于輸出ASCII圖形。用C語言實(shí)現(xiàn):append.c中函數(shù)原型為 int print_graphic(int n); 用C++實(shí)現(xiàn):append.cc中函數(shù)原型為 int printGraphic(int n);功能:輸出n層的圖形。 函數(shù)的調(diào)用格式見“Append Code”。 Input 輸入為一個(gè)奇數(shù)n,1 Output 輸出一個(gè)n層的空心菱形,格式見sample。 Sample Input 11 Sample Output *********** ***** ***** **** **** *** *** ** ** * * ** ** *** *** **** **** ***** ***** *********** HINT Append Code append.c, append.cc,[Submit][Status][Web Board] ???< 中文 ????? English ??? All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include int a,b,c; for(a=0;a printf(”*“); printf(”n“); b=(n-1)/2; for(c=0;c { for(a=0;a printf(”*“); for(a=0;a<(c+1)*2-1;a++) printf(”“); for(a=0;a printf(”*“); printf(”n“); } for(c=0;c { for(a=0;a printf(”*“); for(a=0;a printf(”“); for(a=0;a printf(”*“); printf(”n“); } for(a=1;a<=n;a++) printf(”*“); printf(”n“);} int main(){ int num; scanf(”%d“, &num); print_graphic(num); return 0;} Problem C: 浮點(diǎn)數(shù)的拆分 Time Limit: 1 Sec Memory Limit: 2 MB Submit: 5185 Solved: 1571 [Submit][Status][Web Board] Description 把一個(gè)浮點(diǎn)數(shù)拆分成符號、整數(shù)部分和小數(shù)部分。 所有測試數(shù)據(jù)的浮點(diǎn)數(shù)在double范圍內(nèi),其整數(shù)部分和小數(shù)部分都在int范圍內(nèi)。你可能會(huì)用到以下函數(shù): double floor(double x)返回值是小于或等于x的最大整數(shù); double ceil(double x)返回值是大于或等于x的最小整數(shù); 其實(shí)不用也行,如果你會(huì)用強(qiáng)制(顯式)類型轉(zhuǎn)換。Input 一個(gè)用小數(shù)點(diǎn)形式(即a.b)表示的浮點(diǎn)數(shù)x。 Output 輸出x的符號、整數(shù)部分a和小數(shù)部分0.b,中間用一個(gè)空格分隔。x為負(fù)數(shù),符號輸出“-”,為正數(shù),符號輸出“+”。0的符號是“+”。x的小數(shù)部分不輸出無意義的0。行尾沒有回車。 Sample Input-1.00 Sample Output-1 0 HINT Append Code [Submit][Status][Web Board] ???< 中文 ????? English ??? All Copyright Reserved 2010-2011 SDUSTOJ TEAM GPL2.0 2003-2011 HUSTOJ Project TEAM Anything about the Problems, Please Contact Admin:admin #include Problem D: 尋求勾股數(shù) Time Limit: 1 Sec Memory Limit: 2 MB Submit: 2312 Solved: 692 [Submit][Status][Web Board] Description 滿足x2+y2=z2的正整數(shù)x,y和z稱為一組勾股數(shù)(pythagorean triple),又稱為畢達(dá)哥拉斯三元數(shù)組。現(xiàn)在要求你編程求指定范圍內(nèi)的勾股數(shù)。 Input 輸入若干對數(shù)a和b,每對數(shù)占一行。0 Output 輸出為多行,與上述輸入一一對應(yīng)。 每行輸出首先輸出用例編號“case i”,其中i為行號,從1開始計(jì)數(shù)。 如果指定范圍內(nèi)有勾股數(shù),則按照x從小到大的順序輸出每組勾股數(shù),每組勾股數(shù)要求x 如果指定范圍內(nèi)沒有勾股數(shù),則輸出”No pythagorean triple“。 Sample Input C語言程序設(shè)計(jì)實(shí)驗(yàn) (四)[實(shí)驗(yàn)1] scanf()、printf()函數(shù)的使用。 1.實(shí)驗(yàn)題目 輸入1個(gè)學(xué)生學(xué)號和4門課程成績,輸出這個(gè)學(xué)生的學(xué)號、4門課程成績和平均成績。 2.實(shí)驗(yàn)要求 (1)按表格的形式輸出,以行內(nèi)輸出一個(gè)學(xué)生的信息。 (2)學(xué)號用長整型,各科成績用單精度型。 3.實(shí)驗(yàn)?zāi)繕?biāo) (1)掌握實(shí)現(xiàn)人機(jī)對話形式的方法,scanf()輸入。 (2)體會(huì)根據(jù)需要控制輸出格式的方法,printf()輸出。 4.實(shí)驗(yàn)指導(dǎo) 利用格式的數(shù)據(jù)寬度控制數(shù)據(jù)的對位輸出。輸出如下格式: The number and score of a student is: |---| |number | score1 | score2 | score3 | sco re4 | average | |---| |10011| 67.5|88.0 |93.5 |78.0|81.75 | |---| [實(shí)驗(yàn)2] getchar()、putchar()函數(shù)的使用 1.實(shí)驗(yàn)題目 用getchar()函數(shù)讀入a~v之間的一個(gè)字母,用putchar()函數(shù)輸出一個(gè)5行5列的矩陣,該矩陣第一行為讀入的字母,下一行為緊跟該字母后的字母,依此類推。如輸入a,則輸出的矩陣為: aaaaa bbbbb ccccc ddddd eeeee 2.實(shí)驗(yàn)要求 (1)運(yùn)用getchar()進(jìn)行字符輸入。 (2)運(yùn)用putchar()進(jìn)行字符輸出。 3.實(shí)驗(yàn)?zāi)繕?biāo) (1)體會(huì)根據(jù)需要控制輸出格式的方法。 [實(shí)驗(yàn)3] 3.6 下面程序運(yùn)行時(shí)在鍵盤上如何輸入?如果a=3,b=4,x=8.5,y=71.82,c1=’A’,c2=’a’,請寫出對應(yīng)每個(gè)scanf函數(shù)的輸入情況。 main() { int a,b;float x,y;char c1,c2; scanf(“a=%d□b=%d”,&a,&b); scanf(“□%f %e”,&x,&y); scanf(“□%c %c”,&c1,&c2); } 3.7編一程序,從鍵盤輸入一個(gè)圓半徑值,求圓周長、圓面積、圓球表面積、圓球體積。輸出結(jié)果時(shí),要求有文字說明,保留2位小數(shù)。 提示:設(shè)圓半徑為r,則圓周長=2πr,圓面積=πr2,圓球表面積=4πr2,圓球體積= 4πr3/3。 C語言實(shí)驗(yàn)指導(dǎo) 實(shí)驗(yàn)一 順序結(jié)構(gòu)程序設(shè)計(jì)(2學(xué)時(shí)) 一、實(shí)驗(yàn)?zāi)康氖煜ぴ赩C運(yùn)行環(huán)境下,編輯調(diào)試C語言程序的一般步驟。掌握順序結(jié)構(gòu)程序設(shè)計(jì)的基本思想和基本方法。 二、實(shí)驗(yàn)要求 1. 仔細(xì)閱讀下列實(shí)驗(yàn)內(nèi)容,并編寫出相應(yīng)的C語言源程序。2. 在VC運(yùn)行環(huán)境下,編輯錄入源程序。 3. 調(diào)試運(yùn)行源程序,注意觀察調(diào)試運(yùn)行過程中發(fā)現(xiàn)的錯(cuò)誤及改正方法。4. 掌握如何根據(jù)出錯(cuò)信息查找語法錯(cuò)誤。 5.最后提交帶有注釋的源程序文件(擴(kuò)展名為.c)。要求該文件必須能夠正確地編譯及運(yùn)行,并不得與他人作品雷同。 6.源程序注釋信息可以包括以下幾方面內(nèi)容: ⑴ 程序功能描述。 ⑵ 程序版本號、創(chuàng)作日期。 ⑶ 作者信息描述:班級、學(xué)號、姓名。 ⑷ 問題分析描述。 ⑸ 算法設(shè)計(jì)描述。 ⑹ 關(guān)鍵語句注釋說明。 ⑺ 調(diào)試運(yùn)行過程中出現(xiàn)的錯(cuò)誤及改正方法。 ⑻ 輸入數(shù)據(jù)樣例。 ⑼ 輸出數(shù)據(jù)樣例。 三、實(shí)驗(yàn)內(nèi)容 以下兩題,任選其一解答。 你知道淄博到北京的地面距離是多少千米嗎,淄博到紐約的地面距離又是多少千米呢?說不上來了吧。還是讓我們編一個(gè)程序來計(jì)算一下吧。 1.已知地球的平均半徑為6371千米,假設(shè)在地球的同一緯度上,有兩個(gè)處于不同經(jīng)度的城市A、B,編程序求出這兩個(gè)城市之間的地面距離。 輸入數(shù)據(jù)樣例:例如,欲求北緯30度上東經(jīng)10度到東經(jīng)50度的距離,輸入格式應(yīng)為:30 10 50 參考測試數(shù)據(jù): 輸入:0 0 180 輸出:20015.08 輸入:30 0 90 輸出:8397.7 2輸入:60 0 45 輸出:2453.20 2.地球的平均半徑為6371千米,已知地球上兩個(gè)城市A、B的經(jīng)度和緯度,編程序求出這兩個(gè)城市之間的地面距離。 提示:球面上兩點(diǎn)之間的最短距離,等于過這兩點(diǎn)以球心為圓心的圓上,這兩點(diǎn)之間劣弧的長度。(即這兩點(diǎn)與球心之間的連線構(gòu)成的夾角所對球面劣弧的長度)。 建議你自己一步步推導(dǎo)出公式,而不要照搬網(wǎng)上的現(xiàn)成公式。 四、常見問題 疑問1:這分明是兩道數(shù)學(xué)題啊,能否將數(shù)學(xué)公式提供給我們呢,我們的主要任務(wù)不是編寫程序嗎? 答:建立數(shù)學(xué)模型也是編程序的一部分。學(xué)會(huì)分析解決現(xiàn)實(shí)中遇到的問題,是我們學(xué)習(xí)的重要目標(biāo)。 疑問2:這個(gè)問題好像屬于球面幾何的范疇,用平面幾何可以求解嗎? 答:這個(gè)問題的確涉及到球面幾何,但是也的確可以利用投影以及平面幾何方法來求解。 實(shí)驗(yàn)二 選擇結(jié)構(gòu)程序設(shè)計(jì)(2學(xué)時(shí)) 一、實(shí)驗(yàn)?zāi)康?/p> 掌握選擇結(jié)構(gòu)程序設(shè)計(jì)的一般方法及選擇結(jié)構(gòu)程序的調(diào)試方法。 二、實(shí)驗(yàn)要求 1. 仔細(xì)閱讀下列實(shí)驗(yàn)內(nèi)容,并編寫出相應(yīng)的C語言源程序。2. 在VC運(yùn)行環(huán)境下,編輯錄入源程序。 3. 調(diào)試運(yùn)行源程序,注意觀察調(diào)試運(yùn)行過程中發(fā)現(xiàn)的錯(cuò)誤及改正方法。4. 掌握如何根據(jù)出錯(cuò)信息查找語法錯(cuò)誤。 5.最后提交帶有充分注釋的源程序文件(擴(kuò)展名為.c)。要求該文件必須能夠正確地編譯及運(yùn)行,并不得與他人作品雷同。 6.源程序注釋信息可以包括以下幾方面內(nèi)容: ⑴程序功能描述。 ⑵程序版本號、創(chuàng)作日期。 ⑶作者信息描述:班級、學(xué)號、姓名。 ⑷問題分析描述。 ⑸算法設(shè)計(jì)描述。 ⑹關(guān)鍵語句注釋說明。 ⑺調(diào)試運(yùn)行過程中出現(xiàn)的錯(cuò)誤及改正方法。 ⑻輸入數(shù)據(jù)樣例。 ⑼輸出數(shù)據(jù)樣例。 三、實(shí)驗(yàn)內(nèi)容 你知道你生日那天是星期幾嗎,還有你知道你爸爸生日那天是星期幾嗎?你可能會(huì)說:可以查萬年歷啊。那么,不查萬年歷你能計(jì)算出來嗎? 以下兩題,任選其一解答。 1.編程序?qū)崿F(xiàn):輸入一個(gè)年份y,求出從公元1年1月1日到y(tǒng)年1月1日,總共有多少天,并求出y年的1月1日是星期幾。 2.編程序?qū)崿F(xiàn):輸入任意一個(gè)日期的年、月、日的值,求出從公元1年1月1日到這一天總共有多少天,并求出這一天是星期幾。 四、常見問題 疑問1:閏年的規(guī)律是不是四年一閏? 答:四年一閏是儒略歷(儒略也就是凱撒大帝)的置閏規(guī)則。我們現(xiàn)在使用的是格里高利歷,置閏規(guī)則是每400年97閏。 疑問2:公元1年1月1日是星期幾呢? 答:星期一。 疑問3:據(jù)說從儒略歷改為格里高利歷時(shí),將1582年10月4日的下一天定為格里高利歷的10月15日,中間銷去了10天,這會(huì)不會(huì)影響星期幾的計(jì)算? 答:這個(gè)調(diào)整是對儒略歷誤差的糾正,并不會(huì)影響總天數(shù)和星期幾的計(jì)算。 疑問4:這里計(jì)算總天數(shù),好像要用到循環(huán)程序吧? 答:其實(shí)根據(jù)閏年的置閏規(guī)則,不使用循環(huán)也可以計(jì)算出來總天數(shù)。當(dāng)然,你想使用循環(huán)編寫該程序也是可以的。 實(shí)驗(yàn)三 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(2學(xué)時(shí)) 一、實(shí)驗(yàn)?zāi)康恼莆昭h(huán)結(jié)構(gòu)程序設(shè)計(jì)的一般方法及循環(huán)結(jié)構(gòu)程序的調(diào)試方法。 二、實(shí)驗(yàn)要求 1. 仔細(xì)閱讀下列實(shí)驗(yàn)內(nèi)容,并編寫出相應(yīng)的C語言源程序。2. 在VC運(yùn)行環(huán)境下,編輯錄入源程序。 3. 調(diào)試運(yùn)行源程序,注意觀察調(diào)試運(yùn)行過程中發(fā)現(xiàn)的錯(cuò)誤及改正方法。4. 掌握如何根據(jù)出錯(cuò)信息查找語法錯(cuò)誤。 5.最后提交帶有充分注釋的源程序文件(擴(kuò)展名為.c)。要求該文件必須能夠正確地編譯及運(yùn)行,并不得與他人作品雷同。 6.源程序注釋信息可以包括以下幾方面內(nèi)容: ⑴程序功能描述。 ⑵程序版本號、創(chuàng)作日期。 ⑶作者信息描述:班級、學(xué)號、姓名。 ⑷問題分析描述。 ⑸算法設(shè)計(jì)描述。 ⑹關(guān)鍵語句注釋說明。 ⑺調(diào)試運(yùn)行過程中出現(xiàn)的錯(cuò)誤及改正方法。 ⑻輸入數(shù)據(jù)樣例。 ⑼輸出數(shù)據(jù)樣例。 三、實(shí)驗(yàn)內(nèi)容 以下兩題,任選其一解答。 1. 海萍夫婦為了徹底告別“蝸居”生活,痛下決心貸款60萬元購買了一套三居室。若貸款月利率為0.5%,還款期限為120個(gè)月,還款方式為等額本金還款法(即貸款期限內(nèi)每期以相等的額度償還貸款本金,貸款利息隨本金逐期遞減)。試求出每個(gè)月還款的本金、每個(gè)月的利息以及總利息分別是多少元。 2. 若還款方式采用等額本息還款法(即貸款期限內(nèi)每期以相等的額度償還貸款本息,貸款利息隨本金逐期遞減)。試求出每個(gè)月還款的本金、每個(gè)月的利息以及總利息分別是多少元。 四、常見問題 疑問1:等額本息還款法每個(gè)月的還款額怎么計(jì)算,應(yīng)該有個(gè)公式吧,要不然怎么計(jì)算出來每個(gè)月應(yīng)還的利息與本金? 答:的確有一個(gè)計(jì)算公式。當(dāng)然你可以自己推導(dǎo)出來(這樣你會(huì)很有成就感!),要不然就從網(wǎng)上搜索出來。 實(shí)驗(yàn)四 循環(huán)程序綜合應(yīng)用(4學(xué)時(shí)) 一、實(shí)驗(yàn)?zāi)康模?/p> 掌握循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的一般方法及循環(huán)結(jié)構(gòu)程序的調(diào)試方法,能夠綜合運(yùn)用順序、選擇和循環(huán)結(jié)構(gòu)解決一般難度的實(shí)際應(yīng)用問題。 二、實(shí)驗(yàn)要求 1. 仔細(xì)閱讀下列實(shí)驗(yàn)內(nèi)容,并編寫出相應(yīng)的C語言源程序。2. 在VC運(yùn)行環(huán)境下,編輯錄入源程序。 3. 調(diào)試運(yùn)行源程序,注意觀察調(diào)試運(yùn)行過程中發(fā)現(xiàn)的錯(cuò)誤及改正方法。4. 掌握如何根據(jù)出錯(cuò)信息查找語法錯(cuò)誤。 5.最后提交帶有充分注釋的源程序文件(擴(kuò)展名為.c)。要求該文件必須能夠正確地編譯及運(yùn)行,并不得與他人作品雷同。 6.源程序注釋信息可以包括以下幾方面內(nèi)容: ⑴程序功能描述。 ⑵程序版本號、創(chuàng)作日期。 ⑶作者信息描述:班級、學(xué)號、姓名。 ⑷問題分析描述。 ⑸算法設(shè)計(jì)描述。 ⑹關(guān)鍵語句注釋說明。 ⑺調(diào)試運(yùn)行過程中出現(xiàn)的錯(cuò)誤及改正方法。 ⑻輸入數(shù)據(jù)樣例。 ⑼輸出數(shù)據(jù)樣例。 三、實(shí)驗(yàn)內(nèi)容 以下兩題,任選其一解答。 1.編程序?qū)崿F(xiàn)如下功能:輸入任意一個(gè)年份和月份,按以下格式輸出該月份的公歷日歷。 要求由程序計(jì)算出來該月份的1日是星期幾,并用循環(huán)控制打印。打印樣例如下: 2012年日歷 ========== 9月 ---------日 一 二 三 四 五 六2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30------------------------- 2.編程序?qū)崿F(xiàn)如下功能:輸入任意一個(gè)年份,按以下格式輸出該年份全年的公歷日歷。要求由程序計(jì)算出來每個(gè)月份的1日是星期幾,并用循環(huán)控制打印。 四、常見問題 疑問1:如何控制某個(gè)月1日的打印位置? 答:先由程序計(jì)算出來該月份的1日是星期幾,然后控制在打印“1”之前打印相應(yīng)個(gè)數(shù)的空格。 疑問2:如何控制每周和每月的打印換行? 答:可以根據(jù)當(dāng)前這一天的打印位置控制每周的打印換行,并根據(jù)該月份的天數(shù)控制每月的打印換行。 實(shí)驗(yàn)五 字符串處理綜合應(yīng)用(4學(xué)時(shí)) 一、實(shí)驗(yàn)?zāi)康?/p> 掌握字符串處理的一般方法及字符串處理應(yīng)用程序的調(diào)試方法,能夠綜合運(yùn)用選擇、循環(huán)結(jié)構(gòu)和數(shù)組、指針解決一般難度的實(shí)際應(yīng)用問題。 二、實(shí)驗(yàn)要求 1. 仔細(xì)閱讀下列實(shí)驗(yàn)內(nèi)容,并編寫出相應(yīng)的C語言源程序。2. 在VC運(yùn)行環(huán)境下,編輯錄入源程序。 3. 調(diào)試運(yùn)行源程序,注意觀察調(diào)試運(yùn)行過程中發(fā)現(xiàn)的錯(cuò)誤及改正方法。4. 掌握如何根據(jù)出錯(cuò)信息查找語法錯(cuò)誤。 5.最后提交帶有充分注釋的源程序文件(擴(kuò)展名為.c)。要求該文件必須能夠正確地編譯及運(yùn)行,并不得與他人作品雷同。 6.源程序注釋信息可以包括以下幾方面內(nèi)容: ⑴程序功能描述。 ⑵程序版本號、創(chuàng)作日期。 ⑶作者信息描述:班級、學(xué)號、姓名。 ⑷問題分析描述。 ⑸算法設(shè)計(jì)描述。 ⑹關(guān)鍵語句注釋說明。 ⑺調(diào)試運(yùn)行過程中出現(xiàn)的錯(cuò)誤及改正方法。 ⑻輸入數(shù)據(jù)樣例。 ⑼輸出數(shù)據(jù)樣例。 三、實(shí)驗(yàn)內(nèi)容 以下兩題,任選其一解答。 1.編程實(shí)現(xiàn),輸入一個(gè)整數(shù)的小寫金額值(即不考慮角和分),轉(zhuǎn)化為大寫金額值并輸出。先實(shí)現(xiàn)基本功能,如輸入1002300,可以輸出“壹佰零拾零萬貳仟叁佰零拾零元整”。 2.編程實(shí)現(xiàn),輸入一個(gè)小寫金額值,轉(zhuǎn)化為大寫金額值輸出。要求實(shí)現(xiàn)相對完善的功能,如輸入1002300.90,應(yīng)該輸出“壹佰萬貳仟叁佰元零玖角整”。 四、常見問題 疑問1:如何才能分離出整數(shù)中的每一位數(shù)字? 答:可以利用整數(shù)的求余數(shù)和除法運(yùn)算實(shí)現(xiàn)數(shù)字的分離,同時(shí)將分離出的數(shù)字存入到一個(gè)事先定義好的數(shù)組中,每個(gè)數(shù)組元素只存儲(chǔ)一位數(shù)字。 疑問2:若不能確定整數(shù)的實(shí)際位數(shù),如何控制分離過程? 答:可以通過循環(huán)控制數(shù)字的分離過程,每循環(huán)一次分離出來當(dāng)前的最末一位,然后去掉最末一位,直至分離出所有的位。 疑問3:如何控制給某位數(shù)字添加合適的數(shù)量單位,如萬、仟、佰、拾、元? 答:可以根據(jù)該數(shù)字在原小寫數(shù)值中的位置進(jìn)行控制,如第0位單位為“元”,第1位單位為“拾”,依此類推。 實(shí)驗(yàn)六 文件應(yīng)用程序設(shè)計(jì)(2學(xué)時(shí)) 一、實(shí)驗(yàn)?zāi)康恼莆瘴募?yīng)用程序設(shè)計(jì)的一般方法及其調(diào)試方法。 二、實(shí)驗(yàn)要求 1. 仔細(xì)閱讀下列實(shí)驗(yàn)內(nèi)容,并編寫出相應(yīng)的C語言源程序。2. 在VC運(yùn)行環(huán)境下,編輯錄入源程序。 3. 調(diào)試運(yùn)行源程序,注意觀察調(diào)試運(yùn)行過程中發(fā)現(xiàn)的錯(cuò)誤及改正方法。4. 掌握如何根據(jù)出錯(cuò)信息查找語法錯(cuò)誤。 5.最后提交帶有充分注釋的源程序文件(擴(kuò)展名為.c)。要求該文件必須能夠正確地編譯及運(yùn)行,并不得與他人作品雷同。 6.源程序注釋信息可以包括以下幾方面內(nèi)容: ⑴程序功能描述。 ⑵程序版本號、創(chuàng)作日期。 ⑶作者信息描述:班級、學(xué)號、姓名。 ⑷問題分析描述。 ⑸算法設(shè)計(jì)描述。 ⑹關(guān)鍵語句注釋說明。 ⑺調(diào)試運(yùn)行過程中出現(xiàn)的錯(cuò)誤及改正方法。 ⑻輸入數(shù)據(jù)樣例。 ⑼輸出數(shù)據(jù)樣例。 三、實(shí)驗(yàn)內(nèi)容 以下兩題,任選其一解答。 1. 海萍夫婦為了徹底告別“蝸居”生活,痛下決心貸款60萬元購買了一套三居室。若貸款月利率為0.5%,還款期限為120個(gè)月,還款方式為等額本金還款法(即貸款期限內(nèi)每期以相等的額度償還貸款本金,貸款利息隨本金逐期遞減)。試求出每個(gè)月還款的本金、每個(gè)月的利息以及總利息分別是多少元。要求將輸出結(jié)果寫入到數(shù)據(jù)文件中。 2. 若還款方式采用等額本息還款法(即貸款期限內(nèi)每期以相等的額度償還貸款本息,貸款利息隨本金逐期遞減)。試求出每個(gè)月還款的本金、每個(gè)月的利息以及總利息分別是多少元。要求將輸出結(jié)果寫入到數(shù)據(jù)文件中。 電子科技大學(xué) 計(jì)算機(jī) 學(xué)院 標(biāo) 準(zhǔn) 實(shí) 驗(yàn) 報(bào) 告 (實(shí)驗(yàn))課程名稱 C語言程序設(shè)計(jì) 電子科技大學(xué)教務(wù)處制表 電 子 科 技 大 學(xué) 實(shí) 驗(yàn) 報(bào) 告 四 學(xué)生姓名: 學(xué) 號: 指導(dǎo)教師:劉 勇 實(shí)驗(yàn)地點(diǎn): 計(jì)算機(jī)學(xué)院軟件306室 實(shí)驗(yàn)日期: ****年**月**日 一、實(shí)驗(yàn)室名稱: 軟件實(shí)驗(yàn)室 二、實(shí)驗(yàn)項(xiàng)目名稱:函數(shù)的應(yīng)用及預(yù)處理 三、實(shí)驗(yàn)學(xué)時(shí):2 四、實(shí)驗(yàn)原理: 使用Turbo C軟件(簡稱TC),在微型計(jì)算機(jī)上,對其程序進(jìn)行編輯、編譯、連接與運(yùn)行。Turbo C是一個(gè)集成環(huán)境,它具有方便、直觀、易用的界面和豐富的庫函數(shù)。通過上機(jī)練習(xí)掌握在TC環(huán)境下編輯、編譯、連接、和運(yùn)行C程序的方法和過程。 五、實(shí)驗(yàn)?zāi)康?/p> 1. 掌握C語言中定義函數(shù)的方法; 2. 掌握函數(shù)傳值調(diào)用的方法; 3. 掌握函數(shù)傳址調(diào)用的方法; 4. 掌握遞歸函數(shù)的設(shè)計(jì)方法; 5. 掌握命令行參數(shù)的使用方法; 6. 掌握函數(shù)在不同文件中的編譯、鏈接方法。 六、實(shí)驗(yàn)內(nèi)容 編程實(shí)驗(yàn),完成以下上機(jī)內(nèi)容,調(diào)試運(yùn)行程序并完成報(bào)告 1)、教材第七章習(xí)題7.4; 2)、編寫一個(gè)實(shí)現(xiàn)冒泡法排序的函數(shù),并在主函數(shù)中從鍵盤上輸入6個(gè)數(shù)后進(jìn)行排序輸出; 3)、教材第七章習(xí)題7.11; 4)、教材第七章習(xí)題7.15; 5)、教材第七章習(xí)題7.24; 6)、求解漢渃塔(tower of Hanoi)問題。在一塊平板上立有3根立柱,從左到右分別標(biāo)記為A,B,C。最初在A柱上放有6個(gè)大小不等的圓盤,并且大盤在下面,小盤在上面。要求將這些盤從A移到C(可以借助B柱)。條件是:每次只能移動(dòng)一個(gè)盤,并且不允許把大盤放在小盤的上面。(提示:利用函數(shù)的遞歸調(diào)用); 七、實(shí)驗(yàn)器材(設(shè)備、元器件): pc硬件要求:CPU PII 以上,64M 內(nèi)存,1OOM 硬盤空間即可。 軟件要求:DOS3.0以上/Windows98/Me/XP/NT/2000。 八、實(shí)驗(yàn)步驟: 實(shí)驗(yàn)編程與運(yùn)行結(jié)果 ⑴ 編寫一個(gè)求兩個(gè)整數(shù)的最小公倍數(shù)的函數(shù),兩個(gè)整數(shù)由鍵盤輸入,用主函數(shù)調(diào)用這個(gè)函數(shù),并輸出結(jié)果。 程序文件名為7_4.c,源程序清單如下: #include 運(yùn)行結(jié)果: ⑵ 編寫一個(gè)實(shí)現(xiàn)冒泡法排序的函數(shù),并在主函數(shù)中從鍵盤上輸入6個(gè)數(shù)后進(jìn)行排序輸出。 程序文件名為testf3.c,源程序清單如下: main(){ int i,j,a[7];int temp;clrscr();for(i=1;i<7;i++){ printf(“nInput a[%d]=”,i);scanf(“%d”,&a[i]);} for(i=1;i<6;i++)for(j=1;j<7;j++){ if(a[j] temp=a[j];a[j]=a[j+1];a[j+1]=temp;} } for(i=1;i<7;i++){ printf(“n%5d”,a[i]);} }_ 運(yùn)行結(jié)果: ⑶ 編寫一個(gè)通過函數(shù)調(diào)用把輸入的小寫字符串變?yōu)榇髮懽址某绦颉?/p> 程序文件名為7_11.c,源程序清單如下: #include第二篇:C語言程序設(shè)計(jì)實(shí)驗(yàn)四(本站推薦)
第三篇:C語言程序設(shè)計(jì)實(shí)驗(yàn)安排
第四篇:《C語言程序設(shè)計(jì)》實(shí)驗(yàn)四