计算机二级考试《C语言》上机答题技巧_第1页
计算机二级考试《C语言》上机答题技巧_第2页
计算机二级考试《C语言》上机答题技巧_第3页
计算机二级考试《C语言》上机答题技巧_第4页
计算机二级考试《C语言》上机答题技巧_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——计算机二级考试《C语言》上机答题技巧计算机二级考试《C语言》上机答题技巧

C语言是一门通用计算机编程语言,应用广泛。在计算机二级C语言考试答题中有哪些做题技巧,需要留神什么问题呢?下面我带大家看看细致内容,接待参考借鉴,预祝您考试告成!想了解更多相关信息请持续关注我们我!

一、上机改错题的特点和留神事项

1.上机改错的试题中通常包含两个或三个错误需要修改。

2.试题中用******found******/来提示在下一行或下面其次行有错。

3.错误的性质根本分语法错和规律错两种,也有些试题要求把语句添加在下划线处。

4.更加要留神的是:只能在出错的行上举行修改,不要改动程序行的依次,更不要自己另编程序。

二、上机改错测试时,建议按以下步骤举行

1.首先留心审题,了解试题的要求,看领会试题给出的输入和输出例示,以便检验改错后程序运行的结果是否正确。

2.当在VisualC++6.0环境下调出源程序后,扫视所在函数,根据题义理解程序所采用的根本算法,做到心里有数。

3.先按CTRL+F7对测试程序举行检查是否有语法错误。当编译提示有语法错时,可参考编译提示来查找并改正错误。

4.当不再展现语法错时,使用F7执行,看结果使用CTRL+F5,按照试题的例如给出的数据举行试算,若试算的结果与给出的输出结果一致时,该题就做对了;若试算的结果与给出的输出结果不同,就应进一步检查程序中的规律错误。

5.当程序存在规律错误时,首先应当理解题意、读懂程序的算法,必要时可按步检查数据的流程,以便确定错误所在。例如,题目要求数据按由小到大排序,而结果数据是按由大到小举行了排序,问题可能展现在条件判断上。又如,输出的字符串比预期的短,就有可能字符串的终止标志放错了位置。再如做循环的时候数组上限下限错误了,基数是从0开头而不是1开头的。修改程序中的规律错时,要求考生专心读懂程序代码。

6.修改完成,得到正确结果后,确定不要忘却把修改后的程序存盘。

三、上机编程题的特点和说明

1.在二级C程序设计上机考试中,要求完成一个独立的函数的编程。目前教导部考试中心已出版了上机考试习题集,这些有助于学习编程,但考生应当在学习过程中理解根本的算法,通过实际上机操作积累阅历,才能掌管根本的编程才能。

四、举行编程测试时,建议按以下步骤举行

1.首先留心审题,了解试题的要求,记录试题给出的输入和输出例示,以便检验在完成指定的函数后程序运行的结果是否正确。

2.当在VisualC++6.0环境下调出源程序后,应对照函数首部的形参,扫视主函数中调用函数时的实参内容,以便明确在函数中需要处理的数据对象。

3.理解试题的要求,扫视主函数中调用函数的方式,若在表达式中调用函数如把函数值赋给某个对象,那么要求有函数值返回,需留神函数的类型,并在函数中用return语句返回函数值;若主函数中仅用语句形式调用函数,那么需要通过形参间接地返回所得结果。

4.选择适当的算法举行编程,输入程序语句。不要忘却实时存盘!

5.编译程序,直到没有语法错误。

6.调试程序,利用试题中给出的例示数据举行输入若要求输入的话,运行程序,用例示的输出数据检验输出结果,直到结果一致。

对一些C编程时常犯的错误,更加写给各位考生以供参考。

1.书写标识符时,疏忽了大小写字母的识别。

main

inta=5;

printf%d,A;

编译程序把a和A认为是两个不同的变量名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。

2.疏忽了变量的类型,举行了不合法的运算。

main

floata,b;

printf%d,a%b;

%是求余运算,得到a/b的整余数。整型变量a和b可以举行求余运算,而实型变量那么不允许举行"求余'运算。

3.将字符常量与字符串常量混淆。

charc;

c=a;

在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。C规定以"'作字符串终止标志,它是由系统自动加上的,所以字符串

"a'实际上包含两个字符:a和,而把它赋给一个字符变量是不行的。

4.疏忽了"='与"=='的识别。

在大量高级语言中,用"='符号作为关系运算符"等于'。如在BASIC程序中可以写

ifa=3then

但C语言中,"='是赋值运算符,"=='是关系运算符。如:

ifa==3a=b;

前者是举行对比,a是否和3相等,后者表示假设a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。

5.忘却加分号。

分号是C语句中不成缺少的一片面,语句末尾务必有分号。

a=1

b=2

编译时,编译程序在"a=1'后面没察觉分号,就把下一行"b=2'也作为上一行语句的一片面,这就会展现语法错误。改错时,有时在被指出有错的一行中未察觉错误,就需要看一下上一行是否漏掉了分号。

z=xy;

t=z/100;

printf%f,t;

对于复合语句来说,结果一个语句中结果的分号不能疏忽不写。

计算机二级考试《C语言》上机答题技巧

6.多加分号。

对于一个复合语句,如:

z=xy;

t=z/100;

printf%f,t;

;

复合语句的花括号后不应再加分号,否那么将会画蛇添足。

又如:

ifa%3==0;

I;

本是假设3整除a,那么I加1。但由于ifa%3==0后多加了分号,那么if语句到此终止,程序将执行I语句,不管3是否整除a,I都将自动加1。

再如:

forI=0;I5;I;

scanf%d,x;

printf%d,x;

本意是先后输入5个数,每输入一个数后再将它输出。由于for后多加了一个分号,使循环体变为空语句,此时只能输入一个数并输出它。

7.输入变量时忘却加地址运算符"'。

inta,b;

scanf%d%d,a,b;

这是不合法的。Scanf函数的作用是:按照a、b在内存的地址将a、b的值存进去。"a'指a在内存中的地址。

8.输入数据的方式与要求不符。

①scanf%d%d,a,b;

输入时,不能用逗号作两个数据间的分隔符,如下面输入不合法:

3,4

输入数据时,在两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab。

②scanf%d,%d,a,b;

C规定:假设在"格式操纵'字符串中除了格式说明以外还有其它字符,那么在输入数据时应输入与这些字符一致的字符。下面输入是合法的:

3,4

此时不用逗号而用空格或其它字符是不对的。

343:4

又如:

scanfa=%d,b=%d,a,b;

输入应如以下形式:

a=3,b=4

9.输入字符的格式与要求不一致。

在用"%c'格式输入字符时,"空格字符'和"转义字符'都作为有效字符输入。

scanf%c%c%c,c1,c2,c3;

如输入abc

字符"a'送给c1,字符"'送给c2,字符"b'送给c3,由于%c只要求读入一个字符,后面不需要用空格作为两个字符的间隔。

10.输入输出的数据类型与所用格式说明符不一致。

例如,a已定义为整型,b定义为实型

a=3;b=4.5;

printf%f%dn,a,b;

编译时不给出出错信息,但运行结果将与原意不符。这种错误尤其需要留神。

11.输入数据时,企图规定精度。

scanf%7.2f,a;

这样做是不合法的,输入数据时不能规定精度。

12.switch语句中漏写break语句。

例如:根据考试劳绩的等级打印出百分制数段。

switchgrade

caseA:printf85~100n;

caseB:printf70~84n;

caseC:printf60~69n;

caseD:printf60;

default:printferror;

由于漏写了break语句,case只起标号的作用,而不起判断作用。因此,当grade值为A时,printf函数在执行完第一个语句后接着执行其次、三、四、五个printf函数语句。正确写法应在每个分支后再加上"break;'。例如

caseA:printf85~100;break;

13.在定义数组时,将定义的"元素个数'误认为是可使的最大下标值。

main

staticinta[10]=1,2,3,4,5,6,7,8,9,10;

printf%d,a[10];

C语言规定:定义时用a[10],表示a数组有10个元素。其下标值由0开头,所以数组元素a[10]是不存在的。

14.在不应加地址运算符的位置加了地址运算符。

scanf%s,str;

C语言编译系统对数组名的处理是:数组名代表该数组的起始地址,且scanf函数中的输入项是字符数组名,不必要再加地址符。应改为:

scanf%s,str;

1、编一个函数funchar*s,函数的功能是把字符串中的内容逆置。

例子如:字符串中原有的内容为:abcdefg,那么调用该函数后,串中的内容为:gfedcba

funchar*s

inti=0,t,n=strlens;

for;sit=*si;*si=*sn-1-i;*sn-1-i=t;

注:该题的算法是先分别找出字符串的两头,然后同时逐一往中间移动,每移动一次

都举行两字符的位置对换,直到中间字符用si地址,因此要留神把它的内容取出再举行换位。即先举行取内容运算*

2、请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。例如,原来的.字符串为CEAedca,排序后输出为CedcEAa。

intfunchar*s,intnum

inti,j,t;

fori=1;iforj=i1;jifst=s;

s=s[j];

s[j]=t;

该题采用的排序法是选择法举行降序排序,算法是用外for循环从字符串的前端往后

端走动,每走动一个字符都用内嵌的for循环在该字符后找出最小的字符与该字符进

行换位。直到外for循环走到结果一个字符。此外,此题还要留神把首尾字符除开,即

在最外层for循环中从1开头,只到num-2即可。

计算机二级考试《C语言》上机答题技巧

3、请编写一个unsignedfununsignedw,w是一个大于10的无符号整数,若w是nn=2位的整数,函数求出w的后n-1位的数作为函数值返回。例如:w值为5923,那么函数返回923;w值为923那么函数返回23。

unsignedfununsignedw

ifw=10000returnw000;

ifw=1000returnw00;

ifw=100returnw0;

returnw;

注:由于unsigned型整数在0-65535这间,只要它大于10000那么对10000求余即得出后

面4位,否那么假设大于1000那么对1000求余得出后3位数,这样一层一层往小的判断。由于

return的作用除了返回值以外,还有当执行到return时就跳出该程序,所以可以连续的

用if语句。

4、请编一函数voidfuninttt[M][N],intpp[N],tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中,二维数组中的数已在主函数中赋予。

#defineM3

#defineN4

voidfuninttt[M][N],intpp[N]

inti,j;

fori=0;ipp=tt[0];

forj=0;jiftt[j]

5、请编一个函数fun,其中n所指存储单元中存放了数组中元素的个数。函数的功能是:删除全体值为y的元素。数组元素中的值和y的值由主函数通过健盘读入。

试题程序。

#defineM20

voidfunintbb[],int*n,inty

inti,j=0;

fori=0;i*n;i

ifbb!=ybb[j]=bb;

*n=j;

6、请编写一个函数intfunintx,它的功能是:判断整数x是否是同构数。若是同构数,函数返回1;否那么返回0。

所谓"同构数'是指这样的数,它展现在它的平方数的右边。例如:输入整数5,5的平方数是25,5是25中右侧的数,所以5是同构数。x的值由主函数从健盘读入,要求不大于100。

intfunintx

intxx=x*x;

ifxx==x//xx==x//xx0==xreturn1;

elsereturn0;

7、请编写函数fun,它的功能是:求出ss所指字符串中、指定字符的个数,并返回此值。例如:若输入字符串:1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论