‘壹’ c语言课程设计,贪吃蛇应该怎么做
2.1程序功能介绍
贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。
2.2程序整体设计说明
一个游戏要有开始部分,运行部分,结束部分(实际上开始部分与运行部分是一体的)。
2.2.1设计思路
这个程序的关键是表示蛇的图形以及蛇的移动。用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示。移动时必须从蛇头开始,所以蛇不能向相反方向移动,也就是蛇尾不能改作蛇头。如果不按任何键,蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,这时由于没有庆平的原因,原来蛇的位置和新蛇的位置差一个单位,所以看起来社会多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现和消失也是画矩形块和覆盖矩形块
2.2.2数据结构设计及用法说明
开始部分:
游戏是运行在图形模式下的,所以第一步一定是初始化图形模式,接着要有开始的界面,就像书有封面一样,我设置了一个游戏的标题画面,除了游戏标题画面我还设置了一个欢迎画面。标题画面以后,还要为游戏的运行部分作初始化,包括绘制游戏运行时的背景,对游戏某些重 要变量的初始化。
运行部分:
作为游戏的核心部分,这里包括的函数比较多,也就是模块比较多,首先让我模拟一下贪吃蛇的游戏模式:某个世界上突然出现一条蛇,它很短,它的运动神经异常,它没法停止自己的多动症在它的世界里就只有食物,它很饿,也很贪吃;同样在不明原因的情况下,食物从天而降,可惜的是没有落到嘴边;饥饿的主人公,不管它有没有毒,也不问食物的来历,径直向食物爬去;它吃到食物啦,它超出想象的同化能力让食物很快的成为自己身体的一部分,它的身子变长啦。当它吃到第一颗食物时,上帝有给它第二颗,于是它吃了第二颗,于是又变长了,于是又有第三颗??它的身子是一直的加长,它不管自己过长身体的麻烦——转身不便,继续吃下去,现在它是直接把巴张大,好让食物有个绿色通道。但是在某天的下午,它咬到了自己,它才想起自己是一条毒蛇,于是晕死过去(不是毒死);又或者它往食物冲锋的时候,它失去控制,撞到了墙上。
第一轮循环:第一步,出现食物;第二步,蛇不停运动;第三步,检查蛇是撞到自己或墙壁;由第四步起游戏有两条支线(A、B):
A :第四步,蛇没有碰到自己或墙壁,蛇继续前进,绘制蛇的动作;第五步,判断蛇是否吃到食物,如果蛇吃到食物,身子变长,原来的食物消失;第六步,让玩家输入控制指令,让蛇在下一轮循环的第二步改变运动方向;第七步,第二轮循环的第一步,重复第一轮的步骤;
B:第四步,蛇碰到自己或墙壁,终止游戏。
结束部分:
游戏结束时,显示“GAME OVER”,已经是约定俗成的规律了,我的游戏也不例外。除了游戏结束画面外,我还设置了一个游戏退出画面,“善始善终”嘛。
有了上述的大致划分,我把整个程序划分成(13+2)个模块(其实就是函数)
2.2.3程序结构(流程图)
图2.1流程图
依据所需要处理的任务要求,规划输入数据和输出结果,决定存放数据的数据结构。
C语言中数据结构集中体现在数据类型上,因此在进行C语言程序设计时,应统筹规划程序中所使用的变量,数组,指针等,以及它们的类型等。这点是很重要的,如果在此期间选择不合适的变量或者数组,将来修改就十分困难。
现在分析一下贪吃蛇游戏中的元素,继而得出与它们对应的在程序中的描述:
蛇:
基本描述:长度,颜色,位置。
对应数据与数据类型:长度—虽然可以用坐标表示,但是这样的话,运算量将很大,所以换算成较大的单位—节数,以固定长度的每节描述;坐标--整型;颜色--整型; 位置--X,Y坐标。
增加的描述:蛇运动的方向,蛇的生命。
对应数据与数据类型:这些描述是为了与程序的按键的输入部分与判断游戏结束部分相联系而设的。方向只有四个方向:上下左右。可以设置与之对应的四个整型数:3、4、2、1。生命就只有两种情况:死或生,对应0或1。
食物:
基本描述:颜色,位置。
对应数据与数据类型:由于颜色设成固定的,所以不再讨论。位置—X、Y坐标。
增加的描述:食物的存在。
对应数据与数据类型:这是为了避免重复出现食物而设置的,与绘制食物的函数有联系。只有两个值:0或1(没有食物或有食物)
其他的元素:墙,由于它在显示上是作为背景而存在的,所以并没有什么说明实际的墙壁就是四条直线组成的边框,由坐标描述。
还需要的变量:键盘键入的键值(作为全局变量,整型);经常要使用的循环变量;自定义的填充图案;说明文字的字符数组;游戏的记分;游戏的速度(蛇的速度)。
图2.2蛇的不停运动的关键算法的流程图
2.2.4各模块的功能及程序说明
主要模块的实现思路和算法的流程图说明:
关键所在——蛇不停移动的Snakemove():
蛇的不停移动,就是蛇的下一节取代前一节的位置,在计算机中就是蛇下一节的位置坐标变成前一节的位置坐标。在上文中,已定义蛇的位置坐标为数组类型,一组坐标对应一节的位置,假设有i+1节,由0到i节,第i节的坐标取第i-1节的坐标,第i-1节的坐标取第i-2节的坐标??直到第1节取第0节的坐标。而第0节的坐标,即蛇头的坐标要往某个方向变化,变化量为蛇每节的长度。蛇的这种坐标轮换需要循环语句使其继续下去。
2.2.5程序结果
运行程序得到如下初始界面图:
图2.3程序结果图
用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示:
图2.4程序结果图
蛇没有碰到自己或墙壁,蛇继续前进:
图2.5程序结果图
游戏结束时,显示“GAME OVER”
图2.6程序结果图
2.3程序源代码及注释
#define N 200
#include <graphics.h>
#include <stdlib.h>
#include <dos.h>
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define DOWN 0x5000
#define UP 0x4800
#define ESC 0x011b
int i,key;
int score=0;/*得分*/
int gamespeed=50000;/*游戏速度自己调整*/
struct Food{
int x;/*食物的横坐标*/
int y;/*食物的纵坐标*/
int yes;/*判断是否要出现食物的变量*/
}food;/*食物的结构体*/
struct Snake{
int x[N];
int y[N];
int node;/*蛇的节数*/
int direction;/*蛇移动方向*/
int life;/* 蛇的生命,0活着,1死亡*/
}snake;
void Init(void);/*图形驱动*/
void Close(void);/*图形结束*/
void DrawK(void);/*开始画面*/
void GameOver(void);/*结束游戏*/
void GamePlay(void);/*玩游戏具体过程*/
void PrScore(void);/*输出成绩*/
/*主函数*/
void main(void){
Init();/*图形驱动*/
DrawK();/*开始画面*/
GamePlay();/*玩游戏具体过程*/
Close();/*图形结束*/}
/*图形驱动*/
void Init(void){
int gd=DETECT,gm;
registerbgidriver(EGAVGA_driver);
initgraph(&gd,&gm,"c:\program files\winyes\tc20h\bgi");
cleardevice();}
/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/
void DrawK(void){
/*setbkcolor(LIGHTGREEN);*/
setcolor(11);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/
for(i=50;i<=600;i+=10)/*画围墙*/ {
rectangle(i,40,i+10,49); /*上边*/
rectangle(i,451,i+10,460);/*下边*/ }
for(i=40;i<=450;i+=10) {
rectangle(50,i,59,i+10); /*左边*/
rectangle(601,i,610,i+10);/*右边*/ }}
/*玩游戏具体过程*/
void GamePlay(void){
randomize();/*随机数发生器*/
food.yes=1;/*1表示需要出现新食物,0表示已经存在食物*/
snake.life=0;/*活着*/
snake.direction=1;/*方向往右*/
snake.x[0]=100;snake.y[0]=100;/*蛇头*/
snake.x[1]=110;snake.y[1]=100;
snake.node=2;/*节数*/
PrScore();/*输出得分*/
while(1)/*可以重复玩游戏,压ESC键结束*/ {
while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/ {
if(food.yes==1)/*需要出现新食物*/ {
food.x=rand()%400+60;
food.y=rand()%350+60;
while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/
food.x++;
while(food.y%10!=0)
food.y++;
food.yes=0;/*画面上有食物了*/ }
if(food.yes==0)/*画面上有食物了就要显示*/ {
setcolor(GREEN);
rectangle(food.x,food.y,food.x+10,food.y-10); }
for(i=snake.node-1;i>0;i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/ {
snake.x[i]=snake.x[i-1];
snake.y[i]=snake.y[i-1]; }
/*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/
switch(snake.direction) {
case 1:snake.x[0]+=10;break;
case 2: snake.x[0]-=10;break;
case 3: snake.y[0]-=10;break;
case 4: snake.y[0]+=10;break; }
for(i=3;i<snake.node;i++)/*从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*/ {
if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]) {
GameOver();/*显示失败*/
snake.life=1;
break; } }
if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||
snake.y[0]>455)/*蛇是否撞到墙壁*/ {
GameOver();/*本次游戏结束*/
snake.life=1; /*蛇死*/ }
if(snake.life==1)/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/
break;
if(snake.x[0]==food.x&&snake.y[0]==food.y)/*吃到食物以后*/ {
setcolor(0);/*把画面上的食物东西去掉*/
rectangle(food.x,food.y,food.x+10,food.y-10);
snake.x[snake.node]=-20;snake.y[snake.node]=-20;
/*新的一节先放在看不见的位置,下次循环就取前一节的位置*/
snake.node++;/*蛇的身体长一节*/
food.yes=1;/*画面上需要出现新的食物*/
score+=10;
PrScore();/*输出新得分*/ }
setcolor(4);/*画出蛇*/
for(i=0;i<snake.node;i++)
rectangle(snake.x[i],snake.y[i],snake.x[i]+10,
snake.y[i]-10);
delay(gamespeed);
setcolor(0);/*用黑色去除蛇的的最后一节*/
rectangle(snake.x[snake.node-1],snake.y[snake.node-1],
snake.x[snake.node-1]+10,snake.y[snake.node-1]-10); } /*endwhile(!kbhit)*/
if(snake.life==1)/*如果蛇死就跳出循环*/
break;
key=bioskey(0);/*接收按键*/
if(key==ESC)/*按ESC键退出*/
break;
else
if(key==UP&&snake.direction!=4)
/*判断是否往相反的方向移动*/
snake.direction=3;
else
if(key==RIGHT&&snake.direction!=2)
snake.direction=1;
else
if(key==LEFT&&snake.direction!=1)
snake.direction=2;
else
if(key==DOWN&&snake.direction!=3)
snake.direction=4;
}/*endwhile(1)*/}
/*游戏结束*/
void GameOver(void){
cleardevice();
PrScore();
setcolor(RED);
settextstyle(0,0,4);
outtextxy(200,200,"GAME OVER");
getch();}
/*输出成绩*/
void PrScore(void){
char str[10];
setfillstyle(SOLID_FILL,YELLOW);
bar(50,15,220,35);
setcolor(6);
settextstyle(0,0,2);
sprintf(str,"score:%d",score);
outtextxy(55,20,str);}
/*图形结束*/
void Close(void){
getch();
closegraph();
}
‘贰’ 谁有C语言程序设计(第三版)杜友福主编的答案啊
C语言程序设计(第三版)习题答案
习题一
一、名词解释
(1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)高级语言P2
(5)汇编程序P3 (6)编译程序P4 (7)算法P5 (8)结构化程序设计方法P10
二、简答题
1. 设计程序时应遵循哪些基本原则?P4
答:正确性、可靠性、简明性、有效性、可维护性、可移植性。
2. 算法具有哪些特点?
答:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。
3. 算法的表示形式有哪几种?
答:自然语言、伪代码、传统流程图、N-S流程图、计算机语言。
4. 结构化程序设计方法的三种基本结构是什么?
答:顺序结构、选择结构和循环结构。
5. 传统流程图与N-S流程图最大的区别是什么?
答:N-S流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。
三、用传统流程图或N-S流程图表示求解以下问题的算法。
1. 从键盘输入10个整数,求出其中的最小数并输出。
2. 求1 2 3 … 100的值。
3. 求10~50的所有素数之和。
4. 求下列分段函数的值。
四、请参照本章例题,编写一个简单的C程序,输出以下三行信息。
**************************
Yangtze University
**************************
#include <stdio.h>
void main()
{
printf("**************************\n");
printf(" Yangtze University\n");
printf("**************************\n");
}
习题二
一、选择题
1~10: B C D C D D B C A A
11~20: D A C D B D B A C D
二、填空题
1.字母 L 或字母 l
2. %c(或字符) 、 %d(或整数)
3. 在程序运行过程中,其值可以在一定的范围内变化的量
4. '\0'
5. 小数形式 、 指数形式
6. 关键字 、 预定义标识符 、 用户标识符
7. 字母 、 数字 、 下划线 、 数字
8. 18
9. 2 、 1 、 30
10. 双精度实数或double
11. 赋值 、 逗号 、 20 、 20 、 20 、 4
12. 4 、 4
习题三
一、选择题
1~10: B C C B C C C D C C
注:第4题答案D为: 10 22↙
33↙
二、填空题
1. printf 、 scanf
2. h
3. "]"
4. '\0'
5. e 、 E
6. 6
7. s 、 c
8. *
9. - 、
10. i
三、编程题
1. 编写程序,从键盘输入一个以秒为单位的时间数,将其换算成几小时几分几秒,然后进
行输出。例如输入的时间为4258秒,则输出结果为:1小时10分58秒。
#include <stdio.h>
void main()
{
int x,h,m,s;
scanf("%d",&x);
h=x/3600; m=x600/60; s=x`;
printf("%ds=%d:%d:%d!\n",x,h,m,s);
}
2. 编写程序,读入三个整数给变量a、b、c,然后交换它们中的数,把a中原来的值给b,
把b中原来的值给c,把c中原来的值给a。
#include <stdio.h>
void main()
{
int a,b,c,t;
printf("input a b c:");
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d\n",a,b,c);
t=a;a=c;c=b;b=t;
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
习题四
一、填空题
1. 1 、 0
2. ! % + <= != && || =
3. x==0
4. 0 、 2
5. 20 、 0 、 0
二、选择题
1~7:D D C A D D C
三、程序阅读题
1. 595959
2. 0.500000
3. 1
4. 2
5. 6
6. a=2,b=1
7. pass
warn
8. 1
四、编程题
1. 设a为整型变量且其值大于零,请将以下if语句改写成switch语句。
if(a<60) m=1;
else if(a<70) m=2;
else if(a<80) m=3;
else if(a<90) m=4;
else m=5;
方法1
#include <stdio.h>
void main()
{
int a,m;
scanf("%d",&a);
switch(a/10)
{
case 0:case 1:case 2:case 3:
case 4:case 5:m=1;break;
case 6:m=2;break;
case 7:m=3;break;
case 8:m=4;break;
default:m=5;break;
}
printf("m=%d\n",m);
}
方法2
#include <stdio.h>
void main()
{
int a,m;
scanf("%d",&a);
m=0;
switch(a/10)
{
default:m ;
case 8:m ;
case 7:m ;
case 6:m ;
case 5:case 4:case 3:case 2:
case 1:case 0:m ;
}
printf("m=%d\n",m);
}
2. 编写程序,从键盘输入一个整数,打印出它是奇数还是偶数。
#include <stdio.h>
void main()
{
int a;
scanf("%d",&a);
if(a%2==1)
printf("%d is a odd number!\n",a);
else
printf("%d is a even number!\n",a);
}
3. 编写程序,从键盘输入一个字符,判别它是否是小写字母,如果是,将它转换为大写字母;如果不是,不转换。然后输出最后得到的字符。
#include <stdio.h>
void main()
{
char ch;
scanf("%c",&ch);
if(ch>='a' && ch<='z')
ch=ch-32;
printf("%c\n",ch);
}
4. 编写程序,从键盘输入一个不多于4位的正整数,打印出它是几位数。
#include <stdio.h>
void main()
{
int x,n;
scanf("%d",&x);
if(x>1000) n=4;
else if(x>100) n=3;
else if(x>10) n=2;
else n=1;
printf("%d\n",n);
}
5. 当一个人的月收入在3500元以下时免税;月收入在3500元到5000元之间时,超过3500的部分纳税3%;月收入在5000元以上时,3500至5000之间的部分纳税3%,超过5000的部分纳税10%。编写程序从键盘输入月收入income,计算并输出应交税款tax。
#include <stdio.h>
void main()
{
int income;
float tax;
scanf("%d",&income);
if(income<=3500) tax=0;
else if(income<=5000) tax=0.03*(income-3500);
else tax=0.03*(5000-3500) 0.10*(income-5000);
printf("tax=%f\n",tax);
}
6. 回文是指正读和反读都一样的数或字符串。例如:12321、55455、35553等都是回文。请编写一个程序,从键盘上读取一个包含五位数字的长整数,并判断它是否是回文。(提示:用除法运算和求余运算把一个数的个位、十位、百位、千位等分别分离出来。)
#include <stdio.h>
void main()
{
long x;
int a,b,d,e;
scanf("%ld",&x);
a=x/10000;
b=x000/1000;
d=x0/10;
e=x;
if(a==e && b==d)
printf("%ld is huiwen!\n",x);
else
printf("%ld is not huiwen!\n",x);
}
习题五
一、阅读题
1. 8
2. 4321
3. X
4. -1
5. 23
6. 52
7. 5
8. 3
二、填空题
1. 18
2. 2
3. b=i 1
4. 17
5. i<=9 、 j%3!=0
6. d=1.0 、 k=k 1 、 k<=10
三、选择题
1~8:A D D A B D D A
四、编程题
1. 编写程序,打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字的立方之和等于该数本身。例如,407是一个“水仙花数”,因为407=43 03 73。(注:若将题意改为打印出最大的或最小的“水仙花数”,则应将循环语句作如何调整?)。
#include <stdio.h>
void main()
{
int a,b,c,k;
for(k=100;k<=999;k )
//求最大的“水仙花数”改用:for(k=999;k>=100;k--)
{
a=k/100;b=k/10;c=k;
if(k==a*a*a b*b*b c*c*c)
{
printf("]",k);
//求最大或最小”水仙花数”时增加一个语句:break;
}
}
printf("\n");
}
2. 编写程序,输出1980~2880年所有闰年的年号。每输出5个年号换一行。
#include <stdio.h>
void main()
{
int k,flag,n=0;
for(k=1980;k<=2880;k )
{
flag=(k%4==0)&&(k0!=0)||(k@0==0);
if(flag)
{
printf("]",k);
n ;
if(n==0)
printf("\n");
}
}
printf("\n");
}
3. 编写程序,求1-3 5-7 …-99 101的值。
#include <stdio.h>
void main()
{
int n,t=1,s=1;
for(n=3;n<=101;n =2)
{ t=-t; s=s t*n; }
printf("s=%d\n",s);
}
4. 编写程序,计算并输出下列级数的前n项之和Sn。n的值从键盘输入。
#include <stdio.h>
void main()
{
int fz,fm,n,i;
float s,t;
fz=2;fm=1;s=0;
scanf("%d",&n);
for(i=1;i<=n;i )
{
t=(1.0*fz)/fm;
s=s t;
fz=fz fm;
fm=fz-fm;
}
printf("s=%f\n",s);
}
5.编写程序,求e的值e=1 1/1! 1/2! 1/3! 1/4! … 1/n!
#include <stdio.h>
void main()
{
int n,i;
float t,fm=1,e=1;
scanf("%d",&n);
for(i=1;i<=n;i )
{ fm=fm*i; t=1.0/fm; e=e t; }
printf("n=%d,e=%f\n",n,e);
}
6. 已知某球从80米高度自由落下,落地后反复弹起,每次弹起的高度都是上次高度的一半。求此球8次落地所经过的总路程。
#include <stdio.h>
void main()
{
int n;
float s=80,h=s/2;
for(n=2;n<=8;n )
{
s=s 2*h;
h=h/2;
}
printf("s=%f\n",s);
}
7. 用牛顿迭代法求高次方程f(x)=2x3-4x2 5x-18=0的根(约为2.466)。
注:牛顿迭代公式为:x2=x1-f(x1)/f’(x1),其中f’(x1)为导函数在点x1的值。
#include <stdio.h>
#include <math.h>
void main()
{
float x,f,f1;
x=8; // x的初值可为任意值
do
{ f=2*x*x*x-4*x*x 5*x-18; f1=6*x*x-8*x 5; x=x-f/f1;
}while(fabs(f)>0.00001);
printf("x=%f,f=%f\n",x,f);
}
8. 有这样一些真分数:其分子和分母都是两位正整数,且分子的个位数与分母的十位数相同,如果把该分数的分子的个位数与分母的十位数同时去掉,所得到的新的分数正好与原分数的值相等,如26/65=2/5。试编程求出所有满足上述条件的真分数。
#include <stdio.h>
void main()
{
int a,b,c; // 设这个分数为ab/bc
for(a=1;a<=9;a )
for(b=1;b<=9;b )
for(c=1;c<=9;c )
if((a<c)&&(1.0*a/c==(a*10.0 b)/(b*10.0 c)))
printf("%d/%d=%d%d/%d%d=%f\n",a,c,a,b,b,c,1.0*a/c);
}
9. 编写程序,求数列:1,(1 1/2),(1 1/2 1/3),(1 1/2 1/3 1/4),(1 1/2 1/3 1/4 1/5),…的前10项之和。
#include <stdio.h>
void main()
{
float s,t;
int i;
s=0,t=0;
for(i=1;i<=10;i )
{ t=t 1.0/i; s=s t; }
printf("s=%f\n",s);
}
10. 编写程序,求3到100之间的所有素数之和。
#include <stdio.h>
void main()
{
int s,i,k,flag;
s=0;
for(i=3;i<=100;i )
{
flag=1;
for(k=2;k<i;k )
if(i%k==0)
{ flag=0; break; }
if(flag)
{ s=s i; printf("M",i); }
}
printf("\nsum=%d\n",s);
}
11. 编写程序,求Fibonacci数列中大于800的最小的一个数(结果为987)。
#include <stdio.h>
void main()
{
int f1=1,f2=1,f3;
while(f3<=800)
{
f3=f1 f2;
f1=f2;
f2=f3;
}
printf("Fibonacci数列中大于800的最小数是]\n",f3);
}
习题六
一、选择题
1~10:D D C B A B C D C D
11~20:A B B C C D C A B B
21~30:B B D D D D C D C A
注:第16题答案C为:字符串"SHORT"与"SHORT "相等
第19题题目为:已知:char str1[10],str2[10]={"books"};则在程序中能够将字符串
"books"赋给数组str1的正确语句是 。
第21题题目为:设有:char str1[20]="abcde",str2[20]="xyz";则执行语句:
printf("%d",strlen(strcpy(str1,str2)); 的结果是 。
第28题答案D为: aaaa
bbbb
cccc dddd
二、填空题
1. 9 、 0
2. 先行后列
3.
‘叁’ c程序设计和c语言从入门到精通哪本更适合初学者,哪本能学到的东西多一些
你好,建议您选择《C语言从入门到精通》作为入门书籍
理由如下:
1、《C语言程序设计》是以教材的形式进行编写,而《C语言从入门到精通》是以教程的形式进行编写,后者书中配备有大量的例程,且编程风格较为规范
2、《C语言从入门到精通》书籍较厚,涵盖了C语言基础语法,在此之上拓展了指针、文件、TCP协议等高级内容,这些在《C语言程序设计中》没有作为重点内容列出。
‘肆’ in one's 20s是什么意思啊及相应知识点是
这是表示人年龄的一种用法; in one's 20s, 就是指某人20多岁;记住,这里的介词一定用 in;
另:这种表达法其实有点笼统,比如21岁和29岁都可以用 he is in his 20s表示; 因此,要准确表达,还可在one's 后面加形容词 early, late, mid,
比如, in one's early 20s, 就指某人在 21,22,; in one's mid 20s; 就是指 某人在24-26之间; in one's late 20s,自然指某人 27-29岁。
‘伍’ 《C语言课程设计(第3版)/程序设计语言课程设计丛书》epub下载在线阅读,求百度网盘云资源
《C语言课程设计(第3版)/程序设计语言课程设计丛书》电子书网盘下载免费在线阅读
资源链接:
链接:
书名:C语言课程设计(第3版)/程序设计语言课程设计丛书
‘陆’ 《C语言课程设计(第3版)/程序设计语言课程设计丛书》epub下载在线阅读全文,求百度网盘云资源
《C语言课程设计(第3版)/程序设计语言课程设计丛书》电子书网盘下载免费在线阅读
书名:C语言课程设计(第3版)
出版年份:2013年8月
页数:340
内容简介
本书分为5篇,共16章,精心开发了10个案例。第一篇重点介绍了C语言的基本知识点和课程设计的指导工作。第二篇介绍字符界面及文件操作编程,包括通讯录管理、学生成绩管理、家庭财务管理和图书管理这4个系统的设计与实现过程。第三篇是游戏编程,介绍了贪吃蛇和俄罗斯方块游戏的设计和实现过程。
第四篇介绍了UDP程序设计和简单的Web服务器的设计与实现过程。第五篇是Linux下的C语言编程,介绍了基于堆栈的计算器和万年历两个Linux下应用程序的设计与实现过程。每个例子都是很好的课程设计工作的案例。
‘柒’ 《C程序设计语言第2版·新版》pdf下载在线阅读全文,求百度网盘云资源
《C程序设计语言(第2版·新版)》([美] Brian W. Kernighan)电子书网盘下载免费在线阅读
链接: https://pan..com/s/1txJqYzmjYS-BSw43eLWrnQ
书名:C程序设计语言(第2版·新版)
作者:[美] Brian W. Kernighan
译者:徐宝文
豆瓣评分:9.4
出版社:机械工业出版社
出版年份:2004-1
页数:258
内容简介:
在计算机发展的历史上,没有哪一种程序设计语言像C语言这样应用广泛。本书作者是C语言的设计者之一Dennis M. Ritchie和着名计算机科学家Brian W. Kernighan合着的一本介绍C语言的权威经典着作。我们现在见到的大量论述C语言程序设计的教材和专着均以此书为蓝本。
原着第1版中介绍的C语言成为后来广泛使用的C语言版本——标准C的基础。人们熟知的“hello,World"程序就是由本书首次引入的,现在,这一程序已经成为众多程序设计语言入门的第一课。原着第2版根据1987年制定的ANSIC标准做了适当的修订.引入了最新的语言形式,并增加了新的示例,通过简洁的描述、典型的示例,作者全面、系统、准确地讲述了C语言的各个特性以及程序设计的基本方法。
对于计算机从业人员来说,本书是一本必读的程序设计语言方面的参考书。
作者简介:
Brian W. Kernighan,贝尔实验室计算科学研究中心高级研究人员,着名的计算机科学家。参加了UNIX系统、C语言、AWK语言和许多其他系统的开发,同时出版了许多在计算机领域具有影响的着作,如《The Elements of Programming Style》《The Practice of Programming》《The UNIX Programming Environment》《The AWK Language》《Software Tools》等。
Dennis M. Ritchie,1967年加入贝尔实验室。他和 Ken L. Thompson 两人共同设计并实现的C语言改变了程序设计语言发展的轨迹,是程序设计语言发展过程中的一个重要里程碑。与此同时,他们还设计并实现了UNIX操作系统。正是由于这两项巨大贡献,Dennis M. Ritchie 于1983年获得了计算机界的最高奖——图灵奖。此外,他还获得了ACM、IEEE、贝尔实验室等授予的多种奖项.。
‘捌’ 《C程序设计语言第2版·新版》epub下载在线阅读,求百度网盘云资源
《C程序设计语言(第2版·新版)》([美] Brian W. Kernighan)电子书网盘下载免费在线阅读
资源链接:
链接: https://pan..com/s/1VcMvPqk3VW0er-VOqODP3A
书名:C程序设计语言(第2版·新版)
作者:[美] Brian W. Kernighan
译者:徐宝文
豆瓣评分:9.4
出版社:机械工业出版社
出版年份:2004-1
页数:258
内容简介:在计算机发展的历史上,没有哪一种程序设计语言像C语言这样应用广泛。本书作者是C语言的设计者之一Dennis M. Ritchie和着名计算机科学家Brian W. Kernighan合着的一本介绍C语言的权威经典着作。我们现在见到的大量论述C语言程序设计的教材和专着均以此书为蓝本。
原着第1版中介绍的C语言成为后来广泛使用的C语言版本——标准C的基础。人们熟知的“hello,World"程序就是由本书首次引入的,现在,这一程序已经成为众多程序设计语言入门的第一课。原着第2版根据1987年制定的ANSIC标准做了适当的修订.引入了最新的语言形式,并增加了新的示例,通过简洁的描述、典型的示例,作者全面、系统、准确地讲述了C语言的各个特性以及程序设计的基本方法。
对于计算机从业人员来说,本书是一本必读的程序设计语言方面的参考书。
作者简介:Brian W. Kernighan,贝尔实验室计算科学研究中心高级研究人员,着名的计算机科学家。参加了UNIX系统、C语言、AWK语言和许多其他系统的开发,同时出版了许多在计算机领域具有影响的着作,如《The Elements of Programming Style》《The Practice of Programming》《The UNIX Programming Environment》《The AWK Language》《Software Tools》等。
Dennis M. Ritchie,1967年加入贝尔实验室。他和 Ken L. Thompson 两人共同设计并实现的C语言改变了程序设计语言发展的轨迹,是程序设计语言发展过程中的一个重要里程碑。与此同时,他们还设计并实现了UNIX操作系统。正是由于这两项巨大贡献,Dennis M. Ritchie 于1983年获得了计算机界的最高奖——图灵奖。此外,他还获得了ACM、IEEE、贝尔实验室等授予的多种奖项.。
‘玖’ 荆州学院计算机专升本考试范围
计算机科学与技术专业考试科目是C语言程序设计 。
参考教材为《C语言程序设计(第3版)》,杜友福主编,科学出版社,2012年。
招生对象:
1、高职高专应届毕业生。
2、退役大学生士兵。
报名条件:热爱祖国,具有良好的思想品德和政治素质;修完普通高职高专教学计划规定的课程,能如期毕业;身体健康。每名考生限报一个相关本科专业。
‘拾’ C语言的程序设计概念
C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。
C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。
C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。
常用的C语言IDE(集成开发环境)有Microsoft
Visual
C++,Borland
C++,Watcom
C++
,Borland
C++
,Borland
C++
Builder,Borland
C++
3.1
for
DOS,Watcom
C++
11.0
for
DOS,GNU
DJGPP
C++
,Lccwin32
C
Compiler
3.1,Microsoft
C,High
C,Turbo
C,Dev-C++,C-Free等等......
你看下:
http://ke..com/view/1219.html?wtp=tt