
C语言基础题目
墨潇
在读学生,2022届
展开
-
写一个函数返回参数二进制中 1 的个数 例如: 15 0000 1111 4 个 1
写一个函数返回参数二进制中 1 的个数例如 10 0000 1010 2个1例如: 15 0000 1111 4 个 1思路如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。举个例子:一个二进制数1100...原创 2019-12-22 20:13:27 · 280 阅读 · 0 评论 -
创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。 要求:自己设计函数的参数,返回值。
此题分解开也不难,直接上代码吧代码如下#include <stdio.h>//初始化模块void init(int data[], int length) { int i = 0; printf("开始初始化数组\n"); printf("请给数组赋值\n"); for (i = 0; i < length; i++) { ...原创 2019-11-22 19:02:30 · 176 阅读 · 0 评论 -
使用函数实现两个数的交换(不使用临时变量)
我在之前文章里有介绍过不使用临时变量进行数的交换点这里进行查看(不使用临时变量进行数的交换)代码如下#include <stdio.h>void swap(int *x, int *y) { printf("交换前:x=%d,y=%d\n", *x, *y); *x = *x ^ *y; *y = *x ^ *y; *x = *x ^ *y;...原创 2019-11-22 12:49:32 · 208 阅读 · 0 评论 -
实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定, 输入9,输出9*9口诀表,输入12,输出12*12的乘法口诀表
我们已经写过了简单版的99乘法表,这次是将其功能写成函数,并且不再是单纯的99乘法表,而是nn乘法表,不过也不难,就是给函数传一个参数而已代码如下#include <stdio.h>void multiplicationTable(int x) { int i = 0; int j = 0; for (i = 1; i <= x; ++i) { ...原创 2019-11-22 12:33:50 · 404 阅读 · 0 评论 -
编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输入,最多输入三次。三次均错,则提示退出程序。
简单的题,直接上代码#include <stdio.h>#include <string.h>int main(void) { char psw[10] = ""; int i = 0; int j = 0; for (i = 0; i < 3; ++i) { printf("please input:...原创 2019-11-20 20:59:03 · 213 阅读 · 0 评论 -
写代码可以在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回-1.(折半查找)
##首先找到目标数组的最小下标和最大下标int left = 0; //最小下标即为0int right = sizeof(data) / sizeof(data[0]) - 1; //求出最大下标 因为sizeof是用来求一个对象(类型,变量,……)所占的内存大小(以字节为单位)。 sizeof(data)求出的是整个数组所占内存大小, sizeof(data...原创 2019-11-20 20:37:57 · 416 阅读 · 0 评论 -
完成猜数字游戏(随机数生成函数与二分查找算法思想简单应用)。
关于这种游戏,我们分模块来写,这个猜数字游戏,我们分三个模块,游戏菜单模块、游戏主模块、主函数模块。游戏菜单模块不多作说明,很简单,在C语言中,我们一般使用 <stdlib.h> 头文件中的 rand() 函数来生成随机数,它的用法为:int rand (void); void 表示不需要传递参数。C语言中还有一个 random() 函数可以获取随机数,但是 rando...原创 2019-11-20 17:06:46 · 980 阅读 · 0 评论 -
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,
求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222思路分析输入一个数n,设它的n+nn+nnn+nnnn+nnnn 可以表示为n1+n2+n3+n4+n5,各项之间关系如下:n1=nn2=n1*10+nn3=n2*10+nn4=n3*10+nn5=n4*10+n所以用循环将每项算出来,然后累加即可。#...原创 2019-11-19 20:05:03 · 178 阅读 · 0 评论 -
输出0-999之间的水仙花数
在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数:153 = 1^3 + 5^3 + 3^3。370 = 3^3 + 7^3 + 0^3。371 = 3^3 + 7^3 + ...原创 2019-11-19 19:34:25 · 257 阅读 · 0 评论 -
1.在屏幕上输出以下图案:* *** ***** ******* *********
题目要求输出下列图形*************************************************************************************分析图像可得,号依次增多,然后再减少,这就得分成两部分来做了(一部分增加号,一部分减少*号)代码如下#include<stdio.h>int main(voi...原创 2019-11-19 18:12:28 · 7639 阅读 · 1 评论 -
编写程序数一下 1到 100 的所有整数中出现多少次数字9。
从10开始到100,给每个数字%10,取得它的个位,然后判断个位是不是9即可#include <stdio.h>int main(void) { int i = 0; int t = 0; int sum = 1; for (i = 10; i <= 100; i++) { t = i % 10; if (t ...原创 2019-11-18 21:09:03 · 120 阅读 · 0 评论 -
计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
此题属于简单题,怎么做都能做出来,但如果能巧解那就更好了巧解关键,在for循环里每次递增分母,分母不用管正负,关键将分子设为变量t,但是值不变,永远为1,每次只要用0-t去更新它的正负即可,即实现了 +1 -1的变换。#include<stdio.h>int main() { int i = 0; float t = 1; float sum = 0...原创 2019-11-18 21:00:37 · 413 阅读 · 0 评论 -
1. 将数组A中的内容和数组B中的内容进行交换。(数组一样大)
简单题,直接上代码。#include <stdio.h>int main(void) { int a[] = {0, 1, 2, 3, 4, 5}; int b[] = {6, 7, 8, 9, 10, 11}; int i; int temp; //交换内容 for (i = 0; i < 6; i++) { ...原创 2019-11-18 20:38:47 · 113 阅读 · 0 评论 -
求两个数的最大公约数。
取得两个值,先比较大小,将小的存入temp中,然后从temp开始递减,并开始寻找能整除两个数的那个数,第一个找到的数即为两数的最大公约数。#include <stdio.h>int main(void) { int a, b, temp; scanf("%d%d", &a, &b); if (a > b) temp ...原创 2019-11-12 17:47:19 · 120 阅读 · 0 评论 -
不创建临时变量,交换两个数的值
不允许创建临时变量,交换两个数的值交换两个数的值是一道很基本的题,通常我们都会创建一个临时变量来进行两个数值的交换。但是现在,我们不创建临时变量去将两个数的值进行交换。这里我们要用到二进制相关知识 &(按位与) |(按位或) ^(按位异或) ~(取反) <<(左移) >>(右移)以上是二进制里面的一些操作,不过我们重点来说^在这里的作用^ 按...原创 2019-11-12 17:21:08 · 323 阅读 · 0 评论 -
1. 打印100~200 之间的素数 2. 输出乘法口诀表 3. 判断1000年---2000年之间的闰年
打印100~200 之间的素数输出乘法口诀表判断1000年—2000年之间的闰年1原创 2019-11-12 16:53:50 · 136 阅读 · 0 评论