Daily practice——2021/1/17

1.设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是()。
A 6.500000  B 6 b/b=1  C 5.500000  D 6.000000
答:正确答案:D
解析:int只对a有效,a被转换成int型变为5,表达式变为5+1.000000。由于1.000000表达式是double类型,根据隐式转换规则,int又被转换为double类型5.000000。于是,表达式(int)a+b/b=6.000000。

//代码演示
#include<stdio.h>

int main()
{
	double a = 5.5, b = 2.5;
	printf("%f", (int)a + b / b);
	return 0;
}
//运行结果:6.000000

2."A"是一个字符常量。请问这个说法是正确的吗?
答:这个说法是错误的。"A"是字符串常量,'A '是字符常量。用双引号括起来的是字符串常量;用单引号括起来的是字符常量。

3.函数fun的声明为int fun(int *p[4]),以下哪个变量可以作为fun的合法参数()。
A.int a[4][4];  B.int **a;  C.int **a[4]  D.int (*a)[4];
答:正确答案: B
解析:可以看出fun函数的形参是一个指针数组,也就是指针指向一个地址,地址中存放的内容也是指针。
A项,二维数组,不符合。
B项,二级指针,也就是指针指向的内容也还是存放指针的,符合。
C项,二级指针数组,数组的内容是二级指针,不符合。
D项,数组指针,不符合。

4.下列程序运行后的输出结果是( )。

#include<stdio.h>
int main()
{
    int x = 35, B;
    char z = 'B';
    B = ((x) && (z < 'b'));
    printf("%d\n", B);
}

答:程序运行后的输出结果是1。已知变量x为整型变量,并赋值为35,变量z为字符型变量,并赋值为’B’。语句B =((x)&&(z <‘b’));中,(x)的值为1,'B’的ASSCLL码小于’b’的ASSCLL码,所以(z <‘b’)的值也为1,1&&1结果为1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值