版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)1簡單判定性問題求解一、實(shí)驗(yàn)學(xué)時(shí)完成本實(shí)驗(yàn)需4學(xué)時(shí)。二、實(shí)驗(yàn)?zāi)康?、閱讀程序題(1)掌握C語言數(shù)據(jù)類型,熟悉如何定義一個(gè)整型、字符型的變量,以及對(duì)它們賦值的方法;(2)掌握不同的類型數(shù)據(jù)之間賦值的規(guī)律;(3)掌握數(shù)據(jù)在內(nèi)存中的存儲(chǔ)方式;(4)學(xué)會(huì)輸入、輸出函數(shù)的基本格式和使用方法;(5)學(xué)會(huì)使用有關(guān)算術(shù)運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符,以及包含這些運(yùn)算符的表達(dá)式。2、編程題(1)如何運(yùn)用if-else判定性結(jié)構(gòu)進(jìn)行程序設(shè)計(jì);(2)如何運(yùn)用switch判定性結(jié)構(gòu)進(jìn)行程序設(shè)計(jì)。3、調(diào)試題(1)熟悉C程序的編輯、編譯、連接和運(yùn)行的過程。三、實(shí)驗(yàn)指導(dǎo)為了達(dá)到最佳的實(shí)驗(yàn)效果,以下提供幾條適于編程的指導(dǎo)
2、意見,可供參考。1、閱讀程序題應(yīng)先運(yùn)用自己在課堂所學(xué)的知識(shí),推導(dǎo)出結(jié)果,在上機(jī)時(shí)輸入計(jì)算機(jī),印證自己推導(dǎo)的結(jié)果,注意觀察數(shù)據(jù)在內(nèi)存中的存儲(chǔ)方式、含不同種運(yùn)算符表達(dá)式的輸出結(jié)果。2、編程題必須首先畫出流程圖,并反復(fù)思考判斷程序設(shè)計(jì)的正確性,完成程序的設(shè)計(jì)。要注意簡單判定性問題的結(jié)構(gòu)選擇。3、調(diào)試題應(yīng)明確程序的調(diào)試、測試是一項(xiàng)非常煩瑣的工作,也是非常重要的工作。對(duì)于初學(xué)者來說應(yīng)該建立良好的習(xí)慣,在調(diào)試程序的時(shí)候,應(yīng)該盡可能考慮到程序運(yùn)行時(shí)各種可能情況。四、實(shí)驗(yàn)內(nèi)容1、閱讀程序題(1)main( ) /*定義字符型變量*/ char c1,c2; /*向字符變量賦以整數(shù)*/ c1=97; c2=98
3、; printf("%c %cn",c1,c2); /*以字符形式輸出*/ printf("%d %dn",c1,c2); /*以整數(shù)形式輸出*/該程序的輸出結(jié)果是 a b(換行)97 98 。思考:可否改成int c1,c2;輸出結(jié)果是? 相同(2)main() int a=7,b=5; printf("%dn",b=b/a);該程序的輸出結(jié)果是 0 。思考:若將printf語句中%d變?yōu)?f,可否輸出分式的值? 可以(3)main() int a=9; a+=a-=a+a; /*包含復(fù)合的賦值運(yùn)算符的賦值表達(dá)式*/ printf(
4、"%dn",a);該程序的輸出結(jié)果是 -18 。思考:賦值表達(dá)式aaaa的求解步驟?第一步:a=a-(a+a)=-9 第二步a=a+a=18(4)main() int k=-1; printf("%d,%un",k,k);該程序的輸出結(jié)果是 -1 4294967295 。思考:1在內(nèi)存中的存儲(chǔ)形式? 取反加一 (32個(gè))(5)main() unsigned x1; int b=-1; x1=b; /*有符號(hào)數(shù)據(jù)傳送給無符號(hào)變量*/ printf("%u",x1);該程序的輸出結(jié)果是 4294967295 。思考:不同類型的整型數(shù)據(jù)相互
5、賦值時(shí),規(guī)則是什么?(有符號(hào)賦值給無符號(hào))(6)main() int a=3,b=4,c=5; printf("%dn",(!(a<b)&&(c=c+1); printf("%d",c);該程序的輸出結(jié)果是 0(換行)5 。思考:若將第一個(gè)printf語句中&&變?yōu)閨 ,結(jié)果將如何?1(換行)6(7)main() int a=1,b=2,c=3;if(c=a) printf("%dn",c);else printf("%dn",b);該程序的輸出結(jié)果是 1 。2、編程序并上機(jī)調(diào)
6、試運(yùn)行(包括題目及要求、流程圖、程序清單、測試數(shù)據(jù)及結(jié)果)(1)將一個(gè)百分制成績轉(zhuǎn)換成等級(jí)制成績,百分制與等級(jí)制的對(duì)應(yīng)關(guān)系如下表:百分制90-10080-8970-7960-69<60等級(jí)制優(yōu)良中差劣具體要求如下:1) 用switch語句實(shí)現(xiàn)該功能;2) 用鍵盤輸入百分制成績,輸入前要有提示信息,對(duì)于不合理的數(shù)據(jù)應(yīng)輸出錯(cuò)誤信息;3) 輸出結(jié)果應(yīng)包含百分制成績和成績等級(jí);4) 分別輸入成績-10,30,60,68,75,83,95,102,查看記錄運(yùn)行結(jié)果。#include<stdio.h>#include<stdlib.h>void main()float sco
7、re;int level;printf("請(qǐng)輸入成績:n");scanf("%f",&score);if (score>100|score<0)printf("成績輸入錯(cuò)誤!n");elselevel=(int)(score-50)/10);switch(level)case 5: printf("優(yōu)n");break;case 4: printf("優(yōu)n");break;case 3: printf("良n");break;case 2: printf(
8、"中n");break;case 1: printf("差n");break;default: printf("劣n");break;程序代碼流程圖見下頁測試數(shù)據(jù):100,50,-20輸出結(jié)果:優(yōu),劣,成績輸入錯(cuò)誤(2)銀行整存整取存款不同期限的月息利率分別為:月息利率 程序代碼輸入存款的本金和年限,求到期時(shí)能從銀行得到的利息與本金的合計(jì)。(利息的計(jì)算公式為:利息本金×月息利率×12 ×存款年限。#include<stdio.h>#include<stdlib.h>void mai
9、n()int year;double input,out;printf("輸入存儲(chǔ)年份:n");scanf("%d",&year);printf("輸入本金數(shù)額:n");scanf("%lf",&input);if (input<0)printf("本金金額不能為負(fù)!n");elseswitch(year)case 1: out=input+input*year*12*0.63/100;printf("%5.2lf",out);break;case 2:
10、 out=input+input*year*12*0.66/100;printf("%5.2lf",out);break;case 3: ;case 4: out=input+input*year*12*0.69/100;printf("%5.2lf",out);break;case 5: ;case 6: ;case 7: out=input+input*year*12*0.75/100;printf("%5.2lf",out);break;case 8: out=input+input*year*12*0.84/100;print
11、f("%5.2lf",out);break;default:printf("輸入錯(cuò)誤!");break;流程圖見下頁測試數(shù)據(jù):4,100 04,-10輸出結(jié)果:133.12 本金金額不能為負(fù)!(3)調(diào)試下面程序,使之具有如下功能:輸入a、b、c三個(gè)整數(shù),求最小值。main() int a,b,c;scanf("%d%d%d",a,b,c);if(a>b)&&(a>c)if(b<c)printf("min=%dn",b);elseprintf("min=%dn",
12、c);if(a<b)&&(a<c)printf("min=%dn",a);程序中包含有一些錯(cuò)誤,按下述步驟進(jìn)行調(diào)試。1)設(shè)置斷點(diǎn)。2)通過單步執(zhí)行,觀測變量,發(fā)現(xiàn)程序中的錯(cuò)誤。程序調(diào)試記錄1、程序出現(xiàn)的錯(cuò)誤及改正第四行,abc前都加&,在%d%d%d中兩個(gè)%d之間加空格; 括住六到九行;把第十行if改成else if;2、程序的改進(jìn)1.每個(gè)<或>后加一個(gè)=;2.在程序末尾添加如下指令else if(a<=b)&&(a>=c)|(a>=b)&&(a<=c)if (b<
13、=c)printf("min=%dn",b);elseprintf("min=%dn",c);實(shí)驗(yàn)2 循環(huán)結(jié)構(gòu)及其應(yīng)用一、實(shí)驗(yàn)學(xué)時(shí)完成本實(shí)驗(yàn)需4學(xué)時(shí)。二、實(shí)驗(yàn)?zāi)康?、熟練掌握while,dowhile,for語句實(shí)現(xiàn)循環(huán)的方法,包括如何正確地設(shè)定循環(huán)條件,如何控制循環(huán)的次數(shù)。2、掌握break語句與continue語句的使用方法。3、熟悉循環(huán)的嵌套以及從循環(huán)體內(nèi)退出循環(huán)的處理。4、理解什么是循環(huán)程序結(jié)構(gòu)。三、實(shí)驗(yàn)指導(dǎo)為了達(dá)到最佳的實(shí)驗(yàn)效果,以下提供幾條適于模塊化編程的指導(dǎo)意見,可供參考。1、閱讀程序題應(yīng)先運(yùn)用自己在課堂所學(xué)的知識(shí),推導(dǎo)出結(jié)果,在上機(jī)時(shí)輸入
14、計(jì)算機(jī),印證自己推導(dǎo)的結(jié)果,注意循環(huán)語句的一般使用方法,以及復(fù)合運(yùn)算符的使用。2、編程題必須首先畫出流程圖,并反復(fù)思考判斷程序設(shè)計(jì)的正確性,以面向過程的、模塊化設(shè)計(jì)方法完成程序設(shè)計(jì)?!纠}解析】編寫一個(gè)程序,輸出半徑為1到10的圓的面積,若面積在40到90之間則予以輸出,否則,不予輸出。1)解題分析:解決問題的關(guān)鍵算法為求圓的面積并按要求輸出。循環(huán)求圓的面積area,若area<40,則用continue語句提前結(jié)束本次循環(huán)并開始新一輪循環(huán),若area>90,則用break語句跳出循環(huán)。2)算法流程圖如圖2-1:3)綜合分析需要從循環(huán)體中提前跳出循環(huán),或者在滿足某種條件下,不執(zhí)行循
15、環(huán)中剩下的語句而立即從頭開始新的一輪循環(huán),這時(shí)就要用到break和continue語句。開始r=1輸出area結(jié)束是ir<11?否否否r=r+1是area=3.14*r*rarea<40.0?是area>90.0?圖2-1 輸出半徑為1到10且面積在40 到90之間的圓面積的流程圖4)程序代碼#include <stdio.h>main (void) float area=0.0,pi=3.14; int r;for(r=1;r<11;r+) area=pi*r*r; if (area<40) continue; if (area>90) bre
16、ak; printf("area=%5.2fn",area); 四、實(shí)驗(yàn)內(nèi)容1、閱讀程序題。(1)#include<stdio.h>main( ) int x=-1; do x=x*x; while(!x); printf("%x=n",x);該程序的輸出結(jié)果是 1= 。(2)#include<stdio.h> main( ) int num=0; while(num<=2) num+; printf("%dn",num); 該程序的輸出結(jié)果是 1(換行)2(換行)3 。(3)#include<st
17、dio.h>main( ) int a,b; for (a=1,b=1 ; a<=100 ; a+) if (b>=20) break; if (b%3=1) b+=3 ; continue ; b-=5; printf(“%dn”,a);該程序的輸出結(jié)果是 8 。(4)#include<stdio.h>main( ) int y=2,a=1; while (y-!=-1) do a*=y ; a+ ; while (y-) ; printf(“%d,%dn”,a,y);該程序的輸出結(jié)果是 1,-2 。#include<stdio.h>#include
18、<stdlib.h>void main() int i=1,n=1;double result;printf("請(qǐng)輸入n(0<n<=20):n");scanf("%d",&n);if (n<=0|n>20)printf("輸入錯(cuò)誤n");elsewhile (i<=n)result*=i;i+;printf("%dn",result);2、編程序并上機(jī)調(diào)試運(yùn)行(包括題目及要求、流程圖、程序清單、測試數(shù)據(jù)及結(jié)果)(1) 輸入整數(shù)n,求 n?。?<n<20)
19、。流程圖程序代碼(2) 打印出所有“水仙花數(shù)”。所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字的立方之和正好等于該數(shù)本身。例如:153是一個(gè)“水仙花數(shù)”,因?yàn)?53=13+53+33【提示】根據(jù)題目要求只要分別求出一個(gè)三位數(shù)的個(gè)位、十位、百位上的數(shù)字,然后判斷是否滿足(某一三位數(shù)a=a的百位的立方+a的十位的立方+a的個(gè)位的立方)這個(gè)公式,滿足這個(gè)條件的三位數(shù)就是“水仙花數(shù)”。流程圖程序代碼#include<stdio.h>#include<stdlib.h>void main() int n=100,a,b,c;while (n<=1000)a=n/100;b=(n
20、-a*100)/10;c=(n-a*100-b*10);if (n=a*a*a+b*b*b+c*c*c)printf("%dn",n);n+;(3) 一個(gè)整數(shù),它加上100后是一個(gè)完全平方數(shù),再加上168又是一個(gè)完全平方數(shù),請(qǐng)問該數(shù)是多少?【提示】在10萬以內(nèi)判斷,先將該數(shù)加上100后再開方,再將該數(shù)加上268后再開方,如果開方后的結(jié)果滿足如下條件,即是結(jié)果。流程圖程序代碼#include<stdio.h>#include<stdlib.h>#include<math.h>void main() double n=0,a,b;int a1
21、,b1;while (n<=1000000)a=n+100;b=n+168;a1=(int)sqrt(a);b1=(int)sqrt(b);if (a1*a1=a&&b1*b1=b) printf("%10.0fln",n);n+;3、程序選做題第二題#include<stdio.h>#include<stdlib.h>void main() int a=0,b=0,c=0,d;while (a<=15)for(b=0;b<=25;b+)d=14*a+8*b;c=100-a-b;if (d=200)printf(&q
22、uot;%d,%d,%dn",a,b,c);elsecontinue;a+;(1) 猴子吃桃問題。猴子第一天摘下若干個(gè)桃子,當(dāng)即吃掉了一半,還不過癮,又多吃了一個(gè)。第二天早上又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下的總數(shù)一半零一個(gè)。到第10天早上想再吃時(shí),見只剩一個(gè)桃子了。求第一天共摘了多少桃子?!咎崾尽?使用逆向推導(dǎo)的方式,設(shè)后一天的桃子為N個(gè),則其前面一天的桃子為(N+1)*2個(gè),以此類推。(2) “百錢買百雞”問題:公雞每只5元,母雞每只3元,小雞每3只1元;用100元買100只雞,問公雞,母雞,小雞各買多少只?【提示】設(shè)公雞x只,母雞y只,小雞z只;
23、則有1<=x<=18,1<=y<=31,1<=z<=98,且同時(shí)滿足5x+3y+z/3=100,x+y+z=100,z%3=0這三個(gè)條件。通過數(shù)學(xué)運(yùn)算可改變條件,從而可用不同的方法來解決此問題,請(qǐng)嘗試不同的循環(huán)次數(shù)解決該問題。五、程序調(diào)試記錄要求:寫出題號(hào),并編寫順序號(hào)。如四(1)出現(xiàn)的錯(cuò)誤(1)······(2)······1、程序出現(xiàn)的錯(cuò)誤及改正2、程序的改進(jìn)實(shí)驗(yàn)3模塊化設(shè)計(jì)與應(yīng)用一、實(shí)驗(yàn)學(xué)時(shí)完成本實(shí)驗(yàn)需要4學(xué)時(shí)。二、實(shí)驗(yàn)?zāi)康?、閱讀程
24、序題(1) 掌握函數(shù)實(shí)參和形參的對(duì)應(yīng)關(guān)系以及“值傳遞”的方式;(2) 理解函數(shù)調(diào)用的過程以及函數(shù)的返回值;(3) 弄清楚帶參函數(shù)和帶參的宏之間的異同。2、編程題(1) 深刻理解模塊化程序設(shè)計(jì)的思想及如何進(jìn)行模塊劃分;(2) 掌握定義函數(shù)的方法以及函數(shù)原型的聲明;(3) 靈活運(yùn)用函數(shù)調(diào)用(有參函數(shù)和無參函數(shù)、有返回值的函數(shù)和無返回值的函數(shù))。三、實(shí)驗(yàn)指導(dǎo)為了達(dá)到最佳的實(shí)驗(yàn)效果,下面提出幾點(diǎn)指導(dǎo)意見或要求以供參考:1、閱讀程序題應(yīng)先運(yùn)用自己在課堂所學(xué)的知識(shí),推導(dǎo)出結(jié)果。上機(jī)時(shí)輸入計(jì)算機(jī),驗(yàn)證自己推導(dǎo)的結(jié)果是否正確。若不正確,應(yīng)分析原因。2、編程題注意事項(xiàng):(1) 一個(gè)模塊(或函數(shù))應(yīng)有一個(gè)入口點(diǎn)和
25、一個(gè)退出點(diǎn)。(2) 一般每個(gè)模塊(或函數(shù))只執(zhí)行一個(gè)任務(wù)。不要將無關(guān)的任務(wù)放于同一模塊中,只將完成同一任務(wù)的語句組合在一起。(3) 先畫流程圖,后寫程序代碼;(4) 變量和函數(shù)標(biāo)示符盡量“見名知義”;(5) 程序中應(yīng)有適當(dāng)注釋。3、應(yīng)記錄調(diào)試程序時(shí)出現(xiàn)的錯(cuò)誤,以便經(jīng)驗(yàn)的積累。四、實(shí)驗(yàn)內(nèi)容1、閱讀程序題(1) 下面程序的輸出結(jié)果是 5,8 。#include <stdio.h>int f(int m) int k=2; k+;return k+m;void main( ) int s;s=f(2);printf("%d, %dn", s, f(s);(2) 下面程
26、序的輸出結(jié)果是 777 。#include <stdio.h>int f( int a ) int b=0;int c=3;b=b+1;c=c+1;return(a+b+c);void main() int a=2,i;for( i =0;i <3;i+)printf("%d",f(a);(3) 下面程序的輸出結(jié)果是 3 (空格)5 。#include <stdio.h>void swap(int *a, int *b) int *t;t=a;a=b;b=t;void main() int x=3,y=5,*p=&x,*q=&y
27、;swap(p,q);printf("%d %dn",*p,*q);(4) 下面程序的輸出結(jié)果是 12 。#include <stdio.h>#define M(x,y,z) x*y+zvoid main() int a=1,b=2,c=3;printf("%dn", M(a+b,b+c,c+a); (5) 下面程序的輸出結(jié)果是 19 。#include <stdio.h>int M(int x, int y, int z) int p;p=x*y+z;return(p);void main() int a=1,b=2,c=3;p
28、rintf("%dn", M(a+b,b+c,c+a); 2、編程序并上機(jī)調(diào)試運(yùn)行。(1) 請(qǐng)?jiān)O(shè)計(jì)一個(gè)函數(shù)fun(),它的功能是:判斷pm是否是素?cái)?shù)。若pm是素?cái)?shù),返回1;若不是素?cái)?shù),返回0。pm的值由主函數(shù)從鍵盤讀入。函數(shù)fun():程序代碼流程圖int fun(int pm)int i=2,x;while (i<pm)x=pm/i;if (x*i=pm) return (0);break;elsei+;continue;return (1);主函數(shù)main():程序代碼流程圖#include <stdio.h>#include <stdlib.h
29、>void main()int pm;printf("請(qǐng)輸入要檢測的數(shù)字:n");scanf("%d",&pm);printf("%dn",fun(pm);測試數(shù)據(jù)及輸出結(jié)果:33 037 1(2) 請(qǐng)?jiān)O(shè)計(jì)一個(gè)函數(shù)fun(),它的功能是:將兩個(gè)兩位數(shù)的正整數(shù)a、b合并形成一個(gè)整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的千位和十位上, b數(shù)的十位和個(gè)位數(shù)依次放在c數(shù)的百位和個(gè)位上。例如,當(dāng)a45,b=12。調(diào)用該函數(shù)后,c=4152。函數(shù)fun():程序代碼流程圖int fun(int x,int y)i
30、nt c;c=x*100+y;return (c);#include <stdio.h>#include <stdlib.h>void main()int a,b;printf("請(qǐng)輸入要組合的數(shù)字(都為二位數(shù)):n");scanf("%d %d",&a,&b);if (a<10|a>99)|(b<10|b>99)printf("輸入數(shù)字錯(cuò)誤!n");else printf("%dn",fun(a,b);主函數(shù)main():流程圖程序代碼 測試數(shù)據(jù)及輸
31、出結(jié)果:9 21 輸入數(shù)字錯(cuò)誤!21 23 2123 (3) 請(qǐng)?jiān)O(shè)計(jì)兩個(gè)函數(shù)MaxCommonFactor()和MinCommonMultiple(),它們的功能是:前者用于求兩個(gè)正整數(shù)的最大公約數(shù),后者用于求兩個(gè)正整數(shù)的最小公倍數(shù)。函數(shù)MaxCommonFactor():流程圖程序代碼int MaxCommonFactor(int x,int y)int i=1,nHelp1,nHelp2,c;while (i<=x)nHelp1=x/i;nHelp2=y/i;if (i*nHelp1=x)&&(i*nHelp2=y)c=i;i+;return (c);函數(shù)MinCom
32、monMultiple():流程圖程序代碼int MinCommonMultiple(int x,int y)int i,nHelp,c;for (i=1;i<=y;i+)nHelp=i*x/y;if (nHelp*y=i*x)c=i*x;return (c);函數(shù)main():#include <stdio.h>#include <stdlib.h>void main()int a,b;printf("請(qǐng)輸入兩個(gè)正整數(shù)n");scanf("%d %d",&a,&b);if (a<0|b<0)pr
33、intf("數(shù)字輸入錯(cuò)誤!n");elseprintf("%dn",MaxCommonFactor(a,b);printf("%dn",MinCommonMultiple(a,b);流程圖程序代碼測試數(shù)據(jù)及輸出結(jié)果:2 4 2(換行)43 5 1(換行)15-1 5 數(shù)字輸入錯(cuò)誤!五、程序調(diào)試記錄要求記錄以下內(nèi)容:1、程序出現(xiàn)的錯(cuò)誤及改正2、程序的改進(jìn)實(shí)驗(yàn)4 相同數(shù)據(jù)類型集合一、實(shí)驗(yàn)學(xué)時(shí)完成本實(shí)驗(yàn)需4學(xué)時(shí)。二、實(shí)驗(yàn)?zāi)康?、閱讀程序題(1)掌握一維和二維數(shù)組的定義、賦值和輸入輸出(2)學(xué)會(huì)使用一維數(shù)組、二維數(shù)組(3)學(xué)會(huì)使用多維數(shù)組、字
34、符數(shù)組(4)學(xué)會(huì)使用字符串處理函數(shù)2、編程題(1)如何運(yùn)用數(shù)組進(jìn)行程序設(shè)計(jì)(2)了解字符串處理函數(shù)三、實(shí)驗(yàn)指導(dǎo)為了達(dá)到最佳的實(shí)驗(yàn)效果,以下提供幾條適于模塊化編程的指導(dǎo)意見,可供參考。1、閱讀程序題應(yīng)先運(yùn)用自己在課堂所學(xué)的知識(shí),推導(dǎo)出結(jié)果,在上機(jī)時(shí)輸入計(jì)算機(jī),印證自己推導(dǎo)的結(jié)果,注意數(shù)組下標(biāo)的使用方法。2、編程題必須首先畫出流程圖,并反復(fù)思考判斷程序設(shè)計(jì)的正確性,注意數(shù)組下標(biāo)不要越界(為了加深認(rèn)識(shí),自己可以嘗試一下下標(biāo)越界的情況)。3、調(diào)試程序要有耐心,反復(fù)的調(diào)試過程,雖然表面看起來費(fèi)時(shí)費(fèi)力,但是你一定會(huì)受益非淺。四、實(shí)驗(yàn)內(nèi)容1、閱讀程序題(1)main() char ch7="65a
35、b21"int i,s=0; for(i=0;chi>='0'&&chi<='9'i+=2) s=10*s+chi-'0' printf("%dn",s); 該程序的輸出結(jié)果是 6 。 (2)#define MAX 5 main()int aMAX,i; for(i=0;i<5;i+) ai=i; printf("n*a*n"); for(i=0;i<5;i+) printf(" a%d=",i); printf("%dn&qu
36、ot;,ai); *a* a0=0 a1=1 a2=2 a3=3 a4=4 該程序的輸出結(jié)果是 。(3) #include "stdio.h"#define N 10main()int i,j,temp;int aN+1;int count=0; printf(" input %d data : n",N);for (i=1;i<=N;i+)scanf("%d",&ai);printf("*sort course*n");for(i=1;i<=N;i+) count+; for(j=1;j<
37、;=N-i;j+) if(aj>aj+1) temp=aj;aj=aj+1;aj+1=temp; printf("%3d:",count); for(j=1;j<=N;j+) printf(" %d",aj); printf("n"); printf("the result is:n"); for(i=1;i<=N;i+) printf("%d",ai); 該程序的輸出結(jié)果是 冒泡排序顯示過程,并最終把輸入的十個(gè)數(shù)字由小到大無空格排列 。(4)#include "st
38、dio.h"#define N 20 main() int fN,i; f0=1; f1=1; for(i=2;i<N;i+) fi=fi-1+fi-2; printf("n-Fibonacci-n"); for(i=0;i<N;i+) if(i%4=0) printf("nn"); printf("f%-2d=%-5d ",i,fi); -Fibonacci-f0 =1 f1 =1 f2 =2 f3 =3 f4 =5 f5=8 f6 =13 f7 =21f8 =34 f9=55 f10=89 f11=144f1
39、2=233 f13=377 f14=610 f15=987 f16=1597 f17=2584 f18=4181 f19=6765 該程序的運(yùn)行結(jié)果為 。(5)#include "stdio.h"main() int i,j, temp;int a33=11,12,13,21,22,23,31,32,33;printf("-matrix a-n"); for(i=0;i<3;i+) for(j=0;j<3;j+) printf("%3d",aij); printf("nn"); for(i=0;i<
40、;3;i+) for(j=0;j<i;j+) temp=aij; aij=aji;aji=temp; printf("-matrix a changed-n"); for(i=0;i<3;i+) for(j=0;j<3;j+) printf("%3d",aij);-matrix a-11 12 1321 22 2331 32 33-matrix a changed-11 21 3112 22 3213 23 33 printf("nn"); 該程序的輸出結(jié)果是 。(6)#include "stdio.h&q
41、uot;main() char s40; int i; printf("input string:"); for(i=0;(si=getchar()!='n'i+); si='0' printf("noutput string:"); for(i=0;si!='0'i+) if(si>='a'&&si<='z')si=si-32; else if(si>='A'&&si<='Z') si=
42、si+32; printf("%c",si); #include "stdio.h"main() int s34;int i=0,j=0,nHelp;printf("請(qǐng)按順序輸入12個(gè)數(shù)字,以空格或回車分隔:n");while (i<=2)for (j=0;j<=3;j+)scanf("%d",&sij);i+; printf("n");for(i=0;i<=2;i+)for(j=0;j<=3;j+)printf(" %d",sij);prin
43、tf("n");printf("nn");for(i=0;i<3;i+)for(j=1;j<4;j+)if(sij>si0)nHelp=si0;si0=sij;sij=nHelp;for(i=0;i<=2;i+)for(j=0;j<=3;j+)printf(" %d",sij);printf("n"); 該程序的運(yùn)行結(jié)果為 將輸入大寫字母轉(zhuǎn)變?yōu)樾?,小寫字母轉(zhuǎn)變?yōu)榇髮?。2、編程序并上機(jī)調(diào)試運(yùn)行(包括題目及要求、流程圖、程序清單、測試數(shù)據(jù)及結(jié)果)(1)編寫一個(gè)3*4矩陣,找出每行中最大
44、元素并與第一列元素交換。具體要求如下:(a)使用二維數(shù)組存放該3*4矩陣;(b)定義并初始化該二維數(shù)組;(c)輸出原矩陣和變換后的矩陣進(jìn)行比較;(d)有必要的提示信息。程序代碼流程圖見下頁(2)編程實(shí)現(xiàn)如下功能:將字符數(shù)組str1中的全部字符拷貝到字符數(shù)組str2中,具體要求如下:(a)不能使用字符串拷貝函數(shù)strcpy();(b)必須將str1中的字符串結(jié)束標(biāo)志0一起拷貝,但其后的字符不拷貝;(c)str1的長度不超過80,str2的長度必須足夠大;程序代碼(d)有必要的提示信息。#include <stdio.h>#include <string.h>void ma
45、in()char str180,str290;int i;printf("輸入字符串:n");gets(str1);printf("n");for(i=0;str1i!='0'i+) str2i=str1i;str2i='0'puts(str2);流程圖(3)設(shè)某班共有10名學(xué)生,為了平定某門課程的獎(jiǎng)學(xué)金,按照規(guī)定超過全班平均成績10%者發(fā)給一等獎(jiǎng),超過全班平均成績5%者發(fā)給二等獎(jiǎng)。編寫程序,輸出學(xué)生學(xué)號(hào)、成績和獎(jiǎng)學(xué)金等級(jí)。#include <stdio.h>#include <string.h>v
46、oid main()double nArr102,AverS=0;int i,j;printf("請(qǐng)按照學(xué)號(hào)、成績的順序依次輸入數(shù)據(jù):n");for(i=0;i<10;i+)for(j=0;j<2;j+)scanf("%lfn",&nArrij);for(i=0;i<10;i+)AverS+=nArri1;AverS=AverS/10;printf("學(xué)號(hào) 成績 獎(jiǎng)學(xué)金等級(jí)n");for(i=0;i<10;i+)if (nArri1>AverS*1.1)printf("%lf %lf 一
47、等獎(jiǎng)n",nArri0,nArri1);else if (nArri0>AverS*1.05)&&(nArri0<AverS*1.1)printf("%lf %lf 二等獎(jiǎng)n",nArri0,nArri1);流程圖程序代碼見下頁主函數(shù)中調(diào)用代碼:無五、程序調(diào)試記錄(1)調(diào)試下面程序。#define N 10main() int i,num,data=12,15,23,29,30,31,34,45,56,70; /* num存放被查找的整數(shù),數(shù)組data存放有序數(shù)列*/ int low=0,high=N-1,mid; /*low、high
48、和mid分別標(biāo)記查找區(qū)間的下界和上界及中間位置*/ printf("nplease input num :n"); scanf("%d",&num); /*輸入要查找的整數(shù)*/ printf("the sorted numbers are:n"); for(i=1;i<N;i+) printf("%d ",datai); /*輸出有序數(shù)列*/ while(low<=high) /*使用折半法查找數(shù)據(jù)*/ mid=(low+high)/2; if(num=datamid) printf("nFind %d,it is data%d!",num,mid); break; /*若num等于數(shù)列中間位置的數(shù)據(jù)則查找成功*/ else if(num>datamid) low=mid+1; /*若num小于中間位置的數(shù)據(jù),low等于mid-1*/ else high=mid-1; /*若num大于中間位置的數(shù)據(jù),low等于mid+1*/ if(low>high) printf("n %d is not in data",num);/*若low大于high,則查找失敗*/程序中包含有一些錯(cuò)誤,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026浙江溫州市平陽電信公司招聘客戶代表5人備考題庫及答案詳解(考點(diǎn)梳理)
- 2025-2030魚油市場投資前景分析及供需格局研究研究報(bào)告
- 2025-2030中國燒堿市場供需現(xiàn)狀與前景策略分析研究報(bào)告
- 2025-2030中醫(yī)藥行業(yè)市場調(diào)研及產(chǎn)品創(chuàng)新與品牌運(yùn)營研究報(bào)告
- 環(huán)氧地坪施工質(zhì)量控制方案
- 企業(yè)信息系統(tǒng)實(shí)施培訓(xùn)方案
- 2025-2030燃?xì)庠罹弑茧[患抽查難現(xiàn)狀評(píng)估及行業(yè)互認(rèn)抽檢機(jī)制研究
- 2025-2030濰坊食品加工產(chǎn)業(yè)集群發(fā)展模式及其市場潛力報(bào)告
- 2025-2030湘菜連鎖經(jīng)營模式創(chuàng)新與市場滲透策略研究
- 2025-2030消防設(shè)施檢測行業(yè)市場競爭格局行業(yè)資質(zhì)認(rèn)證市場分析與發(fā)展咨詢書
- 籃球場工程施工設(shè)計(jì)方案
- (市質(zhì)檢二檢)福州市2024-2025學(xué)年高三年級(jí)第二次質(zhì)量檢測 歷史試卷(含答案)
- 《外科手術(shù)學(xué)基礎(chǔ)》課件
- 化學(xué)-湖南省永州市2024-2025學(xué)年高二上學(xué)期1月期末試題和答案
- 2025年貴安發(fā)展集團(tuán)有限公司招聘筆試參考題庫含答案解析
- DB33T 1214-2020 建筑裝飾裝修工程施工質(zhì)量驗(yàn)收檢查用表標(biāo)準(zhǔn)
- 高考語文復(fù)習(xí)【知識(shí)精研】鑒賞古代詩歌抒情方式 課件
- 春運(yùn)志愿者培訓(xùn)
- 語文-安徽省皖南八校2025屆高三上學(xué)期12月第二次大聯(lián)考試題和答案
- 養(yǎng)豬企業(yè)新員工職業(yè)規(guī)劃
- 《建筑工程設(shè)計(jì)文件編制深度規(guī)定》(2022年版)
評(píng)論
0/150
提交評(píng)論