Daily practice——2021/5/31

1.设有语句 char a = ‘\72’; 则变量 a()。
A.包含2个字符
B.说明不合法
C.包含1个字符
D.包含3个字符
正确答案: C
解析:" \ "加数字(一般是8进制数字),用来表示ASCII码
对应八进制72的ASCII码得出对应的字符为 :包含一个字符。

#include<stdio.h>
#include<stdlib.h>

int main()
{
	char a = '\72';
	printf("%c\n", a);
	printf("%d\n", sizeof(a));
	system("pause");
	return 0;
}

2.假定x=500,下面函数的返回值是 ()。

int fun(int x)
{
    int countx = 0;
    while (x)
    {
        countx++;
        x = x & (x - 1);
    }
    return countx;
}

A.2  B.3  C.5  D.6
正确答案: D
解析:这段代码的实质是求x二进制表示中含有1的个数。

#include<stdio.h>
#include<stdlib.h>

int fun(int x)
{
    int countx = 0;
    while (x)
    {
        countx++;
        x = x & (x - 1);
    }
    printf("%d\n", countx);
    return countx;
}
int main()
{
    fun(500);
    system("pause");
	return 0;
}

3.由多个源文件组成的C程序,经过编辑、预处理、编译、链接等阶段会生成最终的可执行程序。下面哪个阶段可以发现被调用的函数未定义?
A.预处理  B.编译  C.链接  D.执行
正确答案: C
解析:链接是将各个编译单元中的变量和函数引用与定义进行绑定,保证程序中的变量和函数都有对应的实体,若被调用函数未定义,就在此过程中会发现。编辑阶段创建和修改源程序;预处理阶段分析宏定义以及替换宏引用;编译过程是把源程序翻译为与之等价的目标程序。

4.以下代码段中循环执行的次数是()。

int k = 0;
do {++k;} while (k < 1);

A.一次也不执行
B.无限次
C.执行1次
D.有语法错误,不能执行
正确答案: C
解析:先执行do里面的,k+1 所以 k=1。
while条件是k<1,这时k已经是1了,1<1不成立,所以循环退出,所以只执行一次。

5.若有定义语句,int b = 2,则表达式(b<<2)/(3||b)的值是?
A.0  B.2  C.4  D.8
正确答案: D
解析:本题考查位运算< <、/,以及逻辑运算符||。b < <2为8,3 3||b为1,所以结果为8。

#include<stdio.h>
#include<stdlib.h>

int main()
{
	int b = 2, c;
	c = (b << 2) / (3 || b);
	printf("%d\n", c);
	system("pause");
	return 0;
}

6.7&3+12的值是15。请问这句话的说法是正确的吗?
A,正确
B.错误
正确答案: B
解析:7&3+12,因为+的优先级更高,则先计算3+12 = 15,之后和7进行二进制按位与(&),即:0111 & 1111 = 0111 = 7。

#include<stdio.h>
#include<stdlib.h>

int main()
{
	int a;
	a = 7 & 3 + 12;
	printf("%d\n", a);
	system("pause");
	return 0;
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值