c语言计算机二级题库

2024-05-02

c语言计算机二级题库(共8篇)

篇1:c语言计算机二级题库

一、选择题((1)~(40)每题1分,(41)~(50)每题2分,共60分)

(1)在计算机中,一个字节所包含二进制位的个数是

A)2

B)4

C)8

D)16

(2)在多媒体计算机中,CD-ROM属于

A)存储媒体

B)传输媒体

C)表现媒体

D)表示媒体

(3)在DOS系统中,带有通配符的文件名*.*表示

A)硬盘上的全部文件

B)当前盘当前目录中的全部文件

C)当前盘上的全部文件

D)根目录中的全部文件

(4)十六进制数100转换为十进制数为

A)256

B)512

C)1024

D)64

(5)能将高级语言编写的源程序转换为目标程序的软件是

A)汇编程序

B)编辑程序

C)解释程序

D)编译程序

(6)在Internet中,用于在计算机之间传输文件的协议是

A)TELNET

B)BBS

C)FTP

D)WWW

(7)在Windows环境下,资源管理器左窗口中的某文件夹左边标有“+”标记表示

A)该文件夹为空

B)该文件夹中含有子文件夹

C)该文件夹中只包含有可执行文件

D)该文件夹中包含系统文件

(8)在Windows环境下,下列叙述中正确的是

A)在“开始”菜单中可以增加项目,也可以删除项目

B)在“开始”菜单中不能增加项目,也不能删除项目

C)在“开始”菜单中可以增加项目,但不能删除项目

D)在“开始”菜单中不能增加项目,但可以删除项目

(9)从Windows环境进入DOS方式后,返回Windows环境的命令为

A)QUITB)WINC)EXITD)ESC

(10)下列叙述中正确的是

A)计算机病毒只感染可执行文件

B)计算机病毒只感染文本文件

C)计算机病毒只能通过软件复制的方式进行传播

D)计算机病毒可以通过读写磁盘或网络等方式进行传播

篇2:c语言计算机二级题库

一、选择题(每小题1分,共40小题,共40分)

1.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为()。

A.20

B.0或35

C.15

D.16

2.下列关于栈的叙述中,正确的是()。

A.栈底元素一定是最后入栈的元素

B.栈操作遵循先进后出的原则

C.栈顶元素一定是最先入栈的元素

D.以上三种说法都不对

3.下列链表中,其逻辑结构属于非线性结构的是()0、A.双向链表

B.带链的栈

C.二叉链表

D.循环链表

4.在关系数据库中,用来表示实体间联系的是()。

A.网状结构

B.树状结构

C.属性

D.二维表

5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是()。

A.1:m联系

B.m:n联系

C.1:1联系

D.m:l联系

6.右两个关系R和S如下:

则由关系R得到关系S的操作是()。

A.自然连接

B.并

C.选择

D.投影

7.数据字典(DD)所定义的对象都包含于()。

A.软件结构图

B.方框图

C.数据流图(DFD图)

D.程序流程图

8.软件需求规格说明书的作用不包括()。

A.软件设计的依据

B.软件可行性研究的依据

C.软件验收的依据

D.用户与开发人员对软件要做什么的共同理解

9.下面属于黑盒测试方法的是()。

A.边界值分析

B.路径覆盖

C.语句覆盖

D.逻辑覆盖

10.下面不属于软件设计阶段任务的是()。

A.制订软件确认测试计划

B.数据库设计

C.软件总体设计

D.算法设计

11.以下叙述中正确的是()。

A.在C语言程序中,main函数必须放在其他函数的最前面

B.每个后缀为C的C语言源程序都可以单独进行编译

C.在C语言程序中,只有main函数才可单独进行编译

D.每个后缀为.C的C语言源程序都应该包含一个main函数

12.C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是()。

A.预定义标识符(如库函数中的函数名)可用做用户标识符,但失去原有含义

B.用户标识符可以由字母和数字任意顺序组成

C.在标识符中大写字母和小写字母被认为是相同的字符

D.关键字可用做用户标识符,但失去原有含义

13.以下选项中表示一个合法的常量是(说明:符号口表示空格)()。

A.9口9口9

B.0Xab

C.123E0.2

D.2.7e

14.C语言主要是借助以下哪个功能来实现程序模块化?()

A.定义函数

B.定义常量和外部变量

C.三种基本结构语句

D.丰富的数据类型

15.以下叙述中错误的是()。

A.非零的数值型常量有正值和负值的区分

B.常量是在程序运行过程中值不能被改变的量

C.定义符号常量必须用类型名来设定常量的类型

D.用符号名表示的常量叫符号常量

16.若有定义和语句:int a,b;scanf(“%d,%d”,&a,&b);以下选项中的输人数据,不能把值3赋给变量a、5赋给变量b的是()。

A.3,5,B.3,5,4

C.3,5

D.3,5

17.C语言中char类型数据占字节数为()。

A.3

B.4

C.1

D.2

18.下列关系表达式中,结果为“假”的是()。

A.(3+4)>6

B.(3!=4)>2

C.3<=4‖D.(3<4)=1

19.若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是()。

A.switch(a+9)

{case cl:y=a-b;

case c2:y=a+b;

}

B.switch a*b

{case l0:x=a+b;

default:y=a-b;

}

C.switch(a+b)

{casel:case3:y=a+b;break;

case0:case4:y=a-b;

}

D.switch(a*a+b*b)

{default:break;

case 3:y=a+b;break;

case 2:y=a-b;break;

}

20.有以下程序:

#include

main()

{ int a=-2,b=0;

while(a++&&++b);

printf(“%d,%dn”,a,b);

}

程序运行后的输出结果是()。

A.1,3

B.0,2

C.0,3

D.1,2

21.设有定义:int x=o,* P;,立刻执行以下语句,正确的语句是()。

A.p=x;

B.* p=x;

C.D=NULL;

D.* p=NULL;

22.下列叙述中正确的是()。

A.可以用关系运算符比较字符串的大小

B.空字符串不占用内存,其内存空间大小是0

C.两个连续的单引号是合法的字符常量

D.两个连续的双引号是合法的字符串常量

23.有以下程序:

#include

main()

{ rhar a=’H’;

a=(a>=’A’&&a<=’2’)?(a-’A’+’a’):a;

printf(“%cn”,a);

}

程序运行后的输出结果是()。

A.A

B.a

C.H

D.h

24.有以下程序:

#include

int f(int x);

main()

{ int a,b=0;

for(a=0;a<3;a++)

{b=b+f(a);putchar(’A’+b);}

}

int f(int x)

{ return x * xl;}

程序运行后的输出结果是()。

A.ABE B.BDI C.BCF D.BCD

25.设有定义:int x[2][3];,则以下关于二维数组X的叙述错误的是()。

A.x[0]可看做是由3个整型元素组成的一维数组

B.x[0]和x[l]是数组名,分别代表不同的地址常量

C.数组X包含6个元素

D.可以用语句x[o]=0;为数组所有元素赋初值0

26.设变量P是指针变量,语句P=NULL;是给指针变量赋NULL值,它等价于()。

A.p=“";

B.p=”0“;

C.p=0;

D.p=”;

27.有以下程序:

#include

main()

{int a[]={10,20,30,40},*p=a,j;

for(i=0;i<=3;i++){a[i]=*P;p++;}

printf(“oAdn”,a[2]);

}

程序运行后的输出结果是()。

A.30

B.40

C.10

D.20

28.有以下程序:

#include

#define N 3

void fun(int a[][N],int b[])

{ int i,j;

for(i=0;i

for(j=i;j

}

main()

{int x[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;

fun(x,y);

for(i=0;i

}

程序运行后的输出结果是(,)。

A.2,4,8,B.3,6,9,C.3,5,7,D.1,3,5,29.有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数):

#include

#include

main()

{char a[10]=“abc”,b[10]=“012”,c[10]=“xyz”;

strcpy(a+1,b+2);

puts(strcat(a,c+1));

}

程序运行后的输出结果是()。

A.al2xyz

B.12yz

C.a2yz

D.bc2yz

30.以下选项中,合法的是()。

A.char str3[]={’d’,’e’,’b’,’u’,’g’,’’};

B.char str4;str4=“hello world”;

C.char name[10];name=“china”;

D.char strl[5]=“pass”,str2[6];str2=strl;

31.有以下程序:

#include

main()

{ char*s=“[2]34”;int k=0,a=0;

whil(s[k+1]!=’o’)

{ k++;

if(k%2=o){a=a+(s[k]-’0’+1);continue;}

a=a+(s[k]-’0’);

printf(“k=%d a=%dn”,k,a);

}

程序运行后的输出结果是()。

A.k=6 a=11

B.k=3 a=14

C.k=4 a=12

D.k=5 a=15

32.有以下程序:

#include

main()

{char a[5][10]={“one”,“tw0”,“three”,“four”,“five”};

int i,j;

char t:、for(i=0;i<4;i++)

for(j=i+1;j<5;j++)

if(a[i][O]>a[j][0])

{t=a[i][O];a[i][O]=a[j][O];a[j][O]=t;)

puts(a[1]);

}

程序运行后的输出结果是()。

A.fwo

B.fix

C.two

D.owo

33.有以下程序:

#include

int a=1,b=2:

void funl(int a,int b)

{printf(“%d%d”,a,b);}

void fun2()

{ a=3;b=4;}

main()

{ funl(5,6);fun2();

printf(“%d%dn”,a,b);

}

程序运行后的输出结果是()。

A.1 2 5 6

B.5 6 3 4

C.5 6 1 2

D.3 4 5 6

34.有以下程序:

#include

void func(int n)

{ static int num=1);

num=num+n;printf(“%d”,num);

}

main()

{funo(3);func(4);printf(“n”);}

程序运行后的输出结果是()。

A.4 8

B.3 4

C.3 5

D.4 5

35.有以下程序:

#include

#include void fun(int*pl,int*p2,int*s){ s=(int*)malloc(sizeof(int));

*s=*pl+*p2;

free(s);

}

main()

{int a=1,b=40,*q=&a;

fun(&a,&b,q);

printf(“%dn”,*q);

}

程序运行后的输出结果是()。

A.42

B.0

C.1

D.41

36.有以下程序:

#include

struct STU{char name[9];char sex;int score[2];};

void f(struct STU a[])

{ struct STU b={“Zhao”,’m’,85,90);

a[1]=b;

}

main()

{struct STU c[2]={{“Qian”,’f’,95,92},{“Sun”,’m’ 98,99}};

f(c);

printf(”%s,%c,%d,%d,¨,c[o].name,c[o].sex,c[o].score[o],c[o].score[1]);

printf(“%s,%c,%d,%dn”,c[1].name,c[1].sex,c[1].score[o],c[1].score

[1]);

}

程序运行后的输出结果是()。

A.Zhao,m,85,90,Sun,m,98,99

B.Zhao,m,85,90,Qian,f,95,92

C.Qian,f,95,92,Sun,m,98,99

D.Qian,f,95,92,Zhao,m,85,90

37.以下叙述中错误的是()。

A.可以用typedef说明的新类型名来定义变量

B.typedef说明的新类型名必须使用大写字母,否则会出编译错误

C.用typedef可以为基本数据类型说明一个新名称

D.用typedef说明新类型的作用是用一个新的标识符来代表已存在的类型名

38.以下叙述中错误的是()。

A.函数的返回值类型不能是结构体类型,只能是简单类型

B.函数可以返回指向结构体变量的指针

C.可以通过指向结构体变量的指针访问所指结构体变量的任何成员

D.只要类型相同,结构体变量之间可以整体赋值

39.若有定义语句int b=2;,则表达式(b<<2)/(3‖b)的值是()。

A.4

B.8

C.0

D.2

40.有以下程序:

#include

main()

{ FILE*fp;int i,a[6]={1,2,3,4,5,6};

fp=fopen(“d2.dat”,“w+”);

for=(i=o;i<6;,i++)fpintf(fp,“%dn”,a[i]);

rewind(fp);

for(i=0;i%6;i++)fscanf(fp,“%d”,&a[5-i]);

fclose(fp);

for(i=0;i%6;i++)printf(“%d,”,a[i]);

}

程序运行后的输出结果是()。

A.4,5,6,1,2,3,B.1,2,3,3,2,1,C.1,2,3,4,5,6,D.6,5,4,3,2,1,二、基本操作题(共18分)

str是一个由数字和字母字符组成的字符串,由变量num传人字符串长度。请补充函数proc(),该函数的功能是:把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。

例如,str=“abcl23de45f967”,结果为:l234567。

注意:部分源程序给出如下。

请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。

试题程序:

#include

#define M 80

int bb[M];

int proc(char str[],int bb[],int num)

{

int i,n=0;

for(i=0;i

if(【1】)

{

bb[n]=【2】;

n++;

}

}

return 【3】;

}

void main()

{

char str[M];

int num=0,n,i;

printf(“Enter a string:n”);

gets(str);

while(str[num])

num++:

n=proc(str,bb,num);

printf(“nbb=”);

for(i=0;i

}

三、程序改错题(共24分)

下列给定程序中,函数proc()的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCIl码升序排序后输出。

例如,输入opdye,则应输出deopy。

请修改程序中的错误,使它能得到正确结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include%string.h>

#include%stdlib.h>

#include

#include

//****found****

int proc(char str[])

{

char C;

unsigned i,j;

for(i=0;i

{

c=str[j]:

//****found****

str[j]=str[i++];

str[i]=C;

}

}

void main()

{

char st/[81];

system(“CLS”);

printf(“nPlease enter a character

string:”);

gets(str);

printf(“nknBefore sorting:n %s”,str);

proc(str);

printf(“nAfter sorting decendingly:n

%S”,str);

}

四、程序设计题(共18分)

请编写函数proc(),它的功能是计算:s=(In(1)4+ln(2)4+ln(3)+…+In(m))0.在C语言中可调用log(n)函数求ln(n)。

例如,若m的值为30,则proc()函数值为8.640500。

注意:部分源程序给出如下。

请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。

试题程序:

#include

#include

#inclllde

#include

double proc(int m)

{

}

void main()

{

system(“CLS”);

printf(“%fn”,proc(30));

}

【参考答案及专家详解】

一、选择题

1.B。【解析】Q(1:35)则队列的存储空间为35;对空条件:front=rear(初始化时:front=rear),队满时:(rear+1)%n= =front,n为队列长度(所用数组大小),因此当执行一系列的出队与入队操作,front=rear.则队列要么为空,要么为满。

2.B。【解析】栈是先进后出,因此,栈底元素是先入栈的元素,栈顶元素是后入栈的元素。

3.C。【解析】数据的逻辑结构是描述数据之间的关系,分两大类:线性结构和非线性结构。线性结构是n个数据元素的有序(次序)集合,指的是数据元素之间存在着“一对一”的线性关系的数据结构。常用的线性结构有:线性表,栈,队列,双队列,数组,串。非线性结构的逻辑特征是一个结点元素可能对应多个直接前驱和多个后驱。常见的非线性结构有:树(二叉树等),图(网等),广义表。

4.D。【解析】单一的数据结构——关系,现实世界的实体以及实体间的各种联系均用关系来表示。数据的逻辑结构——二维表,从用户角度,关系模型中数据的逻辑结构是一张二维表。但是关系模型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种关系。

5.A。【解析】部门到职员是一对多的,职员到部门是多对一的,因此,实体部门和职员间的联系是l:m联系。

6.C。【解析】选择:是在数据表中给予一定的条件进行筛选数据。投影:是把表中的某几个属性的数据选择出来。连接:有自然连接、外连接,内连接等,连接主要用于多表之间的数据查询。并:与数学中的并是一样的。两张表进行并操作,要求它们的属性个数相同并且需要相容。

7.C。【解析】数据字典(DD)是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。

8.B。【解析】《软件可行性分析报告》是软件可行性研究的依据。

9.A。【解析】黑盒测试方法主要有等价类划分、边界值分析、因果图、错误推测等。白盒测试的主要方法有逻辑驱动、路径测试等,主要用于软件验证。

10.A。【解析】软件设计阶段的主要任务包括丙个:一是进行软件系统的可行性分析,确定软件系统的建设是否值得,能否建成。二是进行软件的系统分析,了解用户的需求,定义应用功能,详细估算开发成本和开发周期。

11.B。【解析】C语言是一种成功的系统描述语言,具有良好的移植性,每个后缀为.C的C语言源程序都可以单独进行编译。

12.A。【解析】用户标识符不能以数字开头,C语言中标识符是区分大小写的,关键字不能用做用户标识符。

13.B。【解析】当用指数形式表示浮点数据时,E的前后都要有数据,并且E的后面数要为整数。

14.A。【解析】C语言是由函数组成的,函数是C语言的基本单位。所以可以说C语言主要是借助定义函数来实现程序模块化。

15.C。【解析】在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为:#define标识符常量。

16.C。【解析】在输入3和5之间除逗号外不能有其他字符。

17.C。【解析】Char类型数据占1个字节。

18.B。【解析】在一个表达式中,括号的优先级高,先计算3!=4,为真即是l,1>2为假。

19.D。【解析】选项A,当cl和c2相等时,不成立;选项B,a*b要用括号括起来;选项C,case与后面的数字用空格隔开。

20.D。【解析】输出的结果是:-1,1 0,2 1,2

21.C。【解析】如果没有把P指向一个指定的值,*P是不能被赋值的。定义指针变量不赋初始值时默认为null。

22.D。【解析】比较两个字符串大小用函数strcomp(S,t),空字符串有结束符,所以也要占用字节,两个双引号表示的是空字符串。

23.D。【解析】多元运算符问号前面表达式为真,所以(a-’A’+’a’)赋值给a,括号里的运算是把大写字母变成小写字母,所以答案应为选项D。

24.B。【解析】第一次循环时,b=1,输出结果为B;

第二次循环时,b=3,输出结果为D;

第三次循环时,b=8,输出结果为I。

25.D。【解析】x[0]是不能赋值的。

26.C。【解析】在C语言中null等价于数字0。

27.A。【解析】For循环结束后,数组a的值并没有变化,由于数组是由0开始,所以a[2]的值是30。

28.B。【解析】Fun函数功能是把数组a的每一行的最大值赋给b,a的第一行的最大值是3,第二行的最大值是6,第三行的最大值是9,所以答案是3,6,9。

29.C。【解析】第一次执行字符串的复制函数a的值是a2,第二次执行的是字符串的连接函数,所以运行结果为a2yz。

30.A。【解析】选项B不能把一个字符串赋值给一个字符变量,选项c和D犯了同样的错误是把字符串赋给了数组名。

31.C。【解析】输出结果:k=1 a=2

k=2 a=4 k=3 a=7

k=4 a=12

32.A。【解析】For循环完成的功能是把二维数组a的第一列的字母按从小到大排序,其他列的字母不变。

33.B。【解析】Funl是输出局部变量的值,fun2是把全局变量的值改成3和4,所以输出的结果是5634。

34.A。【解析】第一调用func函数时输出4,第二次调用func函数时num的值并不会释放,仍然是上次修改后的值4,第二次调用结果为8,所以输出结果是4 8。

35.C。【解析】Fun函数功能是新开辟内存空间存放a和b的地址,q的地址并没有变化,所以应该还是指向地址a。

36.D。【解析】F函数是为结构体数组的第二个数赋值,数组的第一个数没有变化,所以正确答案应选D。

37.B。【解析】用typedef说明的类型不是必须用大写,而是习惯上用大写。

38.A。【解析】函数返回值类型可以是简单类型和结构体类型。

39.B。【解析】2的二进制数为010,移两位后的二进制数为01000,转成十制数为8,(3||2)为真即1,8/ 1=8,所以结果为8。

40.D。【解析】这个是对文件的操作,把数组的数写到文件里,然后再从文件里倒序读出。所以输出结果为6,5,4,3,2,1。

二、基本操作题程序填空题

【1】str[i]>=’0’&&str[i]<=’9’【2】str[i]-’O’【3】n

【解析】题目中要求把字符串str中的数字字符转换成数字并存放到整型数组bb中。首先,应判断字符串str中每个字符是否是数字字符。因此,【1】处填“str[i]>=’0’&&str[i]<=’9’”将每一个数字字符转化为数字放在整型数组bb中,因此,【2】处填“str[i]-’0’;由函数proc()可知,变量n中存放整型数组bb中的元素个数,最后要返回到主函数当中,因此,【3】处填’n’。

三、程序改错题

(1)错误:int proc(char str[])

正确:void proc(char str[])

(2)错误:str[j]=str[i++];

正确:str[j]=str[i];

【解析】由主函数中的函数调用可知,函数proc()没有返回值。因此,“int proc(char str[])”应改为“void proc(char str[])”;由函数proc()可知,if语句块完成将字符串str中的第i个元素与第j个元素相交换。因此,“str[j]=str[i++];”应改为“str[j]=str[i];”。

四、程序设计题

double proc(int m)

{

int i;

double s=0.0;//s是表示其和

for(i=1;i<=m;i++)

s=s+log(i);//计算s=ln(1)+ln(2)+ln(3)+…+ln(m)

return sqrt(s);//最后将其开平方的值返回到主函数中

}

篇3:c语言计算机二级题库

二级C语言考试由笔试和上机两部分。笔试考察的是应试者对基础知识和基本理论的掌握情况,而上机考试主要测试的是应试者的逻辑思维能力和运用C语言的能力,一般包括3种题型:填空题、改错题、编程题。该文对考试题库中编程题作出归纳,总结,希望对应试者有所帮助。

1 上机编程题的知识点

上机考试的知识点大概可以有5个,分别是:基本运算、循环、数组、字符串、结构体。以下对这5个知识点分别举例说明。

1.1 基本运算

例如有以下编程题:

编写函数fun,它的功能是:将两个两位正整数a, b中个位数和十位数合并成一个新的整数放在c中。合并的方式是:将a中的十位和个位依次放在变量c的百位和个位上,b中的十位和个位依次放在变量c的十位和千位上。

例如:当a=45, b=12。调用函数后c=2415。

注意:部分源程序存在文件PROG1.C中,数据文件IN.DAT中的数据不得修改。请勿改动主函数main () 和其他函数中的任何内容,仅在函数fun的花括号中填写编写的如干语句。

程序如下:

分析:这类基础题主要是考察应试者对基本运算的掌握。针对这个题关键是把这两个数的个位和十位求出来,然后再重新组合成一个新数。表示两位数a的个位数的方法是:a对10取余,即a%10;表示两位数a的十位数的方法是:a先除10后在对10取余,即a/10%10。

本题的答案为:c=b%10*1000+a/10*100+b/10*10+a%10;

1.2 循环

循环中最主要的应用就是迭代和遍历。迭代一般是用来解决累加、累乘的问题,可用for语句来实现。

例如有以下编程题:

编写函数fun,它的功能是计算并输出以下多项式的值:

例如:当在主函数中从键盘给n输入5,则输出为:s=-0.28333。

注意:要求n的值大于1但不大于100。部分源程序存在文件PROG1.C中,数据文件IN.DAT中的数据不得修改。请勿改动主函数main () 和其他函数中的任何内容,仅在函数fun的花括号中填写编写的如干语句。

程序如下:

分析:这类题主要是考察应试者对迭代的掌握。关键是找出迭代公式、变量的起始值和最大值。本题中表达式的每一项是都是一个分数,分子都是1,分母初始值是2,最大值是n, 而且每项增1,所以可设一整型变量i, 用for语句实现:for (i=2;i<=n;i++) 。表达式的值用变量s表示,s的初始值为1,每一项之间用减号连接,所以迭代公式,也就是循环语句可表示为s=s-1/i。除此以外,还应注意两点1。变量s的类型,因为表达式的值是实数,所以变量s应定义为double。2.注意基本算术运算中,两整数相除结果为整数,而题目中每一项要得到的结果为实数,所以应用算术运算中数据类型的转换将s=s-1/i改为s=s-1.0/i。

本题的答案为:

1.3 数组

数组可以分为一维数组和二维数组。

1.3.1 一维数组

编写函数fun, 它的功能是:找出一位整型数组中元素的最大值和它所在的下标,最大值和下标通过形参传回。数组元素中的值已在主函数中赋予。

主函数中的x是数组名,n是x中的数据个数,max存放最大值,index存放最大值的下标。

程序如下:

分析:这类题是遍历在数组中的应用。要找出数组中的最大值,必须对数组中每一个元素查找一遍,同时要进行比较。编程思想:可设一变量max, 假设数组中的第一个元素a[0]是最大的,然后后面的元素依次和max进行比较,只要比当前max的值大,就把它放在max中。

本题的答案为:

1.3.2 二维数组

编写程序,实现矩阵的转置。

例如:输入下面的矩阵:

分析:这类题是关键是解决两个问题:1.怎样对二维数组元素的遍历。2.怎样完成矩阵的转置法。因为二维数组元素表示要用到两个下标即行标和列标,所以遍历数组元素用到两层循环。矩阵的转置就是对应行和变成对应列,换句话说就是关于主对角线的对应元素交换。

本题的答案为:

1.4 字符串

例如有以下编程题:

规定函数中只包含字母和*。请编写函数fun, 它的功能是:删除字符串中的所有*。在编写函数时,不得使用字符串函数。

例如:字符串中的内容为:****A*BC*DEF*G*****,删除后,字符串中的内容为:ABCDEFG。

分析:这类题要对字符串中所有字符遍历,把不是*的字符保留下来。本题要解决两个问题:1.怎样判断字符串结束。2.怎样把不是*的字符放在原来的字符串中。字符串都是以’�’作为结束标志,可以把字符串中元素是不是’�’作为判断字符串结束的依据。可设一变量j作为字符串的新下标,初始值为0,只要原字符串中的元素不是’�’, j就加1,特别注意要在最后加上’�’最为字符串结束标志。

本题的答案为:

1.5 结构体

例如有以下编程题:

学生的记录是有学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun, 它的功能是:把分数最低的学生数据放在数组b中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。

程序如下:

分析:这类问题其实编程思想和前面的没有太大的差别,主要考察的是对结构体成员的引用,其引用形式为:结构体变量名.成员名。

本题的答案为:

2 结论

本文只是对计算机等级考试二级C语言的上机题作了简单的分析和总结,仅过分析可以看出,考察的知识点总共有5个,但是基本上都是循环的两方面的应用:迭代、遍历。

参考文献

[1]未来教育与教学研究中心.全国计算机等级考试二级C语言上机考试题库[M].北京:金版电子出版社, 2007.

篇4:c语言计算机二级题库

2008年下半年二级C语言程序设计的全国报考人数为50.99万人,笔试试卷的整卷难度为0.57,整卷的信度达到了0.89。本次考试二级C全国取证率为32.3%。全卷的难度适中,信度较好。现就将本次考试中的部分难题做简要分析,以帮助考生复习备考,取得满意的成绩。

选择题第32题:

有以下程序

#include

void fun( int a, int b )

{intt;

t=a; a=b; b=t;

}

main()

{intc[10]={1,2,3,4,5,6,7,8,9,0}, i;

for (i=0; i<10; i+=2)fun(c[i], c[i+1]);

for (i=0;i<10; i++)printf("%d,", c[i]);

printf("n");

}

程序运行后的输出结果是

A)1,2,3,4,5,6,7,8,9,0,

B)2,1,4,3,6,5,8,7,0,9,

C)0,9,8,7,6,5,4,3,2,1,

D)0,1,2,3,4,5,6,7,8,9,

【答案】A

【分析】

(1)该题考生答对率只有29.6%,59.1%的考生选择了错误项B。

(2)这是一道典型的调用函数与被调用函数之间数据传递的问题。在调用函数时,实参的值将传送给对应的形参,但形参的变化不会影响对应的实参。教材例7.3(P.82)深刻地说明了这个过程。估计很多考生知道这一点,但理解不够深刻,故一旦试题更换格式,就会出错。

(3)这道题区分度较高,达到0.347,说明是一道好题。

选择题第40题:

有以下程序

#include

main()

{ FILE *pf;

char *s1="China", *s2="Beijing";

pf=fopen("abc.dat","wb+");

fwrite(s2,7,1,pf);

rewind(pf); /*文件位置指针回到文件开头*/

fwrite(s1,5,1,pf);

fclose(pf);

}

以上程序执行后abc.dat文件的内容是

A)ChinaB)Chinang

C)ChinaBeijingD)BeijingChina

【答案】B

【分析】

(1)只有28.5%的考生答对,有37.9%的考生选择了D。属于本套试卷里最难的选择题。

(2)在文件使用方式上,本题使用的是“wb+”,意思是为写建立一个新的二进制文件,并在读和写过程中,可以由位置函数设置读和写的起始位置。为降低试题难度,本题特地在语句rewind(pf);后面有注解提示:文件位置指针回到文件开头。因此,在写入字符串“Beijing”后,文件指针回到文件头,再写入“China”,文件的内容就成为“Chinang”,正确答案是B。

(3)该题区分度0.375,属好题。

填空题第8题:

以下程序的输出结果是___。

#include

main()

{int i,j,sum;

for(i=3;i>=1;i--)

{sum=0;

for(j=1;j<=i;j++)sum+=i*j;

}

printf("%dn",sum);

}

【答案】1

【分析】

(1)本题只有19.2%的考生答对。

(2)该题考核考生做题时的细心。在第一个for循环体中,由于每次循环都将sum置0,因此,影响sum值的因素就只与最后一次循环语句相关,此时,i为0,j为1,sum只能是1了。

(3)这道题本身不难,如果考生能够仔细阅题,掌握关键点,就不会出错了。

填空第9题:

以下程序的输出结果是___。

# include

main()

{ intj, a[]={1,3,5,7,9,11,13,15}, *p=a+5;

for(j=3;j;j--)

{switch ( j )

{ case1:

case2:printf("%d", *p++);break;

case3:printf("%d", *(--p));

}

}

}

【答案】9911

【分析】

(1)本题只有16.3%的考生答对,是难题。

(2)该题主要考核考生三个方面的知识,一是选择结构switch语句,一个是自加减运算,另一个是指针。j=3时,执行printf("%d", *(--p));语句,结果是输出9;j=2时,执行printf("%d", *p++); break; 结果是输出9,这是答对本体的关键!*p++指的是使*p作为表达式的值,然后使指针变量p本身增1;j=1时,执行空语句后,继续执行case2语句,此时输出11。所以本题的答案是9911。

篇5:c语言计算机二级题库

给定程序中,函数fun的作用是:

注意:部分源程序在文件BLANK.C中。不得增行或删行,也不得更改程序的结构!

源程序如下

答案:

(1)x[i]<=’9’(2)j++(3)‘’

程序修改题:

给定程序中,函数fun的作用是:已知正整数n(规定n小于50000),统计它包含的0的个数,以及各位上最大的数。最大的数通过函数返回,0的个数通过形参传回。

注意:部分源程序在文件MODI1.C中。

不要改动main函数,不得增行或删行,也不得更改程序的结构!

源程序如下

答案:

t=0改为t==0 zero=count;改为*zero=count;

程序设计题:

请编写一个函数fun,它的功能是:比较一个数组中奇数的个数与偶数的个数,并计算个数多的数的算术平均数。

注意:部分源程序在文件PROG1.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

篇6:c语言计算机二级题库

C语言的非数值处理功能很强,因此它被广泛地应用于数据库管理系统和应用软件。大多数的关系数据库管理系统,如dBASE,Fox$ASE,ORACLE等,都是由C语言编写的。各种不同部门的应用软件也大都是用G语言开发的,C语言在开发数据库应用软件方面应用很广,深受开发者的欢迎。

2.图形图像来统的应用程序方面

C语言在图形图像的开发中也有着广泛的市场。很多图形图像系统,如AutoCAD通用图形系统等,就是使用C语言开发的,并且在这些图形系统中可以直接使用C语言编程,实现某些功能。C语言编译系统带有许多绘图功能的函数,利用这些函数开发图形应用软件十分方便。所开发的应用程序常用C语言编写接口界面,这样既方便又灵活,效果很好。这是因为该语言提供有图形处理功能,便于实现图形图像的各种操作。因此,C语言在图形图像的应用方面很好地发挥了它的作用。

3.编写与设备的接。程序方面

C语言不仅在建立友好界面方面有着广泛应用,如下拉式菜单、弹出菜单、多窗口技术等;而且在编写与设备的接口程序方面也有着广泛应用。这是因为C语言不仅具有高级语言的特性还具有低级语言的功能,因此,在编写接口程序方面十分方便,有时它与汇编语言一起使用,会显示出更高的效率。

4.数据结构方面

由于C语言提供了十分丰富的数据类型,不仅有基本数据类型还有构造的数据类型,如数组、结构和联合等,把它们用于较复杂的数据结构〔例如,链表、队列、伐、树等)中显得十分方便,这方面已有许多成熟的例程供选择使用。

5.排序和检索方面

排序和检索是数据处理中最常遇到并较为复杂的间题。使用C语言来编写排序和检索各种算法的程序既方便又简洁。特别是有些排序算法采用了递归方法进行编程,更显得清晰明了。因此、人们喜欢使用G语言来编写这方面的程序。

上述列举了五个方面的应用,但绝不是说C语言的应用仅限如此,而是说在这几个方面目前使用得更多些。C,语言可以说在各个领域中都可以倪用,并且都会有较好的效果。所以,C语言是当前被用于编程的最广泛的语言之一。

另外,C语言是一种结构化程序设计语言,在编写大型程序中也很方便,特别是该语言又提供了预处理功能,其中文件包含在多人同时开发一个大程序时将带来减少重复和提高效率等好处,因此,越来越多的人喜欢用C语言来开发大型程序。

1.计算机二级C语言程序设计考点:C语言的特点

2.计算机二级C语言程序设计考点解析:C语言程序实例

3.计算机二级C语言程序设计考点:指针

4.计算机二级C语言程序设计考点:数组

5.计算机二级C语言程序设计考点:函数

6.计算机二级C语言考点:字符型数据

7.计算机二级c语言试题

8.计算机二级C语言程序设计考点解析:常用的输人函数

9.计算机二级C语言程序设计考点:单词及词法规则

篇7:计算机二级C语言每日练习

1、一个教师讲授多门课程,一门课程由多个教师讲

授。则实体教师与课程关系 B

A) 1:m 联系

B) m: n 联系

C) m: 1联系

D) 1:1联系

2、结构化程序所要求的基本结构不包括 B

A) 重复(循环)结构 B) GOTO跳转

C) 选择(分支)结构 D) 顺序结构

3、下列叙述中正确的是 C

A) 在栈中,栈中元素随栈底指针与栈顶指针的变化而

动态变化

B) 在栈中,栈顶指针不变,栈中元素随栈底指针的变

化而动态变化

C) 在栈中,栈底指针不变,栈中的元素随栈顶指针的

变化而动态变化

4、定义无符号整数类为Uint,下面可以作为unit实例

化的值是 C

A) 0.369

B) 整数集合{1,2,3,4,5}

C) 369

D) -369

5、下面描述中错误的是(D)

A) 软件设计是将软件需求转换为软件表示的过程

B) PAD图是软件详细设计的表示工具

C) 数据结构与数据库设计是软件设计的任务之一

D) 系统总体结构图支持软件系统的详细设计

6、软件按功能可以分为应用软件、系统软件和支撑软件,下面的软件中是应用软件的是 C

A) 数据库管理系统

B) UNIX操作系统

C) 学生成绩管理系统

D) C语言编译程序

7、下列关于栈叙述正确的是 C

A) 栈顶元素最后才能被删除

B) 栈底元素永远不能被删除

C) 栈顶元素最先能被删除

8、软件生命周期中的活动不包括 A

A) 市场调研 B) 软件测试

C) 软件维护 D) 需求分析

9、下列叙述中正确的是 D

A) 有一个以上根结点的数据结构不一定是非线性结构

B) 双向链表是非线性结构

C) 循环链表是非线性结构

D) 只有一个根结点的数据结构不一定是线性结构

10、下列关于数据库设计中的叙述中,正确的是 A

A) 在需求分析阶段建立数据字典

B) 在物理设计阶段建立数据字典

C)在逻辑设计阶段建立数据字典

D) 在概念设计阶段建立数据字典

11、下列叙述中正确的是 D

A) 设计算法时只需要考虑结果的可靠性

B) B)算法就是程序

C) 设计算法时只需要考虑数据结构的设计

D) D)以上三种说法都不对

12、程序调试的任务是 A

A) 诊断和改正程序中的错误

B)设计测试用例

C) 验证程序的正确性

D) 发现程序中的错误

13、下列关于二叉树的叙述中,正确是 C

A) 叶子结点是度为2的结点数的两倍

B) 度为2的结点数是度为1的结点数的两倍

C) 叶子结点总是比度为2的结点多一个

D) 叶子结点总是比度为2的结点少一个

14、数据库系统的三级模式不包括 B

A) 概念模式 B) 数据模式 C) 内模式 D) 外模式

1.全国计算机二级c语言练习题

2.计算机二级C语言考试冲刺练习

3.2017计算机二级C语言选择题练习

4.计算机二级C语言练习题

5.计算机二级C语言模拟练习

6.计算机二级C语言基础练习题

7.计算机二级《C语言》基础练习题及答案

8.计算机二级c语言试题

9.计算机二级《C语言》基础练习题及答案

篇8:c语言计算机二级题库

1 全国计算机等级考试简介

1.1 NCRE的等级分类

计算机等级考试共有一二三四级。考生可以任意选择考试等级,每年考三次,考试时间为3月份、9月份、12月份,报考时间一般在考试前的一至两个月。

1.2 NCRE各级考试内容

一级有三科,分别是:Office,一级B,一级WPS。更多的人考的是一级MS Office,考Word、Excel、PPT的人居多。二级有七科,分别是:C语言、C++、VB、VF、Access、Java、Delphi等,任选其一进行考试即可。现在高校开设的编程语言几乎全部为C语言,所以二级考C语言的人最多,占到一半以上。三级有四科,分别是:网络技术、信息技术、数据库技术、PC技术。四级有三科,分别是:数据库工程师、网络工程师、软件测试工程师。

1.3 NCRE等级证书

考试成绩分为四个等级:60分以下不及格;60分到80分之间是及格;80分到90分之间是良好;90分以上是优秀。考试分数60分以上就算及格,颁发合格证书;分数超过90分颁发优秀证书。

2 二级C语言命题原则和考试要求

2.1 命题原则

大纲规定C语言考试由“公共基础”+“C语言程序设计”两大部分,重点考查对基础知识的掌握,主要考查对基本理论、基础知识点、基础编程及决实际问题的能力。

2.2 考试要求

按照命题原则,考试大纲对应试也提出了要求。主要有以下两个方面:强调基本概念、基本理论、基本知识点的掌握;强调利用C语言编写程序解决实际问题的能力。因此,要想通过考试,既要熟练掌握C语言的基本理论,还要学会实际编程能力,分析问题和解决问题的能力。

3 复习方法

3.1 掌握好基础知识

C语言考试的重点是基础知识的掌握、编程能力,所以,要求对基础知识点的掌握要非常熟练。因此,正确理解、熟记概念是前提。可以通过以下三方面来打好基础:

(1)“比较总结”学习法。对一些复杂知识点,通过比较和总结来理解、记忆。(2)对一些容易混淆的概念理解要准确。一定要准确地掌握它们之间在操作步骤和实现功能上的细微区别。(3)联想记忆各知识点。C语言考点之间是相互联系的,要学会一个考点联想到与之相关的考点。

3.2 做题要有针对性

二级C语言考试的题目很多,搞题海战是不行的,应根据考试大纲适当地做一些往年考过的习题,特别是历年真题。了解历年真题题型使我们较快地掌握考试题型,从而既节省时间,又能达到较好的学习效果。

4 答题策略和应试技巧

4.1 加强上机实践

笔试中程序设计类的题目最佳方法是上机操作,验证自己的解题思路和做题结果。通过上机实践,可以发现错误和纠正解题思路,加深我们的记忆。

4.2 选择题应试技巧

选择题共40题40分。选择题主要是对基本知识和基本操作进行考查,它主要是考查对相关概念掌握是否全面、理解是否准确、思路是否清晰、运用是否灵活。

选择题难度不同,我们根据难易程度,先做简单一些的题目然后做复杂一点的题目,这样能够增加考生信心、提高得分率,所以可以考虑以下做题顺序:先做公共基础题,即选择题的前10题;接下来完成C语言的基础题,即选择题的11至20题,这部分题目主要考查一些基本概念,如常量、运算符、表达式、标识符、数据类型、三种控制结构的应用、输入输出格式等;再接着完成选择题21至40题,这20个选择题前10个比较简单,后10个较难,这20题主要考查C语言的综合应用,题目都会给出一段代码,根据代码做选择,这就要求读懂程序,在理解的基础上认真作答,由于前10题比较简单,所以必须保证前10题的正确率。

4.3 填空、改错题应试技巧

填空、改错题着重考察综合运用基础知识和程序读写能力。填空、改错题综合性强、难度较大。从以往的考试结果来看,考生在程序填空和改错题上失分较多。下面研究一下填空、改错题的解题方法和步骤。

(1)填空题的特点和注意事项

在程序中会给出填空的地方,比如ay[j]=1。

解题思路:先读程序,理解程序的功能和算法,然后边填空边运行,最后,分析运行结果找到正确的答案。程序填空题的特点和注意事项:(1)填空题通常有两个空需要填写。(2)试题中用"found注释"提示在下一行或下两行需要填空。(3)程序填空题重点考查对程序的整体理解,考点经常是函数参数、返回值、for语句的初值、条件判断、变量数据类型、指针移动、文件函数、if条件等。(4)填空的位置处要求填写语句、表达式等,但是不能增行、删行,也不能改变程序行原有的结构。

填空题一般按照以下五步进行:(1)审题,了解试题要求,注意输入和输出例示,以便检验运行的结果。(2)注意"found注释"所在的函数,根据题意理解程序编写时所采用的算法。(3)填好空后首先检查语法错误。(4)按照试题的示例给出的数据进行测试,若测试的结果与给出的输出结果相同,该题就基本答对了,为了确保正确,最好再输入其他数据验证;多次验证的结果与给出的结果不同,应再去检查逻辑错误。(5)修改完成,得到正确结果后,一定要保存好最终程序,并注意路径和文件名不要修改。

(2)改错题的特点和注意事项

(1)改错题中通常包含两个错误需要修改。(2)试题中用"found注释"来提示在下一行附近有错。(3)错误的性质有语法错、逻辑错两种。(4)只能在出错的行上进行修改,不能改动程序行的顺序,不能另行编写程序。

解题思路:一边调试一边找错,分析运行结果,有错则改正。改错题按以下六步进行:(1)审题,了解试题要求和输入和输出结果。(2)审视"found注释"处的函数,根据题意理解采用的算法。(3)检查语法错误。当编译有语法错时,按照提示来查找并改正错误。(4)运行程序,对照示例数据,如果验证的结果与给出的结果相同,该题就答对了;若不同再检查逻辑错误。(5)程序有逻辑错误时,先理解题意、再读算法。(6)得到正确结果后,一定要保存好程序,并注意路径和文件名不要修改。

4.4 编程题应试技巧

二级C语言程序设计考试中有一个编程应用题。主要考查学生对语法、算法和编程能力的掌握。

编程题答题步骤有六步:(1)审题,了解题目要求,记下输入、输出例示,以便验证运行的结果。(2)对照形参,注意主函数中实参个数,以便确定函数中需要处理数据个数。(3)理解题目要求,掌握主函数中调用函数的方式,注意用return返回还是间接返回。(4)选择合理高效的算法,编写程序代码。(5)编译程序,直到没有错误。(6)运行程序,利用例示数据验证结果,直到结果无误即可。

5 结束语

总之,考试能否通过,不仅仅是掌握了考试方法和技巧。关键还是取决于对C语言基础知识掌握的是否扎实,运用的是否灵活,编程是否熟练。C语言是二级考试科目中考生最多的,但通过率却是最低的,原因主要是考生动手编写的程序较少,对基础知识的掌握不好,动手编写的程序较少,还有就是缺乏考试经验等原因。当然,具备了扎实的基础,能够灵活运用上述应试技巧,会使考试得心应手,通过率一定会有大幅度的提高。

参考文献

上一篇:某同志政治鉴定材料下一篇:承留实验小学爱心捐赠议程