计算机等级考试过不过?根源不在于题目难不难,而是在于你刷计算机等级考试题库努不努力!赶紧努力复习以下的二级C语言试题。
1.以下定义语句中正确的是
A.int a =b =0;
B.char A = 65 + 1,b='b';
C.float a = 1,*b=&a,*c=&b;
D.double a = 0.0;b=1.1;
参考答案:B
参考解析:
A选项中定义时赋值不能用连等。C选项中变量C和&b的类型不匹配。D选项中变量b前是分号,所以变量b没有类型,即未定义。B为变量定义时赋值的正确表达形式
2.以下选项中正确的定义语句是 ( )
A.doublea;b;
B.doublea=b=7;
C.doublea=7,b=7;
D.double,a,b;
参考答案:C
参考解析:
C语言中语句定义的一般格式为:类型说明符变量1,变量2,…,变量n;变量在定义时初始化赋值语句的定义格式为j类型说明符变量1=表达式,变量2一表达式,…,变量n一表达式;
3.已知char a;int b;float C;double d;则表达式a-b+c-d结果为( )型。
A.double
B.float
C.int
D.char
参考答案:A
参考解析:
C语言中允许进行不同数据类型的混合运算,但在实际运算时,要先将不同类型的数据转化成同一类型再进行运算。类型转换的一般规则是:①运算中将所有char型转换成int型,float型转换成double型;②低级类型服从高级类型,并进行相应的转换,数据类型由低到高的顺序为:char->int->unsigned->long.>float->double;③赋值运算中最终结果的类型,以赋值运算符左边变量的类型为准,即赋值运算符右端值的类型向左边变量的类型看齐,并进行相应转换。
4.有以下程序段
int j; float y; char name[50];
scanf("-%f%s",&j,&y,name);
当执行上述程序段,从键盘上输入55566 7777abc后,y的值为( )
A.55566
B.566
C.7777
D.566777
参考答案:B
参考解析:
因为在输入格式控制符中指定变量j的输入格式控制符为“%2d”,即变量j所占的宽度为2,所以变量i 只接收输入数据的前两位,从第3位开始直到空格之间的输入整数都会被保存到变量Y中,因为Y为浮点型数据,所以输出结果为选 项B)。
5.设有定义 int a; float b; 执行 scanf("-%f",&a,&b);语句时,若从键盘输入876<空格> 854.0<回车>,a 和 b 的值分别是( )。
A.876和543.000000
B.87和6.000000
C.87和543.000000
D.76和543.000000
参考答案:B
参考解析:
seanf()函数用空格区分不同字符串的输入,因此876和543.0被看作两段输入。-只选取了第一个输人中的前两位,%f选取随后的数字作为浮点数,因此输出结果为87和6.000000。
6.下列程序的输出结果是( )。
main()
{
double d = 3.2;int x,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.3
B.3.2
C.0
D.3.07
参考答案:C
参考解析:本题考查复合的赋值表达式。本题中,程序先执行语句x=1.2;,根据赋值运算的类型转换规则,先将double型的常量l.2转换为int型,即取整为1,然后将l赋值给变量x。接下来执行语句y=(x+3.8)/5.0;根据运算符的优先级,先计算小括号内,再计算除法,最后执行赋值运算。小括号内的运算过程:先将整型变量x的值l转换为double型1.0,然后与3.8进行加法运算,得到中间结果4.8。接着进行除法运算4.8/5.0,其结果小于l.0,这里没有必要计算出精确值,因为接着进行赋值运算,赋值号左边变量Y的类型为整型,于是对这个小于1.0的中间结果进行取整,结果为0,于是变量y的值为0,d * y的值也为0。
7.以下叙述中错误的是( )。
A.C语言的可执行程序是由一系列机器指令构成的
B.用C语言编写的源程序不能直接在计算机上运行
C.通过编译得到的二进制目标程序需要连接才可以运行
D.在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件
参考答案:D
参考解析:c语言的可执行程序是由一系列机器指令组成的。用C语言编写的源程序必须经过编译生成二进制目标代码,再经过连接才能运行,并且可以脱离c语言集成开发环境。故答案为D)。
8.以下4个选项中,不能看作一条语句的是( )。
A.;
B.a=5,b=2.5,c=3.6;
C.if(b!=5)x=2;y=6;
D.return j;
参考答案:C
参考解析:c语言规定每个语句以;(分号)结束,因此选项c)为两条语句。
9.下面程序段的输出为( )。
#include "stdio.h"
main()
{
printf("%d\n",12<<2);
}
A.0
B.47
C.48
D.24
参考答案:C
参考解析:本题考查位运算的运算原理。<<为左移运算符,运算符的左边是移位对象;右边是整型表达式,代表左移的位数,左移时,右端(低位)补0;左端(高位)移出的部分舍弃。
10.以下叙述中正确的是( )。
A.C程序中注释部分只能放在程序最后
B.花括号“{“和”}”可以作为函数体的定界符,也可以作为复合语句的定界符
C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
D.分号不是语句的一部分,是C语句之间的分隔符
参考答案:B 参考解析:花括号可以作为函数体的定界符,也可以作为复合语句的定界符。函数是c程序的基本单位,用户可以命名自定义函数,而库函数名是固定的。c语句以分号结尾,分号是语句的一部分。
11.若有说明,double*m,n;则能通过sCanf语句正确给输入项读人数据的程序段是( )。
A.*m = &n;scanf("%lf",m);
B.m = (double * ) malloc(10);scanf("%f",m);
C.m = &n;scanf("%lf",n);
D.m = &n;scanf("%le",m);
参考答案:D
参考解析:解析:选项A,*m = &n 错误。选项B,输入 double型,要用%lf 或 %le,否则数据不能正常输入。
选项C,n是变量,不是指针,scanf("%if",n)错误。
考无忧小编有话说:
每年缺考率超过10%,说明有部分同学还是会在备考中放弃自己,因为没时间,因为太难了,甚至因为害怕了,这些都是失败的理由!人,不逼自己一把,你永远不知道自己是多么优秀!短时间,也可以爆发大能量!赶紧复习以上的二级C语言试题,刷完计算机等级考试题库!
文章推荐:
2019年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”
全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)
温馨提示:
考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office
想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库
想知道更多关于计算机等级考试题库的近期资讯吗?点击进入>>>计算机等级考试题库资讯