【C语言】ascll码值
ascll码值ASCII 码(American Standard Code for Information Interchange,美国信息交换标准代码)是一套用于表示字符的编码系统,它规定了英文字母、数字、标点符号和控制字符与整数之间的对应关系,是计算机早期为解决字符存储和传输而制定的标准。 基本特点: 标准 ASCII 码使用 7 位二进制数 表示,因此共能表示 2^7 = 128 个不同的字符(取值范围 0~127)。 扩展 ASCII 码(非标准)使用 8 位二进制数,可表示 256 个字符,但不同系统可能有差异,因此通常以标准 ASCII 码为基础。 标准 ASCII 码的分类及常用值:ASCII 码的 128 个字符可分为两大类:控制字符 (不可见)和 可打印字符 (可见)。 1. 控制字符(0~31 和 127)这类字符不对应可见符号,主要用于控制设备(如打印机、终端)的操作,例如: 0(NUL):空字符,用于表示字符串结束(C 语言中\0)。 10(LF,\n):换行符,使光标移到下一行。 13(CR,\r):回车符,使光标回到行首。 9(HT,\t):水平制...
【C语言】getchar与循环
getchar与循环题目统计用户输入从键盘读取用户输入直到遇到#字符,编写程序统计读取的空格数目、读取的换行符数目以及读取的所有其他字符数目。(要求用getchar()输入字符)程序运行结果示例1:Please input a string end by #:abc def↙jklm op↙zkm #↙space: 3,newline: 2,others: 15程序运行结果示例2:Please input a string end by #:hello friend!#↙space: 1,newline: 0,others: 12输入格式: getchar()输出格式:输入提示信息:”Please input a string end by #:\n”输出格式:”space: %d,newline: %d,others: %d\n” 代码实现123456789101112131415161718192021#include <stdio.h>int main(){ int space=0,newline=0,other=0; char conte...
【C语言】循环中的递推
循环中的递推题目:输入一正整数 k,求出它是几位数,并按逆序输出该数。例如,原数是 321,应输出 123 代码实现:1234567891011121314151617#include <stdio.h>int main() { int k, count = 0, reverse_num = 0; printf("请输入一个正整数:"); scanf_s("%d", &k); while (k > 0) { int digit = k % 10; // 取最后一位数字 reverse_num = reverse_num * 10 + digit; // 拼接逆序数字 k = k / 10; // 去掉最后一位 count++; // 位数加1 } printf("该数是%d位数,逆序输出为%d\n", count, reverse_num); return 0;...
【C语言】辗转相除法
辗转相除法题目求最大公约数 代码实现:12345678910111213#include <stdio.h>void main(){ int a, b, r; a = 27, b = 18; do { r = a % b; a = b; b = r; } while (r != 0); // 余数不为0时继续循环 printf("最大公约数是:%d\n", a); // 循环结束后,a就是最大公约数} 代码分析: 辗转相除法(欧几里得算法) 核心逻辑:两个数的最大公约数,等于「(较大数 ÷ 较小数)的余数」和「较小数」的最大公约数。一直重复这个过程,直到余数为0,此时的“除数”就是最大公约数。举个生活例子:你有27个苹果、18个橘子,想分成一样多的份数(每份数量相同)27-18=9如果能分27和18,肯定也能分剩下的9和18 备注其实我上课看到这一个题的时候第一反应使用while循环进行循...
【C语言】数组
数组初窥门径我在计算天数,和计算位数的md中都接触了数组包括可汗大点兵中的数组所记下来的笔记: 问题: int days_in_month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 和 int count[10] = { 0 }; 这两个数组用法有什么不同,这个[]里面和{}的区别与联系 回答:1. 本质区别 days_in_month[] 的特点 数组初始化时明确指定了每个元素的值 {31, 28, ..., 31},共 12 个元素。 数组声明时 [] 内未写长度,编译器会根据初始化列表中元素的数量(12 个)自动推断数组长度为 12。 用途是存储每个月的天数(非闰年),元素值是预先确定的固定值。 count[10] = {0} 的特点 数组声明时 [] 内明确指定了长度为 10,即数组有 10 个元素。 初始化列表只给了一个值 0,根据 C 语言规则:未明确初始化的元素会被自动赋为 0 (对于全局 / 静态数组)或默认值(局部数组未初始化时是随机值,但这里显式初始化了第...
【C语言】计算天数(progress)
计算天数(progress)题目:请用循环语句进行程序设计(也可能用到if或switch语句),实现从键盘上输入一个日期,日期格式为:2018-7-9,判断这一天是这一年中的第几天。注:本题涉及到闰年、平年的判断,已知符合下列条件之一者是润年:(1)能被4整除,但不能被100整除;(2)能被400整除。输入提示信息:”Please Input the Date:\n”输入格式:”%d-%d-%d”输出格式:”Result=%d\n”如果输入月份不在1到12月份之间输出错误提示信息”Input error!\n”(注:为了便于实现,本题暂不考虑日的合法性)输入输出用例1:Please Input the Date:2010-10-2Result=275输入输出用例2:Please Input the Date:2000-4-5Result=96输入输出用例3:Please Input the date:2017-17-2Input error! 我写的代码:123456789101112131415161718192021222324252627282...
【C语言】计算数字位数
计算数字位数背景早就想知道怎么实现了,今天恰好碰到了这个题: 判断一个整型数据有几位v2.0从键盘输入一个整型数据(int型),用switch语句和循环语句编写程序判断该整数共有几位,并输出包含各个数字的个数。例如,从键盘输入整数16644,该整数共有5位,其中有1个1,2个6,2个4。程序运行结果示例1:Please enter the number:12226↙12226: 5 bits1: 12: 36: 1程序运行结果示例2:Please enter the number:-12243↙-12243: 5 bits1: 12: 23: 14: 1输入格式: “%d”输出格式:输入提示信息:”Please enter the number:\n”判断该整数共有几位:”%d: %d bits\n”包含数字0的个数:”0: %d\n”包含数字1的个数:”1: %d\n”包含数字2的个数:”2: %d\n”包含数字3的个数:”3: %d\n”包含数字4的个数:”4: %d\n”包含数字5的个数:”5: %d\n”包含数字6的个数:”6: %d\n”包含数字7的个数:”7: %d...
【C语言】可汗大点兵
可汗大点兵妈的,都不想做早操是吧,现在挑出宿舍里面两个人去做操! 代码1这个是王柏森写的代码: 12345678910111213141516171819202122232425262728293031#include <stdio.h>#include <stdlib.h>#include <time.h>int main() { int num; srand((unsigned int)time(NULL)); num = rand()%6+1; switch (num) { case 1: printf("王柏森"); break; case 2: printf("王星皓"); break; case 3: printf("肖鑫灿"); break; case 4: printf("莫奈"); break; case 5: printf("石安锐"); break; case 6: printf(&...
【C语言】循环嵌套
循环嵌套一、题目求 s = a+aa+aaa+… …+aaa…a的值,其中a是一个数字,如2+22+222+2222,a的值和加数个数n,均从键盘获取。要求a属于[1,9],n小于10(如果不满足此条件,就重新输入)。输入:输入a值和n值输入提示信息:”Please input a:”输入格式:”%d”输入提示信息:”Please input n:”输入格式:”%d”输出:算式及和输出提示信息:“Sum=算式”,输出格式提示:采用 “Sum=”, “%ld”, “+%ld”“Sum=和”,输出格式”\nSum=%ld\n”程序运行示例:Please input a:8Please input n:9Sum=8+88+888+8888+88888+888888+8888888+88888888+888888888Sum=987654312 二、我写的代码这是我的写的第一个双循环,总共花了我一个小时,中途没有借助豆包等大语言模型,仅仅使用了visual studio实现了代码的逐句执行以下是我写的代码: 12345...
【C语言】日历calender
日历calender背景今天做火车回武汉,在车上无聊,想起来老师教的,用C语言写日历,我便试了试。但是考虑到每月有30天,也有31天的,年还有闰年的,我只写了2025年一月和二月的日历 代码实现1234567891011121314151617181920212223#include <stdio.h>int main() { int year; int i,j=1,g=1; printf("seven one two three four five six\n "); for (i = 1;i <= 31;i++) { printf("%2.d ", j); j++; if ((i + 7) % 7 == 4) { printf("\n"); } } printf("\n "); for (int k = 1;k <= 28;k++) { ...


