C C++程序设计课后答案(3)

2019-04-13 23:19

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++) {

;


C C++程序设计课后答案(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:操作系统命令解释

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: