【精选】计算机二级C语言题库(60套真题+刷题软件)2023年9月份新题第二套 您所在的位置:网站首页 计算机1级考试选择题库及答案 【精选】计算机二级C语言题库(60套真题+刷题软件)2023年9月份新题第二套

【精选】计算机二级C语言题库(60套真题+刷题软件)2023年9月份新题第二套

2023-10-21 10:42| 来源: 网络整理| 查看: 265

刷题软件  文末有联系方式

​​​​​​​

 

 

1、在数据库的三级模式中,外模式(用户模式或子模式)_____。

A. 只有3个

B. 只有2个

C. 可以有任意多个

D. 只有1个

本题考查的知识点是数据库设计基础。外模式也称子模式或用户模式。它是用户的数据视图,也就是用户所见到的数据模式,它由概念模式推导而出。概念模式给出了系统全局的数据描述而外模式则给出每个用户的局部数据描述。一个概念模式可以有若干个外模式,每个用户只关心与它有关的模式,这样不仅可以屏蔽大量无关信息而且有利于数据保护。所以本题答案为C。

2、在商场购物时,顾客可以购买不同的商品,而同样的商品也销售给不同的顾客,则实体顾客和实体商品之间的联系是_______。

A. 一对多

B. 一对一

C. 多对一

D. 多对多

本题考查的知识点是数据模型。根据题目要求,一名顾客可以购买多种商品,一种商品也可以被多名顾客购买,所以实体顾客和实体商品之间的联系是多对多的关系。所以本题答案为D。

3、学生选课成绩表的关系模式是SC(S#,C#,G),其中S#为学号,C#为课号,G为成绩,检索课号为2的成绩不及格的学生的学号____。

 本题考查的知识点是关系代数。首先在SC中进行选择运算,选择出课程号为2且成绩不及格的学生信息,故B、D选项错误;其次查找出符合该条件的学生学号,故选项C错误。所以本题答案为A。

4、在数据库的三级模式中,内模式(物理模式)有____。

A. 任意多个

B. 2个

C. 3个

D. 1个

本题考查的知识点是数据库设计基础。内模式又称为物理模式,它是数据库中全体数据的内部表示或底层描述,它是唯一的,而建立在数据库系统之上的应用则是非常广泛的、多样的,因此外模式不是唯一的,也不可能是唯一的。所以本题答案为D。

5、由若干零件组合成的、具有一定功能的部分为系统的部件,而零件可用于不同的部件,则实体部件和实体零件之间的联系是_______。

A. 多对多

B. 一对一

C. 多对一

D. 一对多

本题考查的知识点是数据模型。根据题目要求,部件由多个零件组成,零件可用于不同的部件,所以部件与零件之间的联系是多对多的关系。所以本题答案为A。

6、关系R经过运算

的结果为____。

A. (b, e,1,2)

B. (c, c,11,4)

C. (a, a,2,2)

D. (e, e,6,1)

本题考查的知识点是关系代数。根据题意可知,需要选择出关系R中A=B并且D>2的关系元组,只有(c, c,11,4)满足条件。所以本题答案为B。

7、长期储存在计算机内、有组织的、可共享的大量数据的集合是_______。

A. 数据库

B. 数据库系统

C. 关系数据库系统

D. 数据库管理系统

本题考查知识点是数据库基本概念。数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集合,并可被各个应用程序所共享。所以本题答案为A。

8、某工厂生产中使用若干种原材料,原材料置于多个仓库中,并且同样的材料可放在不同的仓库中,则实体材料和实体仓库之间的联系是______。

A. 多对一

B. 一对一

C. 多对多

D. 一对多

本题考查的知识点是数据模型。根据题目要求,一个仓库可以存储多种材料,一种材料可以被存储在不同的仓库中,所以实体材料和实体仓库是多对多的关系。所以本题答案为C。

9、设有表示商店聘用职工的三张表,其中商店(商店号,商店名,地址),职工(职工号,姓名,性别,业绩),聘用(职工号,商店号,聘期,月薪),则关系聘用的关键字(键或码)为___。

A. 职工号,商店号

B. 职工号,聘期

C. 职工号,月薪

D. 商店号,聘期,月薪

本题考查知识点是数据库基础知识。主键也称为主关键字,是在一个二维表中,唯一限定一条元组的属性或属性集合。商品关系的主键为商品号,职工关系的主键为职工号,且商品与职工属于多对多联系。聘用表可以将商品与职工的多对多联系拆分为两个一对多联系,所以聘用的关键字为职工号,商品号。所以本题答案为A。

10、循环队列的存储空间为Q(1:50),初始状态为front=rear=50。经过一系列正常的入队与退队操作后,front=rear=25,此后又正常地插入了一个元素,则循环队列中的元素个数为____。

A. 51

B. 49

C. 50

D. 1

本题考查知识点是循环队列。循环队列是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。经过一系列的入队操作和退队操作后,头指针(front=25)尾指针(rear=25)说明入队25次,退队25次,此时队列中有零个元素或队列满,此后又正常地插入了一个元素,说明队列满的情况是不可能的,所以此时队列中元素个数为1。所以本题答案为D。

11、C语言中,下列叙述正确的是_______。

A. 不能使用do-while语句构成的循环

B. do-while语句构成的循环,必须用break语句才能退出

C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环

D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环

本题的考查点是do-while语句。选项A是错误的,C语言支持do-while语句; do-while构成的循环,当while语句中的表达式值为零时结束循环,而不是非零,故选项B、C都是错误的。故本题答案为D。

12、设有如下的程序段 char str[]="Hello"; char *ptr; ptr=str; 执行完上面的程序段后,*(ptr+5)的值为____。

A. 'o'

B. '\0'

C. 不确定的值

D. 'o'的地址

本题的考查点是字符数组的结束标志。 ptr=str实际上是将串str的首地址赋给了指针变量ptr,所以ptr+5将指向str串的第六个数组元素,即是串的隐含结束标志'\0',*(ptr+5)='\0',最后的结果为'\0'。故本题答案为B。

13、设有以下语句 char a=3,b=6, c; c=a^b

if(y%3==0)

{

printf("%d",__-y);

continue ;

}

}

}

的输出是_____。

A. 741

B. 852

C. 963

D. 875421

本题的考查点是if判断语句。 "%"是求模运算符,所以if判断语句中实际是指出只有当y可以被3整除时方可以执行循环体;--y是先进行y的自减运算,再使用y值。所以,最后的打印结果应当为"852"。故本题答案为B。

17、下面程序

void prtv(int *x)

{

printf("%d\n",++*x);

}

main()

{

int a=25;

prtv(&a) ;

}

的输出是____。

A. 23

B. 24

C. 25

D. 26

本题的考查点是指针变量作为函数参数。观察程序,可以发现,函数prtv()的作用是将地址等于x的内存单元中值加1,因为我们在主函数中是将变量a的地址作为实参传递给了prtv()函数,所以,函数prtv()将地址等于变量a的地址的那个内存单元中的值加1,打印结果自然就是25+1=26了。故本题答案为D。

18、下面的程序片段

y=-1;

if (x!=0)

if(x>0)

y=1 ;

else

y=0;

所表示的数学函数关系是______。

A.①

B.②

C.③

D.④

19、下面的程序

main()

{

int x=3;

do

{

printf("%d\n", x-=2);

} while(! (--x));

} ____。

A. 输出的是1

B. 输出的是1和-2

C. 输出的是3和0

D. 是死循环

本题的考查点是do-while语句。在第一次循环时,先计算表达式x-=2,所以输出1,--x为0,判断表达式的值为非零,返回重新执行该语句;在第二次循环时,表达式x-=2,即-2,所以输出-2,--x为-3,判断表达式的值为零,循环结束。故本题答案为B。

20、下面的程序中____错误(每行程序前面的数字是行号)。

#include

main()

{

float a[3]={0.0} ;

int i;

for(i=0 ; i

int a=1, b=4, c=2;

float x=10.5, y=4.0,z;

z=(a+b)/c+sqrt ((double)y)*1.2/c+x;

printf("%f\n",z);

}

A. 14.000000

B. 15.400000

C. 13.700000

D. 14.900000

本题的考查点是sqrt()函数的应用。函数sqrt(x)是一个标准的数学函数,用于求x的二次方根,知道这一点以后就好做了,将各变量的值带入程序求解即可,另外,程序中的(double)是强制类型转换,将原来为float型的y强制转换成double型变量。故本题答案为C。

23、以下程序的输出结果是____

#include

main()

{

int a=2,c=5;

printf("a=%%d,b=%%d\n" , a, c);

}

A. a=%2,b=%5

B. a=2, b=5

C.a=%%d,b=%%d

D. a=%d, b=%d

本题的考查点是格式控制字符的应用。 printf()函数:当"格式控制"字符串中连续使用两个"%"符号时,表示要输出字符"%",所以,a, c两个变量的值并不带入输出字符串,最后的打印结果应当是a=%d,b=%d。故本题答案为D。

24、以下程序的输出结果是_______。

#include

main ()

{

printf ("%d\n",NULL);

}

A. 不确定的(因变量无定义)

B. 0

C. -1

D. 1

本题的考查点是对'NULL'的理解。 NULL在C编译器中是一个值为0的常量,它的定义在头文件"stdio.h"中,本题的程序在一开始就包含了这个头文件,所以,在打印的时候,将打印出0。故本题答案为B。

25、以下程序的输出结果是_______。

main()

{

int k=4, m=1, p;

p=func(k, m);

printf("%d,", p);

p=func (k,m);

printf("%d\n", p);

}

func(int a,int b)

{

static int m=0,i=2;

i+=m+1 ;

m=i+a+b;

return(m);

}

A. 8,17

B. 8,16

C. 8, 20

D. 8,8

本题的考查点是函数的调用。将k和m的值带入函数func中,第一次调用完func()后,其中m和i的值要保留,并在第二次调用时使用,这是因为两者都是局部静态变量,最后的结果是8和17。故本题答案为A。

26、以下程序的输出结果为_

main()

{

char *alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};

char **p ;

int i;

p=alpha;

for(i=0; i

int a[10],i,k;

for(i=0; i

int t=1;

fun(fun(t)) ;

}

fun(int h)

{

static int a[3]={1,2,3} ;

int k;

for (k=0;k

int x, y ;

char c;

for(x=0, y=strlen(s)-1 ; x

int n[3][3],i,j;

for(i=O; i

char i[2];

int k ;

} r;

r.i[0]=2;

r.i[1]=0;

printf("%d\n", r.k);

}

A. 2

B. 1

C. 0

D. 不确定

本题的考查点是共用体类型数据的特点。根据共用体的定义可知:共用体r的成员k和成员i[2]是共用同一段内存空间,所以,当程序给r.i[0]赋值后,实际上,共用体成员k的值也确定了,为2。所以打印输出的结果应当为2。故本题答案为A。

36、设有以下定义和语句,则输出的结果是_______。(用small模式编译,指针变量占2个字节)

struct date

{

long*cat;

struct date*next ;

double dog;

}too ;

printf("%d", sizeof(too)) ;

A. 20

B. 16

C. 14

D. 12

本题的考查点是计算结构体的长度。结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。double占8个字节,指针变量占2个字节,2+2+8=12,所以,输出结果是12。故本题答案为D。

37、以下程序的输出结果是_______。

#define f(x) x*x

main()

{

int a=6, b=2, c;

c=f(a)/f(b) ;

printf("%d\n" , c) ;

}

A. 9

B. 6

C. 36

D. 18

本题的考查点是带参数的宏定义。观察程序段可知,对带参数的宏的展开只是将语句中的宏名后面括号内的实参字符串代替#define命令行中的形参。本题中c=f(a)/f(b)用#define f(x)x*x代替得c=f(6)/f(2),即c=6*6/2*2,结果为36。故本题答案为C。

38、以下程序的输出结果是_______。

main()

{

char *s="12134211";

int v[4]={0,0,0,0} ,k, i ;

for (k=0 ; s[k] ;k++)

{

switch(s[k])

{

case '1' :

i=0;

case '2' :

i=1;

case '3' :

i=2;

case '4':

i=3;

}

v[i]++;

}

for(k=0; k

n--;

printf("%d", n);

}

}

该程序的输出结果是______。

A. 987

B. 876

C. 8765

D. 9876

本题考查点是while语句循环次数的问题。符合n>6的n只有7,8,9,所以循环次数为3。选项C、D可以排除。又因n在输出之前要执行n--,所以输出结果只能是876。本题答案为B。

40、以下对结构体类型变量的定义中,不正确的是______。

①typedef struct aa { int n; float m; }AA; AA td1;

②#define AAstruct aa AA{ int n; float m; } td1;

③struct { int n; float m; } aa; struct aa td1;

④struct { int n; float m; }td1;

A. ①

B. ②

C. ③

D. ④

本题的考查点是结构体类型变量的定义。在选项C中,aa是一个结构体变量,而不是结构体名,所以struct aa td1;是非法的。本题答案为C。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有