您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页c语言编程题汇总

c语言编程题汇总

来源:化拓教育网
.

实验一:简单的C程序设计(2学时)

一、实验方式:

一人一机

二、实验目的:

1、了解C语言程序的编译环境和编写过程。

2、掌握C语言程序在Visual C++ 6.0环境下的调试过程。 3、初步了解C语言程序的特点。 4、掌握C语言的数据类型。

三、实验内容:

1、计算两个数x和y的和。(教材P5【例1-2】)

2、从键盘输入华氏温度h,输出摄氏温度c(摄氏温度=5/9*(华氏温度-32))。(实验教材P18)

3、给定圆环,输入内圆环半径r1、外圆环半径r2,求出圆环的面积。(实验教材P27) 4、从键盘上输入两个整数x、y,实现两个数的交换,并求出最大值、最小值和两个数的平均值。(实验教材P21)

5、输入并运行以下程序,分析运行结果。(实验教材P27) #include void main( ) {

int i,j; i=8; j=10;

printf(“%d,%d\\n”,++i,++j); i=8; j=10;

printf(“%d,%d\\n”,i++,j++); i=8; j=10;

printf(“%d,%d\\n”,++i,i); i=8; j=10;

printf(“%d,%d\\n”,i++,i); }

四、实验程序代码:

1

#include \"stdio.h\" void main() { int x,y,sum; x=123; y=456; sum=x+y;

printf(\"sum is=%d\\n\}

.

.

2

#include \"stdio.h\" main() { double h,c;

// printf(\"Input h\\n\"); scanf(\"%lf\ c=5.0/9*(h-32); printf(\"c=%lf\} 3

#include \"stdio.h\" #define p 3.14 void main() { float r1,r2; double s1,s2,s; printf(\"please enter r1,r2:\"); scanf(\"%f%f\ s2=r2*r2*p; s1=r1*r1*p; s=s2-s1; printf(“圆环面积为%lf\\n\}

4

#include \"stdio.h\" void main() {

int x,y,t,max,sum=0; float average;

printf(\"请输入两个整数 x y:\"); scanf(\"%d%d\

printf(\"您输入的两个整数 x y为:\"); printf(\"x=%d,y=%d\\n\ max=x;

if(maxaverage=sum/2.0; {t=x;x=y;y=t;}

printf(\"交换后的两个整数 x y为:\"); printf(\"x=%d,y=%d\\n\ printf(\"最大值max=%d\\n\

printf(\"平均值average=%f\\n\}

五、实验运行结果(截图):

.

.

1、

2.

3.

.

.

4.

实验二:顺序结构程序设计(2学时)

一、实验方式:

.

.

一人一机

二、实验目的:

1、掌握标识符、常量、变量的定义及使用。 2、掌握C语言的常用运算符及表达式。 3、掌握单分支if语句的使用方法。

4、掌握双分支if-else语句的使用方法。

三、实验内容:

1、从键盘输入一个3位整数,请输出该数的逆序数。(实验教材P27)

2、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。(实验教材P27)

3、判断箱子是正方体还是长方体。(实验教材P33) 4、有一函数: x (x<1) y= 2x-1 (1≤x<10)

3x-11 (x≥10) 编写程序,输入x值,输出y值。

5、从键盘上输入3个数a、b、c,求一元二次方程的解x1、x2,并分别把这两个解的绝对值作为圆柱的半径与高,计算圆柱的体积。(实验教材P20)

四、实验程序代码:

1.

#include void main() { int a,b,c,x,y; printf(\"请输入一个3位的正整数:\\n\"); scanf(\"%d\ a=x/100; b=x%100/10; c=x%10; y=c*100+b*10+a; printf(\"%d:%d\\n\}

2.

#include void main() { char a,b,c; float x; printf(\"please ener:\\n\"); scanf(\"%c%c%c\ x=(a+b+c)/3.0; printf(\"(a+b+c)/3=%.2f\\n\} 3.

#include

.

.

void main() { int l,w,h; printf(\"please enter three numbers:\\n\"); scanf(\"%d,%d,%d\ if(l==w&&w==h)/*if分支*/ printf(\"该箱子是正方体。\\n\"); else printf(\"该箱子是长方体。\\n\"); } 4.

#include void main() { float x,y; printf(\"please enter a number:\\n\"); scanf(\"%f\ if(x<1) y=x; else {if(x>=1&&x<10) y=2*x-1; else if(x>10) y=3*x-11; } printf(\"y的值为%f\\n\} 5.

#include #include #define p 3.14 void main() { float a,b,c,x1,x2,r,h; double s,v; printf(\"请输入三个数a,b,c:\"); scanf(\"%f%f%f\ if(b*b-4*a*c>=0) { x1=(-b+sqrt(b*b-4*a*c))/(2*a); x2=(-b-sqrt(b*b-4*a*c))/(2*a); x1=fabs(x1); x2=fabs(x2); printf(\"一元二次方程的解的绝对值x1=%f,x2=%f\\n\ } h=x2;

.

.

}

r=x1; s=r*r*p; v=s*h;

printf(\"v=%lf\\n\

五、实验运行结果(截图):

1.

2 .

.

.

3.

4.

.

.

5.

实验三:选择结构程序设计(2学时)

一、实验方式:

.

.

一人一机

二、实验目的:

1、掌握多分支语句的一般形式和使用方法。 2、掌握switch语句的一般形式和使用方法。

3、利用switch语句与break语句相结合解决生活中的问题。 4、学习调试和修改选择结构的程序。

三、实验内容:

1、定义4个实型变量a、b、c、d,利用单分支if语句对其进行排序,最后将结果输出。(实验教材P33)

2、编写程序,从键盘上输入某一年月,判断这年的这个月份有多少天。(教材P75【例5-6】)

3、编写程序,对于给定的学生百分制成绩,分别输出等级‘A’,‘B’,‘C’,‘D’,‘E’,其中90分以上为‘A’,80~分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。(要求分别使用switch和if语句实现)(实验教材P123) 4、编写程序,从键盘上输入一个字符,如果该字符是小写字母,则转换成大写字母输出;如果是大写字母,则转换成小写字母输出;如果是其他字符,原样输出。(实验教材P124)

四、实验程序代码:

1.

#include void main() { float a,b,c,d,t; scanf(\"%f,%f,%f,%f\ if(a>b) { t=a; a=b; b=t; } if(a>c) { t=a; a=c; c=t; } if(a>d) { t=a; a=d; d=t; }

.

.

if(b>c) { t=b; b=c; c=t; } if(b>d) { t=b; b=d; d=t; } if(c>d) { t=c; c=d; d=t; } printf(“%f,%f,%f,%f”,a,b,c,d); } 2.

/*example5_6.c*/ #include void main() { int year,month,days; printf(\"please enter year and month:\"); scanf(\"%d%d\ if(month,0&&month>13) printf(\"You input Error Data\\n\"); else switch(month) { case 2:if(year%4==0&&year%100!=0||year%400==0) days=29; else days=28; break; case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31; break; case 4: case 6:

.

.

case 9: case 11: days=30; break; } printf(\"%d年%d月有%d天\\n\} 3.

#include void main() { float score; char ch; scanf(\"%f\ switch((int)(score/10)) { case 10: case 9:ch='A';break; case 8:ch='B';break; case 7:ch='C';break; case 6:ch='D';break; default:ch='E';break; } printf(\"%f分等级是%c\\n\}

#include void main() { float score; char ch; scanf(\"%f\ if(score>100||score<0) printf(\"you input error data\"); else if(score<=100&&score>=90) ch='A'; else if(score>=80) ch='B'; else if(score>=70) ch='C'; else if(score>=60) ch='D'; else ch='E'; printf(\"%f分等级是%c\\n\} 4.

#include void main() { char ch; scanf(\"%c\ if(ch>='a'&&ch<='z')ch=ch-32; else if(ch>='A'&&ch<='Z')ch=ch+32;

.

.

}

else ch=ch;

printf(\"转换后卫:%c\\n\

五、实验运行结果(截图):

1.

2.

.

.

3.

.

.

4.

.

.

实验四:循环结构程序设计(一)(2学时)

一、实验方式:

一人一机

二、实验目的:

1、掌握while、do-while、for语句实现循环的方法。 2、了解3种循环语句的区别和转换。

3、掌握在程序设计中用循环的方法实现各种算法。

三、实验内容:

1、计算sum=1+2+…+100。(教材P83【例6-1】)

2、从键盘上连续输入多个学生成绩分数(0-100),编写程序统计学生最高、最低和平均成绩。(实验教材P40)

3、编写程序输出所有水仙花数,并统计水仙花数的个数,其中水仙花数是一个3位数的自然数,该数各位数的立方和等于该数本身。(实验教材P42) 4、编写程序,计算数列

1235813,,,,,,…,计算数列的前20项的和。(实23581321验教材P46)

5、编写程序,从键盘上输入正整数m,判断m是否为质数。(教材P98【例6-12】)

四、实验程序代码:

.

.

1.

#include void main() { int i=1,sum=0; while(i<100) { sum=sum+i; i++; } printf(\"sum=%d\\n\} 2.

#include void main() { int score,max,min,i=0; float sum=0.0,average; printf(\"请输入学生的成绩:\\n\"); scanf(\"%d\ max=min=score; while(score!=-1) { if(score>=0&&score<=100) { sum=sum+score; i++; if(maxscore) min=score; } scanf(\"%d\ } average=sum*1.0/i; printf(\"max=%d,min=%d\\n\ printf(\"有效成绩共%d个学生,平均分为:%f\\n\} 3.

#include void main() { int a,b,c; int count=0; int m=100; printf(\"100~999的水仙花数为:\"); do {

.

.

a=m/100; b=(m-100*a)/10; c=m%10; if(a*a*a+b*b*b+c*c*c==m) { printf(\"%5d\ count++; } m++; } while(m<1000); printf(\"\\n100~999的水仙花数共%d个\\n\} 4.

#include #define N 20 void main() { int i; float m=1.0,n=2.0,t,p; double sum=0.0; t=m/n; for(i=1;i<=N;i++) { sum=sum+t; p=m+n; m=n; n=p; t=m/n; } printf(\"前20项的结果为:%lf\\n\} 5.

#include #include void main() { int m,i=2; int flag=1; printf(\"请输入一个数,验证是否为质数:\"); scanf(\"%d\ for(i=2;i<=sqrt(m);i++) if (m%i==0) { flag=0; break;

.

.

}

}

if(flag=1) printf(\"恭喜,你输入的数%d是质数!\\n\else printf(\"对不起,你输入的数%d不是质数!\\n\

五、实验运行结果(截图):

1.

2.

.

.

3.

4.

.

.

5.

实验五:循环结构程序设计(二)(2学时)

一、实验方式:

一人一机

二、实验目的:

.

.

1、掌握循环嵌套的使用。

2、掌握如何在循环语句中使用循环控制语句break和continue,改变程序流程。 3、掌握在程序设计中用循环的方法实现各种算法。

三、实验内容:

补充1:编写程序,输出左下三角九九乘法口诀表。(教材P92【例6-8】)

1、编写程序,计算圆周率π,其中 π/4=1-1/3+1/5-1/7+……,直到某一项的绝对值小于10-6为止。(教材P86【例6-4】)

2、编写一个程序,求数列1!-3!+5!-7!+……+(-1)n-1(2n-1)!,n的值由键盘录入。(实验教材P43)

3、使用for循环语句,打印以下二维图案。(实验教材P44) * *** ***** ******* ***** *** *

4、编写程序实现“百马百担”问题。有100匹马,要驮100担货物,其中1匹大马可以驮3担,1匹中马可以驮2担,2匹小马可以驮1担,请问大马、中马和小马可以有多少种组合。(实验教材P47)

四、实验程序代码:

1.

#include void main() { int i,j; printf(\"左下三角九九乘法口诀表:----------\\n\"); for(i=1;i<=9;i++) { for(j=1;j<=i;j++) printf(\"%d*%d=%2d\ printf(\"\\n\"); } } 2.

#include void main() { int i,j,n,flag=1; long fact,sum=0; printf(\"请输入一个数,计算前几项的值:\"); scanf(\"%d\ printf(\"前%d项和为:\ for(i=1;i<=2*n-1;i=i+2)

.

.

{ fact=1; for(j=1;j<=i;j++) fact=fact*j; sum=sum+fact*flag; flag=-flag; } printf(\"%ld\ printf(\"\\n\"); } 3.

#include void main() { int i,j,k; for(i=1;i<=4;i++) { for(j=1;j<=5-i;j++) printf(\" \"); for(j=1;j<=2*i-1;j++) printf(\"*\"); printf(\"\\n\"); } for(i=5;i<=7;i++) { for(j=1;j<=i-3;j++) printf(\" \"); for(k=1;k<=15-2*i;k++) printf(\"*\"); printf(\"\\n\"); } } 4.

#include void main() { int m,n,k; int sum=0; for(m=0;m<=100;m++) for(n=0;n<=100-m;n++) { k=100-m-n; if(k%2==0&&3*m+2*n+k/2==100) { printf(\"大马%d匹,中马%d匹,小马%d匹\\n\ sum++;

.

.

}

} }

printf(\"共有%d种驮法组合\\n\printf(\"\\n\");

五、实验运行结果(截图):

1.

2.

.

.

3.

4.

.

.

实验六:数组程序设计(一)(2学时)

一、实验方式:

一人一机

二、实验目的:

1、掌握一维数组和二维数组的定义和数组元素的引用方法。 2、了解一维数组和二维数组初始化方法。 3、学习一维数组和二维数组的基本算法。

三、实验内容:

补充1:编写程序,计算出Fibonacci数列前20项的值,并将结果按4个数一行输出到

屏幕上。(教材P113【例7-5】)

1、下列程序的功能是:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。程序中有几处错误,试找出它们后加以修改,并上机验证修改结果。 #include void main( )

{ int i,n,a[10],avg; for(i=0;iscanf(“%d”,a[i]); for(i=0;i{ if(i%3==0) printf(“\\n”); printf(“%d ”,a[i]);

}

for(i=0;i.

.

avg+=a[i];

printf(“\\navg=%f\\n”,avg);

}

2、从键盘上读入10个整数存入数组a,找出数组a中的数的最大值,并计算数组a中所有数组元素的平均值。(教材P112【例7-4】) 3、编写程序,将数组中的值逆序存放。(实验教材P60) 4、从键盘上输入10个整数,然后按照从小到大的顺序把这10个数排序并输出到屏幕上。(教材P114【例7-6】冒泡法排序、P115【例7-7】选择法排序)

四、实验程序代码:

1.

#include void main() { } 2.

int i; int Fib[20]; Fib[0]=1; Fib[1]=1; for(i=2;i<20;i++)

Fib[i]=Fib[i-1]+Fib[i-2];

printf(\"Fibonacci数列前20项如下:\\n\"); for(i=0;i<20;i++) { }

printf(\"\\n\");

if(i%4==0) printf(\"\\n\")

printf(\"Fib[%2d]=%5d \

.

.

#include void main() { int i,a[10],max; float sum=0,average; printf(\"Input 10 integer data:\\n\"); for(i=0;i<10;i++) scanf(\"%d\ max=a[0]; sum=0; for(i=0;i<10;i++) { if(max#include #define N 10 void main() { int i,t,a[N]; printf(\"请输入10个数的数组:\"); for(i=0;i#include

.

.

#define N 10 void main() { int a[N],i,j,t,p; printf(\"Input 10 numbers:\\n\"); for(i=0;i五、实验运行结果(截图):

1.

.

.

2.

3.

.

.

4.

实验七:数组程序设计(二)(2学时)

一、实验方式:

一人一机

二、实验目的:

.

.

1、掌握字符数组的定义,初始化及其元素的引用方法。 2、掌握C语言提供的对字符串进行处理的基本库函数。 3、学习用数组实现相关的算法(特别是排序算法)。

三、实验内容:

1、编写程序计算Fibonacci数列,并输出前20项,每行5项。(实验教材P130) 2、计算一个4×4矩阵的对角线元素之和。(实验教材P55) 3、判断某一字符串是不是“回文数”,回文数是从左至右或从右至左读起来都是一样的字符串。(实验教材P56)

4、编写程序,实现字符串测试长度函数strlen的功能。(实验教材P60)

四、实验程序代码:

1.

#include #define N 20 void main() { int i; long F[N]; printf(\"Fibonacci数列前20项如下:\\n\"); F[0]=1; F[1]=1; for(i=2;i#include void main() { int i,j,a[4][4],sum=0; printf(\"请输入4*4的矩阵:\\n\"); for(i=0;i<4;i++) for(j=0;j<4;j++) scanf(\"%d\ for(i=0;i<4;i++) for(j=0;j<4;j++) if(i==j||i+j==3) sum=sum+a[i][j]; printf(\"输入对角线的元素和:\"); printf(\"sum=%d\

.

.

printf(\"\\n\"); } 3.

#include #include #define N 40 void main() { char str[N],ch='Y'; int i; int len; printf(\"Input a string:\"); scanf(\"%s\ len=strlen(str); for(i=0;i#include #define N 100 void main() { int i=0; char s[N]; printf(\"请输入字符串:\"); gets(s); while(s[i]!='\\0') i++; printf(\"字符串:\"); puts(s); printf(\"字符串长度length=%d \ printf(\"\\n\"); }

五、实验运行结果(截图):

.

.

1.

2.

3.

.

.

4.

实验八:函数程序设计(一)(2学时)

一、实验方式:

一人一机

二、实验目的:

.

.

1、掌握函数的定义方法。

2、掌握函数的调用方法及参数之间传递数据的规则。 3、掌握函数的声明方法。

三、实验内容:

1、调用函数,求3个整数中的最大值。(教材P139【例8-2】)

2、从键盘输入三角形的3条边,调用三角形面积函数求出其面积,并输出结果。(参考教材P62【例4-12】)

3、编写一个函数,当输入整数n后,输出高度为n的等边三角形。当n=4时的等边三角形如下: * *** *****

******* (实验教材P136)

4、数组中存放了一个学生5门课程的成绩,求平均成绩。(教材P144【例8-7】)

四、实验程序代码:

1.

#include void main() { int max(int a,int b); int x,y,z,m; printf(\"Please enter three numbers: \"); scanf(\"%d%d%d\ m=max(max(x,y),z); printf(\"The max is %d,\\n\}

int max(int a,int b) { int c; if(a>b) c=a; else c=b; return (c); } 2.

#include #include void main() { float a,b,c,s,area; scanf(\"%f,%f,%f\ s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(\"a=%7.2f,b=%7.2f,c=%7.2f,s=&7.2f\\n\ printf(\"area=%7.2f\\n\

.

.

} 3.

#include void main() { void trangle(int n); int n; printf(\"请输入一个整数值:\"); scanf(\"%d\ trangle(n); }

void trangle(int n) { int i,j; for(i=0;i#include void main() { float aver(float a[5]); int i; float score[5],average; printf(\"请输入该学生5门课程的成绩:\\n\"); for(i=0;i<5;i++) scanf(\"%f\ average=aver(score); printf(\"平均成绩是%5.2f\\n\}

float aver(float a[5]) { int i; float ave,sum=0; for(i=0;i<5;i++) sum=sum+a[i]; ave=sum/5.0; return ave; }

五、实验运行结果(截图):

.

.

1.

2.

3.

.

.

4.

实验九:函数程序设计(二)(2学时)

一、实验方式:

.

.

一人一机

二、实验目的:

1、进一步掌握数组和函数的编程方法。

2、掌握局部变量、全局变量、静态变量的概念和使用方法。 3、综合运用函数和数组的知识,实现复杂程序的编程。 4、掌握宏定义、宏调用以及宏替换的处理过程。

三、实验内容:

1、编写一个函数,用冒泡法对输入的10个整数进行排序(按升序排序)。(实验教材P134) 2、编写一个函数,实现给定某年某月某日,将其转换成这一年的第几天并输出。(教材P156【例8-17】)

3、输入并运行以下程序,分析运行结果。 #include \"stdio.h\" int d=1; void main( ) { int f(int p);

int a=3;

printf(\"%d \ }

int f(int p)

{ static int d=5; d+=p;

printf(\"%d \ return (d); } 4、有两个数组a和b,各有10个元素,分别统计出两个数组中对应元素大于(a[i]>b[i])、等于(a[i]=b[i])、小于(a[i]5、输入三角形的三条边长,利用海式求出三角形的面积并输出。要求使用带参数的宏定义。(实验教材P81)

四、实验程序代码:

1.

#include #define N 10 void main() { int a[N],i,j,t; printf(\"Input 10 numbers:\\n\"); for(i=0;ia[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;}

.

.

printf(\"%d \ printf(\"\\n\"); } 2.

#include

int tab[13]={0,13,28,31,30,31,31,30,31,30,31}; void main() { int day_year(int y,int m,int d); int year,month,day; printf(\"请输入年月日:\\n\"); scanf(\"%d%d%d\ printf(\"是这年的的%d天\\n\}

int day_year(int y,int m,int d) { int i,s=0; for(i=1;i=3) s++; return (s+d); } 3.

#include \"stdio.h\" int d=1; void main( )

{ int f(int p); int a=3;

printf(\"%d \ }

int f(int p)

{ static int d=5; d+=p;

printf(\"%d \ return (d); }

4.

#include #define N 10 void main() { int comp(int m,int n); int i,a[N],b[N];

.

.

int x=0,y=0,z=0; printf(\"请输入第一个数组:\"); for(i=0;iint comp(int m,int n) { int flag; if(m>n) flag=1; if(m==n) flag=0; if(m#include #include

#define S(a,b,c) ((a+b+c)/2)

#define AREA(S,a,b,c) ((S)*(S-a)*(S-b)*(S-c)) void main() { float x,y,z,area; printf(\"请输入三角形的三边长:\\n\"); scanf(\"%f%f%f\ if(x>0&&y>0&&z>0&&x+y>z&&x+z>y&&y+z>x) { area=sqrt(AREA(S(x,y,z),x,y,z)); printf(\"三角形的面积为:%.2f\\n\ } else printf(\"输入数据有误!\\n\"); }

五、实验运行结果(截图):

2.

.

.

3.

4.

.

.

5.

实验十:指针程序设计(2学时)

一、实验方式:

.

.

一人一机

二、实验目的:

1、掌握指针的概念和指针的运算。 2、掌握指针与数组的关系。 3、掌握指针与字符串的关系。 4、掌握指针作为函数的参数。

三、实验内容:

1、从键盘输入两个整数a 和b,编写函数swap1和swap2实现两个整数的交换,实参与形

参的传递方式分别使用数值传递和地址传递,main函数调用这两个函数实现。(实验教材P87)

2、输入a和b两个整数,按由大到小顺序输出a和b。要求使用函数处理,并且使用指针

类型的数据作为函数参数。(教材P178【例10-2】)

3、输入3个整数,按从大到小的次序输出。要求用指针方法实现。

4、用函数调用实现字符串的复制。编写函数copy_string实现字符串的复制,形参用字符指针变量,main函数调用这个函数实现。(教材P194【例10-12】)

四、实验程序代码:

1.

#include void swapl(int x,int y); void swap2(int *x,int *y); void main() { int a,b; printf(\"Please Input a=:\"); scanf(\"%d\ printf(\"b=:\"); scanf(\"%d\ swapl(a,b); printf(\"After Call swapl:a=%d b=%d\\n\ swap2(&a,&b);/*实参传递*/ printf(\"After Call swap2:a=%d b=%d\\n\}

void swapl(int x,int y) { int temp; temp=x; x=y; y=temp; }

void swap2(int *x,int *y) { int temp; /*交换x,y地址上的值*/

.

.

temp=*x; *x=*y; *y=temp; } 2.

#include void main() { void swap(int *p1,int *p2); int a,b; int *pointer_1,*pointer_2; scanf(\"%d,%d\ pointer_1=&a;pointer_2=&b; if(avoid swap(int *p1,int *p2) { int temp; temp=*p1; *p1=*p2; *p2=temp; } 3.

#include void main() { void exchange(int *q1,int *q2,int *q3); int a,b,c, *p1,*p2,*p3; scanf(\"%d,%d,%d\ p1=&a;p2=&b;p3=&c; exchange(p1,p2,p3); printf(\"\\n%d,%d,%d\\n\}

void exchange(int *q1,int *q2,int *q3) { void swap(int *pt1,int *pt2) if(*q1<*q2) swap(q1,q2); if(*q1<*q3) swap(q1,q3); if(*q2<*q3) swap(q2,q3); }

void swap(int *pt1,int *pt2) { int temp; temp=*pt1; *pt1=*pt2;

.

.

*pt2=temp; } 3.

#include void main() { void exchange(int *q1,int *q2,int *q3); int a,b,c,*p1,*p2,*p3; scanf(\"%d,%d,%d\ p1=&a,p2=&b,p3=&c; exchange(p1,p2,p3); printf(\"\\n%d,%d,%d\\n\}

void exchange(int *q1,int *q2,int *q3) { void swap(int *pt1,int *pt2); if(*q1<*q2) swap(q1,q2); if(*q1<*q3) swap(q1,q3); if(*q2<*q3) swap(q2,q3); }

void swap(int *pt1,int *pt2) { int temp; temp=*pt1; *pt1=*pt2; *pt2=temp; } 4.

#include void main() { void copy_string(char from[ ] ,char to[ ]); char a[ ]=\"I am a teacher.\"; char b[ ]=\"you are a student.\"; printf(\"\\string a =%s\\string b=%s\\n\ printf(\"copy string a to string b:\\n\"); copy_string(a,b); printf(\"\\nstring a=%s\\nstring b=%s\\n\}

void copy_string(char from[ ],char to[ ]) { int i=0; while(from[i]!='\\0') { to[i]=from[i];i++;

.

.

}

}

to[i]='\\0';

五、实验运行结果(截图):

1.

2.

.

.

3.

4.

.

.

实验十一:结构体程序设计(2学时)

一、实验方式:

一人一机

二、实验目的:

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

三、实验内容:

1、定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天?注意闰年问题。(实验教材P97)

2、在选举中进行投票,包含候选人姓名、得票数,假设有多位候选人,用结构体数组统计各候选人的得票数。(实验教材P98)

3、用结构体数组建立10名学生信息,包括学号、姓名、年龄、三门课的成绩。输入一位学生的学号,查询该生信息。(实验教材P94)

四、实验程序代码:

1.

#include struct { int year; int month; int day;

.

.

}date;

void main() { int i,days; int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; printf(\"input year,month,day:\\n\"); scanf(\"%d%d%d\ days=0; for (i=1;i=3) days=days+1; printf(\"%d/%d is %dth day in %d.\\n\} 2.

#include #include struct person { char name[20]; int count;

}a[6]={\"zhang\void main() { int i,j; char abc[20]; for(i=1;i<=10;i++) { printf(\"输入候选人名字:\"); scanf(\"%s\ for(j=0;j<6;j++) if(strcmp(abc,a[j].name)==0) a[j].count++; } for(j=0;j<6;j++) printf(\"%s:%d\\n\}

3.#include #define NUM 10 struct student { int num; char name[10]; int age; float score[3];

.

.

};

void main() { struct student stu[NUM]; int i,j,number; for(i=0;i五、实验运行结果(截图):

1.

.

.

2.

实验十二:文件程序设计(2学时)

一、实验方式:

一人一机

.

.

二、实验目的:

1、掌握文件和文件指针的概念以及定义方法。 2、了解文件打开和关闭的概念和方法。

3、能够利用文件读写函数,编程实现对文件的简单操作。

三、实验内容:

1、编写程序,把一个文件的内容复制到另一个文件上,在复制时把大写字母改为小写字母。(实验教材P112)

2、从键盘输入10个整型数据,存入data.dat文件。(实验教材P112)

3、从键盘输入4个学生的相关数据,将其存入到磁盘文件stu.dat,并输出stu.dat文件的内容到屏幕。(实验教材P112)

4、从键盘输入一行字符串,将其中的小写字母全部转换成大写字母,输出到一个磁盘文件“test.dat”中保存,然后读出并输出在屏幕上。

四、实验程序代码:

1.

#include #include void main() { FILE *fp1,*fp2; char ch; if((fp1=fopen(\"origin.txt\ { printf(\"File read error!\"); exit(0); } if((fp2=fopen(\"copy.txt\ { printf(\"File read error!\"); exit(0); } while (!feof(fp1)) { ch=fgetc(fp1); if(ch>=65&&ch<=90) /*大写字母的ASCII码为65到90*/ ch=ch+32; fputc(ch,fp2); } fclose(fp1); fclose(fp2); } 2.

#include void main()

.

.

{ FILE *fp; int i; float x; fp=fopen(\"date.dat\ for(i=1;i<=100;i++) { scanf(\"%f\ fprintf(fp,\"%f\\n\ } fclose(fp); } 3.

#include #include struct student_type { char name[10]; int num; int age; char addr[30]; }stud[4]; void save() { FILE *fp; int i; if((fp=fopen(\"stu.dat\ { printf(\"The file can not be written!\"); exit(0); } for(i=0;i<4;i++) fwrite(&stud[i],sizeof(struct student_type),1,fp); fclose(fp); }

void main() { int i; for(i=0;i<4;i++) scanf(\"%s%d%d%s\ save(); } 4.

#include #include void main()

.

.

{ }

FILE *fp; char str[100]; int i;

if((fp=fopen(\"test.dat\{ printf(\"Cannot open the file.\\n\"); exit(0); }

printf(\"Input a string:\");

gets(str); /*读入一行字符串*/

for(i=0;str[i]&&i<100;i++) /*处理该行中的每一个字符*/ { if(str[i]>='a'&&str[i]<='z') /*若是小写字母*/ str[i]-='a'-'A'; /*将小写字母转换为大写字母*/ fputc(str[i],fp); }

fclose(fp); /*关闭文件*/

fp=fopen(\"test\ /*以读方式打开文本文件*/ fgets(str,100,fp); /*从文件中读入一行字符串*/ printf(\"%s\\n\fclose(fp);

五、实验运行结果(截图):

1.

.

.

4.

.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务