《C語(yǔ)言程序設(shè)計(jì)》題庫(kù)及答案.doc
《《C語(yǔ)言程序設(shè)計(jì)》題庫(kù)及答案.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《《C語(yǔ)言程序設(shè)計(jì)》題庫(kù)及答案.doc(20頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 《C語(yǔ)言程序設(shè)計(jì)》復(fù)習(xí)題庫(kù) 1、計(jì)算下面公式的值。T=1/1!+1/2!+1/3!+……+1/m! 當(dāng)m=5時(shí)的結(jié)果(按四舍五入保留3位小數(shù))。(注:所有變量用float數(shù)據(jù)類型定義!)答案:1.717 2、程序填空:用*號(hào)輸出字母C的圖案。 #include "stdio.h" #include "conio.h" main() { _____________ printf(" *\n"); _____________ _____________ getch(); } 3、8232和9678,它們的個(gè)、十、百、千各位數(shù)字之和是15
2、的倍數(shù),8+2+3+2=15,9+6+7+8=30。編寫程序,求四位數(shù)的所有奇數(shù)中,這樣的數(shù)(各位數(shù)字之和是15的倍數(shù))的總和。(注:所有變量用long數(shù)據(jù)類型定義!) 答案:1533459
4、 /*下面程序的功能是:計(jì)算并輸出700以內(nèi)的最大的10個(gè)能被13或者17整除的自然數(shù)之和。請(qǐng)改正程序中的錯(cuò)誤,并運(yùn)行,最后給出程序運(yùn)行的正確結(jié)果。(注:只有一處錯(cuò)誤?。?/ 答案:6591
#include
3、2) && mc<=10 ) { if ((k%13==0) || (k%17==0)) { pm[mc] = k; mc++; } k--; } for( k=1;k<=10;k++ ) total += pm[k-1]; printf(" %d\n",total); } 5、求x = 1+1/5+1/7+1/9+…的近似值,直到最后一項(xiàng)的絕對(duì)值小于10-5為止。 6、計(jì)算如下公式的A20值。 A1=1, A2=1/(1+A1), A3=1
4、/(1+A2), A4=1/(1+A3), ......(按四舍五入保留10位小數(shù))。答案:0.6180339850 7、求[10,1600]之間能被7整除的奇數(shù)之和。答案:90965 8、函數(shù)mystrlen(char *s)的功能是求字符串s的長(zhǎng)度。請(qǐng)?zhí)羁铡? Int mystrlen(char *s) {int num=0; while( ) {____;} return ( ); } 9、[100,500]之間同時(shí)滿足除以7余5,除以5余3,除以3余1的整數(shù)之和。答案:1042 10、求[100,999]之間所有的素?cái)?shù)的個(gè)數(shù)。答案:143 11、編寫程序,求滿足下
5、列條件的所有四位數(shù)ABCD的個(gè)數(shù),該四位數(shù)是8的倍數(shù),且A+B=B+C,即第1位數(shù)加上第2位數(shù)等于第2位數(shù)加上第3位數(shù)。答案:110
12、 /*數(shù)列1,2,1,4,7,12,23…具有這樣的特征,從第四項(xiàng)(也就是4)開始,每一項(xiàng)是前三項(xiàng)之和,4=1+2+1,7=2+1+4,12=1+4+7….。下列程序的功能是求出該數(shù)列前10項(xiàng)的和。請(qǐng)改正程序中的錯(cuò)誤,并運(yùn)行修改后的程序,給出程序結(jié)果。(注:只有一處錯(cuò)誤?。?/
答案:311
#include
6、
for( k=3;k<10;k++ )
a[k] = a[k-1]+a[k-2]+a[k-3];
for( j=1;j<=10;j++ )
sum += a[j];
printf(" %ld\n",sum);
}
13、 /*求1到2000之間的雙胞胎數(shù)的對(duì)數(shù)。雙胞胎數(shù):兩素?cái)?shù)差為2稱為雙胞胎數(shù)。例如227和229是一對(duì)雙胞胎數(shù),它們都是素?cái)?shù)且差為2。*/ 答案:61
#include 7、_____) break;
if(k==x) return 1;
else return 0;
}
void main( )
{ int a,b,n=0;
int prime(int x);
for(a=2;a<=1998;a++)
{
if(prime(a)==1)
{ b=a+2;
if(__________) n++;
}
}
printf(" %d \n",n);
}
14、編寫程序,統(tǒng)計(jì)2 8、00~400之間的所有滿足三個(gè)數(shù)字之積為42,三個(gè)數(shù)字之和為12的數(shù)的個(gè)數(shù)。答案:4
15、有30個(gè)學(xué)生一起買小吃,共花錢50元,其中每個(gè)大學(xué)生花3元,每個(gè)中學(xué)生花2元,每個(gè)小學(xué)生花1元,問(wèn)大、中、小學(xué)生的人數(shù)分配共有多少種不同的解(去掉某類學(xué)生數(shù)為0的解)?答案:9
16、愛因斯坦走臺(tái)階:有一臺(tái)階,如果每次走兩階,最后剩一階;如果每次走三階,最后剩兩階;如果每次走四階,最后剩三階;如果每次走五階,最后剩四階;如果每次走六階,最后剩五階;如果每次走七階,剛好走完.求滿足上述條件的最小臺(tái)階數(shù)是多少?答案:119
17、 /*求1000以內(nèi)最大的10個(gè)素?cái)?shù)的和。*/ 答案:9664
# 9、include 10、t; num++;
}
if(num==10)break;
}
printf("\n%ld",total);
}
18、 /*求1!+2!+3!+...+7!,7!表示7的階乘。*/ 答案:5913
#include 11、ong jc(long x);
for(n=1;n<=7;n++)
________;
printf("\n%ld",sum);
}
19、求10000以內(nèi)所有完數(shù)之和,"完數(shù)"是指:一個(gè)數(shù)如果剛好與它所有的真因子(不包括該數(shù)本身)之和相等,如:6=1+2+3,則6就是一個(gè)完數(shù)。(注:所有變量用int數(shù)據(jù)類型定義!) 答案:8658
20、/*數(shù)列1,2,1,4,7,12,23…具有這樣的特征,從第四項(xiàng)(也就是4)開始,每一項(xiàng)是前三項(xiàng)之和,4=1+2+1,7=2+1+4,12=1+4+7….。下列程序先給出數(shù)列的第一項(xiàng)(1)、第二項(xiàng)(2)、第三項(xiàng)( 12、1),再逐步計(jì)算其它項(xiàng)并保存在數(shù)組a中,最后求出該數(shù)列的第25項(xiàng)。請(qǐng)改正程序中的錯(cuò)誤,并運(yùn)行修改后的程序,給出程序結(jié)果。(注:只有一處錯(cuò)誤?。?/答案:1323525
#include 13、d\n",a[k-1]);
}
21、/*求區(qū)間[200,3000]中所有回文數(shù)的和,回文數(shù)是正讀與反讀都是一樣的數(shù),如525,1551。*/ 答案:87970
#include 14、 long k,s=0;
int hws(long n);
for(k=200; k<=2000;k++)
if(___________)
s=s+k;
printf("\n%ld",s);
}
22、/*下面的程序是求表達(dá)式的值:
s=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+...+(1*2*3*...*n)/(3*5*7*...(2*n+1))請(qǐng)將程序補(bǔ)充完整,并給出當(dāng)n=25時(shí),程序的運(yùn)行結(jié)果(按四舍五入保留10位小數(shù))。*/答案:1.5707963267
#incl 15、ude 16、=2/1+3/2+4/3+…+(n+1)/n, 求Sn不超過(guò)50的最大值(按四舍五入的方式精確到小數(shù)點(diǎn)后第三位)。答案:49.395
24、計(jì)算Y=X/1!-X^3/3!+X^5/5!-X^7/7!+……前20項(xiàng)的值(已知:X=2)。要求:按四舍五入的方式精確到小數(shù)點(diǎn)后第二位。答案: 0.91
25、若某正整數(shù)平方等于某兩個(gè)正整數(shù)平方之和,稱該正整數(shù)為弦數(shù)。例:3^2+4^2=5^2,則5為弦數(shù),求[131,200]之間最小的弦數(shù)。答案:135
26、已知X,Y,Z為三個(gè)正整數(shù),且X^2+Y^2+Z^2=25^2,求X+Y+Z的最大值。答案:43
27、猴吃桃:有一天小猴子摘下了若干個(gè) 17、桃子,當(dāng)即吃掉一半,還覺得不過(guò)癮,又多吃了一個(gè)。第二天接著吃了剩下的桃子中的一半,仍不過(guò)癮,又多吃了一個(gè)。以后每天都是吃尚存桃子的一半零一個(gè)。到第10天早上小猴子再去吃桃子時(shí),看到只剩下一個(gè)桃子了。問(wèn)小猴子第一天共摘下了多少個(gè)桃子。答案:1534
28、求[1,50]之間的所有整數(shù)能構(gòu)成直角三角形的三邊的組數(shù)。例如:3*3+4*4=5*5,它們構(gòu)成直角三角形,所以{3,4,5}作為一組,但{4,3,5}視為跟{3,4,5}相同的一組。答案:20
29、15元錢換成1元、2元、5元的票面,問(wèn)有多少種不同的兌換方法?輸出所有的兌換方法。 答案: 18種
30、用迭代法求x等于a開平方的正數(shù) 18、值。
迭代公式為:xn+1=1/(2*(xn+a/xn)),要求直到前后兩次求出的x的差的絕對(duì)值小于10-5為止。A的值從鍵盤輸入。
31、求最大的水仙花數(shù),所謂水仙花數(shù),指的是一個(gè)三位數(shù),其各個(gè)數(shù)字的立方之和等于該數(shù)。 答案:407
32、一球從100米的高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地時(shí),共經(jīng)過(guò)多少米?第10次反彈多高?
答案: 299.609375 0.097656
33、編寫程序,完成如下功能,輸入8個(gè)float類型的實(shí)數(shù),分別求最大值和最小值,保留三位小數(shù)輸出最大值和最小值。
34、編寫程序輸出如下字符圖 19、形:
@ @ @ @ @ @ @ @ @ @ @
@ @ @ @ @ @ @ @ @ @
…
@ @
@
35、計(jì)算:s=f(-30)+f(-29)+......+f(-1)+f(0)+f(1)+......+f(30)的值。其中函數(shù)定義如下:f(x)=(x+1)/(x-2) 如果 x>1; f(x)=0 如果 x=0 或 x=2 ;f(x)=(x-1)/(x-2) 如果 x<0。(按四舍五入保留6位小數(shù)) 答案:65.223018
36、編寫程序輸出如下字符圖形(最后一行19顆星):
* * *
* * * * *
* * * * * * *
…
* * * 20、 … * * * *
37、企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成。利潤(rùn)(I)低于或等于10萬(wàn)元時(shí),獎(jiǎng)金可提10%;利潤(rùn)高 于10萬(wàn)元,低于20萬(wàn)元時(shí),低于10萬(wàn)元的部分按10%提成,高于10萬(wàn)元的部分,可提 成7.5%;20萬(wàn)到40萬(wàn)之間時(shí),高于20萬(wàn)元的部分,可提成5%;40萬(wàn)到60萬(wàn)之間時(shí)高于 40萬(wàn)元的部分,可提成3%;60萬(wàn)到100萬(wàn)之間時(shí),高于60萬(wàn)元的部分,可提成1.5%,高于100萬(wàn)元時(shí),超過(guò)100萬(wàn)元的部分按1%提成,從鍵盤輸入當(dāng)月利潤(rùn)I,求應(yīng)發(fā)放獎(jiǎng)金總數(shù)?
38、計(jì)算下面公式的值。 T=1+1/(2*3)+1/(3*4)+……+1/(m*(m+1)) 21、,當(dāng)m=50時(shí)的結(jié)果(按四舍五入保留6位小數(shù))。(注:所有變量用double數(shù)據(jù)類型定義?。? 答案:1.480392
39、程序填空:輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)。
程序分析:利用while語(yǔ)句,條件為輸入的字符不為\n.
#include "stdio.h"
#include "conio.h"
main()
{
char c;
int letters=0,space=0,digit=0,others=0;
printf("please input some characters\n");
while((c=getchar() 22、)!=\n)
{
if(c>=a&&c<=z||c>=A&&c<=Z)
_________
else if(c== )
_________
else if(c>=0&&c<=9)
_________
else
_________
}
printf("all in all:char=%d space=%d digit=%d others=%d\n",letters, space,digit,others);
getch();
}
40、打印出如下圖案(菱形)
*
***
*****
*** 23、****
*****
***
*
41、求出[2,478]以內(nèi)的:
(1)最大的素?cái)?shù)。 *467
(2)素?cái)?shù)數(shù)目。 *91
(3)所有素?cái)?shù)之和。 *19580
42、已知:
(1)若N=10,求Y 。 *1304735
(2)若N=15,求Y。 *1.184172E+07
43、已知:, 其中:X = 0.25,n = 1,2,┅,求:
(1) Y值(精確到小數(shù)點(diǎn)后第5位) *1.28767
(2) 與(1)匹配的最小的n *7
44、以下程 24、序輸入三個(gè)整數(shù)值給a,b,c,程序把b中的值給a,把c中的值給b,把a(bǔ)中的值給c,交換后輸出a、b、c的值。例如:讀入后,a=10、b=20、c=30;交換后,a=20、b=30、c=10。請(qǐng)?zhí)羁铡?
#include<stdio.h>
main()
{int a,b,c,t;
printf("Enter a,b,c:");
scanf("%d%d%d", ___);
___;a=b;___;___;
printf("a=%d b=%d c=%d\n",a,b,c);
}
45.下面fun函數(shù)的功能是從a數(shù)組中查找值為y的元素;若找到,返回該元素的下標(biāo)值,若不 25、存在值為y的元素,返回0;數(shù)列放在a數(shù)組的a[1]到a[n]中,a[0]元素用來(lái)作為臨時(shí)存儲(chǔ)單元。請(qǐng)?zhí)羁铡?
fun(int a[],int y,int n)
{int k=0;
a[0]=y;k=n;
while( ) k--;
return( );
}
46、 /*下列程序的功能是求出二階Fibonacci數(shù)列前10之和,1,1,2,3,5,8…。請(qǐng)改正程序中的錯(cuò)誤,并運(yùn)行修改后的程序,給出程序結(jié)果。(注:只有一處錯(cuò)誤!3是第四項(xiàng),5是第五項(xiàng)。)*/ 答案:143
#include 26、 sum=0,a[30]={1,1,2};
int k;
for( k=2;k<10;k++ )
a[k] = a[k-1]+a[k-2];
for( k=1;k<=10;k++ )
sum += a[k];
printf(" %ld\n",sum);
}
47、20,160]之間的所有偶數(shù)的平方和。答案:694380
48、求[10,2000]之間能被2或3或5整除的數(shù)之和。答案:67795
49、求800以內(nèi)的最大的20個(gè)素?cái)?shù)之和。答案:14510
50、求當(dāng)n=60時(shí)下式的和:s=1+1/(1+2)+1/( 27、1+2+3)+......+1/(1+2+3+......+n)(按四舍五入保留6位小數(shù))。答案:1.967214
51、編寫程序:輸入x的值,按照下列公式計(jì)算cos(x)
cos(x)=1-x2/2!+ x4/4!- x6/6!+... 精確到10-5。
/*C1 1.717*/
main()
{
int i;
long jc=1;
float s=0;
for(i=1;i<=5;i++)
{
jc=jc*i;
s=s+1.0/jc;
}
printf("%f",s);
}
/*C3 15334 28、59*/
main()
{
long i,c=0,t=0,g,s,b,q;
for(i=1001;i<=9999;i=i+2)
{
g=i%10;
s=i/10%10;
b=i/100%10;
q=i/1000;
if((g+s+b+q)%15==0)
{
c++;
t=t+i;
}
}
printf("%ld",t);
}
/*C4 6591*/
main()
{
int i,s=0,c=0;
for(i=70 29、0;i>=1;i--)
if(i%13==0||i%17==0)
{
c++;
s+=i;
if(c==10)break;
}
printf("%d",s);
}
/*C5 6.058311*/
main()
{
long i=5;
double s=1;
while(1.0/i>=1e-5)
{
s=s+1.0/i;
i=i+2;
}
printf("%lf",s);
}
/*C6 0.6180339850 */
main()
{
in 30、t i;
double a=1;
for(i=2;i<=20;i++)
{
a=1.0/(1+a);
}
printf("%.10lf",a);
}
/*C7 90965*/
main()
{
long i,s=0;
for(i=11;i<=1600;i=i+2)
if(i%7==0)
s=s+i;
printf("%ld",s);
}
/*C9 1042 */
main()
{
long i,s=0;
for(i=100;i<=500;i++)
if(i%5= 31、=3&&i%7==5&&i%3==1)
s=s+i;
printf("%ld",s);
}
/*C10 143*/
main()
{
int c=0,i,j,p;
for(i=100;i<=999;i++)
{
p=1;
for(j=2;j
32、i=1000;i<=9999;i=i+8)
{
q=i/1000;
b=i/100%10;
s=i/10%10;
if(q+b==b+s)c++;
}
printf("%d",c);
}
/*C13 61*/
#include"fun.c"
main( )
{
int a,b,n=0;
int prime(int x);
for(a=2;a<=1998;a++)
if(prime(a)==1&&prime(a+2)==1)
n++;
printf( 33、"%d",n);
}
/*C14 4*/
main()
{
int c=0,i,g,s,b;
for(i=200;i<=400;i++)
{
g=i%10;
s=i/10%10;
b=i/100;
if(g+s+b==12&&g*s*b==42)
c++;
}
printf("%d",c);
}
/*C15 9*/
main()
{
int d,z,x,c=0;
for(d=1;d<=17;d++)
for(z=1;z<=25;z 34、++)
{
x=30-d-z;
if(x>=0&&d*3+z*2+x==50)
c++;
}
printf("%d",c);
}
/*C16 119*/
main()
{
int tj,i,j;
for(tj=1;tj>=0;tj++)
if(tj%2==1&&tj%3==2&&tj%4==3&&tj%5==4&&tj%6==5&&tj%7==0)break;
printf("%d",tj);
}
/*C19 8658*/ 35、
main()
{
int i,s=0,w,j;
for(i=1;i<=10000;i++)
{
w=0;
for(j=1;j
36、
}
/*C22 1.5707963166*/
#define N 24
main()
{
int i,j;
double s=1,s1,s2;
for(i=1;i<=N;i++)
{
s1=1;
s2=1;
for(j=1;j<=i;j++)
{
s1*=j;
s2*=(2*j+1);
}
s+=(s1/s2);
}
printf("%.10lf",s);
}
/*C23 49.395*/
main()
{ 37、
int i=1;
double s=0;
do
{
s+=(1+1.0/i);
printf("\n%0.3lf",s);
i++;
}
while(s<50);
}
/*C24 0.91*/
#include 38、jc(2*i-1);
printf("\n%d,%.0lf/%.0lf",i,fz,jc(2*i-1));
}
printf("\n%.2lf",y);
}
double jc(int i)
{
int j;
double r=1;
for(j=1;j<=i;j++)
r*=j;
return r;
}
/*C25 135*/
#include 39、 for(a=1;a 40、,y,z,max=0;
for(x=1;x 42、18*/
main()
{
double f(double x),s=0;
int i;
for(i=-30;i<=30;i++)
s=s+f(i);
printf("%lf",s);
}
double f(double x)
{
double y;
if(x==0||x==2)y=0;
else if(x>1)y=(x+1)/(x-2);
else if(x<0)y=(x-1)/(x-2);
return y;
}
/*C38 1.480392*/
main()
{
double t=1;
int m;
for 43、(m=2;m<=50;m++)
t=t+1.0/(m*(m+1));
printf("%lf",t);
}
/*C41 467,91,19580*/
#include"fun.c"
main()
{
int i,c=0,s=0,max;
for(i=2;i<=478;i++)
if(prime(i))
{
max=i;
c++;
s+=i;
}
printf("%d,%d,%d",max,c,s);
}
/*C42 1304735* 44、/
#define N 10
main()
{
int i;
double a,b,y=0;
for(i=1;i<=N;i++)
{
if(i%2==0)
{a=i/2.0;b=i*i*i;}
else
{a=i;b=i*i;}
y=y+(a-b)*(a-b);
}
printf("%lf",y);
}
/*C43 7*/
#define X 0.25
#include 45、;
for(i=1;y<=s;i++)
y=y+(double)pow(X,i)/i;
printf("%d",i);
}
/*C46 143*/
#include 46、*C47 694380*/
main()
{
long i,s=0;
for(i=20;i<=160;i+=2)
s=s+i*i;
printf("%ld",s);
}
/*C48 1466295*/
main()
{
long i,s=0;
for(i=10;i<=2000;i++)
if(i%2==0||i%3==0||i%5==0)
s=s+i;
printf("%ld",s);
}
/*C49 14510*/
#include"fun.c"
main()
{
int i,c=0,s=0 47、;
for(i=800;i>=1;i--)
if(prime(i)&&c<20)
{
c++;
s=s+i;
}
printf("\n%d",s);
}
/*C50 1.967213*/
#define N 60
main()
{
int i;
double s;
for(i=1;i<=60;i++)
s=s+1.0/((1+i)*i/2);
printf("%lf",s);
}
/*fun.c 自定義函數(shù)判斷素?cái)?shù)*/
int prime(int x)
{
int k;
for(k=2;k
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《晏子使楚》優(yōu)秀課件 (3)
- 科室醫(yī)院年終總結(jié)課件
- 常用邏輯用語(yǔ)章末總結(jié)課件(人教A版選修1-1)免
- 新版PEP四年級(jí)英語(yǔ)上冊(cè)Unit3-My-Friends-B-Let’s-learn完美版-PPT
- 金融科技機(jī)遇
- 抗菌藥物合理使用專家講座
- 阿奇霉素在臨床中的應(yīng)用專家講座
- 納米抗菌蠶絲被介紹
- 男性盆部和會(huì)陰斷層解剖研究
- 部編選擇性必修二經(jīng)濟(jì)與社會(huì)生活-第九課世紀(jì)以來(lái)人類的經(jīng)濟(jì)與生活教學(xué)課件
- 春七年級(jí)數(shù)學(xué)下冊(cè) 82 整式乘法單項(xiàng)式與單項(xiàng)式相乘課件4 (新版)滬科版
- 部編人教版語(yǔ)文七年級(jí)下冊(cè)7.土地的誓言課件
- 手足口病
- 正壓通氣裝置課件
- 課件】食品分析與檢驗(yàn)技術(shù)第二章