拒绝摆烂!C语言练习打卡第六天

这篇具有很好参考价值的文章主要介绍了拒绝摆烂!C语言练习打卡第六天。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

拒绝摆烂!C语言练习打卡第六天,每日一练,c语言,算法,数据结构,开发语言,推荐算法

🔥博客主页:小王又困了

📚系列专栏:每日一练

🌟人之为学,不日近则日退 

❤️感谢大家点赞👍收藏⭐评论✍️


目录

一、选择题

📝1.第一题 

📝2.第二题

📝3.第三题

📝4.第四题

二、编程题

📝1.第一题 

📝2.第二题


🗒️前言:

在前面我们学习完C语言的所以知识,当然练习巩固也不能落下。俗话说:“无财之谓贫,学而不能行之谓病。”可见实践对我们学习的重要。接下来就让小王带着大家进行练习,巩固我们C语言的学习。

一、选择题

📝1.第一题 

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

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;
}

 💡解题思路:

我们通过观察代码发现,这个程序读取字符,在switch语句中进行计算,当读到 ‘\0’ 时停止 。判断是否是元音字母进行不同的计算,但是在本题switch语句中没有break,执行完case语句还会继续执行default语句。输入ADescriptor这串字符中有4个元音字母,所以case语句和default语句都执行,v0=v1=v2=4;其他7个字符只执行default语句,所以v1=4,v0=v2=11。但是这里要注意,本题使用的是do…while循环,先执行在判断,所以输入‘\0’也要执行语句,最后结果为v1=4,v0=v2=12。

📝2.第二题

下面代码 *pa 的值是()

    float a[3] = { 1.5,2.5,3.5 };
	float* pa = a;
	*(pa++) *= 3;

💡解题思路:

a 是数组名,数组名是首元素地址,pa中存放的就是数组名是首元素地址。*(pa++) *= 3 这里是后置++,要先使用,再++。*pa 就是数组的首元素1.5,1.5*=3的结果为4.5,这时数组首元素的值被修改为4.5,这里我们不要忘记++,pa++就指向了2.5所在的位置,对pa解引用结果就是2.5。

📝3.第三题

若给定条件表达式 (M)?(a++):(a--) ,则下面表达式哪个 M 等价( ) 

A: 和(M==0)等价 B: 和(M==1)等价 C: 和(M!=0)等价 D: 和(M!=1)等价

💡解题思路:

我们观察题目,代码的意思是:M为真,执行a++;M为假,执行a--。当M非0时为真,M为0时为假。

选项A: M==0 的意思是,M为0时,表达式为真;M非0时,表达式为假,与题中M不等价。

选项B: M==1 的意思是,M为1时,表达式为真,但题意是M非0时为真,不等价。

选项C: M!=0 的意思是, M不等于0时为真,也就是非0;M为0,表达式为假,与M等价。

选项D: M!=1 的意思是, M不等于1时为真,但题意是M非0时为真,不等价。

📝4.第四题

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


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

💡解题思路:

根据宏定义的理解,我们直接将INT_PTR给替换成int*,则为int*a,b;故可以判断出,a为指针变量,b不是,而typedef int* int_ptr相当于是给int*取了个叫int_ptr的类型,是一个将int和*联合在一起的整体,故c,d为指针变量 

二、编程题

📝1.第一题 

拒绝摆烂!C语言练习打卡第六天,每日一练,c语言,算法,数据结构,开发语言,推荐算法

 💡解题思路:

我们将A和B进行异或操作,异或的作用是对应的二进制位相同位0,相异为1。异或后我们只需要统计二进制中1个数,就可以知道A转成B要改变几位。

统计个数时,我们通过 num>>i&1==1 判断,条件成立计数器就加1。

  • &  -  对应的二进制位有0,则为0;都为1,则为1
  • ^  -  对应的二进制位相同位0,相异为1
int convertInteger(int A, int B)
{
    int num=A^B;
    int count=0;
    for(int i=0;i<32;i++)
    {
        if(num>>i&1==1)
        {
            count++;
        }
    }
    return count;
}

📝2.第二题

拒绝摆烂!C语言练习打卡第六天,每日一练,c语言,算法,数据结构,开发语言,推荐算法

  💡解题思路:

我们通过观察可以发现,杨氏矩阵的右上角的元素是有特点的,右上角的元素是一行中最大的,一列中最小的。我们从右上角开始查找,当右上角的元素比我们要查找的元素小,我们就可以去掉右上角元素所在的这一行;右上角的元素比我们要查找的元素大,我们就可以去掉右上角元素所在的这一列。然后继续找右上角的元素和要查找的值比较。这样每一次去掉一行或一列,小路远高于遍历数组元素。

拒绝摆烂!C语言练习打卡第六天,每日一练,c语言,算法,数据结构,开发语言,推荐算法

int main()
{
	int k = 0;
	scanf("%d", &k);
	int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };
	int flag = 0;
	//右上角的元素
	int x = 0;
	int y = 2;

	while (x <= 2 && y >= 0)
	{
		//去掉一行
		if (arr[x][y] < k)
		{
			x++;
		}
		//去掉一列
		else if (arr[x][y] > k)
		{
			y--;
		}
		else
		{
			printf("找到了,下标为%d %d\n", x, y);
			flag = 1;
			break;
		}
	}

	if (flag == 0)
	{
		printf("找不到\n");
	}
	return 0;
}

本次的内容到这里就结束啦。希望大家阅读完可以有所收获,同时也感谢各位读者三连支持。文章有问题可以在评论区留言,博主一定认真认真修改,以后写出更好的文章。你们的支持就是博主最大的动力。文章来源地址https://www.toymoban.com/news/detail-673074.html

到了这里,关于拒绝摆烂!C语言练习打卡第六天的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 拒绝摆烂!C语言练习打卡第七天

    🔥 博客主页: 小王又困了 📚 系列专栏: 每日一练 🌟 人之为学,不日近则日退  ❤️ 感谢大家点赞👍收藏⭐评论✍️ 目录 一、选择题 📝1.第一题  📝2.第二题 📝3.第三题 📝4.第四题 二、编程题 📝1.第一题  📝2.第二题 🗒️前言: 在前面我们学习完C语言的所以知

    2024年02月10日
    浏览(30)
  • 拒绝摆烂!C语言练习打卡第一天

      🔥 博客主页: 小王又困了 📚 系列专栏: 每日一练 🌟 人之为学,不日近则日退  ❤️ 感谢大家点赞👍收藏⭐评论✍️ 🗒️前言: 在前面我们学习完C语言的所以知识,当然练习巩固也不能落下。俗话说:“ 无财之谓贫,学而不能行之谓病 。”可见实践对我们学习的

    2024年02月13日
    浏览(38)
  • Day6 打卡第六天

    给定两个字符串  s  和  t  ,编写一个函数来判断  t  是否是  s  的字母异位词。 注意: 若  s  和  t   中每个字符出现的次数都相同,则称  s  和  t   互为字母异位词。 示例 1: 数组其实就是一个简单哈希表,而且这道题目中字符串只有小写字符,那么就可以定义一

    2024年02月09日
    浏览(42)
  • 七天学会C语言-第六天(指针)

    指针变量与普通变量是C语言中的两种不同类型的变量,它们有一些重要的区别和联系。 普通变量 是一种存储数据的容器,可以直接存储和访问数据的值。: 在例子中,变量num是一个普通整数变量,它直接存储了值10。 指针变量 是一种特殊类型的变量,它存储的是内存地址

    2024年02月08日
    浏览(41)
  • 每日打卡day8——差分练习

    输入一个长度为 n 的整数序列。 接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。 请你输出进行完所有操作后的序列。 输入格式 第一行包含两个整数 n 和 m。 第二行包含 n 个整数,表示整数序列。 接下来 m 行,每行包含

    2024年02月17日
    浏览(32)
  • 每日一练 | 华为认证真题练习Day54

    1、现有一台交换机通过一个端口和对端设备的指定端口直连,但是该端口不转发任何报文,却可以通过接收BPDU来监听网络变化,那么该端口的角色应该是()。 A. Root端口 B. Designated端口 C. Alternate端口 D. Disable端口 2、交换机MAC地址表如下,下列说法正确的有? A. 交换机收到

    2024年02月08日
    浏览(65)
  • 每日一练 | 华为认证真题练习Day48

    1、运行OSPF协议的路由器所有接口必须属于同一个区域。 A. 对 B. 错 2、在华为设备中,OSPF选举Router ID的方法可以是下列哪种?(多选) A. 通过手工定义一个任意的合法Router ID B. 如果未配置Loopback接口,则在其他接口的IP地址中选取最大的IP地址作为Router ID C. 华为交换机可能使

    2024年02月07日
    浏览(25)
  • 每日一练 | 华为认证真题练习Day51

    1、如下图所示,IPSec传输模式中AH的头部应该插入到以下哪个位置? A. 1 B. 2 C. 3 D. 4 2、以下哪种远程登录方式最安全? A. Telnet B. Stelnet v100 C. Stelnet v2 D. Stelnet v1 3、以下业务模块的ACL默认动作为permit的是? A. HTTP B. SNMP C. Telnet D. 流策略 4、IPv6地址2019::8:AB对应的Solicited-node组播

    2024年02月07日
    浏览(27)
  • 每日一练 | 华为认证真题练习Day64

    1、如下图所示的网络,所有路由器运行0SPF协议,链路上方为Cost值的大小,则RA路由表中到达网络10.0.0.0/8的Cost值是多少? A. 70 B. 20 C. 60 D. 100 2、如下图所示的网络,主机A没有配置网关,主机B存在网关的ARP缓存,下列说法正确的有?(多选)  A. 在路由器的G0/0/1端口开启ARP代

    2024年02月11日
    浏览(34)
  • 每日一练 | 华为认证真题练习Day69

    1、STP协议在以下哪个状态下进行端口角色的选举? A. Blocking B. Disabled C. Learning D. Listening 2、RSTP BPDU报文中的Flag字段的总长度为多少bit? A. 6 B. 4 C. 8 D. 2 3、以下哪项不是RSTP可以提高收敛速度的原因? A. 边缘端口的引入 B. 取消了Forward Delay C. 根端口的快速切换 D. P/A机制 4、以

    2024年02月11日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包