C++程序设计(陈松版)1.、2部分课后习题答案

更新时间:2023-09-17 05:45:02 阅读量: 高中教育 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C++进阶教程习题答案

习题1: 1、 选择题: C √ C X C √ D X B √ B √ B √ D √ B √ A X 2、判断题: 3、 简答题:略。 4、 上机实验题:略。

习题2: 1、选择题: B A D X 初始化 6 98 4、 上机实验题: (1) 140 80 140,81 170 81,170 0 1

(2) 5 4

(3) 44 11 0 45 1

1

C A A X C B B √ 实型 12 13 B A D √ B D D √ 2.5 36 14 D A C X A A C √ 1 2 0 15 13 21 D A D √ C B B X 0.5 4 D A X 2、 判断题: 3、 填空题: x1=%d,x2=%d 习题3: 1、选择题: A A 2、程序填空: x1=x2 b%a!=0 return 0 i<=200 x/10 sign=-1*sign

3、编程题

(1)设计一个程序,从键盘输入一个整数,判断其奇偶性。 #include main() {int n;

printf(\请输入整数n:\scanf(\if(n%2!=0)

printf(\输入的是奇数\\n\else

printf(\输入的是偶数\\n\}

(2)从键盘输入一行字符,统计其中的英文字母、空格、数字和其他字符的个数。 #include void main() { char z;

int a=0,b=0,c=0,d=0;

printf(\请输入一串字符: \while((z=getchar())!='\\n') {

if(z>='A'&&z<='Z'||z>='a'&&z<='z') a++; else if(z==' ') b++;

else if(z>='0'&&z<='9') c++; else d++; }

printf(\英文字符个数%d\\n\printf(\空格字符个数%d\\n\printf(\数字字符个数%d\\n\printf(\其它字符个数%d\\n\}

(3)打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如,153是一个“水仙花数”: 153 = 13 + 53 + 3。 #include void main() {

int a=0,b=0,c=0,K;

2

C A C B B C C C D C for(K=100;K<1000;K++) {

a=K/100;b=K/10-a*10;c=K;

if(K==a*a*a+b*b*b+c*c*c) printf(\} }

(4)求S=1!+2!+3!+…+20!。 #include void main() {

float s=0,t=1; int n;

for(n=1;n<=20;n++) {

t=t*n; s=s+t; }

printf(\!+2!+3!+?+20!=%e\\n\}

(5)用循环输出乘法九九表。 #include main() {int a,b,k; a=1;

for(;a<10;a++)

{for(b=1;b<=a;b++) {k=a*b;

printf(\%d*%d=%d\}printf(\}}

(6)编写一个函数f (n),求任意整数的逆序数,例如当n=3456时,函数值为6543。 long fun(long x) {long i,t=0; while(x>0)

{ i=x; t=t*10+i; x=x/10; } return t; }

(7)编写一个判断一个整数是否是素数的函数,求1000以内的素数个数。 #include int fun(int x) {

int i;

3

for(i=2;i<=x-1;i++)

if(x%i==0) break;

if(x==i) return 1; else return 0; }

main( )

{ int a,s=0;

for(a=3;a<=1000;a++) if (fun(a)) s++; printf(\}

(8)设计一个程序,定义一个带参数的宏,使两个参数的值能够互换。 #include

#define s(a,b) temp=a;a=b;b=temp main( )

{ int a=10,b=20,temp;

printf(\ b=%d\\n\ s(a,b);

printf(\ b=%d\\n\}

(9)求输入的整数各位数字之和。如:3456的各位数字之和是:3+4+5+6=18。#include main( )

{ int x,i,t=0;

printf(\请输入一个整数:\ scanf(\ while(x>0)

{ i=x; t=t+i;

x=x/10; } printf(\}

(10)用循环编程,打印出用九排“*”号组成的等腰三角形。 #include void main()

{ int i,j,k; for(i=1;i<=9;i++) {for(j=1;j<=9-i+5;j++) printf(\\

for(k=1;k<=2*i-1+5;k++) {if(k<=5) printf(\\ else printf(\printf(\}

4

}

(11)编辑一个My.h文件,把各种变量定义放在此文件中,然后用#include “My.h”命令将该头文件包含在自己的源文件中,并在源文件中使用这些变量。 (略)

习题4 1、选择题 A B &a[i] str[0] '\\0' D D 2、程序填空 i%4==0 s k printf(\min=*p2 s1,s2 i==j min=*p3 float **x,int m,int n a[i][j] s1[k]!='\\0' *(*(x+i)+j) C D D B B D D C D A D B A C B B 3、编程题 (1)用选择法对10个整数排序。 #include main()

{int I,j,k,t,a[10];

for(I=0;I<10;I++) scanf(\for(I=0;I<10;I++) {k=I;

for(j=I+1;j<10;j++) if(a[k]>a[j]) k=j;

if(k!=I){t=a[I];a[I]=a[k];a[k]=t;} } printf(\

for(I=0;I<10;I++)printf(\}

(2)将一个数放入已排好序的数组中,要求数组的排序规律不变。

#include \

main() {

int a[11]={1,3,5,7,12,33,88,99,120,150}; int num,i,j; printf(\原数组:\\n\for(i=0;i<10;i++) printf(\printf(\

printf(\输入一个数\scanf(\for(i=0;i<10;i++) if(a[i]>num)

{j=a[i];a[i]=num;num=j;}

5

本文来源:https://www.bwwdw.com/article/mwoh.html

Top