C++程序设计习题大荟萃 联系客服

发布时间 : 星期一 文章C++程序设计习题大荟萃更新完毕开始阅读781e536327d3240c8447ef77

void main() {

int x1,x2;

cin>>x1;

x2=int(sqrt(x1));

for(int i=1;i<=x2;i++)

if(x1%i==0) cout<

cout<<”y=”<

}

7. #include

void main() {

int I,j;

‘<

5. #include

void main() {

int I,p=1,s=0;

int N;

cout<<”输入一个正整数:”; cin>>N;

for(i=1;i<=N;i++) {

p*=I; s+=p; }

cout<

6. #include

double f1(double x,int n) {

double p1,p2,p3,s;

p1=s=x;p2=p3=1; if(n==0) return s; for(int i=1;i<=n;i++) {

p1*=x*x;

p2*=2*i*(2*i+1); p3*=-1;

s+=p3*p1/p2; }

return s; }

void main() {

double x,y; int n;

cout<<”输入一个实数:”; cin>>x;

cout<<”输入一个正整数:”; cin>>n;

for(i=1;i<=5;i++) {

for(j=1;j<=9;j++) if(j<=5-i||j>=5+i)

cout<<’ ’;

else cout<<’*’; cout<

8. #include

int f1(int a,int b) {

int r;

while(b!=0) {

r=a%b; a=b;b=r; }

return a; }

int f2(int a,int b) {

int i=2,p=1; do{

while(a%i==0&&b%i==0)

{

p*=i;a/=I;b/=i; } i++;

}while(a>=i&&b>=i); return p*a*b; }

void main() {

int a,b;

cout<<”输入两个正整数:”; cin>>a>>b;

9

cout<

9. #include

#incldue #include const N=10;

int ff(int x,int y) {

int z;

cout<>z;

if(x+y==z) return 1;else

return 0;

}

void main() {

int a,b,c=0;

srand(time(0));

for(int i=0;i

a=rand() +1; b=rand() +1; c+=ff(a,b) }

cout<<”得分:”<

10. #include

#include #include void main() {

double a,b,c; cout<<”输入一元二次方程的二次项系数、一次项系数和常数

项:”<

cin>>a>>b>>c;

double d=b*b-4*a*c; if(d<0.0) {

cout<<”此方程没有实根!”<

exit(1); }

double x1,x2; if(d==0.0)

10

x1=x2=-b/(2*a); else {

x1=(-b+sqrt(d))/(2*a);

x2=(-b-sqrt(d))/(2*a); }

cout<<”此方程的两个根为:”<

cout<<”x1=”<

}

四、编写下列程序

1. 某城市为鼓励节约用水,对居民用水量作如

下规定:若每人每月用水量不超过2吨,则按0.3元收费;若大于2吨但不超过4吨,则其中2吨按0.3元收费,剩余部分按每吨0.6元收费;若超过4吨,则其中2吨按0.3元收费,再有2吨按0.6元收费,剩余部分按每吨1.2元收费。试根据一户居民的用水量和该户人口数计算出应交纳的水费。

2. 某班级学生进行百米跑测试,规定成绩在12

秒以内(含12秒)为优秀,在12秒以上至15秒为达标,在15秒以上为不达标,编一程序,从键盘上输入每个人的成绩,分别统计出成绩为优秀、达标和不达标各多少人?各占学生总数的百分比是多少?

210

3. 计算1+3+3+... +3的值。

222

4. 求满足不等式2+4+? +n<1000的最大n

值。

5. 求出从键盘上输入的10个整数中的最大值。 6. 已知6<=a<=30,15<=b<=36,求满足不定方程

2n+5b=126的全部整数组解。如(13,20)就是一个整数组解。

7. 假定有100名中小学生参加义务植树活动,

共植树100棵,其中高中生每人值3棵,初中生每人植两棵,小学生每两人植1棵。并且已知参加植树的高中、初中和小学生的人数均不小于10人,问他们各为多少人?

8. 已知y=1+(1/2)x+(1/3)x2+?+(1/10)x9,求

每取一个值时所对应的y值,其中x的每个值由键盘输入,直到输入终止标准-100为止。 9. 在输出窗口中显示出如下图形:

*********** ********* ******

*** *

第四章 数组和字符串 一、填空题

1. 数组元素a[i]是该数组中的第______个元

素。

2. 元素类型为int的数组a[10]共占用______

字节的存储空间,其中a[5]元素的字节地址为______。

3. 元素类型为double的二维数组a[4][6]共占

用______字节的存储空间,其中a[2][5]元素的字节地址为______。

4. 元素类型为char的二维数组a[10][30]共占

用______字节的存储空间,其中a[3][4]元素的字节地址为______。

5. 假定对数组a[]进行初始化的数据为

{2,7,9,6,5,7,10},则a[2]和a[5]分别被初始化为______和______。

6. 假定对二维数组a[3][4]进行初始化的数据

为{{3,5,6},{2,8},{7}},则a[0][0],a[1][1]和a[2][3]分别被初始化为______,______和______。

7. 存储字符’a’和字符串“a”分别需要占用

______和______个字节。

8. 空串的长度为______,存储它需要占用

______个字节。

9. 字符串”\\’a\\’xy=4\\n”的长度为______。 10. 字符串”a:\\\\xxk\\\\数据”的长度为______。 11. 对于一个长度为n的字符串,需要占用

______个字节,用于存储该字符串的字符数组的长度至少为______。 12. 若a是一个字符数组,则cin>>a表示从键盘

上读入一个______到数组a中,cout<

13. 一个二维字符数组a[10][20]能够存储

______个字符串,每个字符串的长度至少为______。

14. 对一个一维字符数组a进行初始化的数据

为”12345”,则a[0]和a[3]元素对应的初值分别为______和______。

15. 对一个二维字符数组a进行初始化的数据为

{“123”,“456”,“789”},则a[1]和a[4]元素对应的初始字符串分别为______和______。

16. strlen(“apple”)的值为

______,strcmp(“a”,”A”)的值为______。

11

17. 假定字符数组a中保存的字符串为”abc”,

则调用strcat(a,”def”)后a中保存的字符串变为______。

18. 若需要把一个字符串”aaa”赋值到字符数组

a中,则需要执行______的函数调用实现。 19. 假定字符数组a中所存的字符串为

“abcdbcdf”,则strchr(a,’c’)的值比strrchr(a,’c’)的值小______。 20. 假定字符数组a 中的所存字符串为”

abcdedf”,则strstr(a,’cd’)的返回值比a的值大______。

21. 使用”type int integer;”语句把______

定义为______的别名,以后使用integer定义的对象具有______类型。

22. 使用”type int AA[10];”语句定义______

为含有______个______型元素的数组类型。 23. 使用”type char BB[10][50];”语句定义

______为含有______行______列共______个______型元素的数组类型。

二、写出下列程序运行后的输出结果并上机验证 1. #include

void main() {

int

a[10]={12,39,26,41,55,63,72,40,83,95};

int i1=0,i2=0;

for(int i=0;i<10;i++)

if(a[i]%2==1)i1++;else i2++; cout<

2. #include

void main() {

int a[8]={36,25,48,14,55,40,32,66}; int b1,b2; b1=b2=a[0];

for(int i=1;i<8;i++) if(a[i]>b1) {

if(b1>b2) b2=b1; b1=a[i]; }

cout<

3. #include

void main()

{

int a[8]={36,25,48,14,32,66}; int b1,b2; b1=b2=a[0];

for(int i=1;i<8;i++) if(a[i]

if(b1

cout<

}

4. #include

void main() {

char a[]=”abcdabcabfgacd”; int i1=0,i2=0,i=0; while(a[i]) {

if(a[i]==’a’) i1++; if(a[i]==’b’) i2++; i++; }

cout<

5. #include

void main() {

char a[]=”abcdabcabdaeff”; int b[5]={0},i=0; while(a[i]) {

switch(a[i]) {

case ‘a’: b[0]++;break; case ‘b’: b[1]++;break; case ‘c’: b[2]++;break; case ‘d’: b[3]++;break; default: b[4]++; } i++; }

for(i=0;i<5;i++) cout<

6. #include

void main() {

int

a[10]={76,83,54,62,40,75,90,92,77,84}; int b[4]={60,70,90,101}; int c[4]={0};

for(int i=0;i<10;i++) {

int j=0;

while(a[i]>=b[j]) j++; c[j]++; }

for(i=0;i<4;i++) cout<

7. #include

void main() {

int

a[3][4]={{1,2,7,8},{5,6,11,12},{9,10,3,4}};

int m=a[0][0]; int ii=0,jj=0;

for(int i=0;i<3;i++) for(int j=0;j<4;j++) if(a[i][j]>m)

{ m=a[i][j]; ii=i; jj=j; }

cout<

8. #include

#include void main() {

char a[5][10]={“student”,”worker”,”cadre”,”soldier”,”peasant”}; char s1[10],s2[10];

strcpy(s1,a[0]);strcpy(s2,a[0]); for(int i=1;i<5;i++) {

if(strcmp(a[i],s1)>0) strcpy(s1,a[i]);

if(strcmp(a[i],s2)<0) strcpy(s2,a[i]);

12