计算机二级c语言模拟题,2016下半年计算机二级C语言模拟试题及答案

计算机二级C语言基础知识有哪些?下面yjbys小编为大家分享的是计算机二级C语言知识模拟试题,希望对同学们备考计算机考试有所帮助!

1、以下叙述中正确的是

A.只要适当地修改代码,就可以将do-while与while相互转换

B.对于“for***表达式1;表达式2;表达式3***循环体”首先要计算表达式2的值,以便决定是否开始循环

C.对于“for***表达式1;表达式2;表达式3***循环体”,只在个别情况下才能转换成while语句

D.如果根据算法需要使用无限循环***即通常所称的“死循环”***,则只能使用while语句

参考答案:A

参考解析:B选项中,for语句中需要先求解先求解表达式1;C选项中,for语句使用最为灵活,它完全可以取代while语句;D选项中,对于死循环,也可以使用for语句。因此A选项正确。

2、以下叙述中正确的是

A.两个字符串可以用关系运算符进行大小比较

B.函数调用strlen***s***;会返回字符串S实际占用内存的大小***以字节为单位***

C.C语言本身没有提供对字符串进行整体操作的运算符

D.当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和

参考答案:C

参考解析:本题考查字符串处理函数strien、strcat、strcmp。B选项中strlen返回的是字符串s实际占用内存大小加上结尾符,A选项中不能用关系运算符进行大小比较,可以使用strcmp。D选项当使用连接函数strcat时,内存空间会减少一个字符位置。

3. 下列不正确的定义是***  ***。

A、int *p=&i,i;

B、int *p,i;

C.int i,*p=&i;

D、int i,*p;

参考答案:A

参考解析:选项A先定义一个整型指针变量p,然后将变量i的地址赋给p。然而此时还未定义变量i因此编译器无法获得变量i的地址。***A与C对比,选项C先定义变量i,则在内存中为i分配空间,因此i在内存空间的地址就可以确定了;然后再定义p,此时可以为p赋i的地址,C正确***

4.下列数据中属于“字符串常量”的是***  ***。

A、“a”

B、{ABC}

C、‘abc\0’

D、‘a’

参考答案:A

参考解析:若干个字符构成字符串

在C语言中,用单引号标识字符;用双引号标识字符串。选项B,C,分别用{}和’’标识字符串。选项D,标识字符。

5.已知char x[]="hello", y[]={'h','e','a','b','e'};, 则关于两个数组长度的正确描述是 .

A、相同

B、x大于y

C、x小于y

D、以上答案都不对

参考答案:B

参考解析:can'kaoC语言中,字符串后面需要一个结束标志位'\0',通常系统会自动添加。

对一维数组初始化时可采用字符串的形式***例如本题数组x***,也可采用字符集合的形式***例如本题数组y***。在以字符串形式初始化时,数组x不尽要存储字符串中的字符,还要存储字符串后的结束标志位,因此数组x的长度为6;在以字符集合形式初始化时,数组y,仅存储集合中的元素,因此数组y长度为5

6、若有定义语句:char a='\82';则变量a***  ***

A.说明不合法

B.包含1个字符

C.包含2个字符

D.包含3个字符

参考答案:B

参考解析:char a='\82',定义字符量a,char型变量值为1个字节长度,并从右侧开始运算,所以a的’值应为'2'。因此B选项正确。

7、 以下叙述中正确的是

A.对于逻辑表达式:a++|| b++,设a的值为1,则求解表达式的值后,b的值会发生改变

B.对于逻辑表达式:a++&&b++,设a的值为0,则求解表达式的值后。b的值会发生改变

C.else不是一条独立的语句,它只是if语句的一部分

D.关系运算符的结果有三种:0,1,-1

参考答案:C

参考解析:B选项和A选项中,&&、||都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值。而且&&、||的优先级比++高,所以题中只需判断a的值即可知道符合表达式的真假;D选项中,关系运算符的结果有“真”和“假”两种。因此c选项正确。

8、 以下选项中合法的c语言常量是*** ***。

A.,C—STR’

B.2014.1

C.”\l.0

D.2EK

参考答案:B

参考解析:所谓常量是指在程序运行的过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项A是字符串,但使用单引号,错误,选项c,D,为实型常量中指数形式,但指数形式e***E***之前必须是数字,之后必须为整数,错误。故答案为B选项。

9. 若“int n; float f=13.8;”,则执行“n=***int***f%3”后,n的值是*** ***

A、1

B、4

C、4.333333

D、4.6

参考答案:A

参考解析:“***int***f“表示将f中的值强制类型转换为整型,即将13.8的小数部分舍掉,转换为13;然后计算13%3,结果为1,再将结果赋给变量n,因此n的值为1

10.以下能对一维数组a进行初始化的语句是:*** ***

A、int a[5]=***0,1,2,3,4,***

B、 inta***5***={}

C、 int a[3]={0,1,2}

D、 int a{5}={10*1}

参考答案:C

参考解析:详见教材P145,一维数组的定义、初始化

选项B,D,常量表达式只能放在中括号 [ ]中

选项A,数组可以看做是若干个相同数据类型元素的有序集合,因此以集合的形式对其初始化,使用{ }对其初始化,选项A用了******.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值