【知识碎片】2024_05_09

本篇记录了关于C语言的一些题目(puts,printf函数的返回值,getchar,跳出多重循环),和一道关于位运算的代码[整数转换]。


C语言碎片知识

如下程序的功能是( )

#include <stdio.h>
int main()
{
char ch[80] = "123abcdEFG*&";
int j;
puts(ch);
for(j = 0; ch[j] != '\0'; j++)
if(ch[j] >= 'A' && ch[j] <= 'Z')
ch[j] = ch[j] + 'e' - 'E';
puts(ch);
return 0;
}

A: 测字符数组ch的长度
B: 将数字字符串ch转换成十进制数
C: 将字符数组ch中的小写字母转换成大写
D: 将字符数组ch中的大写字母转换成小写

答案:D    puts(函数名)输出字符串数组


对于代码段,下面描述正确的是( )

t=0;
while(printf("*"))
{
t++;
if (t<3)
break;
}

A: 其中循环控制表达式与0等价 B: 其中循环控制表达式与'0'等价
C: 其中循环控制表达式是不合法的 D: 以上说法都不对

答案:B

printf函数调用的返回值是字符串的个数,所以printf("*")的返回值是1,while(1)条件恒为真。0和'0'是不一样的,'0'的ascll码值为48。while(48)也恒为真。


向一个字符数组输入字符串的方法之getchar()

char ch;
while(getchar() != "\n")
{
        ;
}

我们知道C语言的 break 语句只能跳出离它最近的一层循环,可是有时候我们需要跳出多层循环,下列跳出多层
循环的做法正确的是【多选】( )
A: 将程序写成函数用return结束函数,便可跳出循环
B: 修改外层循环条件例如

for( int i = 0 ; i < MAX1 ; i ++ )
{
    for( int j = 0 ; j < MAX2 ; j ++ )
    {
        if( condition )
        {
            i = MAX1;
            break;
        }
    }
}

C: 在外层循环设置判断条件例如

for( ; symbol != 1 && condition2 ; )
{
    for( ; symbol != 1 && condition3 ; )
    {
        if( condition1 )
        symbol = 1 ;
    }
}

D: 在外层循环后面加入break例如


for( ; condition2 ; )
{
for( ; condition3 ; )
{
if( condition1 )
symbol = 1 ;
} if(
symbol == 1 )
break ;
}

答案:ABCD  跳出多重循环的正确做法↑ 


每日代码

整数转换

. - 力扣(LeetCode)

int get_bin_count(int num) {
    int count = 0;
    for (int i = 0; i < 32; i++) {
        if ((num >> i) & 1)
        count++;
    } 
    return count;
} 

int convertInteger(int A, int B){
    return get_bin_count(A^B);
}

关于位运算的一道题。

先把A^B(异或,不同为1)的结果传参给get_bin_count函数,通过右移和按位与运算算出有几位为1,即A和B有几位不同,由count记录和返回。


-The End-

相关推荐

  1. Android碎片知识

    2024-05-10 08:12:02       62 阅读
  2. 知识碎片收集

    2024-05-10 08:12:02       39 阅读
  3. 知识碎片随手记-1

    2024-05-10 08:12:02       33 阅读
  4. 碎片知识】2024_05_15

    2024-05-10 08:12:02       36 阅读
  5. 知识碎片-docker初始化db,自动导入SQL

    2024-05-10 08:12:02       41 阅读
  6. 前端Vue3之基础知识碎片

    2024-05-10 08:12:02       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-10 08:12:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-10 08:12:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-10 08:12:02       82 阅读
  4. Python语言-面向对象

    2024-05-10 08:12:02       91 阅读

热门阅读

  1. Kubernetes(K8s)简介

    2024-05-10 08:12:02       29 阅读
  2. SSD (Pytorch)复现 Ubuntu20.04

    2024-05-10 08:12:02       32 阅读
  3. 解决Rust Cargo报错

    2024-05-10 08:12:02       29 阅读
  4. Php swoole和mqtt

    2024-05-10 08:12:02       31 阅读
  5. android 安全机制 和权限管理 的一点研究

    2024-05-10 08:12:02       31 阅读
  6. 快速掌握并使用Apache POI

    2024-05-10 08:12:02       28 阅读
  7. Rust - TCP Server

    2024-05-10 08:12:02       30 阅读
  8. insert语句的锁

    2024-05-10 08:12:02       26 阅读
  9. PanguSync大数据量初始化脚本

    2024-05-10 08:12:02       28 阅读
  10. 【GoLang基础】切片和数组有什么区别?

    2024-05-10 08:12:02       24 阅读
  11. 深入了解 Stylus:简洁优雅的 CSS 预处理器

    2024-05-10 08:12:02       34 阅读
  12. 二维平移矩阵 (2D translate matrix)

    2024-05-10 08:12:02       34 阅读