C-进阶测试总结

1:C

   计算j循环了多少次,分析:只有i==0的时候循环才能停止 最开始从7->4->1->-2;但是我们知道是不会产生-2这样的数字的所以依据图二得到的是254,254/3=84...2;就是84次,减了84次后得到2;再减得到-1也就是255;255/3=85...0;所以总共85+84+3+1=173;

 2:C

   分析:第一次1%2=0;跳出if到a++,a==1,打印1;第二次a==1,1%2!=0且满足后面条件进入if语句从而转换成大写A,a==2,打印A;第三次a==2,2%2==0;跳出if语句到a++,a==3,打印b;依次分析

3:A

 分析:

分析:  -3
  10000000000000000000000000000011原码
  11111111111111111111111111111100反码
  11111111111111111111111111111101补码
  2
  00000000000000000000000000000010原反补码
   补码相加之后得到
  11111111111111111111111111111111补码
  11111111111111111111111111111110反码
  10000000000000000000000000000001原码  
  就是-1

4:B

   分析:首先我们来看A选项;*p[1]指向1的首元素地址的元素B,然后加3得到E;B选项p[1]是指1的整个元素 在加3解引用指向j。

 5: B

 分析:p[1][2]就是第一行第二列就是0;

6:编程题1:

题目:

 实现:

#include <stdio.h>
#include <math.h>

//库函数 abs()
int main()
{
    int n = 0;
    scanf("%d", &n);
    int f1 = 0;
    int f2 = 1;
    int f3 = f1 + f2;
    while (1)
    {
        if (n == f2)
        {
            printf("0\n");
            break;
        }
        else if (n < f2)
        {
            if (abs(f1 - n) < abs(f2 - n))
            {
                printf("%d\n", abs(f1 - n));
            }
            else
            {
                printf("%d\n", abs(f2 - n));
            }
            break;
        }
        f1 = f2;
        f2 = f3;
        f3 = f1 + f2;
    }
    return 0;
}

 运行结果:

7:编程2

题目:

 实现:

class Solution {
public:
void replace(char* str, int length)
{
//统计空格的个数
int space_count = 0;
char* cur = str;
while (*cur)
{
if (*cur == ' ')
space_count++;
cur++;

}
//计算end1,end2;
char* end1 = str + length- 1;
char* end2 = str + length - 1 + 2 * space_count;
while (end1 != end2)
{
if (*end1 == ' ')
{
*end2-- = *end1--;
}
else
{
*end2-- = '0';
*end2-- = '2';
*end2-- = '%';
end1--;
}
}
}

};

 

  • 20
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 17
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值