E36.C语言模拟试卷1第一大题选题解析与提示(未完)

点我去下载C语言模拟试卷1的文件

备注:ZIP文件中的参考答案仅仅提供最终结果

目录

第3题

第5题

第7题

第9题

第14题

第16题

第19题


第3题

3.若有说明语句:char  c = ‘\64’ ; 则变量C包含:      

A)1个字符 B)2个字符   

C)3个字符 D)说明不合法,C值不确定

解析:\64不是解析为3个字符(\,6,4),在8.【C语言】转义字符文说过

其中有一个表格,下面节选了\ddd的内容

注意看细节:1到3位

所以有\d,\dd,\ddd这3种情况

八进制64=4*8^0+6*8^1=十进制52=十六进制34

VS验证:

#include <stdio.h>
int main()
{
	char  c = '\64';
	return 0;
}

x86+debug,调试模式运行至return 0;

内存窗口输入&c

c在内存中存储的值为34

所以选A

第5题

5.语言中,运算对象必须是整型数的运算符是      

A)% B)\ C)% 和 \ D)**

解析:%只能用于整数,/可以用于小数,如9/2.0==4.5

所以选A

第7题

7.以下选项中,能用作用户标识符的是___

A)void   B)8_8   C)_0_   D)unsigned

解析:有关标识符的规则

1.标识符的时候是不能和关键字重复(A,D错)

2.标识符可包含A~Z,a~z,0~9,下划线,但第一个字符必须为字母或下划线(B错)

所以选C

第9题

9.表达式:(int)((double)9/2)-(9)%2的值是___

A)0    B)3    C)4     D)5

解析:复习有关优先级的知识点 15.25【C语言】操作符的属性 点我跳转

本题要用到: 优先级: /和% 大于 -

因此先进行(int)((double)9/2)和(9)%2的运算

9/2==4,先强制类型转换为double,再强制类型转换为int,结果为4   (9)%2==1

4-1=3,所以选B

第14题

14.以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是

A)if((a>b)&&(b>c)) k=1;else k=0;

B)if((a>b)||(b>c) k=1;else k=0;

C)if(a<=b) k=0;else if(b<=c) k=1;

D)if(a>b) k=1;else if(b>c) k=1; else k=0;

解析:回顾三目操作符,15.【C语言】初识操作符 下 点我跳转

本题属于三目操作符的嵌套类型

可以将题目的语句转换为if语句

可写为

if (a > b)
{
	执行(b > c ? 1 : 0) 
}
else
{
	k = 0;
}

 

exp2的if语句

if (b > c)
{
	k = 1;
}
else
{
	k = 0;
}

合并为


if (a > b)
{
	if (b > c)
	{
		k = 1;
	}
	else
	{
		k = 0;
	}
}
else
{
	k = 0;
}

显然选A

第16题

16.有以下程序

 #include <stdio.h>

 int main()

{

      int n=2,k=0;

      while(k++&&n++>2);

      printf(“%d %d\n”,k,n);

      return 0;

  }    

程序运行后的输出结果是___

   A)0 2    B)1 3    C)5 7     D)1 2

解析:后置++的特性:先使用,后++

有关++和--的特性见15.【C语言】初识操作符 下

while(k++&&n++>2);这里有陷阱

由于是从左向右运算,0>2为假,k++正常执行,后方的n++不在执行

所以k==1,n==2

所以选D

第19题

19.有以下程序

#include <stdio.h>

void fun(int p)

{

    int d=2;

    p=d++; printf(“%d”,p);

}

int main()

{

    int a=1;

    fun(a);

    printf(“%d\n”,a);

    return 0;

}

程序运行后的输出结果是___

    A)32   B)12   C)21   D)22

提示:这里注意fun函数的调用方式为传调用(要与传调用做区分),不会改变a的值

有关传调用和传调用见29.【C语言】函数系列中 自定义函数
所以选A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值