版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
實(shí)驗(yàn)三
C基本數(shù)據(jù)類型及運(yùn)算1.編程:根據(jù)需要定義相關(guān)變量,鍵盤輸入10.0、20.6、5.0三個實(shí)數(shù)分別賦給相關(guān)三個變量,輸出該3個變量的和s、乘積p和平均值a。
2.編程:輸入球的半徑,計(jì)算球體表面積和球體積。
3.編程:定義6個變量,通過鍵盤將“10,
-10,
40000,
a,
3.14,
hello”這六個值分別賦給相應(yīng)變量,然后在屏幕上輸出變量的值(每行輸出一個變量)。
4.編程:從鍵盤接收1個字符給變量s1,1個字符串(允許帶有空格)給字符數(shù)組s2,輸出字符變量s1的ASCII碼值及字符數(shù)組s2中的字符串。
5.編程:從鍵盤輸入二個整數(shù)分別賦給整型變量a、b,將它們按由小到大的順序輸出。
6.編程:調(diào)用標(biāo)準(zhǔn)庫函數(shù)sin(x)計(jì)算6800的正弦值(此題為選做)。
7.編程:鍵盤輸入一個實(shí)數(shù)賦給變量x,計(jì)算y=x*x*x+x*x+x的值,分別輸出y值、y值的整數(shù)部分和小數(shù)部分(此題為選做)。
8.編程:鍵盤輸入四個整數(shù)分別賦給整型變量a、b、c、d,用三目運(yùn)算方法將它們按由大到小的順序輸出(此題為選做)。1.#include<stdio.h>main(){floatx,y,z,s,p,a;scanf("x=%fy=%fz=%f",&x,&y,&z);s=x+y+z;p=x*y*z;a=s/3;printf("s=%f,p=%f,a=%f",s,p,a);}2.#include<stdio.h>main(){floatr,s,v;printf("inputr");scanf("%f",&r);s=4*3.14*r*r;v=4/3*3.14*r*r*r;printf("s=%f,v=%f",s,v);}3.#include<stdio.h>main(){inta,b;longc;chard,st[6];floate;scanf("%d%d%ld%c%f%s",&a,&b,&c,&d,&e,st);printf("a=%d\n,b=%d\n,c=%d\n,d=%c\n,e=%f\n,ch=%s",a,b,c,d,e,st);}4.#include<stdio.h>main(){chars1,s2[6];scanf("%c%s",&s1,s2);printf("s1=%d,s2=%s",s1,s2);}5.#include<stdio.h>main(){inta,b;scanf("a=%db=%d",&a,&b);if(a<b)printf("a=%db=%d",a,b);elseprintf("b=%da=%d",b,a);}6.#include<math.h>#include<stdio.h>main(){floata,b;scanf("%f",&a);b=sin(a);printf("%f",b);}7.#include<stdio.h>main(){floatx,y,b;inta;scanf("%f",&x);y=x*x*x+x*x+x;a=(int)y;b=y-a;printf("%f\n%d\n%f\n",y,a,b);}實(shí)驗(yàn)四
C分支結(jié)構(gòu)程序設(shè)計(jì)1.編程:從鍵盤輸入一個字符,如是大寫字母,則輸出相應(yīng)小寫字母;如是小寫字母,則原樣輸出;其它字符輸出“Notletter!”。
2.編程:判斷輸入的正整數(shù)是否既是3又是5的整數(shù)倍。若是,輸出Yes,否則輸出No。
3.編程:從鍵盤輸入三個整數(shù),分別賦給變量a,b,c,輸出其中的最大值(要求不改變a、b、c的值)。
4.編程:用scanf輸入任意兩個數(shù)分別賦給變量a、b,若a大于等于b,則直接輸出a、b,否則將a、b的值交換(即a的原值放入b中,b的原值放入a中)后再輸出。
5.編程:輸入整數(shù)a和b,若a2+b2大于100,則輸出a2+b2百位以上的數(shù)字,否則輸出兩數(shù)之和。
6.編程:從鍵盤輸入三個整數(shù),分別賦給變量a,b,c,請按從小到大的順序依次輸出a、b、c(要求不改變a、b、c的值)。
7.編程:從鍵盤輸入三個整數(shù),分別賦給變量a,b,c,請按從小到大的順序依次將這三個數(shù)存放于a、b、c中,最后輸出a、b、c。
8.編程:由系統(tǒng)生成一個10以內(nèi)的隨機(jī)整數(shù),用戶從鍵盤上輸入一個10以內(nèi)的整數(shù),如果兩者相等輸出“OK”,否則輸出“ERROR”。
注:隨機(jī)數(shù)的生成必須包含頭文件#include<stdlib.h>、#include<time.h>,必須用初始化語句srand((unsigned)time(NULL));,表達(dá)式rand()%a+1的值為1~a內(nèi)的隨機(jī)整數(shù)1.#include<stdio.h>main(){charx;scanf("%c",&x);if(x>='a'&&x<='z')printf("%c",x);elseif(x>='A'&&x<='Z')printf("%c",x+32);elseprintf("Notletter!");}2.#include<stdio.h>main(){intx;scanf("%d",&x);if(x>0){if(x%3==0&&x%5==0)printf("Yes\n");elseprintf("No\n");}elseprintf("Error!");}3.#include<stdio.h>main(){inta,b,c,max;scanf("%d%d%d",&a,&b,&c);max=a>b?a:b;max=max>c?max:c;printf("a=%d,b=%d,c=%d,max=%d",a,b,c,max);}4.#include<stdio.h>main(){floata,b;scanf("%f%f",&a,&b);if(a<b){a=a+b;b=a-b;a=a-b;};printf("a=%f,b=%f\n",a,b);}5.#include<stdio.h>main(){inta,b,t,r,s;scanf("%d%d",&a,&b);s=a+b;r=a*a+b*b;t=r/100;if(r>100)printf("%d",t);elseprintf("%d",s);}6.#include<stdio.h>intmain(){inta,b,c,d,max,min;scanf("%d%d%d",&a,&b,&c);if(a>=b){max=a;min=b;}else{max=b;min=a;}if(c>=max)max=c;if(c<=min)min=c;d=a+b+c-min-max;printf("%d%d%d\n",min,d,max);}7.#include<stdio.h>main(){inta,b,c,d;scanf("%d%d%d",&a,&b,&c);if(a>=b){d=a;a=b;b=d;}elseif(b>=c){d=b;b=c;c=d;}printf("a=%db=%dc=%d",a,b,c);}8.#include<stdio.h>#include<stdlib.h>#include<time.h>main(){inta,b;srand((unsigned)time(NULL));b=rand()%10+1;scanf("%d",&a);printf("a=%d,隨機(jī)數(shù)b=%d\n",a,b);if(a==b)printf("OK!\n");elseprintf("ERROR!\n");}實(shí)驗(yàn)五
C多分支結(jié)構(gòu)程序設(shè)計(jì)*1.編程:計(jì)算獎學(xué)金ss的值,已知獎學(xué)金ss與成績s的關(guān)系為:
具體要求:
(1)用if語句實(shí)現(xiàn)分支結(jié)構(gòu)的編程。
(2)s為整型,ss要求精確到小數(shù)點(diǎn)后二位。
(3)用scanf函數(shù)給s賦值,且輸入前有相應(yīng)提示。
(4)結(jié)果輸出時采用以下形式:
成績s=具體值,獎學(xué)金ss=具體值
2.
設(shè)函數(shù)f(x)如下,求函數(shù)函數(shù)法f(x)的值。
具體要求:
(1)用條件表達(dá)式編程。
(2)用if語句編程。
(3)用scanf函數(shù)給自變量賦值,且輸入前有相應(yīng)提示。
(4)結(jié)果輸出時采用以下形式:
x=具體值,f(x)=具體值
(5)給出你所使用的測試用例。
提示:
按C的語法規(guī)則,標(biāo)識符由字母、數(shù)字、下劃線組成,不能將f(x)作為變量名,本題中,函數(shù)名可起為f或y等。但作為非格式控制字符,f(x)完全可以出現(xiàn)在printf函數(shù)的雙引號內(nèi)。
3.編程:輸入一個整數(shù),判斷它能否被3,5,7整除,并輸出以下信息之一:
(1)能同時被3,5,7整除。
(2)能被其中兩數(shù)整除(指出是哪兩個數(shù))。
(3)能被其中一個數(shù)(指出是哪一個數(shù))整除。
(4)不能被3,5,7任一個數(shù)整除。
4.編程:用switch語句編寫一個簡單的計(jì)算器程序,輸入格式為:data1opdata2。其中data1和data2為參加運(yùn)算的兩個數(shù);op為運(yùn)算符,取值只能是+、-、*、/。
5.編程:計(jì)算你的出生日期是星期幾。
(1)通過鍵盤輸入你出生那一年的元旦是星期幾
(2)通過鍵盤輸入你的出生日期
(3)輸出結(jié)果1.#include<stdio.h>main(){ints;floatss;printf("Pleaseinputs\n");scanf("%d",&s);if(s<0||s>100)printf("ERROR!\n");else{if(s>=0&&s<80)ss=0;elseif(s>=80&&s<90)ss=100+s;elseif(s>=90&&s<=100) ss=200+s*3/2;printf("成績s=%d,獎學(xué)金ss=%0.2f\n",s,ss);}}2.#include<stdio.h>main(){floatx;intf;printf("Pleaseinputx\n");scanf("%f",&x);if(x==0)f=0;elsef=(x>0)?1:-1;printf("x=%f,f(x)=%d\n",x,f);}3.#include<stdio.h>main(){intx,a,b,c;printf("請輸入一個整數(shù)x");scanf("%d",&x);a=x%3;b=x%5;c=x%7;if(a==0&&b==0&&c==0)printf("%d能同時被3,5,7整除\n",x);elseif(a==0&&b==0)printf("%d能被3,5整除\n",x);elseif(a==0&&c==0)printf("%d能被3,7整除\n",x); elseif(b==0&&c==0)printf("%d能被5,7整除\n",x); elseif(a==0)printf("%d能被3整除\n",x); elseif(b==0)printf("%d能被5整除\n",x); elseif(c==0)printf("%d能被7整除\n",x); elseprintf("%d不能被3,5,7任意一個數(shù)整除\n",x);}4.#include<stdio.h>main(){charop;floatd1,d2;printf("請輸入算式");scanf("%f%c%f",&d1,&op,&d2);switch(op){case'+':printf("%g+%g=%g\n",d1,d2,d1+d2);break;case'-':printf("%g-%g=%g\n",d1,d2,d1-d2);break;case'*':printf("%g*%g=%g\n",d1,d2,d1*d2);break;case'/':printf("%g/%g=%g\n",d1,d2,d1/d2);break;}}5.#include<stdio.h>main(){intx,m,d;printf("請輸入你出生那年元旦的星期(1至7):\n");printf("請輸入你的出生日期(mm/dd):\n");scanf("%d,%d,%d",&x,&m,&d);switch((m*30+d)/7){case0:printf("你出生那天為星期%d",x);break;case1:printf("你出生那天為星期%d",x+1);break;case2:printf("你出生那天為星期%d",x+2);break;case3:printf("你出生那天為星期%d",x+3);break;case4:printf("你出生那天為星期%d",x+4);break;case5:printf("你出生那天為星期%d",x+5);break;case6:printf("你出生那天為星期%d",x+6);break;}}實(shí)驗(yàn)六
C循環(huán)結(jié)構(gòu)程序設(shè)計(jì)1.編程:輸出200以內(nèi)所有能被7整除的數(shù)。
2.編程:求出1~1000之間能被13整除的最大的那個數(shù)。
3.編程:找出若干個非零數(shù)中的最小值m以及它們的平均值a。
要求:若干個數(shù)由鍵盤輸入,每次輸入一個賦給變量x,x為零時,結(jié)束輸入。
4.編程:求兩個正整數(shù)m、n之間所有奇數(shù)之和x與偶數(shù)之和y。
要求:
(1)m、n的值由鍵盤輸入。
(2)輸入時,允許用戶隨意先輸入大的或小的整數(shù)。
5.編程:計(jì)算函數(shù)y的值。要求鍵盤接收自變量x的值,若x的值不為零,計(jì)算函數(shù)y的值并輸出,再從鍵盤接收下一個x的值,……,直到x的值為零,顯示“ThankYou,Bye!”,爾后結(jié)束程序,已知函數(shù)y與自變量x的關(guān)系為:
6.編程:計(jì)算π的近似值,π的計(jì)算公式為:
要求:
(1)n值由鍵盤輸入。
(2)分別輸出當(dāng)n為10、100、1000時的計(jì)算結(jié)果。
(3)輸出時要求每行顯示一組n、π的值,每行形式如下:
n=具體值,π=具體值
7.我國現(xiàn)有人口13億,設(shè)年增長率為1%,編寫程序,計(jì)算多少年后增加到20億。
8.求解愛因斯坦數(shù)學(xué)題。有一條長階梯,若每步跨2階,則最后剩余1階;若每步跨3階,則最后剩2階;若每步跨5階,則最后剩4階;若每步跨6階,則最后剩5階;若每步跨7階,最后才正好一階不剩。請問,這條階梯最少共有多少階?
9.每個蘋果0.8元,第一天買2個蘋果,第二天開始,每天買前一天的2倍,直至購買的蘋果個數(shù)達(dá)到不超過100的最大值。編程:求每天平均花多少錢?(此題為選做)
1.#include<stdio.h>main(){inti;for(i=1;i<=200;i++){if(i%7!=0)continue;printf("%d",i);}}2.#include<stdio.h>main(){inti,max=0;for(i=0;i<=1000;i++){if(i%13!=0)continue;if(max<i)max=i;}printf("max=%d\n",max);}3.#include<stdio.h>main(){inti;floatx,m,s,a;scanf("%f",&x);if(x!=0){m=x;s=x;}for(i=1;;i++){scanf("%f",&x);if(x==0)break;s=s+x;if(m>x)m=x;}a=s/i;printf("最小值m=%f,平均值a=%f",m,a);}4.#include<stdio.h>voidmain(){inti,m,n,t,x=0,y=0;scanf("%d%d",&m,&n);if(m>n){t=m;m=n;n=t;}for(i=m;i<=n;i++)if(i%2)x+=i;elsey+=i;printf("x=%d\n",x);printf("y=%d\n",y);}5.#include<stdio.h>main(){floatx,y;printf("inputx:");scanf("%f",&x);for(;x>=0;){if(x>0&&x<100){y=3*x+1;printf("%f",y);}elseif(x>=100){y=x*x-1;printf("%f",y);}else{printf("thankyoubey!");break;}scanf("%f",&x);}}6.#include<stdio.h>main(){intn,i;doublet,sum;printf("請輸入n的值\n");scanf("%d",&n);sum=2;i=1;t=2;while(i<n){t=t*(2*i)*(2*i)/(2*i-1)/(2*i+1);i=i+1;}printf("n=%d,π=%f\n",n,t);}7.#include<stdio.h>main(){doublet=13,s=0;while(t<=20){t=t*(1+0.01);s++;}printf("需要經(jīng)過%lf年",s);}8.#include<stdio.h>main(){intx=7;while(!(x%2==1&&x%3==2&&x%5==4&&x%6==5)){x=x+7;}printf("%d\n",x);}9.#include<stdio.h>main(){floats=0;intn=1,p=0,d=0;do{d++;n=n*2;p=p+n;}while(p+n*2<=100);s=p*0.8/d;printf("每天平均花%g元錢!\n",s);}實(shí)驗(yàn)七
C多重循環(huán)結(jié)構(gòu)程序設(shè)計(jì)1.編程:輸出100以內(nèi)個位數(shù)為6且能被3整除的所有數(shù)。
2.編程:鍵盤輸入6位學(xué)生的5門課成績,分別統(tǒng)計(jì)出每個學(xué)生的平均成績。
3.編程:輸入一個正整數(shù),統(tǒng)計(jì)該數(shù)的各位數(shù)字中零的個數(shù),并求各位數(shù)字中的最大者。
4.編程:分別用dowhile、while、for三種循環(huán)結(jié)構(gòu)求:1!+2!+3!+...+n!,要求n的值由鍵盤輸入。
5.編程:計(jì)算100至1000之間有多少個數(shù)其各位數(shù)字之和是5。
6.編程:從鍵盤輸入的10個整數(shù)中,找出第一個能被7整除的數(shù)。若找到,輸出此數(shù)后退出;若未找到,輸出“notexist”。
7.編程:輸出1至100之間滿足如下條件的數(shù):各位數(shù)的乘積大于各位數(shù)的和。
8.編程:將整數(shù)316表示為兩個加數(shù)的和,使這兩個加數(shù)分別能被13和11整除。
9.編程:打印出所有的"水仙花數(shù)"。所謂的"水仙花數(shù)"是指一個3位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。例如,153是一個"水仙花數(shù)",因?yàn)橛?53=1*1*1+5*5*5+3*3*3。
10.編程:一條有10個車站的鐵路線,共需要準(zhǔn)備多少種車票?1.#include<stdio.h>main(){inti;for(i=1;i<=100;i++){if(i%10==6&&i%3==0)printf("%d",i);}}2.#include<stdio.h>main(){inti,j,a[6][5];floats;for(i=0;i<6;i++){s=0;for(j=0;j<5;j++){printf("請輸入第%d個學(xué)生的第%d門成績",i+1,j+1);scanf("%d",&a[i][j]);s=s+a[i][j];}s=s/5;printf("第%d個學(xué)生平均成績?yōu)?f\n",i+1,s);}}3.#include<stdio.h>main(){intx,i,max,t;i=0;max=0;scanf("%d",&x);do{t=x%10;if(t==0)++i;elseif(max<t)max=t;x=x/10;}while(x);printf("i=%d,max=%d",i,max);}4.#include<stdio.h>main(){intn,i,a,s=0;printf("請輸入n:");scanf("%d",&n);a=1;for(i=1;i<=n;i++){a=a*i;s=s+a;}printf("s=%d\n",s);}#include<stdio.h>main(){intn,i=1,a=1,s=0;printf("請輸入n:");scanf("%d",&n);while(i<=n){a=a*i;s=s+a;i++;}print("s=%d",s);}#include<stdio.h>main(){intn,i=1,a=1,s=0;printf("請輸入n:");scanf("%d",&n);do{a=a*i;s=s+a;i++;}while(i<=n);printf("s=%d",s);}5.voidmain(){inti,s,k,count=0;for(i=100;i<1000;i++){s=0;k=i;while(k){s=s+k%10;k=k/10;}if(s!=5)continue;elsecount++;}printf("%d\n",count);}6.#include<stdio.h>main(){intx,i;printf("請輸入10個整數(shù):");for(i=1;i<=10;i++){scanf("%d",&x);if(x%7==0){printf("firstnumberis%d",x);break;}}if(i>10)printf("notexist!");}7.#include<stdio.h>main(){intn,k=1,s=0,m;for(n=1;n<=100;n++){k=1;s=0;m=n;while(m>=1){k*=m%10;s+=m%10;m=m/10;}if(k>s) printf("%d\n",n);}}8.#include<stdio.h>main(){inti=0,j,k;do{i++;k=316-13*i;}while(k%11);j=k/11;printf("316=13*%d+11*%d\n",i,j);}9.#include<stdio.h>main(){inti,j,k,n;for(n=100;n<1000;n++){i=n/100;j=(n-i*100)/10;k=n%10;if(i*i*i+j*j*j+k*k*k==n) printf("%d\n",n);}}實(shí)驗(yàn)八
C程序控制結(jié)構(gòu)綜合應(yīng)用1.編程計(jì)算:
s=1+12+123+1234+12345+123456+1234567。
2.編程:找出1至99之間的全部同構(gòu)數(shù)。所謂同構(gòu)數(shù)是這樣一組數(shù):它出現(xiàn)在其平方數(shù)的右邊。例如:5是25右邊的數(shù),25是625右邊的數(shù),5和25都是同構(gòu)數(shù)。
3.若用0至9之間不同的三個數(shù)構(gòu)成一個三位數(shù),編程統(tǒng)計(jì)共有多少種方法。
4.編程:鍵盤輸入一個不多于5位的正整數(shù),要求:(此題為選做)
(1)
求它是幾位數(shù)
(2)
逆序打印出各位數(shù)字。如原數(shù)為123,輸出則為321。
5.編程:找出以下疑案的作案人(此題為選做)
已知該案涉及6個嫌疑人A、B、C、D、E、F,并且:
(1)
A、B至少有一人作案。
(2)
A、E、F這3人中至少有2人參與作案。
(3)
A、D不可能是同案犯。
(4)
B、C或同時作案,或與本案無關(guān)。
(5)
C、D中有且僅有一人作案。
(6)
如果D沒有作案,則E也不可能參與作案。
6.編程:輸出下列形式的楊輝三角形的前10行(此題為選做)
1
11
121
1331
14641
……1.#include<stdio.h>main(){ints=0,i=1,t=0;while(i<10){t=t*10+i;s+=t;i++;}printf("s=%d\n",s);}2.#include<stdio.h>main(){inti;for(i=1;i<=99;i++)if(i*i%10==i||i*i%100==i)printf("%d\n",i);}3.#include<stdio.h>main(){inti,j,k,count=0; for(i=1;i<=9;i++) for(j=0;j<=9;j++) if(i==j)continue; elsefor(k=0;k<=9;k++) if(k!=i&&k!=j)count++; printf("%d\n",count);}實(shí)驗(yàn)九
C的數(shù)組1.編程實(shí)現(xiàn):輸入一個正整數(shù)n(1<n≤10),再輸入n個整數(shù),把這些數(shù)逆序存放到數(shù)組中再按順序輸出。
例如:輸入5,再輸入三個數(shù)8、23、1、7、19,則輸出為:19、7、1、23、8。
2.編程實(shí)現(xiàn):輸入10個正整數(shù),將它們中的最小值與第一個數(shù)交換,最大值與最后一個數(shù)交換,然后輸出交換后的10個數(shù)。
3.編程實(shí)現(xiàn):已知二次等差數(shù)列的前4項(xiàng)為2,5,10,17,請定義一維整型數(shù)組存儲該數(shù)列的前20項(xiàng),并每5個數(shù)為一行輸出該數(shù)列的前20項(xiàng)。
4.已知一組整型數(shù)據(jù)已按從小到大排列好,現(xiàn)任意輸入一個整數(shù),請按原來排序的規(guī)律將它插入到數(shù)組中(例如:原來的一組整數(shù)為1,3,5,8,9,若輸入的整數(shù)是7,則最終的結(jié)果為:1,3,5,7,8,9),請編程實(shí)現(xiàn)。
5.編程:將一個4×4的整型矩陣元素按副對角線(右上到左下)互換。
要求:
(1)鍵盤輸入矩陣各元素的值。
(2)互換前,按矩陣形式輸出矩陣。
(3)互換后,按矩陣形式輸出矩陣。
6.求一個4×4的整數(shù)矩陣的副對角線(右上到左下)上所有奇數(shù)的和sum及偶數(shù)的平均值ave。
要求:結(jié)果保留2位小數(shù)
7.通過循環(huán)按行順序?yàn)橐粋€5×5的二維數(shù)組a賦1到25的自然數(shù),然后輸出該數(shù)組的左下半角元素的值和它們之和。
8.定義一個實(shí)數(shù)型數(shù)組,將10個實(shí)數(shù)輸入到數(shù)組中,編程實(shí)現(xiàn)任一塊區(qū)間所有元素的平均值,即輸入兩整數(shù)m,n,計(jì)算出數(shù)組中第m個元素開始的后n個元素的平均值,包括第m個元素(若n值過大,即個數(shù)太多,超過數(shù)組的最后一個元素,則統(tǒng)計(jì)到最后一個元素)。
例如:數(shù)組元素為1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,輸入3,5,則輸出5.0。
9.一個整型數(shù)組有10個元素,編寫程序刪除所有值為n的元素。如:數(shù)組中為1,3,2,4,2,7,9,0,2,5,n的值為2,刪除后輸出數(shù)組元素應(yīng)該為1,3,4,7,9,0,5。(此題為選做)
10.定義兩個N行N列的二維數(shù)組a、b,編寫程序,將a數(shù)組最后一行放到b數(shù)組的第0列中,把a(bǔ)數(shù)組中的第0行放到b數(shù)組的最后一列中,b所指二維數(shù)組中其他元素的數(shù)據(jù)不變。(此題為選做)
11.試編程實(shí)現(xiàn)如下功能:先定義一個4行5列的數(shù)組(矩陣),調(diào)用庫函數(shù)rand()隨機(jī)產(chǎn)生20-50之間的整數(shù)給數(shù)組元素賦值,再將矩陣中第二列與第四列的元素互換。要求先輸出原數(shù)組,再輸出交換后的數(shù)組(rand函數(shù)的使用請參閱教材259頁)。(此題為選做)1.#include<stdio.h>main(){inta[10],n,i;scanf("%d",&n);for(i=n-1;i>=0;i--)scanf("%d",&a[i]);for(i=0;i<n;i++)printf("%d",a[i]);printf("\n");}2.#include<stdio.h>main(){intn,i,a[10],max,min,t,r,p;scanf("%d",&n);for(i=1;i<=n;i++)scanf("%d",&a[i]);min=a[1];for(i=1;i<=n;i++){if(a[i]<a[1]){min=a[i];r=i;}}t=a[1],a[1]=min,a[r]=t;max=a[n];for(i=1;i<=n;i++){if(a[i]>a[n]){max=a[i];p=i;}}t=a[n],a[n]=max,a[p]=t;for(i=1;i<=n;i++)printf("%d",&a[i]);}3.#include<stdio.h>voidmain(){inta[21],i;for(i=1;i<=20;i++){a[i]=i*i+1;printf("%d",a[i]);if(i%5==0) printf("\n");}}4.#include<stdio.h>main(){inta[10]={1,3,5,7,9,11,13,15,17},i,j,n;printf("請輸入1個整數(shù)");scanf("%d",&n);for(i=0;i<9;i++)if(a[i]>n){for(j=9;j>i;j--)a[j]=a[j-1];a[i]=n;break;}if(n>=a[8])a[9]=n;for(i=0;i<10;i++)printf("%d",a[i]);printf("\n");}6.#include<stdio.h>main(){inta[4][4],i,j,t=0;floats1=0,s2=0,ave;for(i=0;i<=3;i++){for(j=0;j<=3;j++){printf("input16ints:");scanf("%d",&a[i][j]);}}for(i=0;i<=3;i++){for(j=3;j>=0;j--){if(i+j==3){if(a[i][j]%2!=0){s1=s1+a[i][j];}else{t++;s2=s2+a[i][j];ave=s2/t;}}}}printf("s=%0.2f\nave=%0.2f\n",s1,ave);}7.#include<stdio.h>main(){inti,j,k=1,s=0;inta[5][5];for(i=0;i<5;i++){for(j=0;j<5;j++){a[i][j]=k;k++;}}putchar(10);for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%d\t",a[i][j]);printf("\n");}putchar(10);for(i=0;i<5;i++){for(j=0;j<=i;j++)printf("%d\t",a[i][j]);printf("\n");s=s+a[i][j];}printf("s=%d",s);}實(shí)驗(yàn)十
C字符數(shù)組和字符串函數(shù)*1.編寫字符串拷貝程序,并要求拷貝過程中將字符串中的小寫字母轉(zhuǎn)換成大寫字母。
2.從鍵盤輸入兩個字符串a(chǎn)和b,要求不使用庫函數(shù)strcat,把串b的前5個字符連接到串a(chǎn)中;如果b中的長度小于5,則把b的所有元素都連接到a中。
3.輸入一個以回車結(jié)束的字符串(少于80個字符),再輸入一個字符,統(tǒng)計(jì)并輸出該字符在字符串中出現(xiàn)的次數(shù),然后輸出該字符串。
4.編程:輸入一個字符串,輸出該字符串中出現(xiàn)次數(shù)最多的字符以及出現(xiàn)的次數(shù)。
5.編程:鍵盤接收一個字符串(只含大、小寫英文字母),將該字符串加密后輸出。
加密規(guī)則為:若為小寫字母則不變,若為大寫字母則將其轉(zhuǎn)換為小寫后再后移一個字母,例如“A”應(yīng)轉(zhuǎn)換為“b”,“B”應(yīng)轉(zhuǎn)換為“c”,“Y”應(yīng)轉(zhuǎn)換為“z”,而“Z”應(yīng)轉(zhuǎn)換為“a”。
6.編程:輸入一個以回車結(jié)束的字符串a(chǎn)(少于80個字符),再輸入一個字符串b,統(tǒng)計(jì)并輸出b在a中出現(xiàn)的次數(shù),然后再輸出這兩個字符串。
7.編程:輸入一個以回車結(jié)束的字符串(少于80個字符),將該字符串倒序存放后按順序輸出。
例如:如數(shù)組中開始時元素為“abcd”,程序執(zhí)行后數(shù)組中為“dcba”,并輸出“dcba”
8.編程:實(shí)現(xiàn)對字符串的加密,要求從鍵盤輸入一個字符串,輸出加密之后的字符串。(此題為選做)
加密規(guī)則為:
對于串中第奇數(shù)個字符,若是字母,則把該字母變?yōu)樗竺娴淖帜福ㄈ魹閆則變?yōu)锳),不是字母則不變;
對于串中第偶數(shù)個字符,若是字母,則把該字母變?yōu)樗懊娴淖帜福ㄈ魹锳則變?yōu)閆),不是字母則不變;
大小寫字母都遵循此規(guī)則。
例如:
若原字符串是:AbbaZGHa-MnnKYzx
加密字符串為:BaczAFGb-NmojXaw
9.編程:輸入一行英文字符串,統(tǒng)計(jì)單詞的個數(shù)(單詞和單詞以空格分隔)。(此題為選做)1.#include<stdio.h>#include<string.h>main(){charstr1[40],str2[20];inti,k;printf("請輸入第一個字符串\n");scanf("%s",str1);printf("請輸入第二個字符串\n");scanf("%s",str2);for(i=0;str1[i]!='\0';i++);for(k=0;str2[k]!='\0';k++){str1[i]=str2[k];i++;}str1[i]='\0';for(i=0;str1[i]!='\0';i++){if(str1[i]>='a'&&str1[i]<='z'){str1[i]=str1[i]-32;}}printf("%s\n",str1);}2.#include"stdio.h"main(){chara[80],b[40],*q=a,*p=b;inti=0;printf("字符串a(chǎn):");gets(a);printf("字符串b:");gets(b);while(*q++);q--;while(*p++)i++;p=b;if(i<5)while(i--)*q++=*p++;elsefor(i=0;i<5;i++)*q++=b[i];*q='\0';puts(a);}3.#include<stdio.h>main(){charc[80],ch;inti,num=0;printf("請輸入字符串及字符:");gets(c);ch=getchar();for(i=0;c[i]!='\0';i++)if(c[i]==ch)num++;printf("num(%c)=%d\n",ch,num);puts(c);}4.#include<stdio.h>#include<conio.h>#include<string.h>main(){charstr[100],str_sort[100],c;inti,j,len,m;printf("請輸入字符串:");gets(str);strcpy(str_sort,str);len=strlen(str_sort);for(i=0;i<len-1;i++)for(j=0;j<len-i-1;j++)if(str_sort[j]>str_sort[j+1]){c=str_sort[j];str_sort[j]=str_sort[j+1];str_sort[j+1]=c;}for(i=1,j=1,m=0;i<len;i++)if(str_sort[i]!=str_sort[i-1]){if(j>m){m=j;c=str_sort[i-1];}j=1;}elsej++;printf("出現(xiàn)最多的是:%c%d\n",c,m);getch();}5.#include<stdio.h>main(){ chari; intc=0; inta=0,sum; scanf("%c",&i); while(i!='\n') { { if('a'<=i&&i<='z')printf("%c",i); if('A'<=i&&i<='Y')i=i+33,printf("%c",i); } if(i=='Z')i=i+32-25,printf("%c",i); scanf("%c",&i); } printf("\n"); }7.#include<stdio.h>#include<string.h>main(){charc[80],ch;inti,l;gets(c);l=strlen(c);for(i=0;i<l/2;i++){ch=c[i];c[i]=c[l-i-1];c[l-i-1]=ch;}puts(c);}實(shí)驗(yàn)十一
C排序算法*1.編程實(shí)現(xiàn):輸入n(n<10)個整數(shù),按從大到小的順序?qū)ζ渑判虿⑤敵觥?/p>
2.編程實(shí)現(xiàn):輸入一個字符串,按字符從小到大的順序?qū)ζ渑判蜉敵觥?/p>
3.編程實(shí)現(xiàn):鍵盤輸入同寢室n位同學(xué)的姓名(用漢語拼音表示),將這n位同學(xué)的姓名按字母順序排序后輸出。(此題為選做)1.#include<stdio.h>voidmain(){intn,c=1,i,j;inta[10];while(c){ printf("請輸入n:\n"); scanf("%d",&n); if(n>1&&n<=10)c=0; elseprintf("ERROE!\n");}printf("請輸入這%d個數(shù):",n);for(i=0;i<n;i++){ scanf("%d",&a[i]);}for(i=0;i<n;i++){ for(j=0;j<n-1-i;j++) { if(a[j]<a[j+1]) {c=a[j]; a[j]=a[j+1]; a[j+1]=c;}}}for(i=0;i<n;i++) printf("%d",a[i]);printf("\n");}2.#include<stdio.h>#include<string.h>intmain(void){charstr1[500]={0},str2[256]={0};inti;gets(str1);for(i=0;str1[i];i++){str2[str1[i]]=1;}for(i=0;i!=256;i++)if(str2[i]==1)printf("%c",i);putchar('\n');return0;}實(shí)驗(yàn)十二
C函數(shù)的基本操作1.編寫函數(shù):計(jì)算三角形的面積。已知三角形三條邊長,公式為:
其中x、y、z為邊長,c=(x+y+z)/2。
2.編寫函數(shù):用來判斷一個整數(shù)是否滿足“用4除余1,用5除余3,用7除余4”,滿足則返回1,不滿足返回0,然后編寫main函數(shù),通過調(diào)用該函數(shù)顯示出200~500之間滿足該條件的數(shù)。
3.編寫函數(shù)isprime(),用來判斷一個整數(shù)a是否為素?cái)?shù)。再編寫main函數(shù),通過調(diào)用該函數(shù)打印出100~300之間所有的素?cái)?shù),要求一行打印10個。
4.編寫函數(shù):判斷一個整數(shù)是否為水仙花數(shù),并編寫主程序調(diào)用該函數(shù)求出所有的水仙花數(shù)。
5.用迭代法求。迭代公式為:
迭代到為止,為方程的近似解。
6.所謂完數(shù)就是它所有因子的和等于其自身自然數(shù),如6=1+2+3,6就是一個完數(shù)。編寫兩個函數(shù):函數(shù)factor(n)用來判斷n是否是完數(shù),函數(shù)PriFac(n)用來顯示完數(shù)n的所有因子,在主函數(shù)中調(diào)用這兩個函數(shù),顯示1~30000間的所有完數(shù)。
7.以下函數(shù)p的功能是用遞歸方法計(jì)算x的n階勒讓德多項(xiàng)式的值。已有調(diào)用語句p(n,x);請編寫p函數(shù)。遞歸公式如下:(此題為選做)
floatp(intn,intx)
{
}
1.#include<stdio.h>#include<math.h>intmain(void){doublea,b,c,p,s;printf("請輸入a,b和c:");scanf("%lf%lf%lf",&a,&b,&c);p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf("此三角形的面積為:%lf\n",s);return0;}2.#include<stdio.h>voidfun(intm,intn){while(m<=n){if(m%4==1&&m%5==3&&m%7==4){printf("%4d",m);m++;}}voidmain(){fun(200,500);}3.#include<stdio.h>intisprime(intx){inty;for(y=x-1;y>=1;y--){ if(x%y==0) {returny;break;} }}main(){inti,j=0,m;for(i=100;i<=300;i++){m=isprime(i);if(m==1){printf("%5d",i);j++;if(j%10==0)printf("\n");}}}4.#include<stdio.h>fun(intx){inta,b,c;for(x=100;x<1000;x++){a=(x/100)%10;b=(x/10)%10;c=x%10;if(x==a*a*a+b*b*b+c*c*c) printf("%d\n",x);}}main(){inty;fun(y);}5.#include<stdio.h>#include<math.h>voidmain(void){doublea,b,c,d,e;printf("Enteranumber:");scanf("%lf",&a);b=a;e=pow(a,1.0/3);do{c=b*2/3+a/(3*b*b);d=c-b;b=c;}while((d<=-0.00001)||(d>=0.00001));printf("Theresultis%lf.\n",e);}6.#include<stdio.h>intfactor(intn);voidprifac(intn);intw[10],k;main(){intm,n;for(n=2;n<=3000;n++) {m=factor(n); if(m==1)prifac(n); }}intfactor(intn){ints,i;k=-1;s=n;for(i=1;i<n;i++){if(n%i==0){k++;s=s-i;w[k]=1;}}if(s==0)return1;elsereturn0;}voidprifac(intn){inti;printf("%d是完數(shù)\n",n);}實(shí)驗(yàn)十三
C函數(shù)調(diào)用中的數(shù)據(jù)傳遞1.編程實(shí)現(xiàn):在主程序main()中輸入2個整數(shù),通過調(diào)用函數(shù)將兩者的值互換(要求分別用地址傳遞方式、全局外部變量傳遞方式編程)。
2.編寫函數(shù):功能是刪除字符串s中的所有數(shù)字字符。
3.編寫函數(shù):功能是返回字符串s中的指定字符c的出現(xiàn)次數(shù)。
4.在main函數(shù)中,定義一個含N個元素的數(shù)組,其中N是符號常量,然后編寫下列各子函數(shù)完成相應(yīng)的功能:
(1)編寫函數(shù)sr:為該數(shù)組各元素賦值(要求調(diào)用隨機(jī)函數(shù)為各數(shù)組元素賦值)。
(2)編寫函數(shù)sc:打印該數(shù)組各元素,要求每行打印m個數(shù),其中m作為形參傳遞。
(3)編寫函數(shù)js:求該數(shù)組元素的最大值和最小值,最大值和最小值通過參數(shù)傳遞返回主調(diào)函數(shù)。
(4)編寫函數(shù)px:實(shí)現(xiàn)對數(shù)組的排序。
各個函數(shù)編寫完成后,請編寫main函數(shù),并在main中分別調(diào)用以上四個函數(shù),以驗(yàn)證各子函數(shù)的功能。1.#include<stdio.h>voidswap(int*,int*);main(){inta,b;printf("input2number:a,b\n");scanf("%d,%d",&a,&b);swap(&a,&b);printf("交換后:a=%d,b=%d\n",a,b);}voidswap(int*p1,int*p2){intt;t=*p1,*p1=*p2,*p2=t;}2.#include<stdio.h>intx,y;voidSwap();voidmain(){printf("Inputxandy:");scanf("%d,%d",&x,&y);Swap(x,y);printf("main:x=%d,y=%d\n",x,y);}voidSwap(){inttemp;temp=x;x=y;y=temp;return;}3.#include<stdio.h>voidfun(charc[80],charx[1]){inti=0;intbit=0;for(i=0;c[i];i++){if(c[i]!=x[0]){c[bit]=c[i];bit++;}}c[bit]='\0';}voidmain(){charc[80];chara[1];printf("請輸入一串字符:");scanf("%s",&c);printf("請輸入要刪除的數(shù):");scanf("%s",&a);fun(c,a);printf("%s\n",&c);}實(shí)驗(yàn)十五
C的指針1.用指針方法,編寫一個函數(shù),求矩陣主對角線所有偶數(shù)元素之和Sum。
2.編程:用字符指針實(shí)現(xiàn)函數(shù)strcat(s,t),將字符串t復(fù)制到字符串s的未端,并且返回字符串s的首地址。
3.用指針編程:輸入一個字符串,計(jì)算該字符串的長度,并統(tǒng)計(jì)該串中所含小寫字母、大寫字母和其他字符的個數(shù)。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒泉農(nóng)村路燈合同范例
- 采購精煤貿(mào)易合同范例
- 軟件購銷合同合同范例
- 兒童游樂合作合同范例
- 轉(zhuǎn)讓化鋁場地合同范例
- 清洗加盟合同范例
- 做家政合同范例
- 煤炭買賣度合同范例
- 車間雨衣采購合同范例
- 門類銷售合同范例
- 鉆井隊(duì)安全管理年終工作總結(jié)
- 腰椎感染護(hù)理查房
- 體育大單元教學(xué)計(jì)劃(18課時)
- 期末測評-2024-2025學(xué)年統(tǒng)編版語文三年級上冊
- 陜西省西安市未央?yún)^(qū)2023-2024學(xué)年五年級上學(xué)期期末科學(xué)試題
- 四年級上冊音樂教案 第七單元 送別蘇少版
- 九年級物理下冊 第十五章 電功和電熱 二 電功率教案 (新版)蘇科版
- 小學(xué)體育教案《50米快速跑(途中跑)》
- 八年級物理上冊 第六章 第1節(jié) 質(zhì)量教案 (新版)新人教版
- 中職2024-2025學(xué)年高一上學(xué)期期末語文試題06(解析版)
- 2024年中國消防救援學(xué)院第二批面向應(yīng)屆畢業(yè)生招聘28人歷年【重點(diǎn)基礎(chǔ)提升】模擬試題(共500題)附帶答案詳解
評論
0/150
提交評論