C语言刷题指南(一)

news2024/11/16 7:54:58

📙作者简介: 清水加冰,目前大二在读,正在学习C/C++、Python、操作系统、数据库等。

📘相关专栏:C语言初阶、C语言进阶、数据结构刷题训练营、有感兴趣的可以看一看。

欢迎点赞 👍 收藏 ⭐留言 📝 如有错误还望各路大佬指正!

✨每一次努力都是一种收获,每一次坚持都是一种成长✨       

在这里插入图片描述

 

目录

前言

1. 选择题

 📖题目1:

📖题目2:

📖题目3:

 📖题目4:

📖题目5: 

2. 编程题

📖题目一:

 📖题目二:

总结


前言

        前边我们学习了C语言相关的知识,然而并没有进行系统的练习,接下来我将开启一个新的专栏,C语言刷题训练营,以便于大家巩固所学的知识。


1. 选择题

 📖题目1:

1、执行下面程序,正确的输出是( )

int x=5,y=7;
void swap()
{
int z;
z=x;
x=y;
y=z;
}
int main()
{
int x=3,y=8;
swap();
printf("%d,%d\n",x, y);
return 0;
}

 A: 5,7       B: 7,5       C: 3,8       D: 8,3

✨题目解析:

这道题目考察的是函数相关的知识

  • swap函数调用时用的是全局变量,主函数中定义的变量只在主函数中有效,因为主函数也是一个函数,它与其他函数是平行关系;输出语句这里,考虑局部优先的原则

正确答案:C

📖题目2:

2、以下不正确的定义语句是( )

A: double x[5] = {2.0, 4.0, 6.0, 8.0, 10.0}; 
B: char c2[] = {'\x10', '\xa', '\8'};
C: char c1[] = {'1','2','3','4','5'};
D: int y[5+3]={0, 1, 3, 5, 7, 9};

✨题目解析:

本题B选项考查转义字符,有如下格式,

  • 八进制数字是0-7,没有8,故B选项中'\8'是错误的
  • \ddd ddd表示1到3个八进制数 如:\130 转义为 字符X
  • \xhh hh表示1到2位十六进制数 如:\x30 转义为 字符0

正确答案:B

📖题目3:

3、 test.c 文件中包括如下语句,文件中定义的四个变量中,是指针类型的变量为【多选】( )
 

#define INT_PTR int*
typedef int* int_ptr;
INT_PTR a, b;
int_ptr c, d;

A: a        B: b        C: c        D: d

✨题目解析:

这道题目考察的是C语言中的类型别名和typedef关键字的使用。

  • #define是宏定义,仅仅是直接替换,INT_PTR a, b; 进行宏替换后代码是这样的:int *a, b;这里的int *是a的类型,b的类型是int,故此次b只是int类型。
  • typedef是把该类型定义一个别名,别名是一个独立的类型了,使用这个类型创建的变
    量都是这个类型的。

因此,a,c,d才是指针类型。正确答案:ACD

 📖题目4:

 4、 若给定条件表达式 (M)?(a++):(a--) ,则其中表达式 M ( )

A: 和(M==0)等价

B: 和(M==1)等价

C: 和(M!=0)等价

D: 和(M!=1)等价

✨题目解析:

 这道题目考察的是对运算符的理解

给定条件表达式(M)?(a++):(a--)。 (表达式1)? (表达式2): (表达式3)为三目运算符。
计算规则为:

先判断表达式1是否为真,若为真,则计算表达式2,并将表达式2的结果作为整个表达式最终的结果,表达式3不计算;否则,表达式3的结果为最终结果,表达式2不计算。

分析:

在此表达式中,若M=0,为假,计算a--; 若M≠0,为真,计算a++; 若要求与M等价,则要满足M取0时为假,取非0数值时为真。 c选项中:假定M取0,则M表示假,当M是0时,表达式M!=0不成立,为假,计算a--; 当M取非0数值时,M为真,表达式M!=0成立,为真,计算a++; 符合题意

正确答案:C

📖题目5: 

5、有如下定义语句,则正确的输入语句是【多选】( )
 

int b;
char c[10];

A: scanf("%d%s",&b,&c);

B: scanf("%d%s",&b,c);

C: scanf("%d%s",b,c);

D: scanf("%d%s",b,&c);


✨题目解析:

&c和c两个地址值是一样的,程序的效果相同,也没错,但同时也必须把变量b的地址给scanf,故CD错误

正确答案:AB

2. 编程题

📖题目一:

题目描述:

 题目链接:

打印从1到最大的n位数icon-default.png?t=N6B9https://www.nowcoder.com/practice/4436c93e568c48f6b28ff436173b997f?tpId=13&tqId=2273153&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking题目接口描述:

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param n int整型 最大位数
 * @return int整型一维数组
 * @return int* returnSize 返回数组行数
 */
int* printNumbers(int n, int* returnSize ) {
    


}

 ✨题目解析:

        首先这道题目它是一道接口型题目,我们要先明白它的各个参数的含义,n就是输出的最大位数,而returnSize就是需要返回的数字个数

这里首先要清楚n位数中最大的数字,实际上就是 10^n - 1 。 比如:

  • 1位数: 10的1次方- 1
  • 2位数: 10的2次方- 1
  • 3位数: 10的3次方- 1

        这个规律清楚后动态申请空间,将数值填入就可以了,需要注意的是数组下标从0开始,而数值从1开始。

nt* printNumbers(int n, int* returnSize ) {
    *returnSize=pow(10,n)-1;
    int k=*returnSize+1;
    int* ret=(int*)malloc(sizeof(int)**returnSize);
    for(int i=1;i<k;i++)
    {
       ret[i-1]=i;
    }

    return ret;
}

 📖题目二:

题目描述:

 题目链接:

计算日期到天数转换icon-default.png?t=N6B9https://www.nowcoder.com/practice/769d45d455fe40b385ba32f97e7bcded?tpId=37&&tqId=21296&rp=1&ru=/ta/huawei&qru=/ta/huawei/question-ranking✨题目解析:

 解题思路:       

        这道题简单解法其实将每个月的天数枚举出来,然后根据当前月份向前累加满月的天数,然后再加上当前月所在的天数。最终考虑平闰年的 2 月份区别是否增加一天。

        其中需要注意的是平年和闰年的判断,而且是闰年的月份大于 2 的时候,也就是 2 月走完,总天数才能加 1 (比如 2000年2月18日 ,虽然是闰年,但是 2月 都没走完那是不能加上闰年多出的一天的)

代码如下:

#include <stdio.h>
int isleapyear(int year) {
    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
    {
        return 1;
    } 
    return 0;
} 
int main()
{
    int monthday[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int year, month, day;
    while (~scanf("%d %d %d", &year, &month, &day))
    {
        int days = day;
        if (isleapyear(year) && month > 2) 
        { 
            days += 1;
        }
        for (int i = month - 1; i > 0; i--) 
        {
            days += monthday[i];
        }
        printf("%d\n", days);
    } 
return 0;
}

 


总结

        好了,以上便是本期C语言刷题的全部内容,希望可以对你有所帮助。最后,感谢阅读!

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

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

相关文章

递归算法详解

概述 递归算法&#xff0c;不断调用本身&#xff0c;每调用一次在内存中添加一层&#xff0c;不断地叠加到最底层&#xff0c;直到遇到返回值&#xff0c;然后从最底层一层层的返回到最顶层 举例 public static void main(String[] args) {// System.out.println(fibbonacciF…

一篇文章教会你搭建私人kindle图书馆,并内网穿透实现公网访问

搭建私人kindle图书馆&#xff0c;并内网穿透实现公网访问 在电子书风靡的时期&#xff0c;大部分人都购买了一本电子书&#xff0c;虽然这本电子书更多的时候是被搁置在储物架上吃灰&#xff0c;或者成为盖泡面的神器&#xff0c;但当亚马逊发布消息将放弃电子书在中国的服务…

如何通过本地搭建wamp服务器并实现无公网IP远程访问

文章目录 前言1.Wamp服务器搭建1.1 Wamp下载和安装1.2 Wamp网页测试 2. Cpolar内网穿透的安装和注册2.1 本地网页发布2.2 Cpolar云端设置2.3 Cpolar本地设置 3. 公网访问测试4. 结语 前言 软件技术的发展日新月异&#xff0c;各种能方便我们生活、工作和娱乐的新软件层出不穷&…

《cpolar内网穿透》外网SSH远程连接linux(CentOS)服务器

本次教程我们来实现如何在外公网环境下&#xff0c;SSH远程连接家里/公司的Linux CentOS服务器&#xff0c;无需公网IP&#xff0c;也不需要设置路由器。 视频教程 [video(video-jrpesBrv-1680147672481)(type-csdn)(url-CSDN直播https://live-file.csdnimg.cn/release/live/…

使用netstat查询网络连接状态、端口信息

1、netstat作用 netstat 命令用于显示各种网络相关信息&#xff0c;如网络连接&#xff0c;路由表&#xff0c;接口状态 (Interface Statistics)&#xff0c;masquerade 连接&#xff0c;多播成员 (Multicast Memberships) 等等。 2、常见参数 -a (all)显示所有选项&#xff…

36.8k Star! 一款小而美的自动化运维监控工具——Uptime Kuma

自动化运维是指利用计算机科学和信息技术来实现系统和应用程序的自动化管理、监控、维护以及问题解决的过程。它的目标是减少人工干预、提高效率、降低错误率&#xff0c;并确保系统的稳定性和可靠性。 应用简览 Uptime-Kuma 是一个轻量级的监控工具&#xff0c;其独特之处在于…

一百六十、Kettle——Linux上安装的Kettle9.2.0连接Hive3.1.2

一、目标 Kettle9.2.0在Linux上安装好后&#xff0c;需要与Hive3.1.2数据库建立连接 之前已经在本地上用kettle9.2.0连上Hive3.1.2 二、各工具版本 &#xff08;一&#xff09;kettle9.2.0 kettle9.2.0安装包网盘链接 链接&#xff1a;https://pan.baidu.com/s/15Zq9w…

PHP使用phpmailer及SMTP服务实现邮件发送

博客升级中&#xff0c;把之前没有想到的功能一点点的完善。 这篇日志记录一下&#xff0c;使用phpmailer实现邮件发送的这样一个操作。 博客偶尔会有留言和评论&#xff0c;我也会及时回复&#xff0c;但是有一个问题&#xff0c;我回复了&#xff0c;给我留言的人如果不再次…

基于Java的ssm图书管理系统源码和论文

基于Java的ssm图书管理系统036 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 当今时代是飞速发展的信息时代。在各行各业中离不开信息处理&#xff0c;计算机被广泛应用于信息管理系统的环境。计算机的最大好…

linux鲁班猫代码初尝试[编译镜像][修改根文件系统重编译][修改设备树改屏幕为MIPI][修改屏幕和TP方向]

编译镜像 官方百度云盘资料:https://doc.embedfire.com/linux/rk356x/quick_start/zh/latest/quick_start/baidu_cloud/baidu_cloud.html 解压虚拟机压缩包:"鲁班猫\8-SDK源码压缩包\开发环境虚拟机镜像\ubuntu20.04.7z"后既可以用VMware打开,打开后可以看到已经有…

python+django+mysql高校校园外卖点餐系统--计算机毕设项目

本文的研究目标是以高校校园外卖点餐为对象&#xff0c;使其高校校园外卖点餐为目标&#xff0c;使得高校校园外卖点餐的信息化体系发展水平提高。论文的研究内容包括对个人中心、美食分类管理、用户管理、商家管理、美食信息管理、工作人员管理、安全检查管理、系统管理、订单…

什么是B+树?

B树 B树是B树的一种变体&#xff0c;也属于平衡多路查找树&#xff0c;大体结构与B树相同&#xff0c;包含根节点、内部节点和叶子节点。多用于数据库和操作系统的文件系统中&#xff0c;由于B树内部节点不保存数据&#xff0c;所以能在内存中存放更多索引&#xff0c;增加缓存…

【学会动态规划】等差数列划分(22)

目录 动态规划怎么学&#xff1f; 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后&#xff1a; 动态规划怎么学&#xff1f; 学习一个算法没有捷径&#xff0c;更何况是学习动态规划&#xff0c; 跟我…

基于Kubernetes云原生技术的低代码PaaS平台,快速构建企业级应用程序

低代码PaaS平台 低代码PaaS平台可以在云端开发、部署、运行低代码应用程序。使用独立数据库模型&#xff0c;基于Kubernetes云原生技术&#xff0c;每个租户均可拥有一套独立的存储、数据库、代码和命名空间&#xff0c;实现了100%的租户数据隔离&#xff0c;并可以随时迁移到…

在本地搭建WAMP服务器并通过端口实现局域网访问(无需公网IP)

文章目录 前言1.Wamp服务器搭建1.1 Wamp下载和安装1.2 Wamp网页测试 2. Cpolar内网穿透的安装和注册2.1 本地网页发布2.2 Cpolar云端设置2.3 Cpolar本地设置 3. 公网访问测试4. 结语 前言 软件技术的发展日新月异&#xff0c;各种能方便我们生活、工作和娱乐的新软件层出不穷&a…

iPhone 15受益:骁龙8 Gen 3可能缺席部分安卓旗舰机

明年一批领先的安卓手机的性能可能与今年的机型非常相似。硅成本的上涨可能是原因。 你可以想象&#xff0c;2024年许多最好的手机都会在Snapdragon 8 Gen 3上运行&#xff0c;这是高通公司针对移动设备的顶级芯片系统的更新&#xff0c;尚未宣布。然而&#xff0c;来自中国的…

Python Web开发 Django 简介

今天来为大家介绍 Python 另一个 Web 开发框架 Django&#xff0c;它是一个基于 Python 定制的开源 Web 应用框架&#xff0c;最早源于一个在线新闻 Web 网站&#xff0c;后于2005年开源。Django 的功能大而全&#xff0c;它提供的一站式解决的思路&#xff0c;能让开发者不用在…

在思科(Cisco)路由器中使用 SNMP

什么是SNMP SNMP&#xff0c;称为简单网络管理协议&#xff0c;被发现可以解决具有复杂网络设备的复杂网络环境&#xff0c;SNMP 使用标准化协议来查询网络上的设备&#xff0c;为网络管理员提供保持网络环境稳定和远离停机所需的重要信息。 为什么要在思科设备中启用SNMP S…

如何在出差期间远程访问企业ERP系统?内网穿透解决您的难题!

文章目录 概述1.查看象过河服务端端口2.内网穿透3. 异地公网连接4. 固定公网地址4.1 保留一个固定TCP地址4.2 配置固定TCP地址 5. 使用固定地址连接 概述 ERP系统对于企业来说重要性不言而喻&#xff0c;不管是财务、生产、销售还是采购&#xff0c;都需要用到ERP系统来协助。…

【hive】简单介绍hive的几种join

文章目录 前言1. Common Join2. Map Join介绍&#xff1a;使用方法&#xff1a;限制&#xff1a; 3. Bucket Map Join介绍&#xff1a;好处&#xff1a;使用条件&#xff1a;使用方法&#xff1a; 4. Sort Merge Bucket Map Join介绍&#xff1a;如何使用&#xff1a; 5. Skew …