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

目录

一、选择题

二、编程题


 

  • 🎈个人主页:库库的里昂
  •  🎐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

 

 

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

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

相关文章

MySQL MVCC的详解之Read View

文章目录 概要一、基于UNDO LOG的版本链1.1、行记录结构1.2、了解UNDO LOG1.3、版本链 二、Read View2.1、判定机制 三、参考 概要 在上文中&#xff0c;我们提到了MVCC&#xff08;Multi-Version Concurrency Control)多版本并发控制&#xff0c;是通过undo log来实现的。那具…

如何在 Opera 中启用DNS over HTTPS

DNS over HTTPS&#xff08;基于HTTPS的DNS&#xff09;是一种更安全的浏览方式&#xff0c;但大多数 Web 浏览器默认情况下不启用它。了解如何在 Opera 浏览器中启用该功能。 您可能不知道这一点&#xff0c;但您的网络浏览器并不像您希望的那样私密或安全。您会看到&#xff…

Python Opencv实践 - 图像直方图均衡化

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_COLOR) print(img.shape)#图像直方图计算 #cv.calcHist(images, channels, mask, histSize, ranges, hist, accumulate) #images&…

数据结构(6)

2-3查找树 2-结点&#xff1a;含有一个键(及其对应的值)和两条链&#xff0c;左链接指向2-3树中的键都小于该结点&#xff0c;右链接指向的2-3树中的键都大于该结点。 3-结点&#xff1a;含有两个键(及其对应的值)和三条链&#xff0c;左链接指向的2-3树中的键都小于该结点&a…

FPGA原理与结构——FIFO IP核原理学习

一、FIFO概述 1、FIFO的定义 FIFO是英文First-In-First-Out的缩写&#xff0c;是一种先入先出的数据缓冲器&#xff0c;与一般的存储器的区别在于没有地址线&#xff0c; 使用起来简单&#xff0c;缺点是只能顺序读写数据&#xff0c;其数据地址由内部读写指针自动加1完成&…

vscode 无法跳转第三方安装包

vscode 无法跳转第三方安装包 场景&#xff1a;使用vscode写代码时&#xff0c; 第三方的安装包无法使用ctrl 左键&#xff0c;点击进入查看&#xff0c; 不方便源码查看 解决办法&#xff1a; 使用快捷键 Ctrl Shift P&#xff0c; 进入命令搜索框搜索 setting.json 编辑…

【数据结构】实现栈和队列

目录 一、栈1.栈的概念及结构&#xff08;1&#xff09;栈的概念&#xff08;2&#xff09;栈的结构 2.栈的实现&#xff08;1&#xff09;类型和函数的声明&#xff08;2&#xff09;初始化栈&#xff08;3&#xff09;销毁&#xff08;4&#xff09;入栈&#xff08;5&#x…

高忆管理:药店零售概念回落,开开实业走低,此前7日大涨超80%

药店零售概念18日盘中大幅下挫&#xff0c;到发稿&#xff0c;华人健康跌逾11%&#xff0c;漱玉布衣、塞力医疗跌超9%&#xff0c;重药控股、浙江震元、榜首医药等跌超7%&#xff0c;药易购跌超6%&#xff0c;开开实业跌超3%。 值得注意的是&#xff0c;开开实业此前7个交易日斩…

【应用层】网络基础 -- HTTP协议

再谈协议HTTP协议认识URLurlencode和urldecodeHTTP协议格式HTTP的方法HTTP的状态码HTTP常见HeaderHTTP周边会话保持 再谈协议 协议是一种 “约定”. socket api的接口&#xff0c;在读写数据时&#xff0c;都是按 “字符串” 的方式来发送接收的(tcp是以字节流的方式发送的&am…

vue项目配置git提交规范

vue项目配置git提交规范 一、背景介绍二、husky、lint-staged、commitlint/cli1.husky2.lint-staged3.commitlint/cli 三、具体使用1.安装依赖2.运行初始化脚本3.在package.json中配置lint-staged4.根目录新增 commitlint.config.js 4.提交测试1.提示信息格式错误时2.eslint校验…

sql递归查询

一、postgresql 递归sql with recursive p as(select t1.* from t_org_test t1 where t1.id2union allselect t2.*from t_org_test t2 join p on t2.parent_idp.id) select id,name,parent_id from p; sql中with xxxx as () 是对一个查询子句做别名&#xff0c;同时数据库会对…

c++ day2

#include <iostream>using namespace std; /*void row(int &p,int &q)//引用 {int t;tp;pq;qt; }*/ /*struct ab {string name;// int &age; }; void add(int a,int b) {cout << ab<< endl; } void add(float a,float b) {cout << ab <…

四、pikachu之文件包含

文章目录 1、文件包含漏洞概述1.1 文件包含漏洞1.2 相关函数1.3 文件包含漏洞分类 2、File Inclusion(local)3、File Inclusion(remote) 1、文件包含漏洞概述 1.1 文件包含漏洞 文件包含漏洞&#xff1a;在web后台开发中&#xff0c;程序员往往为了提高效率以及让代码看起来更…

C语言编写图形界面 | 移动小球示例

文章目录 其他文章最终结果设计过程定义小球的属性窗口过程函数绘制小球空格回弹小球碰壁 完整代码 其他文章 部分知识可以查看如下文章&#xff1a; C语言编写注册窗口 最终结果 先放一下本篇文章最终结果展示图吧&#xff0c;如图&#xff0c;一个绿色的小球&#xff0c;在…

centos7安装JDK

1.将JDK压缩包复制到/opt/software路径下 2.解压JDK到/opt/module目录下 [rootkb135 software]# tar -zxvf jdk-8u381-linux-x64.tar.gz -C /opt/module 3.配置环境变量 修改profile文件 vim /etc/profile 添加环境变量 #JAVA_HOME export JAVA_HOME/opt/module/jdk1.8.0_…

【BUG】Docker启动MySQL报错

个人主页&#xff1a;金鳞踏雨 个人简介&#xff1a;大家好&#xff0c;我是金鳞&#xff0c;一个初出茅庐的Java小白 目前状况&#xff1a;22届普通本科毕业生&#xff0c;几经波折了&#xff0c;现在任职于一家国内大型知名日化公司&#xff0c;从事Java开发工作 我的博客&am…

隧道HTTP具备的条件

作为一名专业的爬虫代理供应商&#xff0c;我们都知道使用代理是保证爬虫的高效性和稳定性的重要手段之一。而隧道代理则是近年来备受推崇的一种代理形式&#xff0c;它通过将请求通过隧道传输&#xff0c;可以有效地隐藏爬虫的真实IP地址&#xff0c;提高爬虫的反爬能力。 在…

Java编程的未来:2023年值得关注的五个趋势

准备好进入Java编程这个不断发展的创新世界了吗&#xff1f;二十多年来&#xff0c;Java一直是编程世界不可或缺的一部分&#xff0c;其重要性始终没有改变。随着企业软件解决方案中对Java的需求持续增长&#xff0c;这一编程语言保持了其作为跨各种设备和集成系统创建复杂软件…

iOS开发之查看静态库(.a/.framework)中包含的.o文件和函数符号(ar,nm命令)

.a/.framework其实是把编译生成的.o文件&#xff0c;打包成一个.a/.framework文件。a的意思是archive/归档的意思。 查看静态库.a文件包含的内容用下面的命令解压&#xff1a; ar x xxx.a 用ar命令打包静态库&#xff1a; 参数r是将后面的*.o或者*.a文件添加到目标文件中 参数…

《数字图像处理-OpenCV/Python》连载(2)目录

《数字图像处理-OpenCV/Python》连载&#xff08;2&#xff09;目录 本书京东优惠购书链接&#xff1a;https://item.jd.com/14098452.html 本书CSDN独家连载专栏&#xff1a;https://blog.csdn.net/youcans/category_12418787.html 第一部分 OpenCV-Python的基本操作 第1章 …