国家二级(C语言)机试模拟试卷465
选择题
1.有以下程序:
#include<stdio.h>
main()
{
int m=1,n=2,*p=&m,*q=&n,*r;
r=p;p=q;q=r;
printf(\\(B)
A. 1,2,1,2
B. 1,2,2,1
C. 2,1,2,1
D. 2,1,1,2
解析:本题定义了两个整型变量,然后用两个指针分别指向这两个整型变量,接着对指针进行交换,那么原来指向第一个整数的指针将指向第二个整数,原来指向第二个整数的指针将指向第一个整数。
2.有三个关系R、S和T如下:
(D)
A. 并
B. 自然连接
C. 笛卡尔积
D. 交
解析:自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以B错误。笛卡尔积是用R集合中元素为第一元素,S集合中元素为第二元素构成的有序对,所以C错误。根据关系T可以很明显地看出是从关系R与关系S中取得相同的关系组所以取得是交运算,选择D。
3.设x和y都是int类型,且x=1,y=2,则printf(\\(A)
A. 1 2
B. 1 2 2
C. 1,2
D. 输出值不确定
解析:本题考查printf函数的格式和逗号表达式。printf函数在输出时,是根据格式说明符的个数输出的,如果函数中有多余的项将不予输出;如果有输出项少于格式说明符,则出错,不能输出正确的结果。
本题中逗号表达式(x,y)只返回y的值。此时格式说明的个数是2,而输出项的个数是3,因此printf函数只输出前两项。
4.下列程序的输出结果是( )。
#include
main()
{struct st
{int y,x,z;};
union
{long i;intj;
char k;)un;
printf(\\(B)
A. 6,2
B. 6,4
C. 8,4
D. 8,6
解析:本题考查的是结构和数组元素所占的字节数。题目中定义的结构st因为包含x、y、z这3个元素,所以size(structst)+2+2=6;而联合体所占的字节数,由于最后存入的元素会把前面存入的元素覆盖掉,所以联合体所占的字节数就是占据最多存储单元的元素所占的字节数,sizeof(un)=sizeof(long)=4。
5.下列选项中不属于软件生命周期开发阶段任务的是( )。(C)
A. 软件测试
B. 概要设计
C. 软件维护
D. 详细设计
解析:软件生命周期分为软件定义、软件开发及软件运行维护三个阶段,其中开发阶段包括概要设计、详细设计、实现和测试。
6.下面的程序在编译时产生错误,其出错原因是( )。
#include<stdio.h>
main()
{ int 1 case;float printF;
printf(\\(A)
A. 定义语句出错,1 case不能作为变量名
B. 定义语句出错,printF不能用作用户自定义标识符
C. 定义语句无错,scanf不能作为输入函数使用
D. 定义语句无错,printf不能输出1 case的值
解析:C语言变量名可由数字,字母,下划线构成,但首字符不能为数字。
7.有以下程序:
#include
main()
{int n,*p=NULL:
*p=&n:
prinff(“Input n:”);8eanf(“%d”,&p);prinff(“output n:”);prinff(“%d\n”,P);
}
该程序试图通过指针P为变量n读人数据并输出,但程序有多处错误,以下语句正确的是( )。(A)
A. int n,*p=NULL;
B. *p=&n;
C. seanf(“%d”,&p)
D. printf(”%d\n”,P);
解析:选项B的正确写法应为p=&n;选项C的正确写法应为scanf(“%d”,p);选项D的正确写法应为printf(“%d\n”,*p)。
8.在C语言中,变量的隐含存储类别是( )。(A)
A. auto
B. static
C. extern
D. 无存储类别
解析:C语言中,变量的隐含存储类型为auto。
9.有以下程序段:
#include <stdio.h>
int j; float y; char name[50];
scanf(\\(A)
A. 566.0
B. 55566
C. 7777
D. 566777
解析:它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。其中的格式命令可以说明最大域宽。 在百分号(%)与格式码之间的整数用于限制从对应域读入的最大字符数。所以j的值为55,y的值为566.0,字符数组name为7777abc。
10.若有以下定义和语句:
#include<stdio.h>
char s1[10]=\\(C)
A. 10 7
B. 10 5
C. 5 5
D. 5 8
解析:strlen函数返回字符串的长度,求字符串长度时,遇到结束标志‘\0’为止,但是长度不包括结束标识。字符数组s1的后5个元素没有赋值,都为‘\0’,即“abcd!”后为‘\0’。所以strlen(s1)的值为5。字符指针s2所指向的字符串中,\n为转义字符换行符,表示1个字符,\、也为转义字符,代表\,也是1个字符,其后为字符串结束标识‘0’;所以strlen(s2)的值也为5。因此C选项正确。
11.通常软件测试实施的步骤是( )。(B)
A. 集成测试、单元测试、确认测试
B. 单元测试、集成测试、确认测试
C. 确认测试、集成测试、单元测试
D. 单元测试、确认测试、集成测试
解析:软件测试过程一般按4个步骤进行,即单元测试、集成测试、验收测试(确认测试)和系统测试。故答案应该选B。
12.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是( )。(A)
A. C语言程序仅可以编译执行
B. C语言程序仅可以解释执行
C. C语言程序既可以编译执行又可以解释执行
D. 以上说法都不对
解析:C语言作为计算机高级语言,用它编写的程序必须经过C语言的编译器编译后,转换为二进制的机器码来运行。
13.若有定义
本文档预览:3600字符,共17156字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载