原發(fā)布者:愛(ài)無(wú)風(fēng)而立
復習題C程序設計編程題1.輸入2個(gè)整數,求兩數的平方和并輸出。#includevoidmain(){intta,b,s;printf("pleaseinputa,b:\n");scanf("%d%d”,&a,&b);s=a*a+b*b;printf("theresultis%d\n",s);}2.輸入一個(gè)圓半徑(r),當r>=0時(shí),計算并輸出圓的面積和周長(cháng),否則,輸出提示信息。#include#definePI3.14voidmain(){floatr,s,l;printf("pleaseinputr:\n");scanf("%f”,&r);if(r>=0){s=pi*r*r;l=2*i*r;printf("theareais%f\n",s);printf("thecircumferenceis%f\n",l);}elseprintf("inputerror!\n");}3、函數y=f(x)可表示為:2x+1(x0)編程實(shí)現輸入一個(gè)x值,輸出y值。#includevoidmain(){intx,y;scanf(“%d”,&x);if(x0)y=2*x-1;elsey=0;printf(“%d”,y);}4、編寫(xiě)一個(gè)程序,從4個(gè)整數中找出最小的數,并顯示此數。#includevoidmain(){inta,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;}printf(“min=%d\n”,a);}5.有一函數當x0時(shí),y=3,當x=0時(shí)y=5,編程,從鍵盤(pán)輸入
本試卷共5頁(yè)共5大題,考生在作答前應先檢查是否有缺頁(yè)、白頁(yè)、以防漏答。
查對無(wú)誤后,請先填寫(xiě)學(xué)號、姓名、專(zhuān)業(yè),再答卷。一、單項選擇題(在每小題的四個(gè)備選答案中,選出一個(gè)正確答案,并將正確答案的序號填在題干的括號內。
(共10小題,每小題2分,共20分)。1、不是C語(yǔ)言基本數據類(lèi)型的是( )。
A、指針類(lèi)型 B、整型 C、字符型 D、實(shí)型2、設有:int a=3, b= 4, c= 5,x , y; 表達式(x=a)&&(y=b)&&0的值為( )。 A、1 B、0 C、3 D、43、設有語(yǔ)句 int a=3 ; 則執行了語(yǔ)句 a+ = a - = a后,變量a 的值是( )。
A、3 B、0 C、9 D、-124、執行以下程序后,y的值是( ) main() { int a[]={2,4,6,8,10}; int y=0,i,*p; p=&a[0]; for(i=0;i<5;x++) y+=*(p+i); printf(“%d\n”,y); } A、17 B、18 C、19 D、305、有定義語(yǔ)句:float a[4];則分配給數組a的空間為( )字節。 A、20 B、12 C、16 C、106、以下描述錯誤的是( )。
A、break語(yǔ)句可用于do~while語(yǔ)句 B、break語(yǔ)句和continue語(yǔ)句的作用是一樣的 C、在循環(huán)語(yǔ)句中使用break語(yǔ)句是為了跳出循環(huán),提前結束循環(huán) D、在循環(huán)語(yǔ)句中使用continue語(yǔ)句是為了結束本次循環(huán),而不終止整個(gè)循環(huán)7、C語(yǔ)言中規定,if語(yǔ)句的嵌套結構中,else總是( )。A、與最近的if 配對 B、與第一個(gè)if 配對 C、按縮進(jìn)位置相同的if配對 D、與最近的且尚未配對的if 配對8、說(shuō)明語(yǔ)句“int (*p)( ); ”的含義是( ) 。
A、p是一個(gè)指向一維數組的指針變量 B、p是指針變量,指向一個(gè)整型數據 C、p是一個(gè)指向函數的指針,該函數返回一個(gè)int型數據 D、以上都不對9、以下對二維數組c的正確聲明是 ( ) 。A、int c[3][ ]; B、int c(3,4); C、int c(2)(2); D、int c[3][2];10、下述程序段執行后輸出結果是( )。
int x=100, y=200; printf ("% d", (x, y)); A、100 B、200 C、100,200 D、編譯出錯 二、填空題。(共10空,每空1分,共10分 )1、C語(yǔ)言提供的三種邏輯運算符是 && 、|| 和!;2、函數的返回值是通過(guò)函數中的 return 語(yǔ)句獲得的。
3、在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"定義后,a[2][2]的值為_(kāi)6__ _;4、對于"int *pa[5];" pa是一個(gè)具有5個(gè)元素的_數組指針_,每個(gè)元素是一個(gè)指向int型變量的__指針__;5、單向鏈表的尾節點(diǎn)next指針應賦值__ NULL___;6、for(int x=0,y=1;x&&y〈=5;y++)中循環(huán)體執行的次數是 0 。 7、int a[5];數組a的首地址為2000,則元素a[1]的地址為 2002 ,元素a[2]的地址為 2004 。
三、程序填空題。(共8空,每空2分,共16分 )1、以下程序中子函數返回數組s中最大元素,數組中元素的個(gè)數由t傳入。
Int findmax(int s[],int t) { int m,n,*p; max=0; p= s ; for(n=1;n<t;n++) if(*(p+max)<*(p+n)) max=n ; return(*(p+max));; } Void main( ) { int a[10]; int i; for(i=0;i<10;i+=) scanf(“%d”,&a[i]); printf(“%d”,findmax{a,10}); }2、以下程序完成計算1-1/2+1/3-1/4+..前n 項和的功能,請填空。#include int main( ) { int i, n, flag; float sum; scanf("%d", &n); flag= 1 ; sum=0; for(i=1;i<=n; i++ ) { sum+=(float)flag/i; flag=-flag ; } printf("%.3f\n", sum); }3、以下程序的功能是從鍵盤(pán)輸入n個(gè)整數,統計其中正數、0、負數的個(gè)數,請填空。
#include int main( ) {int a, i, count1,count2,count3; count1=cout2=count3=0 ; for(i=1;i0) count1++; Else if(i==0) count2++ ; Else count3++; } printf(“正數:&d個(gè),零:%d個(gè),負數:%d個(gè)\n”, count1,count2,count3); } 四、運行程序結果。(共4小題,每小題6分,共24分)1、運行時(shí)輸入100,200,請寫(xiě)出程序運行結果。
Void main( ) { int a, b,*p1,*p2 ; scanf ( " % d ", & a , ); scanf ( " % d ", & b ); printf(“a=%d,b=%d”,a,b); p1=&a; p2=&b; swap ( p1,p2); printf(“a=%d,b=%d”,a,b); } Void swap ( int *p1, *p2) { int t ; t=*p1; *p1=*p2; *p2=t; } 運行結果為: a=100,b=200a=200,b=1002、運行時(shí)若輸入1 2 3 4 -5,寫(xiě)出程序運行結果。#include int main( ) { int x, sum; scanf("%d", &x); sum=0; while(x>0) { if(x%2!=0) sum+=x; scanf("%d", &x); } printf("sum=%d\n", sum); } 運行結果為:sum=43、寫(xiě)出程序運行結果。
#include int max(int a,int b) { int c; c=a>b?a:b; return(c); } int min(int a,int b) {int c; c=a<b?a:b; return(c); } void main() { int a=2,b=6; printf("max=%d\n",max(a,b)); printf(“min=%d\n”,min(a,b)); } 運行結果為:max=6 Min=24、運行時(shí)若輸入4 1 2 3 0,寫(xiě)出程序運行結果。#include int main( ) { int i, index, n; int a[10]; scanf("%d", &n); for(i=0; i<n; i++) scanf("%d", &a[i]); index=0; for(i=1;i<n;i++) { if(a[i]#include Void main( ) { char c[10][20],t[10]; Int I, j,k; For(i=0;i<10;i++) Gets(c[i]); For(i=0;i<9;i++) { k=I; For(j=i+1;j0) k=j; If(k!=i) { strcpy(t,c[k]); strcpy(c[k],c[i]); strcpy(c[i],t); } For(i=0;i<10;i++) 。
1、從鍵盤(pán)輸入三個(gè)整型數a,b和c,求在屏幕輸出a+3b+5c的值。
要求:求和運算通過(guò)調用函數實(shí)現。 main() { int a,b,c; printf("Please Input 3 Num:\n"); scanf("%d",&a); scanf("%d",&b); scanf("%d",&c); printf("sum=%d\n",sum(a,b,c)); getch(); } int sum(int a,int b,int c) { return a+3*b+5*c; } 2、從鍵盤(pán)輸入一個(gè)字母,在屏幕輸出與其相連的三個(gè)字母。
如:輸入Z,輸出為YZA,輸入為c,輸出為bcd。注意:邊緣字母的處理。
/*考慮輸入是否字母以及大小寫(xiě)情況*/ #include main() { char a; printf("Please Input 1 Char:\n"); scanf("%c",&a); if(isalpha(a)==0) /*判斷是否字母*/ { printf("Not is Character\n"); exit(1); } if(isupper(a) > 0) /*判斷是否大小寫(xiě)*/ { if(a==65) printf("%c%c%c\n",90,a,a+1); else if(a==90) printf("%c%c%c\n",a-1,a,65); else printf("%c%c%c\n",a-1,a,a+1); } else { if(a==97) printf("%c%c%c\n",122,a,a+1); else if(a==122) printf("%c%c%c\n",a-1,a,97); else printf("%c%c%c\n",a-1,a,a+1); } getch(); }。
一.單項選擇題(每題2分,共20分) 1.下面C語(yǔ)言的標識符中,哪個(gè)不合法______。
A._total B.Large tall C.int_ D._while 2. C語(yǔ)言源程序經(jīng)過(guò)編譯連接最后生成的文件,其后綴名是______。 A.”.c” B.”.obj” C.”.exe” D.”.bas” 3. 表達式x&&1等價(jià)于______。
A.x!=0 B.x==0 C.x!=-1 D.x==-1 4. 若變量k已正確定義且k的值是4,計算表達式(j=k++)后,______。 A.k=4,j=4 B.j=4,k=5 C.j=5,k=4 D.j=5,k=5 5. C語(yǔ)言中,函數若沒(méi)有聲明返回值的類(lèi)型,默認的類(lèi)型是_______。
A.int B.long C. float D.double 6. 若p1和p2都是指向int類(lèi)型變量的指針,p1已經(jīng)指向變量x,要使p2也指向x,則_____是正確的。 A.p2=&*p1; B.p2=&&p1; C.p2=&p1; D.p2=*p1; 7. 下列程序段輸出是_____________。
int a[]={1,3,5,7,9}; int *b=a+2; printf(“%d”,*b++); A.3 B.5 C.7 D.9 8. 執行下列程序: #define FB(a,b) (a*b+1) int k=3; k=FB(FB(k,k+1),k)-7; 后變量k的值是_____________。 A.7 B.24 C.27 D.33 9. 在某C程序中調用了puts函數。
在程序的編譯預處理部分應用#include 包含__________。 A.”math.h” B.”string.h” C.”stdio.h” D.”ctype.h” 10. 設有結構定義如下: struct student{ int num; char name[30]; float score; }stud1; 則標準的ANSI C(如TC)下,計算sizeof(stud1)的值為_(kāi)___________。
A.9 B.16 C.25 D.36 二、填空題(每題3分,共24分) 1.寫(xiě)出語(yǔ)句printf(“%d,%o,%x”,'a'/4,0x14,014);的輸出結果__________。 2.寫(xiě)出計算 的C語(yǔ)言表達式__________。
3.寫(xiě)出下列程序段的輸出結果是_______________________。 int m;char ss[10]=”12345”,*s=ss; for(m=10;m!=0;m--); printf(“%d”,m); while(*s++) putchar(*++s); 4.下列程序段的輸出結果是______________________。
#include “stdio.h" int x; void f(int x) {static int a=1; printf(“%d,”,a); a+=x+2; } void main() {int k; for(k=1;k0)?2*f(n-1)+f(n-2):1);} 6. 下列程序的輸出結果是__________________。 #include “stdio.h" void main() {int x=3,y=6,z=0; while(x++)!=(y-=1)) {z++; if(x。
/*全部運行通過(guò),剛才沒(méi)編題號,這次不上,所有程序要分開(kāi)運行*/ /*第一題*/ #include"stdio。
h" main() { int a,b,c,t; printf("input a b c: "); scanf("%d%d%d",&a,&b,&c); t=a; if(t>b) t=b; if(t>c) t=c; printf("%d ",t); } /*第二題*/ #include"stdio。 h" main() { int a,b,t; printf("input a b: "); scanf("%d%d",&a,&b); t=a*b; printf("%d ",t0); } /*第三題*/ #include"stdio。
h" main() { char a[100],ch; int n,i=0; printf("input : "); ch=getchar(); while(ch!=' ') { a[i ]=ch; ch=getchar(); } n=i; for(i=0;i='a'&&a[i]a[i]=a[i]-32; printf("%c",a[i]); } printf(" "); } /*第四題*/ #include"stdio。 h" #include "math。
h" main() { int m,i,k,h=0,leap=1; printf(" "); for(m=10;m{ k=sqrt(m 1); for(i=2;iif(m%i==0) {leap=0;break;} if(leap) {printf("%-4d",m);h ; if(h==0) printf(" "); } leap=1; } printf(" The total is %d",h); } /*第五題*/#include"stdio。 h"main(){ int i=123456,c; c=123456%7 1; switch(c) { case 1:printf("星期天");break; case 2:printf("星期一");break; case 3:printf("星期二");break; case 4:printf("星期三");break; case 5:printf("星期四");break; case 6:printf("星期五");break; case 7:printf("星期六");break; }}/*第六題*/ #include"stdio。
h" main() { int i,count=0; for(i=1;i{ if(i%2!=0&&i%3!=0) { printf("%d ",i); count ; } if(count==10) { printf(" "); count=0; } } printf(" "); } /*第七題*/ //輸入一個(gè)數字按一次回車(chē) #include"stdio。 h main() { int m=0,c; printf("input : "); scanf("%d",&c); while(c!=0) { m =c; printf("input : "); scanf("%d",&c); } printf("%d ",m); } /*第八題*/ #include"stdio。
h main() { int r,w,b; for(w=1;wfor(r=0;rfor(b=0;bif((w r b)==8) printf("white ball:%d red ball:%d black ball:%d ",w,r,b); }。
C 語(yǔ)言過(guò)關(guān)測試題 一、順序結構 1、請編寫(xiě)一個(gè)程序,求一個(gè)正方的周長(cháng)。
2、請編寫(xiě)一個(gè)程序,求一個(gè)長(cháng)方形的周長(cháng)。 3、請編寫(xiě)一個(gè)程序,求一個(gè)三角形的周長(cháng)。
4、請編寫(xiě)一個(gè)程序,從鍵盤(pán)輸入兩個(gè)整數,要求求和然后輸出和。 例如: 輸入 1 4 輸出 5 5、要求從鍵盤(pán)輸入一個(gè)三位數,要求百位變十位,十位變個(gè)位,個(gè)位變百位: 例如: 輸入 123 輸出 312 6、輸入一個(gè)四位數要求按如下交換輸出: 例如 :輸入 1234 輸出 4321 7、輸入一個(gè)四位數要求輸入各位數字的和。
例如: 輸入 4567 輸出 22 8、編一程序,鍵盤(pán)輸入整數A,B的值,然后打印A除以B的商的整數部分及余數。 9、輸入一個(gè)時(shí)、分、秒,把它轉換為一個(gè)秒數。
例如 輸入 2 3 4 代表2小時(shí)3分鐘4秒 輸出 7384 代表一共有7384 秒 10、求三角形面積:給出三角形的三個(gè)邊長(cháng)為a,b,c,求三角形的面積。 提示: 根據海倫公式來(lái)計算三角形的面積: cba ++))()(( cSbSaSS ---2 S =;Area= 11、編一程序,從鍵盤(pán)輸入整數 A,B 的值,然后把 A,B 的值交換后輸出。
從鍵盤(pán)輸入 兩個(gè)整數,打印出更小的那個(gè)數。 二、選擇結構 13、讀入三個(gè)整數,從小到大輸出。
14、從鍵盤(pán)輸入一個(gè)數,判斷它的奇偶性,如果是奇數則輸出yes,否則輸出no。 15、從鍵盤(pán)讀入一個(gè)數,判斷它的正負。
是正數,則輸出"+",是負數,則輸出"-"。 16、從鍵盤(pán)輸入一個(gè)數,如果是兩位數那么輸出yes否則輸出no。
17、輸入兩個(gè)數a,b,輸出較大數的平方值。 18、鐵路托運行李規定:行李重不超過(guò) 50 公斤的,托運費按每公斤 0.15 元計費;如超50公斤,超過(guò)部分每公斤加收0.10元。
編一程序完成自動(dòng)計費工作。 19、某超市為了促銷(xiāo),規定:購物不足 60 元的按原價(jià)付款,超過(guò) 60 不足 200 的按九 折付款,超過(guò)200元的,超過(guò)部分按八折付款。
編一程序完成超市的自動(dòng)計費的工作。 20、打印某年某月有多少天。
(提示:A、閏年的計算方法:年數能被4整除,并且不能被100 整除;或者能被 400 整除的整數年份。B、利用%運算可以判斷一個(gè)數能否被另一個(gè) 數整除)。
21、編寫(xiě)一個(gè)程序,功能是從鍵盤(pán)輸入一個(gè)整數,判斷它是否二位數,如果是,就打印它,然后結束程序, 22、編寫(xiě)一個(gè)程序,功能是從鍵盤(pán)輸入三個(gè)整數,打印出其中最大的一個(gè)值。 23、當前小學(xué)生的成績(jì)單由以前的百分制改為優(yōu)秀、良好、合格、不合格 制。
編一程序完成分數的自動(dòng)轉換工作。轉換規則如下:60 分以下的為不合格;60到69 分為合格;70到89分為良好;90 分以上的為優(yōu)秀。
(提示:可以利用整除運算來(lái)使程序 更簡(jiǎn)明) 三、循環(huán)結構 分別用for,while/do –while 循環(huán)做以下習題。 24、計算1—1000之間能同時(shí)被3和5整除的整數的和。
25、求所有的三位數中十位數能被個(gè)位數和百位數之和整除的數。 26、求水仙花數。
所謂水仙花數,是指一個(gè)三位數abc,如果滿(mǎn)足a^3+b^3+c^3=abc,則abc是水仙花數。 27、求所有滿(mǎn)足條件的四位數: (1)這四位數是11的倍數; (2)b+c=a; 28、計算下列式子的值: 28a (1)1+3+……+99 28b (2)1+2+4+8+…+1024 29、輸入一個(gè)整數,計算它各位上數字的和。
(注意:是任意位的整數) 30、輸入一整數 A,判斷它是否質(zhì)數。(提示:若從 2 到 A 的平方根的范圍內,沒(méi)有一個(gè) 數能整除A,則A是質(zhì)數。)
用for循環(huán)做以下習題 31、1+3+5+…..+…..99=? 32、1+1/2+1/3+1/4+……1/100=? 33、1*2+2*3+3*4+……+n*(n+1)=? 34、1+1/2!+1/3!+…..1/n!=? 37、1+(1+3)+(1+3+5)+ ……(1+3+5+……+n)=?n為奇數。 38、s=-1+3-5+7-9+……n n為奇數。
四、綜合練習題 39、計算下列式子的值: (1)1+2+……+1000 1a (2)1+3+5+……+97+99 2a (3)1+2+4+8+…+1024 3a 40、輸入一個(gè)四位數,求它各位上數字的和。 41、求所有的三位數中十位數能被個(gè)位數和百位數之和整除的數。
46、求兩個(gè)數的最小公倍數和最大公約數。(提示:公約數一定小于等于兩數中的小數,且能整除兩數中的大數。
公倍數一定大于等于兩數中的大數,且是大數的倍數,又能給兩 數中的小數整除。) 47、編寫(xiě)一個(gè)譯碼程序,把一個(gè)英語(yǔ)句子譯成數字代碼。
譯碼規則是以數字1代替字母A,數字2 代替字母B,……,26代替字母Z,如遇空格 ‘*’,英文句子以‘.‘結 束。 48、“百錢(qián)買(mǎi)百雞”是我國古代的著(zhù)名數學(xué)題。
題目這樣描述:3 文錢(qián)可以買(mǎi) 1 只公雞,2 文錢(qián)可以買(mǎi)一只母雞,1文錢(qián)可以買(mǎi)3只小雞。用100文錢(qián)買(mǎi)100只雞,那么各有公雞、母雞、小雞多少只?與之相似,有"雞兔同籠"問(wèn)題。
49、輸入一個(gè)正整數N,把它分解成質(zhì)因子相乘的形式。 如:36=1 X 2 X 2 X 3 X 3; 19=1 X 19 52、計算1—1000之間能同時(shí)被3和5整除的整數的和。
53、打印下列圖形: 1 121 12321 1234321 12321 121 1 54、一百匹馬馱一百塊瓦,一匹大馬可以馱 3 塊,一匹母馬可馱 2 塊,小馬 2 匹可馱 1 塊。試編程求需要各種馬多少匹? 55、有三種紀念郵票,第一種每套一張售價(jià)2元,第二種每套一張售價(jià)4元,第三種每套9 張售價(jià)2元。
現用100元買(mǎi)了100張郵票,問(wèn)這三種郵票各買(mǎi)幾張? 57、找數。一個(gè)三位數,各位數字互不相同,十位數字比個(gè)位、百位數字之。
C語(yǔ)言實(shí)驗參考答案實(shí)驗一5、輸入并運行自已編寫(xiě)的程序(教材第一章P14 三 編程題)。
實(shí)驗二1、編寫(xiě)一個(gè)程序,從鍵盤(pán)接收3個(gè)實(shí)數(分別為10.0、20.0、5.0),輸出這3個(gè)數的和s、乘積t和平均值a。#include main(){float x,y,z,s,t,a;printf(“x,y,z=”);scanf(“%f,%f,%f”,&x,&y,&z);s=x+y+z;t=x*y*z;a=s/3;printf(“s=%f,t=%f,a=%f\n”,s,t,a);}2、編程。
要求用戶(hù)輸入兩個(gè)整數a、b(分別為20、10), 讀取用戶(hù)從鍵盤(pán)輸入的值,然后:1)用整數輸出這兩個(gè)數的和、差;2)用長(cháng)整型輸出這兩個(gè)數的積,用float輸出商;3)用整數輸出這兩個(gè)數的余數,用float輸出平均值。#include main(){int a,b,he,cha,yu;long ji;float shang,aver;printf(“a,b=”);scanf(“%d,%d”,&a,&b);he=a+b;cha=a-b;ji=(long)a*b;shang=1.0*a/b;yu=a%b;aver=(a+b)/2.0;printf(“a+b=%d,a-b=%d,a*b=%ld\n”,he,cha,ji);printf(“a/b=%f,a%%b=%d,aver=%f\n”,shang,yu,aver);}實(shí)驗三1、編寫(xiě)一個(gè)程序,從鍵盤(pán)接收一個(gè)一位的整型數,經(jīng)轉換,用字符函數putchar輸出。
例如,輸入整數5,程序運行后輸出字符5。#include main(){int a;char c;printf(“a=”);scanf(“%d”,&a);c=a+48;putchar(c);}2、編程。
輸入半徑,計算球體表面積( )和球體積 ( )。#include #define PI 3.1415926main(){float r,s,v;printf(“r=”);scanf(“%f”,&r);s=4*PI*r*r;v=4/3.0*PI*r*r*r;printf(“s=%f,v=%f\n”,s,v);}3、編寫(xiě)一個(gè)程序,要求通過(guò)鍵盤(pán)給6個(gè)變量賦值,然后將變量的值在屏幕上打印輸出。
這六個(gè)變量的值分別為:10,-10,40000,a,3.14,hello。#include main(){int a,b;long c;char d,ch[6];float e;scanf(“%d,%d,%ld,%c,%f,%s”,&a,&b,&c,&d,&e,ch);printf(“%d,%d,%ld,%c,%f,%s\n”,a,b,c,d,e,ch);}實(shí)驗四1、輸入三個(gè)整數,分別存放到變量a,b,c中,試編程輸出其中的最小值。
#include main(){int a,b,c,min;printf(“a,b,c=”);scanf(“%d,%d,%d”,&a,&b,&c);min=a>b?(b>c?c:b):(a>c?c:a);printf(“min=%d\n”,min);}2、輸入一個(gè)字符,如是大寫(xiě)字母,則輸出相應小寫(xiě)字母;如是小寫(xiě)字母,則輸出相應大寫(xiě)字母;其它字符原樣輸出 。(例如:輸入F,輸出f,輸入b,輸出B,輸入7,輸出7)。
#include main(){char c,ch;c=getchar();ch=c;if(c>='A'&&c='a'&&c<='z') ch=c-32;putchar(ch);}實(shí)驗五1、函數 。⑴用條件表達式求函數值y。
⑵用if語(yǔ)句編程,輸入x,輸出y,并給出你所使用的測試用例。解(1)#include main(){int y;float x;printf(“x=”);scanf(“%f”,&x);y=x>0?1:(x==0?0:-1);printf(“y=%d\n”,y);}解(2)#include main(){int y;float x;printf(“x=”);scanf(“%f”,&x);if(x>0) y=1;else if(x==0) y=0;else y=-1;printf(“y=%d\n”,y);}2、試編程輸入成績(jì)cj(cj為整型變量),如果cj的值在[100,90]內輸出A,在(90,80]內輸出B,在(80,70]內輸出C,在(70,60]內輸出D,在(60,0]內輸出E,其它輸出錯誤信息。
請使用if語(yǔ)句和switch語(yǔ)句分別實(shí)現。解(1)#include main(){int cj;printf(“cj=”);scanf(“%d”,&cj);if(cj>=90&&cj=80&&cj=70&&cj=60&&cj=0&&cj<60) printf(“E\n”);else printf(“輸入錯誤\n”);}解(2)#include main(){int cj,n;printf(“cj=”);scanf(“%d”,&cj);n=(cj>=0)+(cj>=60)+(cj>=70)+(cj>=80)+(cj>=90)+(cj>100);switch(n) {case 5:printf(“A\n”);break; case 4:printf(“B\n”); break; case 3:printf(“C\n”); break; case 2:printf(“D\n”); break; case 1:printf(“E\n”); break;default:printf(“輸入錯誤\n”); }}實(shí)驗六1、編程:輸出200以?xún)人心鼙?整除的數。
#include main(){int i;for(i=0;i<=200;i+=7) printf(“%4d”,i);}2、從鍵盤(pán)輸入n個(gè)數(n<10),找出其中最小值,請編寫(xiě)相應程序。#include main(){int n,i,a,min;printf(“n=”);scanf(“%d”,&n);for(i=1;ia)min=a;} printf(“min=%d”,min);}3、鍵盤(pán)輸入正整數m和n(m<n),計算m~n之間所有奇數之和x與偶數之和y,請編程實(shí)現。
#include main(){int m,n,i,x1=0,x2=0;printf(“input m,n(m<n):”);scanf(“%d,%d”,&m,&n);for(i=m;i<=n;i++) if(i%2==1)x1+=i; else x2+=i;printf(“x1(奇數之和)=%d,x2(偶數之和)=%d\n”,x1,x2);}實(shí)驗七1、打印出所有的"水仙花數",所謂的"水仙花數"是指一個(gè)3位數,其各位數字的立方和等于該數本身。例如,153是一個(gè)"水仙花數",因為有153=1*1*1+5*5*5+3*3*3 。
解(1)#include main(){int a,b,c,n;for(a=1;a<=9;a++)for(b=0;b<=9;b++)for(c=0;c<=9;c++) {n=100*a+10*b+c; if(n==a*a*a+b*b*b+c*c*c) printf(“%d\n”,n);}}解(2)#include main(){int a,b,c,n;for(n=100;n<=999;n++) {a=n/100; b=n%100/10; c=n%10; if(n==a*a*a+b*b*b+c*c*c) printf(“%d\n”,n);}}2、請分別用三種循環(huán)結構編程計算: 1!+2!+3!+。+n! , n的值由鍵盤(pán)輸入。
解(1)#include 。
#include #include typedef struct LNode { int data; LNode *next; }LNode, *LinkList; typedef struct { int *Num; int top; int stackment; // 停車(chē)場(chǎng)最大的停車(chē)輛 }SqStack; typedef LinkList QueuePtr; typedef struct { QueuePtr front; QueuePtr rear; }LinkQueue; void InitStack(SqStack &S); void InitQueue(LinkQueue &Q); void PutIn(SqStack &S, LinkQueue &Q); void GetOut(SqStack &S, LinkQueue &Q); void StackTraverse(SqStack S); void QueueTraverse(LinkQueue Q); int main() { char ch, c; SqStack S; LinkQueue Q; InitStack(S); InitQueue(Q); while(1) { fflush(stdin); printf("*** 進(jìn)入停車(chē)場(chǎng): 'A' ***\n"); printf("*** 退出停車(chē)場(chǎng): 'D' ***\n"); printf("*** 退出操作: '0' ***\n"); printf("\n請輸入命令: "); ch = getchar(); c = getchar(); switch(ch) { case 'A': PutIn(S, Q); break; case 'D': GetOut(S, Q); break; case '0': exit(-1); default: printf("輸入有誤!\b"); exit(-1); } StackTraverse(S); QueueTraverse(Q); } return 0; } void PutIn(SqStack &S, LinkQueue &Q) { int i, n, tag = 0; LNode *p, *q; q = (LNode *)malloc(sizeof(LNode)); if(q == NULL) { printf("內存分配失敗!\n"); exit(-1); } while(!tag) { printf("請輸入車(chē)號: "); scanf("%d", &n); for(i = 0; i S.top) tag = 1; q = Q.front->next; // 若車(chē)號在隊列中存在 while(q != NULL && Q.front != Q.rear) { if(q->data == n) { printf("車(chē)號已存在! 請重新輸入!\n"); tag = 0; break; } else q = q->next; } } if(S.top != 4) // 若棧不滿(mǎn) S.Num[++S.top] = n; else // 若棧滿(mǎn),則進(jìn)入隊列 { p = (LNode *)malloc(sizeof(LNode)); if(p == NULL) { printf("內存分配失敗!\n"); exit(-1); } p->data = n; p->next = NULL; Q.rear->next = p; Q.rear = p; } } void GetOut(SqStack &S, LinkQueue &Q) { int i, n, tag = 0; LNode *p; SqStack S1; InitStack(S1); if(S.top < 0) // 停車(chē)場(chǎng)空 { printf("停車(chē)場(chǎng)已空!情況如下!\n\n"); return; } while(!tag) { printf("請輸入車(chē)號: "); scanf("%d", &n); for(i = 0; i = 0; i--) // 臨時(shí)棧的車(chē)重新入棧 S.Num[++S.top] = S1.Num[S1.top--]; if(Q.front != Q.rear) // 若便道有待進(jìn)棧的車(chē) { p = (LNode *)malloc(sizeof(LNode)); if(p == NULL) { printf("內存分配失敗!\n"); exit(-1); } p = Q.front->next; S.Num[++S.top] = p->data; Q.front ->next = p->next ; free(p); } } void InitStack(SqStack &S) { S.stackment = 5; S.Num = (int *)malloc((S.stackment-1) * sizeof(int)); if(S.Num == NULL) { printf("內存分配失敗!\n"); exit(-1); } S.top = -1; } void InitQueue(LinkQueue &Q) { LNode *head; head = (LNode *)malloc(sizeof(LNode)); if(head == NULL) { printf("內存分配失敗!\n"); exit(-1); } Q.front = head; Q.rear = head; Q.front->next = NULL; } void StackTraverse(SqStack S) { int i; printf("停車(chē)場(chǎng)的情況:\n"); printf("┏━━━━━━━━\n"); printf("┃"); for(i = 0; i next; while(p != NULL && Q.front != Q.rear) { printf(" %d", p->data); p = p->next; } printf("\n ━━━━━━━━\n"); } 題目有點(diǎn)出入,這是我以前寫(xiě)的,自己適當的加一點(diǎn)代碼吧。
附我的編程題目:設停車(chē)場(chǎng)內只有一個(gè)可停放幾輛汽車(chē)的狹長(cháng)通道,且只有一個(gè)大門(mén)可供汽車(chē)進(jìn)出。汽車(chē)在停車(chē)場(chǎng)內按車(chē)輛到達時(shí)的先后順序,依次由北向南排列(大門(mén)在最南端,最先到達的第一輛車(chē)停放在車(chē)場(chǎng)的最北端),若車(chē)場(chǎng)內已停滿(mǎn)幾輛汽車(chē),則后來(lái)的汽車(chē)只能在門(mén)外的便道上等候,一旦停車(chē)場(chǎng)內有車(chē)開(kāi)走,則排在便道上的第一輛車(chē)即可開(kāi)入;當停車(chē)場(chǎng)內某輛車(chē)要離開(kāi)時(shí),由于停車(chē)場(chǎng)是狹長(cháng)的通道,在它之后開(kāi)入停車(chē)場(chǎng)的車(chē)輛必須先退出車(chē)場(chǎng)為它讓路,待該輛車(chē)開(kāi)出大門(mén)外后,為它讓路的車(chē)輛再按原次序進(jìn)入車(chē)場(chǎng)。
在這里假設汽車(chē)不能從便道上開(kāi)走。試設計一個(gè)停車(chē)管理程序。
1、接受命令(A:入,D:出)和車(chē)號,若是汽車(chē)要進(jìn)停車(chē)場(chǎng),先判斷停車(chē)場(chǎng)棧是否滿(mǎn),若不滿(mǎn),則汽車(chē)入棧,否則汽車(chē)入便道隊列等候。 2、若是汽車(chē)要離開(kāi)停車(chē)場(chǎng),為該汽車(chē)讓路,將停車(chē)場(chǎng)棧上若干輛汽車(chē)入臨時(shí)棧,等這輛汽車(chē)出停車(chē)場(chǎng)后,臨時(shí)棧中的汽車(chē)出棧,再回到停車(chē)場(chǎng)棧,然后看便道隊列是否為空,若不空,則說(shuō)明有汽車(chē)等候,從隊頭取出汽車(chē)號,讓該車(chē)入停車(chē)場(chǎng)棧。
3、重復1、2直到為退出命令(車(chē)號為0或負數)。
你的函數基本改好:
#include<stdio.h>
void main()
{
char ch;
printf("please input your name's first letter:");
putchar(ch=getchar()); //輸出剛才你輸入的字符 賦值給ch
putchar('\n');
printf("Hello!\n");
printf("This is a c program\n");
printf("My name is %c",ch); //輸出ch
}
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:3.718秒