二级C语言选择题1.docx

上传人:b****7 文档编号:9012445 上传时间:2023-02-02 格式:DOCX 页数:17 大小:133.78KB
下载 相关 举报
二级C语言选择题1.docx_第1页
第1页 / 共17页
二级C语言选择题1.docx_第2页
第2页 / 共17页
二级C语言选择题1.docx_第3页
第3页 / 共17页
二级C语言选择题1.docx_第4页
第4页 / 共17页
二级C语言选择题1.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

二级C语言选择题1.docx

《二级C语言选择题1.docx》由会员分享,可在线阅读,更多相关《二级C语言选择题1.docx(17页珍藏版)》请在冰豆网上搜索。

二级C语言选择题1.docx

二级C语言选择题1

选择题

1.C语言的基本单位是( A )

A.函数

B.过程

C.子程序

D.子函数

2.结构化程序设计主要强调的是(D  )。

A.程序的规模

B.程序的效率

C.程序设计语言的先进性

D.程序的易读性

3.在面向对象方法中,(D  )描述的是具有相似属性与操作的一组对象。

 

A.属性

B.事件

C.方法

D.类

4.有下列二叉树,对此二叉树前序遍历的结果为( d )。

 

A.ACFXDBEYZ

B.ABEFXYZCD

C.ABCDEFXYZ

D.ABDYECFXZ

5.常采用的两种存储结构是(A  )。

A.顺序存储结构和链式存储结构

B.散列方法和索引方式

C.链表存储结构和数组

D.线性存储结构和非线性存储结构

6.算法分析的目的是( d )。

A.找出数据结构的合理性

B.找出算法中输入和输出之间的关系

C.分析算法的易懂性和可靠性

D.分析算法的效率以求改进

7.用链表表示线性表的优点是( C )。

A.便于随机存取

B.花费的存储空间较顺序存储少

C.便于插入和删除操作

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>=1)&&(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

C.-1

D.1

.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

D.3

【解析】因为a=2,b=-1,f(a)

因此正确选项为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

B.1

C.2

D.3

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

B.1

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||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-->0&&++x<5为真,z的值变为0。

x的值变为3,执行语句“y=y-1;”,y的值变为2;

当z=0,x=3时,表达式z-->0为假,表达式(z-->0&&++x<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,表示出错。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1