2018年计算机二级C语言考前冲刺题(1)

 我来答
科技点灯人
2023-01-08 · TA获得超过294个赞
知道小有建树答主
回答量:126
采纳率:83%
帮助的人:59.4万
展开全部

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

  程序运行时输入:-11-220<回车>,则输出结果是(  )。

  A.1,1

  B.1,0

  C.3,-3

  D.3,0

  参考答案:C

  参考解析:分析程序结构,在do …while循环中,嵌套一个switch语句,switch语句中两个case语句分别执行break和continue,其中break语句是跳出switch语句,接着执行do…while循环体剩下的部分;而continue语句是直接进入do…while的下一个循环,由此可知每次循环,当t=0时,执行break语句,接着将z值累加x;当t=1时,执行continue语句,将y值累加x,所以当x输入-1、-2、0时,t=0,z值累加为-3;当x输入1、2时.t=1,y值累加为3,输出y、z的值分别为3、-3,故答案选C。

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

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

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

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

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

  参考答案:C

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

  13[单选题] 程序中若有以下的说明定义和语句:

  则不能给变量t的s成员赋整数99,给num成员赋空串的语句组是(  )。

  参考答案:A

  参考解析:结构体变量使用 “.”运算符引用结构体成员变量,结构体指针使用“->”运算符引用结构体成员变量,main函数中声明结构体STR变量t,和结构体STR指针*p,并将t的地址赋给p,所以使用P访问成员变量时,使用“->”运算符;使用* P访问成员变量时,使用“.”运算符。另外,由于成员变量num是字符数组,所以不能直接进行赋值,若要对num赋空字符串值,可以把num中第一个元素赋值为0或‘\0’,或者使用strcpy复制函数将空字符串“”复制到num中,故选项B、C、D正确,选项A错误,因此答案为A。

  14[单选题] 以下关于循环语句的叙述中正确的是(  )。

  A.do…while语句的循环体至少执行一次

  B.while语句的循环体至少执行一次

  C.for语句的循环体至少执行一次

  D.上述A、B、c说法均正确

  参考答案:A

  参考解析:while(表达式)当表达式为false时,循环体一次都不执行,故选项B、D错误;for(表达式1;表达式2;表达式3)语句,当表达式2为false时,循环体一次都不执行,故选项C错误;do-while语句循环体至少执行一次,故答案选A。

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

  A.用户定义的函数中可以没有return语句

  B.用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值

  C.用户定义的函数中若没有return语句,则应当定义函数为void类型

  D.函数的return语句中可以没有表达式

  参考答案:B

  参考解析:本题重点考察函数返回值的相关知识,函数的值只能通过return语句返回主调函数,在函数中允许有多个return语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值。不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”。因此B选项正确。

  16[单选题] 以下叙述中正确的是( )。

  A.C语句必须在一行内写完

  B.C程序中的每一行只能写一条语句

  C.C语言程序中的注释必须与语句写在同一行

  D.简单C语句必须以分号结束

  参考答案:D

  参考解析:C语句可以跨行来写,但是必须以分号结束,所以A选项错误。C程序中的一行可以有多条语句,所以B选项错误。C语言中的注释语句可以与原语句放在一行也可以不放在一行,所以C选项错误。

  17[单选题] 以下不合法的数值常量是(  )。

  A.8.0E0.5

  B.1e1

  C.011

  D.0xabed

  参考答案:A

  参考解析:A选项中E后面的指数必须为整型数据,所以A错误。C选项中011表示的是八进制常量.Oxabcd表示的是十六进制常量。

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

  程序计算的是(  )。 .

  A.s=1!+2!+3!+4!+5!

  B.s=1+2+3+4+5

  C.s=1$2*3*4*5

  D.s=1!*2!*3!*4!*5!

  参考答案:A

  参考解析:函数fun()中的变量f是静态变量,所以只初始化一次,之后每次调用fun(),f的初值就是上一次fun()结束时的值,对于fun()函数,当传人n=1时,f=1,返回值为1;当传入n=2时,f=1×2=2,返回值为2;当传人13=3时,f=2×3=6,返回值为6;当传人n=4时,f=6×4=24,返回值为24,所以每次调用fun函数时,f变量在上一次fun函数运行结束时保留值的基础上,再与n乘积,并重新赋值给f,所以可以将f理解为记录当前的累乘值,即当main函数中i:1时,f=11=1;当main()函数i=2时,f=2!=2,当main函数中i=3时,f=3!=6……另外main函数中的S记录调用fun函数的返回值之和,所以s=1!+2!+…+i!,由于i最大值为5,所以s=1!+2!+3!+4!+5!,答案为A。

  19[单选题] 下列诜项中.能正确定义数组的语句是( )。

  参考答案:D

  参考解析:C语言不允许定义动态数组,定义数组的大小必须为常量表达式。A选项错误,C语言中数组没有此类型的定义方法;B选项错误,定义数组应指明数组大小,如果不指明数组大小,需要给定初值的个数;C选项错误,N为变量,不能用来定义数组大小。因此D选项正确。

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

  程序的运行结果是(  )。

  A.123

  B.12300

  C.1

  D.321

  参考答案:A

  参考解析:首先使用fopen函数以可写方式打开文件d1.dat,返回文件指针fp,然后在for循环通过fprintf函数调用fp指针,将数组a的3个元素写入文件d1.dat中,最后再写入换行符\n,关闭文件,此时文件中的内容:“123\n”,然后调用fopen函数以只读方式打开d1.dat,返回文件指针fp指向文件的开头,再调用fscanf函数从文件中读入一个整数:123,(遇到第一个非数值字符结束),关闭文件后输出读人的整数n,结果为:123,答案为A。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式