C语言基础训练题
-
完成猜数字游戏。
-
写代码可以在整型有序数组中查找想要的数字,
找到了返回下标,找不到返回-1.(折半查找) -
编写代码模拟三次密码输入的场景。
最多能输入三次密码,密码正确,提示“登录成功”,密码错误,
可以重新输入,最多输入三次。三次均错,则提示退出程序。 -
编写一个程序,可以一直接收键盘字符,
如果是小写字符就输出对应的大写字符,
如果接收的是大写字符,就输出对应的小写字符,
如果是数字不输出。
1. 完成猜数字游戏。
#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int menu()
{
int choice = 0;
printf("--------------\n");
printf("欢迎来到猜数字游戏!\n");
printf("1.开始游戏\n");
printf("0.退出游戏\n");
printf("请输入你的选择:");
printf("--------------\n");
scanf("%d", &choice);
return choice;
}
void game()
{
// 生成一个随机数
int target = rand() % 100 + 1;
while (1) {
// 提示用户
int num = 0;
printf("请输入你要猜的数字:");
scanf("%d", &num);
// 判断
if (num < target)
{
printf("你输入的低了!\n");
}
else if (num > target)
{
printf("你输入的高了!\n");
}
else
{
printf("猜对了!!!");
break;
}
}
}
int main4()
{
// time()得到一个时间戳
srand(time(0));
while (1)
{
int choice = menu();
if (choice == 1)
{
game();
}
else if (choice == 0)
{
printf("游戏结束!Bye!!!\n");
break;
}
else
{
printf("你的输入有误.\n");
}
}
return 0;
}
2. 写代码可以在整型有序数组中查找想要的数字, 找到了返回下标,找不到返回-1.(折半查找)
int search(int arr[], int size, int target)
{
int l = 0, h = size - 1;
int m = 0;
while (l <= h)
{
m = (l + h) / 2;
if (arr[m] > target)
h = m - 1;
else if (arr[m] < target)
l = m + 1;
else
return m;
}
return -1;
}
3. 编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输入,最多输入三次。三次均错,则提示退出程序。
void sign_in(int password)
{
int in_password = 0, i = 0;
scanf("请输入密码:%d", &in_password);
while (i < 3)
{
scanf("%d", &in_password);
if (in_password == password)
{
printf("登录成功\n");
break;
}
else
printf("密码错误,请重新输入, (你还有%d次机会):", 3 - i - 1);
i++;
}
}
4. 编写一个程序,可以一直接收键盘字符, 如果是小写字符就输出对应的大写字符, 如果接收的是大写字符,就输出对应的小写字符, 如果是数字不输出。
void s_gets()
{
char ch = ' ';
while (1)
{
ch = getchar();
if (ch >= 'a' && ch <= 'z')
printf("你输入的是小写字符,转为大写字符为:%c\n", ch - 32);
else if (ch >= 'A' && ch <= 'Z')
printf("你输入的是大写字符,转为小写字符为:%c\n", ch + 32);
else
continue;
}
}