C++答案.docx
《C++答案.docx》由会员分享,可在线阅读,更多相关《C++答案.docx(37页珍藏版)》请在冰豆网上搜索。
C++答案
习题一
一、简答题
1.顺序结构、选择(分支)结构和循环结构。
2.
(1)
(2)
3.编辑、编译、连接和运行
二、填空题
1.
Ctrl+F9;Alt+F5;F2。
2.
main(主)
3.
main(主)
4.
任意
5.
/**/不
6.
;
7.原程序:
includestudio.h
main{}
/*thisprogramprintsthenumberofweeksinayear./*
(
ints
s:
=52;
print(Therearesweeksinayear");
改正程序:
#include
main()
/*thisprogramprintsthenumberofweeksinayear.*/
{
ints;
s=52;
printf("Thereare%dweeksinayear",s);
}
习题二
一、选择题
二、1、C2、B,D,F,G3、C4、A5、C6、B
三、填空题
1、声明;使用。
2、整型、浮点型(实型)、字符型。
3、hat_1,cat1,all,Dollar,piece_f,SIN,_ ,true,FALSE.
4、'A'(字符),005(整型八进制),3e0(实型),”a”(字符串),'\\'(字符),'\05'(字符),1.2e+5(实型),0xf12(整型十六进制)。
5、
(1)6+(4+5)*(4+5)/(2+3)
(2)sin(a+b)*sin(a+b)/(4*2)/(3*2)+2
三、读程题
1.若x为float型,其原值为5,a=2,b=4.7。
写出下列表达式运算后x的值。
(1)x=(int)(b-a)%3*a/4-a
(2)x=(x=b+1)+(int)(b)%10/2.0
(3)x+=x
(4)x-=x
(5)x*=x+x
(6)x/=x+x
(7)x+=x-=x*=x
(8)x%=x
(9)x=3*4,5*6
答案:
(1)-1.0,
(2)7.7,(3)10.,(4)0.,(5)50.,(6)0.5,(7)0.,(8)非法,(9)12.。
2.写出下面程序的运行结果。
#include
voidmain()
{
inta=2;
printf("abcdefghijk\n");
printf("lmnop/n");
printf("Iama/nbeginnerofC!
");
printf("Iama\nbeginnerofC!
");
printf("%d+%d=%d",a,a,a);
}
答案:
abcdefghijk
lmnop/nIama/nbeginnerofC!
Iama
beginnerofC!
2+2=2
习题三
一、选择题
1、D2、C3、A4、B5、D
二、简答题
1、P48
2、表达式语句后有“;“
3、P50
4、i=10,j=20
三、读程题
1、
56
56
67.856400,-789.124023
67.856400,-789.124023
67.86,-789.12,67.8564,-789.1240,67.856400,-789.124023
6.78564e+1,-7.9e+2
A,65,101,41
1234567,4553207,d687
65535,177777,ffff,-1
COMPUTER,COM
2、10,9
3、8,7,7,8
4、6,0,6
5、0
四、编程题
1、弧度换算成角度值(度、分、秒)
#include
voidmain()
{
floathu,t;
intdu,fen,miao;
scanf("%f",&hu);
t=hu*180/3.14159;
du=(int)t;
fen=(int)((t-du)*60);
miao=(int)(((t-du)*60-fen)*60);
printf("\n%f=%d\xf8%d\'%d\"\n",hu,du,fen,miao);
}
2、输出用getchar()输入的两个字符及其对应的ASCII码。
#include
voidmain()
{
charc1,c2;
c1=getchar();
c2=getchar();
printf("\n%c:
%d,%c:
%d\n",c1,c1,c2,c2);
}
3、输出一个小于10000的整数各位上的数字。
#include
voidmain()
{
intnum,w4,w3,w2,w1;
scanf("%d",&num);
w4=num/1000;
w3=(num-w4*1000)/100;
w2=(num-w4*1000-w3*100)/10;
w1=num%10;
printf("\n%d:
%d,%d,%d,%d\n",num,w4,w3,w2,w1);
}
4、反向输出一个3位正整数。
#include
voidmain()
{
intnum,w3,w2,w1;
scanf("%d",&num);
w3=num/100;
w2=(num-w3*100)/10;
w1=num%10;
printf("\n%d:
%d%d%d\n",num,w1,w2,w3);
}
5、十进制97转为八进制和十六进制。
#include
voidmain()
{
intnum=97,o1,o2,o3,x1,x2;
o1=num%8;o2=num/8%8;o3=num/8/8;
x1=num%16;x2=num/16;
printf("\n%d:
0%d%d%d,%d:
0x%d%d\n",num,o3,o2,o1,num,x2,x1);
}
6、将getchar()读入的两个字符分别用putchar()和printf()函数输出。
#include
voidmain()
{
charc1,c2;
c1=getchar();
c2=getchar();
putchar(c1);
putchar(c2);
printf("\n%c,%c\n",c1,c2);
}
习题四
一、单选题
DDBCD,BDBDC,CCBAD
二、填空题
1、1,
2、K==0
3、A==b||a4、If(fabs(x)>4)printf(“%d”,x);elseprintf(“error!
”);
5、if(((x>=1&&x<=10)||(x>=200&&x<=210))&&x%2!
=0)printf(“%d”,x);
6、k=1
7、$$$a=0
8、a=2,b=1
9、3
10、a>0且a
三、编程题
1、
#include
voidmain()
{
intyear;
printf("Pleaseinputayear:
");
scanf("%d",&year);
if(year%400==0||year%4==0&&year%100!
=0)
printf("%disaleapyear.\n",year);
else
printf("%disnotaleapyear.\n",year);
}
2、
(1)
#include
voidmain()
{
floatx,y;
printf("Pleaseinputx:
");
scanf("%f",&x);
if(x>-5&&x<0)y=x;
if(x==0)y=x-1;
if(x>0&&x<10)y=x+1;
printf("x=%f,y=%f\n",x,y);
}
(2)#include
voidmain()
{
floatx,y;
printf("Pleaseinputx:
");
scanf("%f",&x);
if(x<0)
{if(x>-5)
y=x;}
else
{if(x==0)
y=x-1;
else
y=x+1;}
printf("x=%f,y=%f\n",x,y);
}
(3)#include
voidmain()
{
floatx,y;
printf("Pleaseinputx:
");
scanf("%f",&x);
switch((int)x)
{case-4:
case-3:
case-2:
case-1:
y=x;break;
case0:
y=x-1;break;
case1:
case2:
case3:
case4:
case5:
case6:
case7:
case8:
case9:
y=x+1;}
printf("x=%f,y=%f\n",x,y);
}
3、#include
voidmain()
{
inta,b,c;
printf("Pleaseinputa,b,c:
");
scanf("%d,%d,%d",&a,&b,&c);
if(a+b>c&&b+c>a&&c+a>b)
if(a==b&&b==c)printf("equilateraltriangle\n");
elseif(a==b||b==c||c==a)printf("isocelestriangle\n");
elseprintf("commonlytriangle\n");
else
printf("non-triangle\n");
}
4、略
5、#include
voidmain()
{intx,y;
Scanf(“%d”,&x);
If(x<20)
Y=1;
Else
Switch(x/10)
{case2:
y=2;break;
case3:
y=3;break;
case4:
y=4;break;
case5:
y=5;break;
default:
y=6;
}
Printf(“x=%d,y=%d”,x,y);
}
6、#include
voidmain()
{floatm,n,s,c;
Printf(“Pleaseinputm:
”);
Scanf(“%f”,&m);
If(m<100)n=0;
Elseif(m<200)n=1.5;
Elseif(m<300)n=2.5;
Elseif(m<400)n=3.5;
Elseif(m<500)n=4.5;
Elseif(m<600)n=5.5;
Elsen=6;
S=m*(1-n/100);
C=m*n/100;
Printf(“m=%.2f,s=%.2f,c=%.2f\n”,m,s,c);
}
7、#include
voidmain()
{intnum,w4,w3,w2,w1;
printf("Pleaseinputanumber:
");
scanf("%d",&num);
if(num>=10000||num<=0)
printf("%disoutofdata.\n");
else
{
w4=(num/1000+2)%10;
w3=(num%1000/100+2)%10;
w2=(num/10%10+2)%10;
w1=(num%1000+2)%10;
printf("Thecryptographis:
");
if(num>=1000)printf("%d%d%d%d\n",w4,w3,w2,w1);
elseif(num>=100)printf("%d%d%d\n",w3,w2,w1);
elseif(num>=10)printf("%d%d\n",w2,w1);
elseprintf("%d\n",w1);
}
}
习题五
一.选择题
ACDBAD
二.填空题
1.b=i+1;
2.10,6
3.17
4.x
5.32
三.读程题
1.2870
2.2,0
3.5
4.52
5.4321
四.编程题
1.#include
voidmain()
{intnum,max,min;
printf("Pleaseinputfirstnumber:
");
scanf("%d",&num);
max=min=num;
while(num!
=0)
{
printf("\nPleaseinputnextnumber:
");
scanf("%d",&num);
if(maxif(min>num)min=num;
}
printf("\nmax=%d,min=%d\n",max,min);
}
2.#include
voidmain()
{charch;
intletter=0,space=0,digit=0,other=0;
while((ch=getchar())!
='\n')
{
if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')letter++;
elseif(ch=='')space++;
elseif(ch>='0'&&ch<='9')digit++;
elseother++;
}
printf("\nletter=%d,space=%d,digit=%d,other=%d\n",letter,space,digit,other);
}
3.求多项式:
2/1+3/2+5/3+8/5+13/8+21/13+...前20项和。
#include
voidmain()
{inti;
floata=2,b=1,temp,sum=0;
for(i=1;i<=20;i++)
{sum+=a/b;
temp=b;b=a;a=temp+b;
}
printf("sum=%.2f\n",sum);
}
4.#include
voidmain()
{inti,j;
for(i=1;i<=3;i++)
{for(j=1;j<=10-i;j++)
printf("");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
for(i=2;i>=1;i--)
{for(j=1;j<=10-i;j++)
printf("");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
}
5.#include
voidmain()
{inti,j,n;
printf("inputn[1-5]:
");
scanf("%d",&n);
printf("\n");
if(n<1||n>5)
printf("nisoutofdata!
\n");
else
{for(i=1;i<=n;i++)
{for(j=1;j<=20-i;j++)
printf("");
for(j=1;j<=2*i-1;j++)
printf("%d",j);
printf("\n");
}
}
}_
习题六
一、单选题
ACABB,DBCDC,ABD
二、填空题
1、[常量表达式]
2、按行存放
3、06
4、abc
5、gj
6、1123
581321
3455
7、LBLMNP
8、i<10
i<9
i%3==0
9、a[i]>b[j]
i<3
j<5
10、a[i][j]
j=0;j<4;j++
j==3"\n"
11、b[j]=a[j][0]
b[j]=a[j][k]
12、{a[k]=a[j];k++;}
三、编程题
1、#defineN5
#include"stdio.h"
voidmain()
{
inti,t,a[]={12,5,7,8,4};
printf("Theoriginaldata:
\n");
for(i=0;iprintf("a[%d]=%d",i,a[i]);
printf("\nTheresultis:
\n");
for(i=0;i{t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;}
for(i=0;iprintf("a[%d]=%d",i,a[i]);
printf("\n");
}
2、#defineN3
#include"stdio.h"
voidmain()
{
inti,j,s1=0,s2=0,a[][3]={1,5,8,12,15,7,8,9,4};
printf("Theoriginaldata:
\n");
for(i=0;i{for(j=0;jprintf("%5d",a[i][j]);
printf("\n");}
for(i=0;ifor(j=0;j<=i;j++)
{s1+=a[i][j];
if(i==j)s2+=a[i][j];}
printf("s1=%d,s2=%d\n",s1,s2);
}
3、#defineN10
#include"stdio.h"
voidmain()
{
inti,max,imax,a[]={1,6,25,8,12,15,7,8,9,4};
printf("\nTheoriginaldata:
\n");
for(i=0;iprintf("%4d",a[i]);
max=a[0];imax=0;
for(i=1;iif(maxfor(i=imax;ia[i]=a[i+1];
printf("\nmax=%d\n",max);
printf("resultis:
\n");
for(i=0;iprintf("%4d",a[i]);
}
4、#include"stdio.h"
#include"time.h"
voidmain()
{
inti,j,max,min,imax,jmax,imin,jmin,temp,a[5][6];
time_tt;
srand(time(&t));
printf("\nTheoriginaldata:
\n");
for(i=0;i<5;i++)
{for(j=0;j<6;j++)
{a[i][j]=rand()%50;
printf("%5d",a[i][j]);}
printf("\n");}
max=a[0][0];min=max;
for(i=0;i<5;i++)
for(j=0;j<6;j++)
{if(maxif(min>a[i][j]){min=a[i][j];imin=i;jmin=j;}}
temp=a[0][5];a[0][5]=a[imax][jmax];a[imax][jmax]=temp;
temp=a[4][0];a[4][0]=a[imin][jmin];a[imin][jmin]=temp;
printf("\nmax=%d,min=%d\n",max,min);
printf("\nTheresultdata:
\n");
for(i=0;i<5;i++)
{for(j=0;j<6;j++)
printf("%5d",a[i][j]);
printf("\n");}
}
5、#include
intmain(){
inti1,i[15],j=0,k;
printf("inputadecimalnumberlessthan9999:
");
scanf("%d",&i1);
for(;j<=14;j++){
if(i1<=1){
i[j]=1;
break;
}
i[j]=i1%2;
i1=i1/2;
if(i1==0)
break;
}
printf("\nThebinarydigitis:
");
for(k=j;k>=0;k--)
printf("%d",i[k]);
printf("\n");
return0;
}
6、#include
#include
#include
intmain(){
inta,b,i[5][6],c[5]={0,0,0,0,0};
time_tt;
srand(time(&t));
for(a=0;a<=4;a++)
for(b=0;b<=5;b++){
i[a][b]=rand()%50;
if(i[a][b]
c[a]=b;
}
printf("5*6matrixis:
\n");
for(a=0;a<=4;a++){
for(b=0;b<=5;b++){
printf("%5d",i[a][b]);
}
printf("\n");
}
for(b=0;b<=4;b++)
for(a=0;a<=4;a++){
if(i[a][c[a]]>i[b][c[a]])
i[a][c[a]]=51;
}
printf("\nResultis:
\n\n");
for(a=0;a<=4;a++)
if(i[a][c[a]]!
=51)printf("i[%d][%d]=%d\n",a,c[a],i[a][c[a]]);
printf(