
本题输出结果是:1#3#2
for循环共循环3次,i的值分别是9,10,11
当i=9,9/10等于0,所以执行case 0中的语句,这时m=1,n=1,k=0
当i=10,10/10等于1,没有case 1,就执行default下面的语句,执行完后,m=1,n=2,k=1
当i=11,11/10等于1,还是执行default里的语句,完成后m=1,n=3,k=2
完成循环,屏幕最终显示:1#3#2
输出结果应该是 4,5 吧
首先,i++执行后,在遇到第一个分号之后才会变成2,所以程序进入case 1:执行后m,n的值为2,3,由于没有break,所以程序就接着往下走,
到了case 2:++j=1,所以进入case 1:执行后m,n的值为3,3,由于没有break,所以程序接着往下走
到了case 2:n++,执行后m,n的值为3,4,还是没有break,继续
到了case 3:m++,n++,执行后就变成了4,5,然后遇到了break,所以就跳出了
结果是4,5
#include <stdioh>
void main()
{
int a;
float d;
printf("Enter a and d: ");
scanf("%d %f",&a,&d);//输入一个整型数据和一个浮点型数据
printf("%5d,%82f\n",a,d);//整型数据以占5个字节的位置输出并且右对齐,同理浮点数也一样,并且浮点数是以保留两位小数的形式输出
}
输出结果为
Enter a and d: 70 80158
70, 8016
Press any key to continue
1、输出为:1
if条件语句中,当()中的值为零时,条件为假,非零时条件为真;
由于逻辑运算2&&3结果为1,故条件为真,程序执行a=1语句;
最终输出为1
2、输出为:7
运行switch(1)时,将执行case(1)语句,并接着往下执行直至遇到break,或者整个switch语句结束
所以最终b=1+1+2+3=7
3、输出为:5
实际上for循环中 i 有两次自加运算,故步长为2,;即当 i 增加2时,a加1;当 i >=10时,跳出循环
最终循环一共进行了5次,所以结果a=5
4、输出为;101
for循环中,每循环一次 j 加1,j 的初值为0,当 j >100时跳出循环
故循环一共进行了101次,当 j =101时退出循环,此时 j =101
5、输出为:10
这是一个do—while循环语句,当while中 j 不等于5时进行循环,当 j =5时循环结束
该语句中一共循环了5次
a=0+1+2+3+4=10
这些程序都很简单,估计你是初学的吧,所以我写的详细点,有啥不懂的都可以再问。
应该是把数组里面的1,2,23,32求和,然后输出结果。continue是跳过此次循环,进行下一次,而break是中断循环,直接跳出。因为a[1][1]=0,所以里面的直接跳出,进入到a[2],以此类推。我的理解就是这样,如果有哪不清楚,可以一起讨论。希望可以帮到你。
结果是:
::~NNN()
::~MMM()
原因:
构造的时候 父类先构造,子类再构造;
析构的时候 子类先析构,父类再析构。
一步步的分析:
void main()
{
N n=new N(22);
fun(n);
}
N n=new N(22); 这一句,创建一个对象n的过程如下:
(1)走M的默认构造函数
(2)走N的默认构造函数
这两步,n就创建成功了。
void fun(M m)
{
delete m;
}
看fun函数,传递的是一个指针,fun(n); 这一句相当于执行了
delete n;
delete 会删除 n 对象,在删除的过程中 n 会进行析构:
(1) 走 类N的 析构函数
(2) 走 类M的 析构函数
为什么会先构造父类?
可以这样考虑,子类一般都是继承了父类以后进行扩展,比如增加了变量,或者函数,既然是继承,而不是拷贝,就说明父类里的变量等继承给父类以后,除了子类扩展的东西外,其余的使用的还是父类的东西,所以,不先创建父类就没法创建子类。
为什么先析构子类?
可以这样考虑,子类扩充父类,那么子类扩展的东西父类是不知道的,子类先释放掉自己扩展的东西,然后再调用父类的析构,释放父类的东西
以上就是关于c语言 读下列程序,写出程序的输出结果 希望有详细解析全部的内容,包括:c语言 读下列程序,写出程序的输出结果 希望有详细解析、析下列程序的输出结果 1、#include <iostream.h> void main()、{急~C程序设计}分析下列程序的输出结果等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)