本文目录一览:
c语言,编写模拟翻硬币得程序。
#includestdio.h
int main(void)
{
int n;//读入一个数,为结束的次数
int i;
int a[10];//10个硬币
int biaoji = 0;//当这个标记能被3或7整除,说明恰好数了3次或7次
scanf("%d", n);
for (i = 0; i 10; i++) //将硬币都初始化为正面的状态,即1
a[i] = 1;
biaoji = 1;//因为a[]的下标不允许超过9,故要重置
a[biaoji - 1] = !a[biaoji - 1];//改变硬币的状态
for (i = 0; i 10; i++)
printf("%d", a[i]);
return 0;
}
主要特点
C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接操作,因此既能够用于开发系统程序,也可用于开发应用软件。
C语言模拟题
一.选择题:
1.B 2.D 3.A 4.B 5.D 6.B 7.B 8.A
二.读程序:
1. 67,D 2. 3 3. 3 4. 3
用C语言编程模拟处理机调度(实现一种算法)
#include stdlib.h
#include conio.h
#define getpch(type) (type*)malloc(sizeof(type))
#define NULL 0
struct pcb { /* 定义进程控制块PCB */
char name[10];
char state;
int super;
int ntime;
int rtime;
struct pcb* link;
}*ready=NULL,*p;
typedef struct pcb PCB;
void sort() /* 建立对进程进行优先级排列函数*/
{
PCB *first, *second;
int insert=0;
if((ready==NULL)||((p-super)(ready-super))) /*优先级最大者,插入队首*/
{
p-link=ready;
ready=p;
}
else /* 进程比较优先级,插入适当的位置中*/
{
first=ready;
second=first-link;
while(second!=NULL)
{
if((p-super)(second-super)) /*若插入进程比当前进程优先数大,*/
{ /*插入到当前进程前面*/
p-link=second;
first-link=p;
second=NULL;
insert=1;
}
else /* 插入进程优先数最低,则插入到队尾*/
{
first=first-link;
second=second-link;
}
}
if(insert==0) first-link=p;
}
}
void input() /* 建立进程控制块函数*/
{
int i,num;
system("cls"); /*清屏*/
printf("\n 请输入进程数: ");
scanf("%d",num);
for(i=1;i=num;i++)
{
printf("\n 进程号No.%d:\n",i);
p=getpch(PCB);
printf("\n 输入进程名:");
scanf("%s",p-name);
printf("\n 输入进程优先数:");
scanf("%d",p-super);
printf("\n 输入进程运行时间:");
scanf("%d",p-ntime);
printf("\n");
p-rtime=0;p-state='W';
p-link=NULL;
sort(); /* 调用sort函数*/
}
}
int space()
{
int l=0;
PCB* pr=ready;
while(pr!=NULL)
{
l++;
pr=pr-link;
}
return(l);
}
void disp(PCB * pr) /*建立进程显示函数,用于显示当前进程*/
{
printf("\n 进程名\t 状态\t 优先数\t 需要运行时间\t 已经运行时间\n");
printf("|%s\t",pr-name);
printf("|%c\t",pr-state);
printf("|%d\t",pr-super);
printf("|%d\t\t",pr-ntime);
printf("|%d\t",pr-rtime);
printf("\n");
}
void check() /* 建立进程查看函数 */
{
PCB* pr;
printf("\n **** 当前正在运行的进程是:\n"); /*显示当前运行进程*/
disp(p);
pr=ready;
printf("\n **** 当前就绪队列状态为:\n"); /*显示就绪队列状态*/
while(pr!=NULL)
{
disp(pr);
pr=pr-link;
}
}
void destroy() /*建立进程撤消函数(进程运行结束,撤消进程)*/
{
printf("\n 进程 [%s] 已完成.\n",p-name);
free(p);
}
void running() /* 建立进程就绪函数(进程运行时间到,置就绪状态*/
{
(p-rtime)++;
if(p-rtime==p-ntime)
destroy(); /* 调用destroy函数*/
else
{
(p-super)--;
p-state='W';
sort(); /*调用sort函数*/
}
}
void main() /*主函数*/
{
int len,h=0;
char ch;
input();
len=space();
while((len!=0)(ready!=NULL))
{
ch=getchar();
h++;
printf("-----------------------------------------------------");
printf("\n 现在是第%d次运行: \n",h);
p=ready;
ready=p-link;
p-link=NULL;
p-state='R';
check();
running();
printf("\n 按任意键继续......\n");
}
printf("\n\n 进程已经完成.\n");
}
C语言模拟命令行调用GCC编译器编译一个.c文件?
包含stdlib.h头文件,调用的时候用
system("gcc
-o
yourfile
yourfile.c");
就可以了。
参考