计算机二级考试C语言改错题必须改主函数怎么办?
首先列出一段代码:
#include "stdafx.h"
#include "process.h"
main()
{
printf("hello world!\n");
system("pause");
}
这段代码main函数返回类型没有声明,也没有返回值。在VS中以c++的方式(扩展名.cpp)编译的时候提示:
错误 1 error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int d:\users\tianlidong\documents\visual studio 2013\projects\111\111\111.cpp 9 1 111
” C++ 不支持默认 int !!!!!“
但是,以c的方式编译的时候(扩展名.c),结果就出来了。原因是你用VC编译的时候是以c++方式编译的这个main函数。但是这样写也是不规范的。
在 C89 中,main( ) 是可以接受的。Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著 《The C programming Language 2e》(《C 程序设计语言第二版》)用的就是 main( )。不过在最新的 C99 标准中,只有以下两种定义方式是正确的: int main( void ) int main( int argc, char *argv[] ),但是不是所有的编译器都严格执行这一要求,至于c++还有细微的区别。
在学习考试中,main()默认是void类型,不加void应该不属于错误点。
那考试环境是vc++6.0,它不能编译正确,也就不能运行,怎么给我算成绩?
这种纯DOS级别的命令行编程考试,不会对void main()的有要求的,请放心使用。
如果在windows编程环境下,各种最新编译工具都要求明确各类函数的返回值。
你根据考试要求来决定。
对结果没有返回数值要求的,就明确为void;相反,有明确要求返回一个数值的,定义为int。
这个要求与vc++6没有关系。
一般考试的环境是兼容dos的命令行软件,对这个不会要求,请放心使用。
那不写void是默认为无返回值的吗?二级C语言题库里的题都只是main,而且题目要求不能修改主函数
如果考试题只写main(){.......},显然这题是错误的,因为这样写默认的就是返回int值。
那真正考试的时候是main还是void main呀?考试环境可是vc++6.0呀?
应该是 void吧, 也可以是int型(函数最后必须有“return 0;”这句)