文档库 最新最全的文档下载
当前位置:文档库 › 2012 C实验程序和C语言典型算法.

2012 C实验程序和C语言典型算法.

2012  C实验程序和C语言典型算法.
2012  C实验程序和C语言典型算法.

C语言典型算法和C实验程序

按下Ctrl键时,单击目录可显示指定页

C语言典型算法和C实验程序 (1)

1穷举法教材P84 (1)

2 迭代法教材P86 (2)

3判断素数教材P87 (3)

4 冒泡法教材P95 (3)

5 显示杨辉三角形的前10行 (4)

第4章选择结构 (5)

第5章循环结构 (6)

第6章数组 (9)

第7章函数 (11)

第8章指针 (14)

1穷举法教材P84

例1 我国古代数学家在<<算经>>中出了一道题,译成现代汉语意思:公鸡每只5元,母鸡每只3元,小鸡3只1元。用100元买100只鸡,问公鸡、母鸡、小鸡各多少只?

# include

main( )

{int x, y, z;

printf("%8s%8s%8s\n","公鸡","母鸡","小鸡");

for (x=1; x<=19; x++)

for (y=1; y<=33 ; y++)

{z=100-x-y;

if (5*x+3*y+z/3.0==100)

printf("%8d%8d%8d\n", x, y, z);

}

}

例2 有36块砖36人搬,男搬4,女搬3,小孩2人搬1砖。要求一次搬完,问男、女、小孩各若干(人)?

#include

main( )

{int x,y,z;

printf("%6s%6s%6s\n", "男","女","小孩");

for(x=1; x<9;x++)

for(y=0;y<12; y++)

{ z=36-x-y;

if (4*x+3*y+z/2.0==36)

printf("%6d%6d%6d\n", x,y,z); }

}

2 迭代法教材P86

求Fibonacci 数列: 1, 1, 2, 3, 5, 8, 13,……的前40项

#include

main( )

{long f1, f2;

int i;

f1=1;f2=1;

for(i=1;i<=20;i++)

{printf("%12ld %12ld ",f1,f2);

if(i%2==0)printf("\n");

f1=f1+f2;

f2=f2+f1;

}

}

3判断素数教材P87

#include

#include

main( )

{int m, i, k;

printf("请输入一个正整数");

scanf("%d",&m);

k=sqrt(m);

for (i=2; i<=k; i++)

if (m%i==0) break;

if (i>k) printf("%d 是素数\n",m);

else printf("%d 不是素数\n",m); }

4 冒泡法教材P95

对10个数组元素a[0], a[2], a[3], ……, a[9]进行排序(由小到大)。#include

main( )

{int a[10], i, j, t;

printf("input 10 numbers :\n");

for (i=0; i<10; i++) scanf("%d", &a[i]);

for(j=0; j<9; j++)

for(i=0 ;i<9-j ;i++)

if (a[i]>a[i+1]) {t=a[i]; a[i]=a[i+1] ;a[i+1]=t;}

printf("the sorted numbers :\n");

for(i=0; i<10; i++)

printf("%d ",a[i]);

printf("\n");

}

5 显示杨辉三角形的前10行

(1)各行第1个和最后一个数都是1

(2)从第3行起中间的那些元素的值,是上一行同一列和前一列2个数之和。a[i][j]=a[i-1][j]+a[i-1][j-1];

#include

#define N 10

main( )

{int i, j , a[N][N];

for (i=0 ; i

{ a[i][0]=1; a[i][i]=1;}

for (i=2; i

for (j=1; j

a[i][j]=a[i-1][j]+a[i-1][j-1];

for (i=0; i

{for(j=0; j<=i; j++) printf("%-5d", a[i][j]);

printf("\n"); }

}

第4章选择结构

1 有3个整数a,b,c,由键盘输入,输出其中最大的数。#include

main( )

{int a, b, c, max;

printf(“input a b c”);

scanf(“%d%d%d”, &a,&b,&c);

if (a>b) max=a;

else max=b;

if (c>max) max=c;

printf(“max=%d\n”, max);

}

2 有一函数

y = x (x<1)

= 2x-1 (1<=x<10)

= 3x-11 (x>=10)

用scanf函输入x的值,求y值。

#include

main( )

{float x, y;

printf("please enter x");

scanf("%f", &x);

if (x<1) y=x ;

else if (x>=1 && x<10) y=2*x-1;

else y=3*x-11;

printf("x=%.2f y=%.2f\n",x,y);

}

3 给出一个百分制成绩,要求输出成绩等级“A”、“B”、“C”、“D”、“E”。90分以上(含90分)为“A”,80分以上、90分以下(含80分、不含90分)为“B”,70分以上、80分以下(含70分、不含80分)为“C”,60分以上、70分以下(含60分、不含70分)为“D”,60分以下(不含60分)为“E”。(不用switch语句)

#include

main( )

{ float score;

printf("input score");

scanf("%f", &score);

if (score>=90) printf("A\n");

else if (score>=80) printf("B\n");

else if(score>=70) printf("C\n");

else if(score>=60) printf("D\n");

else printf("E \n");

}

第5章循环结构

1求数列前20项之和:2/1,3/2,5/3,8/5,13/8......

#include

main( )

{int i=1;

float a=2, b=1, c, sum=0, term;

while (i<=20)

{term=a/b;

sum=sum+term;

c=a+b; b=a; a=c;

i++; }

printf("sum=%.2f\n", sum);

}

2 计算多项式前n项的值:s=a+aa+aaa+aaaa+......,a,n由键盘输入。

算法提示:该多项式迭代公式为:term=term*10+a,sum=sum+term

#include

main( )

{int a,n,i;

double sum, term;

printf("input a n ?");

scanf("%d%d",&a,&n);

sum=0; term=a;

for (i=1; i<=n; i++)

{sum=sum+term;

term=term*10+a; }

printf("sum=%.0f\n",sum);

}

3 36人搬36块砖, 男

4 女3 小孩2人搬1块,

求男、女、小孩各多少人。

#include

main( )

{int x,y,z;

printf("%6s%6s%6s\n", "男","女","小孩");

for(x=1; x<9; x++)

for(y=1 ;y<12; y++)

{ z=36-x-y;

if (4*x+3*y+z/2.0==36)

printf("%6d%6d%6d\n", x,y,z); }

}

4 给出一个百分制成绩,要求输出成绩等级"A"、"B"、"C"、"D"、"E"。90分以上(含90分)为"A",80分以上、90分以下(含80分、不含90分)为"B",70分以上、80分以下(含70分、不含80分)为"C",60分以上、70分以下(含60分、不含70分)为"D",60分以下(不含60分)为"E"。

(用switch语句)

#include

main( )

{int score,temp;

char grade ;

while (1)

{printf("请输入学生成绩-1 结束:" );

scanf("%d",&score);

if (score==-1) break;

temp=score/10;

switch (temp)

{case 10:

case 9: grade='A'; break;

case 8: grade='B'; break;

case 7: grade='C'; break;

case 6: grade='D'; break;

case 5:

case 4:

case 3:

case 2:

case 1:

case 0: grade='E';}

printf("成绩为%d,相应等级是%c\n", score, grade);

}

}

5请用switch 语句求一笔定期存款的到期利息:输入存款数、存款年数,输出到期利息。设存款利率为1年期2%,2年期2.5%,3年期2.8%,5年期3%。利息计算公式:a=p×r×n,设:a—到期利息,p—存款数,n—年数,r—利率(用switch语句)

#include

main( )

{float a, p, r;

int n;

while (1)

{printf("请输入存款数年数(存款数输入0结束程序)");

scanf("%f%d", &p, &n);

if (p==0) break;

switch(n)

{case 1: r=0.02; break;

case 2: r=0.025; break;

case 3: r=0.028; break;

case 5: r=0.03; break; }

a=p*r*n;

printf("存款数:%.2f 年数:%d 利息: %.2f\n",p,n,a); }

}

第6章数组

1对8个数组元素a[1], a[2], a[3], ……, a[8]进行排序(由小到大)。

#include

main( )

{int a[8], i, j, t;

printf("input 8 numbers :\n");

for (i=0; i<8; i++) scanf("%d", &a[i]);

for(j=0; j<7; j++)

for(i=0 ;i<7-j ;i++)

if (a[i]>a[i+1]) {t=a[i]; a[i]=a[i+1] ;a[i+1]=t;}

printf("the sorted numbers :\n");

for(i=0; i<8; i++)

printf("%d ",a[i]);

printf("\n");

}

2 将一个数列头尾颠倒。设该数列为1,3,5,7,9,11,15。要求按15,11,9,7,5,3,1的顺序存放并输出。

算法提示:先找到数组的中点位置,然后依次将头尾元素交换。#include

#define N 7

main( )

{int i, t, a[N];

for (i=0; i

scanf("%d", &a[i]);

for (i=0; i

{t=a[i]; a[i]=a[N-1-i]; a[N-1-i]=t;}

for (i=0; i

printf("%4d",a[i]);

}

3求一个3×4矩阵的所有靠外侧的的元素之和。

#include

main( )

{int a[3][4], i, j, sum=0;

printf("请输入数组元素值\n");

for (i=0; i<3; i++)

for (j=0; j<4; j++)

scanf("%d",&a[i][j]);

printf("\n");

for (i=0; i<3; i++)

for (j=0; j<4; j++)

if (i==0 || i==2|| j==0 || j==3) sum=sum+a[i][j];

printf("sum=%d\n", sum);

}

4 分别求4×4矩阵的主对角线上的元素之和,与另一条对角线上的元素之和的乘积。

#include

main( )

{ int a[4][4] , i, j, sum1=0, sum2=0;

long m;

printf("请输入数组元素值\n");

for (i=0; i<4; i++)

for (j=0; j<4; j++)

scanf("%d",&a[i][j]);

for (i=0; i<4; i++)

for (j=0; j<4; j++)

{ if (i==j) sum1=sum1+a[i][j];

if ((i+j)==3) sum2=sum2+a[i][j]; }

m=sum1*sum2;

printf("m=%ld \n" , m );

}

5 将字符数组a中下标为单号(1,3,5,…)的元素值赋给另一个字符数组b,然后输出a和b的内容。

#include

main( )

{char a[10], b[10];

int i,j=0;

printf("请输入字符串");

gets(a);

for (i=0; a[i]!='\0'; i++)

if (i%2==1) { b[j]=a[i]; j++;}

b[j]= '\0';

puts(a);

puts(b);

}

第7章函数

1

x2-x+1 (x<0)

y=

x3+x-5 (x>=0)

编一个函数, 并用主函数调用它

#include

main( )

{float x1,y1;

float func(float x);

printf("请输入X1的值");

scanf("%f",&x1);

y1=func(x1);

printf("x1=%f y1=%f \n",x1,y1);}

float func(float x)

{float y;

if (x<0) y=x*x-x+1;

else y=x*x*x+x-5;

return (y); }

2 编写一个函数prt(c,n),打印给定的字符c,打印n次。在主函数中调用prt(c,n)函数,打印一个直角三角形。

注意:函数prt(c,n)完成输出功能,是一个void函数,有两个参数。

*

**

***

****

*****

******

#include

void prt(char ch , int n)

{int i;

for (i=1; i<=n; i++)

printf("%c", ch);

printf("\n"); }

main( )

{int i;

for (i=1; i<=6; i++)

prt('*', i);

}

3 用函数的嵌套编写程序计算1!+2!+3!+…+n!的值,n为大于等于0的整数。#include

double fac(int m)

{ int i;

double t=1;

for(i=1; i<=m; i++)

t=t*i;

return(t);

}

double sub(int n)

{int i;

double sum=0;

for (i=1; i<=n; i++)

sum=sum+fac(i);

return(sum);

}

main( )

{int n;

double s;

printf("input n?");

scanf("%d", &n);

s=sub(n);

printf("s=%.0f\n", s);

}

4 在自定义函数中

求(1) main( )中的数组3个元素的立方和,(2)并每个元素在函数中扩大10倍。

然后在main函数中显示出来。

#include

double func(int b[ ])

{int i;

double s=0;

for(i=0; i<3; i++)

{s=s+b[i]*b[i]*b[i];

b[i]=10*b[i]; }

return(s); }

main( )

{int i, a[3];

double sum;

for(i=0; i<3; i++)

{printf("input a[%d]" , i);

scanf("%d", &a[i]); }

sum=func(a);

printf("%d %d %d\n", a[0],a[1],a[2]); printf("%.0f\n " , sum);

}

第8章指针

1 使两个指针变量交换指向。

#include

main( )

{int a=3, b=5, *p1, *p2, *p;

p1=&a; p2=&b;

printf("%p %p\n", p1, p2);

p=p1; p1=p2; p2=p;

printf("%p %p\n", p1, p2); }

2.交换两个指针变量所指向的变量的值。

#include

main( )

{int a=3, b=5, t, *p1, *p2;

p1=&a; p2=&b;

t=*p1; *p1=*p2; *p2=t;

printf("a=%d b=%d\n", a, b);}

3有三个整型变量i,j,k。请编写一个程序,设置三个指针变量p1,p2,p3,分别指向i,j,k。然后通过指针变量使i,j,k三个变量的值顺序交换,即原来i的值赋给j,原来j的值赋给k,原来k的值赋给i。i,j,k的原值由键盘输入,要求输出i,j,k的原值和新值。

#include

main( )

{int i, j, k, t, *p1, *p2, *p3;

printf("输入i j k");

scanf("%d%d%d",&i, &j ,&k);

printf(“交换前 i=%d j=%d k=%d\n", i,j,k);

p1=&i; p2=&j; p3=&k;

t=*p2; *p2=*p1; *p1=*p3; *p3=t;

printf("交换后 i=%d j=%d k=%d\n", i,j,k);}

4从键盘输入三个整数,要求设计三个指针变量p1,p2,p3,通过比较使p1指向三个数的最大者,p2指向次大者,p3指向最小者,然后由从大到小的顺序输出三个数。

#include

main( )

{int i, j, k, t, *p1, *p2, *p3, *p;

printf("输入i j k");

scanf("%d%d%d", &i,&j,&k);

p1=&i; p2=&j; p3=&k;

if(*p2>*p1) {p=p1; p1=p2; p2=p;}

if(*p3>*p1) {p=p1; p1=p3; p3=p;}

if(*p3>*p2) {p=p2; p2=p3; p3=p;}

printf("i j k 分别为:%d %d %d\n", i, j, k);

printf("*p1 *p2 *p3分别为:%d %d %d\n",*p1, *p2, *p3);

}

5练习指针作为函数参数。一个数组有10个元素{1,8,10,2,-5,0,7,15,4,-5},利用指针作为函数参数编程,输出数组中最大的和最小的元素值。

#include

void max_min(int *p, int n, int *pmax , int *pmin)

{int *pend;

pend=p+n;

for ( p++; p

if (*p>*pmax) *pmax=*p;

else if (*p<*pmin) *pmin=*p; }

main( )

{int i, max, min , a[10];

printf("输入10个整数\n");

for (i=0; i<10; i++) scanf("%d",&a[i]);

max=min=a[0];

max_min(a, 10, &max, &min);

printf("max=%d, min=%d\n",max,min); }

大一上期C语言实验报告1熟悉实验环境

成都工业学院·计算机工程学院 《程序设计基础》实验报告 1.实验目的 (1)熟悉C语言运行环境,了解和使用Visual6.0++集成开发环境(2)熟悉Visual6.0++环境的功能键和常用的功能菜单命令 (3)掌握C语言程序的书写格式和C语言程序的结构 (4)掌握C语言上机步骤,以及编辑、编译和运行一个C语言程序的方法 (5)熟悉Visual6.0++环境下的程序调试方法 2.实验内容 (1)按照实验步骤编辑、编译、运行第一个”Hello World”程序(2)利用实验指导中的第二个程序熟悉调试工具,在已知x,y值的情况下,计算出x和y的和、差、积、商,并显示出来(3)编写一个程序,输入a、b、c三个值,输出它们的和与平均值c 3.源程序 (1)#include void main() {printf(”Hello World”);} (2)#include void main() {int x=5,y=2; int s,d,p,q; s=x+y; d=x-y; p=x*y; q=x/y; printf(“和:%d差:%d积%d商:%d“,s,d,p,q);}

(3)#include void main() {int a,b,c.sum; float ave; Printf(“Please enter the a,b,c:”); scanf(“%d%d%d”,&a,&b,&c); sum=a+b+c; ave=(float)sum/3; printf(“sum=%d,ave=%f\n”,sum,ave);} 4.运行结果 (1) (2) (3)输入18、46、69测试得出答案如下

C语言实验报告《函数》

C语言实验报告《函数》 C语言实验报告《函数》 学号: __________ 姓名: __________ 班级: __________ 日期: __________ 指导教师: __________ 成绩: __________ 实验四函数 一、实验目的 1、掌握函数定义、调用和声明的方法 2、掌握实参和形参之间的传递方式 3、函数的嵌套调用 二、实验内容 1、写一个函数,将两个字符串连接。(习题 8. 6) 2、编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。(习题 8.9)

3、请将实验三中的实验内容三改正后,再改写成函数形式(排序部分)。物理实验报告·化学实验报告·生物实验报告·实验报告格式·实验报告模板 三、实验步骤与过程 四、程序调试记录 一、实验目的 1.观察植物细胞有丝分裂的过程,识别有丝分裂的不同时期。 初步掌握制作洋葱根尖有丝分裂装片的技能。 3.初步掌握绘制生物图的方法。 二、实验原理在植物体中,有丝分裂常见于根尖、茎尖等分生区细胞,高等植物细胞有丝分裂的过程,分为分裂间期和分裂期的前期、中期、后期、末期。可以用高倍显微镜观察植物细胞的有丝分裂的过程,根据各个时期细胞内染色体(或染色质)的变化情况,识别该细胞处于有丝分裂的哪个时期,细胞核内的染色体容易被碱性染料着色。 三、材料用具洋葱根尖、显微镜、载玻片、盖玻片、滴管、镊子、培养皿、铅笔、质量分数为15%的盐酸、体积分数为95%的酒精、质量分数为0.01gml的龙胆紫(或紫药水) 四、实验过程(见书P39) 1.洋葱根尖的培养(提前3—4天) 2.解离: 5min 3.漂洗: 10min 4.染色: 5min

C语言实验报告参考答案 原

C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.编写程序: (1) a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 (2)a=160,b=46,c=18,d=170, 编写求(a+b)/(b-c)*(c-d)的程序。 答案: (1) #include main() {

int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } (2) #include main() { int a,b,c,d; float x; a=160; b=46; c=18;

d=170; x=(a+b)/(b-c)*(c-d); printf("(a+b)/(b-c)*(c-d)=%f\n",x); } 3. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b 时,将0赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 2、(1) 编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7

c语言实验报告

C语言实验报告 说明 1,所有程序均用VC6.0编译运行,文件名命名为姓名+日期,因为实验存在补做,所以并不是按照日期先后排列的。 2,为了使截图清晰,手动将运行窗口由“黑底白字”改为了“白底黑字”。 实验2 数据类型、运算符和表达式 一、实验目的: (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法。 (2)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。 (3)掌握C语言的输入和输出函数的使用 (4)进一步熟悉C程序的编辑、编译、连接和运行的过程。 三、程序调试与问题解决: (1)输人并运行下面的程序 #include void main() { char c1,c2; c1='a'; c2='b'; printf("%c %c\n",c1,c2); } ○1运行此程序。 ○2在上面printf语句的下面再增加一个printf语句。

printf("%d %d\n",c1,c2); 再运行,并分析结果。 输出结果如图,编译成功,无错误。 ○3将第3行改为 int c1,c2; 再运行,并分析结果。 ○4再将第4、5行改为 c1=a; c2=b; 再运行,并分析结果。 a,b没有定义,编译报错。 ○5再将第4、5行改为 c1=‘’a‘’; c2=‘’b‘’; 再运行,并分析结果。 ○6再将第4、5行改为 c1=300; c2=400; 再运行,并分析结果。 以字符型输出时,输出的将是300,400对应的字符。 (2)输人并运行教材第3章习题3. 6给出的程序 #include main () { char c1='a',c2='b',c3='c',c4='\101',c5='\116';

C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include <> main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include<> main() { int a,b,c,x,y; a=150; b=20; c=45;

x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。 问题2 改printf("%c,%c,%d\n",a,b,c);这条语句

游戏C语言实验报告

嘉应学院计算机学院 实验报告 课程名称: C程序设计 开课学期: 2015—2016学年第1学期 班级:计算机1505 指导老师:陈广明 设计题目:游戏2048 学生姓名(学号):第3组:钟瞻宇

目录 一、实验目的和要求 .................................................................................................................................................... 二、实验环境、内容和方法 ........................................................................................................................................ 三、程序设计 ................................................................................................................................................................ 四、源代码 .................................................................................................................................................................... 五、调试与运行结果.................................................................................................................................................... 六、总结........................................................................................................................................................................

2010C语言实验报告参考答案

2010C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y);

x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a;

哈工大(威海)c语言实验报告册答案

实验1简单判定性问题求解 一、实验学时 完成本实验需4学时。 二、实验目的 1、阅读程序题 (1)掌握C语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法; (2)掌握不同的类型数据之间赋值的规律; (3)掌握数据在内存中的存储方式; (4)学会输入、输出函数的基本格式和使用方法; (5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。 2、编程题 (1)如何运用if-else判定性结构进行程序设计; (2)如何运用switch判定性结构进行程序设计。 3、调试题 (1)熟悉C程序的编辑、编译、连接和运行的过程。 三、实验指导 为了达到最佳的实验效果,以下提供几条适于编程的指导意见,可供参考。 1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察数据在内存中的存储方式、含不同种运算符表达式的输出结果。 2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。要注意简单判定性问题的结构选择。 3、调试题应明确程序的调试、测试是一项非常烦琐的工作,也是非常重要的工作。对于初学者来说应该建立良好的习惯,在调试程序的时候,应该尽可能考虑到程序运行时各种可能情况。

四、实验内容 1、阅读程序题 (1)main( ) { /*定义字符型变量*/ char c1,c2; /*向字符变量赋以整数*/ c1=97; c2=98; printf("%c %c\n",c1,c2); /*以字符形式输出*/ printf("%d %d\n",c1,c2); /*以整数形式输出*/ } 思考:可否改成int c1,c2;输出结果是?相同 (2)main() { int a=7,b=5; printf("%d\n",b=b/a); } 思考:若将printf语句中%d变为%f,可否输出分式的值?可以(3)main() { int a=9; a+=a-=a+a; /*包含复合的赋值运算符的赋值表达式*/ printf("%d\n",a); } 思考:赋值表达式a+=a-=a+a的求解步骤? 第一步:a=a-(a+a)=-9 第二步a=a+a=18 (4)main() { int k=-1; printf("%d,%u\n",k,k);

C语言实验报告

实验一进制转换 一、实验要求 采用模块化程序设计完成进制转换。由键盘输入一个十进制正整数,然后将该数转换成指定的进制数(二、八、十六) 形式输出。指定的进制由用户输入。 二、实验目的 1、熟悉C 环境的安装、使用。 2、承上启下,复习《C 程序设计》等基础课程的知识。 3、掌握C 语言编程的方法。 三、预备知识 1、VC6.0的安装与使用。 2、C 程序设计基础知识。 四、实验内容 采用模块化程序设计完成进制转换。 五、程序框图 六、程序清单 1. 编写主函数:输入需转换的数与转换的进制 2. 编写子函数 (1)函数转换为除16进制以外的进制转换算数编程,使用while 循环实现计算进制的转换,并输出转换后的数字; (2)函数转换为16进制,用while 函数实现16进制转换的计算并输出16进制转换后的数据; 3. 编写数组,关于16进制的一系列字符 4. 编写主函数加入do while 使函数可以循环。

七、实验步骤 #include char num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; void fun(int n, int m) { int i=-1, a[100]; if(m!=16) { while(n) { a[i++]=n%m; n=n/m; } while(i!=-1) printf("%d",a[--i]); printf("\n"); } else { while(n) { a[++i]=num[n%16]; n/=16; } while(i!=-1) printf("%c",a[i--]); printf("\n"); } } int main() { int a, c; char cIn = 0; do { printf("\n输入正整数,转换的进制:"); scanf("%d %d",&a,&c); fun(a,c); printf("Go on? (Y/N):"); cIn = getchar( ); if(cIn == 'N' || cIn == 'n') return 0; } while(1);fun(a,c);

C语言实验报告参考源代码

实验5三种基本结构的综合应用 4.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。试求[100,999]之内的所有逆向超级素数的个数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=100;i<=999;i++) {for(j=2;j=i) /*三位数是素数时*/ {k=i%100; /*去掉百位数字*/ if(k>=10) /*十位数字不是0时*/ {for(m=2;m=k) /*两位数是素数时*/ {p=i%10; /*p为个位数字*/ for(q=2;q=p)n++;}}}} printf("%d\n",n);} Key:57 5.求[2,400]中相差为10的相邻素数对的对数。 #include "stdio.h" main() {int i,j,k,m,p,q,n=0; for(i=2;i<=400;i++) {for(j=2;j=i) /*i是素数时*/ {for(k=i+1;k=k)break;} /*k是素数时终止if语句的外层循环*/ if(k>=i+10) /*[i+1,i+9]不是素数时*/ {for(q=2;q

C语言实验报告(四)

C语言实验报告(四) 一、实验目的 1.掌握C语言中函数和模块 2.掌握怎样定义函数,如何调用或使用函数,如何声明函数 3.掌握函数的参数,了解在函数调用时,参数是如何传递的 4.在使用函数的过程中怎样确定函数的参数 5.如何使用局部变量和全局变量 二、实验内容 1. 偶数判断 描述: 编写一个用户自定义函数,该函数有一个整型参数,函数的功能是:当这个整型数的值是偶数时,函数的返回值为0,当这个整型数的值是奇数时,返回值为1 。编写一个程序,从键盘输入m个整数,分别调用用户自定义函数来判断这m个整数的奇偶性。 输入: 第一行为一个整数m,表示要判断m个整数的奇偶性;紧接着是m行,每行一个整数。 输出:有m行,分别对应输入的第2到第m+1行的整数的奇偶性样例输入: 2 1 6 样例输出: 奇数 偶数

·程序代码: #include"stdio.h" int isEven(int a) { if(a%2==0) return 1; else return 0; } int main() { int m,i,b; scanf("%d",&m); for(i=1;i<=m;i++) { scanf("%d",&b); if(isEven(b)==1) printf("偶数\n"); else printf("奇数\n"); } return 0; } 2.温度转换 描述: 编写一个用户自定义函数,函数的功能是:将华氏温度转F换为摄氏温度C。转换公式为:C=5*(F-32)/9。编写一个程序,输出指定范围的华氏温度与摄氏温度的对照表,其中华氏温度步长为4。 输入: 两个空格隔开的整数n,m(且0

C语言实验报告范文

实验名称:指针及其应用日期:得分:指导老师: 专业:班次:姓名:学号: 实验目的 (1)掌握变量的指针及其基本用法。 (2)掌握一维数组的指针及其基本用法。 (3)掌握指针变量作为函数的参数时,参数的传递过程及其用法。一.实验内容( 1)运行以下程序,并从中了解变量的指针和指针变量的概念。 (2)运行以下程序,观察 &a[0] 、&a[i] 和 p 的变化,然后回答以下问题: 1.程序的功能是什么? 2.在开始进入循环体之前, p 指向谁? 3.循环每增加一次, p 的值(地址)增加多少?它指向谁? 4.退出循环后, p 指向谁? 5.你是否初步掌握了通过指针变量引用数组元素的方法?( 3)先分析以下程序的运行结果,然后上机验证,并通过此例掌握通过指针变量引用数组元素的各种方法。 ( 4)编写函数,将 n 个数按原来的顺序的逆序排列(要求用指针实现),然后编写主函数完成: ①输入 10 个数; ②调用此函数进行重排; ③输出重排后的结果。 二.分析与讨论 ( 1)指针的定义方法,指针和变量的关系。 定义方法: 数据类型 * 指针变量名 ; 如定义一个指向 int 型变量的指针—— int *p; 则我们可以继续写如下代码—— int a = 4; p = &a; printf("%d", *p); 在这里,我们定义了一个变量a,我们把它理解为内存空间连续的 4个字节(int 型占用 4字节),则这 4个字节的空间保存着一个数 4。&是取地址符号,即把变量a的地址(即这4个字节的首地址)赋给指针p (记住指针p的类型和变量a的类型要保持一致,否则的话,要进行类型转换)。这样子,指针p就保 存着变量a的地址。我们如果把指针p当做内存空间里面另外一个连续的 4个字节,那么这4个字节保存的数就是变量a的地址。printf("%d",*p)和 printf("%d",a)的结果是一样的。这里的*是取变量符号(与&刚好作用相反,通过变量的地址找到变量),与定义时 int *p 的*号作用不同(定义时的 *表示该变量是个指针变量,而非是取它指向的变量)。 ( 2)数组和指针的关系。 指针与数组是 C 语言中很重要的两个概念,它们之间有着密切的关系,利用这种

C语言实验报告参考答案

《C语言程序设计》 实 验 手 册

《C语言程序设计》实验课程简介 课程名称:C语言程序设计实验 课程性质:专业必修课 课程属性:专业必修课 学时学分:学时32 学分1 开课实验室:软件实验室 面向专业:网络工程、软件工程、计算机科学与技术 一、课程的任务和基本要求 C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C语言程序设计》课程而开设的实验性教育环节。本课程的主要任务是让学生充分掌握C 语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。 二、实验项目 【实验一】最简单的C程序---顺序程序设计 【实验二】逻辑运算和判断选取控制 【实验三】循环结构程序设计(一) 【实验四】循环结构程序设计(二) 【实验五】函数 【实验六】数组(一) 【实验七】数组(二) 【实验八】指针 【实验九】结构体、共用体和文件 【实验十】C程序综合性实验 三、有关说明 1、与其它课程和教学环节的联系: 先修课程:计算机文化 后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程 2、教材和主要参考书目: (1)教材: 《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。(2)主要参考书目: 《C语言程序设计》谭浩强主编,清华大学出版社,2003年。

三、实验内容 实验一最简单的C程序---顺序程序设计 (验证性实验 2学时) (一)、实验目的 1.熟悉win-tc程序运行环境 2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法 3.掌握C语言中使用最多的一种语句——赋值语句 4.掌握数据的输入输出方法,能正确使用各种格式控制符 (二)、实验内容 1.写出下列程序的运行结果 (1)#include void main() { printf(“*****************\n”); printf(“This is a c program. \n”); printf(“****************\n”); } 运行结果及分析:运行结果为: Printf函数语句表示输出引号内的字符串,最后的\n表示换行, 将程序中的\n去掉后,运行结果及分析:运行结果为: 去掉\n后不换行连续显示 (2)#include void main() { int a=100,b=20,sum,sb; sum=a+b; sb=a/b; printf("sum=%d,sb=%d",sum,sb); } 运行结果及分析: sum=100+20=120;sb=100/20=5. (3)#include void main( )

C语言实验四实验报告——函数

一、实验项目名称 函数 二、实验目的 1.掌握C函数的定义方法、函数的调用方法、参数说明以及返回值。掌握实参与形参的对应关系以及参数之间的“值传递”的方式;掌握函数的嵌套调用及递归调用的设计方法; 2.掌握全局变量和局部变量、动态变量与静态变量的概念和使用方法; 3.在编程过程中加深理解函数调用的程序设计思想。 三、实验内容 1.多模块的程序设计与调试的方法; 2.函数的定义和调用的方法; 3.用递归方法进行程序设计。 具体内容: 1.编写一个函数primeNum(int num),它的功能是判别一个数是否为素数。如果num 是素数,返回该数;否则返回0值。 要求: (1)在主函数输入一个整数num,调用该函数后,输出num是否是素数的信息。输出格式为:num is prime或num is not prime。 (2)分别输入以下数据:0,1,2,5,9,13,59,121,运行程序并检查结果是否正确。 2.编写函数computNum( int num),它的功能是计算任意输入的一个正整数的各位数字之和,结果由函数返回(例如:输入数据是123,返回值为6)。 要求:num由主函数输入,调用该函数后,在主函数内输出结果。 3.编写函数,mulNum(int a,int b),它的功能是用来确定a和b是否是整数倍的关系。如果a是b的整数倍,则函数返回值为1,否则函数返回值为0。 要求: (1)在主函数中输入一对数据a和b,调用该函数后,输出结果并加以相应的说明。例如:在主函数中输入:10,5 ,则输出:10 is multiple of 5. (2)分别输入下面几组数据进行函数的正确性测试:1与5、5与5、6与2、6与4、20与4、37与9等,并对测试信息加以说明。 4.编写一个计算组合数的函数combinNum(int m,int n)。计算结果由函数返回。 计算组合数的公式是: c(m,n)=m!/(n!*(m-n)!) 要求: (1)从主函数输入m和n的值。对m>n、m

C语言实验报告答案

二、编程题(参考答案) 1、 #include “stdio.h” void main() { int Math=82,eng=78,comp=91,average; average=(Math+eng+comp)/3; printf(“Math=%d,eng=%d,comp=%d,average=%d\n”,Math,eng,comp,average); } 2、 #include “stdio.h” void main() { int n=152,d1,d2,d3; d1=n%10; d2=(n/10)%10; d3=n/100; printf(“整数%d的个位数字是%d,十位数字是%d,百位数字是%d\n”,n,d1,d2,d3); } 3、 #include “stdio.h” void main() { int n1,n2; printf(“Enter n1,n2:”); scanf(“%d,%d”,&n1,&n2); printf(“%d+%d=%d\n”,n1,n2,n1+n2); printf(“%d/%d=%d\n”,n1,n2,n1/n2); printf(“%d%%%d=%d\n”,n1,n2,n1%n2); } 三、改错题 原错误行(共三行): /********************************** found ********************************/ #include “stdoi,h” /********************************** found ********************************/ printf(“%d=%d*%d\n”,x); /********************************** found ********************************/ printf(“%d*%d=%d\n”,y); 改正后: #include “stdio.h” printf(“%d=%d*%d\n”,y,x,x); printf(“%d*%d=%d\n”,x,x,y);

C语言实验报告6——函数

学生实验报告 学号 : 日期 : 2014-06-22 系别计算机科 学与技术 专业 计算机科学 与技术(师) 班级姓名 课程名称程序设计基础 课程 类型 专业课学时数 2 实验 名称 函数 实验目的: 掌握C语言函数的定义与调用方法; 理解C语言函数的调用过程; 学会编写函数构造程序.。 实验要求: 实验后写实验报告。 1.实验内容: 1.阅读下列程序并执行,理解程序的功能并记录程序运行结果#include "stdio.h" int x,y; void num() { int a = 15,b = 10; x = a - b; y = a + b; } void main() { int a = 7,b = 5; x = a + b; y = a - b; num(); printf("%d,%d\n",x,y);

} 运行结果: 2、阅读下面程序并执行,理解程序并记录程序运行结果#include "stdio.h" void main() { int a=2,i; for (i=0;i<3;i++)printf("%4d",f(a)); } f(int a) {

int b=0; int c=3; b++; c++; return(a+b+c); } 运行结果: 3、调试运行教材146页-156页例7.1-例7.3页程序,理解并掌握程序改进所采用的程序设计技术。 7.1题

#include "stdio.h" /*函数功能:用迭代法计算n!*/ long Fact (int n) { int i; long result=1; for(i=2;i<=n;i++) { result*=i; } return result; } int main() { int m; long ret; printf("Input m:"); scanf("%d",&m); ret=Fact(m); printf("%d!=%ld\n",m,ret); return 0;

C语言程序设计实验报告(函数)

C语言程序设计实验报告(实验名称:函数) 1实验目的 (1)掌握函数的定义方法、调用方法、参数说明以及返回值; (2)掌握实参与形参的对应关系,以及参数之间的“值传递”的方式; (3)掌握函数的嵌套调用及递归调用的用的设计方法; (4)在编程过程中加深理解函数调用的程序设计思想。 2实验内容 (1)编写一个函数primeNum(int x),功能是判别一个数是否为素数。 要求: ①在主函数中输入一个整数x(直接赋值或从键盘输入); ②函数类型为空值(void),调用primeNum( )函数后,在函数中输出x是 否为素数的信息,输出格式为“x is a prime number”或”x is not a prime number”; ③分别输入一下数据:0,1,2,5,9,13,59,121,并运行程序,检查 结果是否正确。 (2)编写函数 mulNum(int a,int b),它的功能是用来确定a和b是否是整数倍的关系。如果a是b的整数倍,则函数返回值为1,否则函数返回值为0。 要求: ①在主函数中从键盘输入一对整型数据a和b; ②调用函数后,根据返回值对a和b的关系进行说明。例如,在主函数中输 入:10,5,则输出“10 is a multiple of 5”; ③分别输入下面几组数据进行函数的正确性测试:1与5,5与5,6与2,6 与4,20与4,37与9。

3算法描述流程图 (1)primeNum(int x)(判别一个数是否是素数)函数流程图 ①主函数流程图:

②判断素数函数流程图:

(2)mulNum(int a,int b)(确定a和b是否是整数倍的关系)函数流程图 ①主函数流程图:

C语言实验报告册_2016.3a

学生实验报告册 (理工类) 课程名称:C语言程序设计实验专业班级: 15自动化 2班 学生学号: 1517011063 学生姓名:王启涛所属院部:智能科学与控制工程学院指导教师:王预2015——20 16学年第 2 学期 金陵科技学院教务处制

实验报告书写要求 实验报告上交电子稿,标题采用四号黑体,正文采用小四号宋体,单倍行距。 实验报告书写说明 实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行。

实验项目名称:初级程序设计实验学时: 6 实验地点:工科楼 实验日期: 2016.3.29 实验成绩: 批改教师:王预批改时间:

实验1 初级程序设计 一、实验目的和要求 (1)熟悉Visual C++集成环境,进行编辑、保存、编译、连接及运行,并能进行简单程序调试; (2)掌握C语言中各种运算符的使用; (3)掌握C语言中各种数据类型的区别与应用; (4)熟练掌握C语言中变量的定义、赋值和使用,表达式语句、输入/输出语句的使用; (5)掌握C语言中输入/输出函数的使用; (6)掌握C语言中控制语句的使用,含if-else、for、while、do-while语句的使用。 二、实验仪器和设备 奔腾以上计算机,装有windows XP以上版本操作系统和Visual C++ 6.0软件。 三、实验内容与过程 1、程序调试 (1)#include main() { int s,t,p,sum; scanf(“%d%d%d”,&s,&t,&p); sum=s+t+p; printf(“sum=%d\n”,sum); } (2)#include main() { int k=3; if(k=3) printf(“***”); else printf(“###”); } (3)#include main() {int k=0; do { printf(“k=%d\n”,k); }while(k++>0); } 2、程序改错

C语言实验报告参考答案完整版

C语言实验报告参考答 案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述 四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include<> main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include <> main() { printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include<> main() { int a,b,c,x,y; a=150; b=20;

c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y); x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include<> main() { int a,b,c; a=0; b=-10; c= (a>b) b:a; printf("c = %d\n",c); } 五、调试和测试结果 1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 3、编译、连接无错,运行后屏幕上显示以下结果: a/b的商=7 a/c的商=3 a/b的余数=10 a/c的余数=15 4. 编译、连接无错,运行后屏幕上显示以下结果: c =-10 实验二顺序结构程序设计 四、程序清单 1.键盘输入与屏幕输出练习 问题1 D 。

C语言实验报告数组

C 语言实验报告 实验名称专业 姓名学号 班级指导老师 实验七数组 1. 实验目的 (1))熟练掌握一维数组、二维数组的定义、初始化和输入/输出方法;(2))熟练掌握字符数组和字符串函数的使用; (3))掌握与数组有关的常用算法(如查找、排序等)。 2. 实验指导 (1))对任意一个一维型数组,从中找出数组元素的最大值和最小值并输出。要求: ①数组有十个元素; ②使用scanf 函数实现数组元素的输入前给出必要的提示; ③输出时,首先输出数组的十个元素,然后输出其最大值和最小值。 分析指导: ①算法分析:首先定义一个数组,通过循环从键盘输入十个数组元素的值,再 通过另一个循环判断数组元素的最大只和最小值; ②根据分析情况编写程序: #include main() { int a[10],i,max,min; printf("please input ten integers:"); for(i=0;i<=9;i++) { scanf("%d",&a[i]); } max=a[0]; min=a[0]; for(i=1;i<=9;i++) { if(a[i]>max) max=a[i]; if(a[i]

(2) ) 编写函数 cmpStr(char s1[],char s2[]) 比较两个字符串 s1 和 s2 的大小。如果s1>s2, 返回一个正数 ;s1=s2, 返回 0; s1

相关文档
相关文档 最新文档