全国计算机等级考试三级C语言上机调试技巧
•素还真•
今天再次参加三级上机C语言考试。一年前我报的是三级网络,笔试没问题,但由于从来没有学过程序设计语言,机试时面对题目可以说是一窍不通。一年后,我报的是数据库技术(网络太熟了,再考就没有意义),笔试依然没问题,机试,我顺利把程序调试出来了!现把我上机调试的经验写出来给大家参考一下,本文首发于霏凡论坛编程区,由素还真原创,转载请注明作者与出处。
三级C语言的绝大部分题目都出在南开一百题里,网上很多地方都有,百度一下就好。
记得要保存,不保存什么都没用。
主函数main()、读函数ReadDat()和写函数WriteDat()的内容不需要动,动了就基本出错。
实际上我们要做的就是编一个函数而已,这个函数没有入口也没有返回值,其改变的是全局变量。这种函数不符合一般函数要求的高内聚性和低耦合性,这样的设计估计是为了方便评分系统的评分。
程序起码要通过TC的编译,由于TC没有语法着色,所以如果编译时出错要细心查找。实际上官方并没有强制用TC,我们可以到考生文件夹了,找到源程序用其他的编译器编译(如果有的话)。
(以下针对TC)
有输出的题目,可以通过Run->User screen查看结果。
但绝大部分都的题目都是没有输出的,即使过了编译,运行的结果不一定对,如何检查呢?
这时可以在TC里手动打开IN.DAT和OUT.DAT。File->Open,将*.C改为*.DAT就好了,对比这两个文件,看输出的结果和题目的要求是否有差别。
大部分题目都涉及到排序,由于不需要考虑算法的效率,只需记得一种就可以了,我比较喜欢的是冒泡法(没有跳出的语句):
int i,j;
int temp;
int mc[80];
for(i=80;i>1;i--) //注意i=80,其初值为数组的长度
{
for(j=0;j<i-1;j++) //注意是j<i-1
{
if(mc[j]<mc[j+1]) //小于是从大到小排序,大于是从小到大排序
temp=mc[j],mc[j]=mc[j+1],mc[j+1]=temp; //交换
}
}
排序中要特别注意的是字符串的比较和复制要用下面两个函数:
strcmp(str1,str2); //字符排序比较时要用此函数,
//比的是ASCII码,英文字典中位置后的比较大,小写字母比大写字母大,
//如果str1==str2,函数值为0,
//如果str1>str2,函数值为正数,
//如果str1<str2,函数值为负数,
strcpy(str1,str2); //字符排序比较交换时要用此函数,是将后面字符数组里的值赋给前面字符数组
其他几个有可能用到的字符串处理函数:
strcat(str1,str2); //将str2连接到str1后面
strlen(str); //求字符数组长度
strlwr(str); //将字符数组里的大写字母转换为小写
strupr(str); //将字符数组里的小写字母转换为大写