C语言程序设计实验教案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c程序实验教案”。
C语言程序设计实验教案
目录
实验一visual c++编译环境的使用..............................................................................2 实验二 顺序程序设计...............................................................................................6 实验三 选择结构程序设计........................................................................................9 实验四 循环结构程序设计......................................................................................13 实验五 函数...........................................................................................................17 实验六 指针...........................................................................................................22 实验七 数组...........................................................................................................25 实验八 结构体........................................................................................................32
实验一visual c++编译环境的使用
实验目的:
1.掌握c程序设计编程环境visual c++,掌握运行一个c程序设计的基本步骤,包括编辑、编译、连接和运行。
2.掌握c语言程序设计的基本框架,能够编写简单的c程序。3.了解程序调试的思想,能找出并改正c程序中的语法错误。实验内容:
1.在“我的电脑”上新建一个文件夹,用于存放c程序,文件夹名字可以是学号姓名。2.调试示例,在屏幕上显示一个短句“Hello World!”。
源程序
#include void main(){ printf(“Hello World!n”);} 运行结果:
Hello World!基本步骤:(要求熟练掌握)1)启动VC++ “开始”->“程序”->“Microsoft Visual Studio 6.0”->“Microsoft Visual C++6.0”进入VC++编程环境。2)新建文件(*.cpp)
“文件”->“新建”,单击“文件”选项卡,选择“C++Source Files”,修改文件保存“目录”和“文件”(文件名),单击“确定”。
3)编辑和保存(注意:源程序一定要在英文状态下输入,即字符标点都要在半角状态下,同时注意大小写,一般都用小写)
在编辑窗口输入源程序,然后执行“文件”->“保存”或“文件”->“另存为” 4)编译(*.obj)
用来检查语法错误
“编译”->“编译”或Ctrl+F7,在产生的工作区队话框中,选择“是”。5)连接(*.exe)“编译”->“构件”或F7 6)运行
“编译”->“执行”或Ctrl+F5 7)关闭程序工作区
“文件”->“关闭工作区” 8)打开文件
“文件”->“打开”
9)查看C源文件、目标文件和可执行文件的存放位置。
源文件在保存目录下,目标文件和可执行文件在“保存目录Debug”中
3.编程,在屏幕上显示一个短句“this is my first c program.”。4.调试示例,在屏幕上显示一个短句“welcome to you!”。源程序(有错误的程序)#include void mian(){ printf(Welcome to You!n”)} 运行结果(改正后的运行结果)Welcome to You!操作步骤:
1)按照实验2中介绍的步骤1)~3)输入上述源程序并保存。
2)编译,“编译”->“编译”(Ctrl+F7),信息窗口中显示编译出错信息,如下图所示。3)找出错误,在信息窗口中依次双击出错信息,编辑窗口就会出现一个箭头指向程序出错的位置,一般在箭头的当前行或上一行,可以找到出错语句。
第4行,出错信息:Welcome是一个未定义的变量,但Welcome并不是变量,出错的原因是Welcome前少了一个双引号。
4)改正错误,重新编译,得下如下图所示出错信息。
出错信息:“}”前少了分号。
5)再次改正错误,在“}”前即printf()后加上“;”(英文状态),生新编译,显示正确 6)连接,“编译”->“构件”(F7),出现如下出错信息。
出错信息:缺少主函数。
7)改正错误,即把“mian”改为“main”后,重新连接,信息窗口显示连接正确。8)运行,“编译”->“执行”(Ctrl+F5),观察结果是否与要求一致。5.改错,改正下列程序中的错误,在屏幕上显示以下3行信息。
**************** Welcome **************** 源程序(有错误的程序)#include void main(){ Printf(“****************n”);
}
实验报告要求
将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。
Printf(“
Welcome”)Printf(“****************n”);
实验二 顺序程序设计
【实验目的】
1.学会顺序程序设计的思想
2.进一步熟悉Turbo C集成编译环境的使用,达到熟练使用的目的 3.熟练掌握各种数据类型的输入输出格式,并学会使用输入输出函数 4.学会使用表达式
【实验内容】
1.在屏幕中输出一行文字“Hello,Welcome!” 说明:
(1)只需要在屏幕中显示一行文字即可 参考程序如下:
#include main(){
printf(“Hello,Welcome!n”);}
2. 输入一个华氏温度,要求输出摄氏温度。公式为
输出要求有文字说明,取两位小数
说明:
(1)摄氏温度F和华氏温度c都应用float类型变量存储(2)注意表达式书写中的各变量的顺序问题(3)输出时只需输出两位小数 参考程序如下:
#include main(){
float F,c;
printf(“input F:”);
scanf(“%f”,&F);
c=5*(F-32)/9;
printf(“c=%.2fn”,c);}
3.输入三角形三边长a、b、c,求三角形周长和l面积s。用scanf输入数据,输出计算结果,输出时要求有文字说明,取消书店后两位小数。说明:
(1)程序设计中使用的所有变量均为float类型c59F32(2)三角形周长公式:labc
abc2(3)三角形面积公式;sp(pa)(pb)(pc),其中
p
(4)注意应保证输入数据能够构成三角形
(5)需要使用开根号函数sqrt,在程序顶部加上#include一句(6)以a3.0,b4.0,c5.0运行程序,查看执行结果 参考程序如下:
#include #include main(){
float a,b,c,l,s;
float p;
printf(“input a,b,c:”);
scanf(“%f,%f,%f”,&a,&b,&c);
l=a+b+c;
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf(“l=%.2fn”,l);printf(“s=%.2fn”,s);}
4.设圆半径r1.5,圆柱高h3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取消书店后两位小数。说明:
(1)程序设计中使用的所有变量均为float类型(2)圆周长公式:l2r(3)圆面积公式:S1r(4)圆球表面积公式:S24r
V14322(5)圆球体积公式:
r3
(6)圆柱体积公式:V2rh 参考程序如下:
#include #define PI 3.14
2main(){
float r=1.5,h=3;
float l,s1,s2,v1,v2;
l=2*PI*r;
s1=PI*r*r;
s2=4*PI*r*r;
v1=4*PI*r*r*r/3;
v2=PI*r*r*h;
printf(“l=%.2fn”,l);printf(“s1=%.2fn”,s1);printf(“s2=%.2fn”,s2);printf(“v1=%.2fn”,v1);printf(“v2=%.2fn”,v2);}
实验三 选择结构程序设计
【实验目的】
1.了解C语言的逻辑运算 2.学会使用if语句和switch语句 3.熟练掌握选择结构程序设计方法
【实验内容】 1.有一函数
y x
x1 1x10 2x
13x11
x10
写一程序,输入x,输出y值 说明:
(1)根据输入x的不同求y的值,使用if语句
(2)分别输入三个分段中的三个数,判断输出结果是否正确,测试程序正确与否 参考程序如下:
#include main(){
float x,y;
printf(“input x:”);
scanf(“%f”,&x);
if(x
y=x;
if(x>=1 && x
y=2*x-1;
if(x>=10)
y=3*x-11;printf(“y=%fn”,y);}
2.从键盘输入一个字符,可以是数字、字母、或是标点符号,对输入的字符进行判断,如果是数字则输出“* is a number!”,如果是字母则输出“* is a letter!”,如果是其他的字符怎输出“* is the other!”(*为输入的字符)说明:
(1)从键盘输入一个字符,用char类型变量存储(2)使用if语句作判断(3)判断条件根据输入字符的ASCII码值的范围,具体的ASCII码值参看书后的ASCII码表
参考程序如下:
#include main(){
char c;
printf(“input a char:”);
scanf(“%c”,&c);
if(c>=48 && c
printf(“%c is a number!n”,c);
else if((c>=65 && c=97 && c
printf(“%c is a letter!n”,c);
else
printf(“%c is the other!n”,c);}
3.输入两个实数a、b,保证变量a中存储的是较大的数,变量b中存储的实较小的数,并按照由大到小的顺序输出。说明:
(1)需要对输入的两个数进行比较,判断是否需要交换两个数(2)按照从大到小的顺序输出两个数 参考程序如下:
#include main(){
float a,b;
float temp;
printf(“input a,b:”);
scanf(“%f,%f”,&a,&b);
if(a
{
temp=a;
} printf(“%f,%fn”,a,b);} 4.输入一年份,判断该年是否是闰年。说明:
(1)判断闰年的条件:能够被4整除,但不能被100整除或者能被100整除,又能被400整除
(2)使用一个变量来代表是否是闰年 a=b;b=temp;10(3)如果是闰年则输出“* is a leap year!”,否则输出“* is not a leap year!”。*代表输入的年份
参考程序如下:
#include main(){
int year;
int flag=0;
printf(“input a year:”);
scanf(“%d”,&year);
if((year%4==0 && year%100!=0)||(year%100==0 && year%400==0))
flag=1;
if(flag==1)
printf(“%d is a leap year!n”,year);
else
printf(“%d is not a leap year!n”,year);}
5.从键盘输入一个月号,显示输出该月号的英文名称 说明:
(1)使用if语句较为麻烦,因为需要做12次比较(2)使用switch语句
(3)如果输入月份超出范围,则应当输出错误信息 参考程序如下:
#include main(){
int month;
printf(“input a month:”);
scanf(“%d”,&month);
switch(month)
{
case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: printf(“January!n”);printf(“February!n”);break;break;printf(“March!n”);break;printf(“April!n”);break;printf(“May!n”);break;printf(“June!n”);break;printf(“July!n”);break;printf(“August!n”);break;printf(“September!n”);break;case 10: printf(“October!n”);break;case 11: printf(“November!n”);break;case 12: printf(“December!n”);break;
} } default: printf(“input error!n”);12
实验四 循环结构程序设计
【实验目的】
1.学会使用while、do-while、for语句 2.熟练掌握循环结构程序设计方法 3.掌握选择结构与循环结构的嵌套
【实验内容】
201.求和说明: n!n1(即求1!+2!+„„+20!)
(1)首先要求出每一项的n!的值
(2)然后把各项相加得到所求的值
(3)存储求和运算结果的变量的初始值应为0(4)存储求积运算结果的变量的初始值应为1 参考程序如下: ①使用while循环
#include main(){
float sum=0;
float mid=1;
int n=1;
while(n!=21)
{
mid=mid*n;
} printf(“sum=%fn”,sum);}
②使用for循环
#include main(){
float sum=0;
float mid=1;
int n;
for(n=1;n
{
mid=mid*n;n++;sum=sum+mid;
sum=sum+mid;} printf(“sum=%fn”,sum);}
2.求出100到200以内最大的素数和最小的素数,并求出两者的差值 说明:
(1)素数的概念:只能被1和自身整除的正整数
(2)分别求出这个两个素数,并输出,输出格式为:
big one:*
small one:*
最小的素数正序找出
最大的素数倒序找出
(3)求出两者的差,并输出,输出格式为:
result:* 参考程序如下:
#include main(){
int big,small;
int result;
} for(i=200;i>=100;i--){
int i,j;int flag;for(i=100;i
} if(i%j==0){
} flag=1;break;if(flag==0){
} small=i;break;flag=0;for(j=2;j
{
} if(flag==0){
} big=i;break;if(i%j==0){ flag=1;break;}
} result=big-small;printf(“big:%dn”,big);printf(“small:%dn”,small);printf(“reslut:%dn”,result);}
3.输入两个正整数m和n,求其最大公约数和最小公倍数 说明:
(1)最大公约数:能够被m和n同时整除的最大正整数(2)最小公倍数:m和n相乘的积除以最大公约数
(3)使用for循环,将m和n同时除以1到m(m为m和n两者中较小者),直到找出最大的正整数即为最大公约数(4)输出格式如下:
The greatest common divisor is *!
The least common multiple is *!参考程序如下:
#include main(){ int m,n,temp;int i;int great,least;
printf(“input m,n:”);
scanf(“%d,%d”,&m,&n);if(m>n){
temp=m;m=n;
n=temp;} for(i=1;i
{
if(n%i==0 && m%i==0)
great=i;} least=m*n/great;printf(“The greatest common divisor is %dn”,great);printf(“The least common multiple is %dn”,least);}
4.打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本书。例如,153是一水仙花数,因为153153 说明:(1)“水仙花数”是三位数,所以范围是从100到999(2)使用for循环
(3)循环中需要把数字的每一位都分离出来,然后求和,同原数字比较,进行判断 参考程序如下:
#include main(){ int a,b,c;
int i;int temp;for(i=100;i
33} }
实验五 函数
【实验目的】
1.掌握C语言函数的定义、声明以及函数的调用方法 2.了解主调函数和被调函数之间的参数传递方式 3.熟练掌握数组作为函数参数的用法
【实验内容】
1.写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。说明:
(1)判断素数的函数名为Prime(2)传递参数为int类型的变量(3)输出格式为:
* is a prime!或者* is not a prime!参考程序如下:
#include Prime(int num){ int i;int flag=0;for(i=2;i
if(num%i==0)
{
} flag=1;break;} if(flag==0)printf(“%d is a prime!n”,num);else
printf(“%d is not a prime!n”,num);} main(){ int num;printf(“input a num:”);scanf(“%d”,&num);Prime(num);}2.写一个函数,用“冒泡法”对输入的10个数字由小到大顺序排列,并输出。说明:
(1)排序的函数名为Sort(2)排序前后的输入输出都应在主函数中完成(3)使用数组作为函数参数(4)使用“冒泡法”排序 参考程序如下:
#include Sort(int num[]){ int i,j;int temp;for(i=0;i
} } main(){ int num[10];int i;printf(“input 10 numbers:”);for(i=0;i
scanf(“%d”,&num[i]);Sort(num);printf(“the sorted numbers:”);for(i=0;i
printf(“%d ”,num[i]);}
3.写一函数,使给定的一个二维数组(5×5)转置,即行列互换。说明:
(1)使用5×5的二维数组存放数据
(2)矩阵转置的函数名为Turn(2)转置前后的输入输出都应在主函数中完成(3)使用数组作为函数参数 for(j=0;j
} if(num[j]>num[j+1]){ temp=num[j];
} num[j]=num[j+1];num[j+1]=temp;18 参考程序如下:
#include void Turn(int num[5][5]){ int i,j;int temp;for(i=0;i
} } main(){ int num[5][5]={{1,2,3,4,5},{6,7,8,9,0},{11,12,13,14,15},{16,17,18,19,20},{21,22,23,24,25}};
int i,j;printf(“Before array be turned:n”);for(i=0;i
} temp=num[i][j];num[i][j]=num[j][i];num[j][i]=temp;
printf(“n”);} Turn(num);printf(“After array be turned:n”);for(i=0;i
} }
4.写一函数,使输入的字符串反序存放,在主函数中输入和输出字符串。说明:
(1)字符串反序的函数名为Reverse(2)反序前后的输入输出都应在主函数中完成(3)使用数组作为函数参数 for(j=0;j 参考程序如下:
#include #include void Reverse(char str[]){ int length;int i;char temp;length=strlen(str);for(i=0;i
} } main(){ char str[50];printf(“input a string:”);scanf(“%s”,str);Reverse(str);printf(“After reversed is %sn”,str);}
5.写一函数,将两个字符串连接。
说明:
(1)连接两个字符串的函数名为:Connect(2)将连个字符串存入两个字符串数组中,要保证第一个字符串的长度能够容纳两个字符串之和
(3)连接两个字符串主要是找到第一个字符串的结尾,然后将第二个字符串连接到第二个字符串的后边
(4)输出格式为:
The connected string is *!(5)使用数组作为函数参数
(6)连接前后的字符串输出都要在主函数中完成,自定义函数只完成连接功能 参考程序如下:
#include void Connect(char str1[],char str2[]){ int i,j;for(i=0;str1[i]!=' ';i++);for(j=0;str2[j]!=' ';j++,i++)temp=str[i];str[i]=str[length-1-i];str[length-1-i]=temp;
str1[i]=str2[j];str1[i]=' ';} main(){ char str1[50],str2[20];int i,j;printf(“input string1:”);scanf(“%s”,str1);getchar();printf(“input string2:”);scanf(“%s”,str2);Connect(str1,str2);printf(“The connected string is %sn”,str1);}
6.写一函数,求字符串的长度,并编写主函数。说明:
(1)求字符串长度的函数名为:Count(2)字符串结束的标志是’ ’(3)输出格式为:
The length of string is *!(4)使用数组作为函数参数 参考程序如下:
#include int Count(char str[]){ int i;for(i=1;str[i]!=' ';i++);return i;} main(){ char str[10];int length;printf(“input the string:”);scanf(“%s”,str);length=Count(str);printf(“The length of string is %d!n”,length);}
实验六 指针
【实验目的】
1.掌握C语言指针变量的定义、声明和赋值 2.学会使用指针变量的程序设计 3.掌握指针作为函数参数的用法
【实验内容】
1.使用指针作为函数参数,写一交换两个数的函数 说明:
(1)交换两个数的函数名为:Swap(2)使用指针变量作为函数参数
(3)在主函数中输入输出,自定义函数只完成交换功能 参考程序如下:
#include Swap(int *p1,int *p2){ int temp;temp=*p1;*p1=*p2;*p2=temp;} main(){ int a,b;int *p1,*p2;printf(“input a,b:”);scanf(“%d,%d”,&a,&b);p1=&a;p2=&b;printf(“Before swap a=%d,b=%dn”,a,b);Swap(p1,p2);printf(“After swap a=%d,b=%dn”,a,b);}
2.使用指针作为函数参数,写一求数组中最大值和最小值的函数。说明:
(1)函数名为:MaxAndMin(2)使用指针指向一维数组
(3)最大值和最小值的输出必须要在主函数中 参考程序如下:
#include MaxAndMin(int *array,int *max,int *min){ int i;
*max=array[0];*min=array[0];for(i=0;iarray[i])*min=array[i];
} } main(){ int array[10]={0,1,2,3,4,5,6,7,8,9};int max,min;int *p1,*p2;p1=&max;p2=&min;MaxAndMin(array,p1,p2);printf(“max=%dnmin=%dn”,max,min);}
3.找出以下程序的错误,并加以修改。①交换两个数
#include Swap(int *p1,int *p2){ int *temp;
temp=p1;
p1=p2;
p2=temp;} main(){ int a,b;int *pointer_1,*pointer_2;
scanf(“%d,%d”,&a,&b);
pointer_1=&a;pointer_2=&b;Swap(pointer_1,pointer_2);
}
②输出数组重点全部元素
#include printf(“n%d,%dn”,a,b);main(){ int *p,i,a[10];p=a;for(i=0;i
*p++=i;
for(i=0;i
printf(“a[%d]=%dn”,i,*p++);}
4.写一函数,求出矩阵中的最大值和最小值,要求使用指针作为函数参数。说明:
(1)使用二维数组存放矩阵元素(2)只用指针变量指向数组(3)函数名为:ArrayMaxAndMin 参考程序如下:
#include ArrayMaxAndMin(int *array,int *max,int *min,int n){ int i=0,j=0;*max=*(array+i*n+j);
*min=*(array+i*n+j);for(i=0;i
} if(*max*(array+i*n+j))*min=*(array+i*n+j);
} } main(){ int array[3][3]={1,2,3,4,5,6,7,8,9};int max,min;int *p,*p1,*p2;p=array;p1=&max;p2=&min;ArrayMaxAndMin(p,p1,p2,3);printf(“max=%dnmin=%dn”,max,min);}
实验七 数组
【实验目的】
1.掌握一维数组和二维数组的定义、赋值和初始化的方法 2.掌握字符数组的使用
3.熟练掌握与数组相关的各种算法
【实验内容】
1.从键盘输入10个整数,对这个十个数进行排序,并输出 说明:
(1)将这10个整数存入一个含有10个元素的一维数组中
(2)冒泡法:从第一个数开始依次让相邻的两个数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍比较后,最大的数已放在最后,第二遍只需考虑剩下的数,以此类推直到最后两个数比较后就可以完成排序。(3)比较完成后将数组中元素依次输出 参考程序如下:
#include main(){ int num[10];int i,j;int temp;printf(“input 10 numbers:”);for(i=0;i
scanf(“%d”,&num[i]);for(i=0;i
for(j=0;j
if(num[j]>num[j+1]){
temp=num[j];num[j]=num[j+1];num[j+1]=temp;
} } } printf(“the sorted numbers:”);printf(“%d ”,num[i]);for(i=0;i
}
2.从键盘输入一串字符串,统计字符串中特定字符的个数(特定字符也需要从键盘输入),并输出个数
说明:
(1)输入时需要用到的输入格式控制字是%s(2)字符串存入一个足够大的字符数组中,保证输入的字符个数不要超过最大个数(3)使用循环控制语句,需要了解字符数组的结束标志是’ ’,作为循环的结束标志(4)输出格式如下:
The number of * is *!参考程序如下:
#include main(){ char str[50];char ch;int count=0;int i=0;printf(“input a string:”);scanf(“%s”,str);getchar();printf(“input the char:”);scanf(“%c”,&ch);while(str[i]!=' ')
{
if(str[i]==ch)count++;i++;} printf(“The number of %c is %d!n”,ch,count);}
注意:
程序中多了一行getchar(),这并不是多余的,而是因为在输入完字符串后,键入的回车被放入到内存的输入缓冲区中,在输入特殊字符的时候ch得到了上一个回车,而无法得到我们要输入的字符,因此需要使用一行getchar()将缓冲区中的回车读出,相当于清除缓冲区的作用。
3.青年歌手参加歌曲大奖赛,有10个评委进行打分,试编程求这位选手的平均得分(去掉一个最高分和一个最低分)。
说明:
(1)将10位评委的打分放入一个含有10个元素的一维数组中(2)程序设计重点是排序
(3)排序后只要用中间的8个元素即可(4)输出格式为:
The average is *!参考程序如下:#include main(){ float score[10];float average=0;float sum=0;int i,j;float temp;printf(“input the 10 score:”);for(i=0;i
scanf(“%f”,&score[i]);for(i=0;i
for(j=0;j
if(score[j]>score[j+1]){
} temp=score[j];score[j]=score[j+1];score[j+1]=temp;} } for(i=1;i
} average=sum/8;printf(“The average is %f!n”,average);}
4.将两个字符串连接起来,不要使用strcat函数。
说明:
(1)将连个字符串存入两个字符串数组中,要保证第一个字符串的长度能够容纳两个字符串之和
(2)连接两个字符串主要是找到第一个字符串的结尾,然后将第二个字符串连接到第二个字符串的后边
(3)输出格式为:
The connected string is *!参考程序如下:
#include main(){ char str1[50],str2[20];int i,j;
printf(“input string1:”);scanf(“%s”,str1);getchar();printf(“input string2:”);scanf(“%s”,str2);for(i=0;str1[i]!=' ';i++);for(j=0;str2[j]!=' ';j++,i++)
str1[i]=str2[j];str1[i]=' ';printf(“The connected string is %sn”,str1);}
5.已有一个已排好序的数组,从键盘输入一个数,要求按原来排序的规律将它插入数组中。说明:
(1)需要保证数组的元素据个数比插入前多1(2)需要找到在数组中插入的位置
(3)可倒序查找:假设从小到大排序,从最后一个开始查找,如果要插入元素比当前数组元素小则将该数组元素赋予后边一个元素,继续比较;否则将要插入元素赋予该数组元素的下一个元素,然后break结束循环(4)输入该数组即可 参考程序如下:
#include main(){ int a[10]={0,1,2,4,5,6,7,8,9};int b=3;int i;for(i=8;i>=0;i--){
if(a[i]>b)a[i+1]=a[i];else {
} a[i+1]=b;break;} printf(“The new sorted array is ”);for(i=0;i
} printf(“%d ”,a[i]);6.将一个数组中的值按逆序重新存放。例如:原来顺序为8,6,5,4,1,要求改为1,4,5,6,8。说明:
(1)只要将原来数组中的值以中间值为中心交换
n1(2)交换次数为2次
(3)注意此时的n是数组最后一个元素的下标 参考程序如下:
#include main(){ int num1[10]={0,1,2,3,4,5,6,7,8,9};int num2[9]={1,2,3,4,5,6,7,8,9};int i;int temp;for(i=0;i
temp=num1[i];
num1[i]=num1[9-i];num1[9-i]=temp;} for(i=0;i
} printf(“The converted array1 is ”);for(i=0;i
printf(“%d ”,num1[i]);printf(“nThe converted array2 is ”);for(i=0;i
printf(“%d ”,num2[i]);}
7.求一个3×3矩阵的对角线元素之和 说明:
(1)使用3×3的二维数组存储数据
(2)使用for循环嵌套,判断数组中元素是否是对角线元素,如果是则相加(3)对角线元素的特点是行号和列号相同 参考程序如下:
#include main(){
int array[3][3]={1,2,3,4,5,6,7,8,9};int sum=0;int i,j;for(i=0;i
} if(i==j)sum=sum+array[i][j];{
} printf(“summary is %dn”,sum);} 8.设计一个较为复杂的一维数组操作程序,实现对一维数组的基本操作 说明:
(1)通过输入函数实现对一维数组的输入,可以将数组定义为100个整型元素,输入其中的10个元素
(2)在屏幕上将数组中的10个元素输出
(3)往数组中插入一个元素,并将插入后的11个元素输出(4)从数组中删除一个元素,并将删除后的10个元素输出
(5)从数组中查找一个元素,并将查找后的元素下标输出,如果元素不存在,给出提示 参考程序如下: #include main(){
int a[100],i,j;int ins,del,find,pos;printf(“input the data: ”);for(i=0;i
if(ins
for(j=9;j>=i;j--)a[j+1]=a[j];a[i]=ins;break;
} } if(i==10)
a[i]=ins;printf(“nAfter insert: ”);for(i=0;i
if(del==a[i])
{
for(j=i;j
a[j]=a[j+1];break;
} } if(i==11)
printf(“nnot foundn”);else {
printf(“nAfter delte: ”);
for(i=0;i
if(find==a[i])
{
pos=i;
break;
} } if(i==10)
printf(“nnot foundn”);else
printf(“npos=%dn”,pos+1);}
实验八 结构体
【实验目的】
1.掌握C语言结构体变量的定义和使用 2.学会设计简单的结构体程序
【实验内容】
1.有一学生信息包含学号、姓名、性别、年龄、电话等信息,要求设以一个结构体用于存储该学生信息,实现学生信息的输入和显示。说明:
(1)使用结构体实现学生信息的存储(2)按照序号顺序排列学生信息(3)实现按照序号查找学生信息 参考程序如下:
#include struct student { char num[10];char name[10];char sex[5];int age;};main(){ struct student stu[3];int i;int choice;printf(“You can input three studentsn”);for(i=0;i
if(i==0)printf(“The first onen”);if(i==1)printf(“The second onen”);if(i==2)printf(“The third onen”);printf(“ input number:”);scanf(“%s”,stu[i].num);printf(“ input name:”);scanf(“%s”,stu[i].name);printf(“ input sex:”);scanf(“%s”,stu[i].sex);printf(“ input age:”);scanf(“%d”,&stu[i].age);
}
printf(“Which one do you want to see?(1,2,3)”);scanf(“%d”,&choice);choice--;printf(“ The number is %sn”,stu[choice].num);printf(“ The name is %sn”,stu[choice].name);printf(“ The sex is %sn”,stu[choice].sex);printf(“ The age is %dn”,stu[choice].age);}