2017年计算机二级C语言精选习题
练习做多了自然会形成自己的做题方法和速度,为此,今天百分网小编为大家整理了以下2017年计算机二级C语言精选习题,希望对大家有帮助!
1.下列说法正确的是( )。
A.在C语言中,可以使用动态内存分配技术定义元素个数可变的数组
B.在c语言中,数组元素的个数可以不确定,允许随机变动
C.在C语言中,数组元素的数据类型可以不一致
D.在C语言中,定义一个数组后.就确定了它所容纳的元素的个数
2.表达式“~0x11”的值是( )。
A.0xFFEE
B.0x71
C.0x0071
D.0xFFF1
3.下列程序的输出结果是( )。
main()
{ int p[8]={11,12,13,14,15,16,17,18},i=0,j =0;
while(i++<7)
if(p[i]%2)j+=p[i];
printf("%d\n",j);
}
A.42
B.45
C.56
D.60
4.下列程序的输出结果是( )。
#included stdi0.h>
#included string.h>
void fun(int b[])
{ static int i=0;
do
{ b[i]+=b[i+1];
}while(++i<2);
}
main()
{ int k,a[5]={1,3,5,4,9};
fun(a);
for(k=0;k<5;k++)printf("%d",a[k]);
}
A.13579
B.48579
C.48549
D.48999
5.有以下程序:
main()
{ int a=1,b=3,C=5,*P;
int*p1=&a,*p2=&b,*p3=&c;
*p=*p1*(*p2);
}
执行后的输出结果是( )。
A.1
B.2
C.3
D.4
6.有以下程序:
fun(int x)
{ int P;
if(x==0 || x==l)return(3);
p=x-fun(x-2);
return p;
}
main()
{printf("%d\n",fun(7));}
程序执行后的输出结果是( )。
A.7
B.3
C.2
D.0
7.下述程序的运行结果是( )。
#included stdio.h>
#included strin9.h>
main()
{ char*s1="abDuj";
char*s2="ABdUG";
int t;
t=strcmp(s1,s2);
printf("%d",t);
}
A.正数
B.负数
C.零
D.不确定的值
8.下列程序中c的二进制值是( )。
char a=2,b=4,c;
c=a^b>>2;
A.00000011
B.00010100
C.00011100
D.00011000
9.函数fseek()的正确调用形式是( )。
A.fseek(位移量,起始点,文件类型指针);
B.fseek(文件类型指针,位移量,起始点);
C.fseek(文件类型指针,起始点,位移量);
D.fseek(起始点,位移量,文件类型指针);
10.下列叙述正确的是( )。
A.C语言中的文件是流式文件,因此只能顺序存取数据
B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C.在一个程序中当对文件进了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
参考答案及解析:
1.D。【解析】在C语言中,数组元素的个数是确定的,不允许随机变动,数组定义好后,它所能容纳的元素的个数也就确定了,并且同一个数组中所有元素都是同一类型。
2.A。【解析】本题主要考查按位求反运算:十六进制整型常量的形式是以数字Ox开头的十六进制字符串;位求反运算的规则是:将二进制表示的运算对象按位取反,即将1变0,将0变1。
3.B。【解析】C语言中,数组的下标默认为0,因此数组P的下标从0开始,所以p[8]的范围为0~7。第l次循环i=0,执行循环,得出i=1,因此p[i]为p[1]=12,12%2= 0,不执行后面的语句;接着进行第2次循环,此时i=1,小于7执行循环,并且i自加,得i=2,因此p[i]为p[2]=13,13%2=1,执行后面的语句;依此类推最后退出循环。最后j 的值为:j=13+15+17=45。
4.C。【解析】本题考查do-while循环,在fun函数中,首先定义了静态变量i=0,do-while循环要实现的功能是以b[0]=b[0]+b[1],b[1]=b[1]+b[2],其他元素不变的规则重新给b数组赋值。在主函数中,通过调用fun函数,按上面的规则对数组a重新赋值,最后输出数组a。
5.C。【解析】本题中指针p1、p2、p3指向a、b、c值所存放的地址空间,然后再将指针变量*p1、*p2中值的乘积赋给指针变量*P,即赋给变量c,输出c的值3。
6.C。【解析】在函数funlint x)中,有个if语句判断,如果参数x等于0或1时,返回值,否则进入下面的p=x-fun (x-2)递归函数。当在主函势中调用fun(7)时,其过程为:“fun(7)=7-fun(5)=7-(5一fun(3))=7-(5-(3-fun (1)))=7-(5-(3—3))=7-5=2”,所以最后的输出结果为2。
7.A。【解析】本题考查符符串比较函数和两个字符串比较的原则这两个知识点。
(1)两字符串比较的原则是依次比较两个字符串同一位置的一对字符,若它们的ASCII码值相同,则继续比较下一对字符,若它们的ASCII码值不同,则ASCII码值较大的字符所在的字符串较大;若所有字符相同,则两个字符串相等;若一个字符串全部i个字符与另一个字符串的前i个字符相同,则字符串较长的较大
(2)strcmp(s1,s2)的返回值,当str1str2,返回值为正数。
8.A。【解析】本题主要者查右移运算和按位异或。把b化为二进制数为00000100,右移两位后为00000001,a的二进制为00000010,两者异或为00000011。
9.B。【解析】指针函数fseek()的调用形式为:fseek (fp,offset,position);fseek函数参数说明:“fp”是指向该文件的文件型指针;“offset”为位移量,是指从起始点position 到要确定的新位置的字节数。以起点为基准,向前移动字节数。“position”为起始点,指出以文件的什么位置为基准进行移动,position的值用整型常数表示,“0”表示文件的开头,“1”表示文件的当前位置,“2”表示文件的末尾。
10.D。【解析】在C语言巾,文件的存取方式有两种:顺序存取和直接存取。如果以“a”的方式对已打开的文件进
行写操作后,则原文件中内容将保存,新的数据写在原有内容之后。如果以“a+”的方式勾读和写操作而打开文件,则可以对文件进行读写,而且在读和写操作之间不必关闭文件,可以从头开始读。当对文件的读(写)操作完成之后,必须将它关闭。
【计算机二级C语言习题】相关文章:
2017计算机二级C语言考点习题09-25
计算机等级考试二级C语言笔试精选习题06-06
2017计算机二级C语言备考习题及答案08-02
计算机二级C语言备考习题及答案201710-09
计算机二级C语言模拟练习题10-26
计算机二级《C语言》基础练习题及答案10-10
计算机二级C语言强化习题题及答案201708-06
计算机二级考试C语言巩固习题及答案10-24
计算机二级考试C语言强化习题和答案07-21