C++问题, 4. 下列程序执行完后,x的值是多少?

1. 设有int a[ ]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值为多少?

2. int b; b=(-1)||0; 则b的值为多少?

3. int i=2.8*6;则i的值为多少?

4. 下列程序执行完后,x的值是多少?
int x=0;
for (int k=0;k<90; k++)
if (k) x++;

5.下列描述错误的是:
A)cout输出转义字符’\n’是使光标移到屏幕的下一行 B)所有变量都要先定义其数据类型后在使用
C)在C++语言中,变量position 和PoSitioN是相同的 D)变量声明可以在C++程序的任何地方

6. 假定一个二维数组的定义为“int a[4][5];”,则该数组所含元素的个数为多少?所占存储空间的字节数为多少?

7. 表达式 50/4的值是多少?在C++中如何用表达式描述大写字母?

8. 表示“大于10而小于20的数“,用C++表达式如何表示?

9. 当一个函数无返回值勤时,定义时函数的类型应是什么?面向对象的语言具有哪些特性?类定义中,缺省的访问权限是什么?

10. char pa[10];说明pa是指向什么位置?

11.C++语言的跳转语句中,对于break和continue说法正确的是:
A)break语句只应用与循环体中 B)continue语句只应用与循环体中
C)break是无条件跳转语句,continue不是 D)break和continue的跳转范围不够明确,容易产生问题

12. 若有说明int i,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为多少?

13. 共用体是怎样定义的?

14. 下列程序计算1000以内能被3整除的自然数之和,完成空缺的语句。
#include <iostream.h>
void main( )
{
int x=1, sum;
sum=( );
while (true)
{
if (x>1000) break;
if ( ) sum+=x;
x++;
}
cout<<sum<<endl;
}

15、求个位数为7且能被3整除的6位数的个数,完成空缺的语句。
#include <iostream.h>
void main()
{
long int i;
int count;
count= ;
for(i= ;i<999999; )
if( ) count++;
cout<<count;
}

16. 写出下列程序的运行结果。
#include <iostream.h>
void main()
{
int x;int &p=x;
x=10;
p=x+10;
cout<<x<<”,”<<p<<endl;
}

#include <iostream.h>
void main()
{
for(int x=0;x<10;x++)
{
if(x%2==0)continue;
cout<<x<<”,”;
}
}

17. 某百货公司为了促销,采用购物打折的办法。
(1)在1000元以上者,按九五折优惠;(2)在2000元以上者,按九折优惠;
(3)在3000元以上者,按八五折优惠;(4)在5000元以上者,按八折优惠。
编写程序,输入购物款数,计算并输出优惠价。(要求用switch语句和if语句两种形式编写)

18. 求Fibnnaci数列的1,1,2,3,5,8,...的前40个数。

19. 用冒泡法对数组长度为N的整形数组按升序进行排序。

20. 编写递归函数,求一个数的阶乘n!,在主函数中调用该函数,并输出结果
这是本人最近遇到的难题,不知道如何做,麻烦各位高手教教,谢谢。

1. 设有int a[ ]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值为多少?
解:这个程序的没有改变 a[]的值
2. int b; b=(-1)||0; 则b的值为多少?
解:b=0
3. int i=2.8*6;则i的值为多少?
解:16
4. 下列程序执行完后,x的值是多少?
int x=0;
for (int k=0;k<90; k++)
if (k) x++;
解:这个程序每执行一次X的值就加1(除了第一次),这个程序执行了
90次。所以X=89
5.下列描述错误的是:D
A)cout输出转义字符’\n’是使光标移到屏幕的下一行
B)所有变量都要先定义其数据类型后在使用
C)在C++语言中,变量position 和PoSitioN是相同的
D)变量声明可以在C++程序的任何地方

6. 假定一个二维数组的定义为“int a[4][5];”,则该数组所含元素的个数为多少?所占存储空间的字节数为多少?
解:所含元素是20个
7. 表达式 50/4的值是多少?在C++中如何用表达式描述大写字母?
解:float A;
A=fmod(50,4);
cout<<A<<endl;

8. 表示“大于10而小于20的数“,用C++表达式如何表示?
解:if(i>10&&i<20)

9. 当一个函数无返回值勤时,定义时函数的类型应是什么?面向对象的语言具有哪些特性?类定义中,缺省的访问权限是什么?
解:定义时函数的类型应是void
10. char pa[10];说明pa是指向什么位置?
解:pa指向的是pa[]数组的第一个元素
11.C++语言的跳转语句中,对于break和continue说法正确的是: C
A)break语句只应用与循环体中
B)continue语句只应用与循环体中
C)break是无条件跳转语句,continue不是
D)break和continue的跳转范围不够明确,容易产生问题
12. 若有说明int i,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为多少?
解:k=k*(i+j)=900
13. 共用体是怎样定义的?
pubilc:
14. 下列程序计算1000以内能被3整除的自然数之和,完成空缺的语句。
#include <iostream.h>
void main( )
{
int x=1, sum;
sum=(0 );
while (true)
{
if (x>1000) break;
if ( x/3==0) sum+=x;
x++;
}
cout<<sum<<endl;
}

15、求个位数为7且能被3整除的6位数的个数,完成空缺的语句。
#include <iostream.h>
void main()
{
long int i;
int count;
count= ;
for(i= 100007;i<999999; i=i+10)
if( i/3==0) count++;
cout<<count;
}

16. 写出下列程序的运行结果。
#include <iostream.h>
void main()
{
int x;int &p=x;
x=10;
p=x+10;
cout<<x<<”,”<<p<<endl;
}
p是x的别名,系统没有为p分配储存空间。如果p的值变化也就是大于x的值变化。所以x=20

#include <iostream.h>
void main()
{
for(int x=0;x<10;x++)
{
if(x%2==0)continue;
cout<<x<<”,”;
}
}
1,3,5,7,9

17. 某百货公司为了促销,采用购物打折的办法。
(1)在1000元以上者,按九五折优惠;(2)在2000元以上者,按九折优惠;
(3)在3000元以上者,按八五折优惠;(4)在5000元以上者,按八折优惠。
编写程序,输入购物款数,计算并输出优惠价。(要求用switch语句和if语句两种形式编写)

#include <iostream.h>
#include <math.h>
void main()
{
double a,b;//a代表商品的没有打折时候的价格,B代表应该付的钱
int t;
cout<<"请输入商品的金额 !"<<endl;
cin>>a;
if(a>=5000)
t=4;
else if (a>=3000)
t=3;
else if (a>=2000)
t=2;
else if (a>=1000)
t=1;
switch(t)
{
case 1: b=a*0.95; break;
case 2: b=a*0.9; break;
case 3: b=a*0.85; break;
case 4: b=a*0.8; break;
}

cout<<"优惠的金额="<<a-b<<endl;
}

18. 求Fibnnaci数列的1,1,2,3,5,8,...的前40个数。
#include<iostream.h>
using namespace std;
int fibonacci(int x)
{
if(n<=1)
return 1;
return fibonacci(n-1)+fibomacci(n-2);
}
void main()
{
int fibonacci(int x);
int i;
for(i=0;i<40;i++)
cout<<fibonacci(i)<<" ";
}

19. 用冒泡法对数组长度为N的整形数组按升序进行排序。
#include <iostream.h>
using namespace std;
define N 10
void main()
{
int a[D],i,j,k;
printf("Input ten num:\n");
for(i=0;i<10;i++)
scanf("%d",&a);
for(j=0;j<9;j++)
{
for(i=0;i<9-j;i++)
if(a>a[i+1])
{ k=a;
a=a[i+1];
a[i+1]=k;
}
}
printf("The last num:\n");
for(i=0;i<10;i++)
printf("%d\n",a);
}

20. 编写递归函数,求一个数的阶乘n!,在主函数中调用该函数,并输出结果

#include<stream.h>
using namespace std;
int factorial(int n)
{
if (n==0)return1;
rerurn n*factorial(n-1);
}
int main()
{
int m;
cout<<"你要求的是多少的阶乘?"<<endl;
cin>>m;
factorial(m);
cout<<m<<"得阶乘等于"<<factorial(m)<<endl
}
其实这些题并不难,我希望你自己亲自动手去解决他,不然等你大学毕业的时候你就会觉得很空虚,觉得什么都没有学到
我花了1个多小时给你答出来了,你自己看着办吧
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-07-03
上面的回答真的很不错。

只是我觉得这几个题好像答错啦:

1. 设有int a[ ]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值为多少?
解:a[0] = 10,a[1] = 12,a[2] = 12

2. int b; b=(-1)||0; 则b的值为多少?
解:b = 1

5.下列描述错误的是:c
A)cout输出转义字符’\n’是使光标移到屏幕的下一行
B)所有变量都要先定义其数据类型后在使用
C)在C++语言中,变量position 和PoSitioN是相同的
D)变量声明可以在C++程序的任何地方

6. 假定一个二维数组的定义为“int a[4][5];”,则该数组所含元素的个数为多少?所占存储空间的字节数为多少?
解:所含元素是20个,所占存储空间的字节数为80(VC++里),40(turboc里及WinTC里)

9. 当一个函数无返回值时,定义时函数的类型应是什么?面向对象的语言具有哪些特性?类定义中,缺省的访问权限是什么?
解:无返回值是void,面向对象程序设计语言具有封装、继续、抽象、多态,类定义中,缺省的访问权限是private(即私有访问权限)

11.C++语言的跳转语句中,对于break和continue说法正确的是:
A)break语句只应用与循环体中
B)continue语句只应用与循环体中
C)break是无条件跳转语句,continue不是
D)break和continue的跳转范围不够明确,容易产生问题
解:这个题我选的是A,在多路分去switch(){case x:break;}语句当中也会遇到

13. 共用体是怎样定义的?
解:共用体定义用关键字union
例如:union
{
int i;
float j;
}

14. 下列程序计算1000以内能被3整除的自然数之和,完成空缺的语句。
解:
#include <iostream.h>
void main( )
{
int x=1, sum;
sum=(0 ); //填
while (true)
{
if (x>1000) break;
if (0 == x%3) sum+=x; //填
x++;
}
cout<<sum<<endl;
}

15、求个位数为7且能被3整除的6位数的个数,完成空缺的语句。
解:
#include <iostream.h>
void main()
{
long int i;
int count;
count= 0 ; //填
for(i=100007 ;i<999999;i+=10 ) //填
if(0 == i%3) count++; //填
cout<<count;
}

16. 写出下列程序的运行结果。
#include <iostream.h>
void main()
{
int x;int &p=x;
x=10;
p=x+10;
cout<<x<<”,”<<p<<endl;
}
解:20,20

#include <iostream.h>
void main()
{
for(int x=0;x<10;x++)
{
if(x%2==0)continue;
cout<<x<<”,”;
}
}
解:
1,3,5,7,9,

18. 求Fibnnaci数列的1,1,2,3,5,8,...的前40个数。
#include "stdafx.h"
#include <iostream.h>

int Fib(int i);

int main()
{
int i;
int fib[40] ;
for(i=0; i<40; i++)
{
fib[i] = Fib(i);
}
for(i=0; i<40; i++)
{
if(0 == i%5)
{
cout <<endl;
}
cout << fib[i] << "\t";
}
cout << endl;
return 0;
}

int Fib(int i)
{
if(0 == i || 1 == i)
{
return 1;
}else{
return Fib(i-1)+Fib(i-2);
}
}

19. 用冒泡法对数组长度为N的整形数组按升序进行排序。
解:
#include "stdafx.h"
#include <iostream.h>

const int N = 10;

void MaoPao();

int main()
{
MaoPao();
return 0;
}

void MaoPao()
{
int i,j,temp = 0;
int arr[N];
cout << "Please input numbers: " << endl;
for(i=0; i<N; i++)
{
cin >> arr[i];
}
for(i=N-1; i>0; i--) //控制N-1次循环
{
for(j=0; j<=i; j++) //进行泡行交换
{
if(arr[j]>arr[j+1])
{
temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
for(i=0; i<N; i++)
{
if(0 == i%5)
{
cout <<endl;
}
cout << arr[i] << '\t';
}
cout << endl;
}

20. 编写递归函数,求一个数的阶乘n!,在主函数中调用该函数,并输出结果
解:
#include "stdafx.h"
#include <iostream.h>

double Fun(double num);

int main(int argc, char* argv[])
{
double num,value = 0.0;
cout << "Please input a number: " << endl;
cin >> num;
while(num <0)
{
cout << "The number is error!" << endl;
cout << "Please input a number again: " << endl;
cin >> num;
}
value = Fun(num);
cout << "value = " << value << endl;
return 0;
}

double Fun(double num)
{
if(0 == num || 1 == num)
{
return 1;
}else{
return(num *Fun(num-1));
}
}

好啦,20题也就只是这样,楼上的做的很不错。在此,只是稍做修改并加了一些个人的意见,其它的题楼上的都已经完成啦的。在此,还要感谢楼又给了我学习的机会啦。
第2个回答  2008-07-05
1.10,12,12
2.1
3.16
4.89
5.C
6.含元素是20个,所占存储空间的字节数为80(VC++里),40(turboc里及WinTC里)
7.12,char ch,if(ch>='A'&&ch<='Z')
8.if(i>10&&i<20)或用while语句
9.void类型,面向对象程序设计语言具有封装、继承、抽象、多态,类定义中,缺省的访问权限是private私有访问权限
10.pa指向的是pa[]数组的第一个元素
11.B
12.900
13.共用体定义用关键字union
例:union
{
int a;
float b;
} 且所占字节为声明变量中的最大者,此例中为b,4字节
14.#include <iostream.h>
void main( )
{
int x=1, sum;
sum=(0 );
while (true)
{
if (x>1000) break;
if ( x%3==0) sum+=x;
x++;
}
cout<<sum<<endl;
}
15.#include <iostream.h>
int main()
{
int i;
int count;
count= 0 ;
for(i=100007 ;i<999999;i+=10 )
if( i%3==0) count++;
cout<<count<<endl;
}
16.20,20
1,3,5,7,9,
17.#include <iostream.h>
#include <math.h>
void main()
{
double a,b;int t;
cout<<"请输入商品的金额 !"<<endl;
cin>>a;
if(a>=5000)
t=4;
else if (a>=3000)
t=3;
else if (a>=2000)
t=2;
else if (a>=1000)
t=1;
switch(t)
{
case 1: b=a*0.95; break;
case 2: b=a*0.9; break;
case 3: b=a*0.85; break;
case 4: b=a*0.8; break;
}

cout<<"优惠的金额="<<a-b<<endl;
}

18.#include<iostream.h>
int fibonacci(int n)
{
if(n==1||n==0)
return 1;
else
return fibonacci(n-1)+fibonacci(n-2);
}
int main()
{

int i=0,a[40];
for(i=0;i<40;i++)
a[i]=fibonacci(i);
for(i=0;i<40;i++)
cout<<a[i]<<",";

}
19.#include <iostream.h>

const int N = 10;

void MaoPao();

int main()
{
MaoPao();
return 0;
}

void MaoPao()
{
int i,j,temp = 0;
int arr[N];
cout << "Please input numbers: " << endl;
for(i=0; i<N; i++)
{
cin >> arr[i];
}
for(i=N-1; i>0; i--)
{
for(j=0; j<=i; j++)
{
if(arr[j]>arr[j+1])
{
temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
for(i=0; i<N; i++)

cout << arr[i] << '\t';

cout << endl;
}
20.#include<iostream.h>

int factorial(int n)
{
if (n==0) return 1;
return n*factorial(n-1);
}
int main()
{
int m;
cout<<"输入一个自然数:"<<endl;
cin>>m;
factorial(m);
cout<<"结果是"<<factorial(m)<<endl;
}
第3个回答  2019-06-04
最后结果x=6,这个代码就是弄着玩的吧
for(
j=0;
j<=3;
j++
)
{
if(
j
)
continue;
x++;
}
只有j==0时,才不会continue
也就是说,这个循环结束后,总共只有1次是执行了x++;
第4个回答  2008-06-21
循环执行90次,k=0时不满足条件,所以x++执行了89次,x=89本回答被提问者采纳
相似回答