1.输出1-100之间的奇数
int main() {
for (int i = 1; i <= 100; i+=2)
{
printf("%d ", i);
}
return 0;
}
2判断两个数组是否有相同的元素
int main() {
int arr1[] = { 1,25,53,65,55 };
int arr2[] = { 12,5,36,4,2 };
int sz = sizeof(arr1) / sizeof(arr1[0]);
int i = 0;
for (i = 0; i < sz; i++)
{
for (int j = 0; j < sz; j++)
{
if (arr1[i] == arr2[j])
{
printf("找到了");
return 0;
}
}
}
if (i == sz)
{
printf("没找到");
}
return 0;
}
3求一元二次方程的解
int main() {
//一元二次方程 ax^2+bx + c = 0
int a, b, c = 0;
printf("请输入一元二次方程的 a b c");
scanf("%d%d%d", &a, &b, &c);
if (b*b-4*a*c==0)
{
printf("有两个相等的实根:x1=x2=%d\n", -b / (2*a));
}
else if(b*b-4*a*c<0)
{
printf("无解\n");
}
else
{
printf("x1=%d,x2=%d\n", (-b + sqrt(b*b - 4 * a*c)) / (2 * a), (-b - sqrt(b*b - 4 * a*c)) / (2 * a));
}
system("pause");
return 0;
}
4编写代码演示多个字符从两端移动,向中间汇聚
int main() {
char arr1[] = "##########s";
char arr2[] = "Xu Zi Xin!s";
int left = 0;
int right = strlen(arr1)-1;
while (left<=right)
{
arr1[left] = arr2[left];
arr1[right] = arr2[right];
system("cls");
printf("%s\n", arr1);
left++;
right--;
Sleep(1000);
}
system("pause");
return 0;
}
5.编写代码实现,模拟用户登陆场景,并且只能登陆三次。(只允许输入三次密码,如果密码正确则提示登陆成功如果三次均输入错误则退出程序)
int main() {
int i = 0;
char password[10] = { 0 };
for (i = 0; i < 3; i++)
{
printf("请输入密码:");
scanf("%s", password);
if (strcmp(password,"123456")==0)
{
break;
}
else
{
printf("密码错误");
}
}
if (i==3)
{
printf("三次输入密码错误,退出程序");
}
else
{
printf("登陆成功");
}
system("pause");
return 0;
}
6.将数组A中的内容和数组B中的内容进行交换(数组一样大)
int main() {
int arr1[] = { 1,2,3,4,5,6 };
int arr2[] = { 5,5,5,5,5,5 };
int sz = sizeof(arr1) / sizeof(arr1[0]);
for (int i = 0; i < sz; i++)
{
int temp = arr1[i];
arr1[i] = arr2[i];
arr2[i] = temp;
}
system("pause");
return 0;
}
7.计算1/1 - 1/2 + 1/3 -1/4 + 1/5...+1/99-1/100的值
int main() {
double sum = 0;
int flag = 1;
for (int i = 1; i <= 100; i++)
{
sum += ((1.0 / i) * flag);
flag = -flag;
}
printf("%f", sum);
system("pause");
return 0;
}
int main() {
double sum =0,temp = 0;
int i = 0;
for (i = 1; i <= 100; i++)
{
temp = pow(-1, i + 1);
sum += (1.0 / i)*temp;
}
printf("%f", sum);
system("pause");
return 0;
}
8.编写程序数一下1到100的所有整数中出现多少次数字9.
int main() {
int i = 0;
int count = 0;
for (i = 0; i <= 100; i++) {
// 个位为9 十位为9;
if (i%10==9||i/10==9)
{
count++;
printf("%d ", i);
}
}
printf("\ncount = %d", count);
system("pause");
return 0;
}
9.交换两个数字的位置不使用中间变量
int main() {
int a = 10;
int b = 20;
printf("交换前: a=%d; b=%d", a, b);
a = a^b;
b = a^b;
a = a^b;
printf("交换后: a=%d; b=%d", a, b);
system("pause");
return 0;
}
10.求最大公因数 最小公倍数
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include
int main() {
printf("输入两个数:");
int a = 0;
int b = 0;
scanf("%d%d", &a, &b);
if (a < b)
{
int temp = a;
a = b;
b = temp;
}
int temp = 1;
while (temp != 0)
{
temp = a % b;
a = b;
b = temp;
}
printf("%d", a);
system("pause");
return 0;
}
11.在屏幕上输出以下图案:
*
***
*****
***
*
int main() {
int i = 0;
int n = 0;
scanf("%d", &n);//n为高的一半
// *
// ***
//*****
// ***
// *
for (i = 0; i < n; i++)
{
int j;
for (j = 0; j < n - i; j++)
{
printf(" ");
}
for (j = 0; j < i*2+1; j++) {
printf("*");
}
printf("\n");
}
for (i = 0; i < n-1; i++)
{
for (int j = 0; j <= i+1; j++) {
printf(" ");
}
for (int j = 0; j <(n-i-1)*2-1; j++) {
printf("*");
}
printf("\n");
}
system("pause");
return 0;
}
12.求出0~999之间的所有水仙花数并输出 水仙花数是指一个三位数其各位上数字的立方和等于该数本身
如153 = 1+5+3则153是水仙花数
int main() {
int i;
for (i = 0; i < 999; i++)
{
int count = 1;
//1.判断几位数
int temp = i;
while (temp>9)
{
count++;
temp /= 10;
}
int sum = 0;
//2.计算是不是水仙花数
temp = i;
while (temp)
{
sum += pow(temp % 10, count);
temp = temp / 10;
}
if (i == sum)
{
printf("%d ", i);
}
}
system("pause");
return 0;
}
13.求Sn = a+aa+aaa+aaaa+aaaaa的前五项之和,其中a是一个数字例如 2+22+222+2222+22222
int main() {
int a = 0;
int n = 0;
scanf("%d %d", &a, &n);
int sum = 0;
int temp = 0;
for (int i = 0; i < n; i++)
{
temp = temp * 10 + a;
sum += temp;
}
printf("%d", sum);
system("pause");
return 0;
}
14.编写一个程序,他从标准输入读取C源代码,并验证所有花括号是否成对出现
int main() {
char ch = 0;
int count = 0;
while ((ch = getchar())!= EOF)//EOF end of file
{
if (ch=='{')
{
count++;
}
else if(ch == '}'&&count==0)
{
count--;
break;
}
else if(ch=='}')
{
count--;
}
}
if (count==0)
{
printf("匹配\n");
}
else
{
printf("不匹配\n");
}
system("pause");
return 0;
}
15.计算n的阶乘
int main() {
int n = 0;
scanf("%d", &n);
int i;
int temp = 1;
for (i = 1; i <= n; i++)
{
temp *= i;
}
printf("%d", temp);
system("pause");
return 0;
}
16.计算1! + 2! + 3!...+10!
int main() {
int n = 0;
//scanf("%d", &n);
int sum = 0;
int temp = 1;
for (int i = 1; i <= 3; i++)
{
temp *= i;
sum += temp;
}
printf("%d", sum);
system("pause");
return 0;
}
17.在一个有序数组中查找具体的某个数字n
编写 int binsearch(int x,int v[],int n);
功能:在v[0]<=v[1]<=[v2]<=...<=v[n-1]的数组中查找x
int binSearch(int arr[], int x, int sz) {
int left = 0;
int right = sz-1;
int mid = 0;
while (left<=right)
{
mid = left + (right-left) / 2;
if (arr[mid]>x)
{
right = mid - 1;
}
else if(arr[mid]x)
{
right = mid - 1;
}
else if (arr[mid]right)
{
printf("找不到");
}*/
}
18.完成猜数字游戏。
#include
void menu() {
printf("********************\n");
printf("*******猜数字*******\n");
printf("***1.play 0.exit***\n");
printf("********************\n");
}
void game() {
int input = 0;
int num = rand() % 100 + 1;
printf("%d\n", num);
while (1)
{
printf("请猜数字:");
scanf("%d", &input);
if (input>num)
{
printf("猜大了\n");
}
else if(input
19.编写一个程序,可以一直接收键盘字符,如果是小写字母就输出对应的大写字母 如果是大写字母就输出对应的小写字母
int main() {
int ch = 0;
while ((ch = getchar()) != EOF)
{
if (ch >= 'A'&&ch <= 'Z')
{
putchar(ch + ('a' - 'A'));
}
if (ch >= 'a'&&ch <= 'z')
{
putchar(ch - ('a' - 'A'));
}
}
system("pause");
return 0;
}
20.编写代码实现:求一个整数存储在内存中的二进制中1的个数。
int main() {
int num = -1;
int i = 0;
int count = 0;
//for (i = 0; i < 32; i++)
//{
// if (((num >> i) & 1) == 1) {
// count++;
// }
//}
// 13 12
//1101 & 1100 1100
// 1011 1000
//
while (num)
{
num = num&(num - 1);
count++;
}
printf("%d ", count);
system("pause");
return 0;
}
21.编写代码实现:将00000000 00000000 00000000 00001011中第一个1变为0;
int main() {
int n = 11;//1011
printf("%d", n&(n - 1));
system("pause");
return 0;
}
22.获取一个数二进制序列中的所有偶数位和奇数位,分别输出二进制序列
int main() {
int n = 11;
// 00000000 00000000 00000000 00001011
//奇数位
for (int i = 30; i >= 0; i-=2)
{
printf("%d", (n >> i) & 1);
}
//偶数位
printf("\n");
for (int i = 31; i >= 0; i-=2)
{
printf("%d", (n >> i) & 1);
}
system("pause");
return 0;
}
23.输出一个整数的每一位
int print(int n) {
if (n>9)
{
print(n/10);
}
printf("%d", n % 10);
}
int main() {
int n = 1234;
print(1234);
system("pause");
return 0;
}
24.编程实现:两个int(32)位 整数m和n的二进制表达式中有多少个位不同::如1997 2299 输出7
int count_one_bit(int n) {
int count = 0;
while (n)
{
count++;
n = n&(n - 1);
}
return count;
}
int main() {
int n = 2299;
int m = 1999;
int temp = n^m;
printf("%d", count_one_bit(temp));
system("pause");
return 0;
}
25.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9输出9*9口诀表,输出12,输出12*12的乘法口诀表
void print(int n) {
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= i; j++)
{
printf("%d*%d=%2d ", j, i, i*j);
}
printf("\n");
}
}
int main() {
int n = 0;
scanf("%d", &n);
print(n);
system("pause");
return 0;
}
26.使用函数实现两个数的交换
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a = 10;
int b = 20;
swap(&a, &b);
printf("a = %d; b = %d;", a, b);
system("pasue");
return 0;
}
27.实现一个函数判断year是不是润年
int isLeapyear(int year) {
if (((year%4==0)&&(year%100!=0))||(year%400==0))
{
return 1;
}
return 2;
}
int main() {
int year = 0;
printf("请输入一个年份:");
scanf("%d", &year);
if (1 == isLeapyear(year))
{
printf("true");
}
else
{
printf("false");
}
system("pause");
return 0;
}
28创建一个数组 实现函数init() 初始化数组 实现empty()清空数组 实现reverse()函数完成数组的逆置。
要求:自己设计函数的参数,返回值
void init(int arr[], int sz, int temp) {
for (int i = 0; i < sz; i++)
{
arr[i] = temp;
}
}
void empty(int arr[],int sz) {
for (int i = 0; i < sz; i++)
{
arr[i] = 0;
}
}
int print(int arr[],int sz) {
for (int i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
return sz;
}
void reserve(int arr[], int sz) {
int left = 0;
int right = sz - 1;
while (left
29.实现一个函数,判断一个数是不是素数
int isPrime(int num) {
for (int i = 2; i < sqrt(num); i++)
{
if (num%i==0)
{
return 0;
}
return 1;
}
}
int main() {
int num = 0;
scanf("%d", &num);
int ret = isPrime(num);
if (1==ret)
{
printf("true");
}
else
{
printf("false");
}
system("pause");
return 0;
}
30.编程实现strcpy
char* mystrcpy(char *dest,const char *scr) {
char *temp = dest;
assert(dest != NULL);
assert(scr != NULL);
while (*dest++=*scr++)
{
;
}
return temp;
}
int main() {
char arr[] = { 0 };
mystrcpy(arr, "abcdef");
system("pause");
return 0;
}
31.求100~200之间的素数
int main() {
//求100~200之间的素数
for (int i = 101; i <= 200; i+=2)
{
int j = 0;
for (j = 2; j <= sqrt(i); j++)
{
if (i%j==0)
{
break;
}
}
if (j > sqrt(i))
{
printf("%d ", i);
}
}
system("pause");
return 0;
}
32.打印9*9乘法表
int main() {
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= i; j++) {
printf("%d * %d = %2d ", i, j, i*j);
}
printf("\n");
}
system("pause");
return 0;
}
33.输出1000~2000之间的闰年
int main() {
for (int i = 1000; i <= 2000; i++)
{
if ((i%4==0&&i%100!=0)||(i%400==0))
{
printf("%d ", i);
}
}
system("pause");
return 0;
}