TEST20221130第一阶段

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

选择题

1.

求输出结果:
int cnt = 0;
int fib(int n)
{
    cnt++;
    if (n == 0)
        return 1;
    else if (n == 1)
        return 2;
    else
        return fib(n - 1) + fib(n - 2);
}
void main()
{
    fib(8);
    printf("%d", cnt);
}

A.41
B.67
C.109
D.177

答案:B


2.

在上下文和头文件均正常情况下,以下程序的输出结果是(    )

int x = 1;
do {
    printf("%2d\n", x++);
} while (x--);

A.1
B.无任何输出
C.2
D.陷入死循环

答案:D

int main()
{
    int x = 1;
    do {
        printf("%2d\n", x++);
    } while (x--);
    return 0;
}


3.

下面的代码段中,执行之后i和j的值是什么(    )

int i = 1;
int j;
j = i++;

A.1,1
B.1,2
C.2,1
D.2,2

答案:C


4.

以下程序的k最终值是(    )

int i = 10;
int j = 20;
int k = 3;
k *= i + j;

A.90
B.50
C.70
D.30

答案:A


5.

以下C程序的输出结果是(    )

#include<stdio.h>
#include<stdlib.h>
int a = 1;
void test()
{
    int a = 2;
    a += 1;
}
int main()
{
    test();
    printf("%d\n", a);
    return 0;
}

A.1
B.2
C.3
D.4

答案:A


6.

以下描述中正确的是(    )

A.表示m>n为true或者m<n为true的表达式为m>n && m<n
B.switch语句结构中必须有default语句
C.如果至少有一个操作数为true,则包含“||”运算符的表达式为true
D.if语句结构中必须有else语句

答案:C


7.

C语言规定,在一个源程序中,main函数的位置(    )

A.必须在最开始
B.必须在系统调用的库函数的后面
C.可以任意
D.必须在最后

答案:C


8.

以下叙述不正确的是(    )

A.一个c源程序可由一个或多个函数组成
B.一个c源程序必须包含一个main函数
C.c程序的基本组成单位是函数
D.在c程序中,注释说明只能位于一条语句的后面

答案:D


9.

以下叙述正确的是(    )

A.在c程序中,main函数必须位于程序的最前面
B.c程序的每行中只能写一条语句
C.c语言本身没有输入输出语句
D.在对一个c程序进行编译的过程中,可发现注释中的拼写错误

答案:C


10.

在上下文及头文件据正常的情况下,执行如下代码,c的值是(    )

int a = 0, c = 0;
do {
    --c;
    a = a - 1;
}while(a > 0)

A.0
B.1
C.-1
D.死循环

答案:C


11.

假定x和y为double型,则执行x=2,y=x+3/2;后,y的值为(    )

A.3.500000
B.3
C.2.000000
D.3.000000

答案:D

int main()
{
    double x = 2;
    double y = x + 3 / 2;
//3/2为整数除法,等于1
    printf("%lf", y);
    return 0;
}


12.

以下for循环的执行次数是(    )

for (int x = 0, y = 0; (y = 123) && (x < 4); x++);

A.是无限循环
B.循环次数不定
C.4次
D.3次

答案:C

解析:(y = 123)——y被赋值:123,为真。

int main()
{
    int count = 0;
    for (int x = 0, y = 0; (y = 123) && (x < 4); x++)
  
 //x,y在for内进行初始化:程序先进入for内,再对y进行赋值,对x进行判断,最后进行调整
    {
        count++;
    }

    return 0;
}


13.

若有定义语句:int year=1009,*p=&year;以下不能使变量year中的值增至1010的语句是(    )

A.*p += 1;
B.(*p)++;
C.++(*p);
D.*p++;

答案:D

解析:操作符优先级的考察

A.
int main()
{
    int year = 1009;
    int* p = &year;
    *p += 1;

    printf("%d", year);
    return 0;
}

B.
int main()
{
    int year = 1009;
    int* p = &year;
    (*p)++;

    printf("%d", year);
    return 0;
}

C.
int main()
{
    int year = 1009;
    int* p = &year;
    ++(*p);

    printf("%d", year);
    return 0;
}

D.
int main()
{
    int year = 1009;
    int* p = &year;
    *p++;//加的是p

    printf("%d", year);
    return 0;
}


14.

选择表达式11|10的结果(本体数值均为十进制)(    )

A.11
B.10
C.8
D.2

答案:A

解析:

  |   按位或
运算法则:
有1则为1,全0方为0

11|10
11        00000000000000000000000000001011
10        00000000000000000000000000001010
得:     00000000000000000000000000001011        即,11


15.

char a; int b; float c; double d;
则表达式a*b+d-c值的类型为(    )

A.float
B.int
C.char
D.double

答案:D

解析:整型提升与算术转换的考察

编程题

1.求两个数的最小公倍数

正整数A和正整数B的最小公倍数是指能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。

数据范围:1≤a,b≤100000

思路:1,最大公约数相关定理:a,b为非零整数,a>b,a÷b=q……r,其中a与b的最大公约数等于b与r的最大公约数,表示为:
          (a,b)=(b,r);
        2.先找出最大公因数(Greatest Common Factor:Gcd/Highest Common Factor:Hcf),
          再找出两数分别除以最大公因数的商:quo1,quo2(Quotient 商),
          再将这三个数相乘求积,即为最小公倍数(Least Common Multiple:LCM/Lowst Common Multiple:LCM)。
          即可表示为:gcd*quo1*quo2=a*quo2=b*quo1=lcm

int main()
{
    int A = 0;
    int B = 0;
    scanf("%d %d", &A, &B);
    int a = A;
    int b = B;
    int quo = a / b;
    int rem = a % b;
    for (rem = a % b; rem != 0; rem = a % b)
    {
        quo = a / b;
        a = b;
        b = rem;
    }
    int gcd = b;

    int q = A / gcd;

    int lcm = 0;
    lcm = q * B;

    printf("%d\n", lcm);

    return 0;
}

标准答案:

(1)

int main()
{
    int a = 0;
    int b = 0;
    scanf("%d %d", &a, &b);

    //求最小公倍数
    int m = (a > b ? a : b);
    while (m % a != 0 || m % b != 0)
//m%a==0并且m%b==0,跳出循环:最小公倍数——最小的刚好能整除a和b的数。
    {
        m++;
    }
    printf("%d\n", m);

    return 0;
}

(2)

思路:
设m为a和b的最小公倍数,且m/a=i,
则必有:a * i % b == 0;

int main()
{
    int a = 0;
    int b = 0;
    scanf("%d %d", &a, &b);

    int i = 1;
    while (a * i % b != 0)
    {
        i++;
    }
    printf("%d\n", a * i);
    return 0;
}

拓展:求三个数的最小公因数

思路:


2.倒置字符串

将一句话的单词进行导致,标点不倒置,比如:I like Beijing.  倒置后为:Beijing. like 1

标准答案:

思路:
(1).逆序整个字符串;  .gnijieB ekil I
(2).逆序每个单词。    Beijing. like I

#include<string.h>
#include<assert.h>

void reverse(char* left, char* right)
{
    assert(left && right);
    while (left < right)
    {
        char tmp = *left;
        *left = *right;
        *right = tmp;
        left++;
        right--;
    }
}
int main()
{
    char arr[100] = { 0 };
    
//因为字符串中含空格,因此选用gets()
    gets(arr);
    int len = strlen(arr);

    //逆序字符串
    reverse(arr, arr + len - 1);
    
    
//逆序单词
    char* cur = arr;//因为从始至终都是在一个数组内进行置换,因此需保留数组名储存首元素地址。
    while(*cur)//'\0'结束
    { 
        char* start = cur;
//cur会++,存放单词首地址,与cur分别对应单词首元素地址和末元素地址,方便倒置
        while (*cur != ' ' && *cur != '\0')//打印每个单词
        {
            cur++;
//下标增加,至空格或'\0'停止。
        }
        reverse(start, cur - 1);
//以第一段为例,现在还是".gnijieB",需将其倒置为"Beijing."。
        if (*cur != '\0')//如果不对'\0'加以限制,cur++又会进入新的空间,从而造成死循环。
            cur++;//刚刚是遇到空格,cur++,跳过空格,进入下一次循环
    }
    printf("%s\n", arr);

    return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/769405.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Hadoop权威指南-读书笔记-02-关于MapReduce

Hadoop权威指南-读书笔记 记录一下读这本书的时候觉得有意思或者重要的点~ 还是老样子~挑重点记录哈&#x1f601;有兴趣的小伙伴可以去看看原著&#x1f60a; 第二章 关于MapReduce MapReduce是一种可用于数据处理的编程模型。 MapReduce程序本质上是并行运行的&#xff0c…

行业模板|DataEase旅游行业大屏模板推荐

DataEase开源数据可视化分析工具于2022年6月发布模板市场&#xff08;https://templates-de.fit2cloud.com&#xff09;&#xff0c;并于2024年1月新增适用于DataEase v2版本的模板分类。模板市场旨在为DataEase用户提供专业、美观、拿来即用的大屏模板&#xff0c;方便用户根据…

网络安全--计算机网络安全概述

文章目录 网络信息系统安全的目标网络安全的分支举例P2DR模型信息安全模型访问控制的分类多级安全模型 网络信息系统安全的目标 保密性 保证用户信息的保密性&#xff0c;对于非公开的信息&#xff0c;用户无法访问并且无法进行非授权访问&#xff0c;举例子就是&#xff1a;防…

Andriod安装termux并换源

问题汇总 Error: The repository ‘https://mirrors.tuna.tsinghua.edu.cn/termux/termux-package-24 stable Release’ does not have a Release file. 更换源&#xff08;这里使用的是清华大学源&#xff09; 打开文件 nano $PREFIX/etc/apt/sources.list手动修改 deb htt…

Powershell 获取电脑保存的所有wifi密码

一. 知识点 netsh wlan show profiles 用于显示计算机上已保存的无线网络配置文件 Measure-Object 用于统计数量 [PSCustomObject]{ } 用于创建Powershell对象 [math]::Round 四舍五入 Write-Progress 显示进度条 二. 代码 只能获取中文Windows操作系统的wifi密码如果想获取…

ETCD概述--使用/特性/架构/原理

ETCD概述 ETCD是一个高度一致的分布式键值存储, 它提供了一种可靠的方式来存储需要由分布式系统或机器集群访问的数据(高可用, 强一致性)​全局的配置服务中心. 本文将介绍其特性、相关操作和常见的应用场景. 如果想了解更多, 请查阅我的技术博客: https://dingyuqi.com 特性 …

红酒与文学:探索文字背后的酒香

在文学的海洋中&#xff0c;红酒如同一股不同的香风&#xff0c;轻轻拂过书页&#xff0c;为文字的世界增添了一抹诱人的色彩。今天&#xff0c;就让我们一起踏上这段奇妙的旅程&#xff0c;探索红酒与文学之间的奇妙联系&#xff0c;感受文字背后的酒香&#xff0c;特别是以雷…

第11章 规划过程组(二)(11.8排列活动顺序)

第11章 规划过程组&#xff08;二&#xff09;11.8排列活动顺序&#xff0c;在第三版教材第388~389页&#xff1b;文字图片音频方式 第一个知识点&#xff1a;主要工具与技术&#xff08;重要知识点&#xff09; 1、紧前关系绘图法&#xff08;PDM&#xff09;或前导图法&#…

宝塔Linux面板配置环境 + 创建站点

一、安装 &#xff08;1&#xff09;进入宝塔官网 https://www.bt.cn/new/index.html &#xff08;2&#xff09;点击“ 立即免费安装 ”&#xff0c;选择 Centos安装脚本 &#xff08;3&#xff09;进入 ssh 输入以下命令安装宝塔 yum install -y wget && wget -O …

【Docker安装】OpenEuler系统下部署Docker环境

【Docker安装】OpenEuler系统下部署Docker环境 前言一、本次实践介绍1.1 本次实践规划1.2 本次实践简介二、检查本地环境2.1 检查操作系统版本2.2 检查内核版本2.3 检查yum仓库三、卸载Docker四、部署Docker环境4.1 配置yum仓库4.2 检查可用yum仓库4.3 安装Docker4.4 检查Docke…

Golang 依赖注入设计哲学|12.6K 的依赖注入库 wire

一、前言 线上项目往往依赖非常多的具备特定能力的资源&#xff0c;如&#xff1a;DB、MQ、各种中间件&#xff0c;以及随着项目业务的复杂化&#xff0c;单一项目内&#xff0c;业务模块也逐渐增多&#xff0c;如何高效、整洁管理各种资源十分重要。 本文从“术”层面&#…

Linux高并发服务器开发(十一)UDP通信和本地socket通信

文章目录 1 TCP和UDP的区别2 UDPAPI流程服务端流程客户端流程 代码服务端客户端 3 本地socket通信服务端客户端客户端代码 1 TCP和UDP的区别 2 UDP API 流程 服务端流程 客户端流程 代码 服务端 #include<sys/socket.h> #include<stdio.h> #include<arpa/in…

图像增强方法汇总OpenCV+python实现【第一部分:常用图像增强方法】

图像增强方法汇总OpenCVpython实现【第一部分】 前言常用的图像增强方法1. 旋转&#xff08;Rotation&#xff09;&#xff1a;2. 平移&#xff08;Translation&#xff09;&#xff1a;3. 缩放&#xff08;Scaling&#xff09;&#xff1a;4. 剪切变换&#xff08;Shear Trans…

Mac本地部署大模型-单机运行

前些天在一台linux服务器&#xff08;8核&#xff0c;32G内存&#xff0c;无显卡&#xff09;使用ollama运行阿里通义千问Qwen1.5和Qwen2.0低参数版本大模型&#xff0c;Qwen2-1.5B可以运行&#xff0c;但是推理速度有些慢。 一直还没有尝试在macbook上运行测试大模型&#xf…

bug,属性注入时为null

因为在使用拦截器时使用的是new的这个类放容器的 解决方法&#xff1a; 使用有参构造器&#xff0c;在new对象时传入值

SpringBoot 通过Knife4j集成API文档 在线调试

介绍 Knife4j 是一款基于 Swagger 构建的增强型 API 文档生成工具&#xff0c;它提供了更多的定制化功能和界面优化&#xff0c;使得生成的 API 文档更加美观和易用。它可以帮助开发者快速生成和管理 API 文档&#xff0c;支持在线调试和交互。 依赖 <!--knife4j--> &…

使用Python3和Selenium打造百度图片爬虫

开篇 本文的目的在于实现一个用来爬取百度图片的爬虫程序,因该网站不需要登录&#xff0c;所以相对来说较为简单。下面的爬虫程序中我写了比较多的注释&#xff0c;以便于您的理解。 准备 请确保电脑上已经安装了与chrome浏览器版本匹配的chromeDriver&#xff0c;且电脑中已经…

【C++】解决 C++ 语言报错:Dangling Pointer

文章目录 引言 悬挂指针&#xff08;Dangling Pointer&#xff09;是 C 编程中常见且危险的错误之一。当程序试图访问指向已释放内存的指针时&#xff0c;就会发生悬挂指针错误。这种错误不仅会导致程序崩溃&#xff0c;还可能引发不可预测的行为和安全漏洞。本文将深入探讨悬…

C++ | Leetcode C++题解之第214题最短回文串

题目&#xff1a; 题解&#xff1a; class Solution { public:string shortestPalindrome(string s) {int n s.size();vector<int> fail(n, -1);for (int i 1; i < n; i) {int j fail[i - 1];while (j ! -1 && s[j 1] ! s[i]) {j fail[j];}if (s[j 1] …

【Linux】--help,man page , info page

我们知道Linux有很多的命令&#xff0c;那LInux要不要背命令&#xff1f; 答案是背最常用的那些就行了 那有的时候我们想查询一些命令的详细用法该怎么办呢&#xff1f; 这里我给出3种方法 1.--help --help的使用方法很简单啊 要查询的命令 --help 我们看个例子 这里我只…