计算机等考二级C语言课后练习题及答案.docx

上传人:b****5 文档编号:11633679 上传时间:2023-03-29 格式:DOCX 页数:38 大小:34.25KB
下载 相关 举报
计算机等考二级C语言课后练习题及答案.docx_第1页
第1页 / 共38页
计算机等考二级C语言课后练习题及答案.docx_第2页
第2页 / 共38页
计算机等考二级C语言课后练习题及答案.docx_第3页
第3页 / 共38页
计算机等考二级C语言课后练习题及答案.docx_第4页
第4页 / 共38页
计算机等考二级C语言课后练习题及答案.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

计算机等考二级C语言课后练习题及答案.docx

《计算机等考二级C语言课后练习题及答案.docx》由会员分享,可在线阅读,更多相关《计算机等考二级C语言课后练习题及答案.docx(38页珍藏版)》请在冰豆网上搜索。

计算机等考二级C语言课后练习题及答案.docx

计算机等考二级C语言课后练习题及答案

2011计算机等级二级C语言课后练习题及答案

(1)

一、单项选择题

  1.C语言程序的执行,总是起始于【】。

  A)程序中的第一条可执行语句

  B)程序中的第一个函数

  C)main函数

  D)包含文件中的第一个函数

  分析:

在一个C语言源程序中,无论main函数书写在程序的前部,还是后部,程序的执行总是从main函数开始,并且在main函数中结束。

  本题正确答案为C。

  2.下列说法中正确的是【】。

  A)C程序书写时,不区分大小写字母

  B)C程序书写时,一行只能写一个语句

  C)C程序书写时,一个语句可分成几行书写

  D)C程序书写时每行必须有行号

  分析:

C语言严格区分大小写字母,如"A1"和"a1"被认为是两个不同的标识符,C程序的书写非常灵活,既可以一行多句,又可以一句多行,且每行不加行号。

  本题正确答案为C。

  3.下面对C语言特点,不正确描述的是【】。

  A)C语言兼有高级语言和低级语言的双重特点,执行效率高

  B)C语言既可以用来编写应用程序,又可以用来编写系统软件

  C)C语言的可移植性较差

  D)C语言是一种结构式模块化程序设计语言

  分析:

C语言是介于汇编语言和高级语言之间的一种语言,由于它可以直接访问物理地址,对硬件操作,所以C语言既可以编写应用程序,又可以开发系统软件,而且C程序可移植性好于汇编语言,程序清晰具有模块化的特点。

  本题正确答案为C。

  4.C语言源程序的最小单位是【】。

  A)程序行B)语句C)函数D)字符

  分析:

程序行、语句、函数都是由字符构成的,字符是C语言的最小单位。

  本题正确答案为D。

  5.以下四项中属于C语言关键字的是【】。

  A)CHARB)defineC)unsignedD)return

  分析:

C语言有32个关键字(或称保留字),它们都有特定的含意,并且由小写字母组成,所以选项A是错的,选项B不是保留字,选项D是return的错误拼写。

  本题正确答案为C。

6.十进制数2403转换成十六进制数为【】。

  A)963B)369C)953D)359

  分析:

十进制数化成十六进制数的方法是:

不断除以16,商0为止,倒取余数。

  本题正确答案为A。

  7.二进制数00110101转换成八进制数是【】。

  A)055B)065C)056D)152

  分析:

二进制数化成八进制数的方法是:

从右向左划分,将每3位二进制数书写成1位八进制数。

  本题正确答案为B。

  8.将二进制数1011011.011转换成十进制数是【】。

  A)91.75B)91.375C)91.125D)91.25

  分析:

二进制数化成十进制数的方法是:

各数字乘以权重再相加,题中整数部分为:

(1011011)2=1×26+1×24+1×23+1×21+1×20=64+16+8+2+1=91,小数部分为:

(0.011)2=0×2-1+1×2-2+1×2-3=0.25+0.125=0.375,再将两者合在一起得91.375。

  本题正确答案为B。

  9.计算机内部运算使用的数是【】。

  A)十进制数B)十六进制数C)二进制数D)八进制数

  分析:

在实际生活中找不到具有十个稳定状态的物理元件,而具有两种稳定状态的元件到处可见,如一个开关具有通电和断电两个稳定状态,计算机内部的元件正是以"1"代表通电,以"0"代表断电的,所以计算机内部运算使用的数是二进制数,至于八进制数和十六进制数是对二进制数的人为缩写。

  本题正确答案为C。

  10.一个字长的二进制位数是【】。

  A)2个BYTE,即16个bitB)3个BYTE,即24个bitC)4个BYTE,即32个bitD)随计算机系统不同而不同

  分析:

一个二进制位也称做1bit,八个二进制位称做1个BYTE,即所说的一个字节,BYTE和bit有固定的换算关系,但是计算机中的字长WORD和字节BYTE没有固定的换算关系,字长WORD是随CPU型号而异的。

  本题正确答案为D。

  11.在C语言系统中,假设int类型数据占2个字节,则double、long、unsignedint、char类型数据所占字节数分别多少【】。

  A)8,2,4,1B)2,8,4,1C)4,2,8,1D)8,4,2,1

  分析:

由上题知CPU字长决定了分配给各种类型变量多少个字节,当int类型占2个字节时,double、long、unsignedint、char型所占的字节分别为8、4、2、1个字节。

  本题正确答案为D。

  12.下面程序段执行结果是【】。

  inti=5,k;

  k=(++i)+(++i)+(i++);

  printf("%d,%d",k,i);

  A)24,8B)21,8C)21,7D)24,7

  分析:

k=(++i)+(++i)+(i++)表达式中,"++"号在i前面的有两个,所以在计算k之前,i要先增两次,即i变为7,然后再将3个7相加,使k得21,表达式中"++"号在i后面的有1个,所以得出k的值以后i又增1次变为8。

  本题正确答案为B。

  13.下面程序段执行结果是【】。

  inti=5;

  printf("%d,%d,%d",i,(++i)+(++i)+(i++),i);

  A)8,20,5B)8,21,5C)5,20,8D)5,21,8

  分析:

此题不能看作将12题中的k=(++i)+(++i)+(i++)代入printf函数,因为函数处理参数的顺序是从右向左,所以(++i)+(++i)+(i++)表达式的值不再是求7+7+7,而是为8+7+5=20。

  本题正确答案为A。

  14.下面程序段的输出结果是【】。

  inti=32769;

  printf("%d\\n",i);

  A)32769B)32767C)-32767D)输出不是确定的数

  分析:

int型变量表示数据的范围是-32768~+32767,赋值时比-32768小或比+32767大,都会发生溢出,溢出后存放的数值是:

正向溢出时,为该数减去模65536,负向溢出时,为该数加上模65536,所以本题输出为32769-65536=-32767。

  本题正确答案为C。

  15.下面的程序运行后输出为【】。

  main()

  {inta=-32769;

  ptintf("%8U\\n",a);

  }

  A)32769B)%8UC)32767D)-32767

  分析:

格式字符必须小写,题中的"%8U"不会当作格式控制符,而是原样输出,变量a将没有对应的格式说明,也不会送出。

  本题正确答案为B。

  二、填空题

  1.若以下程序的输出结果是13,请填空。

  main()

  {intx=016;

  printf("%d\\n",【1】);}

  分析:

在C语言中以0开头的数字是八进制数,016相当于十进制数14,执行printf语句时,输出项应为x的值减1。

  本题正确答案为【1】--x或x-=1。

  2.下面程序段的输出结果是【2】。

  intk=10;

  floata=3.5,b=6.7,c;

  c=a+k%3*(int)(a+b)%2/4;

  分析:

本题考查运算符的优先级概念,式中要先算(a+b)的值,再算强制类型变换,*、/、%是同级的要从左到右计算,最后算加法和赋值。

  本题正确答案为【2】3.500000

  3.若执行下面程序段后的输出为:

3,4,5,请填空。

  inta,b=3,c=5;

  a=b  printf("%d,%d,%d",a,b,c);

  分析:

本题考查条件运算符和增量运算符的概念,题中b  本题正确答案为【3】b++。

  4.C语言中的运算符,优先级最低的是【4】。

  分析:

与其它高级语言相比,在C语言中赋值号并不是优先级最低的,C语言中优先级最低的运算符是逗号运算符。

  本题正确答案为【4】逗号运算符。

  5.若下面程序的输出结果是4,请填空。

  main()

  {inti,j,k;

  k=0;i=j=-2;

  k+=-i--【5】;

  printf("%d\\n",k);

  }

  分析在C语言中当3个加号或3个减号连在一起时,中间的符号归属左边的变量,即-i---j相当于-(i--)-j。

  本题正确答案为【5】-j。

2011计算机等考二级C语言课后练习题及答案

(2)

一、单项选择题

  1.下面叙述不正确的是【】。

  A)C语句末尾必须有分号

  B)C语言中无论是整数还是实数都能准确的表示

  C)运算符“%”只能用于整数运算

  D)乘除运算符优先级高于加减运算符

  2.以下叙述正确的是【】。

  A)C语句前面必须有行号

  B)C程序中每行只能写一条语句

  C)C语言本身没有输入输出语句

  D)注释必须跟在一行语句的后面

  3.复合语句应用【】括起来。

  A)小括号B)方括号C)大括号D)尖括号

  4.将二进制数101101101111转换成十六进制数是【】。

  A)5557B)B6FC)7555D)F6B

  5.将十进制数0.625转换成二进制数是【】。

  A)0.111B)0.101C)0.5D)0.A

 6.C语言语句一行写不下时,可以【】。

  A)用逗号换行B)用分号换行C)用回车换行D)在任意一空格处换行

  7.C语言允许将一条语句写在两行上,下列语句不正确是【】。

  A)inta,B)intaC)intD)inta,b

  b;,b;a,b;;

  8.下面程序的输出是【】。

(“□”表示一个空格)

  inta=3366;

  printf("|%-08d|",a);

  A)|-0003366|B)|00003366|C)|3366□□□□|D)输出格式非法

  9.若有说明语句:

inta;floatb;,以下输入语句正确的是【】。

  A)scanf("%f%f",&a,&b);

  B)scanf("%f%d",&a,&b);

  C)scanf("%d,%f",&a,&b);

  D)scanf("%6.2f%6.2f",&a,&b);

  10.以下程序的输出结果是【】。

  main()

  {intx=11,y=11;

  printf("%d%d\\n",x--,--y);

  }

  A)11,11B)10,10C)10,11D)11,10

 11.将八进制数307转换成二进制数是【】。

  A)100110011B)11000111C)1100000111D)111000011

  12.执行下面程序段,给x、y赋值时,不能作为数据分隔符的是【】。

  intx,y;

  scanf("%d%d",&x,&y);

  A)空格B)Tab键C)回车D)逗号

  13.下面合法的语句是【】。

  A)inta=8,b;

  b=++a++;

  printf("%d,%d",a,b++);

  B)inta;

  printf("\\"%d\\"",scanf("%d",&a));

  C)chara;

  scanf("%c",&a);

  charb=scanf("b=%c",&b);

  D)charc=getchar();

  putchar((int)c);

  14.执行下面程序时,欲将25和2.5分别赋给a和b,正确的输入方法是【】。

  inta;

  floatb;

  scanf("a=%d,b=%f",&a,&b);

  A)25□2.5

  B)25,2.5

  C)a=25,b=5.5

  D)a=25□b=2.5

  15.与数学公式a•bx•y不等价的语句是【】。

  A)a*b/x*y

  B)a*b/x/y

  C)a*b/(x*y)

  D)a/(x*y)*b

 二、填空题

  1.表达式5%(-3)的值是【1】,表达式-5%(-3)的值是【2】。

  2.在C语言中,格式输入库函数为【3】,格式输出库函数为【4】。

  3.下面程序的输出结果是【5】。

  intx=-32769;

  printf("%d",x);

  4.执行下列程序的输出结果是【6】。

  main()

  {

  floata=1,b;

  b=++a*++a;

  printf("%f\\n",b);

  }

  5.执行下列程序的输出结果是【7】。

  main()

  {

  intx=5,y;

  y=++x*++x;

  printf("y=%d\\n",y);

  }

  参考答案

  一、选择题

(1)B

(2)C(3)C(4)B(5)B(6)D(7)D(8)C(9)C(10)D(11)B(12)D(13)D(14)C(15)A

  二、填空题【1】2【2】-2【3】scanf【4】printf【5】32767【6】6.000000【7】49

2011计算机等考二级C语言课后练习题及答案(3)

 一、单项选择题

  1.下面不属于C语言的数据类型是【】。

  A)整型B)实型C)逻辑型D)双精度实型

  分析:

和其它高级语言相比,C语言中没有逻辑型数据,也没有逻辑型变量。

  本题正确答案为C。

  2.C语言中,下列属于构造类型的是【】。

  A)整型B)实型C)指针类型D)结构体类型

  分析:

C语言中构造类型的数据有三种:

数组、结构体和共用体,数组是同类型数据的集合,结构体是不同类型的数据集合。

  本题正确答案为D。

  3.下列字符串不符合标识符规定的是【】。

  A)SUMB)sumC)3cdD)end

  分析:

标识符规定只能由26个英文字母(大小写均可),数字0~9和下划线组成,且不能以数字开头,题中的3cd不符合规定。

  本题正确答案为C。

  4.下面能正确表示八进制数的是【】。

  A)0x16B)029C)-114D)033

  分析:

选项A)以0x开头是十六进制数,选项B)虽然是0开头,但出现了数字9,选项C)是十进制数。

  本题正确答案为D。

  5.下面四个选项中,均是合法实数的选项是【】。

  A)2e-4.2B)-0.50C)0.2e-.5D)-e5

  分析:

实数有两种表示形式:

小数形式和指数形式,小数形式必须有小数点,指数形式中,字母e之前必须有数字,e之后必须是整数。

选项A)中的"2e-4.2",选项C)中的"0.2e-.5",选项D)中的"-e5"均是不合法的。

  本题正确答案为B。

 6.C语言中,字符型数据在内存中存储形式是【】。

  A)原码B)反码C)补码D)ASCII码

  分析:

C语言中int型数据是以补码形式存放的,字符型数据是以ASCII码形式存放的。

  本题正确答案为D。

  7.下列正确的字符型常量是【】。

  A)"a"B)′\\\\′C)"\\r"D)277

  分析:

字符常量的定义是用单引号括起来的一个字符,A和C的定界符不对,D超过了char型数据的表示范围,′\\\\′是转义字符。

  本题正确答案为B。

  8.若有说明语句charch1=′\\x41′;则ch1【】。

  A)包含4个字符B)包含3个字符C)包含2个字符D)包含1个字符

  分析:

"\\x41"中的"41"是十六进制数,即十进制的65,题中ch1存放的65是字母"A"的ASCII码。

  本题正确答案为D。

  9.下列程序段输出的字符串长度为【】。

  printf("\\\\aaa\\′ccc\\bddd\\"");

  A)11B)12C)13D)17

  分析:

\\\\、\\′、\\b和\\"为转义字符,程序输出结果为:

\\aaa′ccddd"。

  本题正确答案为A。

  10.下列运算符中,要求运算对象必须是整数的是【】。

  A)/B)*C)%D)!

  分析:

题目中"/"、"*"、"!

"的运算对象既可以整数,也可以是实数,只有取余数运算符"%"要求运算对象必须是整数。

  本题正确答案为C。

11.下面合法的赋值语句是【】。

  A)x+y=2002;B)ch="green";C)x=(a+b)++;D)x=y=0316;

  分析:

赋值号左端不能为表达式,选项A)是错的;赋值号不能将字符串赋给某个变量,选项B)也是错的;增量运算符“++”不能用于表达式,选项C)也是错的。

  本题正确答案为D。

  12.已知a为int型,b为double型,c为float型,d为char型,则表达式a+b*c-d/a结果的类型为【】。

  A)int型B)float型C)double型D)char型

  分析:

不同类型数据混合运算的转换规律是:

运算前float型数据会自动转换为double型,char型数据会自动转换为int型。

运算时int型数据和double型数据要先化为相同类型,即double型,运算结果也为double型。

  本题正确答案为C。

  13.执行以下程序段后的输出结果是【】。

  intx=0xcde;

  printf("M,%4o,%4x\\n",x,x,x);

  A)3294,6336,cdeB)3294,6336,xcdeC)3294,06336,0xcdeD)3294,6336,0cde

  分析:

0xcde是十六进制数,写成二进制数形式为:

110011011110,按八进制送出时,是从右向左3位二进制数写成1位,按十六进制形式送出时,是从右向左4位二进制数写成1位。

  本题正确答案为A。

  14.下面的程序运行后输出为【】。

  #include

  #include

  main()

  {inta,b;

  floatc;

  b=5;c=6;c=b+7;b=c+1;

  a=sqrt((double)b+c);

  printf("%d,%f,%d",a+6,c,b);

  }

  A)11.000000,12.000000,13.000000

  B)11.000000,12.000000,13

  C)11.0000000,12,13

  D)11,12.000000,13

  分析:

C语言允许将一种类型的数据赋给另一种类型的变量,但是变量的类型并不会因为赋值而发生改变,如本题中将b+7,即12赋给float型变量c,c值应为12.000000而不是整数12,同样a=sqrt((double)b+c),赋值号右边是双精度数,但由于a是整形变量,故a的值为5。

  本题正确答案为D。

  15.执行以下程序后x的值为【】。

  unsignedintx=65535;

  printf("%d\\n",x);

  A)65535B)1C)有错误D)-1

  分析:

题中将x定义成无符号整数,并且已初始化为:

111111*********1,若按%d格式输出,则最高位的1被当成了符号,111111*********1成了负数的补码,输出结果为-1。

  本题正确答案为D。

 二、填空题

  1.下面程序段的功能是输出大写字母对应的小写字母的ASCII码,请填空。

  charch;

  scanf("%c",&ch);

  ch=(ch>=′A′&&ch<=′Z′)?

(【1】):

ch

  printf("【2】\\n",ch);

  分析:

题目中条件运算为判断输入字母是否为大写,当ch>=′A′&&ch<=′Z′为真时,将其转换成对应的小写字母,需ASCII码值加上32,已知题意是将大写字母对应的小写字母ASCII值输出,所以printf语句中的输出格式应为十进制格式。

  本题正确答案为【1】ch+32,【2】%d。

  2.下面程序段的执行结果是x=【3】,y=【4】。

  inta=3,b=5,x,y;

  x=a+1,b+6;

  y=(a+1,b+6);

  printf("x=%d,y=%d",x,y);

  分析:

此题考查逗号表达式的概念,因逗号运算符的优先级比赋值号还低,所以执行x=a+1,b+6时,x得到的是a+1的值。

  本题正确答案为【3】4,【4】11。

  3.下面程序执行后k的值为【5】。

  inta=1,b=2,c=3,d=4,k;

  k=a>b?

a:

c>d?

c:

d

  分析:

因题中a>b的值为假,故求解表达式k=a>b?

a:

c>d?

c:

d相当于求k=a>b?

a:

(c>d?

c:

d)。

  本题正确答案为【5】4。

  4.已知:

inta=5;则执行a+=a-=a*a;语句后,a的值为【6】。

  分析:

a+=a-=a*a的运算顺序是从右向左,相当于求a+=(a-=a*a),其中小括号内的运算得a=5-5*5即a=-20,下一步再求a+=a,即a=a+a,将-20代入得a=-40。

  本题正确答案为【6】-40。

  5.下面程序的运行结果是x=【7】,y=【8】。

  main()

  {floatx=4.9;inty;

  y=(int)x;

  printf("x=%f,y=%d",x,y);}

  分析:

强制类型变换并不改变x的原值,x仍为4.9,而变换得到的是中间结果,此题将中间结果赋给了y,另外注意是舍弃小数部分,而不是四舍五入。

  本题正确答案为【7】4.900000【8】4。

2011计算机等考二级C语言课后练习题及答案(4)

 一、单项选择题

  1.对if语句中表达式的类型,下面正确的描述是【】。

  A)必须是关系表达式

  B)必须是关系表达式或逻辑表达式

  C)必须是关系表达式或算术表达式

  D)可以是任意表达式

  分析:

C语言中if语句的表达式可以是任意类型,只要表达式的值非0就算作真,是0就作为假。

  本题正确答案为D。

  2.多重if_else语句嵌套使用时,寻找与else配套的if方法是【】。

  A)缩排位置相同的if

  B)其上最近的if

  C)下面最近的if

  D)同行上的if

  分析:

多重if_else嵌套时,else总是与它上面最近的if配对。

  本题正确答案为B。

  3.以下错误的i

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

当前位置:首页 > 外语学习 > 英语学习

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

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