您的位置:百味书屋 > 试题答案 > 2016计算机二级C语言上机题库及答案解析(9) 正文

2016计算机二级C语言上机题库及答案解析(9)

2017-01-05 06:24:40 来源网站:百味书屋

篇一:2016年计算机二级c语言题库及答案;

2016年计算机二级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‖3

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,%d\n",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("%c\n",a);

}

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

A.A

B.a

C.H

篇二:2016年9月全国计算机二级C语言等级考试

2016年9月全国计算机二级C语

言等级考试 题库100套

第一套

1. 程序填空

函数fun的功能是进行字母转换。若形参ch中小写英文字母,则转换成相应的大写英文字母;若形参ch中是大写英文字母,则转换成相应的小写英文字母;并将转换的结果作为函数值返回。 第一处 if((ch>=’a’)&&(ch<=’z’)) 第二处 return ch+’a’-‘A’

第三处 return ch; 2. 程序修改

给定程序MODI1.C中函数fun的功能是:给一维数组a输入任意四个整数并按下列的规律输出。例如输出1、2、3、4,程序输出一下方阵。 a) 1 2 3 3 41 2 23 4 1 123 4 /**found**/ void fun(int *a) /**found**/ a[j]=a[j-1]; 3. 程序设计

请编写函数fun,函数的功能是:计算并输出给定整数n的所有因子(不包过1和n本身)之和。规定n的值不大于1000.

int fun(int n) {

int s=0,i;

for(i=2;i<n;i++) if(n%i==0)s+=i; return s; }

1

第二套

1. 程序填空

给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。

第一处 free(q); 第二处 q=p->next; 第三处 q=q->next; 2. 程序修改

给定程序MODI1.C中函数fun的功能是:用选择法对数组中的n各元素按从小到大的顺序进行排序。 /**found**/ p=j;

/**found**/ p=i;

3. 程序设计

请编写一个fun函数,它的功能是:求出1到m之间(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

void fun(int m,int *a,int *n) { int i; *n=0;

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

if((i%7==0)||(i%11==0)) a[(*n)++]=i; } 第三套

1. 程序填空

函数fun的功能是:逆置数组元素是的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数组中数据的个数。 第一处 for(i=0;i<n/2;i++) 第二处 a[i]=a[n-1-i]; 第三处 a[n-i-1]=t;

2程序修改

给定程序MODI1.C中函数fun的功能是:将一个由八进制数字字符串组成的字符串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。 /**found**/ n=*p-‘0’; /**found**/ n=n*8+*p-‘0’; 3. 程序设计

学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:函数返回指定学号的学生数据,指定的学生号在主函数中输入,若没有找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)。

STREC fun(STREC*a,char *b) {

STREC c; Int i;

c.num[0]=’\0’; c.s=-1;

for(i=0;i<N;i++)

if(strcmp(a[i].num,b)==0) {strcpy(c.num,a[i].num); c.s=a[i].s;break;} return c; }

第四套

1. 程序填空

给定程序中,函数fun的功能是:在带有头结点的单向链表中,查找数据域中值为ch的结点。找到后通过函数值返回该结点在链表中所处的顺序号:若不存在值为ch的结点,函数值返回0. 第一处 while(p!=0)

第二处if(p->data==ch)return n; 第三处 k=fun(head,ch);

2

2. 程序修改

给定程序MODI1.C中函数fun的功能是:删除p所指字符串的所有空白字符(包括制表符、回车符及换行符)。输入字符串时用‘#’结束输入。 /**found**/

for(i=0,t=0;p[i];i++) /**found**/ c[t]=’\0’; 3. 程序设计

请编写一个函数fun,将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。

void fun(char *ss) { int i;

for(i=1;i<strlen(ss);i+=2) {if(ss[i]>=’a’&&ss[i]<=’z’) ss[i]-=32; } }

第五套

1. 程序填空

程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 第一处 struct student t; 第二处 for(i=0;i<n-1;i++) 第三处 if(strcmp(a[i].name,a[j].name)>0) 3 程序修改

给定程序MODI1.C中函数fun的功能是:在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向上顺序移动。 /**found**/ q=p+i;

/**found**/ while(q>p) 3程序设计

学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。

int fun(STREC *a,STREC *b,int l,int h) {int i,j=0;

for(i=0;i<N;i++)

if((a[i].s>=1&&a[i].s<=h) b[j++]=a[i]; return j; }

第六套

1. 程序填空

给定程序中,函数fun的功能是:将形参s所指定字符串中所有的字母字符顺序前移,其他字母顺序后移,处理后字符串的首地址作为函数值返回。 第一处 t[j]=s[i];j++; 第二处 for(i=0;i<k;i++) t[j+i]=p[i];

第三处 t[j+k]=0; 2. 程序修改

给定程序MODI1.C中函数fun的功能是:将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换成t2所指定字符串,所形成的新串放在w所指的数组中。在此处,要求t1和t2所指字符串的长度相同。 /**found**/ while(*w) /**found**/ if(*r==*p) 3. 程序设计

函数fun的功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指定的数组

3

中。

void fun(char *s,char t[]) { int i,j=0;

for(i=0;i<strlen(s);i++) if(s[i]%2==0)t[j++]=s[i]; t[j]=0; } 第七套

1. 程序填空

程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。函数fun的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。

第一处 struct student *

fun(struct student*a) 第二处 for(i=0;i<3;i++) a->score[i]+=1; 第三处 return a; 2. 程序修改

给定程序MODI1.C中函数fun

的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返回。各字符串在主函数中输入,并放在一个字符串数组中。 /**found**/

char *fun(char (*sq)[M]) /**found**/ return sp; 3. 程序设计

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

#include <stdio.h>

void fun(int a,int b,long *c)

{ *c=(b%10)*1000+(a/10)*100+(b/10

)*10+a%10; }

第八套

1. 程序填空

函数fun的功能是:将形参观者工所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇书,则中间元素不动。

第一处 p=(n%2==0)?n/2:n/2+1; 第二处 a[i]=a[p+i]; 第三处 a[p+i]=t; 2. 程序修改

给定程序MODI1.C中函数fun的功能是:把主函数中输入的三个数,最大的放在a中,最小的放在c中,中间的放在b中。 /**found**/ float k;

/**found**/ if(*a<*c) 3. 程序设计

学生的记录由学号和成绩组成,N

名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把分数最高的学生数据放在b所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。 int fun(STREC *a,STREC *b) {

int i,max=a[0].s,n=0; for(i=1;i<N;i++)

if(max<a[i].s)max=a[i].s; for(i=0;i<N;i++)

if(max==a[i].s)b[n++]=a[i]; return n; }

第九套

1. 程序填空

给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值,

4

(规定所有数均为正数),将所指数组中小于平均值的数据移至数据的前部,大于等于平均数的移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。

第一处 for(i=0;i<N;i++) av+=x[i]/N

第二处 y[j]=x[i]; x[i]=-1;j++;} 第三处 i++; 2. 程序修改

给定程序MODI1.C中函数fun的功能是:统计字符串各元音字母(即:A、E、I、O、U)的个数。注意字母不分大小写。 /**found**/ num[k]=0; /**found**/ switch(*s) 3. 程序设计

请编写函数fun,函数的功能是:求出二级数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。 int fun(int a [M][N]) {

int tot=0,i,j;

for(i=0;i<N;i++) {

tot +=a[0][i]; tot +=a[M-1][i]; }

for(i=1;i<M-1;i++){ tot +=a[i][0]; tot +=a[i][N-1]; }

return tot; }

第十套

1. 程序填空

程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。

函数fun的功能是将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。

第一处 struct student fun(struct student a)

第二处 strcpy(a.name,”LiSi”); 第三处 a.score[i]+=1; 2程序修改

假定整数数列中的数不重复,并存放在数组中。给定程序MODI1.C中函数fun的功能是:删除数列中值为x的元素。N中存放的是数列中元素的个数。 /**found**/

if(p==n) return-1’ /**found**/ a[i]=a[i+1]; 3. 程序设计

学生的记录由学号和成绩组成,N

名学生的数据已在主函数中放入结构体数组s中,请编写了函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。 int fun(STREC *a,STREC *b) {

int i,j=0,min=a[0].s; for(i=0;i<N;i++) { if(min>a[i].s){ j=0;

b[j++]=a[i];min=a[i].s; }

else if(min==a[i].s) b[j++]=a[i]; }

return j; }

第十一套 1. 程序填空

给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值,(规定所有数均为正数),将所指数组中大

5

于平均值的数据移至数据的前部,小于等

于平均数的移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 第一处 av=s/N;

第二处 y[j++]=x[i];x[i]=-1;} 第三处 if(x[i]!=-1) y[j++]=x[i]; 2. 程序修改

给定程序MODI1.C中函数fun的功能是:读入一行英文文本行,将其中每个单词的第一个字母改成大写,然后输出次文本行(这里的“单词”是指由空格隔开的字符串)。 /**found**/

#include<stdio.h> /**found**/ upfst (char *p) 3. 程序设计

程序定义了N×N的二级数组,并在主函数中赋值,请编写函数fun,函数的功能是:求出数组周边元素的平均值并作出函数值饭给主函数中的s。 double fun(int w[][N]) { int i,j,n=0; double sum=0; for(i=0;i<N;i++)

{ sum+=w[0][i]+w[N-1][i]; n+=2;}

for(i=1;i<N-1;i++)

{ sum+=w[i][0]+w[i][N-1]; n+=2;}

return sum/n; }

第十二套 1. 程序填空

给定程序中,函数fun的功能是:将自然数1—10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。

篇三:2016年计算机二级C语言测试题答案解析(一)

2016年计算机二级C语言测试题及答案解析(一)

1.(A )是构成C语言程序的基本单位。

A、函数

B、过程

C、子程序

D、子例程

2.C语言程序从 C 开始执行。

A、 程序中第一条可执行语句

B、 程序中第一个函数

C、 程序中的main函数

D、包含文件中的第一个函数

3、以下说法中正确的是( C )。

A、C语言程序总是从第一个定义的函数开始执行

B、在C语言程序中,要调用的函数必须在main( )函数中定义

C、C语言程序总是从main( )函数开始执行

D、C语言程序中的main( )函数必须放在程序的开始部分

4.下列关于C语言的说法错误的是( B ) 。

A、 C程序的工作过程是编辑、编译、连接、运行

B、 C语言不区分大小写。

C、 C程序的三种基本结构是顺序、选择、循环

D、C程序从main函数开始执行

5.下列正确的标识符是(C )。

B、a[i]

C、a2_i

D、int t

5~8题为相同类型题

考点:标识符的命名规则

只能由字母、数字、下划线构成

数字不能作为标识符的开头

关键字不能作为标识符

选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)

6.下列C语言用户标识符中合法的是(B )。

A、3ax

B、x

C、case

D、-e2 E)union

选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);

7.下列四组选项中,正确的C语言标识符是( C )。

A、 %x

B、a+b

C、a123

选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足

(2)

8、下列四组字符串中都可以用作C语言程序中的标识符的是( A)。

A、print _3d db8 aBc

B、I\am one_half start$it 3pai

C、str_1 Cpp pow while

D、Pxq My->book line# His.age

选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)

9.C语言中的简单数据类型包括(D )。

A、整型、实型、逻辑型

B、整型、实型、逻辑型、字符型

C、整型、字符型、逻辑型

D、整型、实型、字符型

10.在C语言程序中,表达式5%2的结果是 C 。

A、2.5

B、2

C、1

D、3

%为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1; 5%

(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;

/为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2

11.如果int a=3,b=4;则条件表达式"aA、 3

B、 4

C、 0

D、1

详见教材P97.

表达式1?表达式2:表达式3

先计算表达式1,

若表达式1成立, 则选择计算表达式2,并表达式2的值作为整个大表达式的值; 若表达式1不成立,则选择计算表达式3,并将表达式3的值作为整个大表达式的值 此题中的aa为3,b为4。a12.若int x=2,y=3,z=4 则表达式xA、4

B、3

C、2

D、0 E)1

13.C语言中,关系表达式和逻辑表达式的值是( B ) 。

A、0

B、 0或1

C、 1

D、‘T’或’F’

14. 下面( D )表达式的值为4.

A、 11/3

B、 11.0/3

C、 (float)11/3

D、 (int)(11.0/3+0.5)

14~16题为同一类型

详见教材P54~56.

(1)相同数据类型的元素进行数学运算(+、-、*、/)得到结果还保持原数据类型。

(2)不同数据类型的元素进行数学运算,先要统一数据类型,统一的标准是低精度类型转换为高精度的数据类型。

选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3.

选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B 11.0/3=3.666666

选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B同

选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到3.666666;再计算

3.666666+0.5=4.166666,最后将4.166666强制类型转换为整型,即将其小数部分全部舍掉,结果为4

15.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是( B )

A、b=1.0/a

B、b=(float)(1/A、

C、b=1/(float)a


2016计算机二级C语言上机题库及答案解析(9)》出自:百味书屋
链接地址:http://www.850500.com/news/62834.html
转载请保留,谢谢!
相关文章
推荐范文