C语言入门必做踩坑题《篇二》

简介: C语言入门必做踩坑题《篇二》

第1题

🎗以下程序运行时,若输入 1abcedf2df<回车> 输出的结果是多少?

#include<stdio.h>
int main()
{
  char a = 0, ch;
  while((ch = getchar()) != '\n')
  {
    if(a % 2 != 0 && (ch >= 'a' && ch <= 'z'))
      ch = ch - 'a' + 'A';
    a++;
    putchar(ch);
  }
  printf("\n");
  return 0;
}

A. 1abcedf2df

B. 1ABCEDF2DF

C. 1AbCeDf2dF

D. 1abceDF2DF

📝 分析:

此题需要对 ASCII 码有一些认识,如下图只要记住三个主要的标志就行了

    ❗ 执行步骤 ❕

        a   ch

        0   1

        1   A

        2   b

        3   C

        4   e

        5   D

        6   f

        7   2

        8   d

        9      F

所以结果选 C

第2题

🎗以下哪个选项一定可以将 flag 的第二个 bit 位置 0,且其它 bit 位不变

A. flag &= ~2

B. flag != 2

C. flag ^= 2

D. flag >>= 2

📝 分析:

0 0 0 0 1 1 1 1

1 1 1 1 1 1 0 1  对于 15 这个数字我们只需要与上这一串数字即可

0 0 0 0 0 0 1 0  而 15 要与的那个值即是 ~2 的值

所以选择 A

第3题

🎗以下程序的输出结果是?

#include<stdio.h>
int main()
{
  int x = 1;
  do{
    printf("%2d\n", x++);
  }while(x--);
  return 0;
}

A. 1

A. 无任何输出

C. 2

D. 死循环

📝 分析:

此题虽然简单,但还是有需要注意的地方

    x++:这种操作会破坏原本 x 的值

    y = x + 1:这种操作不会破坏 x 的值

所以选择 D

第4题

🎗观察并判断以下代码的结果?

#include<stdio.h>
#include<stdlib.h>
int main()
{
  int a = -3;
  unsigned int b = 2;
  long c = a + b;
  printf("%u\n", c);
  return 0;
}

A. -1

B. 4294967295

C. 0x7FFFFFFF

D. 0xFFFFFFFF

📝 分析:

这里计算的一定是它们在内存中的补码

所以选择 B

第5题

🎗编程题<难度系数⭐>

📝 题述:有一个有序数字序列,从小到大排序,将一个新输入的数插入到序列中,保证插入新数后,序列仍然是升序。

🍳 输入描述:

    第一行输入一个整数(0≤N≤50)。

    第二行输入N个升序排列的整数,输入用空格分隔的N个整数。

    第三行输入想要进行插入的一个整数。

🍳 输出描述:

    输出为一行,N+1个有序排列的整数。

💨 示例:

输入:

    5

    1 6 9 22 30

    8

输出:

    1 6 8 9 22 30

🧷 平台:Visual studio 2017 && windows

牛客网原题

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
  //输入的整数n
    int n = 0;
    scanf("%d", &n);
    int arr[51] = { 0 };
    int i = 0;
    //入n个数据
    for(i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }
    //要插入的数据
    int insert = 0;
    scanf("%d", &insert);
    for(i = n - 1; i >= 0; i--)
    {
      //arr[i] > insert时往后挪一个位置
        if(arr[i] > insert)
        {
            arr[i + 1] = arr[i];
        }
        //arr[i] <= insert时插入数据
        else
        {
            arr[i + 1] = insert;
            break;
        }
    }
    //这是insert比所有数都小的情况(利用for循环中i的变化,i<0说明全部的数都往右挪了一个单位都没找到)
    if(i < 0)
        arr[0] = insert;
    //输出
    for(i = 0; i <= n; i++)
    {
        printf("%d ", arr[i]);
    }
    return 0;
}

❗ 当 arr[i] <= insert 时也可以直接跳出去处理 ❕

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
  //输入的整数n
    int n = 0;
    scanf("%d", &n);
    int arr[51] = { 0 };
    int i = 0;
    //入n个数据
    for(i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }
    //要插入的数据
    int insert = 0;
    scanf("%d", &insert);
    for(i = n - 1; i >= 0; i--)
    {
      //arr[i] > insert时往后挪一个位置
        if(arr[i] > insert)
        {
            arr[i + 1] = arr[i];
        }
        //arr[i] <= insert时跳出循环再插入数据
        else
        {
            break;
        }
    }
    //这里就无需判断insert比所有数都小的情况
  arr[i + 1] = insert;
    //输出
    for(i = 0; i <= n; i++)
    {
        printf("%d ", arr[i]);
    }
    return 0;
}



相关文章
|
1月前
|
存储 编译器 C语言
【C语言程序设计——入门】C语言入门与基础语法(头歌实践教学平台习题)【合集】
本文档介绍了C语言环境配置和编程任务,主要内容包括: - **C语言环境配置**:详细讲解了在Windows系统上配置C语言开发环境的步骤。 - **第1关:程序改错**:包含任务描述、相关知识(如头文件引用、基本语法规则)、编程要求、测试说明及通关代码。 - **第2关:scanf函数**:涉及`scanf`和`printf`函数的格式与使用方法,提供编程要求、测试说明及通关代码。 文档结构清晰,涵盖从环境搭建到具体编程任务的完整流程,适合初学者学习和实践。
51 4
|
1月前
|
C语言
【C语言程序设计——入门】基本数据类型与表达式(头歌实践教学平台习题)【合集】
这份文档详细介绍了编程任务的多个关卡,涵盖C语言的基础知识和应用。主要内容包括: 1. **目录**:列出所有关卡,如`print函数操作`、`转义字符使用`、`数的向上取整`等。 2. **各关卡的任务描述**:明确每关的具体编程任务,例如使用`printf`函数输出特定字符串、实现向上取整功能等。 3. **相关知识**:提供完成任务所需的背景知识,如格式化输出、算术运算符、关系运算符等。 4. **编程要求**:给出具体的代码编写提示。 5. **测试说明**:包含预期输入输出,帮助验证程序正确性。 6. 文档通过逐步引导学习者掌握C语言的基本语法和常用函数,适合初学者练习编程技能。
45 1
|
2月前
|
存储 NoSQL 编译器
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
指针是一个变量,它存储另一个变量的内存地址。换句话说,指针“指向”存储在内存中的某个数据。
124 3
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
|
4月前
|
C语言
回溯入门题,数据所有排列方式(c语言)
回溯入门题,数据所有排列方式(c语言)
|
4月前
|
安全 编译器 C语言
C++入门1——从C语言到C++的过渡
C++入门1——从C语言到C++的过渡
93 2
|
4月前
|
存储 Java 编译器
初识C语言1——C语言入门介绍
初识C语言1——C语言入门介绍
57 1
|
6月前
|
C语言
C语言------程设设计入门
这篇文章是C语言程序设计的入门教程,涵盖了C程序的实现过程、VC集成开发环境的使用、基本数据类型的使用、格式控制字符的作用,以及通过示例代码演示了如何使用printf()函数输出不同类型的数据。
C语言------程设设计入门
|
6月前
|
NoSQL Java 编译器
C语言从入门到精通该怎样学?
持续学习与实践:编程是一门需要不断学习和实践的技能,要保持对新技术和新知识的敏感性,并持续进行编程实践。
75 1
|
7月前
|
编译器 C语言 C++
C++从遗忘到入门问题之C++持从C语言的过渡问题如何解决
C++从遗忘到入门问题之C++持从C语言的过渡问题如何解决
|
7月前
|
存储 Java C语言
【C语言入门】初识C语言:掌握编程的基石
【C语言入门】初识C语言:掌握编程的基石
87 4
【C语言入门】初识C语言:掌握编程的基石

热门文章

最新文章