C语言暑假刷题冲刺篇——day4

news2024/9/25 17:12:49

目录

一、选择题

二、编程题


 

  • 🎈个人主页:库库的里昂
  •  🎐CSDN新晋作者
  •  🎉欢迎 👍点赞✍评论⭐收藏
  • ✨收录专栏:C语言每日一练
  •   ✨其他专栏:代码小游戏C语言初阶
  • 🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗

【前言】

在大家学完初阶C语言后,有很多知识点是比较模糊的,我们应该多刷题,这样才能巩固我们所学知识。所以我开了一个新专栏C语言每日一刷,每一篇都包含5道选择题,2道编程题,每一道题后面都会有详细的解析。这个系列每日一更,大家来看看吧!

一、选择题

1、设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是( )

A:n=0; while(ch=getchar() != '\n') n++;

B:n=0; while(getchar() != '\n') n++;

C:for(n=0; getchar() != '\n'; n++);

D: n=0; for(ch=getchar(); ch != '\n'; n++);

【答案】D

【解析】

对于getchar()函数

每次只会从从键盘缓冲区读取一个字符,且遇到\n结束读取

对于for循环

  1.  第一个参数为循环的初始化【只执行一次】
  2.  第二个参数为循环的判断条件【每次进行条件判断,决定是否进入下次循环】
  3.  第三个参数为每次循环都执行的语句

对于 for 循环,其中第一项初始化表达式只执行一次,因此 ch 只从输入流中取一个字符,之后就再不会取字符,因此会死循环,故选D。

2、运行以下程序后,如果从键盘上输入 65 14<回车> ,则输出结果为( )
 

int main()
{
    int m, n;
    printf("Enter m,n;");
    scanf("%d%d", &m,&n);
    while (m!=n) //1
    {
        while(m>n) m=m-n; //2
        while(n>m) n=n-m; //3
    }
    printf("m=%d\n",m);
    return 0;
}

A: 3    B: 2    C: 1    D: 0

【答案】C

【解析】

考查 while 循环和循环嵌套的理解,初值 m=65,n=14 ;循环 1 判断 m!=n 为真,来到循环 2 判断 m>n 为真,执行m=m-n;直到 m=9,n=14 ;循环 2 结束来到循环 3 判断 n>m 为真,执行 n=n-m; 直到 m=9,n=5 ;循环 3 结束回到循环 1 ,如此往复直到m==n 时,循环结束,故选C。

3.若运行以下程序时,从键盘输入 ADescriptor<回车> ,则下面程序的运行结果是( )

#include <stdio.h>
int main()
{
	char c;
	int v0=0,v1=0,v2=0;
	do
	{
		switch(c=getchar())
		{
		case'a':case'A':
		case'e':case'E':
		case'i':case'I':
		case'o':case'O':
		case'u':case'U':
			v1 += 1;
		default:
			v0+= 1;v2+=1;
		}
	}while(c!='\n');
	printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
	return 0;
}

A: v0=7,v1=4,v2=7        B: v0=8,v1=4,V2=8

C: v0=11,v1=4,v2=11    D: v0=12,v1=4,v2=12

【答案】D

【解析】

代码 switch 语句中没有 break ,则每次找到入口进入后,顺序执行到代码块结束为止。例如当 c 为 'A' 时,从 case 'A' 进入,先后执行v1+=1;v0+=1;v2+=1; ,而当 c 为 'p' 时,从 default 进入,先后执行 v0+=1;v2+=1; ,容易看出最终 v0 和 v2 是相等的,v1+=1;执行4次,v0+=1;v2+=1;执行12次。故选D。

4. 如下函数是求两个int数字最大公约数的,指出其中存在的问题【多选】( )
 

int gcd(char x,char y)
{
    int min = x < y ? x : y;
    for (min = 0; min > 0; min--)
        if (x % min = 0 && y % min = 0)
            return min;
}

A: 参数类型不对                B: 循环变量min初值不对

C: 判断等于的符号不对     D: 返回类型不对

【答案】ABC

【解析】

题目函数的用途是求两个数字的最大公约数,让我们指出代码存在的问题。这种问题,即使你不知道怎么用代码求最大公约数也是能做的。

先看A选项,A说参数类型不对,那么我们观察可以发现,x,y是char型的,而题目要求两个int数字的最大公约数,参数类型不匹配,故要选A。

再看B选项,B说循环变量min初值不对,min初值被设成了0,而循环条件为min>0,因此循环一次都不会进行,更不会走到if的判断中。会直接走到return min上,最后只会返回x,y中的较小的那个,这样求最大公约数显然是错的,故要选B。

再看C选项,C说判断等于的符号不对,观察发现问题代码,if (x % min = 0 && y % min = 0)我们判断相等时要用两个=号,一个=号是赋值的意思,故要选C。

最后再看D选项,D说返回类型不对,min是int型的,而函数的返回类型也是故D错,不选。综上所述,我们的答案是ABC

5、执行下面的程序段,语句3的执行次数为( )
 

for(i = 0; i <= n-1; i++) // (1)
    for(j = n; j > i; j--) // (2)
        state; // (3)

A: n(n+2)/2    B: (n-1)(n+2)/2    C: n(n+1)/2    D: (n-1)(n+2)

【答案】C

【解析】

第一次循环有 n 次

当 i=0,第二次循环为 n 次 

当 i=1,第二次循环为 n-1 次

当 i=2,第二次循环为 n-2 次

以此类推,总次数为n+(n-1)+(n-2)+......+2+1,就是个等差数列,等于 n(n+1)/2,故选C。

二、编程题

1.OJ链接 【leetcode 题号:645. 错误的集合】【难度:简单】

集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。

给定一个数组 nums 代表了集合 S 发生错误后的结果。

请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。

示例:
输入:nums = [1,2,2,4] 输入:nums = [1,1]
输出:[2,3] 输出:[1,2]

int* findErrorNums(int* nums, int numsSize, int* returnSize){
    int* arr = (int*)malloc(sizeof(int) * 2);
    int ret = 0;
    int i = 0;
    for (i = 0; i < numsSize; i++)
    {
        ret ^= i;
    }
    int j = 0;
    for (j = 0; j < numsSize; j++)
    {
        ret ^= nums[j];
    }
    int k = 0;
    for (k = 0; k < numsSize; k++)
    {
        if (nums[k] == nums[k + 1])
            break;
    }
    ret ^= nums[k];
    arr[0] = nums[k];
    arr[1] = ret;
    *returnSize = 2;
    return arr;
}

2.OJ链接 【牛客网题号: OR141 密码检查】【难度:简单】

小明同学最近开发了一个网站,在用户注册账户的时候,需要设置账户的密码,为了加强账户的安全性,小明
对密码强度有一定要求:

  • 1. 密码只能由大写字母,小写字母,数字构成;
  • 2. 密码不能以数字开头;
  • 3. 密码中至少出现大写字母,小写字母和数字这三种字符类型中的两种;
  • 4. 密码长度至少为 8

现在小明受到了 n 个密码,他想请你写程序判断这些密码中哪些是合适的,哪些是不合法的。

输入描述:输入一个数n,接下来有n(n≤100)行,每行一个字符串,表示一个密码,输入保证字符串中只出现大写字母,小写字母和数字,字符串长度不超过100。

输出描述:输入n行,如果密码合法,输出YES,不合法输出NO

示例:
输入:1
CdKfIfsiBgohWsydFYlMVRrGUpMALbmygeXdNpTmWkfyiZIKPtiflcgppuR
输出:YES

#include <stdio.h>
#include<string.h>
#include <ctype.h>
int main() {
    int n, a = 0, b = 0, c = 0;
    scanf("%d", &n);
    char arr[101] = { 0 };
    for (int i = 0; i < n; i++)
    {
        scanf("%s", &arr);
        if (strlen(arr) < 8)
        {
            printf("NO\n");
            continue;
        }
        if (isdigit(arr[0]) != 0)
        {
            printf("NO\n");
            continue;
        }
        for (int j = 0; j < n; j++)
        {
            if (islower(arr[j]) != 0)
                a++;
            if (isupper(arr[j]) != 0)
                b++;
            if (isdigit(arr[j]) != 0)
                c++;
        }
        if (a == strlen(arr) || b == strlen(arr) || c == strlen(arr))
        {
            printf("NO\n");
            continue;
        }
        printf("YES\n");
    }
    return 0;
}

好了,今天的每日一刷就到这里结束了,感谢大家的观看!

d52ce744a5b345408dd596d71f65e762.png

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iOS逆向初探:揭开iOS App的神秘面纱

逆向是一种分析和还原应用程序的过程&#xff0c;它能够揭示应用程序内部的工作原理和代码结构。接下来我们将全面介绍iOS上的逆向&#xff0c;包括其概念、常用工具和具体实例。 1. 什么是iOS逆向&#xff1f; iOS平台逆向是将应用程序的二进制代码&#xff08;通常是经过编…

无涯教程-Python - Numbers(数字)

数字数据类型存储数值&#xff0c;它们是不可变的数据类型&#xff0c;这意味着更改数字数据类型的值将导致新分配的对象。 数字对象是在您为其分配值时创建的。例如- var11 var210 您也可以使用 del 语句删除对数字对象的引用。 del语句的语法是- del var1[,var2[,var3[..…

基于XML实现SpringIoC配置

目录 SpringIoc创建与使用的大致步骤 一.基于xml配置SpringIoc 二.基于xml配置DI 三.创建IoC容器并获取组件 SpringIoc创建与使用的大致步骤 SpringIoC的创建与使用过程分为3步 1.编写配置信息&#xff08;编写XML&#xff0c;注解、Java类&#xff09; 2.创建IoC容器&…

易基因:WGBS等揭示丹参甲基化表征及DNA甲基化在丹参酮生物合成中的调控机制|科研速递

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 丹参&#xff08;Salvia miltiorrhiza&#xff0c;S. miltiorrhiza&#xff09;是一种具有重要经济价值和药用价值的模式药用植物&#xff0c;丹参的根会合成一组称为丹参酮&#xff08;…

SpringBoot案例-配置文件-参数配置化

前言 目前我们已经完成了部门管理和员工管理功能接口的实现&#xff0c;阿里云OSS工具类中&#xff0c;我们会设置4个参数&#xff0c;分别是云服务域名、云服务ID和密码、文件存储的Bucket、就会存在以下问题&#xff1a;参数配置分散以及参数发生变化&#xff0c;就需要对应…

姜启源数学模型第五版第五章火箭发射升空

姜启源数学模型第五版第五章例题内容复现 数学建模背景1.学习内容火箭发射升空理论知识 2.例题3.问题分析不考虑空气阻力的模型考虑空气阻力的模型 4.代码内容复现不考虑空气阻力考虑空气阻力模型 数学建模背景 首先先简单的介绍数学建模是一个怎么样的内容 数学建模是一种将数…

各种文件类型

1.配置文件 json app.json 是当前⼩程序的全局配置&#xff0c;包括了⼩程序的所有⻚⾯路径、界⾯表现、⽹络超时时间、底 部 tab 等。 普通快速启动项⽬ ⾥边的 app.json 字段的含义 1. pages 字段⸺⽤于描述当前⼩程序所有⻚⾯路径&#xff0c;这是为了让微信客⼾端知道…

NIO原理浅析(一)

IO简介 摘抄了下维基百科对IO的定义&#xff0c;Input/Output&#xff0c;输入和输出&#xff0c;通常指数据在存储器或者其他周边设备之间的输出和输入&#xff0c;输入是系统接收到信号或者数据&#xff0c;输出则是从系统发送的信号或数据。 Java IO 读写原理 Java中文件…

shell邮件发送脚本

先上整体代码 text.sh #!/bin/bash# 设置收件人邮箱 to"123456qq.com"# 设置发件人邮箱 from"21331qq.com"# 设置邮件主题 subject"Test Email"# 设置邮件内容 body"This is a test email."# 发送邮件 echo "${body}" | m…

运动耳机啥样的好用、最适合运动用的耳机推荐

在进行运动时&#xff0c;倾听音乐实际上是一种放松大脑、放松身体的小技巧。毕竟运动是一个耗费体力最多的活动&#xff0c;整个过程也往往令人感到乏味。如果有音乐作伴&#xff0c;你的运动就会变得更加轻松愉快。那么&#xff0c;哪种耳机适合运动呢&#xff1f;我正好对此…

气传导蓝牙耳机哪款好?好用的气传导耳机爆款推荐

​普通入耳式耳机戴久了容易诱发局部炎症。为了防止这些问题&#xff0c;不入耳耳机才是更好选择&#xff0c;不会滋生细菌、不会闷耳&#xff0c;那么&#xff0c;市面上都有哪些好用的气传导耳机呢&#xff1f;下面我为大伙带来最值得入手的气传导耳机&#xff0c;一起来看看…

【InsCode】InsCode打造的JavaSE与Linux命令互融的伪Linux文件系统小项目

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;啥技术都喜欢捣鼓捣鼓&#xff0c;喜欢分享技术、经验、生活。 &#x1f60e;人生感悟&#xff1a;尝尽人生百味&#xff0c;方知世间冷暖。 &#x1f4d6;所属专栏&#xff1a;Ja…

初始Netty

文章目录 目录 文章目录 前言 一、netty 总结 前言 认识netty 一、netty Netty是一个基于Java的高性能网络应用框架&#xff0c;用于快速开发可扩展的网络服务器和客户端。它提供了易于使用的抽象API&#xff0c;使开发人员能够轻松地构建各种网络应用程序&#xff0c;包括…

U盘被分成了4个盘要怎么合并

原来是做为系统盘的&#xff0c;然后有一大概小半年没用&#xff0c;今天一看它自己分成了四个盘。 并且我一插入电脑就提示我格式化 其实根本不需要任何工具&#xff0c;操作前最好把U盘数据备份一下 首先把你的U盘插在电脑上 方法一 U盘被分成四个分区的原因有以下几种可…

Spring Cloud Alibaba-实现服务调用的负载均衡

1. 什么是负载均衡 通俗的讲&#xff0c; 负载均衡就是将负载&#xff08;工作任务&#xff0c;访问请求&#xff09;进行分摊到多个操作单元&#xff08;服务器,组件&#xff09;上进行执行。 根据负载均衡发生位置的不同,一般分为服务端负载均衡和客户端负载均衡。 服务端负…

一篇文章带你学好--->Git(超详细)

Git的详解与使用&#xff0c;一篇文章带你学习好git, ,Git是当前比较流行的版本控制工具 &#xff0c;它具有分布式的功能 &#xff0c;有助于我们在团队开发中提高开发效率 注意&#xff1a;敲黑板&#xff01;&#xff01;&#xff01; 带领你去使用git 配有图文解释 超详细 …

英文论文 | 学术写作 | 避免机翻 | 科研人

因为自己之前完成了几篇英文论文&#xff0c;最近在大修一篇&#xff0c;所以对英文论文写作这块有一些感悟&#xff0c;想跟大家分享下&#xff0c;肯定会有不恰当的地方&#xff0c;也希望大家能够在评论区指出&#xff0c;共同进步&#xff5e; 1 直接写英文&#xff0c;避免…

673. 最长递增子序列的个数

673. 最长递增子序列的个数 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;方法一&#xff1a;动态规划方法二&#xff1a;贪心 前缀和 二分查找 参考代码&#xff1a;__673最长递增子序列的个数__动态规划__673最长递增子序列的个数__贪心_前缀和_二分查找…

如何在测试和预发环境下调试支付宝微信小程序的h5

微信 开发者工具调试 1、使用开发者工具打开 2、点击蜘蛛形状的小图标&#xff0c;就会出现调试页面 支付宝 真机调试 下载 1、工具下载&#xff1a;蚂蚁开发者工具&#xff08;支付宝小程序开发者工具&#xff09;&#xff1a; 蚂蚁开发者工具官方下载_蚂蚁开发者工具最…

港联证券|指数或进入磨底阶段 短期关注环保、煤炭等板块

磨底历来都不是一天能达到的&#xff0c;比方2018年的政策底到商场底&#xff0c;半途也阅历两个多月时间。当下政策底出现之后至今也有近一个月时间&#xff0c;并且下跌量能不断缩短&#xff0c;心情面也降至冰点&#xff0c;种种迹象阐明离真正商场底的构成已经不远了。此时…