二级C语言选择题1Word文件下载.docx
- 文档编号:22148577
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:17
- 大小:133.78KB
二级C语言选择题1Word文件下载.docx
《二级C语言选择题1Word文件下载.docx》由会员分享,可在线阅读,更多相关《二级C语言选择题1Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
D.数据元素的物理顺序与逻辑顺序相同
8.能正确表示“当X的取值在[1,10]和[100,110]范围内为真,否则为假”的表达式是( c
)。
【解析】本题考查逻辑与(&&)和逻辑或(||)运算符的使用。
x值在[1,10]之间,C语言中可以写成“(x>
=1)&&(x<
=10)”;
x值在[100,110]之间,C语言表达式应写成“(x>
=100)&&(x<
=110)”;
[1,10]和[100,110]满足任意条件就可以,所以是逻辑或的关系,因此只要将前两个表达式用逻辑或运算符连接起来即可,所以最后的表达式:
(x>
=10)||(x>
=l00)&&(x<
=110)。
9.可在C程序中用作用户标识符的一组标识符是( B )。
10.
出结果是( d)。
A.无输出
B.结果是不确定
C.-1
D.1
【解析】因为在逻辑表达式中,两边的赋值表达式都成立,即值为1,故选择D选项。
11.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是( C )。
A.C=b=a;
B.(a=c)||(b=c);
C.(a=c)&&.(b=c);
D.a=C=b;
12.以下程序的输出结果是d )。
a=a-a*aa=3-3*3;
=-6;
a=a+a;
=-6+(-6)=(-12);
A.-6
B.12
C.0
D.-12
13.以下能正确定义一维数组的选项是(b)。
13.B。
【解析】数组下标从0开始,A选项中所赋值的个数超过了数组的长度;
C选项中定义a为字符型变量,而不是数组,赋值错误;
D选项中,整型数组不能赋字符串。
14.设intx=7,则~x的值是(a )。
A.-8
B.7
.A。
【解析】本题主要考查按位求反运算和C语言正负数的表示。
“0”代表正数,“1”代表负数;
x=7的二进制为00111,第一个0代表正数,~x为ll000,第一个1代表负数,值为8。
15.在下列给出的表达式中,与whⅡe(E)中的(E)不等价的表达式是(b )。
A.(!
E==0)
B.(E>
0||E<
0)
C.(E==0)
D.(E!
=0)
16.对两个数组a和b进行下列初始化:
则下列叙述正确的是( c )。
A.数组m与数组n完全相同
B.数组m与数组n长度相同
C.数组m比数组n长1
D.数组m与数组n中都存放字符串
17.假定所有变量均已正确说明,下列程序段运行后x的值是(b)。
A.11
B.4
C.12
D.3
17.B。
【解析】本题考查if…else语句。
if条件为真则执行后面的表达武,如果if为假则执行else语句。
18.有以下程序:
程序的输出结果是( d )。
19.下列程序的输出结果是(c )。
A.2143
B.1212
C.1234
D.2112
20.有下列程序:
执行后的结果是(d )。
A.输出字符a的ASCⅡ码
B.输出字符C的ASCⅡ码
C.输出字符C
D.程序出错
21.下列选项中非法的字符常量是( b )。
22.以下程序的输出结果是(b)。
A.123456780
B.123456780
C.12345678
D.147
23.以下程序的输出结果是(d )。
24.有以下程序:
程序的输出结果是(c )。
A.0
B.1
C.2
【解析】因为a=2,b=-1,f(a)
<
b)中a%b为假,便不执行下面的if..else,直接运行printf(″%d\n″,c);
输出结果是2。
因此正确选项为c。
25.
=r;
”,则以下正确的叙述是(b)。
A.两个*P含义相同,都说明给指针变量P赋值
B.在“doubler=99,*p=&r;
”中,把r的地址赋给了p所指的存储单元
C.语句“*p=r;
”把变量r的值赋给指针变量p
D.语句“*p=r;
”取变量r的值放回r中
26.以下程序的输出结果是*。
(b)
A.0
27.若希望下列的程序运行后输出25,程序空白处的正确选项是(d)。
【解析】要想使程序输出25,则j-40=25,j=65,而j初值是50,所以填入for循环的语句,使引用的数组元素累加65-50=15即可。
D选项中,i下标从0开始,i=2指向第3个数50+a[2]=50+10=60,继续循环60+a[3]=60+5=65,此时i4跳出,循环结束。
28.若二维数组a有m列,则在a[i][j]前的元素个数为( b )。
A.i*m+j-1
B.i*m+j
C.j*m+i
D.i*m+j+1
【解析】首先分两块,逗号前面的是第一块,先执行,逗号后面的是第二块,后执行;
两个块中,括号里的先执行,a-=a-5;
//执行前’a=0,执行后,a-=-5,a=5;
c=a;
//c=5;
a=b;
//a=b=0;
b+3;
//执行,但是不修改任何数字。
所以,最后结果是:
0,0,5。
B选项符合结果。
29.若有以下程序段:
执行后的输出结果是(b)。
A.3,0,-10
B.0,0,5
C.-10,3,-10
D.3,0,3
30.定义结构体数组:
以上程序段的输出结果为( a)。
A.2A3N4A5U
B.112A3H4I
C.1A2N3A4U
D.2H3A4H5I
31.有以下程序:
程序的输出结果是( a)。
A.6
B.8
C.4
D.2
32.有以下程序:
程序运行后的输出结果是(a)。
A.b
B.aa
C.Aa
D.Bb
【解析】函数fun的作用是将指针a指向指针b的内容,然后将该内容加1。
执行语句“fun(p1,p2);
”后,pl和p2指向的地址并未改变,只是将p2指向的存储单元的值增加1。
所以,答案是A。
33.有以下程序:
执行程序时,给变量x输入10,程序的输出结果是a )。
A.55
B.54
C.65
D.45
【解析】函数intfun(intn)的功能是求1+2+…+n的值并返回。
所以执行程序时,给变量x输入10后,执行语句“x=fun(x);
”,x的值将变为1到10中10个整数的累加和,即55。
34.有以下程序段:
以上程序段的输出结果是( d)。
A.9
C.11
D.10
【解析】因为首先k-2,然后你进行一次循环后,k自增两次,变成4,所以这时候s又成l了。
然后当k-4的时候,s=1,j=4,然后执行内层循环,s=1+4,然后j自增等于5,s=5+5,然后j再自增为6,跳出内层循环。
k自增两次后等于6,不成立,跳出外层循环。
然后输出s的值,即为10。
因此正确选项为D。
35.以下程序的输出结果是(b )。
A.4211
B.0008
C.4678
D.8888
36.有以下程序:
【解析】x的值为十进制数102,而y的值为八进制数012,根据题意将y用十进制表示为10%md,in为指定输出数据的宽度,若位数小于m则左端补以空格,若位数大于in则按实际输出,所以答案是C。
执行后输出结果是(c)。
A.10,01
B.02.12
C.102,10
D.02,l0
37.有以下程序:
程序执行后的输出结果是( b )。
A.3,2,0
B.3,2.-1
C.4,3,-1
D.5,-2.-5
38.有以下程序片段:
其能正确表示的数学函数关系是(c)。
39.下面程序的功能是输出以下形式的金字塔图案:
在横线处应填人的是( b )。
A.i
B.2*i一1
C.2*i+1
D.i+2
40.函数hell(fp)的作用是( a )。
A.得到fp所指向文件的当前读写位置
B.初始化流式文件的位置指针
C.移动硫式文件的位置指针
D.以上答案均正确
答案与解析
1.A。
【解析】C语言是函数式的语言。
它的基本组成单位是函数,在C语言中任何程序都由一个或者多个函数组成。
2.D。
【解析】程序不光,是编写完就结束了,为了测试和维护程序,往往还需其他人阅读和跟踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一、效率第二”。
3.D。
【解析】类(class)描述的是具有相似属性与操作的一组对象,具体对象是类的实例。
4.D。
【解析】所谓二叉树的前序遍历是指先访问根结点,再访问左子树,最后访问右子树,可知选项D正确。
本题中序为DYBEAFCZX,后序为YDEBFZXCA。
5.A。
【解析】线性表的存储通常要用两种存储结构:
顺序存储结构和链式存储结构。
6.D。
【解析】算法分析是指对一个算法的运行时间和占用空间做定量的分析,计算相应的数量级,并用时间复杂度和空间复杂度表示。
分析算法的目的就是要降低算法的时间复杂度和空间复杂度,提高算法的执行效率。
7.C。
【解析】数据的存储结构有顺序存储结构和链式存储结构两种。
不同存储结构的数据处理效率不同。
链表采用链式存储结构,元素的物理顺序并不连续,对于插入和删除无须移动元素,很方便,当查找元素时就需要逐个元素查找,因此查找的时间相对更长。
9.B。
【解析】C语言中用户标识符不能与C编译系统已经预定义的、具有特殊用途的保留标识符(即关键字)同名。
选项A,define,void为关键字;
选项C,for,case为关键字;
选项D,D0为关键字。
11.C。
【解析】选项A是先将a的值赋给变量b,再将变量b的值赋给变量C,不合题意;
B选项中由于c的值不为0,在将c的值赋给变量a后,表达式a=c的值为1,不再对表达式b=c计算;
对于C选项,表达式a=c的值为1,再求表达式b=C的值为1,然后进行逻辑与运算;
D选项将b的值赋给c后再赋给a,故选择C选项。
12.D。
【解析】本题可以写成:
a+a+(a-(a*a)),因为*的优先级最高,其次是-=的,+的优先级最低,所以先求a-=a*a=9,表达式变为a+a+-=9,即a=a-9=-6,再次变为a+(-6)=-12,故选择D选项。
15.B。
【解析】在while(E)中,表达式E可以是C语言中任意合法的条件表达式,但不能为空,由它来控制循环体是否执行。
在选项B中表达式E>
0是一个逻辑表达式。
16.C。
【解析】在m数组中赋值的是字符串,其长度为7,末尾有结束符ˊ\0ˊ,故字节数为8,而n数组中赋的是字符,其长度为7,故C选项正确。
18.D。
【解析】{intk=-3;
if(k<
=0)printf(″****\n″)elsewind(″&&&&\n″);
)中printf(″****\n″)缺少分号,因此会报编译错误。
19.C。
【解析】当执行fun函数时,因为参数传递时是地址传递,因此形参值的改变会影响实参中的数,在执行fun函数时先输出12,接着把*x赋3,*y赋4,此时带回主函数中,输出的值为34。
20.D。
【解析】因为字符数组s[];
中的数组名S表示的是一个地址常量。
所以语句“s+=2;
”不能将指针在当前位置的基础上再向后移动两位,因而程序编译时出错。
21.B。
【解析】水平制表符中,'
\t'
表示的是横向跳若干格;
选项B中,ˊ\039ˊ错误,ˊ\039ˊ是八进制形式表的字符,最大数为7,但其中出现ˊ9ˊ,ˊ,ˊ是字符逗号;
选项D中,ˊ\nˊ表示的是换行。
22.B。
【解析】第一个for循环的作用是让P指向每行的首地址,第二个for循环的作用是把它指向的字符串输出,故选择B选项。
23.D。
【解析】当k=1时,循环成立,输出w[1]的数组即EFGH,接着执行k++后k为2;
当k=2时,循环成立,输出w[2]的数组即IJKL,接着执行k++后,k为3;
当k=3时,循环不成立,退出。
25.B。
【解析】在定义*p=&r时,是表示r的地址赋给了P所指的存储单元,因此选项B正确。
26.B。
【解析】
(x&1)&&(z<
ˊ2ˊ)=(0.5&1)&&(ˊaˊ<
ˊzˊ)=1&&1=1,故选择B选项。
28.B。
【解析】二维数组的元素可以看成是按矩阵形式存放的,数组第一维的下标是i,说明它前面还有i行,有i*m个元素,数组第二维的下标是j,说明它静面还有j列,有j
个元素,所以共有i*m+j个元素。
30.A。
【解析】本题主要考查结构体数组的使用。
x[i].num为结构体xl-i]中的hum成员,x[i].num[2]是结构体x[i]中name成员的第3个元素。
程序执行循环过程时:
第1次循环,i=1,输出x[i].num,x[1].name[2]的值;
第2次循环,i=2,输出x[2].num,x[2].name[2]的值,即3N;
第3次循环,i=3,输出x[3].num,x[3].name[2]的值,即4A;
第4次循环,i=4,输出x[4].num,x[4].name[2]的值,即5U。
31.A。
【解析】p=a,相当于重新把a中的内容赋给a本身,所以a[2]=6。
35.B。
【解析】本题考查switch,case语句,当k-0时,循环体成立,执行switch后表达式的值为ˊ1ˊ,执行caseˊ1ˊ,i的值为0,因为没有break语句,继续执行其后的语句,到最后一个语句时i的值为3,此时v[i]++,v[3]=1,接着执行k++后,k的值为1,当k=1时,循环成立。
执行switch后的表达式的值为ˊ2ˊ,执行caseˊ2ˊ,i的值为1,因为没有break语句,继续执行其后的语句,到最后一个语句时,i的值为3,此时v[i]++,v[3]=2,接着执行k++后,k的值为2,依次下去,caseˊ4ˊ也会执行,最后i的值一定为3,到v[3]=8时循环结束,而v[o]~v[2]的值一直没有变化,故选择B选项。
37.B。
【解析】while语句执行如下:
当z=3,x=0时,表达式z-->
0&&++x<
5为真,z的值变为2,x的值变为1,执行语句“y=y-1;
”,y的值变为4;
当z=2,x=l时,表达式z-->
0&&++x<
5为真,z的值变为1,x的值变为2,执行语句“y=y-1;
”y的值变为3;
当z=1,x=2时,表达式z-->
5为真,z的值变为0。
x的值变为3,执行语句“y=y-1;
”,y的值变为2;
当z=0,x=3时,表达式z-->
0为假,表达式(z-->
5)为假,z的值为-1,不进行++x<
5的判断,不执行语句y=y-1;
;
所以x的值为3,y的值为2,z的值为-1。
答案为B。
38.C。
【解析】y的初始值为~1,当x不等于0时,给y赋值为1,也就是这时x>
0和x>
0都为1,然后如果x>
0时y的值又赋值为1,注意后面的else语句是跟if(x>
0)y=1相匹配,就是说除了x>
0y=1之外,其他的情况y都为0。
39.B。
【解析】通过观察可知图形共4行,主函数中通过一个for循环四次,输出4行。
第一行输出3个空格和1个“*”,第2行输出2个空格和3个“*”,第3行输出3个空格和5个“*”,第四行输出7个“*”,主函数中通过第二个循环控制每行的输出空格数,第三个for循环控制输出的“*”的个数,总结规律:
每行输出的“*”的个数,总比前一行的多2个,且第一行的个数为1,可以断定每行输出的“*”的个数组成了一个公差为2的等差数列,所以每行输出“*”的个数即该等差数列的通项,故该空格处应该填写2*i-1。
40.A。
【解析】位置指针当前值函数ftell()的基本调用格式为ftell(fp)。
ftell函数的功能:
得到fp所指向文件的当前读写位置,即位置指针的当前值,如果函数的返回值为-1L,表示出错。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 选择题