欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      c語言實驗報告完成版

      時間:2019-05-12 02:19:41下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《c語言實驗報告完成版》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《c語言實驗報告完成版》。

      第一篇:c語言實驗報告完成版

      《高級語言程序設(shè)計》

      學(xué) 生 實 驗 報 告

      專業(yè):計算機科學(xué)與技術(shù) 學(xué)號: 姓名: 實驗一 C程序的運行環(huán)境和使用方法

      1.實驗?zāi)康?/p>

      1)了解所用的計算機系統(tǒng)的基本操作方法,學(xué)會獨立使用該系統(tǒng)。2)了解在該系統(tǒng)上如何編輯、編譯、連接和運行一個C程序。3)通過運行簡單的C程序,初步了解C程序的特點。

      2.實驗程序清單及運行結(jié)果

      課后習(xí)題1.5 編寫一個C程序,輸出以下信息:

      ************************** Very Good!************************** Source

      #include int main(){ printf(“**************************n”);printf(“ Very Good!n”);printf(“**************************n”);} 課后習(xí)題1.6 編寫一個程序,輸入a、b、c三個值,輸出其中最大值。

      Source

      #include int main(){ int max(int x,int y);int a,b,c,d;scanf(“%d %d %d”,&a,&b,&c);d=max(a,b);d=max(d,c);printf(“%dn”,d);return 0;} int max(int x,int y){ int z;if(x>y)z=x;else z=y;return z;} 實驗二 順序結(jié)構(gòu)程序設(shè)計

      1.實驗?zāi)康?/p>

      1)掌握C語言的數(shù)據(jù)類型,熟悉如何定義整型、字符型和實型的變量,以及對它們賦值的方法。

      2)掌握不同類型的數(shù)據(jù)之間賦值的規(guī)律。

      3)學(xué)會用C的有關(guān)算術(shù)運算符,以及包含這些運算符的表達(dá)式。4)掌握C語言中使用最多的一種語句——賦值語句的使用方法。

      5)掌握scanf()函數(shù)、printf()函數(shù)的調(diào)用方法,掌握各種類型數(shù)據(jù)的輸入輸出的方法,能正確使用各種格式轉(zhuǎn)換符。

      6)掌握字符輸入輸出函數(shù)getchar()、putchar()函數(shù)的調(diào)用方法。

      2.運行程序及填空

      (一)輸入并運行下面的程序,寫出運行結(jié)果。

      #include int main(){ char c1 , c2;c1=97;c2=98;printf(?%c,%cn?, c1, c2);printf(?%d,%dn?, c1, c2);return 0;} 運行結(jié)果:a,b 97,98 【思考題】若將第四行改為:int c1, c2;再使之運行,輸出結(jié)果一樣嗎?為什么?

      答:一樣,因為第六行的printf輸出的是%c即字符,任然將c1,c2按照ASCII碼字以符形式輸出。

      (二)程序填空:輸入一個十進(jìn)制整數(shù),輸出與之相應(yīng)的八進(jìn)制數(shù)與十六進(jìn)制數(shù)。

      例如:輸入31,輸出37(八進(jìn)制)和1F(十六進(jìn)制)。源程序如下: #include int main(){ long n;printf(“輸入一個十進(jìn)制整數(shù):”);

      scanf(“%d”,&n);printf(“對應(yīng)的八進(jìn)制整數(shù)是 % o n”, n);printf(“對應(yīng)的十六進(jìn)制整數(shù)是 % X n”, n);return 0;} 運行程序,輸入1234567,顯示結(jié)果如何? 答:輸入一個十進(jìn)制整數(shù):1234567 對應(yīng)的八進(jìn)制整數(shù)是 4553207 對應(yīng)的十六進(jìn)制整數(shù)是 12D687 3.實驗程序清單及運行結(jié)果

      課后習(xí)題3.7

      要將“China”譯成密碼。

      Source

      #include int main(){ char c1='C',c2='h',c3='i',c4='n',c5='a';printf(“%c%c%c%c%cn”,c1+4,c2+4,c3+4,c4+4,c5+4);} 課后習(xí)題4.8

      求圓周長C1、圓面積Sa、圓球表面積Sb、圓球體積Va、圓柱體積Vb。

      Source

      #include #define PI 3.14 #include int main(){ float r,h,C1,Sa,Sb,Va,Vb;scanf(“%f%f”,&r,&h);C1=2*PI*r;Sa=PI*r*r;Sb=4*PI*r*r;Va=4.0/3*r*r*r*PI;Vb=PI*r*r*h;printf(“C1=%.2fnSa=%.2fnSb=%.2fnVa=%.2f%nVb=%.2fn”,C1,Sa,Sb,Va,Vb);} 課后習(xí)題4.9

      輸入一個華氏溫度,要求輸出攝氏溫度。公式為c=5(F-32)/9。取位2小數(shù)。

      Source

      #include int main(){ float F,c;scanf(“%f”,&F);printf(“c=%.2fn”,c=5*(F-32)/9;);return 0;} 實驗三 選擇結(jié)構(gòu)程序設(shè)計

      1.實驗?zāi)康?/p>

      1)了解C語言表示邏輯量的方法(以0代表“假”,以非0代表“真”)。2)學(xué)會正確使用關(guān)系運算符、邏輯運算符和相關(guān)表達(dá)式。3)熟練掌握if語句和switch語句。4)結(jié)合程序掌握一些簡單的的算法。5)學(xué)習(xí)調(diào)試程序。

      2.程序填空

      請將下列源程序填寫完整。程序說明:輸入實數(shù)x, 計算并輸出下列分段函數(shù)f(x)的值,結(jié)果保留2位小數(shù)。

      ?x?1x??1?xf(x)??e?1?x?1

      ?2x?1?x?1#include

      #include int main(){ double x,y;printf(“Input x:”);scanf(?%lf?, &x);if(x<-1)y= x+1;else if(x<1)y= exp(x);else y=sqrt(x*x+1); printf(“f(%.2f)=%.2fn”, x, y);return 0;} 運行程序,輸入-2,顯示結(jié)果是:-1

      輸入 0.5,顯示結(jié)果是:1.65

      輸入 3,顯示結(jié)果是:3.16

      3.實驗程序清單及運行結(jié)果

      課后習(xí)題5.5 有一個函數(shù)

      / x

      (x<1)y={ 2x-1(1<=x<10)3x-11(x>=10)寫一段程序,輸入x,輸出y Source

      #include int main(){ int x,y;scanf(“%d”,&x);if(x<10)

      {if(x<1)y=x;else y=2*x-1;} else y=3*x-11;printf(“%dn”,y);return 0;} 課后習(xí)題5.6 給出一百分制成績,要求輸出成績等級‘A’、‘B’、‘Source

      #include int main(){ int t;scanf(“%d”,&t);

      if(90<=t&&t<=100)printf(“An”);else if(80<=t&&t<=89)printf(“Bn”);else if(70<=t&&t<=79)printf(“Cn”);

      C’、‘D’、‘E’。

      else if(60<=t&&t<=69)printf(“Dn”);else if(0<=t&&t<=59)printf(“En”);} 課后習(xí)題5.7 給出一個不多于5位的非負(fù)整數(shù),要求

      1、求出它是幾位數(shù)

      2、分別輸出每一位數(shù)字

      3、按逆序輸出各位數(shù)字,例如原數(shù)為321,應(yīng)輸出123

      Source

      #include int main(){ int n,g,s,b,q,w;scanf(“%d”,&n);g=n%10;s=n/10%10;b=n/100%10;q=n/1000%10;w=n/10000;if((w==0)&&(q==0)&&(b==0)&&(s==0)){printf(“1n%dn%d”,g,g);} else if((w==0)&&(q==0)&&(b==0)){printf(“2n%d %dn%d%d”,s,g,g,s);} else if((w==0)&&(q==0)){printf(“3n%d %d %dn%d%d%d”,b,s,g,g,s,b);} else if(w==0){printf(“4n%d %d %d %dn%d%d%d%d”,q,b,s,g,g,s,b,q);} else printf(“5n%d %d %d %d %dn%d%d%d%d%d”,w,q,b,s,g,g,s,b,q,w);}

      課后習(xí)題5.8 企業(yè)發(fā)放的獎金根據(jù)利潤提成。

      Source

      #include int main(){ int I,P;scanf(“%d”,&I);if(I<=100000)

      P=I*10/100;else if(I<=200000)

      P=10000+(I-100000)*75/1000;else if(I<=400000)

      P=17500+(I-200000)*5/100;else if(I<=600000)

      P=27500+(I-400000)*3/100;else if(I<=1000000)

      P=33500+(I-600000)*15/1000;else

      P=39500+(I-1000000)*1/100;printf(“%dn”,P);return 0;}

      實驗四 循環(huán)結(jié)構(gòu)程序設(shè)計

      1.實驗?zāi)康?/p>

      1)熟悉掌握用while語句、do-while語句和for語句實現(xiàn)循環(huán)的方法。2)掌握循環(huán)次數(shù)不確定的解題技巧,掌握多項式求和問題的解題技巧。3)掌握多重循環(huán)的編程技巧。

      4)掌握在程序設(shè)計中用窮舉法、迭代法、遞推法求解問題的編程技巧。5)進(jìn)一步學(xué)習(xí)調(diào)試程序。

      2.程序填空

      輸出菲波那契數(shù)列的前20項,要求每行輸出10項。#include int main(){ int i,x1,x2,x;x1=x2=1;printf(“%6d%6d”,x1,x2);/*輸出前2項*/

      for(i= 3;i<=20;i++){ x=x1+x2;printf(“%6d”,x);

      if(i%10==0)printf(“n”);x1= x2;x2= x;

      /*每行輸出10項*/ 9 } return 0;} 3.實驗程序清單及運行結(jié)果

      課后習(xí)題6.1

      輸入兩個正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。

      Source

      #include int main(){ int x,y,m,n,t;scanf(“%d %d”,&x,&y);m=x;n=y;t=m%n;while(t!=0){

      m=n;

      n=t;

      t=m%n;} printf(“%d %dn”,n,x*y/n);}

      課后習(xí)題6.2 輸入一行字符,分別統(tǒng)計出其中英文字母、數(shù)字、空格和其他字符的個數(shù)。

      Source

      #include int main(){ char c;int w=0,x=0,y=0,z=0;

      while((c=getchar())!='n'){

      if(c>='a'&&c<='z'||c>='A'&&c<='Z')

      w++;

      else if(c==' ')

      x++;

      else if(c>='0'&&c<='9')

      y++;

      else

      z++;} printf(“%d %d %d %dn”,w,y,x,z);} 課后習(xí)題6.3 Sn=2+22+222+2222+22222+22...2222(最后一項n個2)

      Source

      #include int main(){ int s,t,i,n,a;a=2;s=0;t=0;scanf(“%d”,&n);for(i=1;i<=n;i++){

      t=t+a;

      s=s+t;

      a=a*10;} printf(“%dn”,s);}

      課后習(xí)題6.10 猴子吃桃問題。求第一天共摘多少桃子。

      Source

      #include int main(){ int s=1,N,i;scanf(“%d”,&N);for(i=1;i

      s=(s+1)*2;} printf(“%dn”,s);}

      實驗五 數(shù)組

      1.實驗?zāi)康?/p>

      1)掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法。2)掌握字符數(shù)組和字符串函數(shù)的使用。3)掌握與數(shù)組有關(guān)的算法(特別是排序算法)。

      2.程序填空

      (一)程序填空:輸入一個整數(shù)n(1≤n≤10),再輸入n個整數(shù),將它們按升序排列后輸出。

      選擇排序基本思想:

      (1)由于n最大是10,需要定義一個長度為10的整型數(shù)組a;

      (2)整個排序只需要確定前n-1個元素(a[0] ~a[n-2]),最后一個元素a[n-1]無需另外處理;

      12(3)在確定a[i](i=0,1,…,n-2)時,先將a[i]本身看成最小,即令k=i,并將a[k]與后面的元素a[j](j=i+1, i+2, …, n-1)一一比較,如果a[j]< a[k],則更新k的值:k =j。找出對應(yīng)于下標(biāo)i的最小元素a[k]后,交換a[i]與a[k]。#include int main(){ int i, j, k,n, temp, a[10];printf(“Input n(1~10):”);while(scanf(“%d”,&n), n<=1||n>=10);//輸入正確的n:1≤n≤10

      printf(“Input %d numbers:n”, n);

      for(i=0;i

      scanf(“%d”,&a[i]);//輸入n個整型元素

      //選擇法排序

      for(i=0;i< n-1;i++){ k= i;//設(shè)a[i]為剩余部分的最小元素

      for(j= i+1;j

      a[i]=a[k];

      a[k]=temp;

      //a[i]??a[k] temp=a[i];}

      for(i=0;i

      printf(“%d ”,a[i]);//輸出排序后的數(shù)組

      printf(“n”);return 0;}

      【思考題】運行程序,輸入n:5,輸入5個整數(shù):23-9 14 0-3,顯示結(jié)果是什么?

      如果是按從大到小的降序排列,語句行Line 12 應(yīng)怎么修改? 答;⑴顯示結(jié)果Input n(1~10):5 ⑵Line 12 應(yīng)改為 if(a[j]>a[k])k=j;

      Input 5 numbers: 23-9 14 0 3-9 0 3 14 23

      (修改上面的程序,從在線評測系統(tǒng)中提交調(diào)試好的程序,題號1032。)

      (二)程序填空:輸入5個整數(shù), 將這5個數(shù)按逆時針順序轉(zhuǎn)動一次后再輸出,如輸入1 2 3 4 5,逆時針轉(zhuǎn)動一次后,輸出2 3 4 5 1。

      提示:設(shè)存放整數(shù)的數(shù)組為a。要實現(xiàn)數(shù)組逆時針轉(zhuǎn)動,只要先將首元素a[0]“搬”至一個變量t中;然后從第1個元素到最后1個元素,依次向前移一位,即a[i-1]= a[i](i= 1, … , 4);最后將存放在t中的首元素放入最后的元素。#include int main(){ int i, t, a[5];printf(“Input 5 integers:n”);for(i=0;i<5;i++)scanf(“%d”, &a[i]);t= a[0];

      for(i= 1;i< 5;i++)a[i-1]=a[i];

      a[4] = t;

      printf(“After rotation:n”);for(i=0;i<5;i++)

      printf(“%5d”, a[i]);printf(“n”);return 0; } 14 3.實驗程序清單及運行結(jié)果

      課后習(xí)題7.1 用篩法求之N內(nèi)的素數(shù)。

      Source

      #include #include int main(){ int i,k,m,N;scanf(“%d”,&N);for(m=2;m<=N;m=m+1){

      k=sqrt(m);

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

      if(m%i==0)break;

      if(i>=k+1)

      printf(“%dn”,m);} } 課后習(xí)題7.2

      用選擇法對10個整數(shù)從小到大排序。

      Source

      #include int main(){ int a[10];int i,j,t;for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;} for(i=0;i<10;i++)printf(“%dn”,a[i]);}

      課后習(xí)題7.4 有一個已排好的9個元素的數(shù)組,輸入一個數(shù)要求按原來排序的規(guī)律將它插入數(shù)組中。

      Source

      #include int main(){ int a[10];int i,m,j;for(i=0;i<9;i++){ scanf(“%d”,&a[i]);} scanf(“%d”,&m);for(i=0;i<9;i++)if(a[i]>m){ for(j=9;j>=i;j--)a[j+1]=a[j];a[i]=m;break;} else a[9]=m;for(i=0;i<10;i++)printf(“%d n”,a[i]);}

      課后習(xí)題7.5 輸入10個數(shù)字,然后逆序輸出。

      Source

      #include int main(){ int a[10],i;

      } for(i=0;i<=9;i++)scanf(“%d”,&a[i]);for(i=9;i>=0;i--)printf(“%d ”,a[i]);return 0;實驗六 函數(shù)

      1.實驗?zāi)康?/p>

      1)掌握定義函數(shù)的方法。

      2)掌握函數(shù)實參與形參的對應(yīng)關(guān)系以及“值傳遞”的方式。3)掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用的方法。

      4)掌握全局變量和局部變量、動態(tài)變量和靜態(tài)變量的概念和使用方法。5)學(xué)習(xí)對多文件程序的編譯和運行。

      2.程序填空

      驗證哥德巴赫猜想——任何一個大于6的偶數(shù)均可表示為兩個素數(shù)之和。例如:6=3+3,8=3+5,10=5+5,…,18=7+11。要求將6-100之間的偶數(shù)均表示為素數(shù)之和,一行輸出5組。#include #include Int prime(int n);int main(){ int a,b,k;for(k=6;k<=100;k=k+2)

      //逐個處理6~100之間的偶數(shù)k { for(a=2;a

      層循環(huán)

      { b=k-a;if(prime(a)&&prime(b))break;//如果a,b同為素數(shù), 跳出內(nèi) } //內(nèi)層循環(huán)

      printf(“%d=%d+%d ”,k,a,b);//輸出k=a+b

      if(k%5==0)printf(“n”);

      //每行輸出5組,注意第一行只有3組

      } //外層循環(huán) return 0;} //自定義函數(shù)prime(n),判斷整數(shù)n是否是素數(shù),是則返回1,不是則返回0 int prime(int n){ int i;

      for(i=2;i<=n;i++)if(n%i==0)break;if(i==n)return 1;//n是素數(shù),返回1 else } return 0;// n不是素數(shù),返回0 3.實驗程序清單及運行結(jié)果

      課后習(xí)題8.1 寫兩個函數(shù),分別求兩個整數(shù)的最大公約數(shù)和最小公倍數(shù),用主函數(shù)調(diào)用這兩個函數(shù)

      Source

      #include int main(){ int gcd(int x,int y);int lcm(int x,int y);int a,b;scanf(“%d %d”,&a,&b);printf(“%d %dn”,gcd(a,b),lcm(a,b));} int gcd(int x,int y){ int t;if(y>x){t=x;x=y;y=t;} while(t){

      t=x%y;

      x=y;

      y=t;} return x;} int lcm(int x,int y){ return x*y/gcd(x,y);

      }

      課后習(xí)題8.3 寫一個判斷素數(shù)的函數(shù),在主函數(shù)輸入一個正整數(shù),輸出是否是素數(shù)的消息。

      Source

      #include int main(){ int a;int prime(int x);scanf(“%d”,&a);if(prime(a))printf(“prime”);else printf(“not prime”);} int prime(int x){ int i=2;if(x==1)return 0;while(x%i){i++;} if(i==x)return 1;else return 0;}

      課后習(xí)題8.5 寫一函數(shù),使輸入的一個字符串按反序存放,在主函數(shù)中輸入輸出反序后的字符串。

      Source

      #include #include char s[1000];int main(){ int len;void transpose(char a[],int n);gets(s);len=strlen(s);transpose(s,len);puts(s);} void transpose(char a[],int n){ int i,j=n/2;char t;for(i=0;i

      t=a[i];

      a[i]=a[n-1-i];

      a[n-1-i]=t;} } 課后習(xí)題8.7 寫一個函數(shù),輸入一個四位數(shù),要求輸出這四個數(shù)字字符,但要求每兩個數(shù)字間空格。

      Source

      #include int main(){ int a,max(int x);

      } int max(int x){ scanf(“%d”,&a);max(a);20 if(x/10!=0)max(x/10);printf(“%d ”,x%10);}

      實驗七 指針

      1.實驗?zāi)康?/p>

      1)通過實驗進(jìn)一步掌握指針的概念、會定義和使用指針變量。2)能正確使用數(shù)組的指針和指向數(shù)組的指針變量。3)能正確使用字符串的指針和指向字符串的指針變量。4)能正確使用指向函數(shù)的指針變量。

      5)了解指向指針的指針的概念及其使用方法。

      2.程序填空

      (一)程序填空:輸入三個整數(shù),要求設(shè)計2個指針變量p1、p2 ,使p1指向這三個數(shù)的最大值,p2指向最小者 ,并輸出最大值和最小值。#include int main(){ int a,b,c, *p1, *p2, *p3;scanf(?%d%d%d?,&a,&b,&c);p1= a>=b?&a:&b;//p1指向a,b中較大者

      if(*p1

      p2= a>=b?&b:&a;//p2指向a,b中較小者

      if(*p2>c)p2=&c;

      printf(?max=%d, min=%dn?, *p1,*p2);return 0;} 運行結(jié)果: 輸入 1 2 3 輸出 max=3, min=1

      (二)程序填空:利用指針,將數(shù)組a中的10個整數(shù)按相反順序存放。源程序如下: #include int main(){ int i,t, a[10],*p,*q;printf(“Input 10 integers:”);for(i=0;i<10;i++)scanf(“%d”, &a[i]);p= &a[0];q= &a[9];//p指向首元素,q指向最后一個元素

      for(;p!=a[5];p++ , q--)//逐對交換對稱元素 { t= *p;*p= *q;*q=t;} for(i=0;i<10;i++)printf(“%d ”, a[i]);printf(“n”);return 0;} 3.實驗程序清單及運行結(jié)果

      以下程序都要求用指針處理。

      課后習(xí)題10.1 輸入三個整數(shù),按由小到大的順序輸出。

      Source

      #include int main(){ void change(int *q1,int *q2,int *q3);int a,b,c,*p1,*p2,*p3;scanf(“%d %d %d”,&a,&b,&c);p1=&a;p2=&b;p3=&c;change(p1,p2,p3);printf(“%d %d %d”,a,b,c);} void change(int *q1,int *q2,int *q3){ void swap(int *pt1,int *pt2);if(*q1>*q2)swap(q1,q2);if(*q1>*q3)swap(q1,q3);if(*q2>*q3)swap(q2,q3);} void swap(int *pt1,int *pt2){ int t=*pt1;*pt1=*pt2;*pt2=t;}

      課后習(xí)題10.2 輸入三個字符串,按由小到大的順序輸出

      Source

      #include #include void swap(char **p1,char **p2){ char *temp;temp=*p1;*p1=*p2;*p2=temp;} int main(){ char str[20],str1[20],str2[20];char *ipoint1,*ipoint2,*ipoint3;char **p1, **p2, **p3;gets(str);gets(str1);gets(str2);ipoint1=str;ipoint2=str1;ipoint3=str2;p1=&ipoint1;p2=&ipoint2;p3=&ipoint3;

      if(strcmp(*p1,*p2)>0)swap(p1,p2);if(strcmp(*p1,*p3)>0)swap(p1,p3);if(strcmp(*p2,*p3)>0)swap(p2,p3);printf(“%sn%sn%sn”,*p1,*p2,*p3);} 課后習(xí)題10.5 有n人圍成一圈,順序排號。從第1個人開始報數(shù)(從1到3報數(shù)),凡報到3的人退出圈子,問最后留下的是原來的第幾號的那位。

      Source

      #include void check(int nub[],int n){ int *pt,i,j,k;for(k=0,i=1;n-k>1;){for(pt=nub;pt<(nub+n);pt++,i++){if(*pt==0){i--;} else if(i%3==0){*pt=0;k++;} } } } main(){ int a[100],*p,n,i;scanf(“%d”,&n);for(p=a,i=1;p

      for(p=a;p

      課后習(xí)題10.7 有一字符串,包含n個字符。寫一函數(shù),將此字符串中從第m個字符開始的全部字符復(fù)制成為另一個字符串。Source

      #include int main(){ int n,m;char a[100],*p;scanf(“%d”,&n);scanf(“%s”,a);scanf(“%d”,&m);printf(“%s”,a+m-1);}

      實驗八 結(jié)構(gòu)體與共用體

      1.實驗?zāi)康?/p>

      1)掌握結(jié)構(gòu)體類型變量的定義和使用。2)掌握結(jié)構(gòu)體類型數(shù)組及指針的定義和使用。3)掌握鏈表的概念,初步學(xué)會對鏈表進(jìn)行操作。

      2.程序填空

      定義一個關(guān)于平面點的結(jié)構(gòu)體類型,并定義一個含5個元素的結(jié)構(gòu)體數(shù)組,用于存放5個平面點;然后輸入這些點的坐標(biāo)值,并統(tǒng)計位于半徑為

      3、以原點為圓心的圓之內(nèi)的點的個數(shù)。#include struct point //定義結(jié)構(gòu)體類型 struct point {

      Double x,y;};int main(){

      int i, num=0;_struct point__ p[5];//定義結(jié)構(gòu)體數(shù)組p printf(“Input 5 points: n”);

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

      scanf(“%lf%lf”, _p[i].x_ , __p[i].y_);//輸入5個點的坐標(biāo)

      for(i=0;i< 5;i++)//統(tǒng)計位于指定圓內(nèi)的點的個數(shù) if(p[i].x*p[i].x+p[i].y*p[i].y < 9)num++;printf(“ num= %d n”, num);

      return 0;} 運行程序,輸入

      1.0 2.1

      -3 4.23

      9.0-8

      4.5-1

      -0.25-1.3

      輸出num= 2

      3.實驗程序清單及運行結(jié)果

      課后習(xí)題11.1 定義一個結(jié)構(gòu)體變量(包括年、月、日)。計算該日在本年中是第幾天,注意閏年問題。

      Source

      #include struct date { int year;int month;int day;};int leap_year(int a);int cal_day(struct date a);int leap_year(int a){ if(a%400==0||(a%4==0&&a%100!=0))return 1;else return 0;} int cal_day(struct date a){ int sum=0,b[]={31,28,31,30,31,30,31,31,30,31,30,31};for(int i=0;i2)sum=sum+a.day+leap_year(a.year);else sum=sum+a.day;return sum;} int main(){ struct date a;int n;scanf(“%d%d%d”,&a.year,&a.month,&a.day);n=cal_day(a);printf(“%dn”,n);}

      課后習(xí)題11.3 現(xiàn)有有N個學(xué)生的數(shù)據(jù)記錄,每個記錄包括學(xué)號、姓名、三科成績。編寫一個函數(shù)input,用來輸入一個學(xué)生的數(shù)據(jù)記錄。編寫一個函數(shù)print,打印一個學(xué)生的數(shù)據(jù)記錄。

      在主函數(shù)調(diào)用這兩個函數(shù),讀取N條記錄輸入,再按要求輸出

      Source

      #include int N;struct Student {

      char hao[50];

      char name[50];

      double score[3];};int main(){ scanf(“%d”,&N);void input(struct Student stu[]);void print(struct Student stu[]);struct Student stu[100],*p=stu;input(p);print(p);return 0;} void input(struct Student stu[]){ int i;for(i=0;i

      scanf(“%s %s %lf %lf %lf”,stu[i].hao,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);} } void print(struct Student stu[]){ int i;for(i=0;i

      printf(“%s,%s,%.0lf,%.0lf,%.0lfn”,stu[i].hao,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);} } 課后習(xí)題11.5

      有N個學(xué)生,每個學(xué)生的數(shù)據(jù)包括學(xué)號、姓名、3門課的成績,從鍵盤輸入N個學(xué)生的數(shù)據(jù),要求打印出3門課的總平均成績,以及最高分的學(xué)生的數(shù)據(jù)(包括學(xué)號、姓名、3門課成績)

      Source

      #include int main(){ struct S {

      char hao[50];

      char name[50];

      double score[3];};struct S stu[100];int N,i,j,sum1,sum2,sum3,max,k;scanf(“%d”,&N);sum1=0;sum2=0,sum3=0;for(i=0;i

      scanf(“%s %s %lf %lf %lf”,stu[i].hao,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);} for(i=0;i

      sum1=stu[i].score[0]+sum1;

      sum2=stu[i].score[1]+sum2;

      sum3=stu[i].score[2]+sum3;} printf(“%.0lf %.0lf %.0lfn”,sum1/N*1.0,sum2/N*1.0,sum3/N*1.0);max=stu[0].score[0]+stu[0].score[1]+stu[0].score[2];for(i=1;i

      if(max<(stu[i].score[0]+stu[i].score[1]+stu[i].score[2]))

      max=stu[i].score[0]+stu[i].score[1]+stu[i].score[2],k=i;} printf(“%s %s %.0lf %.0lf %.0lf”,stu[k].hao,stu[k].name,stu[k].score[0],stu[k].score[1],stu[k].score[2]);}

      課后習(xí)題11.8 已有a、b兩個鏈表,每個鏈表中的結(jié)點包括學(xué)號、成績。要求把兩個鏈表合并,按學(xué)號升序排列。

      Source

      #include #include typedef struct Student { int id;float score;Student *next;}*Stu;void creatLink(Stu stu,int n){ Stu q=stu;for(int i=0;iid,&q->score);if(inext=p;q=p;} } q->next=NULL;} Stu sort(Stu stu1,Stu stu2,int n){ Stu head=(Stu)malloc(sizeof(Student));head->next=stu1;Stu q=stu1;while(q->next){ q=q->next;} q->next=stu2;for(int i=0;inext,t=p->next;for(int j=0;jid < t->id){ q=p;p=t;t=t->next;} else { q->next=t;p->next=t->next;t->next=p;q=t;t=p->next;} } } return head->next;} void print(Stu stu){ Stu p=stu;while(p){ printf(“%d %.0fn”,p->id,p->score);p=p->next;} } int main(){ Stu stu1=(Stu)malloc(sizeof(Student));Stu stu2=(Stu)malloc(sizeof(Student));int m,n;scanf(“%d %d”,&m,&n);creatLink(stu1,m);creatLink(stu2,n);print(sort(stu1,stu2,m+n));}

      第二篇:《Matlab語言》實驗報告

      《Matlab語言》實驗(報告)題庫

      1、TDOA信號分析類

      (1)已給出一段事先采集的信號,該信號為進(jìn)行TDOA定位使用的基本信號,其格式為GPS+IQ + GPS+IQ …,即每包數(shù)據(jù)由GPS頭文件和IQ信號構(gòu)成,GPS頭文件共58B,其數(shù)據(jù)格式為

      $HT,20130114,084556,N3606.82273,E10343.59311,M1538.7,11,0*,每包IQ數(shù)據(jù)共8192B,其數(shù)據(jù)格式為I0,Q0,I1,Q1,I2,Q2…,I2047,Q2047,即I數(shù)據(jù)2048點、Q數(shù)據(jù)2048點交叉出現(xiàn)。換言之,每包數(shù)據(jù)實際內(nèi)容為:$HT,20130114,084556,N3606.82273,E10343.59311,M1538.7,11,0* I0 Q0 I1 Q1 I2 Q2 … I2047 Q2047,程序前期已實現(xiàn)讀取IQ數(shù)據(jù)文件并進(jìn)行關(guān)鍵信息讀取分解,請根據(jù)程序提醒,完成相關(guān)功能(數(shù)據(jù)及程序見“1-實際IQ信號實驗”文件夾)。

      2、TDOA時差估計仿真類

      (2)在TDOA定位技術(shù)中,時差估計是一個非常重要的環(huán)節(jié)。自行仿真2個具有一定時差的信號,用廣義互相關(guān)法(GCC)計算該2個信號的時差,并與設(shè)定時差進(jìn)行對比分析(需給出詳細(xì)過程及適當(dāng)?shù)姆抡鎴D)。

      (3)在TDOA定位技術(shù)中,時差估計是一個非常重要的環(huán)節(jié)。自行仿真2個具有一定時差的信號,用互模糊函數(shù)法計算該2個信號的時差,并與設(shè)定時差進(jìn)行對比分析(需給出詳細(xì)過程及適當(dāng)?shù)姆抡鎴D)。

      (4)在TDOA定位技術(shù)中,時差估計是一個非常重要的環(huán)節(jié)。自行仿真2個具有一定時差的信號,用廣義互相關(guān)(GCC)結(jié)合多項式擬合方法計算該2個信號的時差,并比較廣義互相關(guān)法估計時差和廣義互相關(guān)結(jié)合多項式擬合方法估計時差的結(jié)果,進(jìn)行分析(需給出詳細(xì)過程及適當(dāng)?shù)姆抡鎴D)。

      (5)在TDOA定位技術(shù)中,時差估計是一個非常重要的環(huán)節(jié)。自行仿真2個具有一定時差的信號,自選方法計算該2個信號的時差,并與設(shè)定時差進(jìn)行對比分析(需給出詳細(xì)過程及適當(dāng)?shù)姆抡鎴D)。

      3、TDOA時差估計實測類

      下面三題使用“3-TDOA實測類-數(shù)據(jù)”。

      (6)在TDOA定位技術(shù)中,時差估計是一個非常重要的環(huán)節(jié)。根據(jù)提供的TDOA數(shù)據(jù),用廣義互相關(guān)(GCC)計算該2路信號的時差,統(tǒng)計每包數(shù)據(jù)計算結(jié)果,并分析之(需給出詳細(xì)解決過程及適當(dāng)?shù)姆治鰣D)。

      (7)在TDOA定位技術(shù)中,時差估計是一個非常重要的環(huán)節(jié)。根據(jù)提供的TDOA數(shù)據(jù),用廣義互相關(guān)(GCC)結(jié)合多項式擬合方法計算該2路信號的時差,比較廣義互相關(guān)法估計時差和廣義互相關(guān)結(jié)合多項式擬合方法估計時差的結(jié)果,并分析之(需給出詳細(xì)解決過程及適當(dāng)?shù)姆治鰣D)。

      (8)在TDOA定位技術(shù)中,時差估計是一個非常重要的環(huán)節(jié)。根據(jù)提供的TDOA數(shù)據(jù),自選方法計算該2路信號的時差,統(tǒng)計每包數(shù)據(jù)計算結(jié)果,并分析之(需給出詳細(xì)解決過程及適當(dāng)?shù)姆治鰣D)。

      4、信號頻域分析類

      (9)生成一個帶有噪聲的正弦波信號,信號的頻率、幅度,噪聲的幅度自行設(shè)定。(將帶有噪聲的正弦信號放入for循環(huán)中,利于pause,實現(xiàn)噪聲動態(tài)變化效果,并在for循環(huán)內(nèi)畫出其時域圖和幅頻圖(采樣率和采樣點數(shù)自行設(shè)定),觀察動態(tài)變化情況),最后總結(jié)系統(tǒng)采樣率和采樣點數(shù)對仿真信號效果的影響。

      (10)自行生成一段時域信號,要求在不同的時間,信號具有不同的頻率(即非平穩(wěn)信號),用短時傅里葉變換對其進(jìn)行時頻分析,并呈現(xiàn)時頻分析結(jié)果。

      (11)自行生成一段時域信號,要求在不同的時間,信號具有不同的頻率(即非平穩(wěn)信號),用小波變換對其進(jìn)行時頻分析,并呈現(xiàn)時頻分析結(jié)果。

      5、信號調(diào)制解調(diào)類

      (12)自行產(chǎn)生正弦信號作為基帶信號、載波,試合成AM信號,在AM信號上加高斯白噪聲,并將AM信號解調(diào),畫出各信號(基帶信號、載波、合成的AM信號、解調(diào)后的基帶信號)時域圖及頻譜圖,并對比總結(jié)解調(diào)效果。

      (13)自行產(chǎn)生正弦信號作為基帶信號、載波,試合成FM信號,在FM信號上加高斯白噪聲,并將FM信號解調(diào),畫出各信號(基帶信號、載波、合成的FM信號、解調(diào)后的基帶信號)時域圖及頻譜圖,并對比總結(jié)解調(diào)效果。

      (14)自行產(chǎn)生一個正弦信號,以此為載波,生成一段2ASK信號,其中數(shù)字序列隨機生成,畫出數(shù)字基帶序列、正弦信號、2ASK信號的時域圖。

      (15)自行產(chǎn)生兩個不同頻率的正弦信號,以此為載波,生成一段2FSK信號,其中數(shù)字序列隨機生成,畫出數(shù)字基帶序列、兩個正弦信號、2FSK信號的時域圖。

      (16)用Matlab模擬通信系統(tǒng)收發(fā)過程,要求:發(fā)射站發(fā)射FM調(diào)制信號,接收站接收該信號,并進(jìn)行解調(diào),系統(tǒng)參數(shù)及傳播環(huán)境/過程參數(shù)自定。

      6、信號分離類

      (17)自行生成一個含有3個頻率(信號頻率相近,如200Hz,210Hz,300Hz)的信號,其他參數(shù)自定,直接用FFT難以將不同頻率信號,尤其頻率較近的信號進(jìn)行分離,試用AR等高階功率譜方法,將該信號進(jìn)行分離,并繪制分離前后的頻譜圖(即信號的FFT圖、信號的AR分離圖)。

      (18)自行生成一個含有不同頻率或不同相位的信號,直接用FFT難以將不同頻率信號,尤其頻率較近或同頻率不同相位的信號進(jìn)行分離,試用MUSIC方法,將該信號進(jìn)行分離,并繪制分離前后的頻譜圖(即原信號的FFT圖、信號的MUSIC分離圖),并總結(jié)現(xiàn)象。

      (19)自行產(chǎn)生一段含有低頻、高頻和噪聲成分的信號,嘗試設(shè)計不同的濾波器,將高頻信號及噪聲濾掉,并繪制濾波前后的信號對比圖(含時域、頻域圖)。

      7、深度學(xué)習(xí)類

      (20)設(shè)計一個神經(jīng)網(wǎng)絡(luò)(可以是任意類型的神經(jīng)網(wǎng)絡(luò)),對手寫數(shù)字進(jìn)行分類,要求小組內(nèi)每個成員至少每人手寫一個數(shù)字,然后識別,并分析識別準(zhǔn)確率。

      (21)自行找一個預(yù)訓(xùn)練好的網(wǎng)絡(luò),對日常生活物品進(jìn)行識別,要求小組內(nèi)每個成員拍照1~2個物品,通過網(wǎng)絡(luò)進(jìn)行識別,并分析識別效果。

      第三篇:c語言實驗報告

      學(xué)號:__________ 姓名:__________ 班級:__________ 日期:__________

      指導(dǎo)教師:__________ 成績:__________

      實驗一 上機操作初步和簡單的C程序設(shè)計

      一、實驗?zāi)康?、熟悉C語言運行環(huán)境Turbo C++3.02、會簡單的程序調(diào)試

      3、熟悉C語言各種類型數(shù)據(jù)的輸入輸出函數(shù)的使用方法

      4、掌握順序結(jié)構(gòu)程序設(shè)計

      二、實驗內(nèi)容

      1、上機運行本章3個例題,熟悉所用系統(tǒng)的上機方法與步驟。(習(xí)題1.7)

      2、編寫一個C程序,輸入a、b、c 3個值,輸出其中最大者。(習(xí)題1.6)

      3、設(shè)圓半徑r=1.5,圓柱高h(yuǎn)=3,求圓周長、圓面積、圓球表面積、圓球體積、圓柱體積。用scanf輸入數(shù)據(jù),輸出計算結(jié)果,輸出時要求有文字說明,取小數(shù)點后2位數(shù)字。注意:在Trubo C++ 3.0中不能輸入漢字,只能輸入英文或拼音。(習(xí)題4.8)

      4、運行如下程序,寫出運行結(jié)果。第一┆范文網(wǎng)004km.cn整理該文章,版權(quán)歸原作者、原出處所有...#include

      void main()

      {

      int a=1,b=2;

      a=a+b;b=a-b;a=a-b;

      printf(“%d,%dn”,a,b);

      }

      三、實驗步驟與過程

      四、程序調(diào)試記錄

      第四篇:C語言實驗報告

      實驗一 C程序的運行環(huán)境和運行C程序的辦法

      1.實驗?zāi)康?/p>

      (1)了解所用的計算機系統(tǒng)的基本操作方法,學(xué)會獨立使用該系統(tǒng)。(2)了解在該系統(tǒng)上如何編輯、編譯、連接和運行一個C程序。(3)通過運行簡單的C程序,初步了解C源程序的特點。(2)進(jìn)入所用的集成環(huán)境。

      (3)熟悉集成環(huán)境的界面和有關(guān)菜單的使用方法。(4)輸入并運行一個簡單的、正確的程序。

      ①根據(jù)本書介紹的方法對源程序進(jìn)行編譯,觀察屏幕上顯示的編譯信息。若出錯則返回修改,無錯則連接。② 編譯連接無錯,運行程序,觀察分析運行結(jié)果。(5)輸入并編譯一個有錯誤的C程序。

      (6)輸入并運行一個需要在運行時輸入數(shù)據(jù)的程序。(7)運行一個自己編寫的程序

      心得體會:了解了C程序的運行環(huán)境和運行C程序的辦法。在學(xué)校機房選用的是Turbo C。

      實驗二 數(shù)據(jù)類型、運算符和表達(dá)式

      1.實驗?zāi)康?/p>

      (1)掌握C語言數(shù)據(jù)類型、熟悉如何定義一個整型、字符型和實型的變量,以及對他們的賦值方法。(2)掌握不同數(shù)據(jù)類型之間的賦值規(guī)律。

      (3)學(xué)會使用C的有關(guān)算術(shù)運算符,以及包含這些運算符的表達(dá)式,特別是自加(++)和自減(--)運算符的使用。(4)進(jìn)一步熟悉C程序的編輯、編譯、連接和運行的過程。2.實驗內(nèi)容和步驟(1)輸入并運行下面程序: #include void main(){char c1,c2;c1='a';c2='b';printf(“%c %cn”,c1,c2);} ①運行此程序,結(jié)果為:a b

      ②在上面printf語句下面再增加一個printf語句: printf(“%d %dn”,c1,c2);再運行,并分析結(jié)果,結(jié)果為97 98 ③將第三行改為 int c1,c2;再使之運行,并觀察結(jié)果,結(jié)果為97 98 ④再將第4、5行改為;c1=a;c2=b;再使之運行,并觀察結(jié)果,結(jié)果為運行出錯。⑤再將第4、5行改為:

      (1)檢查所用計算機系統(tǒng)是否已安裝了C編譯系統(tǒng)并確定它所在的子目錄。

      c1=”a”;c2=”b”;再使之運行,并觀察結(jié)果,結(jié)果為404 406 ⑥再將第4、5行改為: c1=300;c2=400;再使之運行,并觀察結(jié)果,結(jié)果為300 400;

      心得體會:在編寫C程序時,有些細(xì)小的錯誤會影響結(jié)果的正確性。所以編寫的時候要仔細(xì)小心。初步編寫完成要回過頭來再檢查一遍

      實驗三 最簡單的C程序設(shè)計

      1.實驗?zāi)康?/p>

      (1)掌握C語言中使用最多的一種語句——賦值語句的使用方法。(2)掌握各種類型數(shù)據(jù)的輸入輸出方法,能正確使用各種格式轉(zhuǎn)換符。2.實驗內(nèi)容和步驟

      (1)通過下面的程序掌握各種格式轉(zhuǎn)換符的正確使用方法。①輸入以下程序 #include void main(){int ‘a(chǎn)’,’b’;float d,e;char c1,c2;double f,g;long m,n;unsigned int p,q;a=61,b=62 c1=a,c2=b d= 3.56,e=-6.87 f= 3157.890121,g= 0.123456789000 m=50000,n=-60000 p=32768,q=40000 printf(“a=%d,b=%dnc1=%c,c2=%cnd=%6.2f,e=%6.2fn”,a,b,c1,c2,d,e);printf(“f=%15.6f,g=%15.12fnm=%ld,n=%ldnp=%u,q=%un”,f,g,m,n,p,q);getch();} ②運行此程序并分析結(jié)果 a=61,b=62 c1=a,c2=b d= 3.56,e=-6.87 f= 3157.890121,g= 0.123456789000 m=50000,n=-60000 p=32768,q=40000 ③在此結(jié)果上,將程序9~14行改為: a=61,b=62

      c1=a,c2=b d= 3.56,e=-6.87 f= 3157.890121,g= 0.123456789000 m=50000,n=-60000 p=32768,q=40000 運行程序,分析結(jié)果a=-15536,b=5536 c1==,c2=> d=3157.89,e= 0.12 f= 3157.890121,g= 0.123456789000 m=50000,n=-60000 p=50000,q=5536 ④改用scanf函數(shù)輸入程序而不用賦值語句,scanf函數(shù)如下

      scanf(“%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u”,&a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,&p,&q)輸入的數(shù)據(jù)如下:

      61,62,a,b,3.56,-6.87,3157,89.121,0.123456789,50000,-60000,37678,40000 運行結(jié)果如下:

      61,62,a,b,3.56,-6.87,3157.890121,0.123456789,50000,-60000,37678,40000 a=61,b=62 c1=a,c2=b d= 3.56,e=-6.87 f= 3157.890121,g= 0.123456789000 m=50000,n=-60000 p=37678,q=40000 ⑤在④的基礎(chǔ)上將printf改為:printf(“a=%d,b=%dnc1=%c,c2=%cnd=%15.6f,e=%15.12fn”,a,b,c1,c2,d,e);printf(“f=%f,g=%fnm=%d,n=%dnp=%d,q=%n”,f,g,m,n,p,q);a=61,b=62 c1=a,c2=b d= 3.560000,e=-6.869999885559 f=3157.890121,g=0.123457 m=-15536,n=0 p=5536,q=-1

      ⑥將p,q改用%o格式符輸出a=61,b=62 c1=a,c2=b d= 3.560000,e=-6.869999885559 f=3157.890121,g=0.123457 m=-15536,n=0 p=12640,q=177777

      ⑦將scanf函數(shù)中的%lf和%ld改為%f和%d,運行程序分析結(jié)果: c1=a,c2=b d= 3.560000,e=-6.869999885559 f=0.000000,g=0.000000

      m=-15536,n=1824 p=5536,q=1983(2)按習(xí)題4.8要求編寫程序,并上機運行。題目為:設(shè)半徑r=1.5,圓柱高h(yuǎn)=3,求圓周長、圓面積、圓球表面積、圓球體積、圓柱體積。用scanf輸入數(shù)據(jù),輸出結(jié)果。輸出時要有文字說明,取小數(shù)點后兩位數(shù)字。#include main(){ float r,h,L,S,S1,V,V1,pi=3.1415926;printf(“r= ”);scanf(“%f”,&r);printf(“h= ”);scanf(“%f”,&h);L=2*pi*r;S=pi*r*r;S1=4*pi*r*r;V=4/3*(pi*r*r*r);V1=S*h;printf(“L=%6.2fnS=%6.2fnS1=%6.2fnV=%6.2fnV1=%6.2fn”,L,S,S1,V,V1);printf(“*********n”);printf(“copyrightn”);printf(“*********n”);getch();結(jié)果:L=9.42 S=7.07 S1=28.26 V=14.13 V1=21.20(3)編程序,用getchar函數(shù)讀入兩個字符c1,c2,然后分別用putchar函數(shù)和printf函數(shù)輸出這兩個字符。

      上機運行程序,比較用printf和putchar函數(shù)輸出字符的特點。代碼:#include void main(){char c1,c2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);printf(“%c,%c”,c1,c2);getch();} 結(jié)果:ab aba,b 比較,一個putchar函數(shù)只可以輸出一個字符,而一個print函數(shù)可以輸出多個字符,并可以用符號連接。

      心得體會:如何在代碼中使用不同的函數(shù)從而簡化代碼,優(yōu)化代碼需要我們多加練習(xí),多加體會。

      實驗四 邏輯結(jié)構(gòu)程序設(shè)計

      1.實驗?zāi)康?/p>

      (1)了解C語言表示邏輯量的方法(以0代表“假”,以非0代表“真”)。

      (2)學(xué)會正確使用邏輯運算符和邏輯表達(dá)式。(3)熟練掌握if語句和switch語句。(4)結(jié)合程序掌握一些簡單的算法。(5)學(xué)習(xí)調(diào)試程序。2.實驗內(nèi)容

      (1)習(xí)題5.5。有一函數(shù): y=x

      (x<1)y=2x-1

      (1≦x<10)y=3x-11(x≥10)用scanf函數(shù)輸入x的值,求y的值。

      運行程序,輸入的x(分別為x<1,1~10,x≥10這3中情況),檢查輸出值的準(zhǔn)確性。# include void main(){ int x,y;printf(“x:”);scanf(“%d”,&x);if(x<1){y=x;printf(“x=%3d, y=x=%dn”,x,y);} else if(x<10){y=2*x-1;printf(“x=%3d,y=2*x-1=%dn”,x,y);} else {y=3*x-11;printf(“x=%3d,y=3*x-11=%dn”,x,y);

      } } 運行結(jié)果:x: ⑵ 給出一個百分制績,要求輸入成績ABCDE。90分以上的為A,81~89分為B,70~79分為C,60~69分為D,60分以下的為E。① 實現(xiàn)編號程序,要求分別用IF和switch語句來實現(xiàn)。運行結(jié)果,并檢查結(jié)果。

      ② 在運行一次,輸入值為負(fù)值,這顯然時輸入錯誤,修改程序,是只能正確處理結(jié)果,當(dāng)輸入數(shù)據(jù)>100或<0是,通知用戶輸入錯誤,程序結(jié)束。# include void main(){float score;char grade;printf(“input student's score:”);scanf(“%f”,&score);switch((int)(score)){case 100: case 90:grade='A';break;case 80:grade='B';break;

      case 70:grade='C';break;case 60:grade='D';break;case 50: case 40: case 30: case 20: case 10: case 00:grade='E';break;} printf(“score is %5.1fthe grade is %cn”,score,grade);getch();}(3)給一個不多于5為的正整數(shù),要求1:起哦出他是幾位數(shù),2:粉筆輸出每一位數(shù)字3;按逆順序輸出各個數(shù)字,例如原數(shù)321,應(yīng)輸出123,·要處理的數(shù)為1位正整數(shù); ·要處理的數(shù)為2位正整數(shù); ·要處理的數(shù)為3位正整數(shù); ·要處理的數(shù)為4位正整數(shù); ·要處理的數(shù)為5位正整數(shù)。

      除此之外,程序還應(yīng)當(dāng)對不合法的輸入作必要的處理,例如: ·輸入負(fù)數(shù);

      ·輸入的數(shù)超過5位(如123456)代碼:#include void main(){long x;int a,b,c,d,e;scanf(“%ld”,&x);if(x>=100000||x<0){printf(“輸入錯誤”);} else if(x>=0&&x<10){printf(“它是一位數(shù),數(shù)字為:%d”,x);} else if(x>=10&&x<100){a=x%10;b=x/10;printf(“它是二位數(shù),數(shù)字為:%d,%d”,a,b);} else if(x>=100&&x<1000){a=x%10;b=x/10%10;c=x/100;printf(“它是三位數(shù),數(shù)字為:%d,%d,%d”,a,b,c);} else if(x>=1000&&x<10000){a=x%10;b=x/10%10;c=x/100%10;d=x/1000;printf(“它是四位數(shù),數(shù)字為:%d,%d,%d,%d”,a,b,c,d);} else if(x>=10000&&x<100000){a=x%10;b=x/10%10;c=x/100%10;d=x/1000%10;e=x/10000;printf(“它是五位數(shù),數(shù)字為:%d,%d,%d,%d,%d”,a,b,c,d,e);} getch();}

      結(jié)果:與預(yù)期相符。

      (4)輸入4個整數(shù),要求按由小到大順序輸出。

      在得到正確結(jié)果后,修改程序使之按由大到小順序輸出。代碼1:#include void main(){int a,b,c,d,t;scanf(“%d,%d,%d,%d”,&a,&b,&c,&d);if(a>b){t=a;a=b;b=t;} if(a>c){t=a;a=c;c=t;} if(a>d){t=a;a=d;d=t;} if(b>c){t=b;b=c;c=t;} if(b>d){t=b;b=d;d=t;} if(c>d){t=c;c=d;d=t;} printf(“%d,%d,%d,%d”,a,b,c,d);getch();} 代碼2: #include void main(){int a,b,c,d,t;scanf(“%d,%d,%d,%d”,&a,&b,&c,&d);if(a

      實驗五 循環(huán)控制

      1.實驗?zāi)康?/p>

      (1)熟悉掌握用while語句、do-while語句和for語句實現(xiàn)循環(huán)的方法。

      (2)掌握在程序設(shè)計中用循環(huán)的方法實現(xiàn)一些常用算法(如窮舉、迭代、遞推等)。(3)進(jìn)一步學(xué)習(xí)調(diào)試程序。2.實驗內(nèi)容

      編程序并上機調(diào)試運行。

      (1)輸入兩個正整數(shù)m和n,求他們的最大公約數(shù)和最小公倍數(shù)

      在運行時,輸入的值m>n,觀察結(jié)果是否正確。

      再輸入時,使m

      修改程序,不論m和n為何值,都能得到正確結(jié)果。代碼:#include #include void main(){int m,n,i;scanf(“%d,%d”,&m,&n);for(i=fabs(n);i>=1;i--){if(n%i==0&&m%i==0)break;} printf(“%dn”,i);for(i=1;i<=fabs(m*n);i++){if(i%n==0&&i%m==0)break;} if(m*n<0)printf(“%dn”,-i);else printf(“%d”,i);getch();} 結(jié)果:與預(yù)期結(jié)果相符。

      (2)輸入一行字符,分別統(tǒng)計出其中的英文字母、空格、數(shù)字和其他字符的個數(shù)。

      在得到正確結(jié)果后,請修改程序使之能分別統(tǒng)計大小寫字母、空格、數(shù)字和其他字符的個數(shù)。代碼:#include void main(){char s;int a,b,c,d,e;a=0;b=0;c=0;d=0;e=0;while((s=getchar())!='n'){if(s>='A'&&s<='Z')a++;else if(s>='0'&&s<='9')b++;else if(s==' ')c++;else if(s>='a'&&s<='z')e++;else d++;} printf(“%d,%d,%d,%d,%d”,a,b,c,d,e);getch();} 結(jié)果:與預(yù)期結(jié)果相符

      (3)用牛頓迭代法求方程2x3-4x2+3x=6在1.5附近的根。

      在得到正確結(jié)果后。請修改程序使所設(shè)的x初始值由1.5改變?yōu)?00、1000、10000,在運行,觀察結(jié)果,分析不同的x處置對結(jié)果有沒有影響,為什么?

      修改程序,使之能輸出迭代的次數(shù)和每次迭代的結(jié)果,分析不同的x初始值對迭代的次數(shù)有無影響。代碼:#include #include void main(){float x1,x0,f,f1;scanf(“%f”,&x1);do {x0=x1;f=((2*x0-4)*x0+3)*x0-6;f1=(6*x0-8)*x0+3;x1=x0-f/f1;} while(fabs(x1-x0)>=1e-5);printf(“%5.2fn”,x1);getch();} 結(jié)果:與預(yù)期結(jié)果相符,x的初始值對于迭代沒有影響。

      (4)猴子吃桃問題。猴子第一天摘下若干個桃子,當(dāng)即吃了一半,還不過癮,又多吃了一個。第二天早上又將剩下的桃子吃掉了一半,又多吃了一個。以后每天早上都吃了前天剩下的一半零一個。到第10天早上再想吃時,見只剩一個桃子了。求第一天共摘了多少桃子。在得到正確結(jié)果后,修改題目,改為猴子每天吃了前一天的一半后,再吃兩個。請修改程序并運行,檢查結(jié)果是否正確。代碼:#include void main(){int s,i;s=1;for(i=1;i<10;i++)s=2*(s+1);printf(“%d”,s);getch();} 結(jié)果1534

      代碼:#include void main(){int s,i;s=1;for(i=1;i<10;i++)s=2*(s+2);printf(“%d”,s);getch();} 結(jié)果2556 心得體會:循環(huán)控制也很難,還要多加練習(xí)。

      實驗六 數(shù)組

      1.實驗?zāi)康?/p>

      (1)掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法;(2)掌握字符數(shù)組和字符串函數(shù)的使用;(3)掌握與數(shù)組有關(guān)的算法(特別是排序算法)。2.實驗內(nèi)容

      編程序并上機調(diào)試運行

      (1)用選擇法對10個整數(shù)排序。10個整數(shù)用scanf函數(shù)輸入 代碼:#include void main(){int a[11],i,j,min,t;for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(i=0;i<10;i++)printf(“%d”,a[i]);for(i=0;i<9;i++){min=i;for(j=i+1;j<10;j++)if(a[j]

      (1)有15個數(shù)存放在一個數(shù)組中,輸入一個數(shù),要求用折半查找法找出該數(shù)組是數(shù)組中第幾個元素的值。如果該數(shù)不在數(shù)組中,則輸出“無此數(shù)”。以15個數(shù)用賦初值的方法在程序中給出。要找的數(shù)用scanf函數(shù)輸入。代碼:#include

      void main(){int a[15],i,x,min,max,sign,loca,mid;for(i=0;i<15;i++)scanf(“%d”,&a[i]);for(i=0;i<15;i++)printf(“%3d”,a[i]);scanf(“%d”,&x);max=14;min=0;sign=0;if(xa[14])loca=-1;while((!sign)&&(min<=max)){mid=(max+min)/2;if(x==a[mid]){loca=mid;printf(“%d”,loca+1);sign=1;} else if(x

      (2)將兩個字符串連接起來,不要用strcat函數(shù)。代碼:#include void main(){char str1[40],str2[40];int i,j;i=0;j=0;scanf(“%s”,str1);scanf(“%s”,str2);while(str1[i]!='