c语言经典测试题9

1.题1

cpp 复制代码
#include <stdio.h>
int main()
{
int i = 1;
sizeof(i++);
printf("%d\n", i);
return 0;
}

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

我们来分析一下:其实这题的难点就是sizeof操作后i的结果是否会改变,首先我们创建了一个整型i,我们知道i++为后置++,先试用后加1,我们知道一般表达式的运算是在运行时执行的,而sizeof是一个编译阶段就执行的运算符,在其内的任何运算都不执行,只推测出其中表达式结果的类型求其大小,故前后i的值不变。所以i的值还是为1.

我们运行看看:

2.题2

cpp 复制代码
int main()
{
char c='A';
if('0'<=c<='9') printf("YES");
else printf("NO");
return 0;
}

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

我们来分析一下:上述代码中字符A的ASCLL值为65,if的判断条件为'0'<=c<='9'大家这个时候可能以为这还不简吗?不就是判断ASCLL值的大小,那运行结果应该为NO,事实是这样吗?

我们运行看看:

这是怎么回事呢?其实这个if的判断条件的运算顺序是不同的,'0'<=c<='9'并非判断x大于等于字符0,小于等于字符9,而是先执行'0'<=c,使用这个表达式的结果再和'9'比较,'0'的ASCII码值是48,'A'的ASCII码值是'65',故'0'<c是真值1,1无疑是小于字符'9'的,最终是真。

3.题3

cpp 复制代码
unsigned short x = 65530;
unsigned int y = x;

假设编译器规定 int 和 short 类型长度分别为32位和16位,若有下列C语言语句,则 y 的机器数为:

A: 0000 7FFA B: 0000 FFFA C: FFFF 7FFA D: FFFF FFFA

我们来分析一下:unsigned short类型的x变量2个字节保存了65530,十六进制形式为0xFFFA,x给y赋值时会整型提升,而无符号数在提升时高位补0,其实就相当于把x的值放在了y的低2个字节的空间中,故选B

4.题4

cpp 复制代码
#include<stdio.h>
int main()
{
int n = 1001;
int ans = 0;
for(int i = 1; i <= n; ++i)
{
ans ^= i % 3;
}
printf("%d",ans);
return 0;
}

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

我们来分析一下:i % 3 的值按1、2、0循环,可推算出ans按1、3、3、2、0、0循环,循环进行1001次,而1001%6=5,也就是ans按规律得到的第5个数为最终结果,故ans=0

5.题5

给定一个二进制数组, 计算其中最大连续 1 的个数。示例: 输入:[1,1,0,1,1,1] 输出:3 解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.

cpp 复制代码
int findMaxConsecutiveOnes(int* nums, int numsSize){
int max_count = 0, cur_size = 0;;
for (int i = 0; i < numsSize; i++) {
if (nums[i] == 1) {
cur_size++;
}else {
max_count = max_count > cur_size ? max_count : cur_size;
cur_size = 0;
}
}
max_count = max_count > cur_size ? max_count : cur_size;
return max_count;

这题的思路较为简单,统计连续1的个数,遇到0时表示连续中断,判断如果当前的统计数大于之前最大的则替换,然后继续下一个位置开始的统计即可。
谢谢

相关推荐
_GR4 分钟前
Qt开发④Qt常用控件_上_QWdget属性+按钮类控件
开发语言·c++·qt
bst@微胖子1 小时前
Python高级语法之selenium
开发语言·python·selenium
王小义笔记1 小时前
Postman如何流畅使用DeepSeek
开发语言·测试工具·lua·postman·deepseek
java1234_小锋3 小时前
一周学会Flask3 Python Web开发-request请求对象与url传参
开发语言·python·flask·flask3
流星白龙5 小时前
【C++】36.C++IO流
开发语言·c++
诚信爱国敬业友善6 小时前
常见排序方法的总结归类
开发语言·python·算法
nbsaas-boot7 小时前
Go 自动升级依赖版本
开发语言·后端·golang
架构默片8 小时前
【JAVA工程师从0开始学AI】,第五步:Python类的“七十二变“——当Java的铠甲遇见Python的液态金属
java·开发语言·python
不只会拍照的程序猿8 小时前
从插入排序到希尔排序
java·开发语言·数据结构·算法·排序算法
小哥山水之间8 小时前
在 Python 中操作 Excel 文件
开发语言·python·excel