C基础练习题

1.完成猜数字游戏。

2.写代码可以在整型有序数组中查找想要的数字,
找到了返回下标,找不到返回-1.(折半查找)

3.编写代码模拟三次密码输入的场景。
最多能输入三次密码,密码正确,提示“登录成功”,密码错误,
可以重新输入,最多输入三次。三次均错,则提示退出程序。

4.编写一个程序,可以一直接收键盘字符,
如果是小写字符就输出对应的大写字符,
如果接收的是大写字符,就输出对应的小写字符,
如果是数字不输出。

代码1.

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void Game();
void meuns(){
 printf("===================\n");
 printf("=====请输入选择====\n");
 printf("1.开始游戏\n");
 printf("2.结束游戏\n");
 int choice=0;
 while (1)
 {
  scanf("%d", &choice);
  if (choice == 1)
  {
   Game();
  }
  else if (choice == 2)
  {
   printf("good bye\n");
   return;
  }
  if (choice != 1 || choice != 2)
  {
   printf("输入有误3\n");
  }
 }
 }
void Game() {
 srand((unsigned int) time(0));//改变时间种子
 int Random_Numb = rand() % 100 + 1;//生成1到100的随机数
 printf("请输入所猜的数字;\n");
 int temp ,time=0;
 while (1)
 {
  scanf("%d", &temp);
  if (temp == Random_Numb)
  {
   time++;
   printf("猜对了,一共猜了%d次\n", time);
   return;
  }
  if (temp > Random_Numb)
  {
   printf("猜大了\n");
   ++time;
  }
  if(temp<Random_Numb)
  {
   printf("猜小了\n");
   ++time;
  }
 }
}
int main() {
 meuns();
 system("pause");
 return 0;
}
#if 0
生成随机数 rand()  头文件 <stdilb.h>
www.cplusplus.com/ C文档库
返回的值为 0RAND_MAX(根据库不同值不同 一般32767)
每次生成的随机数的序列都相同, 伪随机
可以改变随机种子的值从而改变随机值 通过srand改变 可以如代码中的写法
srand(0);随机种子给值给常数的话 生成的随机种子值还是相同
计算机时间戳 long int time_t 从19701100分作为基准时刻
结束于 
#endif  
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
 int arr[] = { 1,2,3,4,5,6,7,8,9 };
 int right = sizeof(arr)/sizeof(int);
 int left=0;
 int middle;
 int find;
 scanf("%d", &find);
 while (1)
 {
  middle = (left + right) / 2;
  if (find == arr[middle]) //比较是否相同
  {
   printf("%d", middle);
   break;
  }
  if (left == middle) //检测是否已经到了容量为2的区间
  {
   if (arr[right] == find)
   {
    printf("%d", right);
   }
   else
   {
    printf("没有这个数\n");
    break;
   }
  }
  if (arr[middle]>find)   //下来的两个if改变左右区间
  {
   right = middle;
  }
  if (arr[middle] < find)
  {
   left = middle;
  }
  if (left == right)
  {
   printf("没有找到\n");
   break;
  }
 }
 system("pause");
 return 0;
}
#if 0
用二分查找 将数组左右用数字表示起来找中间值,依次比较
值得注意的是如果最后一个区间值为2,那么得检测右值,不然会出现死循环
#endif 
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main() {
 char password[30] = {0};
 printf("请输入密码:\n");
 int i;
 for ( i = 1; i <= 3; i++)
 {   
  scanf("%s", password);
  if (0==strcmp(password, "1365460736"))   //strcmp函数用于比较两个字符串 相同返回0;
  {
   break;
     }
  else
  {
   printf("密码错误重新输入,还剩%d次机会\n",3-i);
  }
 }
 if (i >= 4)
 {
  printf("登录失败\n");
 }
 if (i < 4)
 {
  printf("登陆成功\n");
 }
 system("pause");
 return 0;
}
#include<stdio.h>
int main()
{
 while (1)
 {
  printf("请输入所要转换的字母\n");
  char ch = getchar();
  if(ch>=97&&ch<=122)
  printf("%c\n",ch-32 );
  if(ch>=65&&ch<=90)
  printf("%c\n", ch + 32);
 }
 return 0;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值