C实验报告1-10

更新时间:2024-02-27 14:55:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验1熟悉Visual C++6.0环境及运行C程序

一、实验目的

1.掌握在Visual C++6.0环境下C程序的建立、编辑、编译和执行过程。 2.掌握C程序的最基本框架结构,完成简单程序的编制与运行。 3.了解基本输入输出函数scanf()、printf ()的格式及使用方法。

4.掌握发现语法错误、逻辑错误的方法以及排除简单错误的操作技能。

二、实验内容

1.下列程序的功能是:从键盘输入两个数a和b,求它们的平方和,并在屏幕上输出。输入该C程序,编译并运行之,记下屏幕的输出结果,以文件名sy1_1.c保存。

#include main() {

int a,b,sum; /*定义整型变量a、b、sum */ printf(\ /*输出提示信息*/

scanf(\ /*从键盘输入两个整数分别赋予a和b*/ sum=a*a+b*b; /*赋值语句,把a2+b2的结果赋给变量sum*/ printf(\输出语句*/ }

【使用Visual C++实验步骤】

第1步:进入Visual C++环境后,执行“文件”|“新建”菜单命令。

第2步:在“新建”对话框中切换到“文件”选项卡,然后选择C++ Source File选项。 第3步:在右边的目录文本框中输入准备编辑的源程序文件的存储路径,在“文件”文本框中输入准备编辑的C源程序文件名(如:sy1_1.c)。注意后缀是.c。然后单击“确定”按钮。

第4步:在光标闪烁的程序编辑窗口输入上面C程序(注意:/* */之间的内容为程序注释部分,不执行),程序输入完毕后执行“文件”|“保存”命令,或单击工具栏上的“保存”按钮,也可以用Ctrl+S快捷键来保存文件。

第5步:执行“编译”|“编译”菜单命令,或单击工具栏上的“编译”按钮,也可以按Ctrl+F7组合键,开始编译。观察调试信息窗口输出编译的信息,如果有错,则修改后再编译,直至编译信息为:“0 error(s),0 warning(s)”,表示编译成功。

第6步:按F7键或单击

,生成应用程序的菜单命令EXE文件(如sy1_1.exe)。

第7步:运行程序观察结果。执行“编译”|“执行”,或单击工具栏上的“执行”按钮,也可以使用Ctrl+F5快捷键。

2. 改错题

(1)下列程序的功能为:计算x*y的值并将结果输出。试纠正程序中存在的错误,以实现其功能。程序以文件名sy1_2.c保存。

#include main

{ int x=2;y=3;a

A=x*y

print ('a=%d\printf(\; }

(2)下程序的功能为:求两数中的较大数据并输出。纠正程序中存在的错误,以实现其功能。程序以文件名sy1_3.c保存。

#include viod main() {

int a ,b , max;

Scanf(\ /*从键盘输入两个整数分别赋予变量a和b */

Max=a;

If (max

}

3.程序填空题

(1)从键盘输入两个整数,输出这两个整数的和。根据注释信息填写完整程序,以实现其功能。以文件名sy1_4.c保存。

#include main() {

/* 定义整型变量x,y,total*/

printf(\ /*输出提示信息 */ /*由键盘输入两个数分别赋予x和y*/ total=x+y; /*赋值语句 */

printf(\ /* 输出两个整数的和 */ }

(2)从键盘输入两个整数,输出这两个整数的差。根据注释信息填写完整程序,以实现其功能。程序以文件名sy1_5.c保存。

main() {

int a,b,m; printf(\

scanf(\

_________________ /*赋值语句,将a和b的差值赋给m */ _________________ /* 输出a 和b差的结果值后换行 */ }

4.编程题 (1)编程序,运行后输出如下信息:“Better City,Better Life!”。程序以文件名sy1_6.c保存。

(2)编程序,从键盘输入3个整数,输出它们的平方和。程序以文件名sy1_7.c保存。

实验2 数据类型、运算符和表达式

一、实验目的

1.理解C语言中各种数据类型的意义,掌握各种数据类型的定义方法。 2.掌握C语言常量、变量的定义与使用。 3.掌握C语言数据类型及运算符的使用规则。

二、实验内容

1.改错题

(1)下列程序的功能为:已知圆锥半径r和高h,计算圆锥体积v。纠正程序中存在的错误,以实现其功能。程序以文件名sy2_1.c保存。计算圆锥体积的公式为:

#include stdio.h main();

{ floatr=10,h=5;

v=1/3*3.14159*r^2*h; printf(\%d\\n\}

(2)下列程序的功能为:通过键盘输入两个整数分别存放在变量x、y中,不借用第3个变量实现变量x、y互换值。纠正程序中存在的错误,以实现其功能。程序以文件名sy2_2.c保存。

#include main() { int x,y; printf(\请输入两个整数\\n\ scanf(\ printf(\初始状态下的x:%d y: %d\\n\ ); x=x+y y=x-y; x=x-y;

printf(\最终状态下的x:%d y: %d/n\}

2.程序填空题

(1)计算当x=4时,公式y?1?x3x2?4x?10×2x2的值。补充完善程序,以实现其

功能。程序以文件名sy2_3.c保存。

#include

main() {

float x=4.0,y;

printf(\}

(2) 下列程序的功能为:从键盘输入3个整数分别存入变量a、b、c,然后,将变量a的值存入变量b,将变量b的值存入变量c,将变量c的值存入变量a,输出经过转存后变量a、b、c的值。(提示:使用中间变量)补充完善程序,以实现其功能。程序以文件名sy2_4.c保存。

#include main()

{

int a,b,c,;

printf(\scanf(\; ; ; ;

printf(\}

3.编程题

(1)从键盘输入3个大写英文字母,把它们转换成小写字母后输出。程序以文件名sy2_5.c保存。

(2)从键盘输入3个整数,输出它们的平均值与积。程序以文件名sy2_6.c保存。

实验3 顺序结构程序设计

一、实验目的

1.掌握scanf()、printf()以及其他常用输入、输出函数的使用。 2.掌握格式控制符的使用。

3.掌握顺序结构程序设计的方法。

二、实验内容

1.改错题

(1)下列程序的功能为:输入一个华氏温度,要求输出摄氏温度。公式为:C= 5(F?32),

9输出取2位小数。纠正程序中存在的错误,以实现其功能。程序以文件名sy3_1.c保存。

#include main() {

float c,f;

printf(\请输入一个华氏温度:\\n\; scanf(\,f); c=(5/9)*(f-32);

printf(\摄氏温度为:%5.2f\\n\;

}

(2)下列程序的功能为:按下列公式计算并输出x的值。其中a和b的值由键盘输入。纠正程序中存在的错误,以实现其功能。程序以文件名sy3_2.c保存。

x?2ab 2(a?b)#include main() { int a,b;

float x;

scanf(\x=2ab/(a+b)(a+b);

printf(\}

(3)下列程序的功能为:从键盘输入一个小写字母,要求改用大写字母输出。请纠正程序中存在的错误,使程序实现其功能,程序以文件名sy3_3.c保存。

#include main() {

char c1,c2;

c1=getchar; /* 从键盘输入一个小写字母 */

printf(\ /* 输出该小写字母及其ASCII码值 */ c2=c1+26; /* 转换为大写字母 */

printf(\ /* 输出大写字母及其ASCII码值 */ }

2.程序填空题

(1)下列程序的功能为:按给定格式输入数据,按要求格式输出结果。补充完善程序,以实现其功能。程序以文件名sy3_4.c保存。

输入形式enter x,y:2 3.4 输出形式x+y=5.4

#include main() {

int x; float y;

printf(\ \;

}

(2) 下列程序的功能为:设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据r、h,输出计算结果,输出时要求有文字说明,取小数点后2位数字。(周长l=2?r,圆面积s=?r,圆球表面积sq=4?r,圆球体积vq=

2243?r;圆柱体积vz=?hr2),请补充完善程序,以实现其功能。程序以文件名sy3_5.c3保存。

#include main() {

float pi,h,r,l,s,sq,vq,vz; pi=3.1415926;

printf(\请输入圆半径r,圆柱高h:\\n\; ; l=; s=; sq=; vq=; vz=;

printf(\圆周长为:); printf(\圆面积为:); printf(\圆球表面积为:); printf(\圆球体积为:); printf(\圆柱体积为:);

}

(3) 下列程序的功能为:通过键盘输入两个整数,分别存入变量x、y中,当x

保存。

#include main()

{ int x,y,t;

printf(\请输入x,y:\\n\; ;

if (x

printf(\交换后的x:%d y:%d \\n\,x,y); }

3.编程题

(1)编写一个程序实现如下功能:从键盘输入3个字符,然后在屏幕上分3行输出该3个字符。程序以文件名sy3_7.c保存。

(2)编写一个程序实现如下功能:输入一元二次方程ax2+bx+c=0的系数a、b、c,求方程的根。要求:运行该程序时,输入a、b、c的值,分别使b2-4ac的值大于、等于和小于零,观察并分析运行结果。程序以文件名sy3_8.c保存。求根公式如下:

实验4选择结构程序设计

一、实验目的

1.掌握关系运算符和关系表达式的使用方法。 2.掌握逻辑运算符和逻辑表达式的使用方法。 3.掌握if语句、switch语句、条件运算符(?:)的使用方法。 4.掌握选择结构程序的设计技巧。

二、实验内容

1.改错题

(1)下列程序的功能为:输入1个字母,如果它是小写字母,则首先将其转换成大写字母,再输出该字母的前序字母、该字母、该字母的后序字母,例如:输入g,则输出FGH;输入a,则输出ZAB;输入M,则输出LMN;输入Z,则输出YZA。纠正程序中存在的错误,以实现其功能。程序以文件名sy4_1.c保存。

#include main()

{ char ch,c1,c2;

printf(\ch=getchar();

if((ch>='a')||(ch<='z')) ch-=32; c1=ch-1; c2=ch+1;

if(ch='A') c1=ch+25; else if(ch='Z') c2=ch-25; putchar(c1); putchar(ch); putchar(c2); putchar('\\n'); }

(2)下列程序的功能为:输入3个整数后,输出其中最大值。纠正程序中存在的错误,以实现其功能。程序以文件名sy4_2.c保存。

#include main() {

int a,b,c,max;

printf (\请输入3个整数:\\n\scanf (\max=a; if (c>b)

{ if (b>a) max=c;} else

{if (c>a) max=b;}

printf(\3个数中最大者为:%d\\n\

}

(3)下列程序的功能为:输入1-4月份号,输出该月份对应的英语表示法。例如,输入“3”,则输出“Mar”。纠正程序中存在的错误,以实现其功能。程序以文件名sy4_3.c保存。

#include main() {

char m;

printf(“input the month number:\\n”); scanf (\switch (m) {

case 1:printf (“Jan”); case 2:printf (“Feb”); case 3:printf (“Mar”); case 4:printf (“Apr”); } }

2.程序填空题

(1)下列程序的功能为:判断从键盘上输入的一个字符,并按下列要求输出。 若该字符是数字,输出字符串\

若该字符是大写字母,输出字符串\若该字符是小写字母,输出字符串\

若该字符是其他字符,输出字符串\,@,?\

补充完善程序,以实现其功能。程序以文件名sy4_4.c保存。

#include main() { char c;

scanf(_____________________); if(c>='0' &&c<='9')

__________________________

else if(________________________) printf(\___________(c>='a' &&c<='z')

printf(\_____________________

printf(\,@,?\\n\

}

(2)下列程序的功能为:实现加、减、乘、除四则运算。补充完善程序,以实现其功能。程序以文件名sy4_5.c保存。

#include main()

{ int a,b,d; char ch;

printf(\

scanf(\ /*输入数学表达式*/ switch(ch) {

case '+':d=a+b; printf(\ break;

case '-':d=a-b; printf(\ break;

case '*':d=a*b; printf(\ break; case '/': if() /*如果除数为0,则显示出错提示信息 */ printf(\ else printf(\ /*强制类型转换*/ break; default: printf(\ } }

(3)下列程序的功能为:猜价格,用户输入自己估计的价格,程序判断其正确性。补充完善程序,以实现其功能。程序以文件名sy4_6.c保存。

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

printf(\请主持人输入时尚手机的实际价格\\n\ scanf(\

printf(\请观众猜时尚手机的价格\\n\ scanf(\ if()

printf(\低了\\n\ if()

printf(\猜对了!\\n\ if()

printf(\高了\\n\}

3.编程题

printf(\for (i=0;i<8;i++) scanf(\t=*p;

for (i=0;;i++) {

for (j=i;j<8;j++) if (j==i||*(p+j)

if (k!=i) { t=*(p+k); } }

for (i=0;i<8;i++) printf(\}

(2)下列程序的功能为:将一个整数字符串转换为一个数,如字符串“5489”转换为数字5489。选择填空,使程序实现其功能。程序以文件名sy8_5.c存盘。

#include #include chnum(char *p); void main() {

char s[6]; int n; gets(s);

if(*s=='-') n=-chnum(s+1);

else n=chnum(s); printf(\

}

chnum(char *p)

{

int num=0,k,len,j; len=strlen(p); for( ;①;p++) {

k=②; j=(--len);

while(③) {k=k*10;} num=num+k;

}

return(num); }

①A.*p!='\\0' B. *(++p)!='\\0' C.*(p++)!='\\0' D. len!=0 ②A. *p B. *p+'0' C. *p-'0' D. *p-32 ③A. --j B. j-->0 C. --len D. len-->0

(3)下列程序的功能为:将字符数组a的所有字符传送到字符数组b中,要求每传送三个字符后再存放一个空格,例如字符串a为“abcdef”,则字符串b为“ abc def g”。补充完善程序,以实现其功能。程序以文件名sy8_6.c存盘。

#include main()

{ int i,k=0;

char a[80],b[80],*p; p=a;

gets(p); while(*p)

{ for(i=1;;p++,k++,i++) { if() {b[k]= ' ';k++;} b[k]=*p; } }

b[k]= '\\0'; puts(b); }

3.编程题

(1)输入一个字符串,将其中的数字字符组成一个数字。程序以文件名sy8_7.c存盘。 (2)利用指针作函数参数,设计一函数对字母进行简单加密,把当前的字母变成后面第3个字母,如最后三个字母x、y、z变成字母a、b、c。再设计一函数把加密字符还原。程序以文件名sy8_8.c存盘。

(3)设计一个指针函数,实现将字符串b连接到字符串a的后面。程序以文件名sy8_9.c存盘。

实验9 结构体与链表程序设计

一、实验目的

1.掌握结构体类型变量的定义和使用。 2.掌握结构体类型数组的概念和应用。

3.掌握链表的概念,初步学会对链表进行操作。

二、实验内容

1.改错题

(1)下列程序的功能为:学生姓名(name)和年龄(age)存于结构体数组person中。函数fun的功能是:找出年龄最小的那名学生。纠正程序中存在的错误,以实现其功能。程序以文件名sy9_1.c存盘。

#include struct stud

{ char name[20]; int age; } ;

fun(struct stud person[],int n) {

int min,i; min=0;

for(i=0;i

if(person[i]

void main() {

struct stud a[]={{\int n=4;

struct stud minpers; minpers=fun(a,n);

printf(\是年龄小者,年龄是:%d\\n\}

(2)下列程序的功能为:按学生姓名查询其排名和平均成绩。查询可连续进行,直到输入0 时结束。纠正程序中存在的错误,以实现其功能。程序以文件名sy9_2.c存盘。

#include #include #define NUM 4 struct student

{ int rank; /* 学生排名 */ char name; /* 学生姓名 */

float score; /* 学生成绩 */

}stu[]={ 3,\main()

{ char str[10]; int i; do

{ printf(\scanf(\for(i=0;i

if( (strcmp(str,stu[i].name)!=0) ) { printf(\

printf(\ %d\\n\

printf(\ continue; }

if(i>=NUM) printf(\

} while(strcmp(str,\}

(3)下列程序的功能为:建立一个由小到大的单链表。纠正程序中存在的错误,以实现其功能。程序以文件名sy9_3.c存盘。

#include #include struct Link { int data;

struct Link *next; } ;

void InsertList(struct Link *H,int n) {

struct Link *p,*q,*s;

s=(struct Link *) malloc(sizeof(struct Link)); s->data=n;

q=H;p=H->next;

while(p&& n>p->data) { q=p;p=p->next; }

q->next=s; s->next=q->next; }

void main() {

int a[]={12,3,45,67,7,65,10,20,35,55}; int i;

struct Link *H,*p;

H=(struct Link *) malloc(sizeof(struct Link)); H->next=NULL; for(i=0;i<10;i++) InsertList(H,a[i]); p=H->next; while(p) {

printf(\ p=p->next; }

printf(\}

2.程序填空题

(1)下面程序的功能是:用来统计一个班级(N个学生)的学习成绩,每个学生的信息由键盘输入,存入结构数组s[N]中,对学生的成绩进行优(90~100)、良(80~89)、中(70~79)、及格(60~69)和不及格(<60)的统计,并统计各成绩分数段学生人数。补充完善程序,以实现其功能。程序以文件名sy9_4.c存盘。

#include #define N 30 struct student {

int score; /* 学生成绩 */ char name[10]; /* 学生姓名 */ } s[N]; void main() {

int i, score90, score80, score70, score60, score_failed; for(i=0; i

scanf(\ /* 输入N个学生成绩、姓名,存入数组s中 */ score90=0; score80=0; score70=0; score60=0; score_failed=0; for(i=0; i

case 9:score90++; break; case 8:score80++; break; case 7:score70++; break; case 6:score60++; break; : score_failed++; } }

printf(\优:%d良:%d 中:%d 及格:%d 不及格:%d\\n\score_faileD.; }

本文来源:https://www.bwwdw.com/article/8hqa.html

Top