试题

计算机二级《C语言》练习题与答案

时间:2024-06-02 02:37:25 试题 我要投稿

2016年计算机二级《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用了().

【计算机二级《C语言》练习题与答案】相关文章:

计算机二级《C语言》基础练习题及答案03-23

计算机二级《C语言》练习题及答案201603-09

计算机二级《C语言》基础练习题及答案02-06

2016计算机二级《C语言》练习题及答案03-26

计算机二级考前练习题及答案(C语言)201703-22

2016年计算机二级考试C语言练习题及答案03-29

计算机二级C语言模拟试题及答案12-08

计算机二级《C语言》试题及答案201611-21

2017年计算机二级C语言备考练习题及答案03-17