4、设计一个函数,当给定一个整数后,能得到该数的补码(应考虑该整数是正数或负数)。 编写一个判断奇偶数的函数,要求在主函数中输入一个整数,通过被...

\u7f16\u5199\u4e00C\u7a0b\u5e8f,\u5176\u529f\u80fd\u662f:\u5f53\u8f93\u5165\u4e00\u4e2a\u6574\u6570\u540e,\u80fd\u5f97\u5230\u8be5\u6570\u7684\u8865\u7801\u5f62\u5f0f\u3002

\u697c\u4e3b\u7684\u9898\u76ee\u8bf4\uff1a\u300a\u8f93\u5165\u4e00\u4e2a\u6574\u6570...\u300b\uff0c
\u8fd9\u4e2a\u4e0d\u5bf9\u5427\uff1f

\u770b\u4e0b\u9762\u7684\u610f\u601d\uff0c\u5e94\u8be5\u662f\u300a\u8f93\u5165\u5b57\u7b26\u4e32\u300b\uff0c\u518d\u8f6c\u6362\u6210\u6570\u5b57\u5427\uff1f

\u5c31\u8bf4\uff1a\u7f16\u4e00\u4e2a\u7a0b\u5e8f\uff0c\u66ff\u4ee3 scanf("%d", &x) \u51fd\u6570\uff0c\u4e0d\u5c31\u5b8c\u4e86\uff01

#include
int even(int x){
if(x%2==0)return 1;
else return 0;
}
void main(){
int i;
scanf("%d",&i);
if(even(i)==0)printf("\u5947\u6570")\uff1b
else printf("\u5076\u6570");


\u6269\u5c55\u8d44\u6599\uff1a

\u5728C\u8bed\u8a00\u4e2d\uff0c\u5b50\u7a0b\u5e8f\u7684\u4f5c\u7528\u662f\u7531\u4e00\u4e2a\u4e3b\u51fd\u6570\u548c\u82e5\u5e72\u4e2a\u51fd\u6570\u6784\u6210\u3002\u7531\u4e3b\u51fd\u6570\u8c03\u7528\u5176\u4ed6\u51fd\u6570\uff0c\u5176\u4ed6\u51fd\u6570\u4e5f\u53ef\u4ee5\u4e92\u76f8\u8c03\u7528\u3002\u540c\u4e00\u4e2a\u51fd\u6570\u53ef\u4ee5\u88ab\u4e00\u4e2a\u6216\u591a\u4e2a\u51fd\u6570\u8c03\u7528\u4efb\u610f\u591a\u6b21\u3002\u5728\u7a0b\u5e8f\u8bbe\u8ba1\u4e2d\uff0c\u5e38\u5c06\u4e00\u4e9b\u5e38\u7528\u7684\u529f\u80fd\u6a21\u5757\u7f16\u5199\u6210\u51fd\u6570\uff0c\u653e\u5728\u51fd\u6570\u5e93\u4e2d\u4f9b\u516c\u5171\u9009\u7528\u3002\u8981\u5584\u4e8e\u5229\u7528\u51fd\u6570\uff0c\u4ee5\u51cf\u5c11\u91cd\u590d\u7f16\u5199\u7a0b\u5e8f\u6bb5\u7684\u5de5\u4f5c\u91cf\u3002
\u5982\u679c\u6ca1\u6709\u8fd4\u56de\u503c\u7c7b\u578b\u540d\u4e3a"void", \u6574\u6570\u7c7b\u578bint \u7c7b\u578b\u8fd4\u56de\u503c\u4e3a\u6574\u6570\u7c7b\u578bint,\u4ee5\u6b64\u7c7b\u63a8\u2026\u2026
\u7c7b\u578b\u540d\u6709\uff1avoid int long float int* long* float* \u2026\u2026
C++\u4e2d\u51fd\u6570\u7684\u8c03\u7528\uff1a\u51fd\u6570\u5fc5\u987b\u58f0\u660e\u540e\u624d\u53ef\u4ee5\u88ab\u8c03\u7528\u3002\u8c03\u7528\u683c\u5f0f\u4e3a\uff1a\u51fd\u6570\u540d\uff08\u5b9e\u53c2\uff09
\u8c03\u7528\u65f6\u51fd\u6570\u540d\u540e\u7684\u5c0f\u62ec\u53f7\u4e2d\u7684\u5b9e\u53c2\u5fc5\u987b\u548c\u58f0\u660e\u51fd\u6570\u65f6\u7684\u51fd\u6570\u62ec\u53f7\u4e2d\u7684\u5f62\u53c2\u4e2a\u6570\u76f8\u540c\u3002
\u6709\u8fd4\u56de\u503c\u7684\u51fd\u6570\u53ef\u4ee5\u8fdb\u884c\u8ba1\u7b97\uff0c\u4e5f\u53ef\u4ee5\u505a\u4e3a\u53f3\u503c\u8fdb\u884c\u8d4b\u503c\u3002
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1-\u5947\u5076\u6027
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1-\u51fd\u6570

实验一 C语言程序初步
[实验目的和要求]
1、 熟悉C语言运行环境。
2、 掌握C语言程序的书写格式和C语言程序的结构。
3、 掌握C语言上机步骤,了解运行一个C程序的方法。
4、 本实验可在学习完教材第一章后进行。
[实验内容和步骤]
1、输入一个简单的C语言程序:输入矩形的两条边,求矩形的面积。

[分析与讨论]
1、记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论对策成功或失败的原因。
2、总结C程序的结构和书写规则。

实验二 数据类型、运算符和表达式
[实验目的]
1.熟练表达式的表示方法
2.了解表达式的运行结果
3.了解C语言中数据类型的意义
[实验内容和步骤]
1. 用printf函数来输入表达式运行结果
2. 程序试图计算由键盘输入的任意两个整数的平均值:
[问题讨论]
1.“=”和“==”有什么区别?
2.“&”和“&&”、“|”和“||”有什么区别?
3. 如何正确地选用数据类型?

实验三 选择结构
[实验目的]
1、了解条件与程序流程的关系
2、了解用不同的数据使程序的流程覆盖不同的语句、分支和路径。
[实验内容和步骤]
1、题目
有如下程序段:
{……
if (a>1&&b= =0) x=x/a;
if(a==2||x>1) x=x+1;
}
为了更容易明白程序的逻辑结构,要求用流程图来加以描述。
要求增加一些输入语句和输出语句,以便使上述程序能在不同的a,b和x值下运行,并且能观察程序流程经过(覆盖)了哪些语句、哪些分支及哪些路径。

[分析讨论]
(1) 用哪一组数据就可使程序中的每个处理语句都执行一次?为了找出程序中各条处理语句中的错误,应该使用什么样的数据对程序进行测试?请上机验证自己的结论。
(2) 用哪两组数据就可以使程序段中的每个分支都运行一次?这种情形与上面的讨论有何不同?如果为了找出程序中积压分支中的错误,应该使用什么样的数据对程序进行测试?请上机验证自己的结论。
(3)用哪两组数据就可以把判定框中的每个条件运算都进行一次?如果为了测试出判定条件中的错误,应使用哪些数据对程序进行测试?请上机验证自己的结论。
(4)用哪四组数据才可以把各种条件的组合都检测一遍? 如果为了测试各种条件的组合的情形,应该使用什么样的测试数据?请上机验证自己的结论。
(5)用哪四组数据才可以把起始到终止的各条路径都覆盖一次?如果为了测试出程序在不同路径下的错误,应该使用什么样的测试数据?请上机验证自己的结论。

实验四 循环结构(1)
[目的和要求]
1、掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数。
2、了解条件型循环结构的基本测试方法。
[实验内容与步骤]
1、下面是一个计算e的近似值(使误差小于给定的δ)的程序。
main()
{double e=1.0,x=1.0,y,detax;
int i=1;
printf(“\n please input enter a error:”);
scanf(“%lf”,&detax);
y=1/x;
while(y>=detax)
{
x=x*I;
y=1/x;
e=e+y;
++i;
}
printf(“%12.10lf”,e);
}
[分析讨论]
(1)、阅读上面的程序,写出程序所依据的计算公式。
(2)、当输入的detax各是什么值时,能分别使程序按下面的要求运行:
.不进入循环;
.只循环一次;
.只循环两次;
.进入死循环(程序将永远循环下去)。
为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句?
(3)、原程序中while语句中的y>=detax,分别换成y>detax,y=detax,y<detax,y<=detax,观察程序运行将会有什么变化。
假如不知道机器内的程序中的各语句实际上是什么,分别输入什么样的detax来测试出while语句的循环条件写错了。
(4)、把原程序中while语句之前的y=1/x语句去掉,观察程序的运行将会发生什么样的变化。
假如不知道机器内的程序实际上是怎么写的,输入什么样的detax就能测试出少了上述这条语句。
(5)、若把原程序中的++i换成i++,观察程序的运行发生了什么变化?
假如不知道这条语句到底是怎么写的,输入什么样的detax就能测试出这条语句写错了.
(6)、把原程序中的while结构改写成do—while结构,再分别按上述的(2)、(3)两步进行实验。

实验五 循环结构(2)
[ 目的和要求]
1、 掌握如何正确地控制计数型循环结构的次数
2、 了解对计数型循环结构进行测试的基本方法
3、 了解在嵌套循环结构中,提高程序效率的方法
4、 本实验应在学习了教材第3.3.4进行
[实验内容与步骤]
实验题目:下面是一个循环结构 的C程序。
main()
{
int i ,j;
long sum=0;
for(i=1,i<=20,i++)
for(j=1;j<=3;j++)
sum=sum+(i+1)*(i+1)*(j+2)
printf(“sum is :%d\n”,sum);
}
[ 分析讨论]
(1) 将上述程序中的和分别做什么样修改,能使程序按如下要求运行:
.不循环;
.外循环1次,不进入内循环;
.外循环,内循环各1次;
.外循环1次,内循环2次;
.外循环 2次, 内循环1次;
.外循环19次,内循环3次;
.外循环20次,内循环2次;
.外循环21次,内循环3次。
(2) 试修改程序,以便能知道控制表达式
i=1;j<=20;i++

j=1;j<3;j+=
各执行了多少次?
(3)内循环与外循环的控制表达式进行对换,观察程序的执行结果有无变化,并且观
察对换后的外循环与内循环控制表达式执行的总次数有无变化?
(4)将(3)中程序写为
main()
{
int i,j,k;
long sum=0;
for (j=1.j<=3.j++)
{
k=j+2;
for(i=1;i<=20;i++)
sum=sum+(i+1)*(i+1)**k;
}
printf(“sum is :%d\n”,sum);
}
观察程序的执行结果有无变化?
(5)将(3)中程序改写为
main()
{
int I,j,m,n;
long sum=0;
for(j=1;j<=3;j++)
{
m=j+2;
for(I=1;j<=20;I++)
{
n=I+1;
sum=sum+m*m*k;
}
}
printf(“sum is :%d\n”,sum);
}
观察程序的执行结果有无变化?
(1)

实验六 函数(1)
[实验目的]
1.理解和掌握多模块的程序设计与调试的方法。
2.掌握函数的定义和调用的方法。
3.学会使用递归方法进行程序设计。
[实验内容和步骤]
1. 编写一个函数,判断一个数是不是素数。在主函数中输入一个整数,输出是否是素数的信息。
实验步骤与要求:
(1) 编写一个函数prime(n),返回给定整数n是否为素数。
(2) 编写一个主函数,输入一个整数,调用(1)中的函数,判断此整数是否为素数,并输出结果。
(3) 对于属于多函数程序,可以采用每个函数分别进行编辑、编译的方法,然后再连接、运行。如果编译有错时,可分别修改,这样便于调试。实验2和实验3也可以使用这样的调试方法。
2. 用梯形法求函数的定积分。
实验步骤与要求:
(1) 编制一个函数sab(a,b,n),其功能是求函数f(x)在[a,b]上的定积分,其中n为区间[a,b]的等分数。要求该函数在一个独立的文件中。
(2) 编制一个主函数以及计算被积函数值的函数f(x),在主函数中调用(1)中的函数计算并输出下列积分值。要求主函数与函数f(x)在同一个文件中。
(3) 编制另一个主函数以及计算被积函数值的函数f(x),在主函数中调用(1)中的函数计算并输出下列积分值。要求主函数与函数f(x)在同一个文件中。
说明:
用梯形法求定积分,梯形公式为
s=h[f(a)+f(b)]/2+hf(a+kh)其中,h=(b-a)/n
3. 用递归方法编写程序,求n阶勒让德多项式的值,递归公式为
1 (n=0)
pn(x)=x (n=1)
((2n-1)xpn-1(x)-(n-1)pn-2(x))/n (n>1)

[ 分析讨论]
1. 小结函数的定义及调用方法。
2. 小结函数中形参和实参的结合规则。

实验七 函数(2)
[目的与要求]
1、 掌握C语言函数定义及调用的规则。
2、 理解参数传递的过程。
[ 实验内容与步骤]
1、 上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。
main()
{
int,y;
printf(“%d\n”,sum(x+y));
int sum(a,b)
{
int a,b;
return(a+b);
}
}
2、 编写并调试一个求(n为整数)的递归函数,希望能在程序运行过程中动态地显示递归函数被调用的轨迹。
[分析讨论]
1、 针对以上实验内容写出相应的参数传递过程并分析结果。
2、 讨论参数的传递的几种形式。

实验八 数组(1)
[实验目的]
掌握有关数组和字符串的程序设计方法。
[实验内容和步骤]
1 已知一组数据如下:
6,3,42,23,35,71,98,67,56,38
编写程序,把它们按从小到大的次序排列起来。
程序如下:
/*EX3-1*/
# include<stdio.h>
# define N 10
main()
{
int a[N]={6, 3, 42, 23, 35, 71, 98, 67, 56, 38};
int i, j, t;
printf(“The array before sorted:”);
for(i=0; i<N; i++)
printf(“%4d”, a[i]);
for(i=0; i<9; i++)
{
for(j=i+1; j<10; j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(i=0; i<N; i++)
printf(“%4d”, a[i]);
return o;
}
[ 分析讨论]
1. 定义数组时下标的用法和注意事项.
2.什么情况下出现下标越界.

 实验九 数组(2)
[目的和要求]
1、掌握数组定义的规则。
2、掌握C语言数组的基本用法。
[实验内容与步骤]
1、编写程序,测试下列数组的定义方式是否正确
(1) main()
{
int n;
scanf(“%d”,&n);
int a[n];
……
}
(2) main()
{
const int n=10;
int a[n];

}
(3) #include <stdio.h>
#define M 10
main()
{
int a[M];

}
(4) main()
{
int a[2+2*4];

}
(5) #include <stdio.h>
#define M 2
#define N 8
main()
{ int a[M+N];

}
通过这一实验,可以说明什么问题?
2、运行下面的C程序,根据运行结果,可以说明什么?
main( )
{ int num[5]={1,2,3,4,5};
inti i;
for(i=0;i<=5;i++)
printf(“%d”,num[i]);
}
3、操作符&用以求一个变量的地址,这在函数scanf中已经使用过了。现在要你设计一个程序,返回一个3 * 5 的二维数组各元素的地址,并由此说明二维数组中各元素是按什么顺序存诸的。
4、为一个起泡排序程序设计测试用例,并测试之。

[分析讨论]
通过实验,分析定义与引用数组的区别。

实验十 指 针 (1)
[目的和要求]
1. 熟悉指针的正确用法。
[实验内容和步骤]
1、指出下面程序错误的原因。
main( )
{
int x=10,y=5,*px,*py;
px=py;
px=&x;
py=&y;
printf(“*px=%d,*py=%d,*px,*py);
}

2.下面的程序能获得上述运行结果吗?
main()
{
char *S=”COMPUTER”;
char c;
printf(“which style you want to \n”);
printf(“capital (c) or uncapital(u);”);
c=getchar();
if(c=’c’)
put(s);
else {
s=”computer”;
puts(s);
}
}
分析出错原因。
3.设计一个C程序,用以测试下列各表达式的运算。
(1) y=*px++
(2) y=*++py
(3) y=(*py)++
(4) y=--*ppx++
[分析讨论]
数组与指针的联系。

实验十一 指针(二)
[目的和要求]
1、了解指针参数的特殊性。
2、掌握函数、指针、数组的用法。
[实验内容与步骤]
1、想使指针变量pt1指向a 和b 中的大者,pt2指向小者,以下程序能否实现此目的?
swap(int *p1,int *p2)
{
int *p;
p=p1;p1=p2;p2=p;
}
main()
{
int a,b;
scanf(“%d,%d”,&a,&b);
pt1=&a;pt2=&b;
if(a<b)swap(pt1.pt2);
printf(“%d,%d\n”,*pt1,*pt2);
}
上机调试此程序。如果不能实现题目要求,指出原因,并修改之。
2、 下面的程序。注意其中的复杂声明语句;
int (*function[4])();
和各标记符的含义,并记录执行结果。
main()
{
int fun1();
int fun2();
int fun3();
int fun4();
int (*function[4])();
int a=10,b=5,i;
function[0]=fun1;
function[1]=fun2;
function[2]=fun3;
function[3]=fun4;
for(I=0;I<4;i++)
printf(“fun no.%d->%d\n”,i+1,execute(a,b,function[i]));
}
execute(int x,int y,int *fun())
{
return(*fun)(x,y);}
fun1(int x, int y)
{
return(x+y);}
fun2(int x,int y)
{
return(x-y);}
fun3(int x,int y)
{
return(x*y);}
fun4(int x,int y)
{
return(x/y);}

[分析讨论]
指针、数组、函数的联系。

实验十二 有关文件的程序设计
[实验目的]
1. 掌握文件建立的方法。
2. 掌握包含文件操作的程序设计和调试方法。
[实验内容和步骤 ]
1 建立一个磁盘文件,其内容是0~90°之间每隔5°的正弦值。
程序如下:
//EX8-1
#include<iostream.h>
#include<fstream.h>
#include<math.h>
#define PI 3.14159
main()
{
float S[19];
int i, a;
ofstream out(“fsin.bny”);
if(!out)
{
cout<<”Cannot open file.”<<endl;
return 1;
}
for(i=0,a=-5; i<19; i++)
{
a+=5;
S[i]=sin(a*PI/180.0);
}
out.write((unsigned char*)&s, sizeof s);
out.close( );
return 0;
}
[ 分析讨论]
文件操作中各函数的功能,具体使用方法.

实验十三 结构体和共用体
[目的和要求]

1、掌握结构体类型方法以及结构体变量的定义和引用。
2、掌握指向结构体变量的指针变量的应用,特别是链表的应用。
3、掌握运算符”.”和”->”的应用。
4、共用体的概念和应用。

[实验内容和步骤]

1、编写程序:有4名学生,每个学生的数据包括学号、姓名、成绩,要求找出成绩最高者的姓名和成绩,上机运行程序。
2、建立一个链表每个结点包括的成员为:职工号、工资。用malloc打印出来。用一个creat 来建立链表,用list来输出数据。5个职工号为101,103,105,107,109。
3、在上题基础上,新增加一个职工的数据,按职工号的顺序插入链表,新插入的职工号为106。写一函数insert来插入新结点。
4、在上面的基础上,写一函数delete,用来删除一个结点。要求删除职工号为103的结点。打印出删除后的链表.
5、你有无办法测试构造链表时,内存空间的动态分配情形?

[分析讨论]

怎样引用结构体变量成员?

实验十四 位运算
[目的和要求]

1. 掌握位运算的概念和方法。
2. 掌握位运算(&,|,^,~)的使用方法。
3. 掌握有关位运算的用法。

[实验内容和步骤]

1. 按习题8.2的要求,编一个程序,将一个整数的高字节和低字节分别输出(用位运算方法)。上机运行。
2. 按习题8.6的要求,编一个程序,使一个整数的低4位翻转。上机运行,用十六进制数输入和输出。
3. 按习题8.10的要求,将一个整数i的各位循环左移4位,设i的值为十六进制数fe13。
4. 按习题8.13的要求,设计一个函数,当给定一个整数后,能得到该数的补码(应考虑该整数是正数或负数)。

[分析讨论]

位运算时应注意什么问题?

实验十五 综合应用举例
[目的与要求]
1、熟悉C语言的端口及硬件控制的方法与原理。
2、了解用C语言实现发声程序所要访问的端口。
[实验内容和步骤]
1、调试课本中例10.8程序,注意调出不同的效果。
2、调试并总结程序中所用的知识点,写出乐谱文件播放的是什么乐谱?
乐谱实例:
6000 h5 1 h3 2 h2 0.5 h3 0.5 h1 4 h2 1 m7 2 m6 0.5 h1 0.5 m5 4 m3 2 m5 1.5
m6 0.5 h1 1.5 h2 0.5 m6 0.5 h1 0.5 m5 1 h5 1.5 h1 0.5 h6 0.5 h5 0.5 h3 0.5
h5 0.5 h2 4 h2 1.5 h3 0.5 m7 1 m6 1 m5 1.5 m6 0.5 h1 1 h2 1 m3 1 h1 1 m6 0
m5 0.5 m6 0.5 h1 0.5 m5 4 h3 1.5 h5 0.5 m7 1 h2 1 m6 0.5 h1 0.5 m5 3 m3 0.
m5 0.5 m3 0.5 m5 0.5 m5 0.5 m6 0.5 m7 0.5 h2 0.5 m6 3 m5 0.5 m6 0.5 h1 1.5
h2 0.5 h5 1 h3 1 h2 1 h3 0.5 h2 0.5 h1 1 m6 0.5 m5 0.5 m3 2 h1 2 m6 0.5 h1
0.5 m6 0.5 m5 0.5 m3 0.5 m5 0.5 m6 0.5 h1 0.5 m5 3 h3 0.5 h5 0.5 h2 0.5 h3
0.5 h2 0.5 h1 0.5 m7 1 m6 1 h5 4##

void play_music(char *filename) /*filename为音乐文件名格式见上*/
{
FILE *fp;
int rate;
char sound_high[3];
float sound_long;
register int i=0,j;
int sign=0;
float str[1000][2];
if ((fp=fopen(filename,"r"))==NULL)
{
printf("Open file music.doc Errors!\n");
exit(1);
}
fscanf(fp,"%d",&rate);
while(!feof(fp)&&!sign)
{
fscanf(fp,"%s%f",&sound_high,&sound_long);
str[i][1]=rate*sound_long;
switch(sound_high[0])
{
case 'h':
switch(sound_high[1])
{
case '1':
str[i++][0]=1046.5;
break;
case '2':
str[i++][0]=1174.7;
break;
case '3':
str[i++][0]=1318.5;
break;
case '4':
str[i++][0]=1396.9;
break;
case '5':
str[i++][0]=1568;
break;
case '6':
str[i++][0]=1760;
break;
case '7':
str[i++][0]=1975.5;
break;
default: printf("\n Error Music.doc\n");
break;
}
break;
case 'm':
switch(sound_high[1])
{
case '1':
str[i++][0]=523.3;
break;
case '2':
str[i++][0]=587.3;
break;
case '3':
str[i++][0]=659.3;
break;
case '4':
str[i++][0]=698.5;
break;
case '5':
str[i++][0]=784.0;
break;
case '6':
str[i++][0]=880;
break;
case '7':
str[i++][0]=987.8;
break;
default: printf("\n Error music.doc.\n");
break;
}
break;
case 'l':
switch(sound_high[1])
{
case '1':
str[i++][0]=262;
break;
case '2':
str[i++][0]=296;
break;
case '3':
str[i++][0]=329.6;
break;
case '4':
str[i++][0]=349.2;
break;
case '5':
str[i++][0]=392;
break;
case '6':
str[i++][0]=440;
break;
case '7':
str[i++][0]=493.9;
break;
default: printf("\n Error music.doc.\n");
break;
}
break;
case '*':
switch(sound_high[1])
{
case '1':
str[i++][0]=131;
break;
case '2':
str[i++][0]=147;
break;
case '3':
str[i++][0]=165;
break;
case '4':
str[i++][0]=176;
break;
case '5':
str[i++][0]=196;
break;
case '6':
str[i++][0]=220;
break;
case '7':
str[i++][0]=247;
break;
default: printf("\n Error music.doc\n");
break;
}
break;
case '#':
if (sound_high[1]=='#') sign=1;
break;
case 'x':
if (sound_high[1]=='0') str[i++][0]=20;
break;
default:printf("\n ERRor music.doc\n");
exit(1);
}
}
for(j=0;j<=i-1;j++)
{
sound(str[j][0]);
delay(str[j][1]);
}
nosound();
}

[分析讨论]
1.c语言怎样对数据库进行管理?
2.分析程序设计过程中怎样对基础知识进行灵活运用。

提供算法思路吧,就不给你写函数了:

正数的补码=原码
负数的补码=其绝对值的原码取反+1
所以判断正负,并标记正负,然后取其绝对值,计算原码(逐步%2),存到Bool型数组里
如果符号标记为正,即为补码;
如果符号标记为负,将Bool数组逐位取反,然后再加1.

#include"stdio.h"
void fun(int n)
{
printf("%x\n",n); //在计算中,正负数都以补码形式存放,直接以16进制输出即可。
}
void main()
{
int n;
scanf("%d",&n);
fun(n);
}

  • 鍐涓涓嚱鏁,浣缁欏畾鐨勪竴涓3脳3鐨勪簩缁存暣鍨嬫暟缁勮浆缃,鍗宠鍒椾簰鎹
    绛旓細[0]=a;a=x[0][2];x[0][2]=x[2][0];x[2][0]=a;a=x[1][2];x[1][2]=x[2][1];x[2][1]=a;} 涓婇潰鐨勭▼搴忔垜宸茬粡璋冭繃浜嗭紝int y锛涙病鎰忎箟锛屽畬鍏ㄥ彲浠ヤ笉瑕併備綘瀵规瘮涓涓嬪氨鐭ラ亾浜嗭紒鍑芥暟璋冪敤锛氬垎涓夐儴鍒 1:鍑芥暟澹版槑 2:鍑芥暟璋冪敤 3:鍑芥暟瀹氫箟<瀹炵幇閮ㄥ垎> 澶氱紪鍑犱釜灏辫В鍐充簡鈥︹
  • 缂栧啓涓涓嚱鏁,瀹炵幇灏缁欏畾鐨勬暟缁勭殑鍚勪釜鍏冪礌鍊煎姞2(浠ユ暟缁勫悕绉颁綔鍑芥暟鍙傛暟...
    绛旓細int a[10]={1,2,3,4,5,6,7,8,9,10};printf("The original arry a:\n");for(int i=0;i<10;i++)printf("%d,",a[i]);printf("\n");fun(a,10);printf("The final arry a:\n");for(i=0;i<10;i++)printf("%d,",a[i]);} 杈撳嚭缁撴灉锛歍he original arry a:1,2,...
  • 鍐涓涓嚱鏁,浣缁欏畾鐨勪竴涓3脳3鐨勪簩缁存暣鍨嬫暟缁勮浆缃,鍗宠鍒椾簰鎹
    绛旓細include <stdio.h> include <stdlib.h> void f(int a1[3][3]){ int i,j,t;for(i=0;i<3;i++)for(j=i;j<3;j++){ t=a1[j][i];a1[j][i]=a1[i][j];a1[i][j]=t;} } main(){ int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};int i,j;f(a);printf("...
  • 缁欏畾涓涓杩欐牱鐨鍑芥暟 瑕佹眰鍐欎竴涓▼搴: 杈撳叆涓涓鏁存暟鍚 杈撳嚭鎵鏈夊皬浜庤繖 ...
    绛旓細include <stdio.h> int isPrime(int n){int i;if (n<=1) return 0;if (n==2) return 1;for (i=2; i*i<=n; i++)if(n%i == 0) return 0;return 1;}int main(int argc, char *argv[]){ int n,i;scanf("%d",&n);for(i=n-1;i>4;i--)if(isPrime(i)&&isPrime(i...
  • 璁捐鍑芥暟,鎵惧嚭涓瀵规暣鍨嬫暟缁勪腑鐨勬渶澶ф暟
    绛旓細璁捐鍑芥暟锛屾壘鍑轰竴瀵规暣鍨嬫暟缁勪腑鐨勬渶澶ф暟锛熸ゼ涓荤殑鎰忔濇槸涓嶆槸缁欏畾涓涓鏁扮粍锛屼娇鐢ㄦ煇绉嶈瑷缂栧啓涓涓嚱鏁帮紝璇ュ嚱鏁板彲浠ユ眰鍑鸿鏁扮粍鐨勬渶澶у硷紵濡傛灉鏄繖鏍风殑璇濆氨绠鍗曚簡 [1]姣斿鎴戜笅闈㈢粰鍑虹殑绋嬪簭鍙互瀹炵幇杈撳叆10涓暣鏁帮紝杈撳嚭鏈澶ф暟#include<stdlib.h> include<stdio.h> int main(){ int a[11];int i,j,t...
  • ...={1,2,3,4,5,6,7,8,9,10},缂栧啓涓涓嚱鏁瀹炵幇灏哸鏁扮粍鍚勪釜鏁扮粍鍏冪礌鐨...
    绛旓細void AddTwo(int &a){ for (int i=0;i<10;i++) a[i] +=2;return;}
  • 璁捐涓涓嚱鏁,灏嗕换鎰弉脳n鐨勭煩闃佃浆缃
    绛旓細閿欒1锛歷oid temp(void)锛屾嫭鍙烽噷鏄痸oid锛屾病鏈夊舰鍙傦紝鍥犳鏃犳硶鎶婁富鍑芥暟鐨勫疄鍙備紶缁欏嚱鏁扮殑瀹炲弬銆傞敊璇2锛歵emp();鎷彿閲屼负绌猴紝娌℃湁瀹炲弬锛屽洜姝ゆ棤娉曟妸涓诲嚱鏁扮殑瀹炲弬浼犵粰鍑芥暟鐨勫疄鍙傘傞敊璇3锛歠or(j=0;j<4;j++)锛宨浠0鍒3锛宩浠0鍒4锛绛変簬娌℃湁杞疆锛岃繕鏄師鏉ョ殑鏁扮粍銆傜粰鍑烘纭殑浠g爜(鍦ㄤ綘鐨勭▼搴忎唬鐮佺殑鍩虹...
  • 璁捐涓涓嚱鏁,瀹屾垚灏嗕竴涓崄杩涘埗鏁拌浆鎹㈡垚2銆8銆16杩涘埗鏁
    绛旓細杩欎釜鏀寔鏁存暟锛侊紒include<iostream> using namespace std;void set2(int a){ int b[16]={0},i;for( i=0;i<16&&a!=0;i++){ b[i]=a%2;a/=2;} for(i-=1;i>=0;i--)cout<<b[i];cout<<endl;} void set8(int a){ int b[16]={0},i;for( i=0;i<16&&a!=0;i+...
  • c璇█璁捐涓涓嚱鏁mincommonmultiple(),璁$畻杩欎袱涓鏁存暟鐨勬渶灏忓叕鍊嶆暟...
    绛旓細姝ら鑰冨療鑷畾涔鍑芥暟锛浠g爜濡備笅锛歩nt MinCommonMultiple(int a, int b){ int i;if (a<=0 || b<=0)return -1; // 淇濊瘉杈撳叆鐨勫弬鏁颁负姝f暣鏁 for (i=1; i
  • 缂栧啓涓涓绋嬪簭,鍦ㄤ富鍑芥暟涓畾涔夊苟鍒濆鍖栦竴涓暣鍨嬬殑4琛4鍒楃殑浜岀淮鏁扮粍(鍒濆...
    绛旓細int a[4][4]锛沬nt temp[4][4];for (i=0;i<4;i++)for(j=0;j<4;j++){ temp[i][j]=a[j][i];}
  • 扩展阅读:函数图像生成器app ... 大量数据一对多匹配 ... 一键生成 ... 一对多查询万能函数 ... 函数公式一览表 ... 五个最美丽的函数图像 ... 班徽logo设计图片 ... 办公常用的20个函数 ... q函数q sa是指在一个给定状态s下 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网