二级C 上机考试指导

文章作者 100test 发表时间 2007:03:10 17:04:28
来源 100Test.Com百考试题网


1.二级C 语言程序设计上机考试包括基本操作、简单应用和综合应用。
2.C 上机操作主要是要求考生能够阅读和分析C 程序,能够采用面向对象的方法编写程序,能熟练使用Visual C 6.0集成开发环境编写和调试程序。
3.上机考试总时间为90分钟,满分100分,共有3种类型的考题:基本操作题、简单应用题、综合应用题。
4.基本操作题主要以改作题的形式出现,其出题范围主要是C 中有关类与对象的操作,如考核对象的定义、对象成员的访问方式等;简单应用题主要是考察考生编写应用程序的能力,如题目要求的功能实现某个函数的定义,或考核某种算法的C 实现等;综合应用题的出题范围主要集中在类和对象以及类的继承与派生这些知识点上。出题形式通常是要求考生按照题目要求将程序补充完整,并调试程序使之输出正确的结果。
例1 使用VC6打开考生文件夹下的工程proj1,此工程包含一个源程序文件main.cpp,但该程序运行有问题,请改正main函数中的错误。
源程序文件main.cpp清单如下:
#include
class MyClass
{
public:
MyClass(int m)
{
member=m.
}
~MyClass(){}
int GetMember()
{
return member.
}
private:
int member.
}.
MyClass Makeobject(int m)
{
MyClass *pMyClass=new MyClass(m).
return *pMyClass.
}
int main()
{
int x=7.
/*********found**********/
MyClass *myobj=Makeobject(x).
/*********found**********/
cout< <″My object has member″< <&.NBSP.
return 0.
分析: 本题考核对象指针的应用,属于改错题。
程序中出现了2个出错标识符,说明此程序有2处错误。
第1处错误:MyClass*myobj=Makeobject(x).,myobj是对象指针,而函数Makeobject的返回值是类MyClass的对象,所以应改为:MyClass*my0bj=&.Make0bject(x).。
第2处错误是:cout< <″My object has member″< <&.NBSP.成员名;和(*对象指针名).成员名;,显然上述语句的对象指针的使用方式是错误的。
答案: 应改为:cout< <″My object has member″< GetMember()< <&.NBSP. < <(*myobj).GetMember()<
例2 请编写一个函数int find(char s[],char t[]),该函数在字符串s中查找字符串t,如果找到,则返回字符串t在字符串s中的位置(整数值):否则返回-1。注意:用数组方式及两重循环来实现该函数。
注意:部分源程序已存在文件PROC2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数find的花括号中填写若干语句。
文件PROC2.cpp的内容如下:
#include
int find(char s[],char t[] ).
const int MAXLINE=256.
int main()
{
char source[MAXLINE],target[MAXLINE].
cout< <″please input a string for searching:\n″.
cin.getline(source,[MAXLINE]).
cout< <″please input a string you want to find:\n″.
cin.getline(target,MAXLINE).
int intpos=find(source,target).
if(intpos>=0)
cout< <″Finding it,The target string is at index ″
< <&.NBSP.
else
cout< <″Not finding it \n″.
return 0.
}
int find(char s[],char t[])
{
}
分析: 本题是一道简单应用题。
函数int find(char s[],char t[])的功能是在字符串s中查找字符串t,如果找到,则返回字符串t在字符串s中的位置(整数值);否则返回-1。而且用数组方式及两重循环来实现该函数。
答案:
int find(char s[],char t[])
{
int i=0,j=0.
for( i=0.s[i]!=′\0′.i )
{
if(t[0]= =s[i])
{
while(t[j]!=′\0′&.&.s[i j]!=′\0′)
{
j .
if(t[j]!=s[i j])
break.
}
}
if(t[j]= =′\0′)
return i.
}
return -1.
}
例3 请编写一个函数void fun(int aa[],int n,int x),其中n表示数组aa中元素的个数,函数的功能是:计算前x为的和并放在aa[x]中,aa数组中的元素值和x的值由主函数通过键盘读入。
部分源程序如下:
#include
#define MAX 100
void main()
{
void fun(int aa[],int n,int x).
int bb[MAX],i,x,n.
cout< <″please enter the counter of the number:\n″.
cin> >n.
cout< <″please enter the number:\n″.
for(i=0.i
cin> >bb[i].

相关文章


等级考试二级C 考点分析之C 语言的发展
全国计算机等级考试二级C语言模拟试题13
全国计算机等级考试二级C语言模拟试题13答案
二级C 上机考试指导
用于计算四则混合运算表达式的递归函数
全国计算机等级考试二级C语言模拟试题10
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛