c语言练习
c语言练习
梦可尤曦
知识会使我变得有钱,我现在还没钱,说明我的知识储备还不够。
展开
-
c语言练习(1):NOIP 1998 车站(斐波那契数列)
火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上、下车,但上、下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数保持为a人。从第3站起(包括第3站)上、下车的人数有一定规律:上车的人数都是前两站上车人数之和,而下车人数等于上一站上车人数,一直到终点站的前一站(第n-1站),都满足此规律。现给出的条件是:共有N个车站,始发站上车的人数为a,最后一站下车的人数是m(全部下车)。试问x站开出时车上的人数是多少?原创 2022-12-21 14:44:57 · 304 阅读 · 0 评论 -
每天3-4道c语言练习题(第14天) c语言文件操作
首先展示一下文件操作的基础 FILE *fp(文件地址,模式); 文件地址: 可以是绝对地址 由于" \ "为转义符所以用的时候要用两个,比如说:E:\\file\\w.txt 当然也可以写成这样 E:/file/w.txt 模式: 模式 含义 说明 r 只读 读取文件(文件必须存在) w 只写 若文件存在,则清除原文件内容后写入;否则,会创建一个新文件后写入 a 追加只写 若文件存在,接着原文写。 r+ 读写 增加了...原创 2022-01-24 21:16:21 · 477 阅读 · 0 评论 -
每天3-4道c语言练习题(第13天)两个字符串连接程序 读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的 *。电话加密 猜谜游戏
1.题目 两个字符串连接程序 。 程序分析 这个就不用多说了直接上代码 代码展示 #include <stdio.h> char str[40]; void add(char* str1,char* str2){ int i=0,j=0; while(str1[i]!=0){ str[i]=str1[i]; i++; } while(str2[j]!=0){ str[i]=str2[j]; i++; j++; } } void main(){ char原创 2022-01-24 06:00:00 · 388 阅读 · 0 评论 -
每天3-4道c语言练习题(第12天)自定义一个八进制转换为十进制 求0—7所能组成的奇数个数 一个偶数总能表示为两个素数之和。判断一个素数能被几个9整除。
1.题目 自定义一个八进制转换为十进制 程序分析 这道题,我没有找出他要考的点,所以我就直接写答案,知道的大佬可以留言提示一下。 代码展示 #include <stdio.h> void main(){ int a; printf("请输入一个八进制数字:"); scanf("%o",&a); printf("转换十进制后结果为%d",a); } 运行展示 2.题目 求0—7所能组成的奇数个数 程序分析 我列出了他的所有可能性(左边为位数.原创 2022-01-21 16:01:30 · 417 阅读 · 0 评论 -
每天3-4道c语言练习题(第11天)输入一个整数,并将其反转后输出 输入n为偶数时,当输入n为奇数时 猴子分桃问题 809*a=800*a+9*a 其中a代表的两位数, 809*a为四位数
1.题目 输入一个整数,并将其反转后输出。 #include <stdio.h> #include <math.h> void main(){ int a,b=0,n,i; printf("请输入一个整数:"); scanf("%d",&a); n=log10(a)+1; for(i=0;i<n;i++){ b*=10; b=b+a%10; a/=10; } printf("整数反转后结果为:%d",b); } 代码分析:使.原创 2022-01-20 12:58:28 · 493 阅读 · 0 评论 -
每天3-4道c语言练习题(第10天) system()函数
system是一个C/C++的函数,需加头文件<stdlib.h>后方可调用。 在Windows中system可调用dos命令。 如:ver 查看Windows版本号 #include <stdio.h> #include <stdlib.h> void main(){ system("ver"); } 还可以改变控制台背景颜色,对应使用color函数。 color 0 黑 8 亮黑 1 蓝 9 亮蓝 .原创 2022-01-18 17:46:47 · 288 阅读 · 2 评论 -
每天3-4道c语言练习题(第9天) 学习使用按位取反~&&(从1到3报数)报3的人退出圈子最后留下的是原来第几号的那位&&在main函数中输入字符串,并输出其长度&&编写input()和output
1.题目 学习使用按位取反~。 #include <stdio.h> void main(){ int a=0xff,i; a=~a; printf("%d\n",a); } 计算机中位运算操作,均是以二进制补码形式进行的。 由于计算机中位运算均是以补码形式操作的,正数的补码是其本身,负数的补码为其反码加 1。 所以~4+1=-5+1,即~a+1=-a; 运行结果 2.题目 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的原创 2022-01-18 06:00:00 · 252 阅读 · 2 评论 -
每天3-4道c语言练习题(第8天)按位与 & 按位或 | 按位异或 ^ 自定义一个整数移位,取一个整数 a 从右端开始的 4~7 位
1.题目 学习使用按位与 &。 及全一为一 #include <stdio.h> void main(){ int a=0xFF,b=0x00,c=0xF0; // 0x 开头为十六进制 转 二进制为 // 0xFF 1111 1111 // 0x00 0000 0000 // 0xF0 1111 0000 printf("%d\n",a&b); // 0 0000 0000 printf("%d\n",a&c原创 2022-01-16 20:37:10 · 404 阅读 · 0 评论 -
每天3-4道c语言练习题(第7天)宏#define命令练习 #if #ifdef和#ifndef的综合应用
1.题目 宏#define命令练习 #define又称宏定义,标识符为所定义的宏名,简称宏。 宏所表示的常量可以是数字、字符、字符串、表达式。 首先为大家介绍#define 常用的用来表示变量 #include <stdio.h> #define NUM 10 #define Fun(x) x*x*x #define str "abcdef" void main(){ printf("%d\n",NUM); printf("%d\n",Fun(5)); printf("%s原创 2022-01-15 19:28:05 · 889 阅读 · 0 评论 -
每天3-4道c语言练习题(第6天)有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。将一个数组逆序输出。static定义静态变量的用法。使用auto定义变量的用法。
1.题目 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 #include <stdio.h> void main(){ int arr1[11]={2,5,9,23,45,56,78,88,99,100}; int arr[11]; int a,i,j; for(i=0;i<=10;i++) { printf("%d ",arr1[i]); } printf("\n请输入一个数:"); scanf("%d",&a); if(a原创 2022-01-14 16:46:22 · 348 阅读 · 0 评论 -
每天3-4道c语言练习题(第4天) 字符串反转 求100之内的素数 对10个数进行排序 求一个3*3矩阵对角线元素之和
1.题目 字符串反转,如将字符串 "www.freecplus.net" 反转为 "ten.sulpceerf.www"。 #include <stdio.h> void main(){ char str1[50]="www.freecplus.net"; char str2[50]={0}; int i,j=0; for(i=0;i<50;i++){ if(str1[i]==0){ i--; break; } } for(;i>=0;i--){原创 2022-01-12 15:40:03 · 179 阅读 · 1 评论 -
每天3-4道c语言练习题(第5天) 5位数判断回文数,输入字母判断星期几,删除一个字符串中的指定字母,练习函数调用。
1.题目 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同 #include <stdio.h> void main(){ int a; printf("请输入一个五位数:"); scanf("%d",&a); if(a%10==a/10000&&(a/10)%10==(a-a/10000*10000)/1000) { printf("%d是回文数。",a); }else{ printf("%d不是回文数。原创 2022-01-11 17:39:52 · 277 阅读 · 0 评论 -
每天3-4道c语言练习题(第3天) 利用递归方法求5,利用递归,将所输入的5个字符,以相反顺序打印出来。有5个人坐在一起,问第五个人多少岁?不多于5位的正整数,求它是几位数,逆序打印出各位数
1.题目 利用递归方法求5!。 #include <stdio.h> int s=1; void DiGui(int i){ s*=i; i--; if(i==1){ printf("递归结果为:%d",s); }else{ DiGui(i); } } void main(){ DiGui(5); } 运行结果 2.题目 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。 #include <stdlib.h> #d原创 2022-01-10 17:00:54 · 198 阅读 · 0 评论 -
每天3-4道c语言练习题(第2天) 两个乒乓球队进行比赛,各出三人。打印出如下图案(菱形) 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13 求1+2+3+...+20的阶乘和
1.题目 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单,有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。 #include <stdio.h> void main(){ int a,b,c; char arr[3]={'x','y','z'}; for(a=1;a<=3;a++){ for(b=1;b<=3;b++){ for(c=1;c<=3;c++){原创 2022-01-09 16:07:42 · 815 阅读 · 0 评论