10、以下程序的输出结果是 。
#include
void abc ( char p )
{int i,j;
for(i=j=0;(p+i)!='\0';i++ )
if ((p+i)<'n')
{ (p+j)=(p+i);j++;
}
*(p+j)='\0';}
求解。
答案是mig。
运行是编译有错
程序是以main函数开始,以main函数结束的,就是说程序实际上只运行main函数
第一,你的题目可能不完整。没有主程序,不知道你输出什么,也不知道你给abc函数传入了什么。
第二,你贴代码没有贴对,特别注意,星号和大于号、小于号的代码,csdn是都不能正确显示的。
因为不能确定你的题目,所以无法回答。
你对程序根本就不理解,所谓程序,只是一些代码,而代码经过编译后,变成加减移位等cpu能认识的指令然后你执行的时候,操作系统把你这些执行的指令加入内存,然后由操作系统会执行你的第一条指令,一条条往后执行,直到程序运行结束,或者是被操作系统线程切换,等待操作系统分给你下一个
时间片来执行余下操作。
那么问题来了,什么是你的第一条指令,就是main函数,编译程序在编译成机器语言的时候,就只是在执行main函数,main函数执行完了,你的程序也就执行完了,只是main函数可以调用其它函数而已,所以你没有main函数,编译程序就会找不到首指令,找不到你的程序从哪开始执行,会报告错误,不会编译成二进制代码。
main函数是程序的入口,没有main函数就找不到入口,也就无法运行。
这个题的意思就是 默认已经有主函数了,你把这个函数功能看懂就行,看这个函数输出什么