大一C語言考試上_第1頁
大一C語言考試上_第2頁
大一C語言考試上_第3頁
免費預覽已結束,剩余22頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1(x 0 或 x 100)1.有一個函數y0 (x 0),寫一段程序,輸入x的值,輸出y的值1(0 x 100)#in clude<stdio.h>int mai n()int x,y;scan f("%d", &x); if(x>100|x<0) y=-1;else if(x=0) y=0;elsey=1;prin tf("%dn",y); return 0;2. 輸入3個實數a,b,c輸出其中最小的數。#in clude<stdio.h>int mai n()int a,mi n=32767, n=3;w

2、hile( n-)scan f("%d", &a);if(a<mi n)mi n=a;prin tf("%dn",mi n);return 0;3. 輸入三角形的三邊a,b,c,判斷a,b,c,能否構成三角形,若能,計算面積。#in clude<stdio.h>#in clude<math.h>int mai n()int a,b,c,s,d;scan f("%d%d%d", &a,&b,&c);if(a+b>c&&a+c>b&&

3、b+c>a)d=(a+b+c)/2; s=sqrt(d*(d-a)*(d-b)*(d-c);prin tf("%dn",s);elseprintf(”三邊構不成三角形n");4. 輸入4個整數,輸出4個數中的最大值、最小值。#in clude<stdio.h>int mai n()int a,max=-32768,m in=32767, n=4;while( n-)scan f("%d", &a);if(a>max)max=a;if(a<mi n)mi n=a;prin tf("%d %dn&qu

4、ot;,max,mi n);return 0;5. 要求按照成績的等級輸出百分制分數段,A等為90分以上,B等為8089,C等為7079,D等為6069,E等為60分以下。成績的等級由鍵盤輸入,若輸入的等級非A、B、C、D、E 字符,輸出” enter data error?!?in clude<stdio.h>int mai n()char a;a=getchar();if(a='A')printf("90 分以上 n");else if(a='B')prin tf("8089n");else if(a=&#

5、39;C')prin tf("7079n");else if(a='D')prin tf("6069n");else if(a='E')printf("60 分以下 n");elseprin tf("e nter data error' n");return 0;6. 有一個函數:x(x 1)y 3x 11 (x 10),寫一段程序,輸入x的值,輸出y的值2x 1 (1 x 10或 x 10)#in clude<stdio.h>int mai n()int

6、 x,y;scan f("%d",& x);if(x<1)y=x;prin tf("%dn",y);else if(x=10)y=3*x-11;prin tf("%dn",y);elsey=2*x-1;prin tf("%dn",y);return 0;7. 輸入成績,要求輸出成績等級A、B、C、D、E或error。90分以上為 A'8089分為 B'7079分為C' 6069分為D 060分為E'若輸入成績低于0分和高于100分則輸出 error。#in clude&

7、lt;stdio.h>int mai n()int a;scan f("%d",&a);if(a>100)prin tf("error n");elseif(a>90)prin tf("A n");else if(a>80)prin tf("Bn");else if(a>70)prin tf("Cn");else if(a>60)prin tf("Dn");elseprin tf("En");return 0;8

8、. 求一元二次方程ax2+bx+c=0的解。(考慮b2-4ac三種情況)#in clude<stdio.h>#in clude<math.h>int mai n()double a,b,c,d,e,x1,x2,i;scan f("%lf%lf%lf",&a,&b,&c);d=b*b-4*a*c;e=-b/(2*a);if(d>1e-6)x1=e+sqrt(d)/(2*a);x2=e-sqrt(d)/(2*a);prin tf("%.2lf %.2lf",x1,x2);else if(d=1e-6)x1

9、=x2=e;prin tf("%.2lf %.2lf",x1,x2);elseprin tf("%.2lf+%.2lfi %.2lf-%.2lfin",e,sqrt(-d)/(2*a),e,sqrt(-d)/(2*a);return 0;9. 輸入某年某月某日,判斷這一天是這一年的第幾天?(注意是否為閏年)#in clude<stdio.h>int mai n()int i,n=0,year,math,day,s12=31,28,31,30,31,30,31,31,30,31,30,31;scan f("%d%d%d",

10、&year,&math, &day);if(year%4=0&&year%100!=0 )| (year%400=0)s1=29;for(i=0;i<math-1;i+)n=n+si;n=n+day;prin tf("%dn", n);return 0;10. 公司規(guī)定,男職工到60歲退休,女職工到55歲退休。編寫一個程序,輸入職工的性別 和年齡,判斷出該職工是 已退休”還是 在職”(輸入時,用一個小寫英文字母來表示性別,'r表示男性,表示女性) #in clude<stdio.h>int mai n()ch

11、ar a;int b;a=getchar();scan f("%d",&b);if(a='m')if(b>=60)printf(” 已退休 n");elseprintf("在職 n");else if(a='f)if(b>=55) printf("已退休 n");elseprintf("在職 n");return 0;11. 輸入一個數,判斷該數是否為素數。#in clude<stdio.h>int mai n()int a,b;scan f(&qu

12、ot;%d",&a);for(b=2;b<a;b+)if(a%b=0)break;if(b<a) prin tf("%d is not a prime nu mber.n",a);else prin tf("%d is a prime nu mber.n",a);return 0;12. 編程實現求解s=1*2+2*3+3*4+20*21,并輸出結果。#in clude<stdio.h>int mai n()int a,s=0;for(a=1;a<=20;a+)s=s+a*(a+1);prin tf(&qu

13、ot;%dn",s);return 0;13求Fibonacci數列的前20個數,并按每行5個數輸出#in clude<stdio.h>int mai n()int f1=1,f2=1,a,f3;prin tf("%d %d ",f1,f2);for(a=3;a<=20;a+)f3=f1+f2;prin tf("%d ",f3);if(a%5=0)prin tf("n");f仁 f2;f2=f3;return 0;14.求 1+3!+5!+.+19!的和。#in clude<stdio.h>in

14、t mai n()double s,c=0;int a,b;for(a=1;a<=19;a+=2)s=1;for(b=1;b<=a;b+)s=s*b;c=c+s;prin tf("%lfn",c);return 0;15. 有一分數序列I,-,3,5,-8,!3丄,求其前30項的和2 3 5 8 13 21#in clude<stdio.h>int mai n()int i;double a=1,b=2,s=0,t;for(i=1;i<=30;i+)s=s+a/b;t=b;b=a+b;a=t;prin tf("%lfn",s

15、); return 0;16. 編寫一個程序,計算1+3+3 2+33310的值并輸出。#in clude<stdio.h>#in clude<math.h>int mai n()int a=0,i;for(i=0;i<=10;i+)a=a+pow(3,i);prin tf("%dn",a);return 0;17. 從鍵盤任意輸入一個4位數x,編程計算x的每一位數字相加之和。例如,輸入x為1234, 則其千位為1、百位為2、十位為3、個位為4,然后計算1+2+3+4=10,輸出10。(要求使 用循環(huán)實現)#in clude<stdio.

16、h>int mai n()int m, n,s=0;scan f("%d",&m);while(m!=0)n=m%10;m=m/10;s=s+n;prin tf("%dn",s);return 0;18. 輸入一個八進制數,并將其轉換為十進制。(要求使用循環(huán)實現)#in clude<stdio.h>#in clude<math.h>int mai n()int a,b=O,m=O;scan f("%d",&a);while(a!=O)m=m+(a%10)*(i nt)pow(8,b);b+

17、;a=a/10;prin tf("%dn",m);return 0;19. 輸入兩個正整數m和n,求其最大公約數和最小公倍數。#in clude<stdio.h>int mai n()int a,b,c,d,p;scan f("%d%d",&a,&b);if(a<b)c=a;a=b;b=c;p=a*b;while(b!=0)d=a%b;a=b;b=d;prin tf("%d %dn",a,p/a);return 0;20. 一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下落地時,共經過

18、多少米?第10次反彈多高?#in clude<stdio.h>int mai n()int i;float h=50,a=100;for(i=2;i<=10;i+)a=a+2*h;h=h/2;prin tf("%f %fn",a,h);return 0;21. 輸出倒三角形式的9*9 口訣表,要求用循環(huán)實現。9*仁99*2=189*3=279*4=36 9*9=818*仁88*2=168*3=248*4=328*8=61*1=1#in clude<stdio.h>int mai n()int a,b,s;for(a=9;a>0;a-)fo

19、r(b=1;b<=a;b+)s=a*b;prin tf("%d*%d=%d ",a,b,s);prin tf("n");,求它在第 10次printf函數輸出)22. 輸出菱形圖案。(要求使用雙循環(huán)實現,不能利用字符數組或簡單的#in clude<stdio.h> int mai n()int a,b,c;for(a=1;a<=5;a+)for(b=1;b<=5-a;b+)printf(” ");for(c=1;c<=2*a-1;c+)prin tf("*");prin tf("

20、n ”);for(a=1;a<=4;a+)for(b=1;b<=a;b+)printf("");for(c=1;c<=9-2*a;c+)prin tf("*");prin tf("n ”);return 0;o例如6的因子為1,2,3,而并按下面的格式輸出其因子:23. 一個數如果恰好等于它的因子之和,這個數就稱為完數”6=1+2+3 ,因此6是完數。編寫程序找出500以內的所有完數,6 its factors are 1,2,3 #in clude<stdio.h> int mai n()int a,b,c;fo

21、r(a=2;a<500;a+)b=0; for(c=1;c<a;c+)if(a%c)=0)b+=c; if(b=a)prin tf("%d,its factors are ",a); for(c=1;c<a;c+) if(a%c=O)pri ntf("%d ",c); prin tf("n");return 0;24編程輸出如下形式的九九乘法表12345678912436981624324048566491827364554637281#in clude<stdio.h>int mai n()int a,

22、b,s;for(a=1;a<=9;a+)for(b=1;b<=a;b+)s=a*b;prin tf("%d ",s);prin tf("n");25. 一個偶數總能表示為兩個素數之和。要求:輸入一個偶數,將其表示成兩個素數之和, 直到輸入的數為0。#in clude<stdio.h>int mai n()int i,j, n,k;printf("請輸入一個偶數n");scan f("%d",&n);if(n !=0)for(i=2;i<=n/2;i+) for(j=2;j<

23、;i;j+)if(i%j=0)break;if(j=i)for(k=2;k< n-i;k+)if(n-i)%k=O)break;if(k=( n_i)prin tf("%d %dn",i,k);return 0;26. 輸入10個整型整數,用起泡法對這10個數排序,并該由小到大順序在屏幕上輸出#in clude<stdio.h>int mai n()int a,b,c,s10;for(a=0;a<10;a+)scan f("%d", &sa);prin tf("n");for(b=0;b<9;b+

24、)for(a=0;a<9_b;a+)if(sa>sa+1)c=sa;sa=sa+1;sa+1=c;for(a=0;a<10;a+)prin tf("%d ”,sa);prin tf("n");return 0;27. 輸入10個整型整數,用選擇法對這10個數排序,并該由大到小順序在屏幕上輸出。#in clude<stdio.h>int mai n()int a10,i,j,t,mi n;for(i=0;i<10;i+)scan f("%d", &ai);for(i=0;i<10;i+)min=i

25、;for(j=i+1;j<=10;j+)if(ami n>aj) mi n=j;t=ai;ai=ami n;ami n=t;for(i=0;i<10;i+)prin tf("%d ”,ai);prin tf("n");return 0;28. 將一個數組中的值按逆序重新存放。例如,原來順序為8,6,5,4,1改后成為1,4,5,6,8。(同 一數組中完成)int i;char a5;scan f("%s",a);for(i=4;i>=0;i-)prin tf("%c",ai);prin tf(&quo

26、t;n");return 0;29. 給一個不多于6位的正整數,要求:求出它是幾位數;分別輸出每一位數字;按 逆序輸出各位數字,例如原數為158,應輸出851。(利用數組知識)#in clude<stdio.h>#in clude<stri ng.h>int mai n()int m,i,j;char a50;scan f("%s",a);m=strle n( a);prin tf("%dn",m);for(i=0;i<m;i+)prin tf("%c ”,ai);prin tf("n"

27、;);for(j=m_1;j>=0;j_)prin tf("%c",aj);prin tf("n");return 0;30. 用篩選法求100之內的素數。(利用數組知識) #in clude<stdio.h>#in clude<math.h>int mai n()int a101,i,j, n;for(i=0;i<100;i+)ai=i;a0=1;for(i=2;i<sqrt(100);i+)for(j=i+1;j<=100;j+)if(ai!=0&&aj!=0)if(aj%ai=0)aj

28、=0;for(i=2 ,n=0;i<100;i+)if(ai!=0)prin tf("%d ”,ai);prin tf("n");return 0;31. 編程實現:輸入任意一個不超過5位的十進制整數,取出該數中的所有奇數數字,按原 來的順序組成一個新的數。#in clude<stdio.h>int i,b;char a10;gets(a);b=strle n( a);for(i=0;i<b;i+)if(i nt)ai%2!=0)prin tf("%c",ai);puts(”);(在32. 有一個已升序排列的數組,要求輸

29、入一個數后,按原來排序的規(guī)律將它插入數組中 同一數組中實現)#in clude<stdio.h>int mai n()int i,j,s;char a10=1,2,4,9,32,41,64,88,91,98;scan f("%d", &s);for(i=0;i<10;i+)if(s>ai)prin tf("%d ”,ai);else break;prin tf("%d ",s);for(j=i;j+)prin tf("%d ",aj); if(aj=a9) break;prin tf(&quo

30、t;n");return 0;33. 將一個二維數組a的行和列的元素互換(即行列互換),存到另一個二維數組b中。#in clude<stdio.h>int mai n()int i,j,a23=1,2,3,4,5,6,b32;for(i=0;i<2;i+)for(j=0;j<3;j+)prin tf("%5d",aij);bji=aij;prin tf("n");for(i=0;i<3;i+)for(j=0;j<2;j+)prin tf("%5d",bij);prin tf("n

31、");return 0;34.在一個3*4的二維數組a中,要求編程求出其中值最大的那個元素的值,并輸出其所 在的行號和列號。int i,j,a=0,b=0,s34=1,2,3,4,5,6,7,8,9,10,11,12,max;max=sOO;for(i=0;i<3;i+)for(j=0;j<4;j+)if(sij>max)max=sij;a=i;b=j;prin tf("%d %d %dn", max,a,j);return 0;35.找出一個2維數組中的鞍點,即該位置上的元素在該行上最大、在該列上最小#in clude<stdio.h&g

32、t;int mai n()int a34=1,13,9,10,3,2,7,6,4,11,8,15,i,j,max,k,b,c;for(i=0;i<3;i+)max=aiO;for(j=0;j<4;j+)if(max<aij)max=aij;b=j;c=1;for(k=0;k<3;k+)if(akb<max) c=O;break;if(c=1)printf(” 鞍點為:dn",aij-1);break;36.輸入一行字符,分別統(tǒng)計出其中的英文字符、數字和其他字符的個數#in clude<stdio.h>int mai n()char d;int

33、 a=0,b=0,c=0;while(d=getchar()!='n')if(d>='a'&&d<='z'|d>='A '&&d<='Z')a+;else if(d>=' O'&&d<='9')b+;elsec+;prin tf("%d %d %dn",a,b,c);return 0;37將輸入的字符串逆序排列,如輸入 ABCD,輸出DCBA #in clude<stdio.

34、h>#in clude<stri ng.h>int mai n()int b,i;char a100;gets(a);b=strle n( a);for(i=b-1;i>=0;i-)prin tf("%c",ai);prin tf("n");return 0;38.有3個字符串,要求找出其中最大者#in clude<stdio.h>#in clude<stri ng.h>int mai n()int t;char a50,b50,c50,d50;gets(a);gets(b);gets(c);t=strcm

35、p(a,b);if(t=1)strcpy(d,a);elsestrcpy(d,b);t=strcmp(d,c);if(t=1)prin tf("%sn",d);elseprin tf("%sn",c);return 0;39.輸入一行字符,統(tǒng)計其中有多少個單詞,單詞之間用空格分隔開#in clude<stdio.h>int mai n()char a;int b=1;a=getchar();while(a=getchar()!='n')if(a='')b+;prin tf("%dn",b);

36、return 0;40.編一個程序,將兩個字符串連接起來,不要用 strcat函數。#in clude<stdio.h>#in clude<stri ng.h>int mai n()char a100,b100;gets(a);gets(b);prin tf("%s%sn",a,b);return 0;41.有一篇文章,共有4行文章,每行有20個字符。要求分別統(tǒng)計出其中英文大寫字符、小寫字母、數字、空格以及其他字符的個數。#in clude<stdio.h>int mai n()int x,s,k,other,i,j,d=0;char a20;for(i=0;i<4;i+)gets(a);d=x=s=k=other=0;j=0;while(aj!='0')if(aj>='A'&&aj<='Z')d+;else if(aj>='

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論