国家二级(C语言)机试模拟试卷452
选择题
1.在关系代数运算中,有5种基本运算,它们是( )。(D)
A. 并(∪)、差(-)、交(∩)、除(÷)和笛卡儿积(×)
B. 并(∪)、差(-)、交(∩)、投影(π)和选择(σ)
C. 并(∪)、交(∩)、投影(π)、选择(σ)和笛卡儿积(×)
D. 并(∪)、差(-)、投影(π)、选择(σ)和笛卡儿积(×)
解析:并、差、笛卡儿积、投影和选择是5种基本的运算,其他运算即交、连接和除,均可以通过5种基本的运算来表达。
2.下列哪一条不属于数据库设计的任务?( )(A)
A. 设计数据库应用结构
B. 设计数据库概论结构
C. 设计数据库逻辑结构
D. 设计数据库物理结构
解析:数据库设计工作量大而且过程复杂,既是一项数据库工程也是一项庞大的软件工程。考虑数据库及其应用系统开发全过程,将数据库设计分为以下6个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库的运行和维护。
3.数据库技术的根本目标是( )。(B)
A. 数据存储
B. 数据共享
C. 数据查询
D. 数据管理
解析:数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享,所以数据库技术的根本目标是解决数据共享问题。
4.以下选项中,合法的一组C语言数值常量是( )。(A)
A. 12. 0Xa234. 5e0
B. 028. 5e-3 -0xf
C. .177 4e1.5 0abc
D. 0x8A 10.000 3.e5
解析:C语言中八进制整型常量的开头是数字0,十六进制整型常量的数字开头是0x。C语言中的实型常量有两种表示形式:小数形式,小数形式表示的实型常量必须要有小数点;指数形式,以“e”或“E”后跟一个整数来表示以10为底数的幂数,且规定字母e或E之前必须要有数字,且e或E后面的指数必须为整数。B选项中028错误,八进制中没有数字8。C选项中4e1.5中e后面的指数不是整数。D选项中3.e5小数点后面缺少数字。
5.有以下程序:
#include
#include
typedef struet{char name[9];char sex;float score[2];}STU;
void f(STU*a)
{ strcpy(a->name,\\(C)
A. Qian,f,95,92
B. Zhao,f,95,90
C. Zhao,m,95,90
D. Zhao,f,95,92
解析:f函数调用时,结构体数组名作为实参传给形参指针,结构体指针a指向数组c的首地址。因此,f可以对数组c中的元素赋值,故返回主函数之后,数组c中的成员值已被更新。main函数中有赋值语句\\
6.下列形式中不合法的常量是( )。(C)
A. 2.E8
B. -.28
C. -028
D. 2e-8
解析:0开头表示的是八进制整型常量,八进制数只能用0~7的数字表示。
7.已知一个文件中存放若干工人档案记录,其数据结构如下:
stmct a
{ char number[100];
int age;
float p[6];
};
定义一个数组:struct a b[10];
假定文件已正确打开,不能正确地从文件中读入10名工人数据到数组b中的是( )。(B)
A. fread(b,sizeof(struct a),10,fp);
B. for(i=0;i<10;i++)
fread(b[i],sizeof(struct a),1,fp);
C. for(i=0;i<10;i++)
fread(b+i,sizeof(struct a),1,fp);
D. for(i=0;i<5;i+=2)
fread(b+i,sezeof(struct a),2,fp);
解析:数据块输入/输出函数的调用格式为:ffead(buffer,size,count,fp),其中:“buffer”是一个指针,对于fread来说,它是读入数据的存放地址。“size”是要读写的字节数; “count”是要进行读写多少个size字节的数据项; “fp”是指文件型指针。选项B中b[i]是一个数组,不是指针,需改为&b[i]。
8.有三个关系R、S和T如下:
(D)
A. 笛卡尔积
B. 交
C. 并
D. 自然连接
解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据T关系中的有序组可知R与S进行的是自然连接操作。
9.若有以下程序段:
struct st
{ int n;
int*m;};
int a=2,b=3,c=5;
struct
st s[3]=({101,&a},{102,&c},{103,&b}};
main()
{ struct st*p;
p=s;
…}
则以下表达式中值为5的是( )。(D)
A. (p++)->m
B. *(p++)->m
C. (*p).m
D. *(++p)->m
解析:本题考查如何通过指针引用数组元素。首先定义了一个结构体,然后定义了一个结构体变量s[3],并赋了初值。在主程序中,定义了一个指向结构体变量s的指针p,要使表达式的值为5,就应该引用s[1].m的值,使指针p指向s[1],抖p可以实现将p指针加1,指向s[1]。
10.下述语句中,在字符串s1和s2相等时显示“they areEqua1”的是( )。(B)
A. if(*s1==*s2)puts(\\
B. if(!strcmp(s1,s2))puts(\\
C. if(s1==s2)Puts(\\
D. if(strcmp(s1,s2))puts(\\
解析:字符串比较不能用两个等号(==)来进行比较,应使用“strcmp(s1,s2)”函数来比较。“strcmp(s1,s2)”函数的功能是:当字符串s1和s2相等时,返回值为0,因此,当表达式“!strcmp(s1,s2)==1”时,条件成立,执行后面的语句,输出“they are Equa1”。
11.设有以下语句:
char x=3,y=6,z;
z=x^y<<2;
则z的二进制值是( )。(B)
A. 00010100
B. 00011011
C. 00011100
D. 00011000
解析:本题考查的是位运算符的应
本文档预览:3600字符,共15452字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载