1. 急!编写一段c语言程序,是关于歌曲排行系统的
编译能通过---------- 编译时把注释去掉
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct song{ //定义一个歌曲结构
int id; //歌曲号
char title[20]; //歌曲名
char singer[20]; //歌手名
};
typedef struct song SONG; //把结构命名为 SONG
int main( void )
{
SONG songlist[100]; //定义一个存储歌曲信息的列表,长100
int i=0,j;
int c;
clrscr();
while (i<=100) {
printf( "please enter the song's id, title and singer:\n" );
//输入歌曲号 然后空格 输入歌曲名 然后空格 输入歌手名 然后回车
scanf( "%d%s%s", &songlist[i].id, songlist[i].title, songlist[i].singer);
i++;
//每次输入完一条信息后,把列表中的歌曲信息全部打印出来看一下
printf("the songlist is below:\n\n");
for( j=0; j<=i; j++){
printf( "%d %s %s\n", songlist[j].id, songlist[j].title, songlist[j].singer );
}
printf("\n");
}
getch();
return 0;
}
2. 如何在c语言程序中添加背景音乐
用PlaySound 函数可以播放 .wav 格式音乐。x0dx0a例如 下面 播放 紫竹调.wav 格式音乐,它存放在 D:\\zzz\\zzd.wav x0dx0a其它音乐格式能不能播放,要试验一下才知道,也许不行,也许可以。x0dx0a#include
3. 如何用C语言编写音乐歌曲
貌似很抽象,,有相关的硬件配置不
4. 求: 用51单片机c语言操作使蜂鸣器奏出“祝你生日快乐”音乐的全部程序!
#include <reg51.h>
sbit speaker=P1^2;
unsigned char timer0h,timer0l,time;
//生日歌
code unsigned char sszymmh[]={5,1,1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4,
5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, 1,2,4,
5,1,1, 5,1,1, 5,2,2, 3,2,2, 1,2,2, 7,1,2, 6,1,2,
4,2,1, 4,2,1, 3,2,2, 1,2,2, 2,2,2, 1,2,4};
// 音阶频率表 高八位
code unsigned char FREQH[]={
0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,
0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i
0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,
0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,
} ;
// 音阶频率表 低八位
code unsigned char FREQL[]={
0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,
0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i
0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,
0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,
};
void delay(unsigned char t)
{
unsigned char t1;
unsigned long t2;
for(t1=0;t1<t;t1++)
{
for(t2=0;t2<8000;t2++)
{
;
}
}
TR0=0;
}
void t0int() interrupt 1
{
TR0=0;
speaker=!speaker;
TH0=timer0h;
TL0=timer0l;
TR0=1;
}
void song()
{
TH0=timer0h;
TL0=timer0l;
TR0=1;
delay(time);
}
void main(void)
{
unsigned char k,i;
TMOD=1; //置CT0定时工作方式1
EA=1;
ET0=1;//IE=0x82 //CPU开中断,CT0开中断
while(1)
{
i=0;
while(i<75){ //音乐数组长度 ,唱完从头再来
k=sszymmh[i]+7*sszymmh[i+1]-1;
timer0h=FREQH[k];
timer0l=FREQL[k];
time=sszymmh[i+2];
i=i+3;
song();
}
}
}
5. c语言课程设计论文
谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是“让我欢喜让我忧。”欢喜的是,C语言功能非常强大、应用广泛,一旦掌握了后,你就可以理直气壮地对他人说“我是电脑高手!”,而且以后若是再自学其他语言就显得轻而易举了。忧虑的是,C语言犹如“少林武功”一般博大精深,太难学了。其实就笔者认为C语言并非是“difficult(困难)”的,只要你能理清思路,掌握它的精髓,那么自学C语言是一件非常容易且又其乐无穷的事。今天本人就与大家一起谈谈如何学习C语言或者说学习C语言应从哪几方面着手。
了解一些基本知识
一.C语言的背景
就个人感触,无论学习哪门语言首先应该了解一下自己所学语言的背景,也可以说它的发展史。
C语言属于高级程序语言的一种,它的前身是“ALGOL”。其创始人是布朗·W·卡尼汉和丹尼斯·M·利奇。C语言问世时是带有很大的局限性,因为它只能用于UNIX系统上。然而随着科学技术的进步,计算机工业的发展,C语言逐渐脱离UNIX。1987年美国标准化协会制定了C语言的国际标准,简称“ANSI C”,从此以后它便成为一种广泛使用的程序语言。C语言的优点很多,主要的有如下四点:
1.兼备高级语言与低级语言的优点,属于一种中间语言。
2.它是一种结构化程序设计语言,非常适合结构化程序设计。
3.有较丰富的数据类型、运算符以及函数供以选用。
4.直接与内存打交道,使修改、编辑其他程序与文档变得轻松,简单。
二.二大语系二种不同的学习方法
其实高级程序语言分为两大语系。例如:C,C++(C语言的扩展),QBASIC,VB(BASIC的可视化),JAVAs cript,Js cript ,VBs cript,JAVA,ASP,FOXPRO,PERL等等。一路是以C为主的程序语言,例如:JAVAs cript,JAVA等,这类语言在函数的调用,程序语句的书写,循环的控制都极为相似。另一路是以BASIC为首的程序语言,例如:FOXPRO,VBs cript等,此类语言同样具有相似的函数调用,程序语句书写以及循环控制,但与C语系是不同的。因此若是您以前是从QBASIC起家的,那么在学习C语言前最好是先洗洗脑,千万不要把学习BASIC的方法以及思路用在C身上。
讲到这里,我想大家对C语言一定有了感性认识吧!下面让我们再升华一下,全方位亲密接触它。学习C语言必须从以下四点入手,也就是说,只要你能掌握这四点的内容,那么基本上就大功告成了。
亲密接触C语言
一.输入输出
C语言的输入输出是非常严格的,或许在其他程序语言中我们可以不关心这个问题,但在C语言中,我们必须要彻底了解它。由于篇幅有限,因此笔者不能详谈,有兴趣的朋友可以参考由着名程序语言教授谭浩强先生主编,由清华大学出版社出版的《C程序设计第二版》。不过这里笔者还是有几点要简单的谈一下。
1.二维浮点数数组的输入
二维浮点数数组的输入(即:通过键盘给二维浮点数数组赋值)在很多专业书中都没有详细讲过这个问题。在给二维浮点数数组赋值时一定要先声明一个变量,接着把数值赋予这个变量,最后把变量数值赋予二维浮点数数组赋值。
2.注意输出格式中“%”后的字符
C语言的输出说复杂不复杂,因为常用的都很简单。可说不复杂也未必,记得曾在一次等级考前辅导我们C语言的教授讲道:“如果C语言要考得很难的话,根本不用考什么指针,只要专考输出格式,我想百分之九十九的学生都不及格。”当时我们无不认同。从这则事例中可以看出C语言的输出格式之复杂程度。因此大家在学习它时千万要学会辨别输出格式中“%”后的字符,每个字符都有其意义,也都有其作用。
二.优先级
说道优先级,有很多朋友都不是很了解或说很模糊。为此笔者想先通过一个例子让各位有个概念。什么叫优先级?比方说,我们在公交车终点站排座队时总会遇到70岁以上的老人不需要排队就能上车的情景,这就是优先级的涵义。C程序在运行时也象排队坐车一样,首先照顾那些优先级高的运算符,若是优先级相同,那么就象遇到两位(或两位以上)70岁以上的老人那样,让他们依次上车。但是C语言中的优先级的运算并不是千篇一律的,只能说是在大多数情况下,有些运算符的优先级有其自己的特点,因此这点大家要注意。例如条件表达式:条件?结果1:结果2,这种表达式很多朋友都知道,它的作用与IF…ELSE…条件判断语句很雷同,它运算时的优先级就不是按照C语言的规则来完成的。所以说对于优先级各位编程爱好者一定灵活掌握,不要死记硬背。
三.指针
就个人认为,C语言中的指针是最有特色的,当然也是最难学的。指针说穿了,其实是变量的一种表现形式,只不过这种变量记载的不是数值而是地址。就象一个人可以用姓名来表示自己,也可以用身份证号码来表示自己一样。笔者涉足编程已经有三年多了,在这期间曾经收到过很多网友的电子邮件询问学习指针的方法。就本人感触,学习指针最好是先学些计算机硬件工作的原理,例如:直接寻址,间接寻址等,只有了解了这些内容以后,你再学指针就比较容易理会,毕竟C语言是一门介于机器语言与高级语言中间的语言,没有一些硬件工作知识是很难领悟它的真谛的。然而事事并非绝对,如果你没有这些知识也不要紧,只要清楚知道以下笔者总结的二点再加上多练习便可:
1.指针是地址变量:它的值有两种:其一是地址,其二是内容。不同的表达方式可以取不同的值,这有点象一个家庭地址在不同的场合标识的人物也不同。例如:父母亲在他们的单位所登记的家庭地址就代表他们自己,而你在学校中登记的同样的家庭地址就代表你自己。
2.指针是可以运算的,它的运算法则与变量是一致的。
另外,在编写一个程序时,除非万不得已,一般不要使用指针变量。因为指针是比较复杂的,用不好就“当机”。所以笔者建议各位对于指针只要能看懂就行,当然如果你是准备参加考试的就另当别论了。
四.函数
虽说很多程序语言都有函数这一内容,但笔者觉得C语言的函数是最有魅力的。如果你能完全掌握C语言的函数,那么学习C++就不成问题了(C++是一门建立在C语言上,但又不同于C语言的高级程序语言,它增添了很多函数。)。学习函数的方法是比较简单的,只有两个字“牢记”,即:牢记函数的功能,牢记函数的用途以及如何输入输出。有些朋友认为,程序语言中的函数没有多大用处,其实这并不正确,函数从本质上讲是一段通用程序,用它可以帮助我们节约很多编程的时间,一个聪明的编程者在编写程序前往往总是先找自己所编写的程序中有多少是可以用函数来代替的。笔者曾经作过一个比较字符串的实验,用C语言中的strcmp()函数只要一句话,而自己编写的话30句话都摆不平,可想而知函数是多么实用呀!
6. 你能用C语言写出一首歌吗
/*本文提供一个C语言音乐的音阶?音名及频率速查程序?运行时,
键入音阶序号(0~6),屏幕即显示该音阶之下的音名及频率对照表
,然后,第一遍演奏七个基本音符C?D?E?F?G?A?B,第二遍演奏
包含升降音在内的十二个音符C?C+?D?D+?E?F?F+?G?G+?
A?A+?B,每演奏一个音符均有图标同步指示?本程序既可作为C语
言音乐编程的辅助工具,也对一般发声采集频率数据具有参考作用?
程序在Turbo C2.0下通过*/
#include <conio.h>
#include <dos.h>
int main()
{
int i, k;
long j;
static char m[] = "C C+ D D+ E F F+ G G+ A A+ B";
static unsigned n[][12] =
{
{65, 69, 73, 78, 82, 87, 92, 98, 103, 110, 116, 123},
{131, 139, 147, 156, 165, 175, 185, 196, 208, 220, 233, 247},
{262, 277, 294, 311, 330, 349, 370, 392, 415, 440, 466, 494},
{523, 554, 587, 622, 659, 698, 740, 784, 831, 880, 932, 988},
{1046, 1109, 1175, 1244, 1318, 1397, 1480, 1568, 1661, 1760, 1865, 1976},
{2039, 2160, 2288, 2422, 2565, 2716, 2877, 3047, 3226, 3417, 3618, 3832},
{4058, 4297, 4551, 4819, 5104, 5405, 5724, 6061, 6419, 6798, 7166, 7625}
};
redo1: clrscr();
gotoxy(22, 13);
printf("请键入音阶序号(0~ 6,-1退出):");
scanf("%d", &k);
if (k < - 1 || k > 6)
goto redo1;
while (k != - 1)
{
clrscr();
gotoxy(26, 10);
printf("C语言音名及频率对照表(音阶%d)", k);
gotoxy(8, 12);
printf("音名 %s", m);
gotoxy(8, 13);
printf("频率");
for (i = 0; i <= 11; i++)
{
gotoxy(14+5 * i, 13);
printf("%d", n[k][i]);
}
for (i = 0; i < 11; i += 2)
{
if (i == 6)
i--;
sound(n[k][i]);
gotoxy(14+5 * i, 15);
puts("↑");
for (j = 0; j < 1800000; j++)
;
}
for (i = 0; i <= 11; i++)
{
sound(n[k][i]);
gotoxy(14+5 * i, 16);
puts("↑");
for (j = 0; j < 900000; j++)
;
}
nosound();
getch();
redo2: clrscr();
gotoxy(22, 13);
printf("请键入音阶序号0~ 6,-1~ 退出):");
scanf("%d", &k);
if (k <= 1 || k > 6)
goto redo2;
}
}
//***********************************************************************************
//***********************************************************************************
/*本文提供一个C语言音乐的音阶?音名及频率速查程序?运行时,
键入音阶序号(0~6),屏幕即显示该音阶之下的音名及频率对照表
,然后,第一遍演奏七个基本音符C?D?E?F?G?A?B,第二遍演奏
包含升降音在内的十二个音符C?C+?D?D+?E?F?F+?G?G+?
A?A+?B,每演奏一个音符均有图标同步指示?本程序既可作为C语
言音乐编程的辅助工具,也对一般发声采集频率数据具有参考作用?
程序在Turbo C2.0下通过*/
#include <conio.h>
#include <dos.h>
int main()
{
int i, k;
long j;
static char m[] = "C C+ D D+ E F F+ G G+ A A+ B";
static unsigned n[][12] =
{
{65, 69, 73, 78, 82, 87, 92, 98, 103, 110, 116, 123},
{131, 139, 147, 156, 165, 175, 185, 196, 208, 220, 233, 247},
{262, 277, 294, 311, 330, 349, 370, 392, 415, 440, 466, 494},
{523, 554, 587, 622, 659, 698, 740, 784, 831, 880, 932, 988},
{1046, 1109, 1175, 1244, 1318, 1397, 1480, 1568, 1661, 1760, 1865, 1976},
{2039, 2160, 2288, 2422, 2565, 2716, 2877, 3047, 3226, 3417, 3618, 3832},
{4058, 4297, 4551, 4819, 5104, 5405, 5724, 6061, 6419, 6798, 7166, 7625}
};
redo1: clrscr();
gotoxy(22, 13);
printf("请键入音阶序号(0~ 6,-1退出):");
scanf("%d", &k);
if (k < - 1 || k > 6)
goto redo1;
while (k != - 1)
{
clrscr();
gotoxy(26, 10);
printf("C语言音名及频率对照表(音阶%d)", k);
gotoxy(8, 12);
printf("音名 %s", m);
gotoxy(8, 13);
printf("频率");
for (i = 0; i <= 11; i++)
{
gotoxy(14+5 * i, 13);
printf("%d", n[k][i]);
}
for (i = 0; i < 11; i += 2)
{
if (i == 6)
i--;
sound(n[k][i]);
gotoxy(14+5 * i, 15);
puts("↑");
for (j = 0; j < 1800000; j++)
;
}
for (i = 0; i <= 11; i++)
{
sound(n[k][i]);
gotoxy(14+5 * i, 16);
puts("↑");
for (j = 0; j < 900000; j++)
;
}
nosound();
getch();
redo2: clrscr();
gotoxy(22, 13);
printf("请键入音阶序号0~ 6,-1~ 退出):");
scanf("%d", &k);
if (k <= 1 || k > 6)
goto redo2;
}
}
另外还有一个恶搞版的
===== 双截棍(C语言版) =====
楼主hongyou(鸿猷)2002-04-01 01:01:33 在 扩充话题 / 灌水乐园 提问
软考室的烟味弥漫 坐满了程序员
室里面的监考官 系分 已三年
出上午试题的老师 练CPU 耍单片机
硬件功夫最擅长 还会逻辑门三极管
他们学生我习惯 从小就耳濡目染
什么软件跟网络我都耍的有摸有样
什么语言最喜欢 C++面向对象
想要去英伦美帝 学图灵诺伊曼
怎么编 怎么编 离散数学是关键
怎么编 怎么编 数值分析也较难
怎么编 怎么编 数据结构最重要
算法不学莫后悔 死的难看
一段代码写好 一个左子树 右子树
一句不会递归有危险 不停调用
一个优秀的库函 一用好多年 拷贝好带身边
怎么编 怎么编 我学会动态规划
怎么编怎么编 分支限界的难关
怎么编怎么编 已被我一脚踢开
哼 快使用C语言 哼哼哈兮
快使用C语言 哼哼哈兮
编程之人切记 NP无敌
是谁在练汇编 背指令集
快使用C语言 哼哼哈兮
快使用C语言 哼哼哈兮
如果我会分治 快速解题
熟用堆栈队列 系统分析
快使用C语言 哼
我用VB描述 哼
如果我的答案能解决您的问题,请采纳为最佳答案,谢谢!