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