国家二级(C语言)机试模拟试卷444
选择题
1.以下叙述中正确的是( )。(C)
A. 不同函数的形式参数不能使用相同名称的标识符
B. 用户自己定义的函数只能调用库函数
C. 实用的C语言源程序总是由一个或多个函数组成
D. 在C语言的函数内部,可以定义局部嵌套函数
解析:函数是一个独立的模块,不同函数之间的定义相互没有影响,所以标识符可以相同,选项A错误;除了main函数不能被其他函数调用之外,用户自定义函数可以调用其他任意函数,选项B错误;一个C程序可以有一个或多个程序文件,所以也可以有一个或多个函数,选项C正确;函数体内部只可以调用,但是不可以定义其他函数,选项D错误。故答案选C。
2.设a和b均为int型变量,且a=6、b=11、c=3,则能使值为3的表达式是( )。(D)
A. b%(c%4)
B. b%(c-a%5)
C. b%a-a%5
D. (b%a)-(a%4)
解析:选项D括号内的运算分别是b%a=11%6=5和a%c=6%4_2,最后得到5.2=3。
3.有以下程序:
#include<stdio.h>
int f(int x);
main()
{int n=l,m;
m=f(f(f(n)));printf(\\(A)
A. 8
B. 2
C. 4
D. 1
解析:第一次调用m=f(f(f(1))),第二次为m=f(f(2)),第三次为m=f(4),即返回值为8。
4.有三个关系R、S和T如下:
(D)
A. T=R∩S
B. T=R∪S
C. T=R×S
D. T=R-S
解析:图中关系R比关系s多一行T中的元组,故由关系R和S得到关系T的操作是差。
5.下述语句中,在字符串s1和s2相等时显示\\(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)函数,字符串s1和s2相等时返回值为0,故!srecmp(s1,s2)==1.条件成立执行后面的语句,输出they are Equal。
6.以下叙述中正确的是( )。(C)
A. 函数的形参类型不能是指针类型
B. 函数的类型不能是指针类型
C. 设有指针变量为double*p,则p+1将指针p移动8个字节
D. 基类型不同的指针变量可以相互混用
解析:C项正确,一般情况下,double类型的变量长度为8个字节,对指针进行加、减运算时,数字“1”指1个存储单元长度。A项错误,函数的形参可以是数值类型,也可以是指针类型;B项错误,C语言中有指向函数的指针,称为函数指针;D项错误,int类型的指针只能指向int,不能指向double,基类型不同的指针变量不能混用。
7.有以下程序:
#include
main()
{ FILE*fp;int a[10]={1,2,3,0,0},i;
fp=fopen(\\(D)
A. 1,2,3,0,0,0,0,0,0,0,
B. 1,2,3,1,2,3,0,0,0,0,
C. 123,0,0,0,0,123,0,0,0,0,
D. 1,2,3,0,0,1,2,3,0,0,
解析:首先用函数fopen()以“wb”的方式打开文件“d2.dat”,然后调用两次fwrite函数将数组a的5个元素,依次输出到文件fp中(共10个字节),然后关闭文件。再次打开文件,使用文件指针指向文件的开头,调用fread函数从文件fp中读取这10个字节的数据到数组a中,此时数组a的内容就变为{1,2,3,0,0,1,2,3,0,0},因此最后的输出结果为“1,2,3,0,0,1,2,3,0,0”。
8.将E—R图转换为关系模式时,实体和联系都可以表示为( )。(C)
A. 属性
B. 键
C. 关系
D. 域
解析:从E—R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E—R罔中属性也可以转换成关系的属性。
9.有以下程序:
#include<stdio.h>
main()
{int x;
scanf(\\(D)
A. 小于3的整数
B. 不等于10的整数
C. 大于3或等于10的整数
D. 大于3且不等10的整数
解析:根据代码可知如果x的值小于等于3,执行空语句,不进行打印操作。如果x的值大于3,再判断x的值是否不等于10,如果不等于10就打印x的值,所以选择D选项。
10.以下叙述中错误的是( )。(A)
A. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B. C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C. 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D. C语言源程序经编译后生成后缀为.obj的目标程序
解析:c语言中的非执行语句不会被编译,不会生成二进制的机器指令,所以A错误。由C语言构成的指令序列称为C源程序,C源程序经过C语言编译程序编译之后生成一个后缀为.obj的二进制文件(称为目标文件);最后要由“连接程序”把此.obj文件与C语言提供的各种库函数连接起来生成一个后缀为.ExE的可执行文件。
11.下面描述不属于软件特点的是( )。(D)
A. 软件是一种逻辑实体,具有抽象性
B. 软件在使用中不存在磨损、老化问题
C. 软件复杂性高
D. 软件使用不涉及知识产权
解析:软件具有以下特点:①软件是一种逻辑实体,具有抽象性;②软件没有明显的制作过程;③软件在使用期间不存在磨损、老化问题;④软件对硬件和环境具有依赖性;⑤软件复杂性高,成本昂贵;⑥软件开发涉及诸多的社会因素,如知识产权等。
12.有三个关系R、S和T如下:
(B)
A. 自然连接
B. 差
C. 交
D. 并
解析:关系T中的元组是R关系中有而S关系中没有的元组的集合,所以进行的是差的运算。
13.以下关于C语言数据类型的叙述中正确的是( )。(C)
A. C基本数据类型包括:分为整型、实型、浮点型、字符型四种
B. 实型常量的表达方式包括十进制形式、十六进制形式、二进制形式、八进制形式、指数形式
C. 若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
D. 若只处理“真”和“假”两种逻辑值,应使用逻辑类型
解析:C基本数据类型包括:分为整型、
本文档预览:3600字符,共16190字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载