[全国计算机二级c考试成绩查询]全国计算机二级C考试

更新时间:2019-11-15 来源:模拟经营 点击:

【www.hzclsc.cn--模拟经营】

全国计算机二级C考试

电脑报专门请来了全国计算机等级考试技术组成员、浙江省计算机等级考试资深名师 孙顾天老师为大家精心制作了一套模拟题。孙顾天老师参与过全国计算机等级考试评卷及《全国计算机等级考试 习题集》、《C语言程序设计》等10多本教材与参考书籍的编写。如果你理解了这些题,相信二级C语言冲上90分也不难!
孙顾天眼中的计算机二级考试
电脑报:孙老师,每年的全国计算机二级等级考试前,我们都会收到很多学生的来信,希望能刊登一些相关的学习资料。我们也非常理解学生们的这种需求,这次请您来,希望能为应试的考生作一些指点,给他们带来一些惊喜。
孙顾天:惊喜?这有难度,呵呵。对只有五天时间来说,最好的方法,就是给大家出一套模拟考试题,并对考试题进行详细的解读,大家理解了这套题,相信过二级考试就不难了。
近年来,全国计算机二级等级考试知识点越来越明细,以基础知识为主体,并加强了对基础知识应用的深入理解。本套模拟试题,从基础知识点入手,让考生可以全面地掌握出这类考题的出题方向、知识点分布情况。其中,几个常见知识点均给出了不同的试题类型,以便考生可以举一反三。
我认为只须了解的知识点:算法(堆栈、队列、链表)、程序设计基础(程序设计风格)、软件工程基础(软件生命周期、软件危机、结构化分析、设计方法)、数据库设计基础(数据库基本概念、关系代数)。
我认为必须掌握的知识点:算法(二叉树性质运算与遍历、排序运算)、程序设计基础(面向对象与面向过程的基本概念)、软件工程基础(软件定义、软件工程概念、软件测试分类)、数据库设计基础(数据模型)。选择排序、冒泡排序、交换、二维数组元素值对换、杨辉三角、阶乘、累加、素数、字符ASCII、字符串连接、字符串比较、求最大/小值、链表插入、链表删除、结构体应用。
各类试题侧重知识点
回顾历年试题,选择题的前10题与填空题的前5题均为公共基础知识部分,其出题重心在理论的了解与算法的掌握(考生不必在这些题上下太多的功夫,但二叉树部分的计算是必须掌握的)。
选择题后40题分为三大部分:11~20题为C语言语法基础(标识符命名、输入/输出函数、变量定义等);21~30题为简单程序(条件表达式理解、控制语句、字符型数据运算);30~50题为综合程序(数组、函数、指针、结构体、预处理命令等)。填空题的6~20题为C语言的程序应用(主要考查一些常用的算法代码书写与程序的阅读能力)。
上机题主要分三大部分:第一题:填空,主要考查简单算法与控制语句的掌握;第二题:改错题,测试考生对语义的理解;第三题:编程题,必考知识点是数组、指针、函数,可能还会涉及数值数组运用、字符串操作、链表操作等。
本次考试最可能考到的知识点
4月12号就要参加考试的学生,在复习时一定要重点明确。例如基础部分的知识,在一定程度上讲是可以研究很深入的但根本没有必要,一旦分寸把握不当反而失分。因此,我建议考生在复习基础部分时,以概念掌握为主导,只重点掌握排序与二叉树部分。
我认为这次考试最可能考到的知识点是:C语言基本语法(如C程序的组成,语句的书写、标识符命名、常量、变量的区分)、数据类型(区分不同的数据类型、注意整型与字符型相互的ASCII运算)、控制语句(分支 条件的书写与控制的语句数量、循环 执行顺序与次数判定)、数组(初始化、二维数组、字符串,注意字符串相关函数应用)、函数(声明、定义、调用、递归)。
此外,请考生要注意函数定义时返回值类型的应用、指针(指向数组、指向字符串)、预处理命令(#define、#include,由于本次考试的一些变化,请考生要注意#include的使用)、结构体(这一类型是笔试必出题,往往出现在选择与填空的最后一题。出题的要点在于链表的应用:建立、删除结点、查找结点)。
考试重点仍然在数组、函数、指针这三大部分,但也可能扩展至其他知识点。考生在复习时,一定要重点明确,加强程序阅读能力,在程序中梳理知识点。
上机考试是本次考试中变化比较明显的部分,全部统一使用vc6.0编译工具。对于大部分考生来说应该更加方便,因为VC是中文版本。但VC对程序编写格式的要求也比较高。考生一定要熟练运用(Ctrl+F7 编译,Ctrl+F5 链接,Ctrl+F5 执行),上机时不要忘记保存与执行。
笔试部分
一 、选择题
1
已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为
A)GEDHFBCA
B)DGEBHFCA
C)ABCDEFGH
D)ACBFEDHG
2
树是节点的集合,它的根节点数目是
A)有且只有1
B)1或多于1
C)0或1
D)至少2
3
如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是
A)e3,e1,e4,e2
B)e2,e4,e3,e1
C)e3,e4,e1,e2
D)任意顺序
4
在设计程序时,应采纳的原则之一是
A)不限制goto语句的使用
B)减少或取消注解行
C)程序越短越好
D)程序结构应有助于读者理解
5
下列叙述中,不属于软件需求规格说明书的作用的是
A)便于用户、开发人员进行理解和交流
B)反映出用户问题的结构,可以作为软件开发工作的基础和依据
C)作为确认测试和验收的依据
D)便于开发人员进行需求分析
6
下列不属于软件工程的3个要素是
A)工具 B)过程 C)方法 D)环境
7
单个用户使用的数据视图的描述称为
A)外模式 B)概念模式
C)内模式
D)存储模式
8
将E-R图转换到关系模式时,实体与联系都可以表示成
A)属性
B)关系
C)键
D)域
9
下列工具中为需求分析常用工具的是
A)PAD
B)PFD
C)N-S
D)DFD
10
SQL语言又称为
A)结构化定义语言
B)结构化控制语言
C)结构化查询语言
D)结构化操纵语言
11
C语言程序的基本单位是
A)程序行 B)语句
C)函数 D)字符
12
下面四个选项中,均是合法整型常量的选项是
A)160-0xffff011
B)-0xcdf01a0xe
C)-01986,0120668 D)-0x48a2e50x
13
以下选项中合法的用户标志符是
A)long
B)_2Test
C)3Dmax
D)A.dat
14
在C语言中,变量的隐含存储类别是
A)auto
B)static
C)extern
D)无存储类别
15
以下4个选项中,不能看做一条语句的是
A);
B)a=5,b=2.5,c=3.6;
C)if(a
D)if(b!=5)x=2;y=6;
16
假定x和y为double型,则表达式x=2,y=x+3/2的值是
A)3.500000
B)3
C)2.000000
D)3.000000
17
设x,y,t均为int型变量,执行下列语句后,y的值为
x=y=3;
t=++x||++y;
A)不确定
B)4
C)3
D)1
18
已知i,j,k为int型变量,若从键盘输入:1,2,3 回车 ,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是
A)scanf( -,-,- , i, j, k);
B)scanf( %d %d %d , i, j,
C)scanf( %d,%d,%d , i, j,
D)scanf( i=%d,j=%d,k=%d , i, j,
19
有如下定义
#define D 2
int x=5;float y=3.83;
char c= D
则下面选项中错误的是
A)x++; B)y++; C)c++;
D)D++;
20
下列程序运行的结果是
main()
{
float x;
int i;
x=3.6;
i=(int)x;
printf( x=%f,i=%d ,x,i);
}
A)x=3.600000,i=3 B)x=3.6,i=3
C)x=3,i=3 D)x=3.600000,i=3.000000
21
以下程序的输出结果是
main()
{
int x=1,y=3;
printf( %d, ,x++);
{ int x=0;x+=y*2;
printf( %d,%d, ,x,y);
}
printf( %d,%d\n ,x,y);
}
A)1,6,3,1,3
B)1,6,3,6,3
C)1,6,3,2,3
D)1,7,3,2,3
22
以下程序段的描述,正确的是
x=-1;
do
{x=x*x;}
while(!x);
A)死循环
B)循环执行两次
C)循环执行一次 D)有语法错误
23
设有以下程序段
int x=0,s=0;
while(!x!=0)s+=++x;
printf( %d ,s);

A)运行程序段后输出0
B)运行程序段后输出1
C)程序段中的控制表达式是非法的
D)程序段执行无限次
24
在下述程序中,判断i j共执行的次数是
main()
{int i=0, j=10, k=2, s=0;
for (;;)
{i+=k;
if(i j)
{printf( %d ,s);
break;
}s+=i;
}
}
A)4 B)7 C)5 D)6
25
执行下面的程序段后,变量k中的值为
int k=3, s[2];
s[0]=k; k=s[1]*10;
A)不定值 B)33 C)30 D)10
26
以下不能对二维数组a进行正确初始化的语句是
A)int a[2][3]={0};
B)int a[2][ ]={{1,2},{0}};
C)int a[ ][3]={{1,2},{3,4},{5,6}};
D)int a[2][ ]={1,2,3,4,5,6};
27
下面程序输出的结果是
main()
{
int i;
int a[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i i++)
printf( %d ,a[2-i][i]);
}
A)1 5 9 B)7 5 3
C)3 5 7 D)5 9
28
下面说明不正确的是
A)char a[10]= china
B)char a[10],*p=a;p= china
C)char *a;a= china
D)char a[10],*p;p=a= china
29
下列程序执行后的输出结果是
main()
{ char arr[2][4];
strcpy(arr, you strcpy(arr[1], me
arr[0][3]=
printf( %s\n ,arr);}
A)you me
B)you
C)me
D)err
30
C语言规定,函数返回值的类型是由
A)return语句中的表达式类型所决定
B)调用该函数时的主调函数类型所决定
C)调用该函数时系统临时决定
D)在定义该函数时所指定的函数类型所决定
31
设有如下函数
fun (float x)
{
printf( \n%d ,x*x);}
则函数的类型是
A)与参数x的类型相同 B)void
C)int型 D)无法确定
32
以下正确的说法是
A)定义函数时,形参的类型说明可以放在函数体内
B)return后边的值不能为表达式
C)如果函数值的类型与返回值类型不一致,以函数值类型为准
D)如果形参与实参类型不一致,以实参类型为准
33
若有以下程序
#include stdio.h
void f(int n);
main()
{ void f(int n);
f(5);
}
void f(int n)
{ printf( %d\n ,n); }
则以下叙述中不正确的是
A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B)若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数f
C)对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明
D)函数f无返回值,所以可用void将类型定义为无返回值型
34
有以下程序
int f(int n)
{ if(n==1)return 1;
else return f(n-1)+1;}
main()
{ int i,j=0;
for(i=1;i i++)j+=f(i);
printf( %d\n ,j);}
程序运行后的输出结果是
A)4 B)3 C)2 D)1
35
若说明int *p,n;则通过语句scanf能够正确读入数据的程序段是
A)p= scanf( %d ,
B)p= scanf( %d ,*p);
C)scanf( %d ,n);
D)p= scanf( %d ,p);
36
下面函数的功能是
char *fun(char *str1,char*str2)
{
while((*str1) (*str2++=*str1++));
return str2;
}
A)求字符串的长度
B)比较两个字符串的大小
C)将字符串str1复制到字符串str2中
D)将字符串str1接续到字符串str2中
37
下列程序的运行结果是
void fun(int *a,int *b)
{
int *k;
k=a;a=b;b=k;
}
main()
{
int a=2004, b=9,*x= a,*y=
fun(x,y);
printf( %d%d ,a,b);
}
A)2004 9 B)9 2004
C)0 0 D)编译时出错
38
下列程序是用来判断数组中特定元素的位置所在。如果输入如下整数:
876 675 896 101 301 401 980 431 451 777
#include stdio.h
int fun(int *s, int t, int *k)
{
int i;
*k=0;
for(i=0;i i++)
if(s[i]==980) *k=i;
}
main()
{
int a[10]={ 876,675,896,101,301,401,980,431,451,777},k;
clrscr();
fun(a, 10,
printf( %d, %d\n , k, a[k]);
}
则输出结果为
A)7,431 B)6 C)980
D)6,980
39
下面程序应能对两个整型变量的值进行交换。以下正确的说法是
main()
{
int a=10,b=20;
printf( a=%d,b=%d\n ,a,b);
swap( a,
printf( a=%d,b=%d\n ,a,b);
}
swap(int p,int q)
{
int t;
t=p;p=q;q=t;
}
A)该程序完全正确
B)该程序有错,只要将语句swap( a, 中的参数改为a,b即可
C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)即可
D)以上说法都不对
40
有以下程序
main()
{
char *p,*q;
p=(char *)malloc(sizeof(char)*20); q=p;
scanf( %s %s ,p,q); printf( %s %s\n ,p,q);
}
若从键盘输入:abc def 回车 ,则输出结果是
A)def def
B)abc def
C)abc d
D)d d
41
有如下程序
main()
{ char ch[2][5]={ 6937 , 8254 },*p[2];
int i,j,s=0;
for(i=0;i i++)p[i]=ch[i];
for(i=0;i i++)
for(j=0;p[i][j] \0 j+=2)
s=10*s+p[i][j]- 0
printf( %d\n ,s);}
该程序的输出结果是
A)69825
B)63825
C)6385
D)693825
42
设有如下定义:
struct sk
{ int a;
float b;
} data;
int *p;
若要使P指向data中的a域,正确的赋值语句是
A)p=
B)p=data.a;
C)p= data.a;
D)*p=data.a;
43
有以下程序
struct STU
{ char num[10]; float score[3]; };
main()
{
struct STU s[3]={{ 20021 ,90,95,85},
{ 20022 ,95,80,75},
{ 20023 ,100,95,90},
},*p=s;
int i; float sum=0;
for(i=0;i i++)
sum=sum+p- score[i];
printf( %6.2f\n ,sum);
}
程序运行后的输出结果是
A)260.00
B)270.00
C)280.00
D)285.00
44
以下对结构体类型变量的定义中,不正确的是
A)typedef struct aa
{ int n;
float m;
}AA;
AA tdl;
B)#define AA struct aa
AA{ int n;
float m;
} tdl;
C)struct
{ int n;
float m;
} aa;
struct aa tdl;
D)struct
{ int n;
float m;
} tdl;
45
若有下面的说明和定义
struct test
{ int ml; char m2; float m3;
union uu {char ul[5]; int u2[2];} ua;
} myaa;
则sizeof(struct test )的值是
A)12 B)16
C)14 D)9
46
以下程序的输出是
struct st
{ int x; int *y;} *p;
int dt[4]={ 10,20,30,40 };
struct st aa[4]={ 50, dt[0],60, dt[0],60, dt[0],60, dt[0]};
main()
{ p=aa;
printf( %d\n ,++(p-
}
A)10 B)11
C)51
D)60
47
若有运算符 ,sizeof,^, =,则它们按优先级由高至低的正确排列次序是
A)sizeof, =, ,^
B)sizeof, ,^, =
C)^, ,sizeof, =
D) ,^, =,sizeof
48
函数fseek(pf, OL,SEEK_END)中的SEEK_END代表的起始点是
A)文件开始
B)文件末尾
C)文件当前位置
D)以上都不对
49
有以下程序
#include stdio.h
main()
{ FILE *fp; int i=20,j=30,k,n;
fp=fopen( d1.dat , w );
fprintf(fp, %d\n ,i);fprintf(fp, %d\n ,j);
fclose(fp);
fp=fopen( d1.dat , r
fscanf(fp, %d%d , k, printf( %d %d\n ,k,n);
fclose(fp);
}
程序运行后的输出结果是
A)20 30
B)20 50
C)30 50
D)30 20
50
有以下程序
#include
struct NODE
{ int num; struct NODE *next; };
main()
{
struct NODE *p,*q,*r;
p=(struct NODE*)malloc(sizeof(struct NODE));
q=(struct NODE*)malloc(sizeof(struct NODE));
r=(struct NODE*)malloc(sizeof(struct NODE));
p- num=10; q- num=20; r- num=30;
p- next=q;q- next=r;
printf( %d\n ,p- num+q- next- num);
}
程序运行后的输出结果是
A)10
B)20
C)30
D)40
二、填空题
冒泡排序算法在最好的情况下的元素交换次数为【1】 。
在最坏情况下,堆排序需要比较的次数为 【2】 。
若串s= MathTypes ,则其子串的数目是 【3】 。
【4】是数据库设计的核心。
在关系模型中,把数据看成一个二维表,每一个二维表称为一个【5】 。
以下程序的输出结果是 【6】。
main ()
{ int i=010,j=10;
pirntf ( %d,%d\n ,i,j);
}
下列程序的输出结果为 【7】。
main ()
{ int x=3,y=5;
printf ( %d ,x=(x--)*(--y));
}?
以下程序的输出结果是 【8】。
fun (int x,int y,int z)
{ z =x*x+y*y;}
main ()
{ int a=31;
fun (6,3,a)
printf ( %d , a)
}
已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch= a + 8 - 3 的值为 【9】。
若从键盘输入58,则以下程序输出的结果是 【10】 。
main()
{ int a;
scanf( %d ,
if(a 50)printf( %d ,a);
if(a 40)printf( %d ,a);
if(a 30)printf( %d ,a);
}
下列程序的输出的结果是 【11】 和 【12】。
main()
{ int i,j row,colum,m;
static int array[3][3]={{100,200,300},{28,72,-30}{-850,2,6}};
m=array[0][0];for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(array[i][j]<m)
{m=array[i][j];colum=j;row=i;}
printf( %d,%d,%d\n ,m,row);
}
以下程序中,select 函数的功能是在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。
#define N 3
#define M 3
select(int a[N][M],int *n)
{ int i,j,row=1,colum=1;
for(i=0;I I++)
for(j=0;j j++)
{
if(a[i][j] a[row][colum]){row=i;colum=j;}
*n= 【13】 ;
return 【14】 ;
}
main()
{ int a[N][M]={9,11,23,6,1,15,9,17,20},max,n;
max=select(a,
printf( max=%d,line=%d\n ,max,n);
}
函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s t时返回正值,当s t时返回负值。请填空。
my_cmp(char *s, char *t)
{ while (*s == *t)
{ if (*s == \0 )return 0;
++s; ++t;
} return 【15】 ;
}
下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。
main()
{int i, x, y=1;
scanf( %d ,
for(i=2; i =x/2; i++)
if【16】{ y=0; break;}
printf( %d\n , y);
}
下面程序的功能是将一个字符串str的内容颠倒过来,请填空。
#include string.h
main()
{ int i,j,【17】;char str[]={ 1234567 };
for(i=0,j=strlen(str)【18】;i i++,j--)
{k=str[i];str[i]=str[j];str[j]=k;}
printf( %s\n ,str);
}
以下程序可把输入的十进制数以十六进制数的形式输出,请填空。
main()
{char b[17]={ 0123456789ABC
DEF };
int c[64],d,i=0,base=16;
long n;
printf( Enter a number:\n );scanf( %ld ,
do{c[i]=【19】;i++;n=n/base;}
while(n!=0);
printf( Transmite new base:\n );
for(--i;i --i)
{d=c[i];printf( %c ,b【20】);}
printf( \n );
}

本文来源:http://www.hzclsc.cn/danjiyouxi/39704.html

为您推荐

【茂伸奇谈happy end】茂伸奇谈常见问题及解决方法

茂伸奇谈(茂伸奇谈-Monobeno-)日前已经发售,那么许多玩家在游戏中遇到的一些问题该怎么解决呢?下面就来分享一下茂伸奇谈常见问题及解决方法。茂伸奇谈常见问题及解决方法《茂伸奇谈-Monobeno模拟游戏

2021-02-25 18:54:41  

【欧洲卡车模拟2方向盘设置】欧洲卡车模拟2方向盘180度设置教程 欧洲卡车模拟2方向盘180度怎么设置

您的位置:首页 → 单机游戏 → 模拟游戏 → 欧洲卡车模拟2方向盘180度设置教程 欧洲卡车模拟2方向盘180度怎么设置 欧洲卡车模拟2方向盘180度设置教程 欧洲卡车模拟2方向盘180度怎么设置时模拟游戏

2021-02-25 18:54:41  

欧洲卡车模拟2配置要求|欧洲卡车模拟2低配置画面设置优化方法 欧洲卡车模拟2画面怎么设置

您的位置:首页 → 单机游戏 → 模拟游戏 → 欧洲卡车模拟2低配置画面设置优化方法 欧洲卡车模拟2画面怎么设置 欧洲卡车模拟2低配置画面设置优化方法 欧洲卡车模拟2画面怎么设置时间:2018 2 2模拟游戏

2020-12-20 11:05:28  

【深海迷航秘籍代码】深海迷航秘籍怎么用 深海迷航秘籍代码大全

深海迷航秘籍怎么用?深海迷航游戏中使用秘籍可以快速的完成任务,增加物品收益,本文带来了秘籍代码及使用方法,有需要的玩家欢迎收藏。下面就一起来看看深海迷航秘籍代码大全吧。f3 f8同时打开,勾选掉禁用控模拟游戏

2020-12-20 07:04:16  

夏色祭|夏色心跳日志PSV版发售日期一览 夏色心跳日志PSV版什么时候出

夏色心跳日志(ナツイロココロログ)是一款著名的恋爱模拟游戏,日前即将登录PSV平台,下面就来分享一下夏色心跳日志PSV版发售日期。夏色心跳日志PSV版发售日期一览dramatic create社今天宣

2020-12-19 11:04:43   夏色奇迹   夏色祭中之人