C语言练习题
- 猜数字游戏:完成一个游戏,随机生成一个100以内的整数,让玩家猜这个数字,每次输入都会提醒玩家猜大了或是猜小了,直到猜出最终结果.
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void Interface() {
printf("**********************\n");
printf("********0.退出********\n");
printf("********1.开始********\n");
printf("**********************\n");
}
int game() {
int num = rand() % 100 + 1;
int x;
for (; 1 ;) {
scanf("%d", &x);
if (x > num)
printf("大了\n");
else if (x < num)
printf("小了\n");
else {
printf("您猜对了\n");
break;
}
}
}
int main() {
srand((unsigned)time(NULL));
int i;
for (i = 1; i;) {
Interface();
scanf("%d", &i);
if (i == 1)
game();
else if (i == 0)
break;
else
printf("输入有误,请重新输入\n");
}
return 0;
}
- 写代码可以在整型有序数组中查找想要的数字,
找到了返回下标,找不到返回-1.(折半查找)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int binary(int i[10],int num,int x,int y) {
for (; 1;) {
if (num == i[(x + y) / 2])
return (x + y) / 2;
else if (num < i[(x + y) / 2])
y = (x + y) / 2 - 1;
else if (num > i[(x + y) / 2])
x = (x + y) / 2 + 1;
else if(x>=y)
break;
}
return -1;
}
int main() {
int a[10] = {0,1,2,3,4,5,6,7,8,9};
int num;
scanf("%d", &num);
int size = sizeof(a) / sizeof(a[0])-1;
printf("索引是%d", binary(a, num, 0, size));
return 0;
}
- 编写代码模拟三次密码输入的场景。
最多能输入三次密码,密码正确,提示“登录成功”,密码错误,
可以重新输入,最多输入三次。三次均错,则提示退出程序。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main() {
int pin = 987654;
int key;
printf("请输入密码\n");
for (int i = 0; i < 3; i++) {
scanf("%d", &key);
if (key == pin) {
printf("输入正确\n");
break;
}
else if (i == 2) {
printf("输入错误,程序即将退出\n");
break;
}
else {
printf("输入错误,请重试\n");
}
}
return 0;
}
- 编写一个程序,可以一直接收键盘字符,
如果是小写字符就输出对应的大写字符,
如果接收的是大写字符,就输出对应的小写字符,
如果是数字不输出。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
char cvn;
for (int i = 1; i;) {
printf("请输入一个字母\n");
scanf("%c", &cvn);
if (cvn > 64 && cvn < 91) {
printf("%c\n", cvn + 32);
break;
}
else if (cvn > 96 && cvn < 123) {
printf("%c\n", cvn - 32);
break;
}
else {
printf("输入有误,输入任意数字重新或输入0退出\n");
scanf("%d", &i);
}
}
return 0;
}