一道C语言的编程题,兔子洞的问题。

作者&投稿:铎类 (若有异议请与网页底部的电邮联系)
如何学习C语言?~

学习方法是:
1、课前预习,课后复习,认真做课堂、课后的作业,理解理论知识。
2、记住语法规则。
3、加强逻辑思维。
4、多动手,通过练习上机了解它的运行过程。
5、实践—>理论—>再实践,刚开始学习C语言时,按示例练习,并推动理论的学习,然后再自己多思考,多上机实践。

拓展资料C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
参考资料:c语言_百度百科 网页链接

  c语言:
  C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件、三维、二维图形和动画,具体应用例如单片机以及嵌入式系统开发 。
  因为具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序员中备受青睐。2000年起是使用最为广泛的编程语言。
  它由早期的编程语言BCPL(Basic Combined Programming Language)发展演变而来,在1970年,AT&T贝尔实验室的Ken Thompson根据BCPL语言设计出较先进的并取名为B的语言,最后导致了C语言的问世。 而B语言之前还有A语言,取名自世界上第一位女程序员Ada(艾达)。
  C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序员中备受青睐。

  汇编语言:
  汇编语言(Assembly Language)是面向机器的程序设计语言。在汇编语言中,用助记符(Memoni)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址,如此就增强了程序的可读性并且降低了编写难度,象这样符号化的程序设计语言就是汇编语言,因此亦称为符号语言。

优点:

  1、因为用汇编语言设计的程序最终被转换成机器指令,故能够保持机器语言的一致性,直接、简捷,并能像机器指令一样访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。使用汇编语言,可以访问所有能够被访问的软、硬件资源。
  2、目标代码简短,占用内存少,执行速度快,是高效的程序设计语言,经常与高级语言配合使用,以改善程序的执行速度和效率,弥补高级语言在硬件控制方面的不足,应用十分广泛。

缺点:

  1、汇编语言是面向机器的,处于整个计算机语言层次结构的底层,故被视为一种低级语言,通常是为特定的计算机或系列计算机专门设计的。不同的处理器有不同的汇编语言语法和编译器,编译的程序无法在不同的处理器上执行,缺乏可移植性;
  2、难于从汇编语言代码上理解程序设计意图,可维护性差,即使是完成简单的工作也需要大量的汇编语言代码,很容易产生bug,难于调试;
  3、使用汇编语言必须对某种处理器非常了解,而且只能针对特定的体系结构和处理器进行优化,开发效率很低,周期长且单调。

所以综合这些考虑,C语言是在汇编语言的基础上开发出来的,入手、记忆、理解比较容易,代码的可读性比较高,可一直性比较好。

# include <stdio.h>


int main()

{

//Hole表示20个三洞 ,Hole【21】是为了数组下标从1开始,方便对题目的理解 

//初始化为0,表示还没有被 灰狼搜索

int Hole[21] = {0};  

int i = 1,j;

//进行15次循环,表示灰狼搜索了15次 

for(j = 1; j <= 15; j++)

{

Hole[i] = 1;  //将洞i设为1,表示编号为i的洞已经搜索了

//设置下一个要搜索的山洞编号,因为隔两个,所以加3

//比如,一开始是1,然后是i1+3=4,隔着2和3号洞

//最后对20取余,是为了不超出20的范围,比如搜索完19号洞后,加上3是22,22%20=2,下一个就搜索2号洞 

i = (i + 3) % 20;  

if(i == 0)

Hole[20] = 1;  //如果i为20,下次设置被访问的将是Hole【0】 = 1,所以将Hole【20】单独考虑 

//15次循环完后,1-20剩余Hole【】数组中为0的,是为被搜索的山洞

for(i = 1; i <= 20; i++)

{

if(Hole[i] == 0) //如果为被搜索,输出该山洞号,即兔子所在的洞 

printf("%d ",i);

return 0; 

}



#include<stdio.h> int main()
{
int i;
int n=1000,m,a[11];
for(n=0;n<11;n++)
{
a[n]=-1;
}
for(n=1;n<=1000;n++)
{
m=(n*(n+1)/2)%10;
for(i=1;i<10;i++)
{
if(i==m)
{
a[i]=m;break;
}
}
if(m==i==0)
a[10]=0;
}
for(n=1;n<11;n++)
{
if(a[n]==-1)
printf("%d ",n);
}
printf("\n"); return 0; }

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。

# include <stdio.h>

int main()
{
//Hole表示20个三洞 ,Hole【21】是为了数组下标从1开始,方便对题目的理解
//初始化为0,表示还没有被 灰狼搜索
int Hole[21] = {0};
int i = 1,j;
//进行15次循环,表示灰狼搜索了15次
for(j = 1; j <= 15; j++)
{
Hole[i] = 1; //将洞i设为1,表示编号为i的洞已经搜索了

//设置下一个要搜索的山洞编号,因为隔两个,所以加3
//比如,一开始是1,然后是i1+3=4,隔着2和3号洞
//最后对20取余,是为了不超出20的范围,比如搜索完19号洞后,加上3是22,22%20=2,下一个就搜索2号洞
i = (i + 3) % 20;
if(i == 0)
Hole[20] = 1; //如果i为20,下次设置被访问的将是Hole【0】 = 1,所以将Hole【20】单独考虑
}

//15次循环完后,1-20剩余Hole【】数组中为0的,是为被搜索的山洞
for(i = 1; i <= 20; i++)
{
if(Hole[i] == 0) //如果为被搜索,输出该山洞号,即兔子所在的洞
printf("%d ",i);
}

return 0;
}

#include<iostream>
using namespace std;
void main()
{
int n, m=3, a[21], k, i, j, num; //计数器是从1开始的
cout << "请输入洞的数量(不超过100):";

for (i = 1; i <21; i++)
{
a[i] = 1;//标志1,表示存活
}

j = 1;
k = 1;
a[1] = 0; 
i = 2;
while(1){
if (a[i] == 1){
j = j + 1;//a[i];//报数

if (j == m) //出局
{
j = 0;
a[i] = 0;
k++; //出局人数
}

if (k ==15)
{
num = i;
break;
}
}
i++;
if (i == 21)
i = 0;

}
for (i = 1; i<21; i++)
if (a[i]!=0)
printf("%d ",i);
getchar();
}



C语言编程题,拜托大家
char c=0;while(i<=n){ c=getch();if(c!=13 && c!=4 && c>='0' && c<='9')\/\/输入只接收并回显数字字符 { if(!flag)nums[cnt]=0,cnt++,flag=1;nums[cnt-1]=nums[cnt-1]*10+c-'0';} if(c==8 && cnt>0)\/\/退格删除 { if(nums[cnt-1]\/10>0)\/\/当前输入数字...

C语音编程题(一个班级有N个学生,每个学生有学号、姓名,学生学习课程...
程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。以上内容参考:百度百科-c语言 ...

初学编程,大家帮忙看下这道c语言题怎么做?万分感谢
先给你第一题的,百度知道的这个编辑器真的不适合粘贴代码 include<stdio.h> include<string.h> define MAX_ARRAY_SIZE 1024 define MAX_MAP_SIZE 10 \/* 输入数组,连续输入,如:aedabcdaeas *\/ int inputArray(char *buff) { int len = 0;\/* 使用fgets来防止缓冲区溢出 *\/ if (NULL ...

C语言:下面两题咋编程?
(1)代码文本:include "stdio.h"define N 10 void sort(int a[],int n){ int i,j,k;for(n-=2,i=3;i<n;i++)for(j=3;j<n;j++)if(a[j]>a[j+1])k=a[j],a[j]=a[j+1],a[j+1]=k;} int main(int argc,char *argv[]){ int a[10],i;printf("Enter %d ...

C语言题目:输出所有的“水仙花数”,并输出其总个数。所谓“水仙花数”是...
2014-12-24 c语言编程题:输出所有三位数的水仙花数 10 2014-07-13 打印输出100到1000的水仙花数c语言编程题 9 2015-09-05 C语言练习题:求N位数的所有水仙花数,代码没错误输出结果却... 2015-11-07 C语言判断水仙花数题目。 6 更多关于位数 题目 水仙花数 语言的知识 > 网友...

高分求助~!C语言编程题3道~!速度快有加分!@_@
C语言经典解析。第一题 include <stdio.h> include <math.h> main(){ int m,i,k,sum=0,leap=1;printf("\\n");for(m=200;m<=400;m++){ k=(int)sqrt(m+1);for(i=2;i<=k;i++)if(m%i==0){leap=0;break;} if(leap) {printf("%-4d",m);sum += m;} leap=1;} pri...

c语言编程题,用for循环!急急急
include<stdio.h>int main(){int hg,bhg;for(hg=1;hg<2000;hg++)for(bhg=0;bhg<2000;bhg++)if(hg*5-bhg*18==9931){printf("%d",hg);}return 0;}

问一道C语言编程的问题,看下图
按你的提问,每天都吃一半多两个,第6天剩一个。程序按图片中的程序照猫画虎即可。计算结果,第一天摘了156个桃子,而不是100个。include <stdio.h>int main(){int day,x1,x2;day=5;x2=1;while(day>0){x1=(x2+2)*2;x2=x1;day--;}printf("total=%d\\n",x1);return 0;} 用...

c语言编程,求大神看看这题怎么做
include <stdio.h>int main(){int ah,am,as,bh,bm,bs,n; scanf("%d",&n); while(n--) {scanf("%d%d%d",&ah,&am,&as,&bh,&bm,&bs); ah+=bh; am+=bm; as+=bs; am+=as\/60; as%=60; ah+=am\/60; am%=60; printf("%d %d %d\\n",ah,am,as); } return ...

一个C语言的编程题目,请高手帮忙!谢谢!
\/*第一题:从键盘输入任意两个正整数x和y,编程求出两数的最大公因子和最小公倍数 \/ include <stdio.h> int main(void){ unsigned int x,y,i,a,b;printf("请输入两个正整数x和y:");scanf("%d %d", &x,&y);if (x < 2 || y < 2) { printf("无效的输入\\n");return 0;}...

察隅县13423752780: C语言的Josephus环问题 -
称彦迪尔: 围绕着山顶有10个洞,狐狸要吃兔子,兔子说:“可以,但必须找到我, 我就藏身于这十个洞中,你从10号洞出发,先到1号洞找,第二次隔1个 洞找,第三次隔2个洞找,以后如此类推,次数不限.”但狐狸从早到晚进 进出出了1000次,仍没...

察隅县13423752780: C语言编程难题.狐狸吃兔子.请高手帮忙深入分析下.感谢! -
称彦迪尔: 可能k还是溢出了,建议LZ改下k的递进语句试试 k=(k+n+9)%10+1; 可保证k永远在10以内. 试了一下,按此题目的意思来进行的话最多只能找到6个,LZ已经都有结果了,其他4个是永远也得不到的,从第20次之后就陷入死循环了.LZ可以 参...

察隅县13423752780: 求助狼追兔子编程问题 速进 -
称彦迪尔: for(n=1;n<999;n+i,i++)其中的 n+i 应该是 n=n+i 吧?另外,这样编程不严谨,因为不同的机器 n=n+i 和i++ 被执行的次序可能不一样,因此导致问题建议把 n=n+i 放到循环之中去

察隅县13423752780: 求解一道简单的C语言C程序C编程题 -
称彦迪尔: 题目没说清.1.输入仅限于小写字母还是所有字符;2 y,z输出a,b还是也按ASCII码向后推两位.#include <stdio.h>#include <string.h> int main() { char iword; char oword; while(iword = getchar()) { if(iword == '\n') break; oword = (iword - 95) % 26 + 97; printf("%c",oword); } printf("\n"); return 0; } 输入:abcdefxyz 输出:cdefghzab 此程序仅限输入小写字母.

察隅县13423752780: 一道简单的C语言编程问题
称彦迪尔: int Sum(int a) { int i,sum=0; for(i=1;i<=a;i++) { sum=sum+i; } return sum; } int Chen(int a) { int i,sum=a; for(i=a-1;i>=1;i--) { sum=sum*i; } return sum; } main() { int a; printf("Please input a number."); scanf("%d",&a); printf("1+2+...+n=%d,n!=%d",Sum(a),Chen(a)); getch(); } 我的原创哦~ 编译通过了的~ O(∩_∩)O哈哈~

察隅县13423752780: c语言的一道题 -
称彦迪尔: *(prt+0)=2,x=8,*(prt+y)<x成立.所以z取后面的*prt+y=2+0=2,所以z=2 第2轮循环:y=2,*(prt+1)=4,x=8,*(prt+y)<x成立.所以z取后面的*prt+y=2+1=3,所以z=3 第3轮循环:第1轮循环:y=1:y=0不多说了

察隅县13423752780: C语言程序的一道题目 -
称彦迪尔: #include <stdio.h>void main() { int x, a, b; do { printf ("please input x a b values:"); scanf ("%d%d%d", &x, &a, &b); if (1 == x) printf("%d\n", a + b); else if (2 == x) printf("%d\n", a - b); else if (3 == x) {printf("a=%d, b=%d\n", a, b); return;} }while(1); }

察隅县13423752780: 一道C语言的编程题~
称彦迪尔: #include <stdio.h> void main() { char s[100],*p; int a=0,b=0,c=0,d=0,e=0; gets(s); for(p=s;*p;p++) if('A'<=*p && *p<='Z') a++; else if('a'<=*p && *p<='z') b++; else if(*p==' ') c++; else if('0'<=*p && *p<='9') d++; else e++; printf("大写字母:%d\n",a);...

察隅县13423752780: C语言的一道编程题 -
称彦迪尔: #include <stdio.h>#define N 15 int fun(int a[]) { int cnt=0; int i,j,k; int n=N; for(i=0;i<n;i++) for(j=i+1;j<n;j++) if(a[i]==a[j]) { for(k=j;k<n-1;k++) a[k]=a[k+1]; cnt++; n--; } return N-cnt; } int main() { int a[N],i,cnt; for(i=0;i<N;i++) { scanf("%d",&a[i]);}cnt=fun(...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网