4.鸡兔共笼有30个头,90只脚,求鸡兔各有多少? #include \void main() {int m,n;
for(m=0;m<=30;m++) for(n=0;n<=30;n++)
if(m*2+n*4==90&&m+n==30)
cout<<\鸡:\兔:\}
5.利用格里高利公式求?的近似值,公式为:?/4≈1-1/3+1/5-1/7+....,要求直到最后一
-4
项小于10为止。 #include \void main() {double pi=1.0; int n,t=1;
for(n=1;1.0/(2*n+1)>1e-6;n++) { t=(-1)*t;
pi=pi+t/(2.0*n+1.0); }
pi=4*pi;
cout<<\}
法二:
#include \void main() {float pi=0.0; int n,t=-1;
for(n=1;1.0/n>1e-6;n=n+2) { t=(-1)*t;
pi=pi+1.0*t/n; }
pi=4*pi;
cout<<\}
6.编一程序,求出方程x2+2x=y3(其中1≤x≤100,1≤y≤100)的所有整数解。 #include \void main() {int x,y;
for(x=1;x<=100;x++) for(y=1;y<=100;y++)
if(x*x+2*x==y*y*y)
cout<<\}
7.输入一个英文句子(以句号结束),要求将句中单词分行打印,试编写符合上述要求的程序。
#include \#include \void main() {char ch;
while((ch=getchar())!='.') if(ch==' ') cout< cout< 8.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,求1000以内满足该条件的数。 #include \#include \void main() {int m,k1,k2; for(m=0;m<=1000;m++) {k1=sqrt(m+100); k2=sqrt(m+100+168); if(k1*k1==m+100&&k2*k2==m+100+168) cout< 9.用二分法求x9-4x5-5x3-270000=0在(0,10)之间的根,要求精度达到0.00001 二分法的步骤为等分区间[x1,x2]成[x1,x]和[x,x2],其中,若f(x)与f(x1)同号,则取[x,x2]作为新的区间,否则取[x1,x]作为新的区间, 依次类推,当新区间的长度或f(x)的绝对值小于eps时,x 就作为所求的实根。 #include \#include \void main() {float x1=0,x2=10,x,y1,y2,y,eps=1e-6; do{x=(x1+x2)/2; y1=pow(x1,9)-4*pow(x1,5)-5*pow(x1,3)-270000; y=pow(x,9)-4*pow(x,5)-5*pow(x,3)-270000; if(y1*y>0) x1=x; else x2=x; }while(fabs(x2-x1)>eps); cout< 第四章 一、选择题 1.下列数组定义语句中,正确的是( )。C A.int a[3,4]; B.int n=3,m=4,int a[n][m]; C.int a[3][4]; D.int a(3)(4); 2.以下不能对二维数组a初始化的语句是( )。A A. int a[2][]={{1},{2}}; B.int a[2][3]={1,2,3,4,5,6}; C. int a[2][3]={1}; D.int a[2][3]={ {1},{2}}; 3.要使字符数组str中存放串”Lucky”并能正确处理,下列正确的定义语句是( )。C A.char str[]={?L?,?u?,?c?,?k?,?y?} ; B. char str[5]={?L?,?u?,?c?,?k?,?y?} ; C. char str[]=”Lucky”; D. char str [5]= ”Lucky” ; 4.已知有语句“int a[3][4]={{1,2,5,3},{2,4,7,9},{3,6,5,8}},*p=&a[0][0];”,则表达式(*p+2)+*(p+2)的值应为( )。D A.10 B.5 C. 6 D.8 5.已知有语句“int a[5]={1,3,5,7,9},*p=&a[3];”,则表达式p[-1]的值为( )。C A.表达形式不合法 B.值不确定 C.5 D.6 6.要比较两个字符数组a、b中字符串是否相等,下面正确的是( )。B A.a==b B.strcmp(a,b)==0 C. strcpy(a,b) D. strcmp(a,b)=0 7.下面正确的描述是( )。A A.gets函数可以输入包括空格的字符串 B.cin可以输入包含空格的字符串 C.使用gets函数不需要声明头文件:#include “stdio.h” D.使用gets函数必须需要声明头文件:#include “iostream.h” 8.已知如下变量的定义“char s[10],*p;”下列正确的语句是( )。B A.s=”asdfghj”; B.p=”asdfgh”; C.cin< void main() { char s[ ]=”1234567890”,*p; int i; for(p=s+5;*p!=?\\0?;p++)cout<<*p; p=s+4;i=0; while(i++<5)cout< 结果是:678904321 2.若分别输入4和8,则以下程序的输出结果各是什么? #include”iostream.h” void main() { char b[17]=”0123456789ABCDEF”; int i=0,h,n,c[10];long int m; cin>>m>>h; do { c[i++]=m%h; }while((m=m/h)!=0); for(--i;i>=0;--i) { n=c[i];cout< 结果是:4 3. #include”iostream.h” void main() { int a[ ]={-2,3,0,-5,-4,6,9},*p=a,m,n; m=n=*p; for(p=a;p {if(*p>m)m=*p; if(*p cout <<”m-n=”< 三、程序填空题。 1.利用一维数组显示Fibonacci数列的前20项,每行显示5个数,每个数宽度5位。即:0,1,1,2,3,5,8,13,…,如图所示。 #include”iostream.h” #include\ void main() { int i; int x[20]= ; for(i=2;i<20;i++) ; for(i=0;i<20;i++) { if(i%5==0)cout< cout< } 填空为:(1){0,1} (2)x[i]=x[i-1]+x[i-2] (3)setw(5)< #include\#include\void main() { int a[6],i,j; for(i=0;i<6;i++) { a[i]= ; for(j=0; ;j++) cout<<'*'; cout<< < 填空为:(1)rand()1 (2)j 3.下列程序将数组a中的每4个相邻元素的平均值存放于数组b中。 #include\void main() { int a[10],m,n; float b[7]; for(m=0;m<10;m++)cin>>a[m]; for(m=0;m<7;m++) { ;