二级C语言选择题专项强化真题试卷43
选择题
1.在数据库中,数据模型包括数据结构、数据操作和( )。(A)
A. 数据约束
B. 数据类型
C. 关系运算
D. 查询
解析:数据模型是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架,即描述了数据结构、数据操作及数据约束。故正确答案为A。
2.以下叙述中正确的是( )。
C
解析:考查二维数组的初始化。初始化二维数组的时候可以对其部分元素赋初值,选项B错。还可以对数组的全部元素赋初值,此时第一维的元素个数可以不指定,也可以分行赋值,只对部分元素赋初值,选项A、D错。C的描述正确,答案选C。
3.若要使用C数学库中的sin函数,需要在源程序的头部加上#include<math.h>。关于引用数学库,以下叙述中正确的是( )。(C)
A. 将数学库中sin函数的源程序插入到引用处,以便进行编译链接
B. 将数学库中sin函数链接到编译生成的可执行文件中,以便能正确运行
C. 通过引用math.h文件,说明sin函数的参数个数和类型,以及函数返回值类型
D. 实际上,不引用math.h文件也能正确调用sin函数
解析:考查文件包含处理。文件包含命令的功能是把指定的文件添加到预处理部分,从而把指定的文件和当前的源程序文件连接起来,该文件则包含了程序要调用的函数的声明。由此,选项A、B、D表述错误。答案选C。
4.有以下程序段:
int x,i;
for(i=l;i<=100;i++)
{ scanf(\\(A)
A. 最多可以输出100个非负整数
B. 当x<0时结束整个循环
C. 当x>=0时没有任何输出
D. pfintf函数调用语句总是被跳过
解析:continue语句只结束本次循环,而不是终止整个循环的执行,因此B选项错误;当x>=0时,程序执行printf(\\
5.有以下程序:
#include<stdio.h>
main( )
{
char s[]={\\(B)
A. 0
B. 2
C. 3
D. 5
解析:程序首先给字符数组s[]赋值为“012xy”,for循环语句的功能是遍历字符串,通过if条件语句对字符串中的小写字母计数,在符串中小写字母为2个,即n=2。因此B选项正确。
6.设有定义:int x=2;,以下表达式中,值不为6的是( )。(A)
A. 2*x,x+=2
B. x++,2*x
C. x*=(1+x)
D. x*=x+1
解析:A)选项中逗号表达式先计算第一表达式2*x,然后计算表达式x+=2的值,即x=x+2即4,整个逗号表达式为第二个表达式的值4,所以选择A)。B)选项中首先计算逗号表达式中第一表达式x++,此时x为3,在执行第二个表达式2*x=2*3=6,所以逗号表达式为第二个表达式的值6。C)选项的赋值表达式可以表示为x=x*(1+x)=2*(1+2)=6。D)选项中的表达式可以表示为x=x*(x+1)=2* 3=6。
7.有以下程序:
#include
int mul(int val)
{ static int init=1;
return init *=val;
}
main()
{ int i;
for(i=1;i<=5;i++)
printf(\\(A)
A. 1,2,6,24,120,
B. 1,2,3,4,5,
C. 1,1,1,1,1,
D. 1,2,4,6,8,
解析:static静态变量只在声明时初始化一次。mul()函数定义了累乘,第一次init=1,init*=val,第二次init=1,val=2,第三次init=2,val=3,第四次init=6,val=4,第五层init=24,val=5,因此结果为1,2,6,24,120。故答案为A选项。
8.在软件开发中,需求分析阶段产生的主要文档是( )。(B)
A. 可行性分析报告
B. 软件需求规格说明书
C. 概要设计说明书
D. 集成测试计划
解析:A)错误,可行性分析阶段产生可行性分析报告。C)错误,概要设计说明书是总体设计阶段产生的文档。D)错误,集成测试计划是在概要设计阶段编写的文档。B)正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。
9.若有定义:int a=3;double b=0.1263;char ch=’a’;,则以下选项中,叙述有错的是( )。(C)
A. 逗号表达式的计算结果是最后一个逗号之后的表达式的运算结果
B. 运算符%只能对整数类型的变量进行运算
C. 语句ch=(unsigned int)a+b;是对a与b之和进行强制类型转换,结果赋值给变量ch
D. 复合运算:a*=b+ch是将变量b、ch之和与a相乘,结果再给a赋值
解析:逗号表达式的计算结果是最后一个逗号之后的表达式的运算结果,选项A正确;运算符%是求模运算符,只能对整数类型的变量进行运算,选项B正确;复合运算a*=b+ch中,先计算b+ch的值,再将a与b+ch之和相乘,结果再赋值给a,选项D正确;语句ch=(unsigned int)a+b中,括号优先级最高,所以首先将a强制转换成无符号整型,再与b相加,结果赋值给ch,选项C错误;本题答案为C。
10.有以下程序:
#include
main()
{ int a=1,b=1;
for(;a一一;)
b一一;
printf(\\(A)
A. 一1,0
B. 0,0
C. 一1,一1
D. 1,1
解析:题干中语句for(;a一一;)的执行过程是,先判断表达式a一一是否为0,因为运算符“一一”在变量的后面,表示先进行其他操作,再让变量a减1,即判断a!=0成立,则进入循环,然后a减1,起始a=1不等于0,满足条件进入for循环,然后a自减1为0,b自减1为0,继续循环;再跳回for语句时,a!=0不成立,不会进入循环,但是a也要自减1为一1,循环结束;故最后输出a=一1,b=0,因此答案为A选项。
11.对于函数声明void fun(float array[],int*ptr);以下叙述正确的是( )。(A)
A. 函数fun的参数array,ptr都是指针变量
B. 函数fun的参数array是数组名,ptr是指针变量,它们有本质区别
C. 调用函数fun时,实参数组元素个数可以比形参array数组元素个数多
D. 调用函数fun时,传送给形参array的应是数组的所有元素
解析:fun( )函数两个参数:array和ptr,返回值为void类型,其中array是float数组名,ptr是整型指针变量,C语言中,数组名本身就是一个地址,作为形参时,数组退化成指针类型,所以array就是一个指针变量,选项A正确,B错误;调用函数fun( )时,实参数组元素的个数与形参array数组元素个数相同,选项C错误;
本文档预览:3600字符,共8488字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载