C語言第一次作業及答案_第1頁
C語言第一次作業及答案_第2頁
C語言第一次作業及答案_第3頁
C語言第一次作業及答案_第4頁
C語言第一次作業及答案_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第1次作業答案一、 單項選擇題(本大題共19小題)1c語言規定:在一個源程序中,main函數的位置()。ca)必須在最開始b)必須在系統調用的庫函數的后面c)可以任意d)必須在最后2一個c語言程序是由()。ba)一個主程序和若干個子程序組成b)函數組成c)若干過程組成d)若干子程序組成3程序中,注釋的內容寫在()。aa)*和*/之間b)*和*之間c)*和/*之間d)*和*之間4c語言程序中每個語句和數據定義的最后必須有一個()。aa)分號b)逗號c)空格d)冒號5若x、i、j和k都是int型變量,則計算下面表達式后,x的值為()。cx=(i=4,j=16,k=32)a)4b)16c)32d)5

2、26不正確的變量說明是()。ca)unsigned int ui;b)short int s;c)double int a;d)int i,j,k;7合法的c語言程序標識只符是()。ca)5dmb)abc)hhd)$a8不合法的字符常量是()。ca)2b)101c)abd)n9若有代數式,則不正確的表達式是()。ca)a/b/c*e*3b)3*a*e/b/cc)3*a*e/b*cd)a*e/c/b*310以下選項中不合法的賦值語句是()。ca)c=(a=1,b=2);b)k=i=j;c)a=b+c=5;d)n1=(n2=(n3=0);11若希望當a的值為奇數時,表達式的值為“真”,a的值為偶數

3、時,表達式的值為“假”。則以下不能滿足要求的表達式是()。c)a%2= =1b) !(a %2 = =0) c)!(a%2)d)a%212.若w=1,x=2,y=3,z=4,則條件表達式wx?x:y= a & ch = z ) ? ( ch + 32 ) : ch ; a)ab)ac)zd)z14假定所有變量均已正確說明,下列程序運行后x的值是()。a a=b=c=0, x=35; if (! a) x;else if (b ); if ( c) x=3; else x=4;a)34b)4c)35d)315下面程序段的輸出結果是()。a int n=4; while (n) printf(“%

4、d”,n); a)2 0b)1c)3 2 1d)2 1 016下面程序段的輸出結果是()。c int x=3; do printf(“%3d”,x);while (!(x)); a)b)c) d)死循環17以下for循環的執行次數是()。c for (x=0,y=0;(y=123)&(xs2)b)if (strcmp ( s1,s2)c)if ( strcmp( s2, s1)0)d)if ( strcmp( s1,s2 )0)二、填空題(本大題共15小題)1.設a=10,則賦值表達式a+=a-=a*a的值是 。 -1802.設a=3,b=4,c=5。則邏輯表達式a|b+c&b-c的值是 。1

5、3.若已知定義a =10, b=20, 則表達式 ! ax) printf(x=%d, y=%d, a=%d,x,y,a); 8.下面程序輸出結果是_。i=6,k=4#include void main() int i,j,k=19;while (i=k-1) k- =3; if (k%5=0) i+; continue; else if (k5) break; i+;printf(“i=%d,k=%dn”,i,k);9如下程序段的輸出結果是 。16 int i=0 , sum=1; do sum+=i+ +; while ( i6); printf(“%d”, sum);10.下列的for循

6、環執行 次。4 for ( x=0, y=0; ( y!=99) & x4; x+ );11若x 是int型變量,下面程序段的輸出結果是 。*3#4*5 for ( x=3; x=0 & score =100 (2)scoremin 或score max) max=score; if ( (2) ) min=score; printf(“ input the score”); scanf( “ %f”, &score); printf(“ the max score is %f n min is %fn”,max, min); 13以下程序的功能是實現從鍵盤輸入一組字符,統計出大寫字母的個數m

7、和小寫字母的個數n,并輸出m、n中的較大者。 (1) c=getchar() ; (2) n:mvoid main() int m= 0, n=0; char c; while ( ( (1) ) != n ) if ( c=a &c =a &c =z ) n+; printf(“%d n ”, mn ? (2) ); 14.下面程序段將輸出 computer,請填空。(1)i=7 (2)j=i+7 int i, j=0; char c =”its a computer”; for (i=0; (1) ;i+) (2) ; printf(“%c”,cj;)15. 如下程序段的輸出結果是 。12

8、3 #include void main() char str=1a2b3c ; int i; for (i=0; stri!=0;i+) if (stri=0&stri=9) printf(%c,stri);16如下程序段的輸出結果是 。efghijkl#include void main() char str10=abcd,efgh,ijkl,mnop,k; for (k=1; k3;k+) printf(%sn,strk);三、 程序設計題(本大題共3小題)1. 輸入一個華氏溫度,要求輸出攝氏溫度。公式為 c=5/9(f-32)輸出要有文字說明,取2位小數。(此題是書上p89頁的4.9題

9、)答:#includevoid main() float c,f; printf(請輸入華氏溫度:); scanf(%f,&f); c=(float)5/9*(f-32); printf(%14.2f的攝氏溫度是:%14.2fn,f,c);2. 輸入一個圓的半徑r 和一個整型數k, 當k=1時,計算圓的面積; 當k=2時,計算圓的周長; 當k=3時,既要求出圓的面積也要求出圓的周長。#includevoid main() float r,l,s; float pi=3.1415926; int k; printf(請輸入圓的半徑和一個1-3的整數(例如: 2.3, 2):); scanf(%f

10、,%d,&r,&k); l=2*pi*r; s=r*r*pi; switch(k) case 1 :printf(圓的面積是:%8.2fn,s);break; case 2 :printf(圓的周長是:%8.2fn,l);break; case 3 :printf(圓的面積是:%8.2f周長是:%8.2fn,s,l); 3. 企業發放的獎金根據利潤提成。利潤i低于或等于10萬元的,獎金可提10;利潤高于10萬元,低于20萬元(100000i200000)時,低于10萬元的部分按10提成,高于100000元的部分,可提成75;200000i400000時,低于20萬的部分仍按上述辦法提成(下同)

11、。高于20萬元的部分按5提成;400000i600000時,高于40萬元的部分按3提成;600000i1000000時,高于60萬的部分按15提成;i1000000時,超過100萬元的部分按1提成。從鍵盤輸入當月利潤i,求應發獎金總數。要求:(1)用if語句編程序;(2)用switch語句編程序。(此題是書上p112頁的5.8題)(1) #includevoid main() long i; float bonus,bon1,bon2,bon4,bon6,bon10; bon1=100000*0.1; bon2=bon1+100000*0.075; bon4=bon2+200000*0.05;

12、 bon6=bon4+200000*0.03; bon10=bon6+400000*0.015; printf(請輸入利潤i:); scanf(%ld,&i); if(i100000) bonus=i*0.1; else if(i=200000) bonus=bon1+(i-100000)*0.075; else if(i=400000) bonus=bon2+(i-200000)*0.05; else if(i=600000) bonus=bon4+(i-400000)*0.03; else if(i=1000000) bonus=bon6+(i-600000)*0.015; else bo

13、nus=bon10+(i-1000000)*0.01; printf(獎金是%10.2fn,bonus);(2)#includevoid main() long i; float bonus,bon1,bon2,bon4,bon6,bon10; int branch; bon1=100000*0.1; bon2=bon1+100000*0.075; bon4=bon2+200000*0.05; bon6=bon4+200000*0.03; bon10=bon6+400000*0.015; printf(請輸入利潤 i:); scanf(%ld,&i); branch=i/100000; if(

14、branch10) branch=10; switch(branch) case 0:bonus=i*0.1;break; case 1:bonus=bon1+(i-100000)*0.075;break; case 2: case 3:bonus=bon2+(i-200000)*0.05;break; case 4: case 5:bonus=bon4+(i-400000)*0.03;break; case 6: case 7: case 8: case 9:bonus=bon6+(i-600000)*0.015;break; case 10:bonus=bon10+(i-1000000)*

15、0.01; printf(獎金是%10.2fn,bonus);4打印出所有的“水仙花數”,所謂“水仙花數”是指一個3位數,其各位數字立方和等于該數本身。例如,153是一水仙花數,因為153=13+53+33。(此題是書上p129頁的6.6題)#includevoid main() int s,s1,s2,s3; for(s=100;s1000;s+) s1=s/100; s2=s/10%10; s3=s%10; if(s=s1*s1*s1+s2*s2*s2+s3*s3*s3) printf(%dn,s); 5有一分數序列2/1,3/2,5/3,8/5,13/8,21/13,求出這個數列的前20

16、項之和。(此題是書上p129頁的6.8題)#includevoid main()int i, t;float a=2,b=1,sum=0; for(i=1;i=20;i+)sum=sum+a/b;t=a;a=a+b; /*將前一項分子與分母之和作為下一項的分子*/b=t; /*將前一項分子作為下一項的分母*/ printf(sum=%8.7fn,sum);6 將一個數組中的值按逆序重新存放。例如,原來順序為8,6,5,4,1。要求改為1,4,5,6,8。(此題是書上p154頁的7.5題)#include#define n 5void main() int a n,i,temp; printf(enter array a:n); for(i=0;in;i+) scanf(%d,&ai); printf(array a:n); for(i=0;in;i+)printf(%4d,ai); for(i=0;in/2;i+) temp=ai; ai=an-i-1; an-i-1=temp; printf(nnow,arraya:n); for(i=0;in;i+)pri

溫馨提示

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

評論

0/150

提交評論