试题

计算机二级C语言考前模拟试题及答案

时间:2025-04-11 00:22:44 试题 我要投稿

计算机二级C语言考前模拟试题及答案2016

  (1)有以下程序:

计算机二级C语言考前模拟试题及答案2016

  程序运行后的输出结果是(   )。

  A.852

  B.963

  C.741

  D.875421

  (2)有以下程序:

  程序运行后的输出结果是(   )。

  A.let=4

  B.m=2

  C.m=6

  D.m=5

  (3)有以下程序:

  程序运行后的输出结果是(   )。

  A.6

  B.3

  C.8

  D.12

  (4)有以下程序:

  则以下函数调用语句错误的是(   )。

  A.k:f(a,B.;

  B.k:add(a,B.;

  C.k=(*f)(a,B.;

  D.k=*(a,B.;

  (5)有以下程序

  (6)下列定义数组的语句中,正确的是(   )。

  (7)有以下程序:

  程序运行后的输出结果是(   )。

  A.0 3 0 4

  B.2 0 5 0

  C.3 3 4 4

  D.3 0 4 0

  (8)有以下程序:

  程序运行后的输出结果是(   )。

  A.3

  B.4

  C.l

  D.9

  (9)以下语句中存在语法错误的是(   )。

  (10)以下不能将s所指字符串正确复制到t所指存储空间的是(   )。

  A.do{*t++=*8++;}while(*s);

  B.for(i=0;t[i]=s[i];i++);

  C.while(*t=*s){t++;s++;}

  D.for(i=0,j=0;t[i++]=s[j++];);

  (11)有以下程序:

  程序执行后的输出结果是(   )。

  A.321,cba

  B.abc,l23

  C.123,abc

  D.lbe,a23

  (12)有以下函数:

  函数的功能是(   )。

  A)将Y所指字符串赋给x所指存储空间

  B.查找x和y所指字符串中是否有

  C.统计x和y所指字符串中最前面连续相同的字符个数

  D.统计x和Y所指字符串中相同的字符个数

  (13)有以下程序:

  程序运行后的输出结果是(   )。

  A)Lo

  B.30

  C.0

  D.64

  (14)在一个C源程序文件中所定义的全局变量,其作用域为(   )。

  A.由具体定义位置和extem说明来决定范围

  B.所在程序的全部范围

  C.所在函数的全部范围

  D.所在文件的全部范围

  (15)以下叙述中错误的是(   )。

  A.可以通过typedef增加新的类型

  B.可以用typedef将已存在的类型用一个新的名字来代表

  C.用typedef定义新的类型名后,原有类型名仍有效

  D.用typedef可以为各种类型起别名,但不能为变量起别名

  (16)有以下程序:

  程序运行后的输出结果是(   )。

  A.10

  B.11

  C.20

  D.21

  (17)有以下程序:

  程序运行后的输出结果是(   )。

  A.7.5

  B.31.5

  C.程序有错无输出结果

  D.14.0

  (18)有以下程序:

  程序运行后的输出结果是(   )。

  A.3

  B.4

  C.5

  D.6

  (19)有以下程序:

  程序运行后的输出结果是(   )。

  A.1.1.3

  B.2,2,3

  C.1,2,3

  D.3,3,3

  (20)以下叙述中正确的是(   )。;

  A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失

  B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖

  C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据

  D.c语言中的文件是流式文件,因此只能顺序存取数据.

  参考答案与解析

  (1)A

  【解析】第一次for循环,y的值为9,y%3的值为3,满足条件打印一一Y,即先减一后打印,所以打印8;第二次for循环,Y的值为7,y%3的值为1,不执行打印语句;第三次for循环,y的值为6,y%3的值为0,满足条件打印一一Y,即先减一后打印,所以打印5;第四次for循环,Y的值为4,不满足if条件,不执行打印语句;第五次for循环,Y的值为3,满足if条件,打印输出2;第六次for循环,Y的值为1,不满足条件,不执行打印语句。

  (2)C

  【解析】第一次外循环i的值为l,第一次内循环j的值为3,不满足条件执行in}=i}j即m的值为3;第二次j的值为2,不满足条件执行m·=i*j,即m的值为6;第三次j的值为1,不满足条件执行nl*=i*j,即m的值仍为6。第二次外循环i的值为2,j的值为3,满足条件,执行break语句,跳出循环。

  (3)A

  【解析】本题中第一次调用为fun(8,fun(5,6)),因为fun(5,6)返回值为5,所以第二次调用为fun(8,5)=6。所以选择A。

  (4)D

  【解析】D选项中+f(a,b)表示调用后返回一个指向整型数据的地址指针,即该函数的返回值为指针类型,所以不能将其赋值给整形变量k。

  (5)A

  【解析】选项8的正确写法应为P=&n;选项c的正确写法应为scanf(”%d”,P);选项D的正确写法应为printf(”%d\n”,* P)。

  (6)A

  【解析】数组说明的一般形式为:类型说明符

  数组名[常量表达式]。B选项中N是变量,不能用变量定义数组长度。c选项中数组长度是非法的一串数字。定义数组时必须为其指明长度,D选项中数组长度为空,所以非法。

  (7)D

  【解析】第一次循环i为0,i%2为o,执行switch(a[O]%2)中的ca∞0语句后内容即a[0]++,a[0]的值变成3;第二次循环i的值为l,i%2为1,执行ca∞1:a[i]=0;所以a[1]的值变成0;第三次循环i的值为2,i%2为0,执行switch(a[2]%2)中的ca∞1语句后的内容a[2]一一,8[2]的值变成4;第四次循环i的值为3,i%2为1,执行casel:a[i]=0;所以a[3]的值变成0。

  (8)B

  【解析】每次内循环只循环一次就结束,第一次外循环时t=t+b[0][b[0][0]]=1+b][0]=1+0=第二次外循环时t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第三次外循环时t=t+b[2][b[2][2]]=2+b[2][2]=2+2=4。

  (9)A

  【解析】数组定义后,不可以对数组整体赋值,s是二维数组,因SS[1]是一维字符数组,即字符串,字符串赋值可以使用strcpy(SS[1],”right”);这样的形式,而选项A中对二维数组中的第…l维(相当于一个一维数组)赋值,是不可以的。选项8和D是定义时对数组初始化,这是可以的。选项c中,将字符串在内存中的首地址赋给指针数组的一个元素,这是可以的。

  (10)A

  【解析】do{*t++=}S++;}while(*S);不能因为当*s=’、0。时,while(* s)跳出循环,这样字符串结束标志’、0’没有复制给}t,造成}t不完整。注意,*t++=*s++是先执行t=*s,然后才进行t=t+1,s=s+1。B、C、D都能将。\0’复制过去

  (11)D

  【解析】字符串是一个特殊的数组,所以按照数组的规则,sl应该指向的是数组的首地址,即“abc”的第一个字符的地址。s2指向的是“123”的第一个字符的地址。调用swap函数之后交换的是两个字符串的第一个字符‘a’和‘1’的内容,所以打印输出为D)。

  (12)C

  【解析】本题中由循环条件可知遇到‘\0’或x与y所指的字符的值不等中的一个条件时就结束,所以功能是统计x和Y所指字符串中最前面连续相同的字符个数。

  (13)D

  【解析】本题目中静态局部变量x,在静态存储区内分配存储单元。在程序整个运行期间都不释放。所以第一次循环s的值为2,第二次循环中,返回的x的值为4,所以s的值为8,第三次循环,返回的x的值为8,所以S的值为64.

  (14)A

  【解析】全局变量的作用域是从声明处到文件的结束。所以选择A)。

  (15)A

  【解析】关键字typedef的作用只是将C语言中的已有的数据类型作了置换,并不是增加新的类型,所以A错误。

  (16)D

  【解析】声明data是结构S数组。初始化data『0].a=10;data[0].b=100;data[1].a=20;data[1].b=200。主函数中P=data[1];即P.a=data[1].a;P.b=data[1].b;执行语句prinff(”%d\n”,++(P.a));打印输出时p.a先增l再打印。P.a=data[1].a=20,先增1等于21。

  (17)C

  【解析】宏定义不是C语句,末尾不需要有分号。所以语句printf(”%4.1f\n”,S(8+b));展开后为parintf(”%4.1f\n”,3.5;*a+b}a+b;);所以程序会出现语法错误。

  (18)B

  【解析】&按位与,如果两个相应的二进制位都为l,则该位的结果值为1,否则为0。l按位或,两个相应的二1进制位中只要有一个为l,该位的结果值为l。2的二进制为1 00000010,4的二进制为00000100,所以做或运算结果为1 00000110,该数与5即00000101做与操作结果为00000100,1即4。

  (19)D

  【解析】maUoc函数动态分配一个整型的内存空间,然后把函数返回的地址用(int{)强制类型转换为整型指针,再把它赋给a,b,c,即让指针变量a,b,c都指向刚申请的内存空间。所以只有最后一个赋值语句+C=3的值保留在了该空间内,因为a、b、C三个指针变量均指向该空间,所以打印该空间内的数值为3。

  (20)A

  【解析】B选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。C选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第l个数据,可以用fseek()函数进行重新定位即可。D选项中,C语言中的文件可以进行随机读写。

【计算机二级C语言考前模拟试题及答案】相关文章:

C语言考前模拟试题03-25

计算机二级《C语言》模拟试题及答案07-29

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

计算机二级《C语言》模拟试题及答案201703-26

计算机二级《C语言》考试模拟试题与答案07-21

2016计算机二级《C语言》模拟试题及答案05-25

C语言模拟试题及答案06-17

C语言模拟试题及答案03-26

2016年12月计算机二级C语言考前模拟试题及答案05-15