b)max=a;elsemax=bif(c>max)max=c;prin" />
文档库 最新最全的文档下载
当前位置:文档库 › c语言上机实验题

c语言上机实验题

c语言上机实验题
c语言上机实验题

1.下列程序中,要求main函数实现如下功能:从键盘上输入三个正整数,求出它们中的最大值。请完善程序,并在程序最后用注释的方式给出你的测试数据及在这组测试数据下的运行结果。

#include

void main()

{ int a,b,c,max;

printf("Enter three integers:");

scanf("%d%d%d",&a,&b,&c);

if(a>b)

max=a;

else

max=b

if(c>max)

max=c;

printf("max of the three numbers is %d",max);

} /*1,2,5 max of the three numbers is 5*/

2.请编程序,对从键盘上输入的x值,根据以下函数关系计算出相应的y值(设x,y均为整型量)。

#include

main()

{

int x,y;

scanf("%d",&x);

if(x<0)

y=0;

else

if(x>=0&&x<=10)

y=x;

else

if(x>=10&&x<=20)

y=10;

else

y=-5*x+20;

printf("%d",y);

}

3. 写程序计算下列各表达式的值: 1)5

/432

1++

2)68

.3)24.024.2(1322--

3)2132e +π

#include #include main() { float a,b,c;

a=2.0/(4.0/5+3)+1;

b=sqrt((13-pow(2.24-pow(0.24,2),2))/3.68); c=2*3.14159*sqrt(13+exp(2)); printf("%f\n%f\n%f",a,b,c); }

4.写程序计算5x 2+2x+6的两个实根。考虑用合适的方式输出。 (提示:可先计算出判别式b 2-4ac 的值)

#include #include main()

{ float a,b,c,x1,x2,p,q,disc; printf("input a,b,c:");

scanf("%f%f%f",&a,&b,&c); disc=b*b-4*a*c ; if(disc>=0) {

p=-b/(2*a);

q=sqrt(disc)/(2*a); x1=p+q; x2=p-q;

printf("%f\n%f\n",x1,x2); } else

printf("No Answer"); }

5.从键盘上任意输出一个年份year ,判别该年是否为闰年,如是输出“yes ”,否则输出“no ”。提示:如果变量year 的值是闰年年份,那么这个值应该是4的部数但又不是100的倍数,或者它是400的倍数。

#include

void main()

{

int year;

scanf("%d",&year);

if(year%4==0&&year%100!=0||year%400==0)

printf("yes");

else

printf("no");

}

6.从键盘上输入float型数,判断这三个数能否构成三角形,若能则求该三角形面积,否则输出不能构成三角形的信息。

#include

#include

void main()

{ float a,b,c,p,area;

printf("input three integers:");

scanf("%f %f %f",&a,&b,&c);

if(a+b>c&&a+c>b&&b+c>a)

{

p=(a+b+c)/2.0;

area=sqrt(p*(p-a)*(p-b)*(p-c));

printf("%f\n",area);

}

else

printf("inputs are wrong!");

}

7.下列程序想求出满足如下条件的三位数n:(1)n除以11(整数相除)所得到的商等于n 的各位数字的平方和;(2)n中至少有二位数字相同。如:131除以11的商为11,131各位数字的平方和为11,131中有二位数字相同,故131是所要求出的三位数中的一个;又如550,也是满足条件的三位数。源程序中有些错误,请你改正并最终使程序得到如下的运行结果:131 550 900

【含有错误的源程序】

#include

void main()

{ int n , a , b , c;

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

{ a=n/100;

b=n/10%10;

c=n/10;

if(n/11=a*a+b*b+c*c||(a==b+a==c+b==c)>=2 )

printf("%5d",n);

}

}

#include"stdio.h"

void main()

{ int a,b,c,n;

for(n=100;n<1000;n++)

{ a=n/100;

b=n/10%10;

c=n%10;

if(n/11==a*a+b*b+c*c&&(a==b||a==c||b ==c))/*或n/11==a*a+b*b+c*c&&(a==b)+(a==c)+(b== c)>=1*/

printf("%5d",n);

}

8. 请编程序,实现从键盘上输入任意一个整数n,求出n的各位数字之和。例如,当n 为263时,各位数字之和为11。下面是一个可以实现逐位数字累加功能的程序段,试理解后应用到自己的程序中。

#include"stdio.h"

void main()

{ int n,k;

scanf("%d",&n);

k=0 ;

do{k+=n%10;

n/=10;

}while (n);

printf("%d",k);

getch();

}

9.试找出符合下列条件的正整数:(1)该数是一个三位数;(2)该数是37的倍数;(3)该数循环左移后得到的另两个数也是37的倍数。例如148是37的倍数,481和814也是37的倍数。

#include"stdio.h"

void main()

{ int n,a,b;

for(n=100;n<1000;n++)

if(n%37==0)

{ a=n/10+n%10*100;

b=n/100+n%100*10;

if(a%37==0&&b%37==0)

printf("%5d",n);

}

getch();

}

10.请编辑调试下列程序,观察其运行结果,理解函数定义、函数调用的基本方法,并理解函数调用时形参和实参之间数据的传递方式。

(1)请将下列源程序进行调试,观察运行结果,尽量想明白为什么得到如此运行结果后再看题后的评注:

【源程序】

#include

void main()

{

int i=2,x=5,j=7;

fun(j,6);

printf(“i=%d,j=%d,x=%d\n”, i , j , x);

}

int fun(int i ,int j)

{ int x=7;

printf(“i=%d,j=%d,x=%d\n”, i , j ,x);

}

(2)评注:

该题想要使大家明白,函数调用时是实参单向值传递给形参的,函数的形参是随着该函数被调用而分配空间,调用结束系统要回收空间;当执行main函数中的语句fun(j,6)时,其中的j是main函数中的量j,这次调用等价于fun(7,6),即将7和6分别传输给形参变量i和j;当执行fun函数时,fun有其自身的内部变量x,fun函数中的输出语句中,i,j,x 的值分别为7,6,7;执行流程遇fun函数中的函数体闭封符“}”返回主函数,在主函数中输出时,i,j,x的值分别2,7,5。

2.(实验报告上的题2)请按如下步步骤设计程序:

(1)编辑并运行下列程序:

#include

void main()

{

char i;

float x;

printf("enter x:");

scanf("%f",&x);

printf("1. To calculate e to the power x\n");

printf("2. To calculate logx to the base 10\n");

printf("3. To calculate lnx \n");

printf("4. To calculate square root of x\n");

printf("\n");

printf("enter your choice:[1/2/3/4]");

scanf("%1s",&i); /* 表示截取输入字符串中的1个字符,因为输入串中回车也算1个字符的*/

switch(i) /* i必须视作字符量,这由它的类型及输入的数据所决定*/

{

case '1': fexp(); break;

case '2': flog10();break;

case '3': flog();break;

case '4': fsqrt();break;

default: printf("Sorry, can\' t do for you!\n"); break;

}

getch();

}

fexp()

{

}

flog10()

{

}

flog()

{

}

fsqrt()

{

}

评注:

这个程序既然能运行了,输入测试数据,试着走走所有的分支路径,看看能不能都走得通(当然有些是不可能有结果的,因为辅助功能函数都是空的),一定要走哟,并且弄清楚所走路径中分别执行什么语句,得到什么结果。

(2)试着将下面的功能函数的首部作修改(加上形参和返回值类型,一定要注意到哟):#include

void main()

{

char i;

float x;

printf("enter x:");

scanf("%f",&x);

printf("1. To calculate e to the power x\n");

printf("2. To calculate logx to the base 10\n");

printf("3. To calculate lnx \n");

printf("4. To calculate square root of x\n");

printf("\n");

printf("enter your choice:[1/2/3/4]");

scanf("%1s",&i);

switch(i)

{

case '1': fexp(x); break;

case '2': flog10(x);break;

case '3': flog(x);break;

case '4': fsqrt(x);break;

default: printf("Sorry, can\' t do for you!\n"); break;

}

getch();

}

float fexp(float x)

{

}

float flog10(float x)

{

}

float flog(float x)

{

}

float fsqrt(float x)

{

}

评注:

注意到了吗?这个程序不能通过编译,错误的原因是“与'fexp'声明中的类型不匹配”等类的错误,还记得我课堂上讲了3个重要的概念,它们分别是函数的定义(目的是为了描述具体的功能,但不实现)、函数的调用(目的是实现函数所定义的功能)和函数的声明(目的是为了使一个存在的函数允许被调用,原则上是不能违背先定义后使用的原则,但当被定义的函数返回值为int类型时,被调用函数可以放在调用函数的后面而在调用之前缺省声明,这也就是第一步中程序能运行的原因)。

这个程序中,辅助函数的返回值类型均改为了float型,函数声明就不可以再缺省,有两种方法可以处理好这一问题,一是将后面的几个函数搬到main函数的前面,编译预处理命令的后面(自己试试吧);另一种办法是在编译预处理后面加函数的声明语句,如下列程序所示:

#include

float fexp(float); /*函数声明*/

float flog10(float); /*函数声明*/

float flog(float); /*函数声明*/

float fsqrt(float); /*函数声明*/

void main()

{

char i;

printf("enter x:");

scanf("%f",&x);

printf("1. To calculate e to the power x\n");

printf("2. To calculate logx to the base 10\n");

printf("3. To calculate lnx \n");

printf("4. To calculate square root of x\n");

printf("\n");

printf("enter your choice:[1/2/3/4]");

scanf("%1s",&i);

switch(i)

{

case '1': fexp(x); break;

case '2': flog10(x);break;

case '3': flog(x);break;

case '4': fsqrt(x);break;

default: printf("Sorry, can\' t do for you!\n"); break;

}

getch();

}

float fexp(float x)

{

}

float flog10(float x)

{

}

float flog(float x)

{

}

float fsqrt(float x)

{

}

评注:

很神奇(这是编译系统的功劳,你要记住哟),程序又能执行了,跟(1)一样,可以走遍所有的路径了。

(3)下面我们试着将一些功能添加到函数中(当然,如果你有能力,可以添加足够复杂的功能,这也是我之希望:例如,求素数、黑洞数、反素数……可逐一添加到你的程序中,你想要某一模块干啥就去干啥):

#include

float fexp(float); /*函数声明*/

float flog10(float); /*函数声明*/

float flog(float); /*函数声明*/

float fsqrt(float); /*函数声明*/

{

char i;

float x;

printf("enter x:");

scanf("%f",&x);

printf("1. To calculate e to the power x\n");

printf("2. To calculate logx to the base 10\n");

printf("3. To calculate lnx \n");

printf("4. To calculate square root of x\n");

printf("\n");

printf("enter your choice:[1/2/3/4]");

scanf("%1s",&i);

switch(i)

{

case '1': fexp(x); break;

case '2': flog10(x);break;

case '3': flog(x);break;

case '4': fsqrt(x);break;

default: printf("Sorry, can\' t do for you!\n"); break;

}

getch();

}

float fexp(float x)

{

printf("exp(%f)=%e\n",x,exp(x)); /*exp(x)表示求e x*/

}

float flog10(float x)

{

printf("log10(%f)=%e\n",x,log10(x)); /*log10(x)表示求log10x */

}

float flog(float x)

{

printf("log(%f)=%e\n",x,log(x)); /* log10(x)表示求log e x */

}

float fsqrt(float x)

{

printf("sqrt(%f)=%e\n",x,sqrt(x));

}

评注:

注意上列源程序中的注释哟,帮助你了解更多的数学库函数。调试上述程序输入测试数据(x为0,选择做操作1),这是什么结果?这2个测试数据输入,应该求的是e啊,e的值谁都知道啊,怎么就不是这个值呢?这一点,我想请你自己想办法了……

11.水仙花数是指一个3位数,其各位数字的立方和等于该数本身。完善函数int daffodil(int n),其功能是判断整数n是否为水仙花数,如是,则该函数返回值1,否则返回值0。

#include

int daffodil(int n)

{int i,k,j;

i=n/100;

k=n/10%10;

j=n%10;

if(n==i*i*i+k*k*k+j*j*j)

return 1;

else

return 0;

}

main()

{ int m,i=0;

for(m=100;m<1000;m++)

if(daffodil(m)==1)

{ printf("%5d",m);

i++;

if(i%5==0)

printf("\n");

}

getch();

}

12.设n0是一个给定的正整数。对于i=0,1,2,…,定义:若n i是偶数,则n i+1=n i/2;若n i是奇数,则n i+1=3n i+1;若n i是1,则序列结束。用这种方法产生的数称为冰雹数。请编写一个函数void hailstones(int n),其功能是显示由n产生的所要求的序列,按每行6个数输出该数列中的所有数。编写main函数,在main函数中定义一个整型变量n,从键盘上输入值77赋给n,用n作为实参调用函数hailstones。

测试数据:77↙

输出结果:

Hailstones generated by 77:

77 232 116 58 29 88

44 22 11 34 17 52

26 13 40 20 10 5

16 8 4 2 1

Number of hailstones generated:23

#include

int i=0;

void hailstones(int n)

{

while(n!=1)

{

if(i%6==0)

printf("\n");

printf("%5d",n);

if(n%2==0)

n=n/2;

else

n=3*n+1;

i++;

}

printf("%5d",n);

i++;

}

main()

{

int n;

scanf("%d",&n);

printf("Hailstones generated by %d\n",n);

hailstones(n);

printf("\nNumber of hailstones generated:%d",i);

}

13.从键盘上输入一个正整数x,判断x是否为质数,如果是则输出“TURE”,否则输出“FALSE”。

#include

#include

main()

{

int x,k,i;

scanf("%d",&x);

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

if(x%i==0)

break;

if(i>k)

printf("TRUE");

else

printf("FALSE");

}

14.请按要求编写程序。编程要求:

(1)编写函数int twinborn(int m,int n),其功能是判断整数m和n是否为孪生质数对(相差为

2的两个质数称为孪生质数),如是,则函数返回值1,否则返回值0。

(2)编写main函数,求出[10,99]内的所有孪生质数对,使得程序的运行结果为:

11, 13

17, 19

29, 31

41, 43

59, 61

71, 73

#include

#include

int prime(int m)

{

int n;

for(n=2;n<=sqrt(m);n++)

if(m%n==0)

return 0;

return 1;

}

int twinborn(int m,int n)

{ if(prime(m)+prime(n)==2)

return 1;

else

return 0;

}

main()

{

int m,n;

for(n=10;n<=97;n++)

{ m=n+2;

if(twinborn(m,n)==1)

printf("%5d,%5d\n",n,m);

}

}

53. 请编写函数int twinborn(int a[][2],int m,int n),其功能是找出[m,n]中的所有孪生质数对(相差为2的两个质数称为孪生质数),并依次将每对孪生质数写到a指向的二维数组的每一行中。编写main函数,声明一个100×2的二维数组a,并从键盘上输入m 和n的值,用a、m、n作为实在参数调用函数twinborn,将结果数组以行为单位输出至屏幕。例如,测试数据和运行结果如下:

input two numbers:10 100

11, 13

17, 19

29, 31

41, 43

59, 61

71, 73

#include

#include

int prime(int i)

{int k;

for(k=2;k

if(i%k==0)

return 0;

return 1;

}

int twinborn(int a[][2],int m,int n)

{ int k=0,i;

for(i=m;i<=n-2;i+=1)

if(prime(i)&&prime(i+2))

a[k][0]=i,a[k][1]=i+2,k++;

return k;

}

main()

{ int a[100][2],m,n,i;

printf("input two numbers:");

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

m=twinborn(a,m,n);

for(i=0;i

printf("%5d,%5d\n",a[i][0],a[i][1]);

getch();

}

15.以下程序欲实现从键盘输入一个较大的整数n(n>=6),然后验证6到n之间的所有偶数都可以分解为两个质数之和。但程序有些错误,请改正这些错误以达到要求的功能。

【含有错误的源程序】

#include "stdio.h"

void main()

{

int k,j,n,limit;

do

printf("Input a number>=6:");

scanf("%d",&limit);

while(limit<6);

for(n=6;n<=limit;n+=2)

for(k=3;k<=n/2;k+=2)

if(prime(k))

{ j=n-k;

if(prime(j))

{ printf("%d=%d+%d\n",n,k,j);

continue;

}

}

}

int prime(int m)

{

int g,h; h=sqrt(m);

for(g=2;g<=h;g++)

if(m%g==0)

return 0;

else

return 1;

}

#include "stdio.h"

#include

void main()

{ int k,j,n,limit;

do

{printf("Input a number>=6:");

scanf("%d",&limit); }

while(limit<6);

for(n=6;n<=limit;n+=2)

{for(k=3;k<=n/2;k+=2)

{if(prime(k))

{ j=n-k;

if(prime(j))

{ printf("%d=%d+%d\n",n,k,j);

continue;

}

}

}

}getch();

}

int prime(int m)

{

int g,h; h=sqrt(m);

for(g=2;g<=h;g++)

if(m%g==0)

return 0;

return 1;

}

16.请编写程序,找出满足如下条件的整数m:(1)该数在[11,999]之内;(2) m、m2、m3

均为回文数。例如m=11,m2=121,m3=1331,11、121、1331皆为回文数,故m=11是满足条件的一个数。请设计函数int value(long m),其功能是判断m是否是回文数,如是,该函数返回值1,否则返回值0。编写main函数,求出[11,999]内满足条件的所有整数。

#include

int value(long m);

void main()

{

long m,n;

for(n=11;n<=999;n++)

{m=n;

if(value(m))

m=n*n;

if(value(m))

m=n*n*n;

if(value(m))

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

}

getch();

}

int value(long m)

{ long a=0,b;

b=m;

while(m)

{

a=a*10+m%10;

m=m/10;

}

if(a==b)

return 1;

return 0;

}

54. 请编写函数int palindrome(long *a,long m,long n),其功能是找出[m,n]内的所有回文数(回文数:顺读倒读其值都相同的数,例如12321),函数返回[m,n]内回文数的个数。编写main函数,声明一个长度为1000的长整型数组a,从键盘输入长整型数m和n,用a、m、n作为实在参数调用函数palindrome,将结果数组输出至屏幕,并输出符合条件数的个数。例如,若m=100 n= 500,则输出结果为:

101 111 121 131 141

151 161 171 181 191

202 212 222 232 242

252 262 272 282 292

303 313 323 333 343

353 363 373 383 393

404 414 424 434 444

454 464 474 484 494

count=40

#include

int palindrome(long *a,long m,long n)

{

long x,y,i=0,k;

for(x=m;x<=n;x++)

{

k=0;

y=x;

while(y)

{k=k*10+y%10;

y=y/10;}

if(k==x)

a[i++]=x;

}

return i;

}

main()

{

long a[1000],m,n,i,count;

printf("input m&n");

scanf("%ld %ld",&m,&n);

count=palindrome(a,m,n);

for(i=0;i

{

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

if((i+1)%5==0)

printf("\n");

}

printf("count=%ld",count);

getch();

}

17.请按要求编写程序。编程要求:

(1)编写函数long Fibonacci(int n),其功能是:求Fibonacci数列中大于t 的最小的一个数,函数返回该数。下列数列为Fibonacci数列:1,1,2,3,5,8,13,21,……,即从第3项开始,每一项均为前两项的和。

(2)编写main函数,从键盘上输入一个整数t,用t作为实在参数调用Fibonacci函数,并输出调用结果。

例如,当t=1000时,输出为1597。

#include

long Fibonacci(long int n);

main()

{long int n;

scanf("%ld",&n); Fibonacci(n); getch(); }

long Fibonacci(long int n) { long int x=1,y=0; while(x<=n) {x=x+y; y=x-y ; }

printf("%ld",x) ; }

18.下列给定程序中,函数fun 的功能是:计算如下公式

()()()

12222213572462n n s n -?+=-+-?…-1

直到

()

()3

2

21102n n -?+≤?,并且把计算结果作为函数值返回。

例如,若形参e 的值为1e-3,则函数返回值为0.551690。请在下画线处填入正确的内容并将

下画线删除,使程序得出正确的结果。注意:不得增行或删行,也不得更改程序的结构!

#include double fun(double e) { int i, k; double s, t, x; s=0; k=1; i=2; x=__1__/4; while( __2__ ) { s=s+k*x; k=-k; t=2*i; x=__3__/(t*t); i++; } return s; } main() { double e=1e-3; printf("\nThe result is: %f\n",fun(e)); } #include double fun(double e) { int i, k; double s, t, x; s=0; k=1; i=2; x=3,0/4; while( x>e ) { s=s+k*x; k=-k; t=2*i; x=(t+1.0)/(t*t); i++; } return s; } main() { double e=1e-3; printf("\nThe result is:%f\n",fun(e));getch(); }

19.下列给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新数,作为函数值返回。

例如,输入一个整数27638496,函数返回值为64862。

#include

#include

unsigned long fun(unsigned n);

main()

{unsigned long n;

fun(n);

getch();

}

unsigned long fun(unsigned n)

{ int b;

unsigned long a;

a=0;

printf("Enter an integer:");

scanf("%ld",&n);

while(n%10!=0)

{ b=n%10;

if(b%2==0)

a=a*10+b;

n=n/10;

}

printf("%ld",a);

getch();

}

20.请编写程序求出从键盘上输入的两个正整数a和b的最大公约数和最小公倍数。

#include

main()

{

int p,r,n,m,temp;

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

if(n

{temp=n;n=m;m=temp;}

p=n*m;

while(m)

{r=n%m;n=m;m=r;}

printf("%d,%d\n",n,p/n);

}

21.请编写程序利用下列公式为公式求π的近似值。公式为:

要求:先求出前2n项的π值,再求出2n+2项的π值,直至两者之差小于10-5为止。

#include

main()

{

int n;

float a,b;

a=1,b=4.0/3;

n=1;

while(b-a>=1e-5)

{

a=b;

n++;

b=b*4*n*n/(2*n-1)/(2*n+1);

}

printf("%12f%12f",2*a,2*b);

getch();

}

22.请编写程序计算1!+2!+3!+……+n!的前10项之和。

#include

main()

{

int n,i;

long s,t;

s=0, t=1;

printf("input n=");

scanf("%d",&n);

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

{

t=i*t;

s=s+t;

}

printf("sum=%ld\n",s);

getch();

}

23.请编写程序求出满足如下条件的一个四位整数,它的9倍恰好是其反序数(所谓反序数是指正读和倒读相同的数。例如,1234和4321互为反序数)。

#include

main()

{

int i,j,a;

for(i=1001;i<10000;i++)

{

a=i;j=0;

while(a)

{

j=j*10+a%10;

a=a/10;

}

if(j==i*9)

printf("%d",i);

}

getch();

}

24.请编写程序求出满足如下条件的四位数n:

(1)n的范围为[5000,8000];

(2)n千位上的数减百位上的数减十位上的数减个位上的数大于零。编程要求:以每行10个输出满足条件的数及该类数的个数。

#include

main()

{

int n,a,b,c,d,s,i=0;

for(n=5000;n<=8000;n++)

{

a=n/1000;

b=n%1000/100;

c=n%100/10;

d=n%10;

s=a-b-c-d;

if(s>0)

{i++;

printf("%d\t",n);

if(i%10==0)

printf("\n");

}

}

printf("sum=%d",i);

getch();

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键盘¥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; 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);这条语句 改成:printf("%c %c %d\n",a,b,c);

c语言程序基础练习题00道(附答案)

1.下列四组选项中,均不是C语言关健字的选项是( A )。 A) define B) gect C) include D) while IF char scanf go type printf case pow 2.下面四个选项中,均是合法整型常量的选项是( A )。 A)160 B)-0xcdf C) -01 D)-0x48a -0xffff 01a 986,012 2e5 011 0xe 0668 0x 3.下面四个选项中,均是不合法的转义符的选项是( B )。 A) '\"' B) '\1011' C) '\011' D) '\abc' '\\' '\' '\f' '\101' 'xf' '\A' '\}' 'x1f' 4.下面不正确的字符串常量是( A )。 A)'abc' B)"12'12" C)"0" D)" " 5.以下选项中不合法的用户标识符是( A )。 A)abc.c B)file C)Main D)PRINT 6.C语言提供的合法关键字是( D )。 A) swith B) cher C) Case D)default 7.下列标识符组中,合法的用户标识符为 A A)_0123与ssiped B)del-word与signed C)list与*jer D) keep%与wind 8.在C语言中,逻辑值"真"的表示是用( C )。 A) true B) 整型值0 C)非另整型值 D) T 9若有以下定义 char s='\092'; 则该语句( b ) A)使s的值包含一个字符 B)定义不合法,s的值不确定 C)使s的值包含4个字符 D)使s的值包含3个字符 10设C语言中,int类型数据占2个字节,则float类型数据占( D )个字节。 A)1 B)2 C)8 D)4 11已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3'后,c2中的值为( A )。 A)D B)68 C)不确定的值 D)C 12逻辑运算符两侧运算对象的数据类型是 ( D )。 A) 只是0或1 B) 只能是0或非0正数 C) 只能是整型或字符型数据 D) 可以是任何合法的类型数据 13TURBO C中int类型变量所占字节数是( B )。

游戏C语言实验报告完整版

游戏C语言实验报告 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

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

目录

一、实验目的和要求 (1)使用C语言编写2048这款游戏。 (2)能够正常运行,拥有游戏界面。 (3)能正常进行游戏从开始到结束。? (4)用户操作方便。 二、实验环境、内容和方法 实验内容:1、游戏开始时随机产生两个数值为2/4的方格,其中一个方格置于4个角中的一个位置,另一个方格随机的置于其他位置,其他方格置于0。 2、每次按方向键(w,s,a,d)后,逐行计算移动后的方格值。每行移动的算法是:先将所有值为0的数移至行首。能后从行尾开始逐一和前一个数比较,如果相等则合并这2个格子。 3、每合并一次格子,将其值累计到游戏总分中。 4、一次移动结束后,在所有值为0的方格中随机的分配一个2/4的值。 5、所有方格值不为0且上下、左右相邻的方格都不相等,则游戏结束。 6、2出现的概率为70%,4出现的概率为30%。 实验方法: 通过上机操作完成各内容。 实验环境: 实验用PC机一台,使用操作系统为Windows 7/ Windows 8/ Windows10,安装 vc++或v2008等编译软件 三、程序设计 Y

四、源代码 #include<> #include<> #include<> #include<> #define M 2048 void up(); n"); printf(" 玩家可以选择上(w)下(s)左(a)右(d)四个方向,若棋盘内的数字出现位移或合并,视为有效移动.\n"); printf(" 若有相同的数字则合并,每次有效移动可以同时合并,但不可以连续合并.\n"); printf(" 合并所得的所有新生成数字想加即为该步的有效得分.\n"); printf(" 玩家选择的方向行或列前方有空格则出现位移.\n"); printf(" 每有效移动一步,棋盘的空位(无数字处)随机出现一个数字(依然可能为2或4).\n"); printf(" 棋盘被数字填满,无法进行有效移动,判负,游戏结束.\n"); printf(" 棋盘上出现2048,判胜,游戏结束"); printf("\n\n\n"); printf(" \t\t\t按回车开始游戏.\n"); getchar(\n);

C语言程序设计实验报告(实验大纲+过程)

《C程序设计》实验教学大纲 一、适用范围 大纲适用信息管理专业本科教学使用。 二、课程名称 C程序设计 三、学时数与学分 总学时:90 总学分:4 实验学时:28 实验学分:1 四、教学目的和基本要求 目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握 C 语言程序设计的基本方法和编程技巧。 基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 注:带*的实验项目为选做实验项目 六、教材、讲义及参考书 《C程序设计题解与上机指导》谭浩强主编清华大学出版社 七、实验成绩评定办法 实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%。 实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。 1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。

2、实验报告:学生实验后应按时完成实验报告。 八、实验教学大纲说明 本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。 九、实验项目 实验一C程序的运行环境和运行一个C程序的方法 一、实验目的 1.了解Visual C++6.0编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1.用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的? 2.编写一个C程序,输出以下信息: **************************** very good! **************************** 3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。 实验二数据类型、运算符和表达式 一、实验目的 1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。 2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 二、实验内容 1.输入并运行以下程序: main( ) { char c1,c2; c1=97;c2=98; pr intf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2); } 在此基础上 ①将第三行、第四行改为: c1=321;c2=353; 再使之运行,分析其运行结果。 ②将第二行改为: int c1,c2; 再使之运行,分析其运行结果。。 2.输入并运行以下程序:

C语言实验报告合集

《C语言程序设计》实验报告 专业:班级:学号:学生姓名:实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验一熟悉VC++环境 二、实验目的 1. 熟悉C程序编辑环境,掌握主要菜单项的作用。 2. 熟悉编写一个C程序的上机过程(编辑、编译、链接和运行)。 3. 熟悉C程序的基本输入输出语句 三、实验内容 1. 书本第一章的例一程序。 2. 由键盘输入两个整数,求得它们的和并输出至屏幕。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: #include "stdio.h" int main() {int a,b,sum; a=2; b=3; sum=a+b; printf("007zhang\nsum=%d\n",sum); return 0; } 运行结果为:

2.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)

《C语言程序设计》实验报告 专业:班级:学号:学生姓名: 实验日期:成绩:指导老师: 实验单元一程序基本结构设计 一、实验题目 实验二顺序结构程序设计 二、实验目的 (1)掌握C语言数据类型以及变量的声明。 (2)掌握C语言的赋值运算符、赋值表达式、赋值语句。 (3)掌握C语言的整型和字符型的混合运算。 (4)掌握C语言的输入、输出函数的使用格式。 三、实验内容 1.有人用温度计测量出华氏温度,现输入华氏温度f,请编写程序把它转换为摄氏温度c。 已知华氏温度和摄氏温度有如下关系:c=5/9(f-32)。 2.输入长方形的长和宽,编程求该长方形的周长和面积。(要求周长和面积保留两位小数) 3.将字符串“China”译成密码,译码规则是:用字母表顺序中原来字母后面的第5个字母 替代原来的字母。请编写程序实现译码并输出。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: 运行结果为: 2.源程序代码: 运行结果为: 3.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进

C语言上机实验[1]

实验四循环结构程序设计(4学时) 一、实验方式:一人一机 二、实验目的: 1、熟练掌握while语句、do-while语句和for语句。 2、练习并掌握循环结构的嵌套形式。 3、掌握循环结构的程序设计方法。 三、实验内容:说明:前四题为必做题目,后两题为选做题目。 1、从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结 束输入。(实验指导书P41) 2、求所有的水仙花数。水仙花数是一个3位数的自然数,该数各位数的立方和等于该数 本身。(实验指导书P42) 3、判断输入的某个数是否为素数。若是,输出YES,否则输出NO。(实验指导书P167) 4、计算π的近似值。公式如下:π/4=1-1/3+1/5-1/7+……,直到最后一项的绝对值小 于10-6为止。(实验指导书P169) 5、计算1!+2!+……+n! 的值,n值由键盘输入。(实验指导书P176) 6、输入10个整数,统计并输出其中正数、负数和零的个数。 四、实验答案:(代码+运行结果截屏) 实验五综合实验1:结构化程序设计(2学时) 一、实验方式:一人一机 二、实验目的: 1、进一步掌握选择结构、循环结构的编程特点。 2、掌握C语言的结构化程序设计思想。 3、学习利用循环结构实现的一些常用算法(如穷举、迭代、递推等)。 三、实验内容:说明:前两题为必做题目,后两题为选做题目。 1、编一程序,对于给定的一个百分制成绩,输出对应A,B,C,D,E表示的的等级成绩。设: 90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。(实验指导书P162) 2、百马百担问题。(实验指导书P45) 3、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 4、输出如下图案: * *** ***** ******* ***** *** * 四、实验答案:(代码+运行结果截屏)

C语言上机实验题

第六章循环控制 通过本章实验作业应达目标 1.熟悉while、for、do_while、break、continue语句的作用与使用规范。 2.学习并掌握利用while语句、for语句、do_while语句实现循环结构。 3.掌握循环结构和选择结构之间嵌套、多重循环间嵌套的设计方法。 4.进行算法设计训练,能综合所学控制结构语句解决一般问题。 本章必须上交作业 程序6_1.c、6_2.c、6_5.c、6_6.c、6_8.c上传至211.64.135.121/casp。 本章开始,上机实验项目量加大,希望同学们多多自行上机。本章实验项目有余力都可以做一下并上交。 循环程序设计 计算机解决问题都是按指定的顺序执行一系列的动作。按照特定的顺序执行相应的动作来求解问题的过程称为算法。程序中的语句是算法的体现,而算法要解决的是“做什么”和“怎么做”的问题。 计算机程序中指定语句的执行顺序称为“程序控制”。结构化的程序控制包含三种基本结构:顺序结构,选择结构和循环结构。 1. 循环设计 循环是在循环条件为真时反复执行的一组计算机指令,是计算机解题的一个重要结构。循环控制有两种基本方法:计数法和标志法。 1)计数器控制的循环 事先准确地知道循环次数,因此设计一个循环控制变量,由变量值来控制循环次数。每循环一次,循环变量的值会递增(增值通常为1或-1),当其值达到终值时结束循环。 教材例6.2、6.3、6.7都是典型的计数器控制的固定次数次数循环。 2)标志控制的循环 事先不知道准确的循环次数,由某一目标值标记循环的结束。如,教材例6.6中以|t|的值达到标记下限值1e-6作为循环的结束。 循环设计时要注意合理设计循环条件,使得循环不会成为死循环。 2. 算法 程序设计的首要工作是算法设计,离开了算法也就没有了程序。算法,是指完成某一项工作而采取的方法和步骤,具体到程序设计,是对解题过程的准确而完整的描述,并用一种程序设计语言的来实现。 循环主要用来解决程序设计中两类基本的算法:穷举和迭代。 1)穷举 穷举的基本思想是对问题的所有可能状态一一测试,直到找到解或将全部可能状态都测试过为止。穷举是一种重复型算法,其核心是设计循环,在循环体中依次测试。 例:输入两个正整数x和y,求其最大公约数。 main() {int x,y,i,flag; printf("Please input two numbers:"); scanf("%d%d",&x,&y);

C语言实验报告

《C语言程序设计实训1》报告 设计题目:基于数组的学生信息管理系统学院名称:信息科学技术学院

专业:计算机科学与技术 班级: 姓名:学号 指导教师: 提交日期: 2014年12月22日 一、实验内容 编写并调试程序,实现学校各专业班级学生信息的管理。10个学生的信息存储在文件中。在头文件中定义学生信息的结构体类型,包括: 学号、姓名、专业、班级、3门成绩;和符号常量N(学生数)。(同一班 级的学生可以属于不同的专业,同一专业的学生可以属于不同的班级)

二、实验要求 (1)main函数:以菜单形式将各项功能提供给用户,根据用户的选择, 调用相应的函数。 STU student[N]; 函数 #include "" void main() { int i,n,id,num,m,sub,corse;将从文件中读取10个人的信\n"); printf("\n2.您将从文件中随机读取第n(0<=n<=9)个学生的信息\n") printf("\n3.您将根据某一班级某一专业总分超过多少进行查找\n"); printf("\n4.您将求某一课程分数最高的学生序号的下标\n"); printf("\n5.您将对平均成绩由低到高进行简单选择排序法\n ");

printf("\n6.您将对某一个班的平均成绩由低到高进行起泡排序法\n"); printf("\n7.您将对某门专业的学生的某门课程成绩由低到高进行直接插入排序法\n"); printf("\n8.您将把学生信息存入文件\n"); scanf("%d",&id); getchar(); switch(id){ case 1: { printf("\n从文件中读取信息\n"); Input(students,sizeof(students)/sizeof(STU));Sort_select 函数 #include "" void Sort_select(STU * p) { int i,j,k; float sum,ave[N],t; STU tem; for(i=0;i

C语言常见、经典的上机实验题目

3.3 常见、经典的上机实验题目 1、 /*功能:数组x有十个元素,编程将其元素首尾颠倒。(即第一个元素与最后一个元素交换,第二个元素与倒数第二个元素交换…)。*/ main() {int a[10]={5,65,654 ,5 ,5 ,56,588,77,58,5},j,x; for(j=0;j<5;j++) {x=a[j]; a[j]=a[9-j]; a[9-j]=x;} for(j=0;j<10;j++) printf("%d\t", a[j]); } 2、 /*功能:统计输入的一串字符(假设以‘\n’结束)中,大写字母A,B,...,Z各出现的次数。(提示,用一个数组count[26]计数各个字母出现的次数,count[0]表示A出现的次数,count[1]表示B出现的次数,...,count[25]表示字母Z出现的次数。初始时count的各元素值为0。以后,每读入一个字符ch ,若它是一个大写字母,就让相应计数单元count[ch-'A']加1。*/ main( ) {int count[26] ,i; char ch[80]; for(i=0;i<26;i++) count[i]=0; gets(ch); for(i=0;i ='A'&&ch[i]<='Z') count[ch[i]- 'A']++; for(i=0;i<26;i++) printf("%c %d\t", 'A'+i,count[i]); } 3、 /*功能:键盘输入若干数,输出它们的平均值,输入值为-1时,结束输入*/ main( ) {int x,i=1,s; scanf("%d",&x); while(x!=-1) {s=s+x;i++; scanf("%d",&x); } printf("%d\n",s/i); }

C语言实验报告合集

f r 《C 语言程序设计》实验报告 专业: 班级: 学号: 学生姓名: 实验日期: 成绩: 指导老师: 实验单元一 程序基本结构设计 一、实验题目 实验一 熟悉VC++环境 二、实验目的 1. 熟悉C 程序编辑环境,掌握主要菜单项的作用。 2. 熟悉编写一个C 程序的上机过程(编辑、编译、链接和运行)。 3. 熟悉C 程序的基本输入输出语句 三、实验内容 1. 书本第一章的例一程序。 2. 由键盘输入两个整数,求得它们的和并输出至屏幕。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2.软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: #include "stdio.h"int main(){int a,b,sum;a=2;b=3; sum=a+b; printf("007zhang\nsum=%d\n",sum);return 0;} 运行结果为:

2.源程序代码: 运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)

f r 《C 语言程序设计》实验报告 专业: 班级: 学号: 学生姓名: 实验日期: 成绩: 指导老师: 实验单元一 程序基本结构设计 一、实验题目 实验二 顺序结构程序设计 二、实验目的 (1)掌握C 语言数据类型以及变量的声明。 (2)掌握C 语言的赋值运算符、赋值表达式、赋值语句。(3)掌握C 语言的整型和字符型的混合运算。(4)掌握C 语言的输入、输出函数的使用格式。 三、实验内容 1.有人用温度计测量出华氏温度,现输入华氏温度f ,请编写程序把它转换为摄氏温度c 。已知华氏温度和摄氏温度有如下关系:c=5/9(f-32)。 2.输入长方形的长和宽,编程求该长方形的周长和面积。(要求周长和面积保留两位小数) 3. 将字符串“China ”译成密码,译码规则是:用字母表顺序中原来字母后面的第5个字母替代原来的字母。请编写程序实现译码并输出。 四、实验环境 1.硬件环境:当前所有电脑硬件环境均支持。 2. 软件环境:Visual C++ 6.0 五、实验代码及结果(程序运行结果请以截屏图给出) 1.源程序代码: 运行结果为: 2.源程序代码: 运行结果为: 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语言上机实验标准答案.doc

实验一上机操作初步 (2 学时 ) 一、实验方式:一人一机 二、实验目的: 1、熟悉 VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个 C 程序。 3、初步了解 C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息: ( 实验指导书 P79) ************************* Very Good ************************* 2、计算两个整数的和与积。( 实验指导书 P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。 ( 书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 五、实验调试记录: 六、参考答案: 1、#include <> void main( ) {printf( printf( printf( “ ********************\n “Very Good\n” ); “ ********************\n ” ); ” ); } 2、#include <> void main( ) {int a,b,c,d; printf( “ Please enter a,b: ”);

scanf( “%d,%d” ,&a,&b); c=a+b; d=a*b; printf( “ %d+%d=%d\n” ,a,b,c); printf( “ %d*%d=%d\n” ,a,b,d); } 3、#include <> #include <> void main( ) { double x,s; printf( “ Please input value of x: ”); scanf( “%lf ” ,&x); s=cos(x); printf( “ cos(%lf)=%lf\n ”,x,s); } 4、#include <> void main( ) { printf( “ ==================================\n”); printf( “ 1 输入数据 2 修改数据 \n ”); printf( “ 3 查询数据 4 打印数据 \n ”); printf( “ ===================================\n”); } 5、#include <> void main( ) { int x,y,t; printf( “ Please enter x and y: ”); scanf( “%d%d”,&x,&y); t=x; x=y; y=t; printf( “ After swap:x=%d,y=%d\n ” ,x,y); } 实验二简单的 C程序设计 (4 学时 ) 一、实验方式:一人一机 二、实验目的: 1、掌握 C语言的数据类型。 2、学会使用 C语言的运算符及表达式。 3、掌握不同数据类型的输入输出方法。 三、实验内容: 说明:前四题为必做题目,后两题为选做题目。

C语言程序设计_上机实验指导与习题_第三版_(陈湘骥_编著_著)_华南农业大学_参考答案

C语言程序设计上机实验指导与习题 参考答案 (仅供教师内部参考) 华南农业大学

目录 上机实验 (1) 实验 1 C语言程序初步 (1) 一、实验目的 (1) 二、实验内容 (1) 实验2基本数据类型、运算和表达式 (3) 一、实验目的 (3) 二、实验内容 (3) 实验3基本输入与输出 (5) 一、实验目的 (5) 二、实验内容 (5) 实验4选择结构程序设计 (4) 一、实验目的 (4) 二、实验内容 (4) 实验5循环结构程序设计(一) (9) 一、实验目的 (9) 二、实验内容 (9) 实验6循环结构程序设计(二) (15) 一、实验目的 (15) 二、实验内容 (15) 实验7数组 (17) 一、实验目的 (17) 二、实验内容 (17) 实验8字符数组的应用 (22) 一、实验目的 (22) 二、实验内容 (22) 实验9函数的基本应用 (24) 一、实验目的 (24) 二、实验内容 (24) 实验10指针与结构体 (26) 一、实验目的 (26) 二、实验内容 (26) *实验11链表 (29) 一、实验目的 (29) 二、实验内容 (29) *实验12文件 (32) 一、实验目的 (32) 二、实验内容 (32)

上机实验 实验 1 C语言程序初步 一、实验目的 (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。 (2)了解在该系统上如何编辑、编译、连接和运行一个C程序。 (3)通过运行简单的C程序,初步了解C程序的特点。 (4)在教师的指导下,学会使用JudgeOnline实验系统。 二、实验内容 1. 运行第一个 C 程序 [题目:The first C Program] 将下列程序输入 TC(或 VC++),编译、连接和运行该程序。 void main() { printf("The first C Program\n"); } [具体操作步骤] 以 Turbo C 上的操作为例 (1)Windows 进入后,按照第一章中介绍的方法,进入 Turbo C。 (2)在编辑窗口中输入程序。 (3)保存程序,取名为 a1.c。 (4)按照第一章中介绍的方法,编译、连接和运行程序。 2.在JudgeOnline系统中提交实现了计算a+b功能的程序 [题目 1001:计算 a+b] 由键盘输入两个整数,计算并输出两个整数的和。实现该功能的程序如下, void main() { int a, b; scanf("%d%d", &a, &b); 1

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语言实验报告1

C语言程序设计报告 日

程序主要内容 任务1. 程序首先随机产生一到十之间的正整数,在屏幕上打印出问题,例如6*7=?然后让学生输入答案,序检查学生输入的答案是否正确,若正确,则“RIGHT”,然后问下一个问题,否则打印“WRONG,PLEASE TRY AGAIN”,然后提示学生重做,直到答对为止。 程序如下: #include #include #include int Magic(int x); int Answer(); main() { int guess,answer,counter=1; do{ printf("%d*%d=",Magic(1),Magic(2)); answer=Magic(1)*Magic(2); if(Answer()==answer) { printf("Right\n"); break; } else printf("Wrong!,please try again\n"); }while(counter>=1); } int Magic(int m)

int x,int y; srand(time(NULL)); x=rand()%10+1; y=rand()%10+1; if(m==1) return x; if(m==2) return y; } int Answer() { int n; scanf("%d",&n); return n; } 任务2:在(1)的基础上,当学生回答错误时,最多给三次重做的机会。 :程序如下: #include #include #include int Magic(int x); int Answer(); int Exam(); main() { int n; n=Exam(); if(n==0) printf("Right\n"); else if(n==1) printf("Wrong!You have tried

C语言上机实验(第四版)参考答案

C语言上机实验(第四版)参考答案 C语言程序设计上机实验指导与习题 参考答案(第四版) (学生改编) 实验 1 C语言程序初步一、实验目的 (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。(2)了解在该系统上如何编辑、编译、连接和运行一个C程序。(3)通过运行简 单的C程序,初步了解C程序的特点。(4)在教师的指导下,学会使用在线 评判系统。 二、实验内容 1. 运行第一个C程序 [题目:The first C Program] 将下列程序输入visual c++ ,编译、连接和运行该程序。 #include\main() { printf(\ } [具体操作步骤] (1)在编辑窗口中输入程序。 (2)保存程序,取名为 a1.c。 (3)按照第一章中介绍的方法,编译、连接和运行程序。 (4)按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”,则该题完成。 2. 在在线评判系统中提交实现了计算a+b功能的程序 [题目1001:计算a+b] 由键盘输入两个整数,计算并输出两个整数的和。实现该功能的程序如下, #include \main() { int a, b;

scanf(\ printf(\ } (1)在程序编辑窗口中输入程序。(2)保存程序,取名为 a2.c。 (3)按照前二章中介绍的方法,编译、连接和运行程序。(4)在程序运行 过程中,输入 15 30↙ (↙表示输入回车符) (5)如果看到如下输出结果,则表明15+30 的结果正确,如果得不到如下结 果,则需检查并更正程序。 45 (6)按照第三章中介绍的方法进入在线评判系统。 (7)显示题目列表,点击题号为1001,题名为“计算a+b”的题目。 (8)查看完题目要求后,点击页面下端的“sumbit”,参照第二章提交程序 的方法提交程序a2.c。 (9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检 查程序是否正确。 3 实验 2 基本数据类型、运算和表达式一、实验目的 (1)掌握C语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它 们赋值的方法。(2)掌握不同的类型数据之间赋值的规律。 (3)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是 自加(++)和自减(--)运算符的使用。 (4)进一步熟悉C程序的编辑、编译、连接和运行的过程。二、实验内容 1. 变量的定义 [题目 1117:变量定义,按要求完成程序] 下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整 缺少的语句。 #include \ main() { int a, b; /*定义整型变量 a和 b*/ int i, j; /*定义实型变量i和 j*/ a=5; b=6; i=3.14; j=i*a*b; printf(\ } [具体操作步骤]

游戏C语言实验报告

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

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

c语言上机实验报告 (2)

c语言上机实验报告 (2) 实验六 姓名班级单周上机的那班学号 一 程序源:#include #include void main() { FILE*fp; fp=fopen("E:\\yxf01.text","w"); if(fp==NULL) { printf("文件打不开"); exit(0); } int a,i; printf("请输入一个尾部为0的整数\n"); scanf("%d",&a); while(a%10!=0) { printf("输入值非法,请从新输入!\n"); scanf("%d",&a); }

fprintf(fp,"%d=%d+%d+%d+%d+%d+%d+%d+%d+%d+%d\n",a,a/10,a/10,a/10,a/1 0,a/10,a/10,a/ 10,a/10,a/10,a/10); fprintf(fp,"%d=%d+%d+%d+%d+%d+%d+%d+%d+%d\n",a,a/10,a/10,a/10,a/10,a /10,a/10,a/10,a/ 10,a-8*(a/10)); fprintf(fp,"%d=%d+%d+%d+%d+%d+%d+%d+%d\n",a,a/10,a/10,a/10,a/10,a/10 ,a/10,a/10,a-7*(a /10)); fprintf(fp,"%d=%d+%d+%d+%d+%d+%d+%d\n",a,a/10,a/10,a/10,a/10,a/10,a/ 10,a-6*(a/10)); fprintf(fp,"%d=%d+%d+%d+%d+%d+%d\n",a,a/10,a/10,a/10,a/10,a/10,a- 5*(a/10)); fprintf(fp,"%d=%d+%d+%d+%d+%d\n",a,a/10,a/10,a/10,a/10,a-4*(a/10)); fprintf(fp,"%d=%d+%d+%d+%d\n",a,a/10,a/10,a/10,a-3*(a/10)); fprintf(fp,"%d=%d+%d+%d\n",a,a/10,a/10,a-2*(a/10)); fprintf(fp,"%d=%d+%d\n",a,a/10,a-(a/10)); fclose(fp) } 运行结果:

相关文档