下面程序的运行结果是()

下面程序的运行结果是(),第1张

我觉得你的程序是错的,我运行时发现它果然是错的,你的程序在运行到strcat(p1,p2)就有问题了,拼接字符串时要保证第一个串有足够的空间保存拼接后的串。把 char p1; p1="abc";改成char p1[7]="abc";就可以运行了,结果输出为aabcabc,str指向“abc”中的a,str+1就指a后面的b,strcpy(str+1,strcat(p1,p2)); 把p1,p2拼接后拷到str+1位置,也就是a后面所以str就变成“aabcabc”

结果如下:

3579

解释:开头声明了一个函数fun2,在主程序中声明了变量i,用for循环语句,初始化i=0,然后执行一次函数fun2,然后i+1,并判断i是否依然小于4,第一次循环i=0,第二次i=1,第三次i=2,第四次i=3,第五次i=4,因为不小于4,所以跳出语句,程序运行完成。共循环四次。

函数fun2中,声明了一个静态变量a并赋值1。每次运行该函数a都会加2,并打印a。故会得出以上的运行结果。

另外因为此段代码中有字符为中文符号,将无法编译;且因为运行完会自动关闭,故修改为:

#include <stdioh>

void fun2()

{

static int a=1;

    a=a+2;

    printf("%d\n",a);

}

int main()

{

int i;

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

getchar();

}

截图:

回车后程序运行结束并关闭。注:为了更直观的显示因此添加了换行符。

望采纳!

改下程序 #include <stdioh>

int main()

{

int k=0;

char c='A';

do

{

switch(c++)

{

case 'A': k++; printf("k={%d}\n", k); break;

case 'B': k--; printf("k=[%d]\n", k);

case 'C': k+=2; printf("k={%d}\n", k); break;

case 'D': k=k%2; printf("k=[%d]\n", k);continue;

case 'E': k=k10; printf("k={%d}\n", k); break;

default: k=k/3; printf("k=[%d]\n", k);

}

k++; printf("k=(%d)\t", k);

}while(c<'G');

printf("k=%d\n", k);

}

编译下 看输出

先执行 switch 语句 k++; k=1;

在执行 下面的k++ ; k=2;

然后回到switch k-- ; k=1;

由于没有 break; 忽略了 case 标号 继续 k=3;

执行下面的语句 k++ ; k=4;

在执行 语句 k+=2; k=6;

执行下面的语句 k++; k=7;

执行语句 k%=2; k=1;

由于是 continue; 语句 中断后继续执行

k=10; k=10;

执行下面的语句k++ ; k=11;

执行语句 k/=3; 隐式类型转换 先提升为double k=3666 后又转为int k=3;

执行 k++; k=4;

所以答案为4;

以上就是关于下面程序的运行结果是()全部的内容,包括:下面程序的运行结果是()、C语言,下面程序的运行结果是、下面程序的运行结果是什么为什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9462541.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存