文档库 最新最全的文档下载
当前位置:文档库 › c语言实验答案

c语言实验答案

c语言实验答案
c语言实验答案

//1.1编写一程序,在屏幕上输出如下内容:// X | X | X //---+---+--- // | |

//---+---+---

// 0 | 0 | 0

#include

void main()

{

printf(" X | X | X\n"); //注意转义字符\n的用法

printf("---+---+---\n");

printf(" | |\n");

printf("---+---+---\n");

printf(" 0 | 0 | 0\n");

}

//1.2输出"Hello world!"语句

#include

void main()

{

printf("Hello world!\n");

}

//2.1编写一程序,接受用户输入的两个整数,并计算它们的和、差、积、商,程序运行结果应如下所示。

//注意,尖括号部分表示用户输入数据或要被替换的输出内容,尖括号本身并不需要输入或输出。

//多使用几组整数尝试一下,你发现了什么?

//The program gets two integers,and computes their sum,difference,product and quotient.

//The first number:<第一个整数在此输入>

//The second number:<第二个整数在此输入>

//Results as follows:

//<第一个整数>+<第二个整数>=<和>

//<第一个整数>-<第二个整数>=<差>

//<第一个整数>*<第二个整数>=<积>

//<第一个整数>/<第二个整数>=<商>

#include

void main()

{

int a,b;

printf("The program gets two integers,and computes their sum,difference,product and quotient.\n");

printf("The first number:");

scanf("%d",&a);

printf("The second number");

scanf("%d",&b);

printf("Results as follows:\n");

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

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

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

printf("%d+%d=%f\n",a,b,1.0*a/b); //做除法时要注意,除得的结果是实数

}

//2.2输入半径r的值,求出圆周长,圆面积

#include

#define PI 3.14

void main()

{

int r;

float zhouchang,mianji;

printf("please input r:");

scanf("%d",&r);

zhouchang=2*PI*r;

mianji=2*PI*r*r;

printf("zhouchang=%f\n",zhouchang );

printf("mianji=%f\n",mianji);

}

//3.1如何实现下述输出要求?

//A.输出整数1234,输出共占8位,数据左对齐。

//B.输出整数1234,输出共占10位,数据右对齐。

//C.输出十六进制整数0xFFDE3C02,输出共占8位,数据左对齐。

//D.输出十六进制整数0xFFDE3C,输出共占8位,数据右对齐,前补0。

//E.输出浮点数10.36,输出共占6位,数据右对齐。

//F.输出浮点数123.4567890,输出共占12位,精度6位,数据右对齐。

//G.输出浮点数123.4567890,精度3位,数据左对齐。

#include

#define PI 3.14

void main()

{

printf("%-8d\n",1234);

printf("%10d\n",1234);

printf("%-8X\n",0xFFDE3C02);

printf("00%X\n",0xFFDE3C);

printf("%6.2f\n",10.36);

printf("%12.6f\n",123.4567890);

printf("%-.3f\n",123.4567890);

}

//3.2编制程序,接受用户输入的数值,输出以该值为半径的圆面积,

//以该值为半径的球体表面积与体积,pi 取值3.1415926536,结果保留10位有效数字。

#include

#define PI 3.1415926536

void main()

{

float r,yuan,qiu,tiji; //分别为半径,圆面积,球面积,球体积

printf("please input r:");

scanf("%f",&r);

yuan=PI*r*r;

qiu=4*PI*r*r;

tiji=4.0/3*PI*r*r*r;

printf("yuan=%f\nqiu=%f\ntiji=%f\ n",yuan,qiu,tiji);

}

//4.1给出一个百分制成绩,要求输出成绩等级'A','B','C','D','E'。

//90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'。

//分别用if和switch语句实现。

#include void main()

{

int score;

printf("please input score:");

scanf("%d",&score);

switch(score/10)

{

case 10:

case 9:printf("A\n");break;

case 8:printf("B\n");break;

case 7:printf("C\n");break;

case 6:printf("D\n");break;

default:printf("E\n");

}

}

/*以下为if结构

#include

void main()

{

int score;

printf("please input score:");

scanf("%d",&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使用循环结构打印下述图形,打印行

数n由用户输入。图中每行事实上包括两部

分,中间间隔空格字符数m也由用户输入。

// * *********

// *** *******

// ***** *****

// ******* ***

// ********* *

#include

void main()

{

int n; //行数

int i,j; //i为行

的循环变量,j是普通的循环变量

printf("please n:");

scanf("%d",&n);

for(i=1;i<=n;i++) //外层

循环i控制行数

{

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

printf(" ");

for(j=1;j<=2*i-1;j++) //输出星

printf("*");

for(j=1;j<=10;j++) //输出

中间的空格

printf(" ");

for(j=2*(n-i+1)-1;j>=1;j--)

//输出星号

printf("*");

printf("\n");

}

}

//5.2编制程序,按照下述格式打印九九乘

法表。

//Nine - by - nine Multiplication Table

//-----------------------------------

-----------------------------------

// 1 2 3 4 5 6 7 8 9

//-----------------------------------

-----------------------------------

//1 1

//2 2 4

//3 3 6 9

//4 4 8 12 16

//5 5 10 15 20 25

//6 6 12 18 24 30 36

//7 7 14 21 28 35 42 49

//8 8 16 24 32 40 48 56 64

//9 9 18 27 36 45 54 63 72 81

//-----------------------------------

----------------------------------- #include

void main()

{

int i,j;

printf("Nine - by - nine Multiplication Table\n");

printf("------------------------------------------------\n");

printf(" \n ");

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

printf("%4d",i);

printf("\n------------------------------------------------\n");

for(i=1;i<=9;i++) //此双循环结构为本题核心

{ printf("%d",i);

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

printf("%4d",i*j);

printf("\n");

}

printf("------------------------------------------------\n");

}

//5.3存在自然数,其所有小于自身的因子之和等于该数,这样的数称为完数。

//设计算法,判断某个给定的自然数n是否为完数,要求具有容错处理功能。

#include

void main()

{

int n;

int sum=0; //sum保存自然数n的因子之和

int i;

printf("please input n:");

scanf("%d",&n);

for(i=1;i

if(n%i==0)

sum+=i;

if(n==sum) //注意判断相等要用“==”运算符,而不是“=”

printf("yes\n");

else

printf("no\n");

}

//6.1按照下述格式打印2009年5月日历://Calander 2009-5

//-----------------------------------

-------------------

//Su Mo Tu We Th Fr Sa

//-----------------------------------

-------------------

// 1 2 // 3 4 5 6 7 8 9 //10 11 12 13 14 15 16 //17 18 19 20 21 22 23 //24 25 26 27 28 29 30 //31

//-----------------------------------

-------------------

#include

void main()

{

int i;

printf("Calander 2009-5\n");

printf("-------------------------

----------------\n");

printf(" Su Mo Tu We Th Fr Sa\n");

printf("-------------------------

----------------\n");

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

printf(" ");

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

{

printf("%4d",i);

if(i%7==2)

printf("\n");

}

printf("\n-----------------------

------------------\n");

}

//6.2打印所有100至999之间的水仙花数。所谓水仙花数是指满足其各位数字立方和为该数字本身的整数。

#include

void main()

{

int i,j,k,m; //i,j,k分别表示百位、十位、个位数字

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

{

i=m/100;

j=(m-i*100)/10;

k=(m-i*100-j*10)%10;

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

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

}

}

//6.3接受用户输入的正整数n,计算f(n)=1+1/2!+1/3!+...+1/n!的值。

#include

void main()

{

int n,p=1,i;

float sum=0;

printf("please input n:");

scanf("%d",&n);

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

{

p=p*i;

sum+=1.0/p;

}

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

}

//6.4接受用户从键盘输入的年份值与月份值,打印2009年以后(含)任意月份的日历,2009年前的拒绝打印。

#include

void main()

{

int i; //循环变量

int j,day; //j表示周一的位置,day表示月的天数

int year,month,run; //输入的年,月份,run为闰年的标识

long x=0,x1=0,x2=0; //输入的年月之前共有多少天,x为总天数,x1是之前年天数,x2是当年前面月天数

printf("Please input year:");scanf("%d",&year); //输入年份

printf("Please input month:");scanf("%d",&month);//输入月

/////////////////////////////////

//////

///////////求得输入的年月之前有多

少天——x=x1+x2,x1是之前年天数,x2是当

年前面月天数

/////////////////////////////////

//////

for(i=2009;i

{

if((i%4==0&&i%100!=0)||(i%400==0)) //如果i年是闰年

x1=x1+366;

else

x1=x1+365;

}

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

r%400==0))

run=1;

else

run=0;

for(i=1;i

{

if(i==4||i==6||i==9||i==11)

x2=x2+30;

else

{

if(i!=2)

x2=x2+31;

else

{

if(i==2&&run==1)

//2月份并且是闰年

x2=x2+29;

else

x2=x2+28;

}

}

}

x=x1+x2;

/////////////////////////////////////////////////////////

////////////求得输入的年月之前有多少天——x,然后下面的事可操作

/////////////////////////////////

////////////////////////

printf("-------------------------

----\n");

printf(" Su Mo Tu We Th Fr Sa\n");

printf("-------------------------

----\n");

/////////////////////////////////

/////////确定星期一是第几个位置,用前面的天数余7,然后对应位置,这里假定2009年1月1日是星期4,如果不是switch规则也要更改

switch((x+1)%7)

{case 0:j=4;break;

case 1:j=5;break;

case 2:j=6;break;

case 3:j=7;break;

case 4:j=1;break;

case 5:j=2;break;

case 6:j=3;break;

}

/////////////////////////////////

///////定输入的月份有多少天

if(month==4||month==6||month==9|| month==11)

day=30;

else

{ if(month!=2)

day=31;

else

{if(month==2&&run==1) //2月份并且是闰年

day=29;

else

day=28;

}

}

/////////////////////////////////

/////////////////确定j和day后,开始输出

for(i=1;i

printf(" "); //每个位置是4个空格

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

{ printf("%4d",i);

if((i-(7-j+1))%7==0)

printf("\n");

}

printf("\n");

}

//7.1编程实现用数组打印Fibonacci数列的前20项。

#include

void main()

{

long a[30] , i ;

a[0] = a[1] = 0 ;

a[2] = 1 ;

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

a[i] = a[i-1] + a[i-2] + a[i-3] ;

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

{

if( i != 0 && i%5 == 0 )

printf("\n");

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

}

}

//7.2编程实现从键盘输入的一组数中找出其中最大值和最小值。

#include

void main()

{

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

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

{

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

}

max=min=a[0]; //max min赋初值

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

{

if(max

max=a[i];

if(min>a[i])

min=a[i];

}

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

}

//7.3编程实现用一、二维数组分别输出杨辉三角

#include //用二维数组输出杨辉三角形

void main()

{

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

for(i=0;i<10;i++) //将杨辉三角形中值为1的数输入

{

a[i][i]=1;

a[i][0]=1;

}

for(i=2;i<10;i++) //从第3行第2列开始,计算2维数组中的值,外循环控制行数

for(j=1;j<=i-1;j++) //内循环控制列,结束条件根据规律正好是行数减1

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

for(i=0;i<10;i++) //输出2维数组for(j=0;j<10;j++)

{

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

if(i

{

printf("\n");

break;

}

}

}

/*

#include //用一维数组输出杨辉三角形

void main()

{

int a[10]={1},b[10]={1};

int i,j;

for(i=0;i<10;i++) //外层循环,控制输出行数,确定每行数是什么(也相当于列了),然后输出。

{

for(j=1;j<=i;j++) //确定每行的数组元素

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

for(j=1;j<=i;j++) //保存到数组b中做备份

b[j]=a[j];

for(j=0;j<=i;j++) //输出这些数组元素

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

printf("\n"); //回车

}

}

*/

//8.1编程实现将二维数组行列元素互换。#include

void main()

{

int a[3][4],b[4][3];

int i,j;

for(i=0;i<3;i++) //对数组a 赋值

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

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

for(i=0;i<3;i++) //得到数组b for(j=0;j<4;j++)

b[j][i]=a[i][j];

for(i=0;i<4;i++) //输出数组b

{

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

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

printf("\n");

}

}

//8.2编程实现求二维数组中最大元素值及其行号、列号。

#include

void main()

{

int a[3][4],max,hang,lie;

int i,j;

for(i=0;i<3;i++) //对数组a 赋值

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

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

max=a[0][0]; hang=0; lie=0; //赋初值

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

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

if(max

{

max=a[i][j];

hang=i;

lie=j;

}

printf("max=%d\nhang=%d\nlie=%d\n ",max,hang,lie);

}

//8.3假设有一对兔子,一个月后成长为大兔子,从第二个月开始,每对大兔子生一对小兔子。不考虑兔子的死亡,设计算法求第n个月的兔子总数。

//此题是杨辉三角形的变型题

#include //用一维数组输出杨辉三角形

void main()

{

int a[10]={1},b[10]={1};

int i,j,sum=0,n;

scanf("%d",&n);

for(i=0;i

{

for(j=1;j<=i;j++) //确定每行的数组元素

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

for(j=1;j<=i;j++) //保存到数组b中做备份

b[j]=a[j];

}

for(i=0;i

sum=sum+a[i];

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

}

//9.1编写一个函数max,用于比较两个整数的大小。

#include

int max(int x,int y)

{

return x>y?x:y;

}

void main()

{

int a,b;

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

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

}

//9.2编写一函数IsPrime,判断某个大于2的正整数是否为素数

#include

#include

int IsPrime(int x)

{int i;

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

if(x%i==0)

return 0;

return 1;

}

void main()

{ int x;

scanf("%d",&x);

if(IsPrime(x))

printf("yes\n");

else

printf("no\n");

}

//10.1编写一函数gcd,求两个正整数的最大公约数

//分析:用这两个数的乘积再除以它们的最大公约数就会得到他们的最小公倍数。所以问题的关键就变成了求两个数的最大公约数。代码如下:

#include "stdio.h"

main()

{

int p,r,m,n,temp;

printf("Please input two integer:");

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

if(m>n) /*将m和n比较大的数字放在n中*/

{

temp=n;

n=m;

m=temp;

}

p=m*n; /*计算两个数的乘积,为了在后面求最小公倍数*/

while(m!=0) /*用循环和求余数的方法计算m和n的最小大公约数,放在n 中*/

{

r=n%m;

n=m;

m=r;

}

printf("zuidagongyueshu:%d\n",n);

printf("zuixiaogongbeishu:%d\n",p /n); /*输出最小公倍数*/

}

//10.2使用递归的方法实现求n!的函数f(n)

#include

long fun(long n)

{

long s;

if(n==1) return 1; /*递归结束条件为n=1*/

else

{

s=n*fun(n-1);

return s;

}

}

void main()

{

int n;

printf("Please input n:");

scanf("%ld",&n);

printf("%d!=%ld",n,fun(n));

}

//11.1编写通用的排序的函数,实现冒泡、选择排序方法

#include

void maopao(int a[],int n) //冒泡排序函数

{

int i,j,t;

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

for (j=0;j

if (a[j]>a[j+1])

{

t=a[j];

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

a[j+1]=t;

}

}

void xuanze(int a[],int n) //选择排序函数

{

int i,j,t;

for(i=0;i

for(j=i+1;j

if(a[i]>a[j])

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

void main()

{

int a[10],i;

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

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

maopao(a,10);

//xuanze(a,10);

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

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

}

//11.2给定一个自然数n,求其各位数字之和,重复上一过程,一直得到1~9之间的数。//例如数1234的各位数字之和为10,继续计算,得到10的各位数字之和为1。

//没有用子函数,而是通过goto语句来反复运算

//其实反复调用同样一种算法就是递归,即自己调用自己,通过goto的方式了解了这个原理以后,再写成递归函数的形式就容易些了

#include

void main()

{

long n; //输入的数

int s; //各位数之和

printf("please input x(1——4294967295):");

scanf("%d",&n);

L1: s=0;

while(n)

{

s+=n%10;

n/=10;

}

if(s>=10)

{

n=s;

printf("%d\n",s); //输出每次求得得和,可做验证用

goto L1;

}

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

}

/*递归方法

#include

int fun(long n)

{

int s=0;

s=0;

while(n)

{

s+=n%10;

n/=10;

}

if(s<10)

return s;

else

return fun(s);

}

void main() { long n; //输入的数 printf("please input x(1——4294967295):"); scanf("%d",&n); printf("%d\n",fun(n)); } */ //11.3题目:编写一掷骰子游戏,首先由计算机生成一个随机数, //然后接受用户输入的字符串"g"命令后生成用户的随机数(模拟用户掷了一次骰子), //比较它们的大小,如果用户得到的随机数小于计算机得到的,则输出用户输了,否则输出用户赢了。 #include #include #include void main() { int jsj; //计算机将生成的随机数 int ren; //人产生的随机数 srand((unsigned)time(NULL)); jsj=rand()%11+2; //既然是骰子,假设2颗,点数就是2到12,那么y=12,x=2,即rand()%(Y-X+1)+X; printf("computer point:%d(go or not?)",jsj); if(getchar()=='g') //如果输入的是字母g { ren=rand()%11+2; printf("people point:%d\n",ren); if(ren>jsj) printf("people win\n"); else printf("computer win\n"); } } //11.4编写一函数,返回1-52之间的随机数,模拟发不含大小王牌的扑克牌,将生成的随机数映射为每张扑克牌。 //按照花色(梅花、方块、红桃、黑桃)和大小(2~10、J 、Q 、K 、A )顺序进行映射。 #include #include #include int fun() { srand((unsigned)time(NULL)); return rand()%52+1; //生成随即机数1——52 } void main() { int n,p,i,j; n=fun(); i=n%4; //余得得数就是 1 2 3 0中得一个 switch(i) //将余得的数对应成正确得花色对应ASCII 码 { case 1:i=5;break; //草花 case 2:i=4;break; //方片 case 3:i=3;break; //红桃 case 0:i=6; //黑桃 } j=(n-1)/4+2; //将1-52映射成扑克牌 2、3、4、5...14 p=j; switch(p) //将11、12、13、14映射成J Q K J { case 11: p='J';break; case 12: p='Q';break; case 13: p='K';break; case 14: p='A'; } printf("%d\n",n); if(j<=10) printf("%c%d\n",i,p); else printf("%c%c\n",i,p); }

//11.5面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。

//要求(1)只出10道题,每题10分,程序结束时显示学生得分;

//(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;

//(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;

//(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;//(5)当学生输入了正确得数后,随机显示评价结果,例如"Right!"、"Correct!","That's the answer"等,

//若答案错误,则按照"No,the answer is …"输出答案。

#include

#include

#include

//////////////////////////////fun2:计算学生每题得分///////////////////////////////////// ////////////

int fun2(int a3)

{

int x; //x为学生输入的结果

scanf("%d",&x);

if(x==a3)

return 10;

else

{

printf("wrong,again:");

scanf("%d",&x);

if(x==a3)

return 7;

else

{

printf("wrong,again:");

scanf("%d",&x);

if(x==a3)

return 5;

else

return 0;

}

}

}

//////////////////////////////fun1:确定运算是加法还是减法以及相应标准答案///////////////////////////

int fun1(int a1,int a2)

{

int a3; //标准答案;

char bln; //加法或减法的标识

if(rand()%2==1) //只产生0或1,不妨设置1为加法,0为减法

{

a3=a1+a2;

bln='+';

}

else

{

a3=a1-a2;

bln='-';

}

printf("%3d%2c%3d=",a1,bln,a2);

return fun2(a3);

}

///////////////////////////////////// ///////////////////////////////////// //////////////////////////

void main()

{

int a1,a2,i,sum=0; //a1 a2为计算机随机生成的数,sum为最终学生得分。

srand((unsigned)time(NULL));//做种

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

{

a1=rand()%26; //产生第一个随机数,根据题目要求,这个数要>=0,<=25

a2=rand()%26;

while(a1

a2=rand()%26;

printf("(%d)",i); //输入题目标号;

sum=sum+fun1(a1,a2);

}

printf("--------------------------");

printf("\nYour total score is:%4d\n",sum);

}

//12.1编写函数,求包含n个元素的整数数组中元素的平均值。要求在函数内部使用指针操纵数组元素。

#include

float fun(int *p)

{

float sum=0;

int *q=p;

for(;p

sum=sum+*p;

return sum/10;

}

void main()

{

int a[10];

int i;

float ave;

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

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

ave=fun(a); //调用fun函数计算平均值,参数传递方式为:数组名做实参,传递的是地址

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

}

//12.2题目:独立实现标准字符串库的strcmp函数。

//题意是编写一个自定义函数,实现strcmp 函数的功能,而不是让我们去调用strcmp 函数。

//那么做题之前就要弄清楚strcmp的原型及含义,查书后附录的函数表可找到。

#include

int fun(char *p,char *q)

{

int i;

for(i=0;(*(p+i)!='\0')||(*(q+i)!= '\0');i++)

{

if(*(p+i)>*(q+i))

return 1;

if(*(p+i)<*(q+i))

return -1;

}

return 0;

}

void main()

{

char a[100];

char b[100];

int x;

printf("please input string a:");

gets(a);

printf("please input string b:");

gets(b);

x=fun(a,b); //数组名做实参,传递的是地址

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

}

//13.2接受用户输入的整数n,随机生成n 个0~100间的整数

//使用动态数组存储所有元素,分别统计0~59,60~84,85~100之间的元素个数。

#include

#include

#include

#include

int fun(int *p,int n,int x,int y) //参数分别是:数组、元素个数、下限、上限{

int i,num=0;

for(i=0;i

if(*(p+i)>=x&&*(p+i)<=y)

num++;

return num;

}

void main()

{

int n,i,num1,num2,num3;

int *p=NULL;

printf("please input n:");

scanf("%d",&n);

p=(int *)malloc(sizeof(int)*n); //生成动态数组(生成一段连续空间,p指向其首地址)

srand((unsigned)time(NULL));

for(i=0;i

*(p+i)=rand()%101+1;

for(i=0;i

printf("%4d",*(p+i));

num1=fun(p,n,0,59); //计算各区间数的个数

num2=fun(p,n,60,84);

num3=fun(p,n,85,100);

free(p); //清空分配的内存

printf("\nnum1=%2d\nnum2=%2d\nnum 3=%2d\n",num1,num3,num3);

}

//14.1给定字符串s,其内容为英语长句,其中包含英语单词、标点符号、空格等内容//每个英语单词使用标点符号、一个或多个空格分隔。将英语长句分隔成英语单词序列输出,并输出其单词数目。

#include

#include

int fun(char *s)

{

char *p=NULL,*q=NULL; //p表示每个单词的初始位置,q表示每个单词的结束位置

int num=0;

p=q=s;

while(*p!='\0') //p从字符串s的初始位开始,直到s最后。

{

for(;p

if((*p>='a'&&*p<='z')||(*p>='A'&&

*p<='Z'))

{

num++;

break;

}

for(q=p;(*q>='a'&&*q<='z')||(*q>=

'A'&&*q<='Z');q++) //确定q的位置,q

是每个单词结束位置

;

for(;p

出单词

putchar(*p);

putchar('\n');

}

return num;

}

void main()

{

char s[100];

puts("please input article:");

gets(s);

printf("number of

word:%d\n",fun(s));

}

//14.2有3个学生,每个学生的数据包括学

号、三门课的成绩,

//要求用input函数实现从键盘输入学生数

据,用average函数求每个人的平均分

//用output函数打印学生数据及平均成绩。

#include

struct student //定义全局结构体类型student

{

int number;

float score[3];

};

float average(struct student p)

//计算平均值函数,形参是结构体变量

{

int i;

float sum=0; for(i=0;i<3;i++) sum=sum+p.score[i]; return sum/3; } void output(struct student *stu) //输出结构体函数,形参是结构体指针 { int i,j; printf("\n"); for(i=0;i<3;i++) { printf("%d:",stu[i].number); for(j=0;j<3;j++) printf("%6.2f",stu[i].score[j]); printf(" ave=%.2f\n",average(stu[i]));//题目中说用output 函数输出平均值,而平均值又让编写成一个函数,那么这里采用out 中调用average 函数。 } printf("\n"); } void input(struct student *stu) //对结构体数组赋值函数,形参是结构体指针 {int i,j; for(i=0;i<3;i++) {printf("stu%d\nnum:",i+1); scanf("%d",&stu[i].number); printf("score:"); for(j=0;j<3;j++) scanf("%f",&(stu[i].score[j])); } } void main() { struct student stu[3]; //定义结构体数组 input(stu); //数组名做参数,传递的是地址 output(stu); } //14.3静态链表的建立,有三个学生,包括学号(sno char(8)),姓名(sname char(20)),分数(grade float[]), //定义结构体类型数组存学生信息,使用链表所有学生,实现链表的输入输出。 //静态的书上有原题目,我写成动态的了,用子函数的方式实现 #include #include #include struct stu //定义全局结构体 { char sno[8]; char sname[20]; float grade; struct stu *next; } ; //////////////////////////////////////////////////////// void main( ) { struct stu *creat(struct stu *); void print(struct stu*); struct stu *head; head=NULL; head=creat(head); print(head); } ///////////////////////////////////////////////////////// struct stu *creat(struct stu*head) //建立链表 { struct stu *p,*q; q=(struct stu*)malloc(sizeof(struct stu)); //分配空间 printf("please input sno:"); scanf("%s",q->sno); printf("please input sname:"); scanf("%s",q->sname); printf("please input grade:"); scanf("%f",&q->grade);

head=q; while(q->grade!=0) //当分数为0时结束 { p=(struct stu*)malloc(sizeof(struct stu)); printf("please input sno:"); scanf("%s",p->sno); printf("please input sname:"); scanf("%s",p->sname); printf("please input grade:"); scanf("%f",&p->grade); q->next=p; q=p; } q->next=NULL; return head; //返回链表的头指针 } ////////////////////////////////////////////////////////// void print(struct stu *head) //输出链表 { struct stu *p; //设游标指针 p=head; //取得链表的头指针 printf("data:\n----------------------\n"); while(p->next!=NULL) { printf("%s\n",p->sno); printf("%s\n",p->sname); printf("%f\n",p->grade); printf("----------------------\n"); p=p->next; } } //14.5递归方法实现快速排序算法。快速排序的基本原理是: //(1)选择一个充当划分较小和较大元素的界限的元素,称其为基准值。 //(2)将数组中的元素重新排列使得较大元素向数组尾端移动,较小元素向数组首端移动。 //如此在形式上将数组分成两部分,界限左边元素都小于基准值,而界限右边元素都大于基准值,此过程称为分解。 //在分解完成后,充当界限的数组首元素可能需要和中间某元素对调。 //(3)排序两个子数组中元素。因为基准值左边元素都小于基准值右边元素,所以将两个子数组分别排序后即使得整个数组有序。 #include #define N 10 void main() { void fun(int *,int,int); int i,a[N]; printf("please input array:"); for(i=0;i

{ int i=left,j=right,middle,temp; middle=p[(left+right)/2]; //求中间值 while(i<=j) //如果两边扫描的下标交错,就停止 { while((p[i]middle) && (j>left))//从右扫描小于中值的数 j--; if(i<=j)

//找到了一对值,交换

{

temp=p[j];

p[j]=p[i];

p[i]=temp;

i++;

j--;

}

}

if(left

fun(p,left,j);

if(right>i) //当右边部分有值(right>i),递归右半边

fun(p,i,right);

}

大一上期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语言实验答案

//1.1编写一程序,在屏幕上输出如下内容:// X | X | X //---+---+--- // | | //---+---+--- // 0 | 0 | 0 #include void main() { printf(" X | X | X\n"); //注意转义字符\n的用法 printf("---+---+---\n "); printf(" | |\n"); printf("---+---+---\n "); printf(" 0 | 0 | 0\n"); } //1.2输出"Hello world!"语句 #include void main() { printf("Hello world!\n"); } //2.1编写一程序,接受用户输入的两个整数,并计算它们的和、差、积、商,程序运行结果应如下所示。 //注意,尖括号部分表示用户输入数据或要被替换的输出内容,尖括号本身并不需要输入或输出。 //多使用几组整数尝试一下,你发现了什么?//The program gets two integers,and

computes their sum,difference,produc t and quotient. //The first number:<第一个整数在此输入> //The second number:<第二个整数在此输入> //Results as follows: //<第一个整数>+<第二个整数>=<和> //<第一个整数>-<第二个整数>=<差> //<第一个整数>*<第二个整数>=<积> //<第一个整数>/<第二个整数>=<商> #include void main() { int a,b; printf("The program gets two integers,and computes their sum,difference,produc t and quotient.\n"); printf("The first number:"); scanf("%d",&a); printf("The second number"); scanf("%d",&b); printf("Results as follows:\n"); printf("%d+%d=% d\n",a,b,a+b); printf("%d-%d=% d\n",a,b,a-b); printf("%d*%d=% d\n",a,b,a*b); printf("%d+%d=% f\n",a,b,1.0*a/b); //做除法时要注意,除得的

C语言程序设计实验手册

实验手册使用及要求 实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该体现完整性、规范性、正确性、有效性。现将实验报告撰写的有关内容说明如下: 1、实验前按实验要求手写程序或程序填空,并走查代码,有疑问处标记, 上机时在C语言集成开发环境下输入并调试手写程序,分析运行结果。 实验结束后填写通过后的源程序和对实验的总结。 通过后的源程序可以手写也可以打印粘贴。 实验项目一览表

实验一熟悉C语言编程环境 实验目的: 1.熟悉C语言编程环境(VC++、Cfree、等) 2.了解C程序的基本框架 3.理解程序调试的思想,能找出并改正C程序中的错误 实验内容: 建立自己的文件夹:在磁盘上建立一个文件夹,用于存放自己的C程序 编程示例 在屏幕上显示一个短句“Programming in C is fun!”(教师示例,学生模仿并创新,如输出汉字、特除字符等。学会使用编程环境VC++,启动、编辑、编译、运行、保存、关闭、打开) 编程 在屏幕上显示如下网格。 +---+---+ | | | | | | +---+---+ 调试示例 改正下列程序中的错误,在屏幕上显示“Welcome to You !”。(掌握找错、改错的方法) 源程序: # include <> int mian(void) { printf(Welcome to You! \n") getchar(); return 0; } 注:需要修改的语句直接在程序上标注并修改 实验总结:

实验二用C语言编写简单程序 实验目的: 1.掌握算术表达式和赋值表达式的使用 2.掌握基本输出函数的使用 3.能够自己编程实现简单的数据处理 4. 熟练掌握简单if语句使用 5. 熟练掌握for语句的使用 6. 掌握简单C程序的查错方法、单步调试 实验内容: 调试以下程序,求华氏温度对应的摄氏温度。计算公式为:C=5*(f-32)/9 #include <> int main(void) { int celsius; fahr; scanf("%d ",fahr); celsius = 5 * (fahr - 32) / 9; printf("fahr = d, celsius = %d\n", fahr, celsius); return 0; } 注:需要修改的语句直接在程序上标注并修改 编写程序计算定期存款本利之和: 设银行定期存款的年利率rate为%,并已知存款期为n年,存款本金为capital 元,试编程计算n年后的本利之和deposit。要求定期存款的年利率rate、存款期n和存款本金capital均由键盘输入,输出时保留两位小数。计算公式为:deposit=capital(1+rate)n

游戏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语言程序开发环境及数据描述 四、程序清单 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语言程序设计》 实 验 手 册

《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语言实验报告合集

《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语言实验报告参考答案

长沙理工大学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语言程序设计实训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

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.数据类型 a.输入一个小数点后有多位数字的小数,实现将其保留三位小数,并输出;, #include<> main() {double b,d; printf("请输入一个小数:"); scanf("%lf",&b); printf("输出原来的数:%f\n",b); b*=1000; b+=; b=(int)b; d=b/1000; printf("输出现在的数:%.3lf\n0",d); } b.输入一个4位整数,求其得各位数字的平方和;(1234 1+4+9+16=30) #include<> main() {int n,sum=0,i,t; printf("请输入一个四位整数:\n"); scanf("%d",&n); for(i=0;i<4;i++) {t=n%10; n/=10; sum+=t*t; } printf("%d\n",sum);

} c.定义字符型变量ch,写出六种给ch赋值字符’A’的代码; #include<> main() {char ch; ch='A'; ch=65; ch=0x41; ch=0101; ch='\101'; ch='\x41'; } d.编写程序输出26组大小写字母;(AaBbCc……….XxYyZz) #include<> main() {int i; for(i=65;i<91;i++) {printf("%c",i); printf("%c",i+32); } printf("\n"); } e.定义浮点型变量f1、f2,为f1赋值10的-30次,为f2赋值10的30次 #include<> main() { double f1,f2; f1=10e-30;

:C语言实验报告册-2016.3资料

学生实验报告册 (理工类) 课程名称:C语言程序设计实验专业班级: 16数字媒体技术学生学号: 1613031008 学生姓名:李翔 所属院部:计算机工程学院指导教师:吕艳林 20 16 ——20 17 学年第一学期 金陵科技学院教务处制

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

实验项目名称:初级程序设计实验学时: 6 实验地点: A107 实验日期: 2016年10月13,20,27 实验成绩: 批改教师:批改时间:

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

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.源程序代码:运行结果为: 六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进

哈工大(威海)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语言实验报告

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语言实验报告参考源代码

实验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语言实验答案

一1 #include void main() { int iNum; float fNum=134.23; printf("a=%d\tf=%.2f\n",iNum,fNum); } 一2 #include void main() { int a,b,c,sum=0; scanf("a=%d,%d%d",&a,&b,&c); sum=a+b+c; printf("a=%d,b=%d,c=%d\n",a,b,c); printf("sum=%d\n",sum); } 一3

#include void main() { char a,b; scanf("%3c%4c",&a,&b); printf("c1=%c,c2=%c\n",a+1,b-1); } 一4 #include #include void main() { float a; printf("Enter a:"); scanf("%f",&a); printf("The original data is:%f\n\n",a); printf("h=%.2f\n",a); }

一5 #include void main() { int a,b,c,s,e; printf("Please input two numbers:\n"); scanf("%d%d",&a,&b); c=a+b; s=c*c; e=s+s; printf("%d,%d,%d\n",c,s,e); } 一6 #include void main() { float a,b; printf("input a:"); scanf("%f",&a); b=5*(a-32)/9; printf("%.0f(℉)=%.2f(℃)\n",a,b);

游戏C语言实验报告

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

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

C语言程序设计实验-答案

-前言- /*非常感谢度娘以及各位网上C语言高手的支持,才能让敝人完成此文档的整理。 本文档集合了本人、度娘、众网友的力量,其中代码的正确率约为90%(不正确的有标注)。为回报度娘及众网友的帮助,本文档免费下载。 */ /*配“电子科技大学出版社(周信东主编)”的C语言程序设计实验*/ /*努力吧,骚年以及学妹们!*/ /*整理ed by 口玉刀一of GUET.*/ ===================== 实验一C语言程序初步 ===================== 1.---------------------------- 已知a=5,b=4,c=6,求出s并换行 #include"stdio.h" main() { int a,b,c,s; a=5;b=4;c=6; s=(a+b+c)/3; printf("a=%d,b=%d,c=%d\n,s=%d",a,b,c,s); } 2.------------------------------- 输入一个数字求他的平方 #include main() { int r,s; scanf("%d",&r); s=r*r; printf("s=%d\n",s); } 3.-------------------------------- (1) #include main() { printf(" *\n"); printf("***\n"); printf(" *\n"); } (2) #include

{ int v; int a,b,c; //a,b,c aer sides,v is volume of cube a=3;b=3;c=5; v=a*b*c; printf("v=%d\n",v); } ================================= 实验二数据类型、运算符和表达式 ================================= 1. (1)-------------------------------------------------- //总觉得打印结果怪怪的,DO YOU THINK SO? main() { char s1='3',s2='4',s3='5'; int c1=101,c2=102; printf("3%c\t4%c\t5%c\n",s1,s2,s3); //3%c为输出3和%c printf("s1=%d\ts2=%d\ts3=%d\n",s1,s2,s3);//注意哦,s1,s2,s3是char!而%d:输入输出为整形%ld 长整型%hd 短整型%hu无符号整形%u %lu%s:输入输出为字符串%c字符%f:输入输出为浮点型%lf双精度浮点型printf("c1=%d\t~%c\n",c1,c1); //换码符'\t',表示水平制表位(horizeontal tab),它的作用是将光标移到最接近8的倍数的位置 printf("c2=%d\t~%c\n",c2,c2); //注意c1,c2的类型 } (2) //运行结果为8.300000 %是求余数先运算x-y,把结果转换为int型的有利于四则运算 main() { float x=8.3,y=4.2,s; int a=7; s=x+a%5*(int)(x-y)%2/3; printf("s=%f",s); }

相关文档