c语言经典测试题3

1.题1

cpp 复制代码
int a = 248, b = 4;
int const *c = 21;
const int *d = &a;
int *const e = &b;
int const * const f = &a;

请问下列表达式哪些会被编译器禁止?

A: *c = 32; B: *d = 43 C: e=&a D: f=0x321f

我们来分析一下:const用来修饰变量是想其不被改变,也就是所谓的变得静态。但是这个const放在哪?有什么作用也是有讲究的。就比如说int const *c =21,这里的const限制的就是*c,但是没有限制c.那么我们按照这个逻辑推理一下,这个A选项用*c来赋值,但是我们原式的const限制了*c,所以这个A选项是错误的,B选项也是一样的道理。C选项的const限制的是e,但是我们使用的也是e所以也是错误的,D选项的const既限制了*f又限制了f。所以也是错误的。

2.题2

cpp 复制代码
#include <stdio.h>
int i;
void prt()
{
for (i = 5; i < 8; i++)
printf("%c", '*');
printf("\t");
}
int main()
{
for (i = 5; i <= 8; i++)
prt();
return 0;
}

上述代码的运行结果会是什么呢?

A: *** B: *** *** *** *** C: *** *** D: * * *

我们来分析一下:首先大家伙不会觉得是B选项呢?当然B选项坑定是错的,大家之所以会去选B应该是觉得main函数中for循环4次,共调用4次prt函数,所以选B但是大家可能没有看到这串代码的第一行是int i;这个代码说明什么呢?其实它是在告诉我们i是一个全局变量。当我们在第一次调用prt的时候,i在其函数中变为9后跳出,但是它出函数的时候,变量i并没有销毁,而是继续为9,再次回到main函数,发现判断式为假,跳出循环,所以只调用一次prt函数,应该选A。

到底是不是呢?我们运行看看:

3.题3

cpp 复制代码
int main()
{
int a=3;
printf("%d\n",(a+=a-=a*a));
return 0;
}

这串代码的运行结果是什么呢?

这一题我们需要考虑运算符的优先级。这里的+=其实就是我们的a+=1等价于a=a+1,所以这里的式子就等价于a=a+(a=a-a*a),这样的话我们就先计算括号里面的式子,a=a+a=-6;所以结果为-12。

我们运行看看:

4.题4

cpp 复制代码
​
int main()
{
int m=65;
int n=14;
printf("Enter m,n;");
while (m!=n) 
{
while(m>n) m=m-n; 
while(n>m) n=n-m; 
}
printf("m=%d\n",m);
return 0;
}

​

我们来分析一下:其实这题比较简单大家只需要认真计算即可,我们只需要注意随着判断式的改变静茹的循环不一样,进行的式子也会不同,但是不要忘记了验算一下。

运行看看:

5.题5(首先输入要输入的整数个数 n ,然后输入 n 个整数。输出为 n 个整数中负数的个数,和所有正整数的平均值,

结果保留一位小数。)

cpp 复制代码
#include<stdlib.h>
#include<stdio.h>
#include<assert.h>
int main()
{
	int n, contu1 = 0;
	int contu2 = 0;
	float sum = 0;
	scanf("%d ", &n);
	int* pt = (int*)malloc(n * sizeof(int));
	assert(pt);
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &pt[i]);
	}
	for (int i = 0; i < n; i++)
	{
		
		if (*pt < 0)
		{
			contu1++;
		}
		else if (*pt > 0)
		{
			sum += *pt;
			contu2++;
		}
		pt++;
	}
	
	printf("%d %.1f", contu1,sum/contu2);
	free(pt);
	pt = NULL;
	return 0;
}

大家可以动手尝试一下,当然这不是唯一的结果。也期待收到大家的私信,和我交流一下。
谢谢

相关推荐
明志数科1 小时前
4D时序标注技术详解:让机器人理解连续动作的数据基础
java·算法·机器人
KaMeidebaby1 小时前
卡梅德生物技术快报|原核表达系统工艺优化:包涵体重折叠 + 分子筛纯化实现功能 RBD 高效制备,附全参数配置
前端·人工智能·算法·数据挖掘·数据分析
无限码力2 小时前
携程0510笔试真题【单数组交换】
算法·携程笔试·携程笔试真题·携程0510笔试真题
zlinear数据采集卡2 小时前
基准电压电路深度解析:从理论参数到ZLinear采集卡的精准参考实战
c语言·单片机·嵌入式硬件·fpga开发·自动化
Love_云宝儿2 小时前
WKT数据示例并与GeoJSON数据对比
数据结构·gis
BlockWay2 小时前
WEEX Labs 周度观察:微软-OpenAI 合作调整与AI 多云趋势
大数据·人工智能·算法·安全·microsoft
风筝在晴天搁浅3 小时前
快手 CodeTop LeetCode 224.基本计算器
数据结构·算法·leetcode
Smoothcloud润云3 小时前
5大功能精修,重构AI算力使用体验!
java·人工智能·windows·算法·重构·编辑器·sublime text
日晨难再3 小时前
C语言&Python&Bash&Tcl:全局变量和局部变量
c语言·python·bash·tcl
计算机安禾3 小时前
【算法分析与设计】第41篇:确定性与非确定性多项式时间:P与NP的形式化
算法