二级C语言选择题专项强化真题试卷38
选择题
1.若有如下定义语句:
double x,y,*px,*py;
执行了px=&x;py=&y;之后,正确的输入语句是( )。(C)
A. scanf(\\
B. scanf(\\
C. scanf(\\
D. scanf(\\
解析:输入函数scanf的标准格式是:scanf(格式控制,地址列表),AD两项中地址列表格式不正确,应为&x,&y。格式控制和地址列表间应该用逗号隔开,B项也错误。
2.有三个关系R、S和T加下:
(B)
A. 自然连接
B. 差
C. 交
D. 并
解析:关系T中的元组是R关系中有而S关系中没有的元组的集合,进行的是差的运算。
3.下列叙述中正确的是( )。(D)
A. 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B. 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C. 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D. 循环队列中元素的个数是由队头指针和队尾指针共同决定的
解析:循环队列有队头和队尾两个指针,但是循环队列仍是线性结构,因此A错误;在循环队列中需要队头与队尾两个指针来共同反映队列中元素的动态变化情况,因此B与C错误,故本题答案为D。
4.有以下程序:
#include<stdio.h>
void fun(int a[],int n)
{
int i,t;
for(i=0;i<n/2;i++)
{
t=a[i]:
a[i]=a[n—1—i];
a[n—1—i]=t;}
}
main()
{
int k[10]={1,2,3,4,5,6,7,8,9,10,},i;
fun(k,5);
for(i=2;i<8;i++)
printf(\\(D)
A. 345678
B. 876543
C. 1098765
D. 321678
解析:函数fun()的功能是把数组a中的前n个元素逆序排列,所以调用函数fun(k,5)结束后,数组k中的数据为{5,4,3,2,1,6,7,8,9,10},输出数组第3个到第8个元素之间的数据,所以选项D正确。
5.若有定义语句:
char*s1=\\(B)
A. if(strcmp(s1,s2)!=0)puts(s2);
B. if(stremp(s1,s2)!=O)puts(s1);
C. if(strcmp(s1,s2)==1)puts(s1);
D. if(stremp(s1,s2)==0)puts(s1);
解析:strcmp(s1,s2)是字符串比较函数,比较规则是两个字符串自左向右逐个字符相比(按照ASCIl码值大小),以第一个不相同的字符的大小作为比较结果。因为’O’<’o’,所以strcmp(s1,s2)为负值,只有B选项正确。
6.以下函数实现按每行8个输出w所指数组中的数据:
#include<stdio.h>
void fun(int*w,int n)
{int i;
for(i=0;i<n;i++)
{
______________
prinff(\\(C)
A. if(i/8==0)prinff(\\
B. if(i/8==0)continue;
C. if(i%8==0)prinff(\\
D. if(i%8==0)continue;
解析:要按照每行8个输出数据的话,横线处语句的功能应付该为:当i是8的倍数时(即i%8==0),输出一个换行符。因此C选项正确。
7.以下选项中,能用作数据常量的是( )。(A)
A. 115L
B. 0118
C. 1.5e1.5
D. o115
解析:A)选项中115L表示115是长整型数据,合法。B)选项是八进制常量的表示方法,但是在八进制中不能含有数字8,所以B)错误。C)选项中e后面应该是整数不能是小数1.5,所以C)错误。D)选项中八进制常量应该是数字“0”开始,而不是字母“o”开始。
8.设有定义: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。
9.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是( )。(A)
A. 函数的形参和实参分别占用不同的存储单元
B. 形参只是形式上的存在,不占用具体存储单元
C. 同名的实参和形参占同一存储单元
D. 函数的实参和其对应的形参共占同一存储单元
解析:本题重点考察的是函数的形参和实参。在定义函数时函数名后面括弧中的变量名称为“形式参数”(简称形参),在主调函数中调用一个函数时,函数名后面括弧中的参数(可以是一个表达式)称为“实际参数”(简称实参)。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。因此A选项正确。
10.下面属于应用软件的是( )。(A)
A. 人事管理系统
B. Oracle数据库管理系统
C. C++编译系统
D. ios操作系统
解析:系统软件是管理计算机的资源,提高计算机的使用效率,为用户提供各种服务的软件,包括各种系统开发、维护工具软件。应用软件是为了应用于特定的领域而开发的软件。人事管理系统属于应用软件。Oracle数据库管理系统、C++编译系统、ios操作系统是系统软件。故本题答案为A选项。
11.有3个关系R、S和T如下:
(A)
A. 交
B. 差
C. 并
D. 选择
解析:用于查询的3个操作无法用传统的集合运算表示,引入的运算为投影运算、选择运算、笛卡儿积。常用的扩充运算有交、除、连接及自然连接等。选择:从关系中找出满足给定条件的元组的操作称为选择,题目中无给定条件,故D选项错
本文档预览:3600字符,共8335字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载