计算机二级考试C语言改错题必须改主函数怎么办?

我在南开一百题题库里看的改错题,它的主函数都是main(),而不是voidmain(),但是把它输入vc++6.0里显示错误,只有加上void才行,考试的时候我该怎么办?... 我在南开一百题题库里看的改错题,它的主函数都是main(),而不是void main(),但是把它输入vc++6.0里显示错误,只有加上void才行,考试的时候我该怎么办?谁考过二级?告诉我它的判卷准则也行,是必须改的让程序运行正确吗?还是只要把指定改的地方改了就给分? 展开
 我来答
tianlidon
2016-01-03 · TA获得超过1219个赞
知道小有建树答主
回答量:676
采纳率:85%
帮助的人:104万
展开全部

首先列出一段代码:

#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++还有细微的区别。

zyc
2014-08-29 · 知道合伙人软件行家
zyc
知道合伙人软件行家
采纳数:328 获赞数:5073
擅长数据通信、路由器组网、C++语言、数据库SQL语言、GP

向TA提问 私信TA
展开全部
在一般c编译环境中,主函数前面都应该加void或int,前者不需要返回值,而后者需要返回值;
在学习考试中,main()默认是void类型,不加void应该不属于错误点。
追问
那考试环境是vc++6.0,它不能编译正确,也就不能运行,怎么给我算成绩?
追答
这种纯DOS级别的命令行编程考试,不会对void main()的有要求的,请放心使用。
如果在windows编程环境下,各种最新编译工具都要求明确各类函数的返回值。
你根据考试要求来决定。
对结果没有返回数值要求的,就明确为void;相反,有明确要求返回一个数值的,定义为int。
这个要求与vc++6没有关系。
一般考试的环境是兼容dos的命令行软件,对这个不会要求,请放心使用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2014-08-29 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6437万
展开全部
只写main(),默认的是int型返回值,主函数的最后一个}前应该有一句return 0;之类的返回语句,否则就要报错。有一点要注意,C/C++定义的主函数是int main(int argc, char *argv[]),根本就没有void main(int argc, char *argv[])这种定义,但一些编译器也认void main(int argc, char *argv[]),比如VC++6.0,不过很多编译器是不认void返回值的。所以我认为,即使是用VC++6.0作考试平台,只要是正规考试,主函数想必应该是main(int argc, char *argv[]){...return 0;}或int main(int argc, char *argv[]){...return 0;}这种格式,而不会有void main(int argc, char *argv[]){..}这种情况的。
追问
那不写void是默认为无返回值的吗?二级C语言题库里的题都只是main,而且题目要求不能修改主函数
追答
如果考试题只写main(){.......},显然这题是错误的,因为这样写默认的就是返回int值。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丶哈哈_
2014-08-29 · TA获得超过121个赞
知道答主
回答量:121
采纳率:0%
帮助的人:46万
展开全部
void 是空的意思,指main()这个函数没有类型好像,可能因为编译器(比如vc++)里的C语言版本(这么叫不太对。。)不同,有的可能不严谨 main没类型就默认void了吧
追问
那真正考试的时候是main还是void main呀?考试环境可是vc++6.0呀?
追答
应该是 void吧, 也可以是int型(函数最后必须有“return 0;”这句)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式