国家二级C语言机试(选择题)模拟试卷304
选择题
1.有以下程序:
#include<stdio.h>
int b=2;
int fun(int*k)
{
b=*k+b:
return(b);
}
void main( )
{
int a[10]={1,2,3,4,5,6,7,8},i;
for(i=2;i<4;j+ +)
}
b=fun(&a[i])+b;
printf(″%d″,b);
{
printf(″\n″);
}
程序运行后的输出结果是( )。(C)
A. 1012
B. 810
C. 1028
D. 1016
解析:因为b是全局变量,所以它的值在整个程序结束才会消失。for循环中,第一次循环,i=2,a[2]=3,所以fun(&a[i]=3+2=5,b=5,所以b=fun(&a[i])+b=5+5=10;第二次循环,b=10,然后fun(&a[i])代入a[3]=4,这时fun(&a[i]=10+4=14,所以b=fun(&a[i])+b=14+14=28。
2.以下程序段输出结果是( )。
int a=1234;
printf(\\(C)
A. 12
B. 34
C. 1234
D. 提示出错,无结果
解析:在printf函数中,格式转换说明符“%2d”的作用是:如果输出的数据不足两位,则在输出数据的左边填充空格,若输出的数据超过2位,则按数据的实际位数输出。
3.下面属于系统软件的是( )。(A)
A. UNIX系统
B. ERP系统
C. 办公自动化系统
D. 学生成绩管理系统
解析:软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。系统软件是管理计算机的资源,提高计算机使用效率并服务于其他程序的软件,如操作系统,编译程序,汇编程序,数据库管理系统和网络软件等。应用软件是为解决特定领域的应用而开发的软件。例如,事务处理软件,工程与科学计算软件,实时处理软件,嵌入式软件,人工智能软件等应用性质不同的各种软件。支撑软件是介于系统软件和应用软件之间,协助用户开发的工具性软件。
4.对下列二叉树( )。
(C)
A. DYBEAFCZX
B. YDEBFZXCA
C. ABDYECFXZ
D. ABCDEFXYZ
解析:二叉树前序遍历的简单描述:若二叉树为空,则结束返回;否则,①访问根节点;②前序遍历左子树;③前序遍历右子树。可见,前序遍历二叉树的过程是一个递归的过程。根据题目中给出的二叉树的结构可知前序遍历的结果是ABDYECFXZ。
5.下列数据结构中,能用二分法进行查找的是(A)
A. 顺序存储的有序线性表
B. 线性链表
C. 二叉链表
D. 有序线性链表
解析:二分法查找只适应于顺序存储的有序表。有序表是指线性表中的元素按值非递减排序(即从小到大,但允许相邻元素值相等)的表。
6.从表中任何一个结点位置出发就可以不重复地访问到表中其他所有结点的链表是(A)
A. 循环链表
B. 双向链表
C. 单向链表
D. 二叉链表
解析:循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环,循环一圈就访问到了表中其他所有结点而不重复。
7.没数据元素的集合D={1,2,3,4,5},则满足下列关系R的数据结构中为线性结构的是( )。
B
解析:A选项2的前面有1和3两个数值,带有不确定性;C选项2的后面有4和3两个数值;D选项1的后面有3和2两个数值,所以只有B选项是线性结构。
8.设有定义:“long x=123450L;”,则以下能够正确输出变量x的是( )。(D)
A. printf(’’x=%d\n’’,x);
B. printf(’’x=%id\n’’,x);
C. printf(’’x=%dL\n’’,x);
D. printf(’’x=%1d\n\\
解析:C语言规定,输出long型数值的格式符为%1d。
9.以下选项中,合法的一组C语言数值常量是( )。(A)
A. 12.0Xa23 4.5e0
B. 028.5e一3一0xf
C. .177 4e1.5 0abc
D. 0x8A 10,000 3.e5
解析:C语言中,八进制整型常量的开头数字是0,十六进制整型常量的开头数字是0x或0X。C语言中的实型常量有两种表示形式:小数形式,表示的实型常量必须要有小数点;指数形式,以e或E后跟一个整数来表示以10为底数的幂数,且规定字母e或E之前必须要有数字,且e或E后面的指数必须为整数。B选项中028错误,八进制中没有数字8。C选项中4e1.5中e后面的指数不是整数。D选项中10,000数字之间不能有逗号。
10.下面不属于软件工程的3个要素是(D)
A. 工具
B. 过程
C. 方法
D. 环境
解析:软件工程的3个要素是工具、过程和方法。
11.以下叙述中错误的是( )。(A)
A. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B. C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C. 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D. C语言源程序经编译后生成后缀为.obj的目标程序
解析:C语言中的非执行语句不会被编译,不会生成二进制的机器指令,所以A选项错误。由C语言构成的指令序列称C源程序,C源程序经过C语言编译程序编译之后,生成一个后缀名为.obj的二进制文件(称为目标文件);最后要由“连接程序”把此obj文件与C语言提供的各种库函数连接起来生成一个后缀为.exe的可执行文件。
12.若变量已正确定义为int型,要通过语句scanf(\\(D)
A. □□□1,2,3
B. 1,□□□2,□□□3
C. 1,2,3
D. 1□2□3
解析:本题t要考查scanf函数的输入格式问题。
scanf函数的一般形式为:scanfi(格式控制字符串,地址1。地址2,…);
格式控制字符串是由双撇号括起来的字符串,它主要由两种类型的字符组成:
①格式说明符由“%”和格式字符组成,如%c,%d,%s,%f等。其作用是将输入的数据转换为指定的格式,赋给scanf的二个参量(是地址1)所指定的内存单元(可能一次使用多个)中。格式说明以“%”字符为标志。
②普通字符,是需要用户在输入时原样输入的字符。
在本题中格式控制字符串为“%d,%d,%d”,表示按十进制输入三个数据。要求在输入数据时,两个数据间一定以一个逗号“,”作为间隔符。
13.以下叙述中正确的是(
本文档预览:3600字符,共12209字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载