考试吧

计算机等级

考试吧>等级考试>计算机二级考试>C语言>模拟试题>正文
2018年3月全国计算机二级C语言巩固练习题(8)
考试吧 2018-02-22 18:11:04 评论(0)条

  点击查看:2018年3月全国计算机二级C语言巩固练习题汇总

  1[单选题] 以下程序拟实现计算s=1+2*2+3*3+…+n*n+…,直到s>1000为止。

  

  程序运行后,不能得到正确结果,以下修改方案正确的是( )。

  A.把while(s>lOOO);改为while(s<=1000);

  B.把s=1;改为s=0;

  C.把n=1;改为n=0;

  D.把n=n+1;改为n=n$n;

  参考答案:A

  参考解析:题目中程序不能实现预期功能是因为while的循环条件错误,在选项B中,把s=1,改为s=0,最终的结果s=4,与题目原意不同;在选项C中,把n=1;改为n=0;最终的结果s=2,与题目原意不同;在选项D中,把n=n+1;改为n=11 s13;最终的结果s=2,与题目原意不同;选项A,正确的修改了while循环条件,可以得到正确结果。故答案为A选项。

  2[单选题] 有以下程序

  

  程序运行后的输出结果是

  A.5B.50C.6D.60

  参考答案:A

  参考解析:本题主要考查数组和指针。首先初始化一维数组c[6],语句P=c;指将c[0]元素的地址赋给指针变量P;语句s=&c[5];指将c[5]元素的地址赋给指针变量s。程序最后输出s-P,即结果为5。因此A选项正确。

  3[单选题] 有以下程序:

  

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

  A.1,2B.1,0C.3,2D.0, 0

  参考答案:A

  参考解析:首先打印b=a+b=1+0=1的值l,此时已给b赋值为1。然后打印a=2}b=2{1=2的值2。所以结果是1,2。

  4[单选题] 设有以下语句:typedef struct TY{char C;int a{4 1;}CIN;

  则下面叙述中正确的是( )。

  A.CIN是struct Tr类型的变量

  B.TT是struct类型的变量

  C.可以用,lr定义结构体变量

  D.可以用CIN定义结构体变量

  参考答案:D

  参考解析:本题考查typcdef重新声明一种结构体类型,其中CIN为结构体类型名,而不是结构体变量,所以D选项正确。

  5[单选题] 有以下程序

  

  程序运行后的输出结果是

  A.25B.20C.12D.16

  参考答案:D

  参考解析:本题考查宏定义,宏定义只是做个简单的替换,执行SUB(a++,b++)=(a+++1)*b++=16,选项D正确。

  6[单选题] 关于c语言的变量,以下叙述中错误的是(  )

  A.变量所占的存储单元地址可以随时改变

  B.所谓变量是指在程序运行过程中其值可以被改变的量

  C.程序中用到的所有变量都必须先定义后才能使用

  D.由三条下划线构成的符号名是合法的变量名

  参考答案:A

  参考解析:一个变量实质上是代表了内存中的某个存储单元。必须先定义后使用,且在定义时为之分配存储单元,不能随时改变.变量名第一个标识符必须是字母式下划线 “-”,所以选择A选项。

  7[单选题] 有以下程序:

  

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

  A.852B.963C.741D.875421

  参考答案: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,不满足条件,不执行打印语句。

  8[单选题] 某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是( )。

  A.10B.8C.6D.4

  参考答案:C

  参考解析:根据二叉树的基本性质3:在任意-棵二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中是5+1=6个。

  9[单选题] 以下选项中叙述错误的是( )。

  A.C程序函数中定义的自动变量,系统不自动赋确定的初值

  B.在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内

  C.C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值

  D.C程序函数的形参不可以说明为static型变量

  参考答案:C

  参考解析:A选项描述正确,自动变量未赋初值,为随机值;B选项描述正确,变量定义除在函数开始位置外,在复合语句开始也可以;c选项描述是错误的,函数内的静态变量,只在第一次调用时候赋值,以后调用保留上次值;D选项描述也正确,形参属于局部变量,占用动态存储区,而static型变量占用静态存储区。因此C选项正确。

  10[单选题] 数据库应用系统中的核心问题是( )。

  A.数据库设计B.数据库系统设计C.数据库维护D.数据库管理员培训

  参考答案:A

  参考解析:数据库应用系统中的核心问题是数据库 的设计。

扫描/长按二维码帮助考试通关
2018年等考报考资讯
2018等考各科通关技巧
2018各科最新预测试卷
2018等考各科备考资料

微信搜索"考试吧"了解更多考试资讯、下载备考资料

  11[单选题] 以下叙述中正确的是

  A.由printf输出的数据都隐含左对齐

  B.scanf和printf是c语言提供的输人和输出语句

  C.赋值语句是一种执行语句,必须放在函数的可执行部分

  D.由printf输出的数据的实际精度是由格式控制中的域宽和小数的域宽来完全决定的

  参考答案:C

  参考解析:sCanf和printf是C语言提供的输入输出函数,所以B错误。由printf输出的数据都隐含右对齐,所以A错误。printf输出数据所占的宽度由系统决定,所以D错误。

  12[单选题] 一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。

  A.一对一B.一对多C.多对一D.多对多

  参考答案:B

  参考解析:因为一间宿舍可以住多个学生即多个学生住在一个宿舍中,但一个学生只能住一间宿舍,所以实体宿舍和学生之间是一对多的关系。

  13[单选题] 有以下程序:

  

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

  A.4,5,2,4,1,3,B.4,4,2,2,1,1,C.5,5,3,3,2,2,D.4,4,2,2,1,3

  参考答案:A

  参考解析:sizeof()是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。strlen(·char)函数,要在运行时才能计算,参数必须是字符型指针(char·),当数组名作为参数传人时,实际上数组就退化成指针了,它的功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL,返回的长度大小不包括NULL。sizeof(a)求数组a所占空间的大小,包括字符串最后的’、0’,所以sizeof(a)=5,strlen()遇到’、0’就结束,strlen(a)=4。strlen(b)是指针指向的字符串长度,sizeof(b)是指针的大小。strlen(c)是字符串的长度,sizeof(c)是数组的长度。因此,输出4,5,2,4,l,3。故答案为A选项。

  14[单选题] 若有定义int a:float b:double c;程序运行时输入:345<回车>

  能把值3输入给变量a、4输入给变量b、5输入给变量C的语句是

  A.scanf("%d%f%If",&a,&b,&C.;

  B.scanf("%d%If%If",&a,&b,&C.;

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

  D.scanf("%If%If%If",&a,&b,&C.;

  参考答案:A

  参考解析:wad()函数的格式串中,必须含有与输入项一一对应的格式转换说明符,整型数据、float型数据、double型数据对应的格式转换说明符分别为%d、%f、%If所以选择A。

  15[单选题] 有以下程序

  

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

  A.15B.12C.16D.20

  参考答案:B

  参考解析:#define命令是C语言的宏定义命令,标识符一般使用大写,为了区分其他标识符,将标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。宏定义不进行其他操作,仅仅只是替换标识符。后置自增运算:k++表示先运算,后自加。意思是遇到k++了,先把当前的k的值拿来参加运算,后面再去管它的自加。SUB(a++,b++)一(a++)t(b++)—d}4。故答案为B选项。

  16[单选题] 有以下程序:

  

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

  A.0,1B.0,0C.1,一1D.0,2

  参考答案:A

  参考解析:for(;++a&&~b;);for循环中第l,3表达式为缺省项,判断条件为++a&&…b;a一2,b=2;,第一次执行了++a和一b,,表示为真,循环条件成立,第二次执行++a为0,由于&&运算符,当第一个条件为假时,不执行第二个条件,所以b=1,发生短路,一b不执行了。因此a,b的最终值0,1。故答案为A选项。

  17[单选题] 关于c语言函数说明的位置,以下叙述正确的是

  A.在函数说明之后对该函数进行调用,编译时不会出现错误信息

  B.函数说明可以出现在源程序的任意位置,在程序的所有位置对该函数的调用,编译时都不会出现错误信息

  C.函数说明只能出现在源程序的开头位置,否则编译时会出现错误信息

  D.函数说明只是为了美观和编译时检查参数类型是否一致,可以写也可以不写

  参考答案:A

  参考解析:对被调用函数的说明有两种方式:外部说明和内部说明。在调用函数内对被调函数所作的声明称为内部说明,也称为局部说明;在函数外进行的函数说明称为外部说明,如果说明在程序最前端,外部声明又称为全局说明,因此B,C选项错误;函数“说明”是指利用它在程序的编译阶段对调用函数的合法性进行全面检查,因此D选项错误,答案为A选项。

  18[单选题] 若有以下程序

  

  则程序的输出结果是

  A.earlsB.ahabjC.ckbdlD.black

  参考答案:D

  参考解析:程序首先初始化字符数组a[5][10]和二维数组p[6][2]。执行for循环语句,循环变量i从0取值到5,得到字符数组W[]的值,并通过字符串输出函数pats进行输出操作。w[0]=a[0][1]、w[1]=a[1][5]、w[2]=a[0][0]、w[3]=a[0][2]、w[4]=a[1][4]、w[5]=a[4][4];因此最后字符数组W的结果为black。因此D选项正确。

  19[单选题] 有以下程序

  

  

  程序运行后的输出结果是

  A.4 6B.4 4C.2 2D.2 4

  参考答案:D

  参考解析:本题主要考查指针与数组。首先通过P=a使P指向数组的第1个元素,所以输出2;在输出2以后,由于P++,即P就指向数组的第2个元素,**k就是取出P所指向元素的值,而P指向的是数组的第2个元素,即输出4。因此D选项正确。

  20[单选题] 下列数据结构中,能够按照“先进后出”原则存取数据的是( )。

  A.循环队列B.栈C.队列D.二叉树

  参考答案:B

  参考解析:栈是按先进后出的原则组织数据的。队列是先进先出的原则组织数据。

扫描/长按二维码帮助考试通关
2018年等考报考资讯
2018等考各科通关技巧
2018各科最新预测试卷
2018等考各科备考资料

微信搜索"考试吧"了解更多考试资讯、下载备考资料

展开全文
评论(0条) 发表
Copyright © 2004-
考试吧(m.566.com)北京美满明天科技有限公司
社会统一信用代码:91110108MA01WU311X
帮助中心