![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程 题
xhZhangShaoFan
只准失败,不准放弃——梅耶马斯克
展开
-
编程题37:输入一个数判断奇数偶数
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h> fun(int n){ int flag = 1;//先设为就是偶数吧 if (n % 2 == 0) return flag; else flag = 0; return flag;}int main(){ int n = 0; scanf("%d", &n); if (fun(n))//为1就进代码块里 printf("是偶数");原创 2021-03-31 14:47:32 · 857 阅读 · 0 评论 -
编程题36:输入一个非负整数,返回他的数字之和
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int DigitSum(unsigned int num){ if (num > 9)//如果这个数大于1位数 { return DigitSum(num / 10) + num % 10; }//num只要满足>9就会在if循环体里,直到不满足跳出来 else { return num; }}int main(){ unsigned int num原创 2021-03-12 14:57:29 · 305 阅读 · 0 评论 -
编程题35:用指针打印数组
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>void print(int *p,int sz){ for (int i=0; i < sz; i++) { printf("%d ", *(p + i)); }}int main(){ int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; int sz = sizeof(arr) / sizeof(arr[0]); print(arr, s原创 2021-03-12 09:50:55 · 103 阅读 · 0 评论 -
编程题34:打印一个数二进制形式的奇数位和偶数位
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>void print(int m){ int i = 0; for (i = 30; i >= 0; i -= 2)//奇数位 { printf("%d", (m >> i) & 1);//一个位和1与,就能取出这个数 } printf("\n"); for (i = 31; i >= 1; i -= 2)//偶数位 { printf("%原创 2021-03-12 09:37:48 · 88 阅读 · 0 评论 -
编程题33:判断一个数二进制形式中1的个数
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int get_num_bit(int m, int n){ int count = 0; int tmp = m ^ n; while (tmp) { tmp = tmp & (tmp - 1); count++; } return count;}int main(){ int m = 0, n = 0; scanf("%d %d", &m, &原创 2021-03-12 09:16:37 · 77 阅读 · 0 评论 -
题32:用置位复位操作,使11的二进制第三位置1并还原他
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main()//{ int a = 11; a = a | (1 << 2); //<置位 - 用1去或他> printf("%d\n", a); a = a & (~(1 << 2));//<复位-用1按位取反,再去与他> printf("%d\n", a); //【让哪位变1,咱不能想吧,是用把1移位方式实现得到的原创 2021-02-25 10:24:17 · 155 阅读 · 0 评论 -
题31:求一个整数存储在内存中二进制1的个数
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ int num = 0; int count = 0; scanf("%d", &num); while (num) { if (num % 2 == 1)//如果从后往前的取来1位是1 count++;//那么就找到1个1,count++ num = num / 2;//这时在丢弃刚那最后一位,新的num再循环去 } printf原创 2021-02-24 18:25:44 · 143 阅读 · 0 评论 -
题29:不创建临时变量实现2个数交换(但是工厂中创建临时变量还是较常用);创建临时变量tmp法交换
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>//异或交换方式效率没有,临时变量的高,通常还是用临时变量法int main(){//异或:同为0,异为1 int a = 10;//00000000 00000000 00000000 00001010 int b = 20;//00000000 00000000 00000000 00010100 a = a ^ b; b = a ^ b; a = a ^ b; printf(原创 2021-02-24 18:01:38 · 109 阅读 · 0 评论 -
题28:生成随机数 /输出10个随机数
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>//rand()随机数函数的头文件#include<time.h>//srand()和time()要用到的头文件int main(){ srand((unsigned int)time(NULL)); int v1 = rand() % 30;//产生1-一个数之间的随机数,不含这个数 printf("%d", v1);}原创 2021-02-23 18:14:09 · 854 阅读 · 0 评论 -
题27:冒泡法 升序、降序排列10个乱序的数
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>void bubblc_scrt(int arr[],int sz)//接收数组及数组个数值{ int i = 0; for (i = 0; i < sz - 1; i++)//sz-1=10-1=9趟,说明程序需要走9趟的操作 { int j = 0; for (j = 0; j <sz-1-i ; j++)//sz-1是固定的值,我们希望条件这里跟着变动, {原创 2021-02-20 16:32:40 · 848 阅读 · 0 评论 -
题26:获取二维数组的地址
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>int main(){ int arr[3][4] = { { 1,2,3 },{ 4,5 } };//第三行处于不完全定义 int i = 0; for (i = 0; i < 3; i++) { int j = 0; for (j = 0; j < 4; j++) { printf("arr[%d][.原创 2021-02-20 09:33:31 · 319 阅读 · 0 评论 -
题25:获取一维数组的地址
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>int main(){ int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; int sz = sizeof(arr) / sizeof(arr[0]); int i = 0; for (i = 0; i < sz; i++) { printf("&arr[%d]=%p\n", i, &.原创 2021-02-19 20:48:39 · 187 阅读 · 0 评论 -
题24:for循环strlen(arr)逐个输出字符串的字符
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<windows.h>int main(){ int i = 0; char arr[] = "abcdefghigklmnopqrstuvwxyz"; for (i = 0; i < strlen(arr); i++) { printf("%c", arr[i]); Sleep (500).原创 2021-02-19 19:34:03 · 307 阅读 · 0 评论 -
题23:求第n个斐波那契数(不考虑溢出) 递归法、迭代法
递归法//求第n个斐波那契数(不考虑溢出)#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int count = 0;//这个count还只能定义成全局变量,局部变量就报错说没有定义到int Fib(int n){ if (n == 3)//计算如序数3的斐波那契数,一共执行多少次,让count++ { count++; } if (n <= 2) return 1;//当n小于等于2时,第n个斐波那契数就是原创 2021-02-19 12:12:13 · 131 阅读 · 0 评论 -
题22:编写函数字符串长度,要求不使用strlen()函数,抑或不使用递归的方法
//编写函数不允许创建临时变量,求字符串长度#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>int my_strlen(char* str)//数组传参不是整个数组,而是首元素的地址{//既然是地址,那就引*p,根据地址找名字 int count = 0; while (*str != '\0') { count++; str++;//移动指针的办法,是++ } retur原创 2021-02-18 14:16:04 · 643 阅读 · 2 评论 -
题21:运用递归实现 接收一个整型值(无符号),按照顺序打印他的每一位,例如输入1234,输出1 2 3 4
//接收一个整型值(无符号),按照顺序打印他的每一位,例如输入1234,输出1 2 3 4#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>void print(int n){ if (n>9)//如果n>9,说明这个数是至少2位数,那么就有必要拆一下 { print(n / 10);//除以10,能去掉最后一位,这里得到123这部分 } printf("%d ", n % 10);//这里打印去掉的最后一位,如4原创 2021-02-18 12:07:35 · 211 阅读 · 0 评论 -
题20:写一个函数,每调用一次这个函数,就会将num的值加1
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>void Add(int* p)//当写下*p就代表下面的&num{ (*p)++;//但是这里{}里的*p需要加()才能正确使用}//++的优先级高于*的优先级,以防混淆加上()int main(){ int num = 0; Add(&num); printf("num=%d\n", num);//1 Add(&num); printf("num=原创 2021-02-17 16:25:47 · 265 阅读 · 0 评论 -
题19:在屏幕上输出9*9乘法口诀表
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ for (int j = 1; j <= 9; j++) { for (int i = 1; i <= 9; i++) { if (i <= j) { printf("%2d*%2d=%2d", i, j, j * i); }//%2d 表示打印的是2位数字,若是1位数字他添空格补齐 }printf("\n"); }}原创 2021-02-13 17:12:55 · 207 阅读 · 0 评论 -
题18:找到10个数中的最大值数字以及最小数字
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ int arr[] = {-1,-2,-3,-4,-5,-6,-7,-8,-9,-10}; int max = arr[0];//假设下标为0的数是最大,我们用他和其他数比大小 int i = 0; int sz = sizeof(arr) / sizeof(arr[0]);//计算个数 for (i = 1; i < sz; i++) if (ar原创 2021-02-13 16:10:51 · 362 阅读 · 0 评论 -
题17:计算1/1-1/2+1/3-1/4....+1/99-1/100的值,打印结果
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main()//1/1+1/2-1/3+1/4....-1/99+1/100{ int i; int flag = 1;//引入标志flag 示+1,-1去 double sum=0.0;//匹配浮点型的结果,int改double,0改做0.0 for (i = 1; i <= 100; i++) { sum += flag*1.0 / i;//引入标志flag,先原创 2021-02-13 15:18:44 · 288 阅读 · 0 评论 -
题16:计算1/1+1/2+1/3....+1/99+1/100的值,打印结果
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ int i; double sum=0.0;//匹配浮点型的结果,int改double,0改做0.0 for (i = 1; i <= 100; i++) { sum += 1.0 / i;//要想商不是0,这个/两端必须有一个数是浮点小数型的,就把1改做1.0 }//那么这个数的结果,也应该放到浮点小数型的结果里,再把sum改做浮点型 print原创 2021-02-13 14:50:23 · 463 阅读 · 0 评论 -
题15:编写程序数一下 1到100的所有整数中出现多少个数字9?
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ int i = 0; int count = 1; for (i = 1; i <= 100; i++) { if (i % 10 == 9||i / 10 == 9) count++; } printf("%d", count);}//09 19 29 39 49 59 69 79 89 99 (99算出现2次数字9)//90 91原创 2021-02-13 14:28:42 · 124 阅读 · 0 评论 -
题13:打印1000年到2000年之间的闰年年份及个数(l流程法)(函数法)
year%4==0 && year%100 !=0 ||year%400==0原创 2021-02-12 22:45:32 · 126 阅读 · 0 评论 -
题12:给定两个数,求这两个数的最大公约数(辗转相除法)
//m%n=0时,判定n为最大公约数 r = m % n; m = n; n = r;原创 2021-02-12 20:25:23 · 142 阅读 · 0 评论 -
题11:编写代码实现 输入密码若正确显示登录成功,错误显示密码错误,且构成3次退出程序
//strcmp(str1,str2)原创 2021-02-12 19:57:52 · 2633 阅读 · 0 评论 -
题10:编写代码 演示多个字符,从两端移动向中间汇聚
//用数组按下标赋值的方法 arr2[left]=arr1[left];arr2[right]=arr1[right];原创 2021-02-12 14:05:40 · 119 阅读 · 2 评论 -
题9:二分法 数组中找到一个数(函数法)
//#B站鹏哥7-7-0s#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; int k = 7;//找7 int sz = sizeof(arr) / sizeof(arr[0]);//个数 int left = 0;//左下标 int right = sz - 1;//右下标 while (left <= right)原创 2021-02-11 22:33:33 · 91 阅读 · 0 评论 -
题8:输出1-100之间 是3倍数的数
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ int i = 0; for (i = 1; i <= 100; i++) { if (i % 3 == 0) printf("%d ", i); } return 0;}原创 2021-02-10 18:23:37 · 792 阅读 · 0 评论 -
题7:输入三个数 由大到小排序
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ int a = 0; int b = 0; int c = 0; scanf("%d,%d%,d", &a, &b, &c); if (a<b)//不创建零时变量tmp,直接赋值会把abc原来的值丢失 {//我们要做ab的交换 int tmp = a;//a先放进tmp中,a就空了 a = b;//把大的值放到a里原创 2021-02-10 18:16:43 · 213 阅读 · 0 评论 -
题6:编写 在有序数组中,查找某个数
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; int sz = sizeof(arr) / sizeof(arr[0]);//个数 int i = 0; int k = 0; scanf("%d",&k); for (i = 0; i < sz; i++)//利用下标差1原理,不等于sz时执行显示 { if (原创 2021-02-10 12:23:33 · 218 阅读 · 0 评论 -
题5:计算!1+!2+!3+!n=?(高效法)
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ int i = 0; int n = 0; int ret = 1; int sum = 0; for (n = 1; n <=3; n++) { ret = ret * n; //n的阶乘 sum = sum + ret; } printf("%d", sum); return 0;}原创 2021-02-10 11:23:01 · 73 阅读 · 0 评论 -
题4:计算!1+!2+!3=?//sum=sum+ret;
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){ int i = 0; int n = 0; int ret = 1; int sum = 0; for (n = 1; n <=3; n++) { ret = 1; for (i = 1; i <=n; i++) { ret = ret * i; }//n的阶乘 sum = sum + ret; } printf("%原创 2021-02-10 11:07:45 · 75 阅读 · 0 评论 -
题3:比较2数大小(宏定义法)//#define MAX(x,y) (x>y?x:y)
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#define MAX(x,y) (x>y?x:y)int main(){ int num1 = 10; int num2 = 20; int max = 0; max = MAX(num1, num2); printf("%d", max); return 0;}原创 2021-02-10 10:50:06 · 1417 阅读 · 1 评论 -
题2:输出两数较大值 函数法、判断式法
//max=MAX(num1, num2);原创 2021-02-10 10:39:02 · 78 阅读 · 0 评论 -
题1:求n的阶乘(一般、函数、递归)
//ret=ret*i;原创 2021-02-10 09:58:08 · 408 阅读 · 0 评论