一些可以使你感兴趣的c语言简单练习
来源:互联网 发布:新淘宝网 编辑:程序博客网 时间:2024/05/18 02:46
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在学习的过程中最重要的就是自己对所学的东西感不感兴趣,兴趣在我们学习的过程中会给我们一些动力,从而激发我们潜在的力量,今天就给大家介绍几种有意思的C语言练习题,从而使大家可以对C语言又不一样的学习态度。</span>
①.5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
A选手说:B第一,我第三。
B选手说:我第二,E第四。
C选手说:我第一,D第二。
D选手说:C最后,我第三。
E选手说:我第四,A第一。
比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。
对于初学C语言的人来说一看这种题一点思路的都没有,但也不要懊恼,毕竟是人家的面试题么,话不多说先看程序。
#include<stdio.h>int main(){int a = 0, b = 0, c = 0, d = 0, e = 0;for (a = 1; a <= 5; a++) for (b = 1; b <= 5; b++)for (c = 1; c <= 5; c++) for (d = 1; d <= 5; d++)for (e = 1; e <= 5; e++) if((b == 1) + (a == 3)==1 &&(b == 2) + (e == 4) == 1 && (c == 1) + (d == 2) == 1&& (c == 5) + (d == 3) == 1 && (e == 4) + (a == 1) ==1) {printf("A:%d B:%d C:%d D:%d E:%d\n", a, b, c, d, e);} return 0;}其中最不容易想到的就是if里边的条件判断,每人说的那句话都是一个假一个真所以判断结果和为1.
②.日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。
现在请根据这些信息,写一个程序来确定到底谁是凶手。
这个题和上个题有些相似的地方,就是根据每个人说的话的真假可以做出一个判断条件从而达到此题的目的。
#include<stdio.h>int main(){int k = 0;for (k = 'a'; k <= 'd'; k++){if ((k != 'a') + (k == 'c') + (k == 'd') + (k !='d') == 3){printf("killer is %c", k);}}return 0;}判断条件和上题有着一样的思路。
③.猜数字游戏
#include<stdio.h>#include<stdlib.h>#include<windows.h>#include<time.h>void game();void menue();int main(){int i = 0;l:menue();scanf_s("%d", &i);switch(i){case 1:game(11);break;case 2:game(101);break;case 3:game(1001);break;case 4: return 0;break;default: "error";}Sleep(1000);system("cls");goto l;system("pause");}void game(int i){int num = 0, r = 0;srand((int)time(0));r = (rand() % i);printf("请猜一个数:>");scanf_s("%d", &num);while (num != r){if (num > r){printf("猜大了:<");}if (num < r){printf("猜小了:<");}scanf_s("%d", &num);}printf("猜对了:>");}void menue(){printf("欢迎进入猜数游戏\n");printf("1.简单(0-10)\n");printf("2.一般(0-100)\n");printf("3.困难(0-1000)\n");printf("4.退出游戏\n");}自己用C语言写出来的第一个算是小游戏的估计就是这个猜数游戏了,猜数字游戏的逻辑也是很简单的作为新手培养感情也是不错的选择。
④.三次密码输入的模拟。
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){int a = 0,i=0;char pwd[] = "123456";char key[7];printf("请输入密码");for (i = 0; i < 3; i++){scanf("%s", key);printf("%s", key);a = strcmp(pwd, key);if (a != 0){if (i < 2){printf("密码错误\n请重新输入:");}else{printf("密码错误\n超过输入次数!!!\n");}}else{printf("密码正确\n欢迎使用!\n");break;}}system("pause");return 0;}是不是有点像银行卡密码的感觉,在这个代码的编写过程中我们创建2个一维数组来存取我们的用户输入密码和正确密码,其次在密码的比对过程我们用了一个strcmp()这个用于比较的库函数。
⑤在屏幕上打印杨辉三角。
#include<stdio.h>int main(){int arr[10][10] = {0};int i,k,j;for (i = 0; i <= 10; i++){arr[i][0] = 1;arr[i][i] = 1;}for (i = 2; i < 10; i++){for (j = 1; j < 10; j++){arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}}for (i = 0; i<10; i++){for (k = 0; k < 10 - i; k++){printf(" ");}for (j = 0; j <= i; j++){printf("%3d ", arr[i][j]);}printf("\n");}system("pause");return 0;}首先我们用了一个
for (i = 0; i <= 10; i++){arr[i][0] = 1;arr[i][i] = 1;}给第一行和对角线赋值为1,然后根据杨辉三角的规律其中的一个数等于肩膀上的2个数之和,用2个for语句固定好每个行每一个维值得值就是:
for (i = 2; i < 10; i++){for (j = 1; j < 10; j++){arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}}固定好个位置的值接下来的就是每一个值得打印了。
1 0
- 一些可以使你感兴趣的c语言简单练习
- 写的一些c语言练习
- 学习C语言的一些小练习
- 初学的c语言一些简单的练习题(自我练习)
- 一些感兴趣的书
- 一些较感兴趣的个人文章C/C++
- C语言的一些简单项目
- C语言的一些简单操作
- 学习c语言的一些简单经验!
- c语言字符串的一些简单讲解
- c语言循环, 循环练习的一些题,九九乘法表等
- C语言一些关于位操作符的小练习
- C语言常见的list一些编程练习
- 一些感兴趣的csdn网址
- c语言文件操作练习--一个简单的字典查找
- 一些css3简单的练习
- 一些简单的编程练习
- 一些练习的简单总结
- Android网络编程(二)HttpClient与HttpURLConnection
- mysql绿色版安装使用配置教程?
- [leetcode 300] Longest Increasing Subsequence
- 数据库DBO代码
- 为毛你深陷故障驱动式开发
- 一些可以使你感兴趣的c语言简单练习
- JS函数实现基本计算器计算
- mysql别名
- 唯爱小粽子:软件开发中前期准备的重要性
- 第5周项目3—时间类(2)
- cf17A Noldbach problem (素数打表)
- 安装lnmp后,忘记phpmyadmin的root密码,怎么办
- 面向切面编程(AOP)
- collection view 自定义