c语言经典测试题1

1.题1

cpp 复制代码
int x=5,y=7;
void swap()
{
int z;
z=x;
x=y;
y=z;
}
int main()
{
int x=3,y=8; 
swap();
printf("%d,%d\n",x, y);
return 0;
}

++A: 5,7 B: 7,5 C: 3,8 D: 8,3++

大家思考一下选哪一个呢?

我们来分析一下:上述代码中我们创建了4个int类型的变量,x=5,y=7为全局变量,而x=3,y=8为局部变量,运算过程中如果全局变量和局部变量名字相同,则优先使用局部变量。

我们来看一下运行结果:

2.题2

A: double x5 = {2.0, 4.0, 6.0, 8.0, 10.0};

B: char c2\[\] = {'\x10', '\xa', '\8'};

C: char c1\[\] = {'1','2','3','4','5'};

D: int y5+3={0, 1, 3, 5, 7, 9};

上述定义不正确的是?

其实是选b,因为\表示8进制,8进制中没有\8最多也就\7.

3.题3

#define INT_PTR int*

typedef int* int_ptr;

INT_PTR a, b;

int_ptr c, d;

上述为指针的有那些?

为指针的应该是acd,因为宏只会替换,替换后的结果为int*a,b,这样的话只有a为指针,b却不是。

而typedef是重命名,int_ptr c,d,表并列,故都是指针。

4.题4

int b;

char c10;

上述类型输入应该怎样书写?

A: scanf("%d%s",&b,&c); B: scanf("%d%s",&b,c);

C: scanf("%d%s",b,c); D: scanf("%d%s",b,&c);

答案应该为:a,b,因为我们在使用scanf时需要提供输入地址,但是数组的名字就是它的首元素地址,所以&arr和arr的值是相同的,但是b必须需要&才能输入。

5.题5(编写一个代码,求一个整数存储在内存中二进制中1的个数)

代码实现:

cpp 复制代码
void Getonce(int x)
{
	int num = 0;
	for (int i = 0; i < 32; i++)
	{
		if ((x >> i) & 1 == 1)
		{
			num++;
		}
	}
	printf("共有%d个1", num);
}

int main()
{
	int n = 0;
	scanf("%d", &n);
	Getonce(n);
	return 0;
}

当然这只是一中方法,但是大家在实现是一定要思考自己的代码在计算正负数时是否都可行即可。

6.题(等差数列 2,5,8,11,14, ... 。(从 2 开始的 3 为公差的等差数列),求等差数列前 n 项和)

代码实现:

还是和上面的实现一样,只是示范。大家可以随意发挥,但是记住实现后要进行测试。
谢谢

相关推荐
luj_17687 小时前
残熵算法实时化三大瓶颈突破
c语言·开发语言·网络·经验分享·算法
不听话坏8 小时前
Ignition篇(下 一) 动态执行前的事情
开发语言·前端·javascript
likeyi078 小时前
require 和 import的区别
开发语言·前端
远离UE49 小时前
UE5 compute shader 原子加
开发语言·c++·ue5
C+-C资深大佬9 小时前
C++ 显式类型转换详解:static_cast、dynamic_cast、const_cast、reinterpret_cast
开发语言·c++
KaMeidebaby10 小时前
卡梅德生物技术快报|抗体亲和力成熟工业化调控新机制:差异性浆细胞增殖工艺优化思路
java·开发语言·人工智能·算法·机器学习·架构·spark
luj_176810 小时前
心形曲线轨迹控制三大关键技术
c语言·开发语言·c++·经验分享·算法
Mininglamp_271811 小时前
Claude Code 封禁中国开发者之后:本地 AI 编程工具的替代方案实测
开发语言·人工智能·windows·开源软件·ai-native
思麟呀11 小时前
C++17(三)if constexpr+折叠表达式
开发语言·c++
醉城夜风~11 小时前
Java详解经典算法题:接雨水(三种实现方案+原理剖析)
java·开发语言·算法