文档库 最新最全的文档下载
当前位置:文档库 › C语言实验-第七章-第九章2

C语言实验-第七章-第九章2

C语言实验-第七章-第九章2
C语言实验-第七章-第九章2

实验七:指针的应用

【实验目的】

1.掌握指针和指针变量,内存单元和地址、变量与地址、数组与地址的关系;2.掌握指针变量的定义和初始化,指针变量的引用方式;

3.能正确使用数组的指针和指向数组的指针变量;

【实验内容】

1.填空题

输入一个字符串,将其中的大写字母转换成小写字母,然后输出

本程序主要是比较scanf()输入和gets()输入的区别

#include

void main()

{ char s[20];

char *p=s;

scanf(“%s”,p); /*注意用scanf()输入和gets()输入的区别*/

while( 1 )

{

if( 2 ) *p=*p+ (‘a’-‘A’);

p++ ;

}

puts ( 3 );

}

答案:

1、*p!=’\0’

2、(*p>='A')&&(*p<='Z')

3、s

运行结果:

输入:Program

输出:program

输入:This is Program

输出:this

提示:

scanf ()输入时遇到空格认为字符串结束,用gets()输入时只有遇到回车才认为字符串结束。如键入any boy并回车,则

2。补充程序题

输入15个整数存入一维数组,再按逆序重新调整该数组中元素的顺序然后再输出。下面给出部分程序的内容,请将程序补充完整,然后上机调试。

部分程序清单如下:

#include

void main()

{ int a[15],*p1,*p2,x;

for(p1=a;p1

scanf("%d",p1);

for(p1=a,p2=a+14;p1

{ x=*p1;

*p1=*p2;

*p2=x;

}

……

}

答案:

for(p1=a;p1!=a+15;p1++)

printf("%d ",*p1); // %d后面有一个空格

运行结果:

输入:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

输出:15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

提示:

(1)在整型数组中,没有结束标志,必须依靠数组中数据元素的个数控制循环次数。

(2)在for(p1=a;p1

(3)数组是顺序存储,因此可以用p1++后的值与a+15的比较来控制循环次数,需要注意的是,p1++不意味着p1的值加1。

3.改错题:

下面程序是用指针法将一个字符串a复制到字符串b中,

void main()

{

char a[]="I am a boy.",b[20], *p1,*p2;

int i;

p1=a;p2=b;

for( ; *p1!=’\0’;p1++,p2++)

*p2=*p1;

p2=’\0’;

printf("string a is:%s\n",a);

printf("string b is:");

for(i=0;b[i]!=’\0’;i++)

printf("%c",b[i]);

}

答案:

1.将第一个for循环改为while循环;

2.将第二个for循环改用一条语句完成;

第八章结构体与共同体的应用

【实验目的】

1.掌握结构体类型变量的定义、初始化和使用;

2.掌握结构体类型数组的概念和使用;

3.了解共用体的概念与使用。

【实验内容】

1.填空题

(1)结构体变量案例。

编程输出两个小孩的记录信息。1 个男孩和1 个女孩,其姓名首字母分别为“R”和“H”;男孩15岁,女孩比男孩小1岁子;男孩的成绩为75,女孩的成绩为82。

该案例涉及结构体变量的定义和结构体变量成员的引用。

# include

void main()

{

struct childrec /*定义结构体类型*/

{

char initial; /*姓名首字母*/

int age; /*年龄*/

int grade; /*成绩*/

}boy,girl;

boy.initial=’R’;

girl. initial=’H’;

1

2

girl.age=boy.age-1;

girl.grade=82;

printf(“boy:%c is %d years old and got a grade of %d\n”, 3 );

printf(“girl:%c is %d years old and got a grade of%d\n”, 4 );

}

答案:

1、boy.age=15;

2、boy.grade=75;

3、boy.initial,boy.age,boy.grade

4、girl.initial,girl.age,girl.grade

运行结果:

boy:R is 15 years old and got a grade of 75

girl:H is 14 years old and got a grade of 82

提示:

(1)结构体变量的定义:

struct 结构体名

{

成员变量定义

}结构体变量列表;

即在定义结构体的同时定义结构体变量。

(2)结构体成员变量的引用:

结构体变量名.成员变量名

(2)结构体数组案例。

设有三个候选人,Zhang,Wang和Li,设有10个人参加投票,每次输入一个得票的候选人的名字,要求最后输出各候选人的得票结果,请设计程序对候选人的得票数进行统计。

该案例涉及结构体变量的定义、初始化和结构体变量成员的引用。

# include

# include

struct person /*候选人信息结构体,这是一个全局的结构体数组*/

{

char name[20]; /*姓名*/

int count; /*得票数*/

}stu[3]={“Zhang”,0,”Wang”,0,”Li”,0};

void main()

{

int i,j;

char leader_name[20];

for(i=1;i<=5;i++) /*设有5个人参加投票*/

{scanf(“%s”, leader_name); /*输入得票人姓名*/

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

if(strcmp(leader_name,stu[j].name)==0)

1 ;

}

printf(“\n”);

for(i=0; 2 ; 3 )

p rintf(“%5s: %d\n”, stu[i].name , 4 );

}

答案:

1、stu[j].count++

2、i<3

3、i++

输入:

Zhang

Wang

Li

Zhang

Wang

运行结果:

Zhang:2

Wang:2

Li:1

提示:

(1)结构体变量还可以是数组。

如stu[3],表示创建了3个结构体变量stu[0]、stu[1]、stu[2]

(2)结构体变量可以在定义的同时赋初值,即初始化。

如:stu[3]={“Zhang”,0,”Wang”,0,”Li”,0};

大括号内分别为stu[0]的成员变量值、stu[1]的成员变量值、stu[2]的成员变量值,与二维数组的初始化类似。

(3)结构体指针案例。

有一个结构体变量stu,内含学生学号、姓名和三门课成绩。要求在mian()中赋以值,在函数print中打印输出。

本题涉及结构体指针作为函数参数的使用。

#include

#include

#define FORMAT “%d\n %s\n %.1f\n %.1f\n %.1f\n”

struct student

{

int num;

char name[20];

float score[3];

};

void print(struct student *p);

void main()

{

struct student stu;

stu.num=12345;

strcpy(https://www.wendangku.net/doc/975901052.html,,”Li Min”);

stu.score[0]=68;

stu.score[1]=87;

stu.score[2]=98.5f;

print(&stu);

}

void print(struct student *p)

{

printf(FORMAT,p->num, );

printf(“\n”) ;

}

答案:

p->name ,p->score[0], p->score[1], p->score[2]

运行结果:

12345

Li Min

68.0

87.0

98.5

提示:

(1)结构体变量的定义还可以通过如下形式定义:

struct 结构体名结构体变量名;

如:struct student stu;

(2)结构体除了使用结构体变量引用以外,还可以使用结构体指针引用。

结构体指针定义:struct 结构体名*指针变量名

如:struct student *p;

结构体指针存放结构体在内存的初始地址。

(3)使用结构体指针引用结构体成员变量:

结构体指针变量名—>成员变量名

如:p->name

2.读程题

共用体案例。

现需要输入学生成绩,学生分为小学生和初中生,小学生成绩为整型,初中生成绩为浮点型。其他信息一致,使用共用体来处理(将小学生与初中生的成绩放在同一段内存中)。

本题涉及共用体的应用。

#include

#include

struct student

{

char cate[15];

char name[15];

union

{

int grade_xiao;

float grade_chu;

}grade;

}stu[2];

void main()

{

int i;

char *p,*q;

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

{

scanf("%s %s",stu[i].cate,stu[i].name);

if(strcmp(stu[i].cate,"xiaoxue")==0)

scanf("%d",&stu[i].grade.grade_xiao);

if(strcmp(stu[i].cate,"chuzhong")==0)

scanf("%f",&stu[i].grade.grade_chu);

}

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

{

if(strcmp(stu[i].cate,"xiaoxue")==0)

printf("%s,%s,%d\n",stu[i].cate,stu[i].name,stu[i].grade.grade_xiao);

else

printf("%s,%s,%.1f\n",stu[i].cate,stu[i].name,stu[i].grade.grade_chu);

}

}

输入:

xiaoxue

zhangli

85

chuzhong

wangming

84.5

运行结果:

xiaoxue,zhangli,85

chuzhong,wangming,84.5

提示:

(1)共用体变量多占的内存长度等于最长的成员变量的长度。

如:本题共用体grade占4个字节。

(2)共用体变量名不能直接赋值,也不能引用共用体变量名得到一个值,共用体变量不能在定义时初始化。

实验九:文件的应用

【实验目的】

1.熟悉文件型指针的定义和使用方法。

2.熟悉系统函数中有关文件处理函数的调用格式及功能。

3.掌握文件处理程序的一般设计方法。

【实验内容】

1.程序分析题:

设有一文件cj.dat存放了50个人的成绩(英语、计算机、数学),存放格式为:每人一行,成绩间由逗号分隔。计算每个人三门课平均成绩,统计个人平均成绩大于或等于90分的学生人数。

#include

void main()

{

FILE *fp;

int num=0;

float x , y , z ;

fp=fopen ("cj.dat","r");

while(!feof(fp))

{

fscanf (fp,"%f,%f,%f",&x,&y,&z);

if((x+y+z)/3>=90)

num=num+1;

}

printf("平均分数高于90的人数为:%d人",num);

fclose(fp);

}

统计上题cj.dat文件中每个学生的总成绩,并将原有数据和计算出的总分数存放在磁盘文件“stu”中。

#include "stdio.h"

void main()

{

FILE *fp1,*fp2;

float x,y,z;

fp1=fopen("cj.dat","r");

fp2=fopen("stud","w");

while(!feof(fp1))

{

fscanf (fp1,"%f,%f,%f",&x,&y,&z);

printf("%.1f,%.1f,%.1f,%.1f\n",x,y,z,x+y+z);

fprintf(fp2,"%.1f,%.1f,%.1f,%.1f\n",x,y,z,x+y+z);

}

fclose(fp1);

fclose(fp2);

}

提示:

(1)文件指针的定义用于定义文件指针变量:FILE *文件指针变量名;

(2)文件打开函数用于打开指定文件并返回文件指针:fopen("文件名","打开方式");

(3)从文件读取格式化数据:fscanf(fp,格式控制,输入项地址表);

(4)向文件写入格式化数据:fprintf(fp,格式控制,输出项表);

(5)feof( )函数检查文件内部位置指针是否指向文件末尾。

(6)关闭文件函数:fclose(fp);

2.编程题

把通过键盘输入的字符顺序存入char.txt文件,输入字符为“#”时,结束输入。

# include

void main()

{

FILE *fp;

char ch;

fp=fopen("char.txt","w");

printf("输入一个字符串,以#结束:\n");

ch=getchar( );

while(ch!='#')

{

fputc(ch,fp);

ch=getchar();

}

fclose(fp);

}

提示:

(1)存储数据时,在二进制文件和文本文件中占用字节数的区别:

在二进制文件中一个int型数据占用的空间为2 字节,在文本文件中一个字符占用1字节。

(2)文件读写函数

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

Q308.(10分)第5章实验2:体型判断。 医务工作者经广泛的调查和统计分析,根据身高与体重因素给出了以下按“体指数”进行体型判断的方法。体指数计算公式是: t = w /(h*h) 其中:t是体指数;w是体重,其单位为千克;h是身高,其单位为米。根据给定的体指数t计算公式,可判断你的体重属于何种类型: 当t<18 时,为低体重; 当18≤t<25 时,为正常体重; 当25≤t<27 时,为超重体重; 当t≥27 时,为肥胖。 ****输入提示信息格式:"Please enter h,w:\n" ****输入数据格式要求:"%f,%f"(先读入身高,再读入体重,身高以米读入,体重以千克读入) ****输出数据格式要求: 当t<18 时,输出:"Lower weight!\n" 当18≤t<25 时,输出:"Standard weight!\n"

当25≤t<27 时,输出:"Higher weight!\n" 当t≥27 时,输出:"Too fat!\n" #include #include main() { float t,w,h; printf("Please enter h,w:\n"); scanf("%f,%f",&h,&w); t = w/(h*h); if(t<18) printf("Lower weight!\n"); else if(t>=18&&t<25) printf("Standard weight!\n"); else if(t>=25&&t<27) printf("Higher weight!\n");

c语言第二版第七章答案

7.1 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。 参考程序如下: #include int aa(int m,int n) //求最大公约数 { int k; if(m int aa(int n) { int i; int flag; // flag标志 for(i=2;i<=sqrt(n);i++) { if(n%i==0) break; } if(i>sqrt(n)) flag=1; else flag=0;

return(flag); } main() { int n,flag; // flag标志 printf("\nInput n:"); scanf("%d",&n); flag=aa(n); if(flag==1) printf("%d is a prime number.\n",n); else printf("%d is not a prime number.\n",n); } 7.4 写一个函数,使给定的一个3*3的二维整型数组转置,即行列互换。 参考程序如下: #include main() { int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int b[3][3],i,j; printf("array a:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%5d",a[i][j]); printf("\n"); } printf("After switch:\n"); aa(a,b); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%5d",b[i][j]); printf("\n"); } } void aa(int a[3][3],int b[3][3]) { int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) b[j][i]=a[i][j]; } 说明:当数组名作函数参数时,形参也必须是同类型的数组名,形参数组名的实质是一个指针变量,存放的第0行第0列的元素的地址;这样,子函数中a[i][j]就是主函数中的a[i][j]; 7.11写一个函数,用“起泡法”对输入的10个字符按由小到大的顺序排列 参考程序如下: main()

c语言实验报告总结

篇一:《C语言上机实验心得》 C语言上机实验心得 在科技高度发展的今天,计算机在人们之中的作用越来越突出。而C语言作为一种计算机的语言,学习它将有助于我们更好的了解计算机,与计算机进行交流,因此,我们一定要学好C语言,这对我们以后的发展是十分重要的。 说到这,上机实验当然就是一个必不可少的环节了,C语言灵活、简洁的特点,只有通过编程实践才能真正了解,真正说懂。为了更好地学习语法规定、掌握程序设计方法、提高程序开发能力,我们必须实际上机、编写程序。 通过实验我也发现了自己不少的问题,这都是只看书上的程序而没有自己亲身上机编写程序而无法得知的,假如我们只因看熟书上的程序就以为自己已经掌握了C语言那就大错特错了。 我主要存在以下的这些缺点 1、学习耐心与细心不足,如scanf(“%d”,&n);中的“&”有时候会忘了。而在最后

输出时又错写成printf(“%d”,&n);从而错误得输出了地址而不是我原来想要的答案。 2、编程思想不够发散,看着题目有时想不出解答的方法,更不用说编写程序来解 题了。 3、 4、基本功不够,有些函数的表达不太精通,需要看书来核实,以致耗时较多。知识不够广,有些内容没有学好,不能要用到时及时反映出来,认识程度不够 深刻。 5、 6、有时候不够精简,有一点用处不大或者说没有也可以的文字存在。英语水平较差,对错误的地方虽然电脑有说,但由于是英文,理解上还是存在

一点问题。 为了能更好地学好C语言,在今后学习中我要更多的动脑,综合运用所学,多看相关东西,多上机练习,提高电脑水平,增强自学能力,把已会的东西掌握好。 实验中我深刻意识到完成程序的编写,决不意味着万事大吉。认为万无一失的程序,实际上机运行时可能会出现很多意想不到的问题。有时编译程序检测出一大堆错误,有时程序能够顺利运行,但是运行结果并不是你预期中想要的。因为开发环境所提供的编译系统无法发现程序逻辑错误,或者是你原来所设计时的理论错误,这就只能靠自己的上机经验来分析判断错误的所在了。所以程序的调试是一个技巧性很强的工作,它可能比编一个程序耗时更 多。由此可看出上机实践的重要性。 通过本次C语言上机实验,我对这个介于人类与非人类之间的计算机编程语言有了一定的体验。编程的时候有因为顺利编出程序而开心过、有因为做得比人家慢而郁闷过、有因为不知从何入手而无奈过、有因为不知错出在哪而彷徨过但随着练习的增多,我对C语言比以前熟了很多,不再只是纸上谈兵,我都有能力独立做出一些程序,可能对于一些“高手来说这不算什么,或者他们早就会了,但我依然觉得很开心,因为我跟我自己比是进步了。

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

实验报告 实验名称:最简单的C程序设计——顺序程序设计成绩: 实验日期: 2011 年 10 月 24 日实验报告日期: 2011 年 10 月24 日 实验者:桂婷 一、实验目的 1、掌握C语言中使用最多的一种语句——赋值语句的使用方法。 2、掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。 3、进一步掌握编写程序和调试程序的方法。 二、实验内容 1、输入程序并运行结果。 2、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。编程序,用scanf输入数据,输出计算结果/。 3、计算存款利息。 有1000元,想存5年,可探子以下5种办法存: (1)一次存5年期; (2)先存2年期,到期后将本息再存3年期; (3)先存3年期,到期后将本息再存2年期; (4)存1年期,到期后将本息存再存1年期,连续存5次; (5)存活期存款。活期利息每一季度结算一次。 三、实验步骤: 1、

总结:1、变量在定义时就赋了初值。 2、两次的printf语句输出都指定了要输出数据的长度和小数点。2、 总结:1、程序在定义时只对部分变量赋了初值,这是允许的。 2、在计算时,乘号是用*表示,不能省略。 3、同样,在输出时指定了输出格式,长度,小数点位数。 3、

总结:1、用scanf语句输入数据,要与指定的格式一样。 2、程序用到了数学公式,调用“include ” 4、实验出现的问题、实验结果分析 1、程序在运行时是自上而下同,自左向右的。运到调用函数则会跳 转,但调用完了仍然回到主函数中。 2、printf语句中的常量是按原样输出的。 3、注意赋值语句的使用。 五、实验小结和思考 1、如果在程序2中不指定输出的长度和小数位数,看运行结果。 2、在程序3中不包含“include ”会怎样? 3、程序3若不给变量赋初值会出现什么情况。

C语言实验题

实验四选择结构程序设计 1、编写程序输入三个数,按由小到大的顺序输出。 #include main() ( int a,b,c,t; printf("请输入三个整数:”); scanf("%d%d%d”,&a,&b,&c); if(a>=b) ( t=a; a=b; b=t; } if(a>=c) ( t=a; a=c; c=t; } if(b>=c) ( t=b; b=c; c=t; } printf("%d,%d,%d\n”,a,b,c); } 2、为优待顾客,商店对购物额为1000元以上(含1000元,下同)者,八折优惠;500元以上,1000元以下者,九折优惠; 200元以上,500元以下者,九五折优惠; 200元以下者,九七折优惠;100元以下者不优惠。 由键盘输入一个购货款额,计算应收的款额。 (1) if语句: #include main() ( float m,pay; printf("请输入金额:\n"); scanf("%f",&m); if(m>=1000) pay=m*0、8; else if(m>=500) pay=m*0、9;

else if(m>=200) pay=m*0、95; else if(m>=100) pay=m*0、97; else pay=m; printf("%f\n",pay); } (2) swicth 语句: #include main() { float m,pay; printf("请输入金额:\n"); scanf("%f",&m); switch ((int)m/100) { case 0: pay=m;break; case 1: pay=m*0、97;break; case 2: case 3: case 4: pay=m*0、95;break; case 5: case 6: case 7: case 8: case 9: pay=m*0、9;break; default:pay=m*0、8; } printf("%f",pay); } 实验五循环结构程序设计 1、求1+2+3+、、、、、、+n的与,其中n的值有键盘输入。要求分别使用for,while,与do while 语句实现。 (1)for 语句: #include main() { int i,n,sum; printf("请输入n的值:"); scanf("%d",&n); i=0; for(sum=0;i<=n;i++) (

C语言第七章习题答案

7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。 hcf(u,v) int u,v; { int a,b,t,r; if(u>v) { t=u;u=v;v=t; } a=u;b=v; while((r=b%a)!=0) { b=a;a=r; } return(a); } lcd(u,v,h) int u,v,h; { int u,v,h,l; scanf("%d,%d",&u,&v); h=hcf(u,v); printf("H.C.F=%dn",h); l=lcd(u,v,h); printf("L.C.d=%dn",l); return(u*v/h); } #include

void main() { int u,v,h,l; scanf("%d,%d",&u,&v); h=hcf(u,v); printf("H.C.F=%dn",h); l=lcd(u,v,h); printf("L.C.D=%dn",l); } 7.2 求方程根 float x1,x2,disc,p,q; greater_than_zero(a,b) float a,b; { x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); } equal_to_zero(a,b) float a,b; { x1=x2=(-b)/(2*a);} smaller_than_zero(a,b) float a,b; { p=-b/(2*a);

q=sqrt(disc)/(2*a); } main() { float a,b,c; printf("n输入方程的系数a,b,c:n"); scanf("%f,%f,%f",&a,&b,&c); printf("n 方程是:% 5.2f*x*x+%5.2f*x+%5.2f=0n",a,b,c); disc=b*b-4*a*c; printf("方程的解是:n"); if(disc>0) { great_than_zero(a,b); printf("X1=%5.2ftX2=%5.2fnn",x1,x2); } else if(disc==0) { zero(a,b); printf("X1=%5.2ftX2=%5.2fnn",x1,x2); } else { small_than_zero(a,b,c); printf("X1=%5.2f+%5.2fitX2=%5.2f-%2.2fin",p,q,p,q);

2016年C语言实验报告

通知 各位老师: 本学期非计算机专业《计算机程序设计基础(C语言)》课实验报告要求: 1.统一用《武汉科技大学实验报告》本写。本学期交三次实验报告。 ①循环结构程序设计。 ②数组。 ③函数。 要求学生在完成以下实验报告,参考《C语言程序设计课程实验与题解》中的要求认真完成。 实验1 循环结构程序设计 一、实验目的 1.熟悉用while语句,do-while语句和for语句实现循环的方法。 2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。 3.熟悉break语句和continue语句用法的不同之处。 二、实验内容 【例】以下程序,输出下三角形状的乘法九九表。 #include void main() { int i,j; for (i=1;i<=9;i++) /* 打印表头*/ printf(" %4d",i); printf("%c",'\n'); for (i=0;i<=50;i++) printf("%c",'_'); printf("%c",'\n'); for (i=1;i<=9;i++) /* 循环体执行一次,打印一行*/ { for (j=1;j<=i;j++) printf(" %4d",i*j); /* 循环体执行一次,打印一个数据*/ printf("%c",'\n'); /* 每行尾换行*/ } printf("%c",'\n'); } 输入并执行该程序,观察输出结果,试着修改程序打印上三角形状的乘法九九表。 三、编程序并上机调试运行。 1.打印出所有“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方和正好等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。 解题思路:根据题目要求只要分别求出一个三位数的个位、十位、百位上的数字,然后判断是否满足(某一三位数a=a的百位的立方+a的十位的立方+a的个位的立方)这个公式,满足这个三位数就是“水仙花数”。 2.李先生岁数的平方与他的夫人的岁数之和是1053,而他的夫人的岁数的平方与他

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语言实验习题

1.数据类型 a.输入一个小数点后有多位数字的小数,实现将其保留三位小数,并输出;(3.14159 → 3.142,10.123456 →10.123) b.输入一个4位整数,求其得各位数字的平方和;(1234 →1+4+9+16=30).

c.定义字符型变量ch,写出六种给ch赋值字符’A’的代码; d.编写程序输出26组大小写字母;(AaBbCc……….XxYyZz) e.定义浮点型变量f1、f2,为f1赋值10的-30次,为f2赋值10的30次 f.定义一个单精度浮点型变量f和一个双精度浮点型变量d,为f和d都赋值 3.14159265358979323846264338327950288,输出f和d得值,要求保留20位小数,观 察输出结果; g.输入华氏温度求摄氏温度。转换公式为c=5/9(f-32),输出结果取两位小数。

2.分支结构 a.输入三角形得三个边的边长,以此判断能否组成三角形,是什么形状的三角形;(等边 三角形、等腰三角形、直角三角形、等腰直角三角形、一般三角形) b.输入一个年份值,判断是否为闰年; c.输入a、b、c三个整型变量,分别使用if语句和条件运算符求出三个数的最大值和最小 值; d.输入任意实数,求出其所对应的函数值(调用数学函数库)。 z=e的x次幂(x>10) z=log(x+3) (x>-3) z=sin(x)/((cos(x)+4) e.输入一个成绩,输出此成绩对应的级别;(优、良、中、及格、不及格),要求分别使用 if语句和switch语句; f.判断一个字符是否为字母或者数字; g.使用条件运算符实现让c等于a、b中较大的,d等于a、b中较小的,e等于a的绝对 值。 h.读入一元二次方程的三个系数,a,b,c,求出各种情况下方程的根,无解或输入数据不正 确输出提示信息

C语言程序设计第四版第七章答案 谭浩强

第七章函数 7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。 maxyueshu(m,n) int m,n; { int i=1,t; for(;i<=m&&i<=n;i++) {if(m%i==0&&n%i==0) t=i; } return(t); } minbeishu(m,n) int m,n; {int j; if(m>=n) j=m; else j=n; for(;!(j%m==0&&j%n==0);j++); return j; } main() {int a,b,max,min; printf("enter two number is: "); scanf("%d,%d",&a,&b); max=maxyueshu(a,b); min=minbeishu(a,b); printf("max=%d,min=%d\n",max,min); } 7.2求方程的根,用三个函数分别求当b2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。 #include"math.h" float yishigen(m,n,k) float m,n,k; {float x1,x2; x1=(-n+sqrt(k))/(2*m); x2=(-n-sqrt(k))/(2*m); printf("two shigen is x1=%.3f and x2=%.3f\n",x1,x2); } float denggen(m,n) float m,n; {float x; x=-n/(2*m); printf("denggen is x=%.3f\n",x); }

游戏C语言实验报告

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

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

: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语言第七章复习题(不含答案)

1.下列对C语言字符数组的描述中错误的是( )。 (A)字符数组可以存放字符串 (B)字符数组中的字符串可以整体输入、输出 (C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 (D)不可以用关系运算符对字符数组中的字符串进行比较 2.不能把字符串:Hello!赋给数组b的语句是( )。 (A)char b[10]={'H','e','l','l','o','!'}; (B)char b[10];b="Hello!"; (C)char b[10];strcpy(b,"Hello!"); (D)char b[10]="Hello!"; 3.若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是( )。 (A)a[g-c] (B)a[4] (C)a['d'-'c'] (D)a['d'-c] 4.以下程序的输出结果是( ) (A) 20 (B) 21 (C) 22 (D)23 main() { int i, k, a[10], p[3]; k=5; for (i=0;i<10;i++) a[i ]=i; for (i=0;i<3;i++) p[i ]=a[i *(i+1)]; for (i=0;i<3;i++) k+=p[i] *2; printf("%d\n",k); 5.以下程序的输出结果是( )。 (A) 1,5,9 (B) 1,4,7 (C) 3,5,7 (D)3,6,9 main() { int i, x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf("%d,",x[i][2-i]); 6.下面程序运行的结果是( )。 (A) 2ba56 (B) 6521 (C) 6 (D) 62 main() { char ch[7]={“65ab21“}; int i,s=0 for(i=0;ch[i]>='0' && ch[i]<='9';i+=2) s=10*s+ch[i]-'0'; printf("%d\n",s); } 7.合法的数组定义是( )。 (A)int a[]="string"; (B)int a[5]={0,1,2,3,4,5}; (C)char s[6]="string"; (D)char a[]={0,1,2,3,4,5}; 8.函数调用:strcat(strcpy(str1,str2),str3)的功能是( )。 (A)将串str1复制到串str2中后再连接到串str3之后 (B)将串str1连接到串str2之后再复制到串str3之后 (C)将串str2复制到串str1中后再将串str3连接到串str1之后

C语言程序设计实验报告优秀范文

C语言程序设计实验报告优秀范文 实验名称计算出1000以内10个最大素数之和 实验目的 1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。 2、熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。 3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。 实验内容 计算并输出1000以内最大的10个素数以及它们的和。 要求: 在程序内部加必要的注释。 由于偶数不是素数,可以不考虑对偶数的处理。 虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。 输出形式为:素数1+素数2+素数3+…+素数10=总和值。 算法描述流程图 main函数: 判断素数: 源程序 #include #include int sushu(int n)/* 判断素数的函数*/ { int t,i; t=sqrt(n); for(i=2;i if(n%i==0)/* 如果不是素数,返回0 */ return 0; return n;/* 如果是素数,返回该数*/ } void main { int i,j=0,n,m=0,a[1000],x; /*clrscr;*/ printf("please input a number form 1 to 1000:"); scanf("%d",&x); if(x==2)/* x=2时的处理*/ printf("%dn",x); else if(x printf("error!n");

C语言课后实验设计题目及答案

C语言实验题目及答案 1、实验项目一 C程序的编辑、编译、连接和运行 题目:编写程序,要求屏幕上显示如下信息: *********************** This is a C program . *********************** 程序: #include void main() { printf(“***********************\n”); printf(“This is a C programn .\n”); printf(“***********************\n”); } 实验项目二数据类型、运算符、表达式 题目 (1)程序填空:输入1 个实数x,计算并输出其平方根(保留1 位小数)。 填空 1.double x,root; 2.root=sqrt(x); (2)输入一个大写英文字母,输出相应的小写字母。 填空 1.ch=ch+32; 1、#include "stdafx.h" #include "stdio.h" #include "math.h" int main(int argc, char* argv[]) { printf("This is a Cprogram\n"); return 0;

} 2、#include "stdafx.h" #include "stdio.h" #include "math.h" int main(int argc, char* argv[]) { double x; printf("x="); scanf("%lf",&x); printf("%lf\n",sqrt(x)); return 0; }

C语言课后习题

习题 第三章 #include #include int main() { int d,p; double r,a,m; scanf("%d %d %lf",&d,&p,&r); a=(p/(p-d*r)); m=log(a)/log(1+r); if(p>0&&d>0) { if(d<=m*p) printf("%.1f",m); else printf("God"); } else printf("0.0"); return 0; } 勾股数 #include int main() { int a,b,c,n; scanf("%d",&n); for(a=1;a<=n;a++) { for(b=1;b<=n;b++) { for(c=1;c<=n;c++) { if(c*c==a*a+b*b) { if(a<=b) { printf("%d %d %d\n",a,b,c); } }

} } } return 0; } 第四章 计算分段函数值 #include int main() { float x,y; scanf("%f",&x); if(x<1) y=x; else if(x>=1&&x<10) y=2*x-1; else if(x>=10) y=3*x-11; printf("%.2f",y); return 0; } 找出三个数中最大的数 #include int main() { int a,b,c,max; scanf("%d%d%d",&a,&b,&c); max=a>b?a:b; if(c>max) max=c; printf("%d",max); return 0; } 10844成绩等级评分 #include int main() { int x; scanf("%d",&x); if(x>=0&&x<=100) { switch(x/10) { case 10:

C语言实验报告

郑州轻工业学院 实践报告 实现内容: OJ1123最佳校友(数组)、OJ1158又是升序(指针)、OJ1180成绩统计(结构)、OJ1203做幻方(文件) 学号:541507020140 学生姓名:王红旭 专业班级:电子信息科学与技术15-01 所在院系:计算机与通信工程学院 指导教师:王秉政 成绩: 实践名称:上机实验课 来源课程:[0404230]C程序设计进阶 实践时间:2016.03-05 实践地点:科学校区实验楼301 报告撰写时间:2016.05.10 1123最佳校友(数组)

1实践目的 为了方便数组的管理和使用,提高程序设计的效率。 2 实践要求 熟练使用数组解决问题。 3 使用的技术、知识点、工具等 C语言程序设计书本教材,数组等。 4 需求分析和功能描述 要求;北京校友会每年举办两次,所有校友都有校友编号,每次到会的校友都在签到簿上写下自己的编号和姓名,在校友会成立5周年的聚会上将颁发“最佳校友奖”,该奖项颁发给到会次数最多的校友。现在请你编写程序,找出这个奖项的得主。若有多个校友并列第一,则均可获奖。 5 系统总体设计 #include int main() { int a[100]={0}; int i,n,max,k; while(scanf("%d",&n),n>=0) a[n]++; max=a[0]; for(i=1;i<100;i++) { if(a[i]>max) max=a[i]; } k=0; for(i=0;i<100;i++) { if(a[i]==max) { if(k==0) printf("%d",i); else printf(" %d",i); k++; } }

C语言-数组-实验题目及答案

实验六数组程序设计 【实验目的】 1、掌握使用一维数组编程方法 2、掌握使用二维数组进行程序设计 【实验内容】 一、上机验证程序,并分析结果 要求:读懂程序,写出分析结果;上机运行程序,得到运行结果,比较之。1、#include int main() { int a[ ]={1,2,3,4,5} , i, j, s=0 ; j = 1; for ( i = 4 ; i>=0 ; i--) { s = s+ a[i] * j ; j = j * 10 ; } printf(" s= %d \n" , s ); return 0; } 二、程序改错题 1.下面程序的功能,是从键盘输入一个数组(数组长度为10),查找数组中正数的个数。源代码如下,程序中存在错误,请将其改正。 #include int main()

{ int a(10);/*定义数组*/ int count,i;/* i循环变量 count 正数个数*/ for(i=0;i<=10;i++) {/*循环输入*/ scanf("%d",a[i]); } count=1; for(i=0;i<=10;i++) {/*查找正数*/ if(a(i)>0) count++; } printf("数组中正数有:%d个\n",count); return 0; } 三编写程序 1.编写程序要求输入30个学生的单科成绩,输出高于平均分的成绩。#include #define N 30 int main() { float score[N],sum=0,aver; int i; for(i=0;i<30;i++) { scanf("%f",&score[i]); sum=sum+score[i]; } aver=sum/30; printf("平均分为:%.2f\n",aver); for(i=0;iaver) printf("%.2f ",score[i]); printf("\n");

相关文档