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