国家二级C语言机试(选择题)模拟试卷259
选择题
1.一个完整的可运行的C源程序是( )。(B)
A. 至少需由一个主函数和(或)一个以上的函数构成
B. 由一个且仅由一个主函数和零个以上(含0个)的函数构成
C. 至少由一个主函数和一个以上的函数构成
D. 至少由一个且只有一个主函数或多个函数构成
解析:C程序是由一个或多个函数组成。在主函数中,必须有一个且只能有一个函数作为主函数main;程序从maill函数开始运行,主函数执行完毕,则程序执行完毕。除主函数外,可包括其他函数,这些函数只有被调用时才执行。
2.下面对软件特点描述正确的是( )。(D)
A. 软件具有明显的制作过程
B. 软件在使用中存在磨损、老化问题
C. 软件复制不涉及知识产权
D. 软件是一种逻辑实体,具有抽象性
解析:软件具有以下特点:软件是一种逻辑实体,而不是物理实体,具有抽象性;软件的生产与硬件不同,它没有明显的制作过程;软件在运行、使用期间不存在磨损、老化问题;软件的开发、运行对硬件和环境具有依赖性;软件复杂性高,成本昂贵;软件开发涉及诸多的社会因素(包括软件知识产权及法律等问题)。
3.下面对软件测试描述错误的是( )。(B)
A. 严格执行测试计划,排除测试的随意性
B. 随机地选取测试数据
C. 软件测试的目的是发现错误
D. 软件测试是保证软件质量的重要手段
解析:软件测试的准则如下:
①所有测试都应追溯到需求。
②严格执行测试计划,排除测试的随意性。
③充分注意测试中的群集现象。
④程序员应避免检查自己的程序。
⑤穷举测试不可能。
⑥妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。
4.结构化程序所要求的基本结构不包括(B)
A. 顺序结构
B. GOTO跳转
C. 选择(分支)结构
D. 重复(循环)结构
解析:结构化程序的基本结构有:顺序结构、选择结构和循环结构,没有GOTO跳转结构。
5.有以下程序
#include<stdio.h>
void main()
{intn=2,k=1;
while(1(k>0‖n++));
printf(’’%d%d\n’’,k,n);
}
程序运行后的输出结果是( )。(D)
A. 0 2
B. 1 3
C. 5 7
D. 1 2
解析:在程序中整型变量n的初始值等于2,整型变量k的初始值等于1,在执行while语句时,由于表达式k的值大于0为真,所以不再需要判断“n++”是否为真,“(k>0‖n++)”表达式的值为真。“!(k>0‖n++)”表达式的值为假,所以while语句中的条件不满足,循环语句不会执行,变量n的值也不会加1,所在输出变量k和n的值是1和2。
6.下面描述中错误的是(A)
A. 系统总体结构图支持软件系统的详细设计
B. 软件设计是将软件需求转换为软件表示的过程
C. 数据结构与数据库设计是软件设计的任务之一
D. PAD图是软件详细设计的表示工具
解析:软件设计是将软件需求转换为软件表示的过程:数据结构与数据库设计是软件设计的任务之一:PAD图,即问题分析图,是一种主要用于描述软件详细设计的图形工具。
7.若有定义语句:
int x=12,y=8,z;
在其后执行语句:
z=0.9+x/y;
则z的值为( )。(A)
A. 1
B. 1.9
C. 2
D. 2.4
解析:x、y为整数,x/y值为1,加上0.9为1.9,赋值给整型变量z,接收后为1。
8.下列描述中正确的是(B)
A. 数据库系统是一个独立的系统,不需要操作系统的支持
B. 数据库技术的根本目标是要解决数据的共享问题
C. 数据库管理系统就是数据库系统
D. 以上三种说法都不对
解析:数据库系统由如下几个部分组成:数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台之一——硬件平台(硬件)、系统平台之二——软件平台(软件)。这五个部分构成了一个以数据库为核心的完整的运行实体,称为数据库系统。数据库技术的根本目的是要解决数据的共享问题。数据库中的数据具有“集成”、“共享”之特点,亦即数据库集中了各种应用的数据,进行统一地构造与存储,而使它们可被不同应用程序所使用。数据库管理系统(Database Management System,简称DBMS),是一种系统软件,负责数据库中的数据组织、数据操作、数据维护、控制及保护和数据服务等。它是数据库系统的核心。
9.设变量均已正确定义并赋值,以下与其他三组输出结果不同的一组语句是(C)
A. x++;printf(”%d\n”,x);
B. ++x;printf(”%d\n”,x);
C. n=x++;printf(”%d\n”,n);
D. n=++x;printf(”%)d\n”,n);
解析:本题考查自增运算符。++在前表示先自增然后使用,++在后面表示先使用然后自增。选项A)中首先执行x++,执行完后x自增1,然后printf输出的是x自增后的值:选项B)首先执行++,x的值增加1,接着输出x的值;选项C)中++在x的后面,因此n的值是x自增前的值,printf输出韵是x自增前的值,选项D)中++在x的前面,因此x首先自增,然后再赋值给n,n的值是x自增后的值,输出的也是x自增后的值。
10.以下程序的输出结果是( )。(strcat函数用以连接两个字符串)
#include
#include
main()
{char a [20]=’’ABCD\0EFG\0’’,b[]==’’IJK’’;
strcat(a,b);printf(’’%s\n’’,a);}(B)
A. \OFG\OIJK
B. ABCDIJK
C. UK
D. EFG
解析:在字符串中字符’’\0’’表示字符串的结束标志是系统自动加上的,所以字符串a和b相连接的结果为ABCDIJK。
11.有以下程序:
#include<stdio.h>
int add(int a,int b)
{return(a+b);
}
main( )
{int k,(*f)( ),a=5,b=10;
f=add;
…
}
则以下函数调用语句错误的是( )。(D)
A. k=f(a,b);
B. k=add(a,b);
C. k=(*f)(a,b);
D. k=*f(a,b);
解析:D选项中,*f(a,b)表示调用后返回一个指向整型数据的地址指针,即该函数的返回值为指针类型,所以不能将其赋值给整形变量k。
12.已有定义:char c;,程序前面已在命令中包含ctype.h文件。不能用于判断c中的字符是否为大写字母的表达式是(D)
A. isupper(c)
B. ’A’<=c<=’Z’
C. ’A’<=c&
本文档预览:3600字符,共7712字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载