c语言中的运算符和表达式试卷答案,C语言试卷[答案].doc

单选题答案

第1题答案:

C

评析:

本题的考查点是格式输入函数Scanf()的使用。

scanf函数输入形式为:scanf(格式控制,地址表列);

选项B中,p=(long*)malloc(8)是分配8个字节的long型存储单元,所以能通过scanf语句正确给输入项读入数据;

选项C中,p=&a,求出变量a的内存地址并赋给p;

选项D中,能正确给输入项读入数据;

故本题答案为A。

第2题答案:

A

评析:

本题主要考查的是C语言中的变量作用域。

全程变量是可以在子函数中对其值作改变,且它也可作为函数间的值传递。当函数或子函数中定义了与全程变量名称相同的局部变量,则全程变量将被屏蔽。所以本题主函数的局部变量a,b把同名的全程变量屏蔽了。

本题答案为B。

第3题答案:

C

评析:

本题是通过循环语句给数组元素赋值。

C语言中for循环语句的一般形式为:

for(表达式1;表达式2;表达式3)

{

语句部分;

}

本题答案为C。

第4题答案:

A

评析:

本题主要考查考生对C语言中的循环语句和程序的执行逻辑。本题中for循环语句共执行3次,所以a的值累加3次,结果为4。

本题答案为D。

第5题答案:

C

评析:

本题的考查点是C语言赋值语句。

赋值语句是由赋值表达式再加上分号构成的表达式语句。其一般形式为:变量=表达式;由于在赋值符"="右边的表达式也可以又是一个赋值表达式,因此,形式"变量=(变量=表达式);"是成立的,从而形成嵌套的情形,故选项A是正确的;选项D看上去是嵌套形式,而实际上,并非是一个正确的赋值表达式,因为赋值表达式"="的左边只能是变量,不能为常量或表达式,所以"4+1"的值不能赋值给常量"5",所以选项D错误,选项C也是错误的;由于求余运算符"%"的两侧必须为整型数据,所以选项B错误。

故本题答案为A。

第6题答案:

C

评析:

本题的考查点是函数pow(x,y)。

函数pow(x,y)的功能是计算x的y次方的值,在C语言中没有选项A和选项B的表示方式,选项D中pow(n,x)是求n的x次方值,不合题意。

故本题答案为C。

第7题答案:

D

评析:

本题的考查点是别名。

p是基类型为int的指针变量;

*q是基类型为int的指针变量;

程序中可用*INTEGER代替int类型名。

故本题答案为B。

第8题答案:

B

评析:

本题的考查点是数据类型、运算符与表达式。

C语言允许在定义变量的同时使变量初始化,当定义多个变量为同一类型时,各变量之间用逗号隔开,所以选项D错误;当定义多个变量赋同一个值时,不能用等式连写的方式,如选项A的"int a=b=0;"应写成"int a=0, b=0;" 所以选项A错误;选项C中定义了一个浮点型变量a和两个指向浮点型数据的指针变量b和c,而&a表示的是取变量a的地址,所以将变量a的地址赋给指向浮点型数据的指针变量b是错误的。选项B中将整数赋给字符变量,相当于将字符'B'赋给字符变量A,因为字符'B'的ASCII码是66。所以选项B正确。

故本题答案为B。

第9题答案:

C

评析:

本题的考查点是结构体数组。

本题定义了一个包含两个元素(data[0]、data[1])的结构体数组data,其中data[0].x=1; data[0].y=10; data[1].x=2; data[1].y=20。在主函数中,定义了一个指向结构体数组的结构体指针变量p,使得p指向结构体数组的首地址,所以p->y访问的是第一个结构体数组元素的第二个值,即data[0].y;(++p)->x访问的是第二个结构体数组元素的第一个值,即data[1].x,所以程序输出结果为10,2。

故本题答案为C。

第10题答案:

C

评析:

本题的考查点是共用体。

根据共用体的定义可知:共用体z的成员c和成员i[4]是共用着同一段内存空间,所以,当程序给z.i[0]赋值后,实际上共用体成员c的值也确定了,为0x39,所以在以字符方式打印时,打印结果应是ASCII码等于0x39的字符,即是"9"。

故本题答案为B。

第11题答案:

A

评析:

本题的考查点是do-while语句。

选项A是错误的,C语言支持do-while语句;选项B是错误的,do-while构成的循环, 当while语句中的表达式值为零时结束循环,而不是非零;选项C也是错误的。

故本题答案为D。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值