C语言实验一到实验八答案

C语言实验一到实验八答案
C语言实验一到实验八答案

实验一:

1、录入如下C源程序:

main( )

{ printf("This is a C Program\n")

printf("I am a student\n");

}

main()

{printf("This is a C Program\n");

printf("I am a student\n");

}

2、编写一个C程序,第一行显示你的名字,第二行显示你所在的街道地址,第三行显示你所在的城市和邮政编码。

#include <>

int main()

{ printf("Joe Smith");

printf("\n99 Somewhere Street");

printf("\nNonesuch, ., 07030");

return 0;

}

3、编写一个C程序,输出以下信息:

****************************

Hello,World!

****************************

#include<>

main()

{

printf("***********************\n");

printf(" Hello, World!\n");

printf("***********************\n");

}

4、编程序,输出如下图形:

* *

** **

*** ***

********

#include<>

main()

{

printf("* *\n");

printf("** **\n");

printf("*** ***\n");

printf("********\n");

}

5、遵循良好的编程习惯重新编写下列程序

#include<>

int main(

){

printf

(

“The time has come”

); }

#include<>

int main()

{printf("The time has come");

}

6、输入以下程序,查找错误并改正,输出正确的运算结果

#include<>

void main()

{int a,b

a=123;b=456;

sum=a+b

print(sum is %d\n,sum);

}

#include<>

void main()

{int a,b,sum;

a=123;b=456;

sum=a+b;

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

}

7、编写一个C程序,显示表达式*,*和(*5)的结果。

#include <>

int main()

{

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

printf ( " * - = %f\n", * - );

printf ( " / * 5) = %f\n", / * 5) );

return 0;

}

实验二:

1、编写程序,在程序中定义a=5,b=7,c=71,x=,y=

实现下面的输出格式和结果(U表示空格):

a=U5,b=U7,a-b=-2,c=U71%

x=,y=,z =,k=

#include<>

main()

{int a=5,b=7,c=71;

float x=,y=,z,k;

printf("\na=%2d,b=%2d,a-b=%d,c=%3d%%\n",a,b,a-b,c);

printf("x=%,y=%,z=%,k=%.4f",x,y,y,x);

}

2、编写程序,显示下面的提示:

Enter the length of the room:

Enter the width of the room:

在显示每个提示后,你的程序应该使用scanf()函数调用为所显示的提示接受来自键盘的数据。在输入长度和宽度后,程序应该计算和显示面积,要求结果只保留两位小数。#include<>

main()

{float l,w,a;

printf("\nEnter the length of the room:\n");

scanf("%f",&l);

printf("\nEnter the width of the room:\n");

scanf("%f",&w);

a=l*w;

printf("\nlength=%.2f,width=%.2f,area=%.2f\n",l,w,a);

}

3、编写程序,将小写字母转换成大写字母。要求通过scanf()函数接受来自键盘的字母。(ASCII码中小写字母比它相应的大写字母ASCII码大32)

#include<>

main()

{

char c;

scanf("%c",&c);

c=c-32;

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

}

#include<>

main()

{char c,C;

printf("\nPlease:\n");

scanf("%c",&c);

C=c-32;

printf("small=%c,large=%c",c,C);

}

4、编写一个程序,计算和显示一年中分钟的数量。

#include<>

main()

{

long int a,b,c,sum;

a=60;b=24;c=365;;

sum=a*b*c;

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

}

5编写一个程序,首先显示下面的提示:

Enter the temperature in degrees Fahrenheit:

程序接收一个从键盘输入的数值并用公式

Celsius=()*()把输入的华氏温度转化为摄氏温度值,并输出摄氏温度值,要求结果只保留三位小数。

#include<>

main()

{float f,c;

printf("\nEnter the temperature in degrees Fahrenheit:\n");

scanf("%f",&f);

printf("Celsius=%.3f",*);

}

6、编写一个程序,使用%d转换控制序列符分别显示小写字母a,m,n的十进制整数值。#include<>

main()

{ printf("\na=%d,m=%d,n=%d\n",'a','m','n');

}

实验三:

1、编写一个程序,要求用户输入两个数字。在程序使用一个或多个scanf()函数调用接收这些数字之后,用程序检查这些数字。如果第一个键入的数字大于第二个数字则输出消息“The first number is greater than the second”,否则输出消息“The first number is not greater than the second”.

#include<>

main()

{

int x,y;

scanf("%d%d",&x,&y);

if (x>y) printf("\nThe first number is greater than the second\n");

else printf("\nThe first number is not greater than the second\n");

}

2、输入3个数a,b,c,要求按由小到大的顺序输出。

#include<>

main()

{

int a,b,c,x;

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

if(a>b) {x=a;a=b;b=x;}

if(a>c) {x=a;a=c;c=x;}

if(b>c) {x=b;b=c;c=x;}

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

}

3、编写一个程序,用scanf()函数接收一个字符并确定这个字符是否是一个小写字母。如果输入的字符是一个小写字母,显示消息“The character just entered is a lowercase letter”,如果输入的字符不是一个小写字母,显示消息“The character just entered is not a lowercase letter”。

#include<>

main()

{

char c;

scanf("%c",&c);

if (c>='a'&&c<='z')

printf("\nThe character just entered is a lowercase letter\n");

else printf("\nThe character just entered is not lowercase letter\n");

}

4、有一个函数X (X<1)

y= 2X-1 (1≤X<10)

3X-11 (X≥10)

要求输入x值,输出y值。

#include<>

main()

{

int x,y;

scanf("%d",&x);

if(x<1) {y=x; printf("\ny=x %d\n",y);}

else if(x<10) {y=2*x-1; printf("\ny=2x-1 %d\n",y);}

else {y=3*x-11; printf("\ny=3x-11 %d\n",y);}

}

5、输入百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。90分以上为’A’,80-89分为’B’,70-79分为’C’, 60-69分为’D’,60分以下为’E’

#include<>

main()

{float s;

char g;

scanf(“%f”,&s);

while(s>100||s<0)

{printf(“\nPlease\n”);

scanf(“%f”,&s)

}

switch((int)(s/10))

{case 10:

case 9:g=’A’;break;

case 8:g=’B’;break;

case 7:g=’C’;break;

case 6:g=’D’;break;

case 5:

case 4:

case 3:

case 2:

case 1:

case 0: g=’E’;

}

printf(“%c”,g);

}

实验四:

1、编写程序用while循环实现以2为增量输出数字2到10。程序输出应该是:

2 4 6 8 10

#include<>

main()

{int i=2;

printf("\n");

while(i<=10)

{printf("%d ",i);

i=i+2;

}

}

2、求(用while语句编程)5050

#include<>

main()

{

int n=1,sum=0;

while(n<=100)

{sum=sum+n;n=n+1;}

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

}

3、输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是“水仙花数”,因为153=13+53+33。153,370,371,407

#include<>

main()

{

int n,x,y,z;

printf("\n");

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

{x=n/100;

y=(n/10)-(n/100)*10;或y=n%100/10;

z=n%10;

if(n==x*x*x+y*y*y+z*z*z) printf("%d ",n);

}

printf("\n");

}

4、选择和显示可被3除尽的前20个整数

#include<>

main()

{int n,x,y;

printf("\n");

for(n=0,x=0;n<20;x++)

{if(x%3==0) {printf("%d ",x);n=n+1;}

}

printf("\n");

}

5、把100-200之间的不能被3整除的数输出

#include<>

main()

{int n;

printf("\n");

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

{if(n%3!=0) printf("%d ",n);}

printf("\n");

}

实验五:

1、编写一个名为Ads()的函数,接收传递给它的一个单精度数,计算它的绝对值且显示这个绝对值。

#include<>

float Ads(float x)

{float y;

if (x>=0) y=x;

else y=-x;

return(y);

}

main()

{float x,y;

scanf("%f",&x);

y=Ads(x);

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

}

2、写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。

#include<>

abc(int);

main()

{int x,y;

scanf("%d",&x);

printf("\n");

abc(x);

}

abc(int a)

{int i,j;

for(i=2,j=1;i

{if(a%i==0) {j=0;break;}}

if(j==1) printf("OK\n");

else printf("NOT\n");

}

3、编写一个函数。计算一个圆的面积a,已知它的周长为c。这个函数应该调用另一个返回这个给定周长c的圆半径r的函数。相关公式为:r=c/2∏和a=∏r2

#include<>

#define PI

float radius(float l)

{float rad;

rad=l/(2*PI);

return rad;

}

float area(float c)

{float a,r;

r=radius(c);

a=PI*r*r;

return(a);

}

main()

{float c,r,a;

printf("\n");

scanf("%f",&c);

a=area(c);

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

}

4、编写一个名为whole()的函数,返回传递给这个函数的整数部分。

#include<>

int inty(float y)

{int n;

n=y;

return(n);

}

main()

{int x;

float y;

scanf("%f",&y);

x=inty(y);

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

}

5、x n的数值能够递归的定义为:

X0=1 X n=X*X n-1编写一个递归函数,返回x n的值

#include<>

int power(int x,int n)

{int y;

if (n==0) return 1;

else y=x*power(x,n-1);

return(y);

}

main()

{int x,n,s;

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

s=power(x,n);

printf("%d",s);

}

实验六:

1、编写一个程序,输入5个整数数字到一个一维数组中,所有数字输入后,显示输入的这些数字,并且显示数组的平均值,最大值,最小值。

#include<>

main()

{float sum=0,x;

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

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

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

printf("\n");

max=min=a[0];

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

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

sum=sum+a[i];

if(a[i]>max) max=a[i];

if(a[i]

}

x=sum/5;

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

}

2、输入一串字符,计算其中空格的个数

#include<>

main()

{int i,j;

char a[50];

gets(a);

for(i=0,j=0;i

{if(a[i]==' ') j=j+1;}

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

}

3、求一个3*3 矩阵对角线元素之和

#include<>

main()

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

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

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

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

}

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

{sum=sum+a[i][i];}

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

}

4、有一个3×4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。

#include<>

main()

{int i,j,a[3][4],max,x,y;

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

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

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

}

max=a[0][0];

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

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

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

{max=a[i][j];x=i;y=j;}

}

printf("\nmax=%d, x=%d, y=%d\n",max,x,y);

}

5、将一个一维数组中的值按逆序重新存放。

#include<>

main()

{int a[10],i,x;

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

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

}

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

{x=a[i];a[i]=a[9-i];a[9-i]=x;}

printf("\n");

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

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

printf("\n");

}

6、一篇文章,共有3行文字,每行有20个字符,要求分别统计出其中英文大写字母,小写字母,数字,空格以及其它字符的个数。

#include<>

main()

{int i,j,x,y,s,k,q;

char a[3][20];

x=0;y=0;s=0;k=0;q=0;

gets(a);

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

{

for(j=0;j<20 && a[i][j]!='\0';j++)

if(a[i][j]>='A' && a[i][j]<='Z') x=x+1;

else if(a[i][j]>='a' && a[i][j]<='z') y=y+1;

else if(a[i][j]>='0'&& a[i][j]<='9') s=s+1;

else if(a[i][j]==' ') k=k+1;

else q=q+1;

}

printf("\nx=%d, y=%d, s=%d, k=%d, q=%d\n",x,y,s,k,q);

}

实验七:

1、输入3个整数,按由大到小的顺序输出。

#include<>

max(int *x,int *y)

{int m;

m=*x;*x=*y;*y=m;

}

main()

{int a,b,c,*p,*q,*r;

printf("\n");

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

p=&a;

q=&b;

r=&c;

if(a

if(a

if(b

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

}

2、写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。

#include<>

main()

{int n,m=0;

char a[50],*p;

scanf("%s",a);

p=a;

printf("\n");

for(n=0;n<50;n++,p++)

{if(*p!='\0') {printf("%c",*p);m++;}

else break;

}

printf("\nsum=%d",m);

}

3、将n个数按输入时顺序的逆序排列,用函数实现。

#include<>

reverse(int *p)

{int n,x,*p1,*p2;

for(n=0;n<2;n++)

{ p1=p+n;

p2=p+4-n;

x=*p1;*p1=*p2;*p2=x;

}

}

main()

{int n,a[5];

printf("\n");

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

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

reverse(a);

printf("\n");

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

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

}

4、编写一个程序,输入月份号,输出该月的英文月名。例如,输入“3”,则输出“March”,要求用指针数组处理。

#include<>

main()

{int n;

char

*p,*month[13]={"","January","February","March","April","May","June","July","August","Se ptember","Octorber","November","December"};

printf("\n");

scanf("%d",&n);

if((n>=1)&&(n<=12))

printf("\n%s\n",*(month+n));

else printf("\nERROR\n");

}

5、输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:①输入10个数;②进行处理;③输出10个数。

#include<>

input(int *p)

{int n;

for(n=0;n<10;n++,p++)

scanf("%d",p);

}

max_min(int *p)

{int *q,*max,*min,x,n;

q=p;

max=min=p;p++;

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

{if(*max<*p) max=p;

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

p++;

}

p--;

x=*p;*p=*max;*max=x;

x=*q;*q=*min;*min=x;

}

out(int x[])

{int n;

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

printf("%d ",x[n]);

}

main()

{int a[10];

input(a);

printf("\n");

out(a);

printf("\n");

max_min(a);

printf("\n");

out(a);

printf("\n");

}

实验八:

1、输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。#include<>

main()

{char string[81];

int i,num=0,word=0;

char c;

gets(string);

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

if(c==' ') word=0;

else if(word==0)

{word=1;

num++;

}

printf("There are %d words in the line.\n",num);

}

2、编写程序,将两个字符串连接起来,不要用strcat函数。

#include<>

main()

{char s1[80],s2[40];

int i=0,j=0;

printf("\ninput string1:");

scanf("%s",s1);

printf("\ninput string2:");

scanf("%s",s2);

while(s1[i]!='\0')

i++;

while(s2[j]!='\0')

s1[i++]=s2[j++];

s1[i]='\0';

printf("The new string is: %s\n",s1);

}

3、编写一个程序,接收一个按名和姓的顺序输入的名字,然后按姓和名的方式显示这个名字。例如,如果用户输入Guo Zhong,则输出应该是Zhong Guo。

#define LSIZE 81

#define TRUE 1

#define FALSE 0

int main()

{

int i = 0;

char name[LSIZE], first[LSIZE], last[LSIZE], c;

printf("Enter your first and last name: ");

gets(name); // get the string

splitName(name, first, last);

printf("\nThe name entered is: \n");

printf("%s, %s\n", last, first);

return 0;

}

void splitName(char name[], char first[], char last[])

{

int spaceFnd = FALSE;

int i = 0, j = 0, start;

char c;

while((c = name[i++]) != '\0' && spaceFnd == FALSE)

{

if(c == ' ')

{

spaceFnd = TRUE;

start = i;

}

else

first[j] = c;

j++;

}

first[j] = '\0';

j = 0;

while((c = name[start++]) != '\0')

{

last[j] = c;

j++;

}

last[j] = '\0';

}

大一上期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语言程序设计实验8

一、实验目的 1、掌握定义函数的方法; 2、掌握函数实参与形参的对应关系以及“值传递”的方式; 3、掌握函数的嵌套调用和递归调用的方法; 4、掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法; 5、了解数组元素、数组名作函数参数。 二、实验内容(程序清单及运行结果) 1.上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。 void main() { int x,y; printf("%d\n",sum(x+y)); int sum(a,b); { int a,b; return(a+b); } } 错误原因:没有输入x,y的值,没有定义函数a b. 更改: #include void main() { int x,y; scanf("%d%d",&x,&y); printf("%d\n",sum(x,y)); } int sum(int a,int b)

{ return (a+b); } 2.已有变量定义和函数语句“int a=1,b=-5,c;c=fun(a,b);”,fun函数的作用是计算两个数之差的绝对值,并将差值返回给调用函数,请编写fun函数,并调试。 fun (int x,int y) { } #include int fun(int x ,int y) { int tmp; tmp=x-y; if(tmp>=0) return tmp; else return -tmp; } void main() { int a=1,b=-5; printf("%d与%d差的绝对值为:%d\n",a,b,fun(a,b)); }

c语言实验报告 ()

丽水学院计算机实验报告

丽水学院计算机实验报告 一、实验目的 1.熟悉Visual C++和C-Free等集成环境,掌握运行一个C程序的基本步骤,包括编辑、编译、连接和运行。 2.掌握算术表达式和赋值表达式的使用。 3.掌握基本输入、输出函数的使用。 4.能够编程实现简单的数据处理。 二、实验环境 硬件:Pentium以上的计算机。 软件:Windows XP操作系统、Visual C++和C-Free等集成环境。 三、实验内容和结果 1.编程题1 在屏幕上显示一个短句“What is a computer?” 思考: (1)如何在屏幕上显示你自己的学号,姓名和班级? (2)如何在屏幕上显示数字、英文字母和汉字等信息?例如:“你在机房吗?” 编程题1源程序: #include<> void main() { printf("What is a computer?\n");

} 程序运行结果: What is a computer? 思考题(1): #include<> void main() { printf(",小王,班级\n"); } 思考题(2): #include<> void main() { printf("英文字母abcdefgABCDEFG\n"); printf("汉字:哇哈哈啊哈和\n"); } 2.编程题2 在屏幕上显示下列图形。 * * * * * * * * * *

思考:如何在屏幕上显示下列图形? A A A A 编程题2源程序: #include<> void main() { int i,j; for(j=1;j<5;j++) { for(i=5;i>j;i--) printf("*"); printf("\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语言上机指导指导教师:李辉李晓丽 东北电力大学 电气工程学院 2006年3月

实验2数据类型、运算符和表达式 1.实验目的 掌握C语言数据类型,熟悉如何定义一个整形、字符型和实型的变量,以及对他们赋值的方法。 掌握不同的类型数据之间赋值的规律。 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 进一步熟悉C程序的编辑、编译、连接和运行的过程。 2.实验内容和步骤 (2).在此基础上增加一个语句: printf(“%d%d\n”,c1,c2); 再运行,并分析结果。 (3).再将第2行改为: int c1,c2; 再使之运行,并观察结果。 (4).再将第3、4行改为: c1 = a; /* 不用单撇号*/ c2 = b; 再使之运行,分析其运行结果。

(5).再将第3、4行改为: c1 = ”a”; /* 用双撇号*/ c2 = ”b”; 再使之运行,分析其运行结果。 (6).再将第3、4行改为: c1 = 300; /* 用大于255的整数*/ c2 = 400; 再使之运行,分析其运行结果。 输入并运行教材第3章习题3.6给出的程序 (1).将一个负整数赋给一个无符号的变量,会得到什麽结果。画出它们在内存中的表示形式。 (2).将一个大于32765的长整数赋给整形变量,会得到什麽结果。画出它们在内存中的表示形式。 (3).将一个长整数赋给无符号的变量,会得到什麽结果(分别考虑该长整数的值大于或等于65535 以及小于65535 的情况)。画出它们在内存中的表示形式。 同学们可以改变程序中各变量的值,以便比较。例如:a = 65580, b = -40000, e = 65535, f = 65580。 输入习题3.10

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语言上机实验实验八

实验八 (2018-12-12~2018-12-17) 一、实验名称: 结构体 二、实验目的: (1)掌握结构体类型的定义和使用; (2)掌握结构体类型变量的概念和使用; (3)掌握链表的概念,初步学会对链表进行操作; (4)进一步熟悉Visual C++6.0开发环境下调试程序的基本步骤。 三、实验项目(必做题) 本次实验要求同学们事先在纸介质上编好解决下面问题的源程序,然后才允许进实验室上机调试。 (1)利用顺序表实现“先进后出”的堆栈 提示:定义结构体struct来定义堆栈;采用动态数组实现顺序表;定义函数实现堆栈中元素的压入和弹出,保证“先进后出”的实现 // 结构体Stack struct Stack{ int * List; // 用来存储元素的顺序表 int curNumber; // 用来存储当前元素的总个数 }; void iniStack(Stack * A); // 初始化堆栈 void clearStack(Stack * A); //清空堆栈 void push(Stack * A, ELEMENT obj); //将元素obj压入堆栈的栈顶 void pop(Stack * A); //将当前栈顶的元素弹出栈。要求:栈不为空 ELEMENT get_top(Stack * A); //返回当前栈顶的元素值。要求:栈不为空 int is_empty(Stack * A); //判断当前堆栈是否为空,空返回1,非空返回0 void display(Stack * A); //自顶向下显示堆栈中的元素 测试实例: 向堆栈中压入:1 2 3 4 弹出次序应为:4 3 2 1

C语言实验报告1

《程序设计基础》实验报告

{ float a, b; printf_s("please input cost price of TV:"); scanf_s("%f", &a); b = a*K; printf_s("the current price of TV:"); printf_s("%f", b); return 0; 2、 #include"stdafx、h" int main() { int a, b, c, d, e, f; printf_s("please input three figures:"); scanf_s("%d", &a); b = a / 100; c = a % 100; d = c / 10; e = c % 10; f = e * 100 + d * 10 + b; printf_s("the new three figures:"); printf_s("%d", f); return 0; } 3、 #include"stdafx、h" int main() { float a, b, c, d, e; printf_s("please input scores:\n");

scanf_s("%f%f%f", &a, &b, &c); d = a + b + c; e = (a + b + c) / 3; printf_s("the total scores:"); printf_s("%5、1f\n", d); printf_s("the average scores:"); printf_s("%4、1f\n", e); return 0; } 4、 #include"stdafx、h" int main() { float a, b; printf("please input a number:"); scanf_s("%f", &a); printf_s("the integer part is:"); printf_s("%d\n", (int)a); b = a - (int)a; printf_s("the decimal part is:"); printf_s("%2、1f", b); return 0; } 5、 #include"stdafx、h"

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

数学与软件科学学院实验报告 学期:__2011_ 至_2012 第_ 1__ 学期 20 11 年 11 月 10 日 课程名称:_C语言程序设计专业:__ 会计学 2008 级_ 8 班 实验编号: 08 实验项目:指针指导教师:王开端 姓名:陈银钗学号: 2008080513 实验成绩:___ 一、实验目的: (1) 掌握C语言环境下指针的声明、定义和使用方法; (2) 掌握指针和变量以及指针和数组的关系; (3) 掌握指针、数组之间的关系; (4) 掌握指针、函数之间的关系。 二、实验内容: 1.熟悉指针的基本使用方法。 (1) 请仔细分析以下程序段,并上机测试运行结果,对测试结果进行分析说明。 1) 程序段一: main() { int i=3,j=6,k=9; printf(“i=%d j=%d k=%d\n”,*(&i),j,k); } 2) 程序段二: main() { int a,*p; float b,*q; p=&a; q=&b; scanf(“%d,%f”, p, q); *p=a*(*q); printf(“a is %d, p is %d and *p is %d\n”, a, p,*p); printf(“b is %f, q is %d and *q is %d\n”, a, q,*q); printf(“p+1=%d q+1=%d\n”,p+1,q+1); } 3) 程序段三: main() { int a,*p,**q,***r;

p=&a;q=&p;r=&q; printf(“Pl ease input a::\n”); scanf(“%d”,**r); printf(The results are :”); printf(“a’ value is %d,%d,%d,%d\n”,a,*p,**q,***r); printf(“a,p,q,r’s value is %d,%d,%d,%d\n”,a,p,q,r); } (2) 设计一个C程序,以测试以下表达式的运算顺序。 2. 想使指针变量pt1指向变量a和b中的大者,pt2指向其小者,以下程序能否实现此目的?为什么?如果不行,请给出实现的方法。 swap(int *pt1,int *pt2) { int *p; p=p1;p1=p2;p2=p; } main() { int a,b; int *pt1,*pt2; scanf(“%d,%d”,&a,&b); pt1=&a;pt2=&b; if (a%d\n”,i+1,execute(a,b,function[i])); } execute(int x,int y,int *func()) {return ((*fun)(x,y));} fun1(int x,int y) {return (x+y);}

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简单判定性问题求解 一、实验学时 完成本实验需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.了解C编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 4.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法。 二、实验内容 1.编写一个C程序,输出以下信息: **************************** very good! **************************** 2. 编写一个程序,从键盘输入圆的半径r,圆柱的高h,分别计算出圆的周 长c1,圆的面积cs,圆柱的体积cv,输出结果是要求保留小数点后3位。 3.编写一个程序,输入一个4位数,分别输出这个数的个位,十位,百位和 千位, 例如:输入1234,则输出为: 1234的个位是:4,十位是:3,百位是:2,千位是:1 三、实验程序清单及结果(程序清单不要截图,拷贝到文档中,结果需要截图,再拷贝到相应的清单后面) #include int main() { printf("*************************\n"); printf("very good! \n"); printf("*************************\n"); return 0; }

2. #include int main() { float r,h; double cl,cs,cv; printf("输入半径r: "); scanf("%f",&r); printf("\n输入高度h: "); scanf("%f",&h); cl=3.14*2*r; cs=3.14*r*r; cv=cs*h; printf("圆的周长cl=%0.3lf",cl); printf("\n圆的面积cs=%0.3lf",cs); printf("\n圆柱的体积cvz=%0.3lf",cv); return 0; }

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、熟悉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;

C语言实验报告(八)

2016-2017学年第二学期 2016级专业:学号:姓名:……………………………………………………………………………………………… 一、实验题目:结构体和共用体 二、实验目的:(略) 三、实验内容 1.程序验证: 启动vc语言环境,输入并执行以下程序。 源代码:运行结果: #include struct stu { int num; char name[10]; char sex; int age; int score[4]; } students[ ]={{001, "David",'M',25,{80,78,92,94}}, {002, "Lily",'W',23,{90,84,89,95}}, {003, "Alice",'W',22,{79,78,96,97}}}; {003, "Alice",'W',22,{79,78,96,97}}}; {003, "Alice",'W',22,{79,78,96,97}}}; void main( ) { int i,j,number; printf("Input student’s number\n"); scanf("%d",&number); for(i=0;i<3;i++) if(number= =students[i].num) b reak; printf("name=%s\nsex=%c\nage=%d\n",students[i].name,students[i].sex,students[i].age); for(j=0;j<4;j++) printf("%d ",students[i].score[j]); printf("\n"); }

C语言实验

一、#include int prime(int x); void main( ) { int i,n=0; for(i=2;i<5000;i++) if(prime(i)) { printf("%5d",i); n++; if(n%10==0)printf("\n"); } } int prime(int x) { int i; for(i=2;i int prime(int x); void main( ) { int i,j,f,n=0; for(i=2;i<5000;i++) if(prime(i)) { j=i; f=1; while(j!=0) { n=j%10; if(!(n==2||n==3||n==5||n==7)) {f=0;break;} j=j/10; } if(f==1) { printf("%5d",i); n++; if(n%10==0)printf("\n"); } } } int prime(int x)

{ int i; for(i=2;i int prime(int x); void main( ) { int i,n=0,j,f; for(i=2;i<5000;i++) if(prime(i)==1) { j=i/10; f=1; while(j!=0) { if( !(prime(j))) {f=0;break;} j=j/10; } if(f==1) { printf("%5d",i); n++; if(n%10==0) printf("\n"); } } } int prime(int x) { int i; if(x==1)return 0; for(i=2;i int prime(int x); void main( ) { int i,n=0,j,f; for(i=2;i<5000;i++) if(prime(i)==1)

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~8)

C程序设计课程实验项目目录 *实验项目类型:演示性、验证性、综合性、设计性实验。 *此表由学生按顺序填写。

本科实验报告专用纸 课程名称C语言程序设计成绩评定 实验项目名称C语言程序初步指导教师 实验项目编号实验1 实验项目类型验证实验地点 学生姓名学号 学院信息科学技术学院系计算机系专业计算机科学与技术实验时间年月日午~月日午温度℃湿度 一、实验目的 a)熟悉C语言环境,掌握运行一个C语言程序的过程。 b)掌握C语言程序的结构和书写格式。 c)通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容和要求 实验内容: 1.编写一个C程序,输出以下信息: ***************************** Very good! ****************************** 2.编写一个C程序,输入a、b、c 3个值,输出其中最大者。 实验要求: 1.记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论 对策成功或失败的原因; 2.总结C程序的结构和书写规则。 3.总结运行一个C程序的步骤。 三、主要仪器设备 仪器:计算机 实验环境:Windows 2000或Windows XP + Visual C++6.0或Turbo C 2.0 四、实验原理

程序一、 程序二、 程序一、 #include int main() { printf("*******************\n"); printf(" Very good!\n");

printf("*******************\n"); return 0; } 程序二、 #include int main() { int a,b,c,t; printf("Please enter a,b,c:"); scanf("%d%d%d",&a,&b,&c); if(a>b) {t=a;a=b;b=t;} if(b>c) {t=b;b=c;c=t;} printf("max=%d\n",c); return 0; } 六、实验步骤与调试 1.调试过程以键入空格的形式使“Very good!”居中;试验时应该用“\n”使光标跳到下 一行。 2.源程序的编写需要有头文件、主调函数这两个主体部分。 3.运行一个C程序的步骤:编译—连接—运行

相关文档
最新文档