程序段的输出结果是( )。
(22)有以下程序段:
以下关于程序段执行情况的叙述,正确的是( )。
A.for循环语句固定执行8次
B.当产生的随机数n为4时结束循环操作
C.当产生的随机数n为1和2时不做任何操作
D.当产生的随机数n为0时结束程序运行
(23)有以下程序:
程序运行后的输出结果是( )。
A.8
B.2
C.4
D.1
(24)以下叙述中错误的是( )。
A.可以给指针变量赋一个整数作为地址值
B.函数可以返回地址值
C.改变函数形参的值,不会改变对应实参的值
D.当在程序的开头包含头文件stdi0.h时,可以给指针变量赋NULL、、、
(25)设已有定义:float x;,则以下对指针变量P进行定义且赋初值的语句中正确的是( )。
(26)以下数组定义中错误的是( )。
(27)有以下程序:
程序运行后的输出结果是( )O
A.321678
B.876543
C.1098765
D.345678
(28)有以下程序:
程序运行后的输出结果是( )。
A.一3,一l,1,3,
B.B.一12,一3,0,0,
C.C.0,1,2,3,
D.D.一3,一3,一3,一3,
(29)设有定义:char s[81];int i=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是( )。
(30)设有定义:char p E]={’1’,‘2’,’3’},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是( )。
A.sizeof(p)
B.sizeof(char)
C.sizeof(*q)
D.sizeof(p[0])
(31)有以下程序:
程序执行后的输出结果是( )。
A.321,cba
B.abc,l23
C.123,abc
D.lbe,a23
(32)有以下函数:
函数的功能是( )。
A)将Y所指字符串赋给x所指存储空间
B.查找x和y所指字符串中是否有
C.统计x和y所指字符串中最前面连续相同的字符个数
D.统计x和Y所指字符串中相同的字符个数
(33)有以下程序:
程序运行后的输出结果是( )。
A)Lo
B.30
C.0
D.64
(34)在一个C源程序文件中所定义的全局变量,其作用域为( )。
A.由具体定义位置和extem说明来决定范围
B.所在程序的全部范围
C.所在函数的全部范围
D.所在文件的全部范围
(35)以下叙述中错误的是( )。
A.可以通过typedef增加新的类型
B.可以用typedef将已存在的类型用一个新的名字来代表
C.用typedef定义新的类型名后,原有类型名仍有效
D.用typedef可以为各种类型起别名,但不能为变量起别名
(36)有以下程序:
程序运行后的输出结果是( )。
A.10
B.11
C.20
D.21
(37)有以下程序:
程序运行后的输出结果是( )。
A.7.5
B.31.5
C.程序有错无输出结果
D.14.0
(38)有以下程序:
程序运行后的输出结果是( )。
A.3
B.4
C.5
D.6
(39)有以下程序:
程序运行后的输出结果是( )。
A.1.1.3
B.2,2,3
C.1,2,3
D.3,3,3
(40)以下叙述中正确的是( )。;
A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
D.c语言中的文件是流式文件,因此只能顺序存取数据.
(21)C【解析】由于内层循环for(k=1;k<3;k++)后面直接跟了空语句“;”所以在循环内部什么操作也不做,跳出外层循环后执行打印语句,所以打印了一个“t”,选择c。
(22)D【解析】Case常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的ease语句,就从此cafle子旬执行下去,不再进行判断,直到碰到break或函数结束为止。简单的说break是结束整个循环体,而continue是结束单次循环。B选项中当产生的随机数n为4时要执行打印操作。c选项中当产生的随机数为l和2时分别执行cage3与case4后面语句的内容。由于存在break语句所以for循环不是固定执行8次,执行次数与产生的随机数n有关系。
(23)A【解析】第一次调用Ill=f(f(f(1))),第二次为m
=f(f(2)),第三次为m=f(4),即返回值为8。
(24)A【勰析l不能将一个整数直接赋给指针变量作为地址,所以A是错误的。函数的返回值可以是地址,即指针。函数调用中形参值的变化不会传递给实参。
(25)B【解析】指针是用来存放地址的变量,用(类型名+指针变量名)的形式定义。赋值时应将某个变量地址即8Ⅸ赋给指针变量,所以选择8。
(26)D【解析】D选项中x[2][3]定义的是一个两行三列的二维数组,而在给数组元素赋值时却赋成了三行,所以错误。
(27)A【解析】本题中的函数fun()的功能是将数组k中前5个元素倒序,所以返回后数组k中的元素排列是5,4,3,2,1,6,7,8,9,10。所以打印输出k[2]到k[7]元素的值,即321678,所以选择A。
(28)A【解析】本题中由fun函数可知,b[O]=a[o][0]一a[0][3]=1—4=一3,b[1]=a[1][1]一[1][2]=6—7=一1,b[2]=a[Z][2]一[2][1]=11一10=1,b[3]=8[3][3]一[3][1]=16—13=3。所以主函数中打印Y数组元素的值为A选项。
(29)C【解析】字符串的输入不能使用scanf(”%s”,s);而应该使用9ets(s)。
(30)A【解析】根据题目中的定义可以知道sizeof(p),计算的是数组P中所有元素所占用的字节数,而不是ch”型数据所占字节数。
(31)D【解析】字符串是一个特殊的数组,所以按照数组的规则,sl应该指向的是数组的首地址,即“abc”的第一个字符的地址。s2指向的是“123”的第一个字符的地址。调用swap函数之后交换的是两个字符串的第一个字符‘a’和‘1’的内容,所以打印输出为D)。
(32)C【解析】本题中由循环条件可知遇到‘\0’或x与y所指的字符的值不等中的一个条件时就结束,所以功能是统计x和Y所指字符串中最前面连续相同的字符个数。
(33)D【解析】本题目中静态局部变量x,在静态存储区内分配存储单元。在程序整个运行期间都不释放。所以第一次循环s的值为2,第二次循环中,返回的x的值为4,所以s的值为8,第三次循环,返回的x的值为8,所以S的值为64.
(34)A【解析】全局变量的作用域是从声明处到文件的结束。所以选择A)。
(35)A【解析】关键字typedef的作用只是将C语言中的已有的数据类型作了置换,并不是增加新的类型,所以A错误。
(36)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。
(37)C【解析】宏定义不是C语句,末尾不需要有分号。所以语句printf(”%4.1f\n”,S(8+b));展开后为parintf(”%4.1f\n”,3.5;*a+b}a+b;);所以程序会出现语法错误。
(38)B【解析】&按位与,如果两个相应的二进制位都为l,则该位的结果值为1,否则为0。l按位或,两个相应的二1进制位中只要有一个为l,该位的结果值为l。2的二进制为1 00000010,4的二进制为00000100,所以做或运算结果为1 00000110,该数与5即00000101做与操作结果为00000100,1即4。
(39)D【解析】maUoc函数动态分配一个整型的内存空间,然后把函数返回的地址用(int{)强制类型转换为整型指针,再把它赋给a,b,c,即让指针变量a,b,c都指向刚申请的内存空间。所以只有最后一个赋值语句+C=3的值保留在了该空间内,因为a、b、C三个指针变量均指向该空间,所以打印该空间内的数值为3。
(40)A【解析】B选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。C选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第l个数据,可以用fseek()函数进行重新定位即可。D选项中,C语言中的文件可以进行随机读写。
2017年计算机二级C语言考前模拟试题及答案8.doc正在阅读:
2017年中考数学复习常见命题陷阱汇总08-08
三年级状物作文:桂花_300字02-19
2018青海海西成人高考报名时间03-30
初中记叙文:蒲扇摇曳的时光09-29
演讲稿范文:勤俭节约,从我做起05-11