首页 > 全部 > 二级C语言 > 二级C语言选择题专项强化真题试卷6

二级C语言选择题专项强化真题试卷6

本单篇文档共8075字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 真题试卷 2548人下载
价格: 0.80 原价:¥9.00
收藏

二级C语言选择题专项强化真题试卷6

选择题

1.在满足实体完整性约束的条件下( )。(A)

A. 一个关系中应该有一个或多个候选关键字

B. 一个关系中只能有一个候选关键字

C. 一个关系中必须有多个候选关键字

D. 一个关系中可以没有候选关键字

解析:实体完整性约束要求关系的主键中属性值不能为空值,因此本题答案为A。

2.设二叉树共有150个节点,其中度为1的节点有10个,则该二叉树中的叶子节点数为( )。(D)

A. 71

B. 70

C. 69

D. 不可能有这样的二叉树

解析:在树结构中,一个节点所拥有的后件个数称为该节点的度,所有节点中最大的度称为树的度。对任何一棵二叉树,度为O的节点总是比度为2的节点多一个。如果有一棵二叉树,节点总数为150,假设度为0的节点个数为n,则有n+10+n—1=150,n=70.5,由于节点个数必须是整数,所以不可能有题目中这样的二叉树。故选择D选项。

3.若有定义:char c;int d;,程序运行时输入:c=1,d=2,能把字符1输入给变量c、整数2输入给变量d的输入语句是( )。(D)

A. scanf(\\

B. scanf(\\

C. scanf(\\

D. scanf(\\

解析:scanf()函数中,%d对应的参数为整数型地址,%c对应的参数为chat型地址,故A、C选项错误;如果输入地址有多个,应该用逗号隔开,故B选项错误,因此答案为D选项。

4.有以下程序:

#jnclude<stdio.h>

int fun(int(*s)[4],int n,int k)

{int m,i;

m=s[0][k];

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

if(s[i][k]>m)

m=s[i][k];

return m;

}

main( )

{int a[4][4]={{1,2,3,4},

{11,12,13,14},

{21,22,23,24},

{31,32,33,34}};

prinff(\\(C)

A. 4

B. 34

C. 31

D. 32

解析:本题重点考察二维数组名作为实参进行参数传递,在主函数中调用了fun函数,实参为二维数组名a和两个整数4、0,这样对应定义fun函数首部有三种形式,这里采用了第一种形式——行指针,这样在fun函数对s[i][j]进行操作实际上就是对主函数中的a[i][j]进行操作,再分析fun函数的作用便可知,是求二维数组第0列中最大的那个元素。因此C选项正确。

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

A. 每一个结点有两个指针域的链表一定是非线性结构

B. 所有结点的指针域都为非空的链表一定是非线性结构

C. 循环链表是循环队列的链式存储结构

D. 线性结构的存储结点也可以有多个指针

解析:一个非空的数据结构如果满足以下两个条件:有且只有一个根结点;每一个结点最多有一个前件,也最多有一个后件,则称为线性结构,在数据结构中习惯称为线性表。双向链表结点具有两个指针域,属于线性结构,A选项错误。循环链表所有结点的指针域都为非空,属于线性结构,B选项错误。循环链表是链表,循环队列属于队列,队列只能在队尾入队,在排头退队,链表可以在任何位置插入、删除,C选项错误。双向链表结点具有多个指针域,D选项正确。

6.有以下程序:

#include

int fun(int*b,int n)

{ int i,r=1;

for(i=0;i<=n;i++)r=r*b[i];

return r;

}

main()

{ int x,a[]={2,3,4,5,6,7,8,9};

x=fun(a,3);

printf(\\(C)

A. 24

B. 720

C. 120

D. 6

解析:函数fun()求数组指定返回的元素的积。函数fun(a,3)求的是数组a[0]一a[3]的积。因此结果为2*3*4*5=120,故答案为C选项。

7.下列关于线性链表的叙述中,正确的是( )。(C)

A. 各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致

B. 各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续

C. 进行插入与删除时,不需要移动表中的元素

D. 以上说法均不正确

解析:一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。线性链表中数据的插入和删除都不需要移动表中的元素,只需改变结点的指针域即可。

8.下列定义数组的语句中,正确的是( )。(A)

A. #define N 10

int x[N];

B. int N=10;

int x[N];

C. int x[0…10];

D. int x[];

解析:数组说明的一般形式为:类型说明符数组名[常量表达式]。B)选项中N是变量,不能用变量定义数组长度。C)选项中数组长度是非法的一串数字。定义数组时必须为其指明长度,D)选项中数组长度为空。所以非法。

9.设有定义

#include<stdio.h>

#include<stdlib.h>

typedef struet{int x,y;}T;

typedef struet{int x,y;}*USER;

USER fun( )

{USER p;

p=(USER)malloc(sizeof(T));

p->x=1:

p->y=2:

return p;

}

函数fun返回值的类型是( )。(B)

A. T类型的结构体

B. 指向结构体类型的指针

C. int类型的元素

D. int类型的指针

解析:由题意可知:使用typedef将类型:struct{int x,y;*重命名为USER,所以函数fun的返回类型为struct{int x,y;}*,即指向结构体类型的指针,本题答案为B。

10.若有定义:int a;float b;double c;,程序运行时输入:1,2,3,能把1输入给变量a、2输入给变量b、3输入给变量c的输入语句是( )。(A)

A. scanf(\\

B. scanf(\\

C. seanf(\\

D. scanf(\\

解析:scanf()函数中,%d对应的参数是整数型地址,%f对应的参数是float型地址,%If对应的参数是double型地址,因此C、D选项错误;在格式化字符串中,如果输入地址有多个,应该用逗号隔开,B选项错误,故答案为A选项。

11.有以下程序:

#include

main()

{ int a=1,b=0;

pfinff(\\(A)

A. 1,2

B. 1

本文档预览:3600字符,共8075字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
二级C语言选择题专项强化真题试卷6

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号