A. c语言如何一次声明a1 到 a10
在计算机或者现实中,我们每做一件事情都有做这件事情的目的,不是盲目的去干。
这里一次声明a1到a10的目的何在,在什么地方使用,还是就是简单的看语法,如果简单的看语法就完全没有必要了,如果有作用最好定义一个结构体,这样这些变量的地址空间在一起便于程序运行。或者定义一个数组存储这些变量的值。
B. c语言基础的一道题
int i,a[i],b[i];
其中没有对数组a和b的大小定义。肯定编译不了
要a[10],b[10];
#include<stdio.h>
void main()
{
int i,a[10],b[10];
printf("请分别输入a1,a2,...a10的值\n");
for (i=0;i<=9;i++)//从零开始而不是从1a[0]才是第一个
scanf("%d",&a[i]);
for(i=0;i<=9;i++)
printf("%d\n",a[i]);//要用循环来打
for (i=0;i<=9;i++){
b[i]=a[(2*i-1)]/2+a[(2*i)]/2;//这个肯定有问题了2*超过数组的界限了,而且意思也不对,不知道你要求什么。楼主把功能告诉我再帮你写
for(i=0;i<=9;i++)
printf("%d",b[i]);}
}
C. C语言编程声音的问题
在TC2.0或者VC++6.0下运行下面程序,就是一个MP3歌,但我忘记了这首歌的名字,你先听听吧!
做个mp3播放器
#include<time.h>
#include<dos.h>
#define N1 64
#define N2 32
#define N4 16
#define N8 8
#define N16 4
#define END 0
enum NOTES
{
C10=131,D10=147,E10=165,F10=175,G10=196,A10=220,B10=247,
C0=262,D0=296,E0=330,F0=349,G0=392,A0=440,B0=494,
C1=525,D1=587,E1=659,F1=698,G1=784,A1=880,B1=988,
C2=1047,D2=1175,E2=1319,F2=1397,G2=1568,A2=1760,B2=1796
}
song[]={
D0,N4,E0,N8,C0,N4,A10,N4,G10,N8,E10,N8,G10,N8,A10,
N8,C0,N2,A10,N4,A10,N8,C0,N8,G10,N8,A0,N8,E0,N8,G0,N8,
D0,N2,E0,N4,D0,N8,E0,N8,G0,N4,E0,N4,G10,N8,E10,N8,G10,
N8,A10,N8,C0,N2,A10,N4,A10,N8,C0,N8,A10,N8,A10,N8,D10,
N8,E10,N8,G10,N2,D0,N4,D0,N4,G0,N4,A0,N8,G0,N8,F0,N2,G0,
N2,A0,N4,G0,N8,E0,N8,D0,N8,E0,N8,C0,N8,A10,N8,D0,N2,E0,
N4,G0,N8,E0,N8,G0,N4,E0,N4,G10,N8,E10,N8,A10,N8,
C0,N4,A10,N4,A10,N8,C0,N8,D0,N8,A10,N8,C0,N8,E0,N8,D0,
N1,END,END};
main()
{
int note=0;
int fre,r,control;
clock_t goal;
printf("please leason song of kewang:\n");
while (song[note]!=0)
{
fre=song[note];
r=song[note+1];
if (kbhit())
break;
if (fre)
{
outportb(0x43,0xb6);
fre=(unsigned)(1193180L/fre);
outportb(0x42,(char) fre);
outportb(0x42,(char) (fre>>8));
control=inportb(0x61);
outportb(0x61,(control)|0x3);
}
goal=(clock_t)r+clock();
while(goal>clock());
if (fre)
outportb(0x61,control);
goal=(clock_t)0;
note=note+2;
}
}
看看满不满意!
D. 在学C语言我这段c语言怎么错了
/**这段,数组下标从0开始,应为x[0]=a1,...x[9]=a10;
x[1]=a1;
x[2]=a2;
x[3]=a3;
x[4]=a4;
x[5]=a5;
x[6]=a6;
x[7]=a7;
x[8]=a8;
x[9]=a9;
x[10]=a10;
*/
x[0]=a1;
x[1]=a2;
x[2]=a3;
x[3]=a4;
x[4]=a5;
x[5]=a6;
x[6]=a7;
x[7]=a8;
x[8]=a9;
x[9]=a10;
/**这段错误
if(n=0;n++;n<10;);//不应该用if,这里应该是循环
printf("%c" ,x[10]);// 应该写在引号里面
*/
for(n=0;n<10;n++)
printf("%c ",x[n]);
E. 几道C语言问题!!!
1.A
if (a=0)-->不成立. 因为a=0是赋值,相当于if(0)
if(a>0)-->不成立;所以执行y+=y
-->结果:y=20
***********************************************
2.有两个选择
D:有语法错误,因为while(!x)后缺分号.
若不是上面情况则选B.原因是:
x=-1*x--->x=-1
!x-->!(-1)-->!(true)-->false
结果:退出循环.仅循环一次.
***********************************************
3.A
该题关键是判断语句"i=10&&x>0".
i=10&&x>0-->i=(10&&x>0)-->i=(true && ture)-->i=true-->true
因此永远循环.
***********************************************
4.C
第1次:i=0-->判断成立(0<3)-->i=1(i++<3,指先比较i<3,再i加1)
第2次:判断成立(1<3)-->i=2
第3次:判断成立(2<3)-->i=3
第4次:判断不成立(3<3)-->i=4
退出
结果:i=4
***********************************************
5.没有合适答案.
执行后,y=1.原因如下:
第1次:y=1-->判断成立(1<=50)
-->if(x>=0)-->条件成立-->break-->退出循环(并不进行y++操作)
结果:y=1
***********************************************
6.C
a(a(i))-->a(a(10))-->a(9)-->6
数组第1个元素为a(0)=1,a(1)=4,...
***********************************************
7.D
i-->1字节
c-->2字节
a-->4字节
1+2+4=7
结果:字节总数为7字节.
***********************************************
8.B
应该:stu是用户定义的结构类型,而不是struc stu.
***********************************************
9.C
C语言中规定不能进行指针"加"操作.
***********************************************
10.D
第1次循环:
s指向"ABCD"中"A"位置,p指向"ABCD"中"B"位置.
printf输出"B"开始的字符串.
第2次循环:
p加1-->指向"ABCD"中"C"位置,判断成立(s指向"A"位置).
printf输出"C"开始的字符串.
第3次循环:
p加1-->指向"ABCD"中"D"位置,判断成立.
printf输出"D"开始的字符串.
第4次循环:
p加1-->指向"ABCD"中"D"后面,与s相关4个地址位,条件不成立.
退出.
输出结果:
BCD
CD
D
F. c语言语法问题
#include<stdio.h>
#include<stdlib.h>
intmain()
{
inta<:2:>;
a<:1:>=55555;
printf("%d",a<:1:>);
}
a<:0:>实际上就是a[0]
同理
a<:1:> 实际上就是a[1]
你可以参考c语言的制定,比如c99标准指定。
实际上<:和:>是在替换某些键盘上没有[和]。。。
如果键盘有[和]的话,实际上<:这些东西就是搞怪了。。故作玄虚让人看不懂。
G. C语言中 enmu枚举时 可否分成多段表示 比如 0-5,8-12 ,22-25
枚举类型 可以设置其中的变量值 然后之后的依次递增 所以比如 a0....a5 ,a6....a10 a0=0 ,a6=8
H. c语言请教,谢谢!
a【0】【4】是成立的 因为下标是冲0开始的 5个人 就是0 1 2 3 4
正确理解 a00 a01 a02 a03 a04
a10 a11 a12 a13 a14
a20 a21 a22 a23 a24
因为 他是求的那一颗的平均分 你得先求总分 a0表示的那一颗 后面的0 1 2 3 4 表示5个人
执行过程是 a00 a01 a02 a03 a04
分数输入顺序是正确的
可以在vc上运行的 要加 #include<stdio.h>
的确要第一个for弄完才运行第二个for 如果 你的第一个for后面加一个大括号
for(i=0;i<=9;i++)
{
a[i]=i; for(i=9;i>=0;i--) printf("%d ",a[i]);
}
这样的话 就是要第二个for 不成立后 跳出循环 在判断第一个for是否成立 如果成立 继续第二个循环 如此 知道第一个for循环不成立为止
不懂在追问吧
I. c语言中s=average( a10)为什么是 s
s只是变量名,自定义变量的时候起的名字,只要符合命名规则,起什么名字都行。
average这是一个函数名,从代码看s是用来接收函数average返回值的。
J. C语言编程
不用链表也行
好久不用c编程了,接受键盘输入数字的函数、标准的c程序格式什么的都忘了,自己去翻翻书吧。
这个还是比较简单的,说个思路吧
includ ....
main
{
建立一个十一个数的数组从a0到a10
两个变量b,n
从键盘接受输入10个数字,并分别存入a0到a9(这个书上有范本)
将a0到a9排序
再从键盘接受一个数字,存入a10
for(i=1,i=i+1,i<10)
{
用a10依次与a[i]做比较
如果a10>=a[i]
则 goto move(如果不想用goto的话,循环用while)
}
move for(j=n,j++,j<=10)
{
b=a[j]
a[j]=a10
a[j+1]=a[j]
}
}
基本ok吧,对不起了,只是大体思路
工作几年了,标准的c语言实在想不起来了
当然如果能用链表,那就更好了,其实作用是一样的,链表更锻炼编程能力罢了。