【Day01_0418】C语言选择题

【Day01_0418】C语言选择题

1.以 下 for 循 环 的 执 行 次 数 是(C)。
for(x=0,y=0;(y=123)&&(x<4);x++);

A 是无限循环
B 循环次数不定
C 4次
D 3次

解析:
区分"==“与”=“,”="为赋值语句

2.以下程序的运行结果是(B)
int main(void)
{
	printf("%s , %5.3s\n", "computer", "computer");
	return 0;
}

A computer , puter
B computer , com
C computer , computer
D computer , compu.ter

解析:
C语言中打印格式控制%m.ns
m:输出字符串的宽度
n:左起截取n个字符,并且右对齐,左边补空格
字符串长度 > n > m 时,m失效
n > 字符串长度,等价于 %s
%5.3s: com

3.下列main()函数执行后的结果为(B)
int func()
{
	int i, j, k = 0;
	for (i = 0, j = -1; j = 0; i++, j++)
	{
		k++;
	}
	return k;
}
int main()
{
	cout << (func());
}

A -1
B 0
C 1
D 2

解析:
循环条件j=0,赋值语句,为假

4.下面程序输出是什么?(D)
#include <stdio.h>
int main()
{
	int a = 1, b = 2, c = 3, d = 0;
	if (a == 1 && b++ == 2)
		if (b != 2 || c-- != 3)
			printf("%d,%d,%d\n", a, b, c);
		else
			printf("%d,%d,%d\n", a, b, c);
	else
		printf("%d,%d,%d\n", a, b, c);
	return 0;
}

A 1,2,3
B 1,3,2
C 3,2,1
D 1,3,3

解析:
逻辑或短路原则

5.若有定义语句: int a=10 ; double b=3.14 ; 则表达式 ‘A’+a+b 值的类型是(C)

A char
B int
C double
D float

解析:
类型提升

6.在int p[][4]={{1},{3,2},{4,5,6},{0}};中,p[1][2]的值是(B)

A 1
B 0
C 6
D 2

7.选择表达式 11|10 的结果(本题数值均为十进制)(A)

A 11
B 10
C 8
D 2

8.fun(21)运行结果是(A)
int fun(int a) 
{
	a ^= (1 << 5) - 1;
	return a;
}

A 10
B 5
C 3
D 8

解析:
" ^= "右边是一个整体,
异或,相异为1,相同为0

9.若有定义语句: int year=1009 , *p=&year ;以下不能使变量 year 中的值增至 1010 的语句是(D)

A *p+=1;
B (*p)++;
C ++(*p)
D *p++

解析:
A.‘+=’属于赋值运算符,优先级较低,而解引用即’++‘、’–‘等都属于单目运算符,优先级较高,所以p先和 优先级高的’*’ 符号结合
对于*p++,两者优先级相同,因为是后置++,所以先解引用得到*p的值,为1009,再对指针本身进行自增

10.下面关于"指针"的描述不正确的是(A)

A 当使用free释放掉一个指针内容后,指针变量的值被置为NULL
B 32位系统下任何类型指针的长度都是4个字节
C 指针的数据类型声明的是指针实际指向内容的数据类型
D 野指针是指向未分配或者已经释放的内存地址

解析:
造成野指针的原因:定义指针未初始化、free指针未置空、越界访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值