1. 首页 > 科技

C语言题? c语言简答题题库

C语言题?c语言简答题题库

有关C语言的一些简单题,并要求答案

数组实际上就是一组相同数据类型变量。如果一个数组中的一个变量也是一个数组,就构成了二维数组。用同样的方法可以构成多维数组。在使用数组以前需要定义一个数组。

可以用一个实例来理解数组。假设在一个程序中要存储100个人的年龄,可以写成下面代码来定义100个整型变量。

#include

void main()

{

int a[10];

int i;

for(i=0;i<=9;i++)

{

a[i]=i+10;

}

for(i=0;i<=9;i++)

{

printf("%d ",a[i]);

}

}

在c语言中,函数是程序的基本组成单位,因此可以很方便地用函数作为程序模块来实现c语言程序。

利用函数,不仅可以实现程序的模块化,程序设计得简单和直观,提高了程序的易读性和可维护性,而且还可以把程序中普通用到的一些计算或操作编成通用的函数,以供随时调用,这样可以大大地减轻程序员的代码工作量。

函数是c语言的基本构件,是所有程序活动的舞台。

例如:printf,scanf,getch,putch,fopen等都是C语言里面的函数

指针是指向内存单元的地址.不同类型的指针指向不同类型的地质单元。

如:int a; a=100; 这样就把整型常量赋给了变量a。但是如果写成这样:a=123.33;就会出问题,最后输出变量a的值结果是123。现在说到指针,其实地址值也是一个整型数,如某某变量的地址值为36542,说明这个变量被分配在内存地址值为36542的地方。能不能这样进行推理,既然地址值也是整型数,整型变量正好可以用来存放整型数,那不是一个整型变量可以用来存放地址的值吗。程序写成下面这样:

int a,b;

a=&b;

很明显,这样写是错误的。原因在于不能简单地把地址理解为整型数。

应有这样的对应关系: 地址值<--->指针; 整型数<--->int 型变量。

所以有这样的说法:“指针就是地址”(指针就是存放地址值的一种数据类型)

下面是一段正确的程序:

int a,*p;

p=&a; /*把变量a的地址值赋给指针p*/

指针是指向内存单元的地址.不同类型的指针指向不同类型的地质单元。是所指数据类型的地址!指针可以指向数据,也可以指向函数等!

c语言常见编程题20?

展开全部

//这是贪食蛇小游戏程序:课程设计可以用到1315762326多交流啊

#include

#include

#include

using namespace std;

int a[100][100]={0};

int yes,sum;

class Snake//定义对象为蛇

{

public:

Snake()

{

x[0]=0;y[0]=4;

node=3;

}

int start();

int round();

int x[200];

int y[200];

int node;

int sorce;

};

class food//定义食物对象

{

public:

int born()

{

if(sum==0)//如果sum==0就产生随机食物范围为20*20

{

x=rand()%20;

y=rand()%20;

}

a[x][y]=1;//改变数字可以改变食物的图案

sum=1;//让食物不出现

return 0;

}

int x;

int y;

};

Snake sanke;

food fod;

char way='d';

int again()

{

for(int i=0;i<30;i++)//蛇吃食物的范围

for(int j=0;j<30;j++)

if(i!=fod.x||j!=fod.y)

a[i][j]=0;

return 0;

}

int Snake::round()

{

for(int i=sanke.node-1;i>0;i--)

{

sanke.x[i]=sanke.x[i-1];

sanke.y[i]=sanke.y[i-1];

}

if (sanke.x[i]==fod.x&&sanke.y[i]==fod.y)

{

sanke.node+=1;

sum=0;

sanke.sorce+=10;

}

system("cls");//提高界面稳定性

switch(way)//方向选择

{

case 'D':

case 'd':

{

if(sanke.y[0]==21||a[sanke.x[0]][sanke.y[0]+1]==42)//控制蛇走的范围

{

cout< cout< exit(0);

}

sanke.y[0]=sanke.y[0]+1;

again();

if(yes==1)

fod.born();

for(int t=0;t<=node-1;t++)

a[sanke.x[t]][sanke.y[t]]=42;

};break;

case'S':

case's':

{

if(sanke.x[0]==21||a[sanke.x[0]+1][sanke.y[0]]==42)

{

cout< cout< exit(0);

}

sanke.x[0]+=1;

again();

if(yes==1)

fod.born();

for(int t=0;t<=node-1;t++)

a[sanke.x[t]][sanke.y[t]]=42;

};break;

case'A':

case'a':

{

if(sanke.y[0]==0||a[sanke.x[0]][sanke.y[0]-1]==42)

{

cout< cout< exit(0);

}

sanke.y[0]-=1;

again();

if(yes==1)

fod.born();

for(int t=0;t<=node-1;t++)

a[sanke.x[t]][sanke.y[t]]=42;

};break;

case'W':

case'w':

{

if(sanke.x[0]==0||a[sanke.x[0]-1][sanke.y[0]]==42)

{

cout< cout< exit(0);

}

sanke.x[0]-=1;

again();

if(yes==1)

fod.born();

for(int t=0;t<=node-1;t++)

a[sanke.x[t]][sanke.y[t]]=42;

};break;

}

return 0;

}

int Snake::start()

{

if(yes=1)

sanke.round();

for(int b=0;;)

{

if(1)

{

cout< for( int i=0;i<22;i++)//右边边框的长度为11

{

cout< cout< for(int j=0;j<22;j++)//控制右边边框的位置在最右端

printf("%3c",a[i][j]);//控制右边界图案之间的距离

}

cout< for(int t=0;t<29;t++)//for循环来输出下行边界的长度为32

cout< cout<}

}

return 0;

};

int main()

{

system("color 9A");//控制背景颜色和边框颜色

int x,m,b,j,t;

cout< cout< a[5][0]=42;a[5][1]=42;a[5][2]=42;//蛇最初出现的位置[5,0][5,1][5,2]和图案为星号

cout< for(int i=0;i<10;i++)//右边边框的长度为10

{

cout< cout< for(j=0;j<15;j++)//控制右边边框的位置在最右端

printf("%3c",a[i][j]);//控制右边界图案之间的距离

}

cout< for(t=0;t<23;t++)//for循环来输出下行边界的长度为23

cout< cout< cout< scanf("%d",&x);

cout< if(x==1)m=1;

else if(x==2)m=100;

else if(x==3) m=500;

else printf("your choice is error!!!!");

while((b=getch())!=' ');

while(1)

{

while(!kbhit())

{

sanke.start();

if(kbhit());

else

Sleep(m);

}

way=getch();

}

return 0;

}

C语言的一些题目

这是我的解题程序,已通过编译:(有什么问题的话,追问喔)

第5题:求字符串中小写英文字母的个数

#include<stdio.h>

#include<string.h>

   void main()

{

 char a[30];

 int i,count=0;

 printf("请输入一个字符串:\n");

 gets(a);

 for(i=0;i<strlen(a);i++)

  if(a[i]>='a'&&a[i]<='z')

   count++;

  printf("该字符串所含小写英文字母的个数是:%d个\n",count);

}

第6题:阿拉伯数字0-9的转换

#include<stdio.h>

#include<string.h>

   void main()

{

 char a[30];

 int i;

 printf("请输入一个字符串:\n");

 gets(a);

 for(i=0;i<strlen(a);i++)

  if(a[i]>='0'&&a[i]<='8')

   a[i]++;

  else if(a[i]=='9')

   a[i]='0';

  printf("将字符串中'0'~'8'的数字字符变为比它大1的数字字符,将'9'变为'0'所得的结果是:\n");

  puts(a);

}

第7题:百元买百鸡

#include<stdio.h>

#include<math.h>

#define M1 2

#define M2 1

#define M3 0.5

void main()

{

 int Gj,Mj,Xj;

 int ans[300],i=-1,j,k;

for(Gj=0;Gj<=50;Gj++)

 for(Mj=0;Mj<=100;Mj++)

for(Xj=0;Xj<=200;Xj++)

 if((Gj+Mj+Xj==100)&&(Gj*2+Mj+(int)(Xj*0.5)==100))

 {

  ans[++i]=Gj;

  ans[++i]=Mj;

  ans[++i]=Xj;

 }

 ans[i+1]='\0';

 j=i/3;

 i=0;

printf("百元百鸡问题共有%d种分配方案\n",j);

printf("\t\t公鸡数\t母鸡数\t小鸡数\n");

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

{

 printf("第%d种分法:\t%d\t%d\t%d\n",k,ans[i],ans[i+1],ans[i+2]);

 i+=3;

}

}

关于C语言一些题目

第一题:

#include"stdio.h"

main()

{int num;

scanf("%d",&num);

switch(num/100)

{case 0:printf("%d",65*num);break;

case 1:printf("%d",65*0.95*num);break;

case 2:printf("%d",65*0.9*num);break;

case 3:

case 4:printf("%d",65*0.85*num);break;

default:printf("%d",65*0.75*num);

}

}

第二题:

第二题题目有错,第二个CASE 后没有常数,不知道是不是你打错了,应该是2吧;

第三题:

i<=n

x

第四题:

把字符串S[]中和t[]中相同的字符转换为空字符

第五题:

A

第六题:

D