• 期末复习 c


    作者:@小萌新
    专栏:@C语言复习
    作者简介: 大二学生 希望能和大家一起进步!
    本篇博客简介:回顾之前的分支循环以及一些题目博客
    在这里插入图片描述

    分支循环选择

    switch case

    这里面很多知识好像也没有什么好讲解的

    大部分都是我们常用的知识 不管是写项目还是刷题的时候都一直在用

    可能唯一需要讲解的就是一个switch case语句了吧

    int main()
    {
    	int day = 0;
    	cin >> day;
    	switch (day)
    	{
    	case 1: 
    		cout << "周内";
    	case 2:
    		cout << "周内";
    	case 3:
    		cout << "周内";
    	case 4:
    		cout << "周内";
    	case 5:
    		cout << "周内";
    	case 6:
    		cout << "周末";
    	case 7:
    		cout << "周末";
    	default:
    		cout << "出bug啦!!";
    		break;
    	}
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    在这里插入图片描述
    由于不常用所以它的一些特性也差不多快忘光了

    在这里插入图片描述
    比如说上面这样子 就是因为没有加break出现的bug

    getchar putchar 以及EOF

    getchar是获取一个字符

    putchar是输出一个字符

    而eof是文件结束的标志 实际上它的值就是-1 我们可以使用ctrl+z来模拟它的实现

    下面我们开始设计一个程序 如果它是一个小写字符就把他转化成大写字符并且输出

    如果他是一个大写字符我们就把它转化成小写字符并且输出

    int main()
    {
    	char ch;
    	while ((ch = getchar())!=EOF)
    	{
    		if (ch >= 'a' && ch <= 'z')
    		{
    			ch -= 32;
    			putchar(ch);
    		}
    		else if (ch >= 'A' && ch <= 'Z')
    		{
    			ch += 32;
    			putchar(ch);
    		}
    		else
    		{
    			cout  << endl;
    		}
    
    	}
    
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    在这里插入图片描述

    代码并不难 这里主要主义的就是EOF的使用当我们要多次输入的时候我们可以使用EOF来解决这个问题

    三个C语言练习

    两个题目都不难 当时老师出这俩题目应该是考验我们对于字符串的比较(strcmp)是否熟练

    一个是输入密码三次 如果三次都输错就锁定 如果对了就打印成功进入

    int main()
    {
    	char passward[] = "abcdef";
    	char arr[20] = "";
    	int i = 0;
    	for ( i = 0; i < 3; i++)
    	{
    		cin >> arr;
    		if (strcmp(arr,passward)== 0)
    		{
    			cout << "密码输入正确" << endl;
    			break;
    		}
    		else
    		{
    			cout << "密码输入错误" << endl;
    		}
    	}
    
    	if (i == 3)
    	{
    		cout << "连续输入错误三次 账号已锁定" << endl;
    	}
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    在这里插入图片描述
    在这里插入图片描述
    说不上有什么难度 想想看很神奇 两个月自己的代码水平就进步了这么多

    还有一个题目大同小异 在规定时间内输入密码 否则电脑就会关机

    int main()
    {
    	char input[20] = "";
    
    	cout << "注意!你的电脑将在一分钟内关机 请输入 123 以取消关机 " << endl;
    	system("shutdown -s -t 60");
    again:
    	cin >> input;
    	if (strcmp(input, "123") == 0)
    	{
    		system("shutdown -a");
    	}
    	else
    	{
    		cout << "输入错误请重新输入!" << endl ;
    		goto again;
    	}
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    在这里插入图片描述

    这段代码也没有什么难点 有需要注意的地方就是我们使用的system命令 还有一个goto的用法

    还有几道求阶乘的题目实在是太简单了我就懒得写了

    在这里插入图片描述
    还有一道比较有意思的题目是这样子的

    int main()
    {
    	char arr1[12] = "hello world";
    	char arr2[12] = "###########";
    
    	int left = 0;
    	int right = 10;
    
    	cout << arr2 << endl;
    	Sleep(1000);
    	while (left <= right)
    	{
    		arr2[left] = arr1[left];
    		arr2[right] = arr1[right];
    		left++;
    		right--;
    		cout << arr2;
    		Sleep(1000);
    		system("cls");
    	}
    	cout << arr2;
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    代码表示如下

    这道题目重做一遍还是比较有意义的

    从这里我学会了sleep这个函数其实是包含在windows这个头文件下面的

    以及使用system的cls命令

    总结

    在这里插入图片描述

    对于初步接触C语言时候的题目 现在做起来已经可以得心应手了

    希望自己能够变得越来越强 在两个月后做现在学的题目也可以得心应手起来

  • 相关阅读:
    ArcGIS基础:字段的别名和字段属性域设置
    GitHub上标星120k的Java进阶面试教程等!(建议收藏)
    C#的DataGridView数据控件(直接访问SQL vs 通过EF实体模型访问SQL)
    驱动开发:内核枚举进程与线程ObCall回调
    Day1-数组第一部分、二分查找|LeetCode 704、35、34|代码随想录刷题
    Java_FileIO流
    IOS面试题object-c 91-100
    微服务真的需要前后端分离吗?
    电源升压模块dc/dc直流低压升高压隔离电压变换器5v12v24v48v转50v70v80v100v110v200v250v300v500v600v微功率
    208. 实现 Trie (前缀树)
  • 原文地址:https://blog.csdn.net/meihaoshy/article/details/128055004