导航:首页 > 源码编译 > 上机编译难能通过吗

上机编译难能通过吗

发布时间:2022-09-18 03:29:33

Ⅰ 计算机二级C语言中上机题可以在考试时编译还有运行吗

不会,可以调试,直到你确认正确

Ⅱ 程序无法编译通过问题,怎么解决

关于程序无法通过编译的问题,其错误类型肯定是有很多种的。根据我多年的编程调试经验,可以给你提供以下几种类型的错误,供你参考(以下以 C 语言编程经验为例,其他编程语言的调试思路也是同理的)。
其中最容易调试的程序错误类型就是:
(1)、在编写源程序过程中出现的各种语法错误。这种错误主要是由于刚刚开始学习编程,对编程语言的语句、以及语法结构还不是很清晰造成的,这种错误是最容易进行调试的,因为语法错误,编译器连编译都无法通过(通常会显示出来具体是哪一行出现错误),这样的话,你就可以直接到出错的那一行进行修改源代码了;

(2)、若是经过一段时间的上机练习,对学习编程的初始阶段已经较为熟练了、且语法错误较少了之后,之后就会遇到更加复杂、并且难于调试的语义错误。例如在 C 语言中,对于如下代码:

void main( )
{
int n ;
scanf("%d", &n) ;
if( n == 100 )
printf(" n is 100 !\n") ;
else
printf(" n is not 100 !\n") ;
}
但是若在逻辑判断语句:if( n == 100) 中,如果误将“==”(逻辑等于)写成了“=”(赋值等于),那么在 scanf("%d", &n) 语句中,无论你输入的 n 等于多少,一旦执行 if 语句,那么 将 100 这个数字赋给变量 n,则该逻辑表达式的值总是 1,程序的运行结果必定总是输出:n is 100。
而该程序的实际思路是:从键盘输入一个整数,如果该整数等于 100,则输出:n is 100 !如果输入的整数不等于 100 的话,则输出:n is not 100 !
像这样的逻辑错误(在对 C 语言源程序进行编译时,C 语言编译器是检查不出来的),如果没有丰富的程序调试经验,程序调试起来就是非常困难的。
(3)、其它的错误类型例如:数组越界、非法使用了未初始化的指针变量、未对指针变量进行有效的内存分配,就向那一块存储区域读写数据,等等。这些都会造成程序崩溃,严重的就会造成操作系统崩溃。

Ⅲ 计算机三级网络技术上机编译有错是不是一定不及格

只要你运行结果不是题里要求的,就是不及格,运行成功就是优秀,所以上机考试只有优秀、不及格两种

Ⅳ 计算机二级c语言上机三道题都编译运行出结果,而且结果都正确了为什么还没过

全国计算机等级考试二级c的程序题共有三道,分别是填空、改错、编程,分值方面填空占18分,改错18分,编程24分,总分60分。而卷面总分(选择+程序)60分以上,才会判定成绩就合格,才能够领到证书。

各题详细答题方式和评分准则如下:

1、填空题:
答题方式:
在指定位置,也就是标记有类似
/********************found*************************/
for(i=0; ____1____ ; i++)
这种位置作答。
答题时,将“____1____”双引号内的部分完全删除,然后把作答的答案填补进去,也就是“将类似__1__这种位置标记替换为作答的答案”。

题面会给出“例如输入***数据,得到***数据”的注解,可以借此编译运行程序,通过输入和输出的结果来判定程序是否正确。

评分准则:
填空题的评分准则并非以程序本身“能否正确运行”为准则,而是通过类似”对比答题的程序文本与命题组答案,逐行按比例给分“的方式来评分,也就是很多人所谓的“逐项(或逐个答题位置给分)“。

上述描述信息量过大,下面举例说明:
①题面有明文要求,只允许在指定位置作答,不许添加或删除空格、回车之类的字符,不许增减程序代码行数,更不许改动题面的程序原始代码。

例如:
题面如下:
int i,j,sum=0;
/**************found********************/
for(i=0; __1__ ;i++) //假设答案应为i<10或其他等价写法
sum+=i;

答题后排版如下:
int i,j,sum=0;
/**************found********************/
for(i=0; i<10 ;i++) sum+=i; //注意这里删除了一个回车符

卷面要求对应行数(第3行)应为
for(i=0; i<10 ;i++)
评分时判定该行内容为
for(i=0; i<10 ;i++) sum+=i;
文本与命题组答案不符,故该处答案不予给分。
同时,由于更改了行数,后续程序文本均会受影响,从而影响正常得分。

②关于上文中所谓的“命题组答案”
仍以
int i,j,sum=0;
/**************found********************/
for(i=0; __1__ ;i++) //假设答案应为i<10或其他等价写法
sum+=i;
为例。

正确答案应该是i<10或其他等价写法,那么命题组会将各种“正常的”写法作为命题组答案编撰以供评分。依旧举例说明,等价写法包括:
i<=9
i<9+1
i<=10-1
后续有无数种写法就不一一例举了
明显只有i<10和<=9是正常写法,后续写法都过于奇葩,故此处在考试时只有写入i<10或<=9才会得到正常的分数,其他写法均不给分。

另外,这里无需担心,命题组很贴心的将各种常见写法都纳入到”命题组答案“中,只要不是过于特立独行的答案,均会在考试中得到本该有的分数。

总结:
填空题,在程序能够“运行出正确的答案”,并且没有违反①和②所强调的事项,均会得到本该有的分数。
①项通常不会违反,被此项影响得分的人数很少
②项不管是考试还是练习,在”能够运行处正确的答案“前提下依旧丢分的几乎全都是因为此项。
例如考试时,答案过于特立独行,将i=i+1;写成i=i+3-2;
而市面上绝大多数的等考模拟软件,鉴于各种原因,都没有使用”命题组答案“给出的姑且称为”正确答案库“的答案范围,而是每个位置只给出一种在该模拟软件中可以得分的答案写法,其他”考试时将会正常得分“的答案写法,造成考试时能够得分但是在使用这些模拟软件时均得不到分数的情况,也就是学生们经常询问的问题:
”老师,i=i+1;和i+=1;不是一样吗?为什么这道题写i=i+1;才给分,另一道题只有写i+=1;才给分?“

2、改错题:
答题方式和评分准则完全等同与填空题,不再重复叙述

3、程序编写,即俗称的编程题:
答题方式:
题目中有明确叙述,要求书写程序的某一部分,以实现题目要求的功能。通常要求书写的位置是某个指定函数的函数体,或者部分主函数的函数体,代码量6-10行左右。

评分准则:
编程题,评分依据是”能够运行出正确的结果“,即评分依据有两个关键点,一是运行,二是结果正确。
此题评分准则依旧是跟”命题组答案“对照,依旧是对比文本后逐行按比例给分,而命题组答案在此题中将会是唯一的。
编程题的评分依据,是程序编译运行后得到的一个所谓的”out文件“,该文件在考生文件夹下,由编程运行时产生,文件名中通常带有”out”字样,各题具体的文件名,查看编程题中调用fopen函数时所书写的文件名就可以确认。
例如某题面中存在如下语句:
fopen(fp,"out.dat",w);
那么该题目对应的评分依据就是对应考生文件夹下的名为“out.dat”的文件。

编程题的评分,是将out文件的内容与命题组答案对比,逐行按比例给分。

影响得分的项目如下:
①程序存在error,无法通过编译:
无法编译,就无法运行。没有运行,就不会产生out文件。没有out文件,那么将会得到“指定文件未找到”的错误,此题判0分。
另外还有一点要注意,有个别模拟软件曾经出现过,题目中指定文件名为"out.dat",但是题面程序代码中创建的却是"ps35.out",造成“指定文件未找到”判0分的情况。这属于模拟软件的bug,不会在考试中发生。

②程序通过编译且能够运行,但是代码本身存在bug。
举个例子,写程序找出1-15之间的素数。
命题组给出的out文件内容如下:
2
3
5
7
11
13
一共6行,因为编程题总分24分,所以每行占4分。
如果考生答题过程中程序书写没有错误的话,一定会得到跟命题组内容与格式完全一样的答案(文件的书写由题面的fprintf函数负责,不允许考生改动,故文件格式是已经被指定的),将会得到满分24分。
如果代码有误,程序判定过程中将7判定为非素数,得到的out文件内容与命题组答案对比及评分细则如下:
2 2 匹配,得4分
3 3 匹配,得4分
5 5 匹配,得4分
7 11 不匹配,得0分
11 13 不匹配,得0分
13 不匹配,得0分
故此题得分仅12分。
如果上述数值均正确判断,但是错误的将1判断为素数,out文件内容如下:
1
2
3
5
7
11
13
结果可想而知,逐行判定,最终肯定判0分。
额外要说明的是,大部分模拟软件,不会进行逐行按比例给分,而是一旦out文件内容与命题组答案”不完全匹配“,直接判0分,而考试时一定是逐行按比例给分的,这点无需担心。

③程序书写正确无bug,但是改动过程序命令禁止改动的其他部分,例如fprintf函数,请参考②

总结:由于②导致该题丢分的几率是最高的,一定要小心再小心。代码出现问题时,别心急。很多时候,将已经书写完毕的代码整体删掉,重新书写,是最省事省力的解决bug的方案。

最后,补充一点,万一程序原始结构被破坏,别着急,不要冒险关闭vc6,只要按下ctrl+z组合键,就能逐步恢复之前的样式。因为ctrl+z组合键的功能是”撤销“

Ⅳ 急急急!!!!!考全国计算机二级C语言上机时,可以进行编译执行吗

1、在考上机考试时,能不能对已经修改好或已经填好空或是已经编好的程序进行编译和执行操作?这样做会不会被扣分?
这是当然的,你必须自己手动完成每个问题。
2、下面这些语句是用来做什么的?
这是一个void型的函数,用于打开文件,输入数据,调用函数,输出数据,关闭文件。
FILE
*rf,
*wf
;
这是证明文件指针。
3、如果编译没有错误,但是执行时出现错误,会不会得分?
没有语法、逻辑错误才不扣分。
孩子,你还没明白编译器,那个东西不可靠,OBJ必须连接才能运行(即没有语法错误),编译、廉洁都是语法的部分,你一定是有语法错误,才导致这个现象。一定的,你把代码发给我,我帮你看看。考试一定扣分。
4、各位建议在clrscr()函数
加上
include,但是考试说明了:只在指定的范围更改或填空或编程,但clrscr()函数不在指定的范围,这样做行吗?
不行,也很少见到这个情况,反正我几乎没见过添clrscr()的。

Ⅵ 在学谭浩强C++时做上机实验,以下代码编译不能通过,该代码是测试使用函数模板。求解。

正确代码如下,(错误原因主要是符号错用)
#include <iostream>
using namespace std;
template <class T>
T max(T a,T b,T c)
{
if(b>a) a=b;
if(c>a) a=c;
return a;
}
int main()
{
int i1=8,i2=5,i3=6,i;
double d1=51.26,d2=31.48,d3=77.8654,d;
long g1=68733,g2=-23422,g3=223245,g;
i=max(i1,i2,i3);
d=max(d1,d2,d3);
g=max(g1,g2,g3);
cout <<"i_max="<<i<<endl;
cout <<"d_max="<<d<<endl;
cout <<"g_max="<<g<<endl;
return 0;
}

Ⅶ C语言编译不能通过

此c程序是正确, 但是c++不支持int days[MONTHS]={31,30,[4]=31,30,31,[1]=29};这种语法。

你需要把 2.cpp改名为2.c

Ⅷ 全国计算机二级c语言上机考试期间能用编译器运行已经修改好的程序吗

这个可以啊 不过你好看好程序题目的细节 还有只有最后一题可以这样 ,其他的题目是填空和修改 是不能的,还有一般机考把商机一百道题那过去就可以过了! 做为一个二级过了的人给你的建议!希望你考试一切顺利哦!

阅读全文

与上机编译难能通过吗相关的资料

热点内容
ps4云服务器初始化 浏览:360
数控车床编程加工视频 浏览:245
程序员在公司受到委屈 浏览:783
玩和平精英显示连接不到服务器怎么办 浏览:705
安卓如何一步安装软件 浏览:493
云服开我的世界服务器标配 浏览:170
打印机的分配算法 浏览:634
新加坡服务器怎么进 浏览:620
上海女程序员上班被偷 浏览:377
如何添加后台app 浏览:350
中国移动机顶盒时钟服务器地址 浏览:943
如何开发app流程 浏览:427
哈尔滨编程培训课程 浏览:722
编程语言执行速度排行 浏览:174
启辰原厂导航如何装app 浏览:840
jsp项目优秀源码 浏览:757
如何查看电脑web服务器端口号 浏览:901
小区物业管理系统编程源码 浏览:96
王城战争为什么无法获取服务器列表 浏览:805
剑桥商务英语pdf 浏览:480