第1章習(xí)題
一、選擇題
1、A
2、D
3、C
4、D
5、B
6、C
7、C
8、B
9、B
10、A
二、填空題
1、一,函數(shù)體
2、main(主),main(主)
3、編譯,目標(biāo)
4、.c,.obj,.exe
5、縮進(jìn),無(wú)影響,/* */
三、程序分析題
1、***************** Very good!*****************
2、a=12,b=5 a=17,b=22
3、r= 5.50,s=95.033098
四、編程題
1.用printf()函數(shù)在屏幕上輸出自己的班級(jí)、學(xué)號(hào)、姓名。#include“stdio.h” void main(){ printf(“班級(jí):BX1109n”);printf(“學(xué)號(hào):111003530901n”);printf(“姓名:王孟榮n”);}
2.從鍵盤輸入兩個(gè)整數(shù),計(jì)算它們的和、差、積、商,并在屏幕上輸出結(jié)果。
#include void main(){ int x,y,a,b,c;float d;printf(“Please Input Two Integers:n”);scanf(“%d%d”,&x,&y);a=x+y;b=x-y;c=x*y;d=1.0*x/y;printf(“a=%dnb=%dnc=%dnd=%fn”,a,b,c,d);}
第2章習(xí)題
一、選擇題 1~5 BCDCD 6~10 DBBCA
二、填空題
1.單精度浮點(diǎn)型、雙精度浮點(diǎn)型、字符型 2.0 3.x%10*10+x/10 4.5.5 5.5.7 20 6.sin(sqrt(x*x))/(a*b)7.,8.1111011 173 7B 9.3 3 10.3
三、程序分析題 1. 7,8,10 2. 1,3 3.5 F 4.(int)i=12, 12.50 5. 4 61 57 9 112
四、編程題
1.編寫程序,求表達(dá)式c=21%9-(float)a+4/b*b的值,假設(shè)表達(dá)式中a和b的值分別由鍵盤輸入。
#include void main(){ int a,b;float c;printf(“Please input data a,b: ”);scanf(“%d%d”,&a,&b);c=21%9-(float)a+4/b*b;printf(“c=%5.2fn”, c);} 2.編寫程序,從鍵盤輸入兩個(gè)整數(shù)存入變量a和b中,求a2-b2的值并輸出。#include void main(){ int a,b,c;printf(“Please input data a,b: ”);scanf(“%d%d”,&a,&b);c=a*a-b*b;printf(“c=%dn”, c);}
第3章習(xí)題
一、選擇題 1 D 2 C 3 A、B A B B B、C B D D
二、填空題
1.有窮性 確定性 可行性 2.# 3.從終端(鍵盤)輸入一個(gè)字符 4.m d 5.97,g 6.123.456000, 123.46, 123 7.格式控制符不正確(輸入數(shù)據(jù)時(shí)不能控制列寬和小數(shù)位數(shù))8.63,63,77,3f 9.%f%f &x,&y 10. ch ch
三、程序分析題 1.c=11 2.a=123 f=457 3.x=345 y=3.460000 4.a=1,b=3 a=3,b=1 5.(題目需修改為:從鍵盤輸入一個(gè)除a和z以外的小寫字母)
程序的功能:從鍵盤輸入一個(gè)除a和z以外的小寫字母,求出該字母對(duì)應(yīng)的大寫字母的前趨和后繼字母,然后順序輸出此三個(gè)大寫字母,每個(gè)字母所占列寬為3。運(yùn)行結(jié)果: 假如輸入:f ' 輸出: E F G
四、編程題
1.編寫程序,計(jì)算的值并輸出(保留3位小數(shù)),其中a、b的值由鍵盤輸入。#include #include void main(){ float a, b,x;scanf(“%f%f”, &a, &b);x=(a*a+b*b)/sqrt(3*(a+b));printf(“x=%.3fn”,x);}
2.編寫程序,從鍵盤輸入一個(gè)梯形的上底a、下底b和高h(yuǎn),輸出梯形的面積s。
#include #include void main(){ float a, b,h,s;scanf(“%f,%f,%f”, &a,&b,&h);s=(a+b)*h/2;printf(“梯形面積s=%.2fn”,s);}
3.編寫程序,在屏幕上輸入你姓名的第一個(gè)字母,顯示出該字母以及下面的信息: Hello!This is a c program.My name is [第一個(gè)字母]
#include void main(){ char name;name=getchar();putchar(name);printf(“nHello!n”);printf(“This is a c program.n”);printf(“My name is %cn”,name);}
第4章習(xí)題
一、選擇題 1 B 2 B 3 C B C A C B A C C
二、填空題 1.!&& || 2.1 3.a b 4.1 5.0 6.x%4= =0 && x%100!=0 7.5 6 8.A 9.x<0 || x>10 && x<50 10.-1
三、程序分析題 1. No 2.-2 3.5 3 2 4. #& 5.(1)2(2)3 CC a=2,b=2,c=4
四、編程題
1.有一個(gè)函數(shù)如下: x2-2(x<5)y= 3x+5(5≤x<50)x-(x≥50)
編寫程序,輸入x的值,計(jì)算相應(yīng)的y值輸出(保留3位小數(shù))。#include #include void main(){ float x,y;scanf(“%f”, &x);if(x<5)y=x*x-2;else if(x<50)y=3*x+5;else y=x-sqrt(4*x-1);printf(“x=%f, y=%.3fn”, x,y);}
2.編寫一個(gè)程序,根據(jù)輸入的三角形的三條邊判斷是否能組成三角形,如果可以則輸出它的面積和三角形類型(等邊、等腰、直角、一般三角形)。#include #include void main(){ float a, b, c, s, area;scanf(“%f,%f,%f”, &a,&b,&c);if(a+b>c && b+c>a && a+c>b){ s=(a+b+c)/2;area=sqrt(s*(s*(s-a)*(s-b)*(s-c)));printf(“area=%fn”,area);if(a==b && b==c)printf(“等邊三角形n”);else if(a==b || a==c || b==c)printf(“等腰三角形n”);else if((a*a + b*b== c*c)||(a*a + c*c== b*b)||(b*b + c*c == a*a))printf(“直角三角形n”);else printf(“一般三角形n”);} else printf(“不能組成三角形n”);}
3.設(shè)獎(jiǎng)金稅率r有如下的要求(n代表獎(jiǎng)金): 0 n<1000 5% 1000≤n<2000 r= 8% 2000≤n<3000 10% 3000≤n<6000 15% 6000≤n
用switch多分支選擇語(yǔ)句編寫程序,輸入獎(jiǎng)金值,計(jì)算并輸出相應(yīng)的稅率和實(shí)際應(yīng)得獎(jiǎng)金值。
#include void main(){ float n, r, s;int m;printf(“請(qǐng)輸入獎(jiǎng)金值:”);scanf(“%f”, &n);if(n>=6000)m=6;else m=n/1000;switch(m){ case 0: r=0;break;case 1: r=0.05;break;case 2: r=0.08;break;case 3: case 4: case 5: r=0.1;break;case 6: r=0.15;break;} s=n-r*n;printf(“稅率r=%.0f%%, 獎(jiǎng)金值n=%.2f, 實(shí)際應(yīng)得獎(jiǎng)金值s=%.2fn”,r*100, n, s);}
4.從鍵盤輸入任意4個(gè)數(shù)a、b、c、d,按照從大到小的順序排列后重新輸出。#include void main(){ int a, b, c, d,t;scanf(“%d,%d,%d,%d”, &a,&b,&c,&d);if(a5.給出一個(gè)不超過4位數(shù)的正整數(shù),判斷它是幾位數(shù),并按逆向輸出各位數(shù)字。例1234,輸出為4321。#include void main(){ int num,i,j,k,m;printf(“輸入一個(gè)少于4位的正整數(shù):”);scanf(“%d”,&num);if(num>=0 && num<=9999){ if(num>1000 && num<=9999){ printf(“是一個(gè)4位數(shù)n”);m=num%10;/*求個(gè)位上的數(shù)字*/ k=num/10%10;/*求十位上的數(shù)字*/ j=num/100%10;/*求百位上的數(shù)字*/ i=num/1000;/*求千位上的數(shù)字*/ printf(“逆序數(shù)為:%d%d%d%dn”,m,k,j,i);} else if(num>=100){ printf(“是一個(gè)3位數(shù)n”);m=num%10;/*求個(gè)位上的數(shù)字*/ k=num/10%10;/*求十位上的數(shù)字*/ j=num/100;/*求百位上的數(shù)字*/ printf(“逆序數(shù)為:%d%d%dn”,m,k,j);} else if(num>=10){printf(“是一個(gè)2位數(shù)n”);m=num%10;/*求個(gè)位上的數(shù)字*/ k=num/10;/*求十位上的數(shù)字*/ printf(“逆序數(shù)為:%d%dn”,m,k);} else {printf(“是一個(gè)1位數(shù)n”);printf(“逆序數(shù)為:%dn”,num);} } else printf(“是一個(gè)無(wú)效的數(shù)n”);}
第5章習(xí)題
一、選擇題 1 B 2 C 3 B C A B D B A B
二 填空題
1.循環(huán) switch 2.4,7 3.6 4.# # 5.0 2 6.18 7.1 8.sum=80 9.c=getchar()n:m 10.i %13= =0 break 三 程序分析題 1.output1:21 6 output2: 5 6 output3: 5 7 7 2.n=7 3.Max=18 Min=3 4.1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 5.0 1 2 3 1 2 3 0 2 3 0 1 3 0 1 2
四、編程題
1.從鍵盤上輸入若干字符,以按Enter鍵結(jié)束,統(tǒng)計(jì)其中字符A或a的個(gè)數(shù)。#include “stdio.h” main(){ char ch;int k=0;while((ch=getchar())!='n'){ if(ch=='A' || ch=='a')k=k+1;} printf(“%dn”,k);} 2.利用=×…的前100項(xiàng)之積計(jì)算p的值。#include main(){ double term, result = 1;/*累乘項(xiàng)初值應(yīng)為1*/ int n;for(n=2;n<=100;n = n + 2){ term=(double)(n * n)/((n-1)*(n+1));/*計(jì)算累乘項(xiàng)*/ result = result * term;} printf(“result = %fn”, 2*result);} 3.用1元5角錢人民幣兌換5分、2分和1分的硬幣(每一種都要有)共100枚,問共有幾種兌換方案?每種方案各換多少枚? #include main(){ int x,y,z,count=0;for(x=1;x<=28;x++)for(y=1;y<=73;y++){ z=100-x-y;if(5*x+2*y+z==150){ count++;printf(“%d,%d,%dn”,x,y,z);} } printf(“count=%dn”,count);} 4.雞兔同籠,共有98個(gè)頭,386只腳,編程求雞、兔各多少只。#include main(){ int x, y;for(x=1;x<=97;x++){ y=98-x;if(2*x+4*y==386)printf(“雞=%d,兔=%d”,x,y);} } 5.將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。#include main(){ int n,i;printf(“nplease input a number:n”);scanf(“%d”,&n);printf(“%d=”,n);for(i=2;i<=n;i++)while(n!=i){ if(n%i==0){ printf(“%d*”,i);n=n/i;} else break;} printf(“%d”,n);6.從鍵盤任意輸入一個(gè)4位數(shù)x,編程計(jì)算x的每一位數(shù)字相加之和。例如,輸入x為1234,則由1234分離出其千位
1、百位
2、十位
3、個(gè)位4,然后計(jì)算1+2+3+4=10,并輸出10。#include #include main(){ int i1,i2,i3,i4,k,n;printf(“Inputdatais:”);scanf(“%d”,&n);k=fabs(n);/*取絕對(duì)值*/ i1=k/1000;/*分離出千位*/ i2=(k-i1*1000)/100;/*分離出百位*/ i3=(k-i1*1000-i2*100)/10;/*分離出十位*/ i4=k%10;/*分離出個(gè)位*/ printf(“The sum of the total bit is %dn”,i1+i2+i3+i4);}
7.打印出所有“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個(gè)水仙花數(shù),因?yàn)?53=13+53+33。#include void main(){ int i,j,k,n;printf(“parcissus numbers are:n”);for(n=100;n<1000;n++){ i=n/100;j=n/10-i*10;k=n%10;if(n==i*i*i+j*j*j+k*k*k)printf(“%dn”,n);} }
8.利用泰勒級(jí)數(shù)sin(x)≈計(jì)算sin(x)的值。要求最后一項(xiàng)的絕對(duì)值小于10-5,并統(tǒng)計(jì)出此時(shí)累加了多少項(xiàng)(x由鍵盤輸入)。#include #include main(){ int n=1,count=1;float x;double sum,term;/*因?yàn)槲粩?shù)多,所以定義為雙精度 */ printf(“Input x: ”);scanf(“%f”, &x);sum=x;term=x;/*賦初值*/ do { term=-term*x*x/((n+1)*(n+2));sum=sum+term;/*累加 */ n=n+2;count++;}while(fabs(term)>=1e-5);printf(“sin(x)=%.1f,count=%dn”,sum,count);} 9.編寫一個(gè)猜數(shù)游戲:任意設(shè)置一個(gè)整數(shù),請(qǐng)用戶從鍵盤上輸入數(shù)據(jù)猜想設(shè)置的數(shù)是什么,告訴用戶是猜大了還是小了。10次以內(nèi)猜對(duì),用戶獲勝;否則,告訴用戶設(shè)置的數(shù)據(jù)是什么。
#include void main(){int num=123,x,n;printf(“hint:0num)printf(“bigger!n”);if(x10.編程輸出以下圖案。* *** ***** ******* ***** *** * #include main(){ int i,j;for(i=1;i<=4;i++){ for(j=20-i;j>=1;j--)printf(“%c”,' ');for(j=0;j<2*i-1;j++)printf(“*”);printf(“n”);} for(i=3;i>=1;i--){ for(j=20-i;j>=1;j--)printf(“%c”,' ');for(j=0;j<2*i-1;j++)printf(“*”);printf(“n”);} }
第6章習(xí)題
一、選擇題 1 D 2 A 3 D B D C B D B D
二 填空題 1.0 2.14 m 3.10 7 4.數(shù)據(jù)類型
5.strcpy(S2,S1)#include 6.0 3 7.7,6 8.sum=0 i==j a[i][j] 9.4 10.Tony 三 程序分析題 1.max=85 min=5 sum=180 aver=30.00 2.a=2 b=2 c=2 d=2 e=1 f=2 g=2 3.j=45 4.Ti_saCPorm Tss_Pgm 5.1 1 1 5
四、編程題
1.從鍵盤輸入15個(gè)整數(shù),存放在數(shù)組中,找出其中最小數(shù)并指出其所在的位置。#include #define N 15 main(){int min,i,j,a[N];printf(“Enter N integers:n”);for(i=0;ia[i]){ min=a[i];j=i;} printf(“%d,%d”,min,j);}
2.將輸入的十進(jìn)制正整數(shù)化為十六進(jìn)制數(shù)。#include main(){ int i,x,j,a[20];printf(“請(qǐng)輸入一個(gè)正整數(shù):”);while(1){ scanf(“%d”,&x);if(x<0)printf(“數(shù)據(jù)輸入錯(cuò)誤,請(qǐng)重新輸入一個(gè)正整數(shù):”);else break;} i=0;while(x){ a[i]=x%16;x=x/16;i++;} for(j=i-1;j>=0;j--)if(a[j]<=9)printf(“%d”,a[j]);else if(a[j]<=15)printf(“%c”,a[j]+'A'-10);printf(“n”);}
3.從鍵盤輸入一行字符,統(tǒng)計(jì)其中有多少單詞,假設(shè)單詞之間以逗號(hào)分隔。#include void main(){ char string[81];int i,num=0,word=0;char c;gets(string);for(i=0;(c=string[i])!='