c语言

阅读 / 问答 / 标签

C语言编程

【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去      掉不满足条件的排列。2.程序源代码:main(){int i,j,k;printf(“ “);for(i=1;i〈5;i++)    /*以下为三重循环*/ for(j=1;j〈5;j++)   for (k=1;k〈5;k++)   {    if (i!=k&&i!=j&&j!=k)    /*确保i、j、k三位互不相同*/    printf(“%d,%d,%d “,i,j,k);   }}==============================================================【程序2】题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高   于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提   成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于   40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于   100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。      2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf(“%ld“,&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15; if(i〈=100000)  bonus=i*0.1; else if(i〈=200000)     bonus=bonus1+(i-100000)*0.075;    else if(i〈=400000)        bonus=bonus2+(i-200000)*0.05;       else if(i〈=600000)           bonus=bonus4+(i-400000)*0.03;          else if(i〈=1000000)              bonus=bonus6+(i-600000)*0.015;             else              bonus=bonus10+(i-1000000)*0.01;printf(“bonus=%d“,bonus);} ==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后      的结果满足如下条件,即是结果。请看具体分析:2.程序源代码:#include “math.h“main(){long int i,x,y,z;for (i=1;i〈100000;i++) { x=sqrt(i+100);   /*x为加上100后开方后的结果*/  y=sqrt(i+268);   /*y为再加上168后开方后的结果*/   if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/    printf(“ %ld “,i); }}============================================================== 【程序4】题目:输入某年某月某日,判断这一天是这一年的第几天?1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊      情况,闰年且输入月份大于3时需考虑多加一天。2.程序源代码:main(){int day,month,year,sum,leap;printf(“ please input year,month,day “);scanf(“%d,%d,%d“,&year,&month,&day);switch(month)/*先计算某月以前月份的总天数*/{ case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; default:printf(“data error“);break;}sum=sum+day;  /*再加上某天的天数*/ if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/  leap=1; else  leap=0;if(leap==1&&month〉2)/*如果是闰年且月份大于2,总天数应该加一天*/sum++;printf(“It is the %dth day.“,sum);}==============================================================【程序5】题目:输入三个整数x,y,z,请把这三个数由小到大输出。1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x〉y则将x与y的值进行交换,      然后再用x与z进行比较,如果x〉z则将x与z的值进行交换,这样能使x最小。2.程序源代码:main(){int x,y,z,t;scanf(“%d%d%d“,&x,&y,&z);if (x〉y){t=x;x=y;y=t;} /*交换x,y的值*/if(x〉z){t=z;z=x;x=t;}/*交换x,z的值*/if(y〉z){t=y;y=z;z=t;}/*交换z,y的值*/printf(“small to big: %d %d %d “,x,y,z);}==============================================================【程序6】题目:用*号输出字母C的图案。1.程序分析:可先用"*"号在纸上写出字母C,再分行输出。2.程序源代码:#include “stdio.h“main(){printf(“Hello C-world! “);printf(“ **** “);printf(“ * “);printf(“ * “);printf(“ **** “);}==============================================================【程序7】题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!1.程序分析:字符共有256个。不同字符,图形不一样。      2.程序源代码:#include “stdio.h“main(){char a=176,b=219;printf(“%c%c%c%c%c “,b,a,a,a,b);printf(“%c%c%c%c%c “,a,b,a,b,a);printf(“%c%c%c%c%c “,a,a,b,a,a);printf(“%c%c%c%c%c “,a,b,a,b,a);printf(“%c%c%c%c%c “,b,a,a,a,b);}==============================================================【程序8】题目:输出9*9口诀。1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。2.程序源代码:#include “stdio.h“main(){ int i,j,result; printf(“ “); for (i=1;i〈10;i++)  { for(j=1;j〈10;j++)    {     result=i*j;     printf(“%d*%d=%-3d“,i,j,result);/*-3d表示左对齐,占3位*/    }   printf(“ “);/*每一行后换行*/  }}============================================================== 【程序9】题目:要求输出国际象棋棋盘。1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。2.程序源代码:#include “stdio.h“main(){int i,j;for(i=0;i〈8;i++) {  for(j=0;j〈8;j++)   if((i+j)%2==0)    printf(“%c%c“,219,219);   else    printf(“ “);   printf(“ “); }}==============================================================【程序10】题目:打印楼梯,同时在楼梯上方打印两个笑脸。1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。2.程序源代码:#include “stdio.h“main(){int i,j;printf(“11 “);/*输出两个笑脸*/for(i=1;i〈11;i++) { for(j=1;j〈=i;j++)   printf(“%c%c“,219,219); printf(“ “); }}【程序11】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月   后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....2.程序源代码:main(){long f1,f2;int i;f1=f2=1;for(i=1;i〈=20;i++) { printf(“%12ld %12ld“,f1,f2);   if(i%2==0) printf(“ “);/*控制输出,每行四个*/   f1=f1+f2; /*前两个月加起来赋值给第三个月*/   f2=f1+f2; /*前两个月加起来赋值给第三个月*/ }}==============================================================【程序12】题目:判断101-200之间有多少个素数,并输出所有素数。1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,      则表明此数不是素数,反之是素数。       2.程序源代码:#include “math.h“main(){ int m,i,k,h=0,leap=1; printf(“ “); for(m=101;m〈=200;m++)  { k=sqrt(m+1);   for(i=2;i〈=k;i++)     if(m%i==0)      {leap=0;break;}   if(leap) {printf(“%-4d“,m);h++;<br>        if(h%10==0)<br>        printf(“ “);<br>        }   leap=1;  } printf(“ The total is %d“,h);}==============================================================【程序13】题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数   本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。2.程序源代码:main(){int i,j,k,n;printf(“"water flower"number is:“); for(n=100;n〈1000;n++) {  i=n/100;/*分解出百位*/  j=n/10%10;/*分解出十位*/  k=n%10;/*分解出个位*/  if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)   {   printf(“%-5d“,n);   } }printf(“ “);}============================================================== 【程序14】题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果n〈〉k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, 重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。2.程序源代码:/* zheng int is divided yinshu*/main(){int n,i;printf(“ please input a number: “);scanf(“%d“,&n);printf(“%d=“,n);for(i=2;i〈=n;i++) {  while(n!=i)  {   if(n%i==0)   { printf(“%d*“,i);    n=n/i;   }   else    break;  }}printf(“%d“,n);}==============================================================【程序15】题目:利用条件运算符的嵌套来完成此题:学习成绩〉=90分的同学用A表示,60-89分之间的用B表示,   60分以下的用C表示。1.程序分析:(a〉b)?a:b这是条件运算符的基本例子。2.程序源代码:main(){ int score; char grade; printf(“please input a score “); scanf(“%d“,&score); grade=score〉=90?"A":(score〉=60?"B":"C"); printf(“%d belongs to %c“,score,grade);}==============================================================【程序16】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。1.程序分析:利用辗除法。2.程序源代码:main(){ int a,b,num1,num2,temp; printf(“please input two numbers: “); scanf(“%d,%d“,&num1,&num2); if(num1  { temp=num1;  num1=num2;   num2=temp; }a=num1;b=num2;while(b!=0)/*利用辗除法,直到b为0为止*/ {  temp=a%b;  a=b;  b=temp; }printf(“gongyueshu:%d “,a);printf(“gongbeishu:%d “,num1*num2/a);}============================================================== 【程序17】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。1.程序分析:利用while语句,条件为输入的字符不为" ".      2.程序源代码:#include “stdio.h“main(){char c;<br> int letters=0,space=0,digit=0,others=0;<br> printf(“please input some characters “);<br> while((c=getchar())!=" ")<br> {<br> if(c〉="a"&&c〈="z"||c〉="A"&&c〈="Z")<br>  letters++;<br> else if(c==" ")<br>  space++;<br>   else if(c〉="0"&&c〈="9")<br>       digit++;<br>     else<br>       others++;<br>}printf(“all in all:char=%d space=%d digit=%d others=%d “,letters,space,digit,others);}==============================================================【程序18】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时   共有5个数相加),几个数相加有键盘控制。1.程序分析:关键是计算出每一项的值。2.程序源代码:main(){ int a,n,count=1; long int sn=0,tn=0; printf(“please input a and n “); scanf(“%d,%d“,&a,&n); printf(“a=%d,n=%d “,a,n); while(count〈=n) {  tn=tn+a;  sn=sn+tn;  a=a*10;  ++count; }printf(“a+aa+...=%ld “,sn);}==============================================================【程序19】题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程   找出1000以内的所有完数。1. 程序分析:请参照程序〈--上页程序14.2.程序源代码:main(){static int k[10];int i,j,n,s;for(j=2;j〈1000;j++) { n=-1; s=j;  for(i=1;i   {   if((j%i)==0)   { n++;    s=s-i;    k[n]=i;   }  } if(s==0) { printf(“%d is a wanshu“,j); for(i=0;i  printf(“%d,“,k); printf(“%d “,k[n]); }}}============================================================== 【程序20】题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在   第10次落地时,共经过多少米?第10次反弹多高?1.程序分析:见下面注释2.程序源代码:main(){float sn=100.0,hn=sn/2;int n;for(n=2;n〈=10;n++) {  sn=sn+2*hn;/*第n次落地时共经过的米数*/  hn=hn/2; /*第n次反跳高度*/ }printf(“the total of road is %f “,sn);printf(“the tenth is %f meter “,hn);}请采纳。

用c语言解决 输入两个非降序列,转换成两个非升序列,合并成一个非升序列

#include <stdio.h>#include <stdlib.h>#define LEN sizeof(struct node)typedef struct node{ int num; struct node *next;}list; //链表结点结构体void main(){ list *create(); list *turn(list *); list *reform(list *,list *); list *head1,*head2,*head; head1=create(); head2=create(); head=reform(turn(head1),turn(head2)); while(head) { printf("%d ",head->num); head=head->next; }}list *create() //建立链表的函数{ list *p,*q,*head; int n=0; printf("请输入一个非降序列,以0结束 "); p=(list *)malloc(LEN); scanf("%d",&p->num); n++; while(p->num!=0) //终止条件为输入0 { if(1==n) head=p; else q->next=p; q=p; p=(list *)malloc(LEN); scanf("%d",&p->num);n++; } free(p); q->next=NULL; return head; //返回头指针}/*void sort(list *head) //排序函数{list *p,*q;int temp;for(p=head;p->next!=NULL;p=p->next)for(q=p;q!=NULL;q=q->next)if(p->num<q->num) {temp=p->num;p->num=q->num;q->num=temp;} //选择法对数据排序}*/list *turn(list *head) //链表逆序{ list *p,*q,*t; p=head; q=p->next; if(q) t=q->next; p->next=NULL; while(q) { q->next=p; p=q; q=t; if(t) t=t->next; } return p;}list *reform(list *head1,list *head2) //合并函数{ list *head,*p,*q,*p1,*p2; int n=0; for(p1=head1,p2=head2;p1!=NULL&&p2!=NULL;) { p=(list *)malloc(LEN);n++; if(1==n) head=p; else q->next=p; if(p1->num>=p2->num) p->num=p1->num,p1=p1->next; else p->num=p2->num,p2=p2->next; q=p; } if(NULL==p1) q->next=p2; else q->next=p1; return head;}

C语言 一维整型数组的输入输出,排序和归并函数 急急急~~~

你没有规定sort()用什么排序方式,我用的冒泡。没有什么注释先道个歉。不知道你要这个程序是做什么的,计算机专业还是随便玩玩,如果是专业的这种基础算法一定要掌握。#include<stdio.h>void arrayio(int a[], int n,char io);void sort(int a[],int n);void merger(int a[], int n, int b[], int m, int c[]);int main(){ int a[5],b[10],c[15]; printf("Input Array a[5]: "); arrayio(a,5,"i"); printf("Input Array b[10]: "); arrayio(b,10,"i"); sort(a,5); sort(b,10); merger(a,5,b,10,c); printf("Output Array c[15]: "); arrayio(c,15,"o"); //system("PAUSE"); return 0;}void arrayio(int a[], int n,char io){ int i; switch(io) { case "i": for(i=0;i<n;++i) scanf("%d",&a[i]); break; case "o": for(i=0;i<n;++i) printf("%d ",a[i]); printf(" "); break; default: printf("Wrong parameter. "); }}void sort(int a[],int n){ int i,j,temp; //Bubble for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) { if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } }}void merger(int a[], int n, int b[], int m, int c[]){ int i,j,k; i=j=0; for(k=0;k<m+n;k++) { if(i<n && j<m) { if(a[i]>b[j]) { c[k]=b[j]; j++; } else { c[k]=a[i]; i++; } } else if(i==n) { for(;j<m;j++) { c[k]=b[j]; k++; } } else //j==m { for(;i<n;i++) { c[k]=a[i]; k++; } } } }输入输出:Input Array a[5]:9 1 4 2 5Input Array b[10]:8 3 6 4 7 2 9 8 5 3 4Output Array c[15]:1 2 2 3 3 4 4 5 5 6 7 8 8 9 9

C语言结构体题目?

这个要学习网站找

推荐几本好的C语言方面的书

CC++与数据结构 ¥33.25元 本教材是计算机基础教学改革实践4年的总结,它将C语言、数据结构和C++综合为一门程序设计基础课程,可以不分专业,在大学一年级完成(授课80学时,实验80学时)。 本书可以作为各类人员学习C、数据结构和C++的综合教材。 ... CC++程序设计入门与提高 ¥27.55元 精选著名流行软件,紧跟版本更新,连续推出配套图书;由“入门”起步,注重“提高”,使新霰手老手都能成为行家里手;根据用户实际使用的需要取材谋篇,着重技术精华的剖析和操作技巧的指点;明晰精练的风格、醒目的步骤提示和生动的屏幕画面使您如临操作现场。 ... 数据结构(C语言版) ¥21.85元 数据结构是计算机及相关专业的核心课程,是计算机程序设计的基础,是程序员和许多高校研究生入学考试的必考科目。本书共分10章,第1章是数据结构的概述;后9章分别介绍了线性表、栈、队列、串、数组、广义表、树、二叉树、图、查找、内部排序、外部排序、动态存储管理?... C语言程序设计实践教程 ¥23.75元 本书是以C语言的入门级读者作为主要对象,根据C语言程序设计课程的特点,用编排独特、形式新颖、通俗易懂的方法编写的一本教材。全书包括3大部分。第1部分(第1章和第2章)介绍了C语言的基本框架、C语言的基本概念、函数的定义和使用、常量与变量的概念、C语言数据类型?... C语言基础教程——基础理论与案例 ¥27.55元 本书全面系统地讲述了C语言的基本语法以及它们在编程中的应用,同时又介绍了编写C语言程序的一些方法和技巧。本书内容包含有C语言的词法、常量和变量、运算符和表达式、预处理功能、语句、函数和存储类、指针、结构和联合以及文件操作等内容。本书语言通俗,由浅入深?... AVR 单片机C语言开发应用实例——TCP/IP篇 ¥53.20元 Ethernut是第一个推出的基于8位单片机的嵌入式以太网解决方案,并且公开了该方案的硬件电路和全部源代码,因此用户可以很方便地对Ethernut方案进行剪裁,定制出适合自己的以太网解决方案,在该方案的基础上进行二次开发,可以大大提高开发进度和降低出错概率。本书共?... C语言程序设计应试辅导(二级) ¥34.20元 本书是根据教育部考试中心最新的全国计算机等级考试大纲(2004)编写的。本书共分为11章。主要内容有:二级公共基础,C程序设计的基础知识和简单语句,C程序中的控制结构,指针和函数的基本概念,数组,字符串,函数的进一步讨论,结构体、共用体和用户定义类型,文件, ... 嵌入式C语言编程与Microchip PIC ¥46.55元 本书全面系统地介绍了C语言编程技术及其在嵌入式微控制器中的应用,其中包括嵌入式C语言、PIC微控制器的硬件、标准I/O和处理器指令、CCSPICC C编译器和IDE、项目开发等各种技术,并在附录中扼要介绍了库函数和PIC微控制器编程。全书内容翔实、结构清晰、技术准确?... 程序设计抽象思想——C语言描述 ¥74.10元 本书全面介绍了数据结构的基础内容,帮助学生深入了解软件工程的思想和技术。学生还可以通过对一些高级编程概念(如接口、抽象和封装)的了解,为进一步深入学习高级编程知识打下坚实的基础。本书观点清晰明了、语言风格鲜明独特,深入浅出地介绍了一些高级主题。 ... 三级C语言上机指导 ¥20.90元 本书是依据教育部考试中心最新推出的《全国计算机等级考试三级考试大纲》关于上机考试的内容和要求编写的。全书共分为三章,主要包括三级上机考试应试技巧概述、上机考试题库分类解析和上机考试环境及程序调试等内容。本书结构清晰,内容详实,对三级C语言上机试题题?... QBASIC语言程序设计 ¥20.90元 本书是根据教育部最新颁布的中等职业学校计算机及应用专业《QBASIC编程语言》基础教学基本要求编写,同时参考了教育部考试中心制定的计算机等级考试大纲。本书主要内容包括QBASIC语言的基础知识、基本概念、程序结构及程序设计方法、数组、函数和子程序、字符串、文件 ... C语言真题分析与实战训练(二级) ¥20.90元 本书是根据2004年教育部考试中心对二级C语言程序设计考试内容调整后的新大纲要求而编写的,书中分为“应试策略”、“真题攻关”、“强化制胜”和“上机指导”4个部分。本书对2003年4月至2004年4月3套全国计算机等级考试的笔试真题试卷的题型、考点、分值比例等情况进行?... AVR 单片机BASIC语言编程及开发 ¥21.85元 作为一种16/32位的高性能、低成本、低功耗的嵌入式RISC微处理器,ARM微处理器目前已经成为应用最为广泛的嵌入式微处理器。本书在全面介绍ARM处理器的体系结构、编程模型、指令系统和开发工具的同时,以Samsung公司的一款基于以太网系统的ARM处理器——S3C4510B为核心?... 全国计算机等级考试真题(笔试+上机)详解与样题精选(二级C语言) ¥30.40元 本书对近5年来全国计算机等级考试二级基础知识和C语言程序设计的真题进行了深入的分析,本书内容按教育部考试中心指定教程的章节分类编排,并按考试大纲的要求逐考点地对真题进行详细的分析,对相关知识点进行详尽的介绍。通过对真题的分类、分析和相关考点的理论链 ... 计算机图形学C语言版(第2版) ¥65.55元 本书介绍了设计与使用计算机图形学系统所必须的基本原理,讨论了图形学系统硬、软件及其应用,列举了C语言描述了编程实例以展示图形学算法的实现及应用,探讨了PHIGS、PHIGS+、GKS以及其他图珍库的特征。与第1版相比,在反走样、分形及其他物体表示法、光线跟踪、样 ... 三级C语言上机考试试题与题解 ¥19.95元 本书提供了30套最具典型性的全国三级C语言程序设计(信息管理技术、数据库技术、网络技术)上机考试过关试题,并给出与其配套的典型题解。主要内容包括:三级C语言上机考试概要,三级C语言上机考试基本导航,三级C语言上机过关试题与题解。本书深入浅出、简明扼要地 ... C语言习题与解析(第2版) ¥23.75元 C语言是一种结构化、模块化、可编译的主流程序设计语言。作者编写的《C语言与习题解答》一书自1999年出版以来,受到了广大读者的关爱与好评。由于技术的发展和读者反馈的意见,本书作者对该书内容进行了扩充与修订。本书分为13章,分别介绍了C语言的基本概念、基?... QBASIC语言(二级)难点、错点解析 ¥21.85元 本书根据教育部考试中心最新发布的《全国计算机等级考试大纲》的要求,由计算机等级考试考前培训班教师根据实际教学经验,专门为大、中专学生参加全国计算机等级考试而编写的考前辅导参考书。本书以对本课程有一定基础的读者为主,介绍有关的知识要点,并分别对笔 ... 程序设计基础(C语言) ¥27.55元 C语言是现代最流行的通用程序设计语言之一,它的简洁、紧凑、灵活、实用、高效、可移植性好等优点深受广大用户欢迎。C语言的数据类型丰富,它既具有高级程序设计语言的优点,又具有低级程序设计语言的特点;既可以用来编写系统程序,又可以用来编写应用程序。因此, ... 全国计算机等级考试系列辅导教材(二级)——C语言 ¥46.55元 本书共16章,其中第1章为学前自测与指导,从2-14章均包括“知识点讲析”、“补充与扩展”、“典型例题”和“本章练习”4部分,内容涉及计算机等级考试二级C语言的各个方面。第15章提供了3套笔试模拟试卷,第16章是上机指导。书后提供了各章练习题的参考答案。本书 ... AVR系列单片机C语言编程与应用实例 ¥28.50元 本书针对Atmel公司的AVR系列单片机和ImageCraft公司的ICC AVR开发环境,详细地介绍了AT90LS8535的C语言程序设计。全书共有13章,其内容既涉及到了单片机的结构原理、指令系统、内容资源和外部功能扩展,又包含了单片机的编程工具——ICC AVR C编程器的数据类型、控?... 全国计算机等级考试系列辅导教材(二级)——Visual Basic语言 ¥46.55元 本书共15章,其中第2章-第13章均包括“知识点讲析”、“补充与扩展”、“典型例题”和“本章练习”4部分,第15章为上机考试指导。附录中提供了各章练习题的参考答案。本书针对性强,内容深入浅出,实例丰富,适用于报告计算机等级考试二级Visual Basic语言的读者:?... 二级C语言学与练 ¥20.90元 本书根据国家教育部考试中心 2002 年最新颁布的“全国计算机等级考试二级考试大纲(二级C语言)编写,书中以通俗易懂的语言全面详实地介绍 C 语言二级等级考试的重点和难点,从等级考试的角度精心设计出一系列富有代表性的例题和习题,其中包含了大量的等级考试试题 ... 中学生学C语言 ¥18.05元 本书包括入门篇、提高篇和应用篇3部分,通过对典型例题的分析和解答,以生动有趣而又科学准确的语言,讲述C语言的程序设计方法和语法现象,注重实用,突出重点,是一本专门为中学生编写的C程序设计教程。 ... 嵌入式处理器原理及应用——Nios 系统设计和C语言编程 ¥24.70元 本书以Altera工公司开发的Nios嵌入式处理器软核为例,介绍了嵌入式处理器的组成原理和开发应用。全书分为6章:第1、2章介绍嵌入式处理器的组成原理,主要介绍嵌入式处理器的系统组件;第3、4章介绍嵌入式处理器的开发环境,包括硬件开发环境和软件开发工具SOPC Buil ... MPI 与 OpenMP 并行程序设计:C语言版 ¥48.45元 本书是美国Oregon州立大学的Michael J.Quinn教授在多年讲授“并行程序设计”课程的基础上编写而成的,主要介绍用C语言,并结合使用MPI和OpenMP进行并行程序设计,内容包括并行体系结构、并行算法设计、消息传递编程、Eratosthenes 筛法、Floyd 算法、性能分析、矩阵 ... C语言程序设计教程 ¥18.05元 本书是为初学计算机程序设计的读者而写的,通过大量的实例较全面地介绍C语言的基本概念、语法和程序设计方法。全书共分9章。结构简洁明快:重点突出,通俗易懂;实例讲解条理清晰,逻辑性强;始终以程序设计为主线,注重培养学生程序设计的思维方式和技术;每章配以 ...

汽车租赁系统的c语言,数据结构的语言程序

需要时间

一个C语言项目需求都包括什么啊????哪几部分啊??若以学生管理系统为例

1.引言 1.1编写目的编写本文档的目的1.2产品介绍说明产品是什么,什么用途介绍产品的开发背景1.3定义术语与缩写的解释1.4参考资料2.任务概述2.1目标项目的目标2.2运行环境2.3产品面向的用户群体描述本产品面向的用户(客户、最终用户)的特征,说明本产品将给他们带来什么好处?他们选择本产品的可能性有多大?3.数据描述3.1静态数据数据库字段等,应从需求的角度写明,下同3.2动态数据输入输出数据等3.3数据库介绍所使用的数据库3.4数据词典数据库的表3.5数据采集 配置数据库参数等4.产品的功能性需求 4.1功能性需求分类 将功能性需求先粗分再细分4.2功能A描述 4.3功能B描述 5.产品的非功能性需求 5.1数据精确度 5.2时间特性 5.3适应性 6.运行需求 6.1用户界面需求 6.2故障处理 7.其它需求可列表说明:正确性可靠性效率完整性可维护性安全性易用性

C语言程序

#include "stdio.h"struct score{ int leam; char *name; float grade1; float grade2; float grade3; float grade4;};int main(){ float grad[4]; int number; char name[20]; printf("请输入学号 "); scanf("%d",&number); printf("请输入姓名 "); scanf("%s",name); printf("请输入四门课程的成绩 "); for(int j=0;j<4;j++) { scanf("%f",&grad[j]); } struct score student[4]={number,name,grad[0],grad[1],grad[2],grad[3]}; printf("学号为:%d ",student[0].leam); printf("姓名为:%s ",student[0].name); printf("四科成绩分别为:%-0.1f %-0.1f %-0.1f %-0.1f ",student[0].grade1,student[0].grade2,student[0].grade3,student[0].grade4); return 0;}

请教一个C语言循环的问题!很急~~

Turbo C 2.0编译通过输入1或2或3,可查不同内容!-----------------------------#include <stdio.h>/*输入一个字符串(学生号),与现有的结构体数组里的字符串做比较,如果存在,就输出这个学生的全部资料,如果不存在,输出“该记录不存在!”的句子~ 这是我写的代码,我知道肯定不对~麻烦大家帮忙改一下~~谢了~~很急的~~ stud是我定义的结构体数组,inputID是供用户输入的字符串~ */struct student{ int stuID; char name[20]; char sex; int age; float score;} ; struct student stud[3] = {{1,"Zhang li","M",18,79},{2,"Li ting","F",17,89},{3,"Wang gang","M",18,81}};int main(){int i=0; int inputID; printf("Please Input the Student ID of the record to be displayed: "); scanf("%d",&inputID); /*for(i=0;i<3;i++) { */if(inputID==stud[inputID-1].stuID) { printf(" Student"s Record as Follows: "); printf("%s %-10s %-3d %-6.1f ", stud[inputID-1].stuID,stud[inputID-1].name,stud[inputID-1].age,stud[inputID-1].score); } else printf("No Such Record Found! "); }

C语言程序编写!

#include<stdio.h> /*引用库函数*/ #include<stdlib.h> #include<ctype.h> #include<string.h> typedef struct /*定义结构体数组*/ { char num[10]; /*学号*/ char name[20]; /*姓名*/ int score; /*成绩*/ }Student; Student stu[80]; /*结构体数组变量*/ int menu_select() /*菜单函数*/ { char c; do{ system("cls"); /*运行前清屏*/ printf(" ****Students" Grade Management System**** "); /*菜单选择*/ printf(" | 1. Input Records | "); printf(" | 2. Display All Records | "); printf(" | 3. Sort | "); printf(" | 4. Insert a Record | "); printf(" | 5. Delete a Record | "); printf(" | 6. Query | "); printf(" | 7. Statistic | "); printf(" | 8. Add Records from a Text File| "); printf(" | 9. Write to a Text file | "); printf(" | 0. Quit | "); printf(" ***************************************** "); printf(" Give your Choice(0-9):"); c=getchar(); /*读入选择*/ }while(c<"0"||c>"9"); return(c-"0"); /*返回选择*/ } int Input(Student stud[],int n) /*输入若干条记录*/ {int i=0; char sign,x[10]; /*x[10]为清除多余的数据所用*/ while(sign!="n"&&sign!="N") /*判断*/ { printf(" student"s num:"); /*交互输入*/ scanf(" %s",stud[n+i].num); printf(" student"s name:"); scanf(" %s",stud[n+i].name); printf(" student"s score:"); scanf(" %d",&stud[n+i].score); gets(x); /*清除多余的输入*/ printf(" any more records?(Y/N)"); scanf(" %c",&sign); /*输入判断*/ i++; } return(n+i); } void Display(Student stud[],int n) /*显示所有记录*/ { int i; printf(" ----------------------------------- "); /*格式头*/ printf(" number name score "); printf(" ----------------------------------- "); for(i=1;i<n+1;i++) /*循环输入*/ { printf(" %-16s%-15s%d ",stud[i-1].num,stud[i-1].name,stud[i-1].score); if(i>1&&i%10==0) /*每十个暂停*/ {printf(" ----------------------------------- "); /*格式*/ printf(" "); system("pause"); printf(" ----------------------------------- "); } } printf(" "); system("pause"); } void Sort_by_num(Student stud[],int n) /*按学号排序*/ { int i,j,*p,*q,s; char t[10]; for(i=0;i<n-1;i++) /*冒泡法排序*/ for(j=0;j<n-1-i;j++) if(strcmp(stud[j].num,stud[j+1].num)>0) {strcpy(t,stud[j+1].num); strcpy(stud[j+1].num,stud[j].num); strcpy(stud[j].num,t); strcpy(t,stud[j+1].name); strcpy(stud[j+1].name,stud[j].name); strcpy(stud[j].name,t); p=&stud[j+1].score; q=&stud[j].score; s=*p; *p=*q; *q=s; } } int Insert_a_record(Student stud[],int n) /*插入一条记录*/ {char x[10]; /*清除多余输入所用*/ printf(" student"s num:"); /*交互式输入*/ scanf(" %s",stud[n].num); printf(" student"s name:"); scanf(" %s",stud[n].name); printf(" student"s score:"); scanf(" %d",&stud[n].score); gets(x); n++; Sort_by_num(stud,n); /*调用排序函数*/ printf(" Insert Successed! "); /*返回成功信息*/ return(n); } int Delete_a_record(Student stud[],int n) /*按姓名查找,删除一条记录*/ { char s[20]; int i=0,j; printf(" tell me his(her) name:"); /*交互式问寻*/ scanf("%s",s); while(strcmp(stud[i].name,s)!=0&&i<n) i++; /*查找判断*/ if(i==n) { printf(" not find! "); /*返回失败信息*/ return(n); } for(j=i;j<n-1;j++) /*删除操作*/ { strcpy(stud[j].num,stud[j+1].num); strcpy(stud[j].name,stud[j+1].name); stud[j].score=stud[j+1].score; } printf(" Delete Successed! "); /*返回成功信息*/ return(n-1); } void Query_a_record(Student stud[],int n) /*查找并显示一个记录*/ { char s[20]; int i=0; printf(" input his(her) name:"); /*交互式输入*/ scanf(" %s",s); while(strcmp(stud[i].name,s)!=0&&i<n) i++; /*查找判断*/ if(i==n) { printf(" not find! "); /*输入失败信息*/ return; } printf(" his(her) number:%s ",stud[i].num); /*输出该学生信息*/ printf(" his(her) score:%d ",stud[i].score); } void Statistic(Student stud[],int n) /*新增功能,输出统计信息*/ { int i,j=0,k=0,sum=0; float aver; /*成绩平均值*/ for(i=0;i<n;i++) /*循环输入判断*/ { sum+=stud[i].score; if(stud[j].score>stud[i].score) j=i; if(stud[k].score<stud[i].score) k=i; } aver=1.0*sum/n; printf(" there are %d records. ",n); /*总共记录数*/ printf(" the hignest score: "); /*最高分*/ printf(" number:%s name:%s score:%d ",stud[j].num,stud[j].name,stud[j].score); printf(" the lowest score: "); /*最低分*/ printf(" number:%s name:%s score:%d ",stud[k].num,stud[k].name,stud[k].score); printf(" the average score is %5.2f ",aver); /*平均分*/ } int AddfromText(Student stud[],int n) /*从文件中读入数据*/ { int i=0,num; FILE *fp; /*定义文件指针*/ char filename[20]; /*定义文件名*/ printf(" Input the filename:"); scanf(" %s",filename); /*输入文件名*/ if((fp=fopen(filename,"rb"))==NULL) /*打开文件*/ { printf(" cann"t open the file "); /*打开失败信息*/ printf(" "); system("pause"); return(n); } fscanf(fp,"%d",&num); /*读入总记录量*/ while(i<num) /*循环读入数据*/ { fscanf(fp,"%s%s%d",stud[n+i].num,stud[n+i].name,&stud[n+i].score); i++; } n+=num; fclose(fp); /*关闭文件*/ printf(" Successed! "); printf(" "); system("pause"); return(n); } void WritetoText(Student stud[],int n) /*将所有记录写入文件*/ { int i=0; FILE *fp; /*定义文件指针*/ char filename[20]; /*定义文件名*/ printf(" Write Records to a Text File "); /*输入文件名*/ printf(" Input the filename:"); scanf(" %s",filename); if((fp=fopen(filename,"w"))==NULL) /*打开文件*/ { printf(" cann"t open the file "); system("pause"); return; } fprintf(fp,"%d ",n); /*循环写入数据*/ while(i<n) { fprintf(fp,"%-16s%-15s%d ",stud[i].num,stud[i].name,stud[i].score); i++; } fclose(fp); /*关闭文件*/ printf("Successed! "); /*返回成功信息*/ } void main() /*主函数*/ { int n=0; for(;;) { switch(menu_select()) /*选择判断*/ { case 1: printf(" Input Records "); /*输入若干条记录*/ n=Input(stu,n); break; case 2: printf(" Display All Records "); /*显示所有记录*/ Display(stu,n); break; case 3: printf(" Sort "); Sort_by_num(stu,n); /*按学号排序*/ printf(" Sort Suceessed! "); printf(" "); system("pause"); break; case 4: printf(" Insert a Record "); n=Insert_a_record(stu,n); /*插入一条记录*/ printf(" "); system("pause"); break; case 5: printf(" Delete a Record "); n=Delete_a_record(stu,n); /*按姓名查找,删除一条记录*/ printf(" "); system("pause"); break; case 6: printf(" Query "); Query_a_record(stu,n); /*查找并显示一个记录*/ printf(" "); system("pause"); break; case 7: printf(" Statistic "); Statistic(stu,n); /*新增功能,输出统计信息*/ printf(" "); system("pause"); break; case 8: printf(" Add Records from a Text File "); n=AddfromText(stu,n); /*新增功能,输出统计信息*/ break; case 9: printf(" Write to a Text file "); WritetoText(stu,n); /*循环写入数据*/ printf(" "); system("pause"); break; case 0: printf(" Have a Good Luck,Bye-bye! "); /*结束程序*/ printf(" "); system("pause"); exit(0); } } }

用C语言编写宿舍管理查询系统

定义结构或者类,类属性包括姓名、学号、房间号

C语言课程设计 题目11:基于结构体数组的学生成绩管理系统

这个简单,我有现成的,私信

C语言编程,为什么会多输出一行?

while(!feof(fp)) { fscanf(fp , "%ld%s%d%d%d",&stud.num,stud.name,&stud.math,&stud.chinese,&stud.english );// "%ld%s%d%d%d后面加个 就好了,读取文件的时候也要行像打印文件时一样要换行 stud.tottle = stud.math + stud.english + stud.chinese ; stud.average = stud.tottle / 3; printf("%ld %s %d %d %d %d %d ",stud.num,stud.name,stud.math,stud.chinese,stud.english,stud.tottle,stud.average ); } 调试了半个小时 嘿嘿 现学现卖 如果满意请采纳我

c语言程序问题:为什么我把stu结构体重命名为stud之后还能用stu定义结构体?{}前后的stu

当然没有替代

C语言 有一个错误 求改正

stu 变量类型是:STUD *stu; 而你的查找函数(STUD FindByName)的返回值是:STUD,这两个当然是不兼容的了。

用C语言编写一个学生成绩管理系统。

这个需要 有偿才行。

C语言数组题:有3个学生,上4门课,要求输入全部学生各门课的成绩并分别求出每门课的平均成绩

为什么除以四啊

如何用C语言编写学生成绩管理程序

虽然是C++,但符合要求,没有用菜单~~#include <iostream.h>#include <iomanip.h>#define SN 10 // 学生人数#define CN 3 // 课程数目int course; // 要排序的那门课程struct student{ int num; char name[10]; int score[CN];};void bubble(struct student *pstu) //冒泡排序(从大到小){ struct student tmp; for (int i = 0; i < SN; i++) // 要排SN个数,则应排SN遍: { for(int j = 0; j < SN - i - 1; j++) { if(pstu[j+1].score[course] > pstu[j].score[course]) //比较相邻的两个数: { tmp = pstu[j+1]; pstu[j+1]= pstu[j]; pstu[j]= tmp; } //对调两个数,需要有"第三者"参以 } } }void output(struct student *pstu){ cout<<setw(8)<<"学号"; cout<<setw(10)<<"姓名"; cout<<setw(8)<<"语文"; cout<<setw(8)<<"数学"; cout<<setw(8)<<"外语"<<endl; for(int i=0;i<SN;i++) { cout<<setw(8)<<pstu[i].num; cout<<setw(10)<<pstu[i].name; for (int j=0;j<CN;j++) cout<<setw(8)<<pstu[i].score[j]; cout<<endl;}}void avgscore(struct student *pstu){ int sum[CN],n; for(n=0; n<CN; n++) { sum[n]=0; for(int j=0; j<SN; j++) sum[n]+=pstu[j].score[n]; } cout<<"各科课程的平均成绩:"; for(n=0;n<CN; n++) cout<<setw(5)<<sum[n]/SN; cout<<endl;}void maxmin(struct student *pstu){ int max[CN],min[CN],n; for(n=0; n<CN; n++) { max[n]=0; min[n]=100; for(int j=0; j<SN; j++) { if (pstu[j].score[n]>max[n]) max[n]=pstu[j].score[n]; if (pstu[j].score[n]<min[n]) min[n]=pstu[j].score[n]; } } cout<<"各科课程的最高分: "; for(n=0;n<CN; n++) cout<<setw(5)<<max[n]; cout<<endl; cout<<"各科课程的最低分: "; for(n=0;n<CN; n++) cout<<setw(5)<<min[n]; cout<<endl;}void main(){ struct student stu[SN]={ {2004101,"张志",89,67,90}, {2004102,"杨小敏",65,80,56}, {2004103,"李 兵",76,66,71}, {2004104,"周华",60,76,88}, {2004105,"王小",82,90,78}, {2004106,"陈江",70,81,93}, {2004107,"刘慧",85,60,76}, {2004108,"张真",80,76,61}, {2004109,"林强",70,66,98}, {2004110,"郭风",62,60,87}, }; int n; cout<<setw(30)<<"*** 学生成绩管理 ***"<<endl<<endl; cout<<"要对第几门课程的成绩排序: "; cin>>n; //输入要排序的第几门课程 course=n-1; struct student *pstu=stu; cout<<endl; bubble(pstu); output(pstu); cout<<endl; maxmin(pstu); avgscore(pstu);}

求各位c语言老师帮我检查下程序,谢谢

错误很多 先说一下致命的错误 是下面这个函数int maximum(struct student stud[]){int i,j,k; for(i=0;i<N-1;j++) //这里应该是i++ 你写成了j++ 这样会死循环的 {k=i; for(j=i+1;j<N;j++) if(stud[j].total>stud[i].total) k=j;} return(k);}再来说一下小错误输入错误scanf("%d%s%d%d%d%d",stud[i].num //你的num数组申明为字符型 所以这里不应该是 %d 而是%s最后是输出错误for(i=0;i<N;i++) printf("5d%-9s%-6.1f%-6.1d%-6.1d%-6.1d%-6.1d%-6.1f% ",stud[i].num,stud[i].name,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].score[3],stud[i].total,stud[i].avr);//这里的输出格式全不对 第一个应该是字符型 是%s 第二个也应该是%s 下面的四个是分数应该全部是 %d 再一个是总分也应该是%d 最后一个是平均分 你可以用 %6.1f格式输出 printf("the total score average:5d% ",aver); printf("The highest score:5d%-9s%-6.1f%-6.1d%-6.1d%-6.1d%-6.1d%-6.1f% ",stud[k].num,stud[k].name,stud[k].score[0],stud[k].score[1],stud[k].score[2],stud[k].score[3],stud[k].total,stud[k].avr);//这一句输出的格式同上面一样全部改了就行了。 }

c语言:学生学籍管理系统

孩子这是你们的实验报告么 这么狠 还是自己慢慢做吧 谁会花这么多功夫给你做一个系统 只为了70悬赏分 给钱差不多

请问,c语言中如何对结构体中某一特定成员赋值

来晚了一步

一个c语言题目,哪位大神帮忙编一下,跪求!!!!!!

给个思路吧!自己多动动手,对自己有好处的!1)定义结构体数据结构可以定义为(利用链表实现):typedef int element_type;struct Student_Info{ element_type student_id; char name[256]; element_type math_grd; element_type pthy_grd; struct Student_Ifo * next;};2)在编写插入函数(可实现链表的插入,删除节点函数),将学生信息利用节点保存下来;3)保存后按总分编写排序函数,排序算法可以自己选,最常用的是冒泡,直接插入,快速排序等4)排序后写个遍历节点函数并打印输出结果就行了。

C语言:做职工管理系统,需要按职工号排序,我用冒泡怎么都弄不出来,麻烦大家帮我看看,谢谢了

改过了,试试看void printstud (struct employee *stud){ int i,j;struct employee b; //用结构体来完成数据交换,因为交换的是全体数据 for (j=0;j<n-1;j++) { for (i=0;i<n-1-j;i++) {if ( strcmp(stud[i].num,stud[i+1].num) > 0 ) //串比较大小用strcmp { b=stud[i]; stud[i]=stud[i+1]; stud[i+1]=b; } } } printf ("以下是所有职工的信息 "); for (i=0;i<n;i++) {printf ("%6s%6s%6s%6s%6s ",stud[i].num,stud[i].name,stud[i].sex,stud[i].old,stud[i].nation); //多了一个%6s } printf ("请按任意数字键返回主菜单"); getchar();}

c语言怎么编写学生信息

用struct 结构体数组啊 每个结构体保存一个学生的信息

用C语言编写单片机上计算器程序遇到问题

串口调试助手发送和接受有二个方式:十六进制和ASCII码;如果你要十进制计算的话,用ASCII码传输的,把十进制转ASCII码来发送,在单片机内先ASCII码转十进制在计算最后再十进制转ASCII码来发送;

stud在C语言中代表什么类型

这是用户自定义类型,不是“标准”类型,也许是这样定义的typedef struct student { int num; // 学号 char name[10]; ............................. struct student *next;}stud;至此,就可以这样定义变量了stud astudent,students[56];

学习单片机C语言,哪些书比较好?

单片机C语言,汇编,数据结构,之类的,之后GUI,……。

求大神帮忙用C语言解决一下,不胜感激,单片机

我会

C语言程序 在VC6上运行出现问题 希望能告知错误原因 谢谢

scanf函数的第二个参数应该是地址

你好,我是大二的学生,我们要求做c语言的课设,我在百度里面搜索,发现你回答的这个题目和我的一摸一样

能提供问题么?把问题贴出来看看啊,都不知道 你说的是什么

C语言编程能不能编个显示是I LOVE YOU的图案啊,高手帮帮忙~~

是再控制台模式下?

C语言中"rem"表示什么意思

C语言里面貌似木有这个关键字!

c语言中sprint函数怎么使用?

往一个字符串中输出。其余的和printf一样。输出后可以对字符串再进行处理。

我想学计算机C语言,可是不知道要学哪些知识

《C程序设计语言》机械工业出版社,牛人写的,看完基本算是会C了然后要多动手,数学至少要把离散,高数,线性代数,数值算法都好好弄完。数学是基础

c语言quincy测试程序空格导致错误

scanf读字符串遇到空格就会停止。用getline函数,可以读到回车才停止。

C语言 do while 为什么退出了

你的程序是错误的"北方七宿"已经说了,你char类型为什么用%d输入呢?

帮忙翻译,和C语言有关

这个和英语有关的....

你好,我想用c语言写mex文件,可是总是提示找不到mex.h,你有什么办法吗,是软件的问题吗

你是在c语言下,使用Matlab编程

matlab中数据类型与c语言数据类型的区别?

我觉得吧 其实差别不大 C语言要先定义再使用 Matlab只要想用随时可用 知识各自各自的语法

c语言如何实现mex函数

通过把耗时长的函数用c语言实现,并编译成mex函数可以加快执行速度。Matlab本身是不带c语言的编译器的,所以要求你的机器上已经安装有VC,BC或WatcomC中的一种。如果你在安装Matlab时已经设置过编译器,那么现在你应该就可以使用mex命令来编译c语言的程序了。如果当时没有选,就在Matlab里键入mex-setup,下面只要根据提示一步步设置就可以了。需要注意的是,较低版本的在设置编译器路径时,只能使用路径名称的8字符形式。比如我用的VC装在路径C:PROGRAMFILESDEVSTUDIO下,那在设置路径时就要写成:“C:PROGRA~1”这样设置完之后,mex就可以执行了。为了测试你的路径设置正确与否,把下面的程序存为hello.c。/*hello.c*/#include"mex.h"voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[]){mexPrintf("hello,world! ");}假设你把hello.c放在了C:TEST下,在Matlab里用CDC:TEST将当前目录改为C:TEST(注意,仅将C:TEST加入搜索路径是没有用的)。现在敲:mexhello.c如果一切顺利,编译应该在出现编译器提示信息后正常退出。如果你已将C:TEST加入了搜索路径,现在键入hello,程序会在屏幕上打出一行:hello,world!看看CTEST目录下,你会发现多了一个文件:HELLO.DLL。这样,第一个mex函数就算完成了。分析hello.c,可以看到程序的结构是十分简单的,整个程序由一个接口子过程mexFunction构成。voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[])前面提到过,Matlab的mex函数有一定的接口规范,就是指这nlhs:输出参数数目plhs:指向输出参数的指针nrhs:输入参数数目例如,使用[a,b]=test(c,d,e)调用mex函数test时,传给test的这四个参数分别是2,plhs,3,prhs其中:prhs[0]=cprhs[1]=dprhs[2]=e当函数返回时,将会把你放在plhs[0],plhs[1]里的地址赋给a和b,达到返回数据的目的。细心的你也许已经注意到,prhs[i]和plhs[i]都是指向类型mxArray类型数据的指针。这个类型是在mex.h中定义的,事实上,在Matlab里大多数数据都是以这种类型存在。当然还有其他的数据类型,可以参考Apiguide.pdf里的介绍。为了让大家能更直观地了解参数传递的过程,我们把hello.c改写一下,使它能根据输入参数的变化给出不同的屏幕输出://hello.c2.0#include"mex.h"voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[]){inti;i=mxGetScalar(prhs[0]);if(i==1)mexPrintf("hello,world! ");elsemexPrintf("大家好! ");}将这个程序编译通过后,执行hello(1),屏幕上会打出:hello,world!而hello(0)将会得到:大家好!现在,程序hello已经可以根据输入参数来给出相应的屏幕输出。在这个程序里,除了用到了屏幕输出函数mexPrintf(用法跟c里的printf函数几乎完全一样)外,还用到了一个函数:mxGetScalar,调用方式如下:i=mxGetScalar(prhs[0]);"Scalar"就是标量的意思。在Matlab里数据都是以数组的形式存在的,mxGetScalar的作用就是把通过prhs[0]传递进来的mxArray类型的指针指向的数据(标量)赋给C程序里的变量。这个变量本来应该是double类型的,通过强制类型转换赋给了整形变量i。既然有标量,显然还应该有矢量,否则矩阵就没法传了。看下面的程序://hello.c2.1#include"mex.h"voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[]){int*i;i=mxGetPr(prhs[0]);if(i[0]==1)mexPrintf("hello,world! ");elsemexPrintf("大家好! ");}这样,就通过mxGetPr函数从指向mxArray类型数据的prhs[0]获得了指向double类型的指针。但是,还有个问题,如果输入的不是单个的数据,而是向量或矩阵,那该怎么处理呢?通过mxGetPr只能得到指向这个矩阵的指针,如果我们不知道这个矩阵的确切大小,就没法对它进行计算。为了解决这个问题,Matlab提供了两个函数mxGetM和mxGetN来获得传进来参数的行数和列数。下面例程的功能很简单,就是获得输入的矩阵,把它在屏幕上显示出来://show.c1.0#include"mex.h"#include"mex.h"voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[]){double*data;intM,N;inti,j;data=mxGetPr(prhs[0]);//获得指向矩阵的指针M=mxGetM(prhs[0]);//获得矩阵的行数N=mxGetN(prhs[0]);//获得矩阵的列数for(i=0;i<M;i++){for(j=0;j<N;j++)mexPrintf("%4.3f",data[j*M+i]);mexPrintf(" ");}}编译完成后,用下面的命令测试一下:a=1:10;b=[a;a+1];show(a)show(b)需要注意的是,在Matlab里,矩阵第一行是从1开始的,而在C语言中,第一行的序数为零,Matlab里的矩阵元素b(i,j)在传递到C中的一维数组大data后对应于data[j*M+i]。输入数据是在函数调用之前已经在Matlab里申请了内存的,由于mex函数与Matlab共用同一个地址空间,因而在prhs[]里传递指针就可以达到参数传递的目的。但是,输出参数却需要在mex函数内申请到内存空间,才能将指针放在plhs[]中传递出去。由于返回指针类型必须是mxArray,所以Matlab专门提供了一个函数:mxCreateDoubleMatrix来实现内存的申请,函数原型如下:mxArray*mxCreateDoubleMatrix(intm,intn,mxComplexityComplexFlag)m:待申请矩阵的行数n:待申请矩阵的列数为矩阵申请内存后,得到的是mxArray类型的指针,就可以放在plhs[]里传递回去了。但是对这个新矩阵的处理,却要在函数内完成,这时就需要用到前面介绍的mxGetPr。使用mxGetPr获得指向这个矩阵中数据区的指针(double类型)后,就可以对这个矩阵进行各种操作和运算了。下面的程序是在上面的show.c的基础上稍作改变得到的,功能是将输//reverse.c1.0#include"mex.h"voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[]){double*inData;double*outData;intM,N;inti,j;inData=mxGetPr(prhs[0]);M=mxGetM(prhs[0]);N=mxGetN(prhs[0]);plhs[0]=mxCreateDoubleMatrix(M,N,mxREAL);outData=mxGetPr(plhs[0]);for(i=0;i<M;i++)for(j=0;j<N;j++)outData[j*M+i]=inData[(N-1-j)*M+i];}当然,Matlab里使用到的并不是只有double类型这一种矩阵,还有字符串类型、稀疏矩阵、结构类型矩阵等等,并提供了相应的处理函数。本文用到编制mex程序中最经常遇到的一些函数,其余的详细情况清参考Apiref.pdf。通过前面两部分的介绍,大家对参数的输入和输出方法应该有了基本的了解。具备了这些知识,就能够满足一般的编程需要了。但这些程序还有些小的缺陷,以前面介绍的re由于前面的例程中没有对输入、输出参数的数目及类型进行检查,导致程序的容错性很差,以下程序则容错性较好#include"mex.h"voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[]){double*inData;double*outData;intM,N;//异常处理//异常处理if(nrhs!=1)mexErrMsgTxt("USAGE:b=reverse(a) ");if(!mxIsDouble(prhs[0]))mexErrMsgTxt("theInputMatrixmustbedouble! ");inData=mxGetPr(prhs[0]);M=mxGetM(prhs[0]);N=mxGetN(prhs[0]);plhs[0]=mxCreateDoubleMatrix(M,N,mxREAL);outData=mxGetPr(plhs[0]);for(i=0;i<M;i++)for(j=0;j<N;j++)outData[j*M+i]=inData[(N-1-j)*M+i];}在上面的异常处理中,使用了两个新的函数:mexErrMsgTxt和mxIsDouble。MexErrMsgTxt在给出出错提示的同时退出当前程序的运行。MxIsDouble则用于判断mxArray中的数据是否double类型。当然Matlab还提供了许多用于判断其他数据类型的函数,这里不加详述。需要说明的是,Matlab提供的API中,函数前缀有mex-和mx-两种。带mx-前缀的大多是对mxArray数据进行操作的函数,如mxIsDouble,mxCreateDoubleMatrix等等。而带mx前缀的则大多是与Matlab环境进行交互的函数,如mexPrintf,mxErrMsgTxt等等。了解了这一点,对在Apiref.pdf中查找所需的函数很有帮助。至此为止,使用C编写mex函数的基本过程已经介绍完了。

计算机等级考试 笔试题型 二级C语言

选择35 填空15 每题2分2010年3月计算机等级考试二级C++笔试试题 一、选择题(每小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是 A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n B)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2) C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n) D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n log2n) (2)算法的时间复杂度是指 A)算法的执行时间 B)算法所处理的数据量 C)算法程序中的语句或指令条数 D)算法在执行过程中所需要的基本运算次数 (3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是 A)编辑软件 B)操作系统 C)教务管理系统 D)浏览器 (4)软件(程序)调试的任务是 A)诊断和改正程序中的错误 B)尽可能多地发现程序中的错误 C)发现并改正程序中的所有错误 D)确定程序中错误的性质 (5)数据流程图(DFD图)是 A)软件概要设计的工具 B)软件详细设计的工具 C)结构化方法的需求分析工具 D)面向对象方法的需求分析工具 (6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于 A)定义阶段 B)开发阶段 C)维护阶段 D)上述三个阶段 (7)数据库管理系统中负责数据模式定义的语言是 A)数据定义语言 B)数据管理语言 C)数据操纵语言 D)数据控制语言 (8)在学生管理的关系数据库中,存取一个学生信息的数据单位是 A)文件 B)数据库 C)字段 D)记录 (9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的 A)需求分析阶段 B)逻辑设计阶段 C)概念设计阶段 D)物理设计阶段 (10)有两个关系R和T如下:则由关系R得到关系T的操作是 A)选择 B)投影 C)交 D)并(11)下列关于函数的描述中,错误的是 A)函数可以没有返回值 B)函数可以没有参数 C)函数可以是一个类的成员 D)函数不能被定义为模板 (12)若MyClass是一个类名,且有如下语句序列 MyClass c1,*c2; MyClass *c3=new MyClass; MyClass &c4=c1; 上面的语句序列所定义的类对象的个数是 A)1 B)2 C)3 D)4 (13)下列关于继承方式的描述中,错误的是 A)如果不显式地指定继承方式,缺省的继承方式是私有(private) B)采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员 C)采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员 D)采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员 (14)将前缀运算符“--”重载为非成员函数,下列原型中,能正确用于类中说明的是 A)Decr& operator --(int); B)Decr operator --( Decr&,int); C)friend Decr& operator --(Decr&); D)frlend Decr operator --(Decr&,int); (15)若MyTemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列 MyTempp2; MyTempp3[2]; 编译系统在处理上面的语句序列时,所生成的模板MyTemp的实例的个数是 A)1 B)2 C)3 D)0 (16)在C++中,cin是个 A)类 B)对象 C)模板 D)函数 (17)在下列字符中,不允许作为C++标识符的是 A)b B)B C)_ D)2 (18)下列叙述中,错误的是 A)false是一个逻辑型常量 B)"b"是一个字符型常量 C)365是一个int常量 D)3.1415926是一个double常量 (19)若x和y是程序中的两个整型变量,则下列if语句中正确的是 A)if(x==0) y=1; else y=2; B)if(x==0) then y=1 else y=2; C)if(x==0) y=1 else y=2; D)if x==0 y=1; else y=2; (20)要定义整型数组x,使之包括初值为O的三个元素,下列语句中错误的是 A)int x[3]={0,0,0}; B)int x[]={0}; C)static int x[3]={0}; D)int x[]={0,0,0};(21)关于函数中的<返回类型>,下列表述中错误的是 A)<返回类型>中有可能包含关键字int B)<返回类型>中有可能包含自定义标识符 C)<返回类型>中有可能包含字符* D)<返回类型>中可能包含[] (22)要定义一个引用变量p,使之引用类MyClass的一个对象,正确的定义语句是 A)MyClass p=MyClass; B)MyClass p=new MyClass; C)MyClass &p=new MyClass; D) MyClass a,&p=a; (23)有如下两个类定义 class XX{ private: double x1; protected: double x2; public: double x3; }; class YY:protected XX{ private: double y1; protected: double y2; public: double y3; }; 在类YY中保护成员变量的个数是 A)1 B)2 C)3 D)4 (24)下列关于运算符重载的描述中,错误的是 A)可以通过运算符重载在C++中创建新的运算符 B)赋值运算符只能重载为成员函数 C)运算符函数重载为类的成员函数时,第一操作数是该类对象 D)重载类型转换运算符时不需要声明返回类型 (25)下列关于类模板的描述中,错误的是 A)类模板的成员函数都是模板函数 B)可以为类模板参数设置默认值 C)类模板描述了一组类 D)类模板中只允许有一个类型参数 (26)下列控制格式输入输出的操作符中,能够设置浮点数精度的是 A)setprecision B)setw C)setfill D)showpoint(27)下列程序段中包含4个函数,其中具有隐含this指针的是 int fun1(); class Test{ public: int fun2(); friend int fun3(); static int fun4(); }; A)fun1 B)fun2 C)fun3 D)fun4 (28)有如下程序 #include using namespace std; class Test{ public: Test(){ } Test(const Test &t) {cout<<1;} }; Test fun(Test &u) {Test t=u; return t;} int main(){Test x,y; x=fun(y); return 0;} 运行这个程序的输出结果是 A)无输出 B)1 C)11 D)111 (29)有如下程序 #include using namespace std; class A{ public: A(int i=0):r1(i) { } void print() {cout<<"E"<<R1<<"-";}< p> void print() const {cout<<"C"<<R1*R1<<"-";}< p> void print(int x) {cout <<"P"<<R1*R1*R1<<"-";}< p> private: int r1; }; int main() { A a1; const A a2(4); a1.print(2); a1.print(); return 0; } 运行时的输出结果是 A)P8-E4 B)P8-C16- C)P0-E4- D)P0-C16- (30)下列代码声明了3个类 class Person{}; class Student:public Person{}; class Undergraduate:Student{}; 下列关于这些类之间关系的描述中,错误的是 A)类Person是类Undergraduate的基类 B)类Undergraduate从类Student公有继承 C)类Student是类Person的派生类 D)类Undergraduate是类Person的派生类(31)有如下程序 #include using namespace std; Class Base{ public: Base(int x=0):valB(x) {cout<<VALB;}< p> ~Base() {cout<<VALB;}< p> private: int valB; }; class Derived:public Base{ public: Derived(int x=0,int y=0):Base(x),valD(y){cout<<VALD;}< p> ~Derived() {cout<<VALD;}< p> private: int valD; }; int main(){ Derived obj12(2,3); retuen 0; } 运行时的输出结果是 A)2332 B)2323 C)3232 D)3223 (32)下面是类Shape的定义: class Shape{ public: virtual void Draw()=0; }; 下列关于Shape类的描述中,正确的是 A)类Shape是虚基类 B)类Shape是抽象类 C)类Shape中的Draw函数声明有误 D)语句“Shape s;”能够建立Shape的一个对象s (33)将运算符“+”重载为非成员函数,下列原型声明中,错误的是 A)MyClock operator + (MyClock,long); B)MyClock operator + (MyClock,MyClock); C)MyClock operator + (long,long); D)MyClock operator + (long,MyClock); (34)打开文件时可单独或组合使用下列文件打开模式 ①ios_base::app ②ios_base::binary ③ios_base::in ④ios_base::out 若要以二进制读方式打开一个文件,需使用的文件打开模式为 A)①③ B)①④ C)②③ D)②④ (35)有如下程序: #include using namespace std; Class B{ public: B(int xx):x(xx) {++cout; x+=10;} virtual void show() const {cout<<COUNT<<"_"<<X<<ENDL;}< p> protected: static int count; private: int x; }; class D:public B{ public: D(int xx,int yy):B(xx),y(yy) {++count; y+=100;} virtual void show() const {cout<<COUNT<<"_"<<Y<<ENDL;}< p> private: int y; }; int B::count=0; int main(){ B *ptr=new D(10,20); ptr->show(); delete ptr; return 0; } 运行时的输出结果是 A)1_120 B)2_120 C)1_20 D)2_20二、填空题(每空2分,共30分) 请将每一个空的正确答案写在答题卡【l】~【15】序号的横线上,答在试卷上不得分。 (1)一个队列的初始状态为空。现将元素A,B,C,D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为 【1】 。 (2)设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有 【2】 个元素。 (3)设二叉树如下:对该二叉树进行后序遍历的结果为 【3】 。 (4)软件是 【4】 、数据和文档的集合。 (5)有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:选课(学号, 【5】 ,成绩)。 (6)若x和y是两个整形变量,在执行了语句序列 x=5; y=6; y+=x--; 后,x+y的值为 【6】 。 (7)在执行语句序列 int i=0; do i++; while(i*i<10); 时,do后面的循环体语句i++被执行的次数为 【7】 。 (8)有如下的函数定义: int Xfun(int *a, int n){ int x=*a; for(int *pa=a+1; pa<> if(*pa>x) x=*pa; return x; } 若执行了语句 int x[5]={23,46,78,55,16}; 后,通过表达式Xfun(x,5)调用该函数,则得到的返回值为 【8】 。 (9)有如下的函数定义: int Xfun(int x){ int y=x; {int x=10; y+=x;} return x+y; } 通过表达式Xfun(5)调用该函数,则得到的返回值为 【9】 。 (10)假定Xcs是一个类,该类中一个成员函数的原型为“Xcs *abc();”,则在类外定义时对应的函数头为 【10】 。 (11)请将下面的类Date的定义补充完整,使得由语句 Date FirstDay; 定义的对象FirstDay的值为2010年1月1日。 class Date{ public: Date( 【11】 ):year(y),month(m),day(d){ } private: int year,month,day; //依次表示年、月、日 }; (12)请将下面的程序补充完整,使得程序输出“飘是张娜的书”。 #include using namespace std; class Book{ public: Book(char *str) {strcpy(title,str);} 【12】 void PrintInfo() {cout<<TITLE<<ENDL;}< p> protected: char title[50]; }; class MyBook:public Book{ public: MyBook(char *s1,char *s2="张娜"):【13】 {strcpy(owner,s2);} virtual void PrintInfo() {cout<<TITLE<<"是"OWNER<<"的书"<<ENDL;}< p> private: char owner[10]; }; int main(){ Book *prt=new MyBook("飘"); prt->PrintInfo(); return 0; } (13)在有理数类Rational中重载插入运算符<<,以便按a/q形式输出。请将<<运算符函数的定义补充完整。 class Rational{ public: Rational(int aa, int qq):a(aa),q(qq){ } friend 【14】 operator<<(ostream &out, Rational &x) { return (out<<X.A<<" p ?<<x.q);<> } private: int a,q; }; (14)下面的函数定义是某函数模板能够生成的函数实例 int square(int n) {return n*n;} double square(double n) {return n*n;} 由此可知,该函数模板的定义是 【15】 。

c语言的一个计算树木高度的代码问题 要仔细研究哦!

问题一:程序没有错误,你说的那句话也确实显示了。只是因为getchar这句没有“真正”的起效。因为在你输入最后一个数字以后,是不是按回车?getchar自动把回车给吞掉了,于是跳回了主界面,你来不及看到。你可以按下Alt+F5(如果你使用Turbo C)看看是不是显示了这句话。解决办法:想办法让getchar不处理回车。问题二:很简单。将一个高级单位化为低级单位使用乘法。好比说一米等于一百厘米,你总不会用一百去除一得到一百吧!feet*inches_per_foot是将英尺化为英寸,再加上inches得到总英寸数(其实就是一个复名数化单名数的过程)

跪求同济大学魏鸿磊单片机原理及应用(C语言编程)课后习题答案

#include<stdio.h>#include<stdlib.h> void swap(int*a,int*b){ int temp; temp=*a; *a=*b; *b=temp;}void select_sort(int A[],int n){ register int i,j,min,m; for(i=0;i<n-1;i++) { min=i;//查找最小值 for(j=i+1;j<n;j++) { if(A[min]>A[j]) { min=j; } } if(min!=i) { swap(&A[min],&A[i]); printf("第%d趟排序结果为: ",i+1); for(m=0;m<n;m++) { if(m>0) { printf(""); } printf("%d",A[m]); } printf(" "); } }}int main(void){ int n; while(scanf("%d",&n)!=EOF) /* VS2013等版本中需使用scanf_s(),VC6.0中使用scanf() */ { int i; int*A=(int*)malloc(sizeof(int)*n); for(i=0;i<n;i++) { scanf("%d",&A[i]); } select_sort(A,n); printf("最终排序结果为: "); for(i=0;i<n;i++) { if(i>0){ printf(""); } printf("%d",A[i]); } printf(" "); } return 0;}

学习linux需要什么基础?需要了解C语言和C++吗?

学习Linux不需要有C语言或C++基础,而且Linux对基础没有强制性要求,即便是0基础小白也可以学习。

学习linux,要什么基础?要懂C语言吗,还是C和C加加。

如果不开发软件,就可以不学,掌握操作命令就可以了

我用74LS595做行驱动,74LS154做列驱动做了一个16×32的双色点阵,急需C语言程序,随便显示什么字。谢谢大

/***************************************************** 16*128 LED点阵屏 C 程序 ****************************************************** 声明: 本程序供大家学习之用,用勿用于商业用途。尊重版权。 编写:邓椿薪 时间:2006年1月20日 晚 邮箱:love2151@xinhuanet.com ******************************************************* //595连级输出数据,138行驱动。P0_1为移动速度高速/*点阵显示汉字程串口输出字符数据, //P2口输出行扫描信号,P2_7输出595锁存信号。*/ #define uchar unsigned char #define uint unsigned int #include <REG51.H> #include <CODESUB.H> uchar yid,h,d=12; //YID为移动计数器,H为行段计数器。 uint zimuo,zimuo1; //字模计数器 uchar BUFF[18]; //缓存 void in_data(void); //调整数据 void rxd_data(void); //发送数据 void in_data1(char h); void rxd_data1(void); void sbuf_out1(void); void sendsw(uchar k); //发送段代码 void sbuf_out(void); //16段扫描 void key(void); sbit AN1=P3^4; sbit AN2=P3^5; sbit clk=P3^3; unsigned code sw[16]={0x7f,0x6f,0x5f,0x4f,0x3f,0x2f,0x1f,0x0f,0xf7, 0xf6,0xf5,0xf4,0xf3,0xf2,0xf1,0xf0}; /*16行段码*/ /********************************************/ void main(void) { uchar i; zimuo1=sizeof(hanzi)-6*32;//(zishu+9)*32; yid=0; zimuo=0; while(1) { while(yid<100) //数据移位。 { for(i=0;i<D;I++) if(zimuo 后移一个字, zimuo="zimuo+32*5;//zimuo+32;" yid="0;" } 移动一步 yid++; sbuf_out1();key(); { 移动速度>zimuo1) //总数减7个字。 zimuo=0; } } void sbuf_out1() { char i; for(h=0;h<32;h++) { in_data1(h); clk=1; rxd_data1(); if(h>=16){i=h-16;} else i=h; sendsw(sw[i]); } } /******************************************************/ void in_data1(char h) { char s,i; if(h>=16) {i=(h-16); for(s=5;s>=0;s--) //h为向后先择字节计数器,zimuoo为向后先字计数器 { // if(zimuo%32) BUFF[2*s+1]=hanzi[zimuo+1+32*s+2*i]; //把第一个字模的第一个字节放入BUFF1中,第二个字模和第一个字节放入BUFF3中 BUFF[2*s]=hanzi[zimuo+0+32*s+2*i]; // 把第一个字模的第二个字节放入BUFF0中,第二个字模的第二个字节放入BUFF1中 } } else { i=h; for(s=5;s>=0;s--) //h为向后先择字节计数器,zimuoo为向后先字计数器 { // if(zimuo%32) BUFF[2*s+1]=hanzi[zimuo+1+32*s+2*i]; //把第一个字模的第一个字节放入BUFF1中,第二个字模和第一个字节放入BUFF3中 BUFF[2*s]=hanzi[zimuo+0+32*s+2*i]; // 把第一个字模的第二个字节放入BUFF0中,第二个字模的第二个字节放入BUFF1中 } } } /*******************************************************/ void rxd_data1(void) //串行发送数据 { char s; for(s=0;s<10;s++) //发送5字节数据 { SBUF=255-BUFF[s];//把BUFF中的字节从大到小移位相或后发送输出。 while(!TI);TI=0; //等待发送中断 } } void sendsw(uchar k) { TI=0; SBUF=k; while(!TI);TI=0; clk=0; } void key(void) { uchar a,b; if(AN1==0) { for(a=0;a<10;a++) {for(b=0;b<14;b++){}} if(AN1==0) {while(AN1==0) {} if(AN1) {d++; if(d>100) d=100; } } } if(AN2==0) {for(a=0;a<10;a++) {for(b=0;b<14;b++){}} if(AN2==0) {while(AN2==0) {} if(AN2) {d--; if(d==0) d=1; } } } } 不是我写的,但我想会对你有用。

C语言编程问题 在5个数中找出中央数median ,例:5 12 3 22 35 median=12 。用函数编

我在这里定义了一个容量为100的数组,解决你的问题应该可以!本人觉得对于要比较的数字的个数应该分为奇数和偶数两种情况,先排序,再找出中间数.不知道符不符合你的要求.#include<stdio.h>#include<string.h>int sort(int w[100],int x) { int t,i,j; for(i=0;i<x;i++) //用冒泡法把数组由小到大排序 for(j=i+1;j<x;j++) if(w[i]>w[j]) {t=w[i];w[i]=w[j];w[j]=t;} return w[x];}int main(){ int s[100],n,m1,m2; printf("请输入要比较的数字个数:"); scanf("%d",&n); printf("请输入要比较的数字(中间用空格隔开):"); for(int i=0;i<n;i++) scanf("%d",&s[i]); sort(s,n); //调用排序函数 if(n%2==0) //当n为偶数时 { m1=s[n/2-1]; m2=s[n/2]; printf("中间数有两个:%d %d ",m1,m2); } else //当n为奇数时 { m1=s[n/2]; printf("中间数有一个为:%d ",m1); } return 0;}

一个关于128点的快速傅立叶的C语言程序

这是我写的1024点的快速傅里叶变换程序,下面有验证,你把数组double A[2049]={0}; double B[1100]={0}; double powerA[1025]={0}; 改成 A[256]={0};B[130]={0};power[129]={0};就行了,void FFT(double data[], int nn, int isign) 的程序可以针对任何点数,只要是2的n次方具体程序如下:#include <iostream.h>#include "math.h"#include<stdio.h>#include<string.h>#include <stdlib.h>#include <fstream.h>#include <afx.h>void FFT(double data[], int nn, int isign){ //复数的快速傅里叶变换 int n,j,i,m,mmax,istep; double tempr,tempi,theta,wpr,wpi,wr,wi,wtemp; n = 2 * nn; j = 1; for (i = 1; i<=n ; i=i+2) //这个循环进行的是码位倒置。 { if( j > i) { tempr = data[j]; tempi = data[j + 1]; data[j] = data[i]; data[j + 1] = data[i + 1]; data[i] = tempr; data[i + 1] = tempi; } m = n / 2; while (m >= 2 && j > m) { j = j - m; m = m / 2; } j = j + m; } mmax = 2; while( n > mmax ) { istep = 2 * mmax; //这里表示一次的数字的变化。也体现了级数,若第一级时,也就是书是的第0级,其为两个虚数,所以对应数组应该增加4,这样就可以进入下一组运算 theta = -6.28318530717959 / (isign * mmax); wpr = -2.0 * sin(0.5 * theta)*sin(0.5 * theta); wpi = sin(theta); wr = 1.0; wi = 0.0; for( m = 1; m<=mmax; m=m+2) { for (i = m; i<=n; i=i+istep) { j = i + mmax; tempr=double(wr)*data[j]-double(wi)*data[j+1];//这两句表示蝶形因子的下一个数乘以W因子所得的实部和虚部。 tempi=double(wr)*data[j+1]+double(wi)*data[j]; data[j] = data[i] - tempr; //蝶形单元计算后下面单元的实部,下面为虚部,注意其变换之后的数组序号与书上蝶形单元是一致的 data[j + 1] = data[i + 1] - tempi; data[i] = data[i] + tempr; data[i + 1] = data[i + 1] + tempi; } wtemp = wr; wr = wr * wpr - wi * wpi + wr; wi = wi * wpr + wtemp * wpi + wi; } mmax = istep; } }void main(){ //本程序已经和MATLAB运算结果对比,准确无误,需要注意的的是,计算中数组都是从1开始取得,丢弃了A[0]等数据 double A[2049]={0}; double B[1100]={0}; double powerA[1025]={0}; char line[50]; char dataA[20], dataB[20]; int ij; char ch1[3]=" "; char ch2[3]=" "; int strl1,strl2; CString str1,str2; ij=1; //********************************读入文件data1024.txt中的数据, 其中的数据格式见该文件 FILE *fp = fopen("data1024.txt","r"); if(!fp) { cout<<"Open file is failing!"<<endl; return; } while(!feof(fp)) //feof(fp)有两个返回值:如果遇到文件结束,函数feof(fp)的值为1,否则为0。 { memset(line,0,50); //清空为0 memset(dataA,0,20); memset(dataB,0,20); fgets(line,50,fp); //函数的功能是从fp所指文件中读入n-1个字符放入line为起始地址的空间内sscanf(line, "%s%s", dataA, dataB); //我同时读入了两列值,但你要求1024个,那么我就只用了第一列的1024个值 //dataA读入第一列,dataB读入第二列 B[ij]=atof(dataA); //将字符型的dataA值转化为float型 ij++; } for (int mm=1;mm<1025;mm++)//A[2*mm-1]是实部,A[2*mm]是虚部,当只要输入实数时,那么保证虚部A[mm*2]为零即可 { A[2*mm-1]=B[mm]; A[2*mm]=0; }//*******************************************正式计算FFT FFT(A,1024,1);//********************************************写入数据到workout.txt文件中 for (int k=1;k<2049;k=k+2) { powerA[(k+1)/2]=sqrt(pow(A[k],2.0)+pow(A[k+1],2.0));//求功率谱 FILE *pFile=fopen("workout.txt","a+"); //?a+只能在文件最后补充,光标在结尾。没有则创建 memset(ch1,0,15); str1.Format("%.4f",powerA[(k+1)/2]); if (A[k+1]>=0) str2.Format("%d %6.4f%s%6.4f %s",(k+1)/2,A[k],"+",A[k+1],"i");//保存fft计算的频谱,是复数频谱 else str2.Format("%d %6.4f%6.4f %s",(k+1)/2,A[k],A[k+1],"i");strl1=strlen(str1); strl2=strlen(str2); // 用 法:fwrite(buffer,size,count,fp); // buffer:是一个指针,对fwrite来说,是要输出数据的地址。 // size:要写入的字节数; // count:要进行写入size字节的数据项的个数; // fp:目标文件指针。 fwrite(str2,1,strl2,pFile); fwrite(ch1,1,3,pFile); fwrite(ch1,1,3,pFile); fwrite(str1,1,strl1,pFile); fwrite(ch2,1,3,pFile); fclose(pFile); } cout<<"计算完毕,到fft_testworkout.txt查看结果"<<endl;}

怎样用C语言实现FFT算法啊?

......

ply格式文件,用C语言怎么读入,并存储在哪种数据结构中

问题很深奥 - -!

sigh 在C语言代表什么含义???

没见过

我正在自学C语言,问下几个单词的意思:sigh、sum 、deno 、term的意思希望能告诉我,

sum是求和的意思 sign是标记的意思

c语言题目,算法看不懂,还有里面的sigh和sum等都是什么意思啊~!希望一步一步的说清楚,先谢啦~!

我没学到那么多 sum应该是计算 总和

sigh,deno,term在C语言里表示什么?

1、这几个都是用户自定义变量,根据上下文才有意义。2、例如:sigh=(-1)*sigh//把sigh的相反数赋给sighterm=sigh*(1/deno)//deno的倒数与sigh的乘积赋给termterm=sum+term//把sum与term的和赋给termdeno=deno+1//把deno与1的和赋给deno

从c语言到fpga高手,我是怎么炼成的

这些日子我一直在写一个实时操作系统内核,已有小成了,等写完我会全部公开,希望能够为 国内IT的发展尽自己一份微薄的力量。最近看到很多学生朋友和我当年一样没有方向 ,所以把我的经历写出来与大家共勉,希望能给刚入行的朋友们一点点帮助。一转眼我在IT行业学习工作已经七年多了,这期间我做过网页,写过MIS、数据 库,应用程序,做过通信软件、硬件驱动、协议栈,到现在做操作系统内核和 IC相关开发,这中间走了很多弯路,也吃了不少苦。我上的是一个三流的高校,就连同一个城市的人多数都不知道。因为学校不好也就没有指望能靠学校名气找一个好工作。所有的希望都寄托在自己的努力上了, 大一开学前的假期我就开始了学习,记得我买的第一本书是《计算机基础DOS3.0》,大家别吓着了,其实当时已经普及了DOS6.22了,只是我在书店里 看到了DOS4.0,5.0,6.0的书,以为像英语那样是第四、五、六册,记得当时到处找DOS1.0,现在想想也幸好我没有找到:)开学前我学完了 PASCAL,那时既没有计算机也没有人可以请教,我连程序是什么的概念都没有,只好死记硬背代码,然后拿纸写,我一直到大三才有了一台486,在这之前 用纸写了多少程序我也记不清楚了,只知道最长的一个我拿A4大小的草稿纸写了30 多页,我的C语言、C++ 、VC都是在这样的条件下入门的。所以说条件是可以克服的,希望我的经历多少给条件艰苦的同学们一点信心。第一次上机是在我姐夫的机房,我的心情激动的无 与伦比,但是一上机我立刻傻了眼,他们用的是英文版的Win3.1,我的那点DOS知识都见了鬼,上机提心吊胆的一阵瞎摸,一不小心把Word弄成了全 屏,怎么都还不了原,当时真是心急如焚,我以为机器被我弄坏了。第一个C语言程序,就是那个经典的HelloWorld,我调了几个星期,上机机会非常 少,也没有书告诉我开发环境(TC2.0)需要设置,而且开始我都不知道有编译器,我甚至自作聪明把写好的程序扩展名从.c改成.exe,结果可想而知。 大一学完了C、X86的汇编、数据结构、C++。由于精力都花在自学上了,大一下四门课挂了彩,三类学校就是这点好,挂上一二十门也照样毕业。不过扯远点 说,我那么刻苦都及不了格,可见我们国家的计算机教育有多死板。大二准备学VC和BC,当时难以取舍,后来选了VC,不为别的,只为书店里两本书,VC 那本便宜6块钱。我的努力在班上无人能及,学的日夜不分,大三有了计算机后更是如此,很多次父亲半夜教训我说我不要命了,我一直觉得自己基础差,记忆又不 行,条件也不好,所以觉得只有多花点时间才能赶上别人。居然后来有许多朋友说我有学计算机的天赋,让我哭笑不得。我用的是486,16M内存,1G硬盘, 当时同学们的配置都是P166MMX,我安装 一个Windows NT4.0需要一个通宵,编译一个BC5.0向导生成的程序需要近两个小时,我的显示器是个二手的,辐射非常大,开机屏幕冒火花,看起来很酷的:),有一 次程序写的太久,觉得怎么白色的编辑器背景变成了紫色,以为显示器坏了,后来才发现眼睛不行了,不过说来也奇怪,到今天我的视力还能保持1.5,真是个奇 迹。但是就是那台破机器陪伴了我两年,让我学会了VC、Delphi、SQLServer等。后来那台机器给我阿姨打字用,据她说一天她正打的开心,一股 青烟夹着火苗从显示器钻出来,之后它才寿终正寝。大三假期找了个机会在一个计算机研究所实习,与其说实习不如说是做义工,工作了两个月一分钱没有拿。但是这两个月对我的发展帮助很大,让我早一步了解 了社会,刚去的时候我当然是一窍不通,在那里我熟悉了网络,学会了Delphi和Oracle。由于工作很认真,得到了比较好的评价,在一位长者的引荐 下,我开始和他们一起做项目,这使我在大三大四就有了自己的收入,大四又找了两家MIS公司兼职,虽然钱不多,但是在学生期间有1000多的收入我已经非 常满足了,我终于用自己赚的钱把计算机换了。大四下开始找工作,这时我的工作经验已经比较多(当然现在想想非常幼稚),开始听父母的想去那个研究所, 实习过那个部门也希望我能去,但是不知道为什么最后不了了之,这种单位就是比较官僚,我一气之下就到了我兼职的一个公司做MIS的TeamLeader。 在大三到毕业一年的时间,做过了各种MIS,从煤气、烟厂、公安、铁路、饮食到高校,什么有钱做什么,工作也很辛苦,经常加班和熬通宵,从跟客户谈需求到 设计、编码、测试、交付都要上。那时觉得很有成就感,觉得自己还不错,现在想想真是很肤浅。刚走上工作岗位的学生很容易被误导,各种开发工具让人眼花缭乱,同时也觉得很受公司器重,但这样工作永远是一个低层次的开发者。不要跟我说什么系统分 析有多么多么重要,多么多么难。你以为自己跟用户谈需求做设计就是系统分析和设计了吗,国内又有几个公司能够做的很到位很规范?我是ISO9000内审 员,也在Rational公司受过多次培训,拿了4个证书,还有一个公司让我去做 CMM。这些我听过很多,但是很多事情到国内就变了性质,一个公司不是通过了ISO9000或者CMM就能规范了,我现在在一家有几十年历史的外企工作, 里面的管理不是一般国内企业能及的。作为一个毕业不久以前没有步入过社会的学生,几乎不可能在很短的时间掌握系统分析和设计,面向对象、UML只是一个工 具,关键是人本身的思想,不是说你熟悉了C++、Rose就能够做出好的设计,相反如果你具备了很高的素质,你可以用C写出比别人用C++更加模块化的程 序。话说远一些,国内软件开发行业有一个怪圈,很多人觉得VC > Delphi > VB,真是很搞笑。这几个软件我都做过开发,说白了他们都是工具,应该根据应用的需要选择采用哪个,而不是觉得哪个上层次。如果你因为用某个开发工具很有 面子而选择的话,只能说明你很浅薄。如果说层次,那么这些工具都不上层次,因为它们用来用去都是一些系统的API,微软的朋友不会因为你记住他们多少个 API或者多少个类就会觉得你很了不起,你永远只是他们的客户,他们看重的是你口袋里的银子。我也做过系统内核,我也封装过很多API,同样我也不会看重 那些使用这些API做二次开发的客户,除非他能够作出自己独到的设计。至于有人认为C++ > C那更是让人笑掉大牙,不妨你去打听一下,现在有几个操作系统内核是用C++写的,又有几个实时系统用的是C++,当然我也不是说C++不好,但是目前的 内核和实时系统中C++还无法与C匹敌,至于说C++适合做应用系统的开发那是另外一回事。所以我的观点是不在于你用什么工具和语言,而在于你干什么工 作。你的设计体现了你的技术层次。这样干了一年我觉得非常苦闷,做的大多数都是熟练工种的活,个人技术上没有太多的提高也看不到方向。所以决定离开这个城市去上海,寻求更好的发展,并且打算放弃我以前的MIS转到通信行业。写到这里不能不提到我女朋友,我们是在来上海前半年认识的,她大四在我公司实习,公司派她给我写文档,我们的感情发展的很快。她告诉我很多事情,她家 原本是改革开放的第一批暴发户,她母亲爱打牌,输掉了几百万,还欠了很多债,她有男朋友,但是她对他没有感情,只因为他给了她母亲两万多块钱,后来还强迫 她写了四万块的借条,她男朋友背叛过她并且不止一次打她,现在逼她结婚不然就要她还钱。这人居然还是一个高校的老师!她母亲把父亲给她的学费花了,因为拖 欠学费她没有办法拿到毕业证。她母亲现在有病需要钱,我拿出了自己的一点积蓄并且跟朋友们借了一些,替她交了学费并给她母亲看病(后来才知道看病的钱又不 知所终,就连她母亲是不是有病我都不知道,但她也是没有办法)。这个时候我家知道了一些事情,坚决反对我和她在一起,她原来的男朋友也极力破坏。无奈之下 我们决定早一点离开这个伤心的城市,并且瞒着我们家。由于时间仓促,我只准备了4000块钱,她仅有的几百块钱也被她母亲要去了,我买了三张票,一张是中 午的,两张是晚上的,中午我的家人把我送上船,他们一离开我就下了船,我和她乘坐晚上的船离开了这个我和她生活了很多年的城市,带走的只是一身债务。没有 来过上海的我们两个性倔强,都不愿意去麻烦同学和朋友。来到上海是傍晚6点半,我们都不知道该去哪里,我们找了一个20块钱的旅馆,这个房间连窗户都没 有,7月份的天气酷热难耐,房间里非常闷热。第二天我们开始租房子,因为身上的钱不多,我们基本都是步行,花了一个星期时间,不知道在浦东转了多少圈后找 到了一个400块的房子,但是我们都不了解上海是付三压一,还要付半个月的中介费,买了一些锅碗瓢盆后,我们身上只有800块钱了,工作都还没有着落,这 800块钱要支持到我们拿到第一个月工资,为了省钱我们自己做饭,每天买菜只花两块钱,她非常喜欢吃(也可能她在大学经常挨饿的原因),看到她现在这样省 吃俭用我真的很不忍心。她以前的男朋友也没有放过她,经常打电话来骚扰,并且来上海看她,还说了不少恐吓她的话,她过于善良,说他以前毕竟帮助过她,叫我 不要与他一般见识。以后的每天在家就是苦等面试通知,原本我想迅速找一家MIS公司解决眼前的困难,但是她坚持让我不要放弃自己的理想,终于功夫不负有心 人,我找到了一家通信公司,4000块的工资虽然赶不上MIS公司给我开出的价位,但也够在上海生存。她也找到了工作,第一天上班她哭了,这是她来上海第 一次流泪,我心里很难受也很感动。由于是全新的行业,我把自己降到了零点,我学的VC、Delphi、数据库派不上用场,摆在我面前的是嵌入式、协议、信令一些我从未接触过的知识。我 知道我没有退路,于是拼命的学习,我把自己当做一个应届毕业生一样,一分努力一分收获,半年过去我终于熟悉了工作,并且得到了公司的表彰,薪水也加了一 级。后面的日子里我们省吃俭用,把欠朋友的1万多块钱还了,日子终于上了正轨。这时女朋友告诉我她想考研究生,我也很支持,于是她辞职在家备考。另外,在这里我要感谢我的Project Manager,他原来是一个大通信公司的产品经理,对人非常和善,我从他那里学到了很多知识,而且他也给了 我许许多多无私的帮助。在工作上他给我充分的空间和信任。记得公司安排我维护一个接入服务器软件,由于代码量不算太小(5万行),资料和文档都不齐全,我 维护起来非常吃力,所以想重新把它做一遍,公司领导不太支持,可能觉得工作量太大,但是他极力支持我,私下里他让我放手去做,我的维护工作他挤时间做。在 他的支持下,我花了半年时间完成了接入服务器的软件,并且实现了一个相对完整的TCP/IP协议栈。在这里我学会了嵌入式系统设计、驱动开发、TCP /IP和很多通信的知识,我花了一年时间终于使自己从MIS开发转到了通信行业,并且站稳了脚跟。我的开发大量是对硬件的直接操作,不再受微软的操作系 统,VC、Delhpi这些开发工具的约束,我终于看到了另外一片天空。我做事情喜欢追根问底,随着开发的深入,软件开发与硬件联系越来越紧密,硬件知识的匮乏又对我的发展产生了障碍,而且芯片技术基本上掌握在国外公司的 手里,这对做系统级设计是一个非常大的制约,一个新产品出来,第一道利润(也往往是最丰厚的利润)常常都被IC公司如Intel、Motorola赚去 了,国内的厂商只能喝点汤。所以我决心解决自己的硬件技术障碍,并打算离开通信行业,进入IC设计相关领域。当然我明白如果我对硬件了解的非常少,没有哪家IC公司会仁慈到招我这样一个一窍不通的人来培训。所以我必须努力打好基础,学一些相关知识为以后做准 备。就像我开始从MIS转到通信一样,我看过大量通信方面的书,并且给一个ISP做过RADIUS计费分拣台,在这样的背景下这家通信公司才给了我这个机 会。我在的通信公司是做系统设计的,有不少PCB Layout硬件人员,平常我就注意向他们学习,由于我做的是软件,在公司看硬件资料不好意思,所以开始只好在家看,刚来上海工作我连续一年都在加班,后 来不加了,因为我要挤出时间学习,通常我12点左右睡,第二天5点半起,我上班比较早,地铁上如果人不多我也用来看书。学习当然不会是一帆风顺的,有些实 在不懂的问题就积累起来问硬件人员,他们的帮助使我学习进度快了很多,因为在没有人点拨的情况下自学,我的一半时间是花在解决疑难问题上,但这种问题经常 是别人的一句话就可以让我豁然开朗,我非常庆幸我有这样的学习环境。在后面的一年里,我学会了看硬件原理图,学会了简单的硬件设计(模拟电路方面还有不小 的差距),事情就是这样的,当你安安份份做软件,别人永远认为你是软件开发人员,在你开始学习硬件时别人未必会认同,有位中兴通讯的朋友还对我说过,一个 人不可能把所有东西都学完。我也明白这一点,但我希望自己做的更好。但当你熟悉硬件后大家又会觉得你好像原本就是软硬件都懂的,同事们也都习以为常了。这 个时候我可以把硬件资料堂堂正正的拿到公司看,没有人再大惊小怪了。让我比较自豪的是我通过自己的努力做了一个IAD(软交换的终端设备)系统方案,包含 软硬件的选型、设计等内容,这个方案得到了公司和同事们的认同,让我感到非常欣慰。技术是相辅相成的,当我的硬件有了一定的进步后,我的软件设计也有了很大的提高,我可以从更深层次理解问题,我做的接入服务器CPU是 Motorola PowerPC860,熟悉的朋友都知道860 QMC与软件的批量数据传输通常采用BD表的方式,硬件人员做驱动的时候习惯采用固定BD表,每接收或发送数据都将数据从BD表拷贝到用户Buffer, 或从用户Buffer拷贝到BD表,由于理解的比较深入,我自己重新实现了这个过程,采用动态BD表的方式,驱动从一个网口接收数据,提交给我的软件进行 三层交换,直至从另外的接口发送出去,没有进行一次拷贝。这样的设计大大提高了性能,使系统的指标接近理论值。软硬件的结合使我的设计水平上了一个台阶。 我现在写的这个操作系统,编译后我把程序反编译成汇编,找出其中不优化的代码,然后在C程序中进行调整。举个例子,很多CPU没有专门的乘法指令,这个大 家应该都知道,在这种CPU上进行一个乘法操作常常会花费大量的指令周期,有的朋友会说这个我知道,我会尽量避免采用×号,但是事情往往不是那么简单,你 知道 C语言中数组的下标操作是怎么实现的吗?仔细看看反汇编的代码你就会明白,同样是通过下标的定位操作,C编译器会有时候会产生位移指令,但有时候会用乘法 实现,两者效率往往是天壤之别,所以明白这些问题你才能将系统性能提升到极致。这些问题就不多说了,有兴趣的话以后可以共同探讨。话说远一点,我由衷的希望在软件上做的比较深入的朋友们有机会学学硬件以及其它相关知识,尤其是做底层开发和嵌入式设计的。这对软件技术的提高有非常 大的帮助,否则很多事情你只知道该这样但不会明白为什么该这样。我这个观点在我现在的IC公司Project Manager那里也得到了验证。他告诉我们公司现在的802.11芯片产品的软件经理原本是做该芯片硬件设计的,某某某原本是做软件的,现在在做IC, 类似的例子还有很多,只是在国内这样的风气不是非常流行。我有一些心得体会与大家分享,只有当我干好本职工作后,我才会学习与工作关系不大的技术,这样公司的上司才不至于反感,在入门阶段的问题我通常不去问 那些资深人士,而是问一些资历比较浅的朋友,比如刚毕业不久的学生,因为他们往往会跟你详细的讲解,而资深人士通常觉得你的问题太简单,所以回答的也很简 单,我又不好意思多问。等技术上了一定的层次后我才会问他们,他们也能给你比较深入的回答。另外,有些朋友说我机会比较好,他们也希望能从事新的工作可惜 没有机会,我听了只有苦笑,我的机会了解的人都应该知道,我没有出生在什么IT世家:)也没有谁一路提拔我,所有的路都是自己走出来的,我母亲去世比较 早,我的后母(我叫她阿姨)看着我努力过来的,一次她看我大年30还在写程序,她说像我这样努力木头都能学出来。我的最终目的是IC而不是PCB,所以我下一步的准备开始学习IC设计的知识。公司的同事没有懂IC设计的,后面的路又要靠自己了,我买了不少相关的 书,在网上也查了很多的资料,我花了大量的时间去学习VHDL,并且用软件进行了一些简单的设计和仿真(没有设计ASIC,只是针对FPGA),随着学习 的深入,我渐渐明白了IC设计的基本流程,同时也明白了这条路的艰辛。这个时候我已经做好了跳槽的准备,我向一家业界有一定知名度的IC设计公司投了简 历,并通过了漫长的面试(4个多小时)。其他的一切我都比较满意,唯独薪资差强人意,我也明白原因,因为我是这个行业的新人,我没有经验,我再一次将自己 清零了。公司老板问我6000多一个月能不能接受,我知道他也是照章办事。想想我通信行业的朋友们,基本上都是年薪10万以上,月薪过万的也比比皆是,朋 友们也帮我介绍了不少待遇不错的公司,我该怎么选择,当时我很犹豫,我热爱我的事业,我向往我的追求,但我也是一个普通的人,我也需要养家糊口,我也想早 一点买房买车。生活给我出了一道难题。爱因斯坦在63岁时说过“一个人没有在30岁以前达成科学上的最大成就,那他永远都不会有。”这句话给了我很大的压力和震动,我马上就26岁了,离 30只有四年时间,我必须抓紧这几年宝贵的时间,努力达到我技术上的最高峰。为了这个理想,为了能离自己的梦更近一些,我选择了这家IC公司,我明白自己 的薪资和公司刚进来的硕士研究生相差无几,但为了今后的发展只能忍受,一切又得重新开始。换行业是一个非常痛苦的过程,尤其从一个春风得意的位置换到一个 陌生的岗位,感觉象从温暖的被子里钻出来跳进冰水中,让人难以接受。在原来那家通信公司,我是唯一两年时间涨了五次工资的员工,公司和同事都给了我极大的 认可,工作上也常常被委以重任。但现在这一切都成了过去,在新的公司我只是一个新人,没有人知道也没有人在意我过去的成绩。我决定重新开始,我把自己看作 新毕业的学生,我要用自己的努力得到公司的认可。进入新的行业是非常痛苦的,我告诉自己必须忍受这一切,虽然外面有很多诱惑,但是既然作出了选择我就不允 许自己轻易放弃。我现在已经在这家新公司上了一个多月的班,开始非常艰难,现在慢慢适应了。第一 个月结束时,Team Leader找我谈话,说我是新进员工中最优秀的一个,我心里很欣慰,这也算对我努力的一个肯定吧。在这里还要感谢我的女朋友,她给了我很大的支持和鼓 舞,每次在我动摇的时候她都在鼓励我,让我坚持自己的理想,刚来上海是她让我不要勉强去做MIS,这次也是她让我顶住了月薪过万的诱惑,没有她我可能不会 有今天的成绩。现在的公司有自己的操作系统,自己的CPU、DSP和其它芯片,在这里我能学到世界上最先进的技术,我们的设计开发不再完全依赖别人的硬件 和系统,这让我很开心。我打算等工作步入正轨后,全力学习新的知识,实现我的理想。在后面的两年里我给自己定下了几个目标:努力做好本职工作,在工作上得到公司和同事们的认同;努力学习IC硬件设计知识,多向同事请教,并利用一切机会多实践;实现我的实时操作系统的主要部分,完成TCP/IP协议栈模块,并免费发布源代码;和我女朋友结婚并买一套小房子,这是最重要的,因为我明白事业是可以重来的,但是珍贵的感情很难失而复得。在这里提一下我现在开发的操作系统,它是一个实时嵌入式系统,目前支持:a.时间片轮转调度和基于优先级调度,最多64个优先级;b.抢占式实时内核;c.为了便于移植,主体用标准C实现;d.汇编代码非常少,不到100行;e.支持任务管理,各任务有独立的堆栈;f.进程同步和通信目前完成了Semaphore,Message Queue正在调试;g.实现了定时系统调用;h.可以在windows上仿真调试我还打算下一步实现优先级反转保护,Event Flag,Data Pipe,内存管理(以前实现过)、驱动接口等。 在这之后我还会努力完善它,比如加入文件系统,协议栈、调试接口等。希望朋友们提出自己的意见和建议,在此不胜感激!就像有的朋友说的,我的经历或许会给一些朋友产生误导,在这里我必须说明一下。我来上海以前学习过于拼命,常常晚上只睡3个多小时,我身高1米71, 那时只有108斤(我现在130多),家人也说我这样拼命活不过60岁,但是当时的我太固执,我对他们说只要能实现理想活50岁我就够了。那时的拼命使我 的身体受到了影响,有一次早上突然腰肌剧痛难忍,痛的我倒在床上站不起来。虽然我现在已经比较注意,但有时候还会隐隐作痛。后来在女朋友说服了我,来上海 以后我不再如此。我经常引用父亲的一句话,而且我也发现拼命不是办法,我可以熬一两个通宵,最多的一次我连续工作了三天三夜,但是我半个月都没有恢复过 来,这样是不是得不偿失?学习工作应该是一个长期的过程,像马拉松而不是百米冲刺。我现在非常注意调整学习和工作的强度,我要保证每天尽量有相对充沛的精 力,一些年轻的朋友觉得自己也应该拼命努力,这让我多少有些担心,如果我的故事能让你在学习工作上多一点兴趣,我会感到很开心,但如果误导了某些朋友,让 你做一些不值得的付出,我会感到很内疚。

求贪吃蛇的程序代码(c语言)

贪吃蛇游戏的代码#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 0x011bint 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; initgraph(&gd,&gm,"c:\tc"); 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语言遗传算法在求解TSP问题 毕业论文+源代码

目录摘要IAbstractII引言1第一章基本遗传算法21.1遗传算法的产生及发展31.2基本原理31.3遗传算法的特点31.4基本遗传算法描述51.5遗传算法构造流程6第二章遗传算法的实现技术62.1编码方法72.1.1二进制编码72.1.2格雷码编码72.1.3符点数编码82.1.4参数编码82.2适应度函数102.3选择算子102.4交叉算子102.4.1单点交叉算子102.4.2双点交叉算子112.4.3均匀交叉算子112.4.4部分映射交叉112.4.5顺序交叉122.5变异算子122.6运行参数122.7约束条件的处理方法132.8遗传算法流程图14第三章遗传算法在TSP上的应用153.1TSP问题的建模与描述153.2对TSP的遗传基因编码方法163.3针对TSP的遗传操作算子173.3.1选择算子173.3.1.1轮盘赌选择173.3.1.2最优保存策略选择173.3.2交叉算子203.3.2.1单点交叉203.3.2.2部分映射交叉213.3.3变异算子233.4TSP的混和遗传算法26第四章实例分析274.1测试数据274.2测试结果274.3结果分析27摘要TSP(TravelingSalesmanProblem)旅行商问题是一类典型的NP完全问题,遗传算法是解决NP问题的一种较理想的方法。文章首先介绍了基本遗传算法的基本原理、特点及其基本实现技术;接着针对TSP问题,论述了遗传算法在编码表示和遗传算子(包括选择算子、交叉算子变异算子这三种算子)等方面的应用情况,分别指出几种常用的编码方法的优点和缺点,并且结合TSP的运行实例详细分析了基本遗传算法的4个运行参数群体大小、遗传算法的终止进化代数、交叉概率、变异概率,对遗传算法的求解结果和求解效率的影响,经过多次的测试设定出了它们一组比较合理的取值。最后,简单说明了混合遗传算法在求解TSP问题中的应用并对遗传算法解决TSP问题的前景提出了展望。关键词:TSP遗传算法遗传算子编码@@@需要的话按我的名字找我吧

C语言#include "stdafx.h"是什么啊?求大神详解

一个头文件啊!!!和stdio.h 是一样的,想看这个头文件 鼠标放上面然后点击右键、、、求采纳!!

C语言冒泡排序。

可以在优酷里搜“C语言冒泡排序”视频,刘刚老师讲的那个,思路清晰,不到五分钟就能看完,通俗易懂。我就是在视频上自己学会的

c语言:3个数abc,按大小顺序输出

#include<stdio.h>intmain(){intt,a,b,c;scanf("%d%d%d",&a,&b,&c);if(a<b){t=a;a=b;b=t;}if(a<c){t=a;a=c;c=t;}if(b<c){t=b;b=c;c=t;}printf("%d%d%d ",a,b,c);return0;}

C语言冒泡排序法

C语言输入一个字符串,将字符串中所有字符按ASCII码升序排列后输出。若输入"edcba",输出"abcde"?

对字符串中所有字符按ASCII码升序排列,本质上就是对字符数组排序,你给的答案用的是冒泡排序,它的基本原理是每次检查相邻的两个数,如果不满足升序,交换相邻的两个数。如果按照你说的把第五行改成i=strlen(t)-1,那么第6行的循环只会循环1次(j从0~i-1)然而这样循环完成一次之后,只能保证最后一个元素归位,并不能保证所有元素从小到大,根据冒泡排序的原理,冒泡排序每次(至少)能把最后一个元素归位,所以至少需要归位strlen(t)-1次(归位了strlen(t)-1个字符,剩下那个字符的位置肯定是对的),所以第6行的循环至少执行strlen(t)-1次。还有不懂可以问。

输入10个数,用冒泡排序法按由小到大顺序排序并输出??c语言的

#include<stdio.h>#defineN10voidmain(){ints[N],flag,temp;printf("输入10个整数:");for(intk=0;k<N;k++){printf("s[%d]=",k);scanf("%d",&s[k]);}for(inti=0;i<N;i++){//冒泡排序flag=0;for(intj=1;j<N-i;j++)if(s[j-1]>s[j]){temp=s[j];s[j]=s[j-1];s[j-1]=temp;flag=1;}if(!flag)break;}printf("排序后数组为:");for(intj=0;j<N;j++)printf("s[%d]=%d",j,s[j]);}

c语言冒泡排序详解

冒泡排序是最简单的排序方法,理解起来容易。虽然它的计算步骤比较多,不是最快的,但它是最基本的,初学者一定要掌握。冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。以从小到大排序为例,第一轮比较后,所有数中最大的那个数就会浮到最右边;第二轮比较后,所有数中第二大的那个数就会浮到倒数第二个位置……就这样一轮一轮地比较,最后实现从小到大排序。比如对下面这个序列进行从小到大排序:90 21 132 -58 34第一轮:1) 90 和 21比,90>21,则它们互换位置:21 90 132 -58 342) 90 和 132 比,90<132,则不用交换位置。3)132 和 –58 比,132>–58,则它们互换位置:21 90 -58 132 344)132 和 34 比,132>34,则它们互换位置:21 90 -58 34 132到此第一轮就比较完了。第一轮的结果是找到了序列中最大的那个数,并浮到了最右边。比较时,每轮中第 n 次比较是新序列中第 n 个元素和第 n+1 个元素的比较(假如 n 从 1 开始)。第二轮:1) 21 和 90 比,21<90,则不用交换位置。2) 90 和 –58 比,90>–58,则它们互换位置:21 -58 90 34 1323) 90 和 34 比,90>34,则它们互换位置:21 -58 34 90 132到此第二轮就比较完了。第二轮的结果是找到了序列中第二大的那个数,并浮到了最右边第二个位置。第三轮:1) 21 和 –58 比,21>–58,则它们互换位置:-58 21 34 90 1322) 21 和 34 比,21<34,则不用交换位置。到此第三轮就比较完了。第三轮的结果是找到了序列中第三大的那个数,并浮到了最右边第三个位置。第四轮:1) –58 和 21 比,–58<21,则不用交换位置。至此,整个序列排序完毕。从小到大的序列就是“–58 21 34 90 132”。从这个例子中还可以总结出,如果有 n 个数据,那么只需要比较 n–1 轮。而且除了第一轮之外,每轮都不用全部比较。因为经过前面轮次的比较,已经比较过的轮次已经找到该轮次中最大的数并浮到右边了,所以右边的数不用比较也

c语言中的冒泡法 ,为何要进行n-1次运算。

你可以默认几个数字 去测试一下,自己一看就明白了

C语言:编写一个程序用冒泡排序实现升序排列

#include <stdio.h>void main(){ //用指针实现10个数的冒泡排序(从小到大) int i,j,*p,temp,arr[10]; p=arr; printf("请输入10个数字:"); for(i=0;i<=9;i++) scanf("%d",p+i); printf("你输入的数字为:"); for(i=0;i<=9;i++) printf("%d ",*(p+i)); printf(" "); for(i=0;i<=9;i++) for(j=0;j<=9-i;j++) if(*(p+j)>*(p+j+1)) { temp=*(p+j+1); *(p+j+1)=*(p+j); *(p+j)=temp; } printf("排序后的数字为:"); for(i=0;i<=9;i++) printf("%d ",*(p+i)); printf(" "); }

c语言字模取反

方法1:把你程序写LCD的顺序改一下,写字模的时候顺序该个方向方法2:取字模的时候就设置为镜像取模

C语言编程题:输入4个整数,要求按由小到大顺序输出怎么编啊?

最愚蠢的方法:# include<stdio.h>main() { float a,b,c,d,t; scanf("%f,%f,%f,%f",&a,&b,&c,&d); if(a>b) {t=a;a=b;b=t); if(a>c) {t=a;a=c;c=b}; if(a>d) {t=a;a=d;d=t); if(b>c) {t=b;b=c;c=t}; if(b>d) {t=b;b=d;d=t}; if(c>d) {t=c;c=d;d=t}; printf("%5.2f,%5.2f,%5.2f,%5.2f",a,b,c,d); }冒泡法:# include<stdio.h>main(){ int i,j,t,a[3];/* 定义一个数组用来存这4个数 */ for(i=0;i<4;i++) scanf("%d",&a[i]); /* 录入4个数 */ for(i=0;i<4;i++) /* 冒泡法 */ for(j=0;j<4-i;j++) { if(a[j]>a[j+1]) /* 比较相邻的两个数,小的调前面。*/ { t=a[j+1]; a[j+1]=a[j]; a[j]=t; } } for(i=0;i<4;i++) /* 分别输出排完后的4个数 */ printf("%d ",a[i]); }

C语言中一个函数怎样返回多个值

void function(void *input, void *out)out 指向一个 结构体。就可以返回多个 值了。

_nop_在c语言里怎么用呢?

__asm{nopnop}

跪求 单片机 用C语言写一个程序 用LCD显示welcome 急急急急十万火急 在线等

#include <reg51.h> //51寄存器文件#include <intrins.h>typedef unsigned char BYTE; //用BYTE代替unsigned char typedef unsigned int WORD;//WORD代替unsigned inttypedef bit BOOL ;//用BOOL代替bit sbit rs = P2^6; //复位端sbit rw = P2^5; //写数据端sbit ep = P2^7; //使能端BYTE code dis1[] = {"welcome!,I"m Tom"};//LCD侧忙函数BOOL lcd_bz(){ BOOL result; rs = 0; rw = 1; ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); result = (BOOL)(P0 & 0x80); //检测P0最高位是否为1 ep = 0; return result;//返回侧忙结果 }// 写入指令数据到LCDlcd_wcmd(BYTE cmd){ while(lcd_bz()); rs = 0; rw = 0; ep = 0; _nop_(); _nop_(); P0 = cmd; //将8位指令通过P0口传给1602 _nop_(); _nop_();//用于产生一个脉冲宽度 _nop_(); _nop_(); ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); ep = 0; }//设定显示位置lcd_pos(BYTE pos){ lcd_wcmd(pos | 0x80);}//写入字符显示数据到LCDlcd_wdat(BYTE dat) { while(lcd_bz()); rs = 1; rw = 0; ep = 0; P0 = dat;//将8位数据通过P0口传给1602 _nop_(); _nop_(); _nop_(); //用于产生一个脉冲宽度 _nop_(); ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); ep = 0; } //LCD初始化设定lcd_init(){ lcd_wcmd(0x38); ////16*2显示,5*7点阵,8位数据 lcd_wcmd(0x0c); //显示开,关光标 lcd_wcmd(0x06); //移动光标 lcd_wcmd(0x01); //清除LCD的显示内容}main(){ BYTE i; lcd_init(); //初始化LCD lcd_pos(4); //设置显示位置为第一行的第5个字符 i = 0; while(dis1[i] != "") { //显示字符"welcome!" lcd_wdat(dis1[i]); i++; } while(1); }

_nop_在c语言里怎么用呢?

在c语言里没有这个_nop_函数,这个函数是在51单片机里使用的。作用:对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当汇编NOP指令,延时几微秒。NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。对于延时比较长的,要求在大于10us,采用C51中的循环语句来实现。扩展资料nop指令在C语言中的使用示例:#inluce<stdio.h>assemblyinlinevoidinsert_nop(){asm_beginnopasm_end}

c语言nop指令不优化

代码优化等。1、如NOP指令没有实际的用途或对程序的执行结果没有影响,编译器会将其优化掉,以提高代码执行效率。2、如NOP指令没有被其他指令使用或依赖,编译器会认为它是无效的,并将其删除或替换为更有效的指令序列。

有谁知道,Vb里有哪个函数与c语言的asm( nop )功能相同

1、C语言中没有_nop_()函数,该函数是在51单片机中用的延时函数,延时一个指令周期。一般包含在 intrins.h 头文件当中。 2、例如用6MHz的晶振,则如下for循环大约延时1秒。 int i; for(i=0; i

51单片机 c语言里 _nop_ 函数怎么用 具体一点 求高手指教

1、C语言中没有_nop_()函数,该函数是在51单片机中用的延时函数,延时一个指令周期。一般包含在intrins.h头文件当中。2、例如用6MHz的晶振,则如下for循环大约延时1秒。inti;for(i=0;i<6000000;i++)_nop_();//延时一个指令周期,相当于执行一条无意义的语言

51单片机c语言 _nop_()是一个空指令?短时间延时的?空几个机器周期?

好像是三个。。。。

C语言中nop()函数是包含在哪个头文件中的?

nop() 这个函数不是C语言的库函数...?VB里面好像有...?C51单片机编程里面也有.

在单片机C语言中,extern void _nop_ (void)是什么意思??(void)是干什么的??

这个应该是一个延迟函数,_nop_的作用和汇编语言里NOP的作用差不多,都是单周期指令,如果是12M的时钟,一个_nop_延迟的时间大约是1us。函数名前面的void表示的是函数的返回值为空,函数名后面括号内的void表示函数的形参为空。

51单片机 c语言里 _nop_ 函数怎么用 具体一点 求高手指教

1、C语言中没有_nop_()函数,该函数是在51单片机中用的延时函数,延时一个指令周期。一般包含在 intrins.h 头文件当中。2、例如用6MHz的晶振,则如下for循环大约延时1秒。int i;for(i=0; i<6000000; i++) _nop_(); // 延时一个指令周期,相当于执行一条无意义的语言

如图,C语言题目,这儿的leap=1有什么用

这是个找质数的程序leap是个标志位,当for(i=2;i<=k;i++)循环到i>k,leap还是1这时就可以输出质数了。
 首页 上一页  1 2 3 4 5 6 7  下一页  尾页