




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一 数据类型和表达式一实验目的1.掌握C语言基本数据类型的概念,理解数据类型与运算的关系。2.熟悉简单变量的定义和赋值方法,掌握不同类型数据之间转换的规律。3.学习C语言运算符优先级和结合性的概念,掌握算术表达式的计算方法及表达式计算中的类型转换方法。4.掌握数学式子的表达式表示。5.进一步熟悉C程序的编辑、编译、连接和运行的过程。二实验内容与算法解析1.编程计算下面算术表达式的值,手工计算检测。(1) x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5, y=2.52下面表达式计算中,哪些地方会发生类型转换?各个转换从什么类型转换到什么类型?表达式计算的结果是什么?试编程进行验证。(1) 2.5+2*7%2/4 (2) 4*(2L+6.5)-12(3) 10/(int)(5.1+3) (4) 2*10.0/(5*3)3.运行下面程序分析结果:main()int a,b,c;a=9;b=5;c=24;printf(%d,a%c/b);4.输入并运行下面程序,对照程序分析运行结果:程序如下:#include main( ) int a,b;long d;unsigned e;char c;a=100;c=W;b=-100;d=50000;e=8766;printf(a=%d,b=%d,c=%c,d=%ld,e=%un,a,b,c,d,e); 并修改程序测试:1)将a=100;换成a=42569;,会得到什么结果,为什么?2)将b=-100;换成b=c;,会得到什么结果,为什么?3)将e=8766; 换成e=-10;,会得到什么结果,为什么?5.写出程序运行结果,并上机进行验证,并分析原因。main( ) int i,j,m,n;i=8;j=10;m=+i;n=j+;printf(i=%d,j=%d,m=%d,n=%dn,i,j,m,n);6.编写一个C程序,测试下列各表达式。1) i,j2) i+1,j+13)j+=i4) i+,j+5) +i,+j6) i+j7) +i+j+各表达式中i、j的初始值分别为2、3时分别测试上表达式的值。在实验中,注意如下问题:1)哪些表达式是错误的?为什么?2)理解+,+=,+,+i,i+的意义和优先级。实验二 顺序结构程序设计一实验目的1.掌握C语言基本语句的概念,尤其是赋值语句的使用。2.了解算法的概念及算法的表示方法。3.掌握不同数据类型的数据的输入输出方法。4.掌握C程序的结构化设计方法,尤其是顺序结构程序的设计。5.能熟练的使用顺序结构方法设计简单C程序。6.进一步学习使用Turbo c调试程序的技术二实验内容与算法解析1.通过下面程序,练习输入语句的使用方法,并观察程序的输出格式。main()int x,y,z;scanf(%d%d,&x,&y);z=x+y;printf(%d+%d = %d,x,y,z);输入以下几组数据,观察z的值,看输入是否合理,并分析原因。1) 3 5 2) 2,63) 2.3 3.6 4) 8 -65) 32756 214582.观察下面程序的输出结果,掌握输出的格式。main()int a=25;float b=3.1545;char c=A;printf(%dn,a);printf(%4dn,a);printf(%fn,b);printf(%6.2fn,b);printf(%-8.3fn,b);printf(%.2fn,b);printf(%cn,c);printf(%5cn,c);printf(%dn,c);3.从键盘输入直角三角形的两条直角边a,b,编程序计算斜边c。【算法提示】1) 输入a,b的值,a,b为实型数据。2) 根据公式斜边c为2直角边的平方和的平方根,求出c;(要使用数学函数的开方函数,程序上方要使用#include )3) 输出c。4.鸡兔同笼问题:已知笼子里有16只鸡和40只兔,求有多少只脚,有多少只头。【算法提示】1)设有x(x=16)只鸡,有y(y=40)只兔,则有:2)头数等于a=x+y只3)脚数等于b=2x+4y只4)输出a,b。 5.某试卷由26个问题组成,答对一题得8分,答错一题扣5分。输入考生答对的题目数,并输出该考生的考试成绩。6.有一函数如下:编写一程序实现输入x,则输出f(x)值。7.一个有3位整n,请输出它的各个位。8.已知一平行四边形的边长为a和b,a,b两边的夹角的锐角为d度,求平行四边形的面积。(提示:数学函数中求正弦值的为sin(x),其中x为弧度)实验三 选择结构程序设计一实验目的1.掌握计算关系表达式和逻辑表达式的方法。2.掌握选择结构程序设计的方法和相关语句。3.掌握if语句、switch语句和条件运算符的格式与应用。4.能熟练的使用if语句或switch语句进行选择结构的程序设计。二实验内容与算法解析1.下面两个程序均是求a,b,c中最大值,请把程序补充完整,并上机调试验证是否正确。1) if(ab)max=_ ;elsemax=_ _;if(maxb) if(ac) max=_; else max=_; else if(bc)max=_ _;elsemax=_;printf(%d,max);2.分析下面程序的运行结果,掌握switch的使用方法。main() int a=0,i=1;switch(i) case 0:case 3:a+=2;break;case 1: case 2:a+=3;case 4:a+=1;break; default:a+=5; printf(%dn,a); 3.猜数游戏。程序预制一个常数(称为幻数),让用户猜,猜对时给出正确信息,否则会给出是大了还是小了的提示。4.给定一个不多于5位的整数N,求它是几位数。5.有一函数:写一程序,输入x的值,输出y的值。6.输入一个字符,如果是字母则原样输出,如不是字母请输出Error!。7.任意输入一个3位数,判断其是不是水仙花数。水仙花数:各位数的立方和等于该数本身,如153 。8.任意输入一个整数n(n的位数小于4),判断是不是自同构数。自同构数:一个自然数的平方的末几位数与该数相同,如: 25, 36,即5,6都是自同构数。【算法提示】1)输入n;2)先求出 ;3)当n为一位数时,判断( 10)是否和n相等;当n为2位数时,判断( 100)是否和n相等;以下依此类推;4)输出结果(是或否)。9.请把下面的程序补充完整实现输入一个年份,判断是不是闰年。如是闰年则必符合下面二条件之一:能被4整除,但不能被100整除。能被4整除,又能被400整除。main() int x;printf(Input a year:);scanf(%d,&x);if( )printf(%d is,x);elseprintf(%d is not,x);10.某衣服商店出售某种衣服,每件30元,买10件以内打九折,买10件到19件打八折,20到39件打七折,40到59件打六折,60件以上打五折。(分别使用switch语句和if语句实现)实验四 循环结构程序设计(一)一实验目的1.掌握循环结构程序设计的基本思想。2.熟练掌握用for、while、do-while语句实现一重循环程序设计。2.在程序设计过程中实现一些常用算法。3.掌握for、while、do-while三种循环的区别和联系。二实验内容与算法解析1.程序填空题:以下两个程序的功能均是:求出200以内的整数中能同时被3和7整除的最大数。请填空,并调试验证。1)解法一main( )int i;for( ; ; )if( ) break;printf(%d,i);2)解法二main( ) int i,n;for( ; ;i+)if( )n=i;printf(%d,n);2.下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。main() int i,j; for(i=0; ;i+) j=i*10+6; if( ) printf(%4d,j); 3.分析下面程序的功能:main()long n,i=0;printf(Input n(n0):);scanf(%ld,&n);while(n!=0)n=n/10;i+;printf(%d,i);4.键盘上输入10个整数,求其平均值。分别用for、while、do-while语句实现【算法提示】1)使用循环输入10个数;2)求总和;3)总和/10得到平均数(注意:整数除以整数为整除,如10/4=2,而不是2.5);4)输出平均数。5.while、do-while语句实现下面程序:输出1100之间数的平方在300400之间的数。【算法提示】1)从小到大的顺序循环控制i的范围(1100);2)求出i的平方;3)判断i的平方是否在300400之间( 300 & 400),如果在这个范围打印i,继续循环直到不满足条件为止。6.从键盘上输入若干正整数,求其中最大数和最小数。输入的数以0为结束标志。 【算法提示】 1)设第一个读取的数是当前最大数和最小数; 2)若当前读取的整数不为0,则继续循环; 3)若当前读取的数比最大数大,则记录;比最小数小,则记录; 4)读取下一个整数,继续2)。 7.求100200之间最大的5个奇数之和。实验五 循环结构程序设计(二)一实验目的1.进一步掌握循环程序设计的方法。2.掌握for、while、do-while循环的嵌套。3.掌握break语句和continue语句的使用方法。4.会使用二层循环解决实际问题。二实验内容与算法解析1.分析下面程序的执行结果,掌握break和continue语句。main() int a,b; for(a=1,b=1;a=10)break; if(b%3=1) b+=3;continue;b+; printf(a=%d,b=%dn,a,b); 2.分析下面程序的运行结果掌握循环嵌套程序的执行过程:main() int i=0,a=0;while(i20) for(;1;) if(i%10)=0)break;elsei-;i+=11; a+=i;printf(%dn,a);3.若n使 为素数,则n称为梅森尼数。求1,20范围内有多少个梅森尼数。请填空:#include main() int i,flag,count=0;long s=2,p,k,j;for(i=2;i=20;i+);p=s-1;flag=1;k=sqrt(p);for(j=2;j=k;j+)if(p%j=0)flag=0;if( )count+;printf(count=%d,count);4.已知24有8个正整数因子(即1、2、3、4、6、8、12、24),而24恰好能被8整除。问100300之间有多少个这样的数。【算法提示】1)循环控制m的范围100300;2)上层循环内使用第二重循环求m的因子,并累加因子个数count;3)判断(m%count)的值是否为0,若为0则sum加1;4)打印sum 。5.求在2003000范围内按递增顺序的第25个素数。【算法提示】1)控制m的范围在2003000(外重循环);2)判断m是否是素数(内层循环),若是则count累加1;3)判断count是否等于25,如果等于25,打印当前的m并退出循环。6.求100200之间有奇数个不同因子的整数的个数。实验六 循环结构程序设计(三)一实验目的1.进一步掌握循环程序设计的方法。2.掌握for、while、do-while的多重循环结构设计。二实验内容与算法解析1.运行下面程序,并分析运行过程。main() int i,j,k,x;for(i=1;i=4;i+) x=1; for(j=1;j=3;j+) x=3; for(k=1;k=2;k+) x=x+6; printf(x=%dn,x);2.以下程序功能是输出所有三位的整数中各相邻的位之差为2,并且这个数的各个位之和是7的倍数,最后打印出这样的数的个数。请补充完整,并上机调试。#include main() int g,s,b,count=0;for(b=1;b=9;b+)for(s=0;s=9;s+)for(g=0;gab (2)a+b+c80实验七 一维数组一实验目的1.掌握一维数组的定义、引用及初始化方法。2.掌握一维数组的输入输出方法。3.灵活使用数组解决问题。二实验内容与算法解析1.根据程序的运行结果,分析下面程序的执行过程中数组的内容变化。main() int i,k,a10,p3;k=5;for(i=0;i10;i+)ai=i;for(i=0;i3;i+)pi=ai*(i+1);for(i=0;i3;i+)k+=pi*2;printf(%dn,k);2.把10进制数转换成n(n10)进制数,请填空:main()int m,n,a100,i,j; /*m为10进制数,n为进制*/scanf(%d%d,&m,&n);i=0;while(m!=0) ai+= ;m=m/n;for( ; ; )printf(%d,aj);3.输入10个实数存放在一维数组a中,计算并输出a数组中所有元素的平均值。【算法提示】 1)定义一个单精度型一维数组a10; 2)用单重循环给一维数组a赋值; 3)用单重循环求一维数组a中所有元素之和; 4)在循环外求平均值并输出。 4.求一维数组a中数组元素的最大值和最小值并输出其位置。5.已知一个数列的前3项为0,0,1,以后每项为前3项之和,求此数列的第36项。(用数组实现)今输入一个数(如:20),要求用折半查找法找出该数在数组中的位置(下标)。如果该数不在数组中,则输出“no data!”。10个数用赋初值的方法在程序中给出。要找的数用scanf函数输入。(折半查找:对有序序列(从小到大)取中间的数,然后比较要找的数和中间的数的大小,如小于中间的数,则在左区间找,如大于则在右区间找,继续在左区间或右区间取中间数比较,如此循环直到找到为止,或区间长度为0没找到)实验八 二维数组一实验目的1.掌握二维数组的定义、引用及初始化方法。2.掌握二维数组的输入输出方法。3.会使用二维数组解决问题。二实验内容与算法解析1.分析下面程序的运行结果,说出程序的功能,掌握二维数组的使用。main() int a33=1,2,3,4,5,6,i,j,s=0;for(i=1;i3;i+) for(j=0;j=i;j+)s+=aij;printf(%dn,s);2.下面程序的功能为求主、次对角线元素之和。请将程序补充完整,然后上机调试。 main( )int a33=9,7,5,3,1,2,4,6,8; int i,j,s1=0,s2=0; for(i=0;i3;i+) for(j=0;j3;j+) if( )s1=s1+aij; if( )s2=s2+aij; printf(s1=%d,s2=%dn,s1,s2);3.编程从键盘输入一个5行5列的二维数组数据,并找出数组中的最大值及其所在的行下标和列下标;最小值及其所在的行下标和列下标。要求打印格式,例如最大值形式:Max=最大值,row=行标,col=列标。4.读入mn个实数放到m行n列的二维数组中,求该二维数组各行平均值,分别放到一个一维数组中,并打印一维数组。5.在二维数组中查找这样的数,它所在的行的平均值最大,所在列的平均值最小。实验九 字符数组一实验目的1.掌握字符数组的定义、初始化;2.掌握字符数组的输入、输出格式及方法。3.掌握常用字符串处理函数的格式、功能和使用方法;二实验内容与算法解析1. 运行程序,分析运行结果,掌握运行过程。(1)分析结果,掌握求字符串长函数的使用main() char st20= he141llo0trn; printf(%d %dn,strlen(st),sizeof(st); (2)分析结果,掌握二维字符数组使用。main() char ch35=AAAA,BBB,CC; printf(%sn,ch1); 2.程序填空:有3个字符串,要求找出其中最大者。#include #include main( ) char string20;char str320;int i;for(i=0;i3;i+)gets(stri);if( )strcpy(string,str0);else strcpy(string,str1);if( )strcpy(string,str2);printf(the largest string is:%sn,string);【算法提示】1)定义字符数组,并初始化初始字符串。2)用键盘输入的n控制移动的次数,一次移动一个字符。3)每一次移动都是先保存字符串中最后一个字符,注意:不是字符数组中最后的元素,也不是0。 4)前面的元素一次向后移动,并把刚才保存的字符存到最前面的位置。5)输出新的字符串。4.输入一个字符串,将其中所有大写字母改为小写字母,而所有小写字母全部改为大写字母,其它字符不动。最后请输出新的字符串。5.输入一段英文,统计其中单词的个数。如S=This is a dog,有4个单词。6.输入一个字符串,输出从第i个字符开始的n个字符,例如字符串I love China!,从第3个字符开始的4个字符是 “love”。7.统计输入的字符串中字母、数字、空格和其它字符的个数。8.输入一行字符,将此字符串中最长的单词输出(如果最长有多个请找出第一个)。实验十 函数定义及简单调用一实验目的1.掌握自定义函数的概念、定义格式、调用方法;2.掌握函数的形式参数、实际参数和函数的返回值问题;3.掌握函数实参与形参间的“值传递”方式;4.掌握模块化的程序设计思想,会采用C语言中函数进行模块化程序设计。二实验内容与算法解析1.分析下程序的运行结果,掌握函数的定义和调用过程。int func(int a,int b)return(a+b); main() int x=2,y=5,z=8,r; r=func(func(x,y),z); printf(%dn,r); 2.下面函数是实现求1,3000能被17或23整除的整数的个数。请补充完整,并上机调试。int f(int m,int n) int i,count=0;for(i=m;i=n;i+)if( );return count;main() printf(count=%dn, );3.编写一函数打印出m,n所有同时是5,7倍的整数。并编写主函数进行测试1,1000。实验十一 函数嵌套调用和递归调用一实验目的1.掌握全局变量和局部变量作用域以及全局变量和局部变量的使用方法。2.掌握函数的嵌套调用的程序的执行过程,并会使用嵌套调用设计程序。3.掌握使用函数递归调用的程序的执行过程,并会使用递归程序解决问题。二实验内容与算法解析1.分析程序运行结果,掌握全局变量和局部变量的使用。int a=12,b=5;int fun(int a)b=a+b;return b;main()int a=3;fun(a);printf(a=%d,b=%dn,a,b);2.将一个正整数n以相反的顺序输出的递归算法reverse(n)可以如下描述如下: 输出Error,结束 n9据此算法设计的递归算法如下,请补充完整,并上机调试:void reverse (int n) if(n0)printf(Error);elseif ( )printf(%d,n);else printf(%d,n%10);main() int n=18092;reverse(n);4.某个整数N的所有因子之和等于N的倍数,则称N为多因子完倍数,如28其因子之和1+2+4+7+14+28=56=228,28是多因子完备数。求1,200的多因子完备数的个数。编写求参数k因子之和的函数,编写找m,n多因子完备数的个数的函数,编写主函数用函数嵌套调用实现求1,200的多因子完备数的个数。 实验十二 函数与数组以及多文件程序编译一实验目的 1.复习数组的定义和使用方法;进一步了解函数的定义和使用方法。2.掌握数组元素作为函数参数的参数传递过程。3.掌握数组名作为函数参数的数据传递过程,并能使用数组和函数结合使用设计程序;4.动态存储变量和静态存储变量的概念和使用方法;5.学习对多文件程序的编译和运行。二实验内容与算法解析1.分析程序的运行结果,掌握静态变量和动态变量的区别。int f() static int i=0; int s=1; s+=i;i+; return s; main() int i,a=0; for(i=0;i5;i+)a+=f(); printf(%dn,a); 2.运行下程序,分析结果,掌握数组名作函数参数程序的运行过程。f(int b,int m,int n) int i,s=0; for(i=m;in;i+)bi=bi-1+bi+1; main() int x,a=1,2,3,4,5,6,7,8,9; x=f(a,3,7); printf(%dn,a5); 3.下面程序是求方阵的次对角线上值的和,这里使用了一维数组处理二维数组问题,请补充完整,并上机调试。#define N 10int sum(int b,int n)int i,j,s=0;for(i=0;in;i+)for(j=0;jn;j+)if( )s+=b ;return s;main()int i,s;int aNN=4,1,5,2,6,5,7,3,2,9,8,1,4,9,2,5;s=sum( );printf(s=%dn,s);4.编写三个函数,分别求整型数组中的最大值,最小值和平均值,并编写主函数调用函数求数组中的最大值,最小值和平均值。5.编写函数删除实参传递的字符串中所有空格,返回给主函数,并在主函数中输出字符串。【算法提示】1)定义函数del_space,形参1个字符数组b,返回值无。2)循环字符数组b中的所有字符,是空格则删除(后面的向前移动覆盖,或其它方法)。3)最后把0,置在字符串的最后。4)主函数中定义实参数组,从键盘读入字符串,并置入数组。5)传递数组名调用函数del_space,处理字符串,最后在主函数中输出。6.编写一函数,将一个任意的字符串分离成2个字符串,大写字母的形成一串,其它字符为一串。7.按步骤完成多文件程序的设计和运行过程。1)输入源文件file1.c和file2.c,并保存在TC根目录下。file1.c的内容如下:#include extern void count(int); /*扩展外部函数count*/main() int k;for (k=5;kProject Name,在输入框中输入work.prj回车。4)CTRLF9运行,如有错误编译程序会将出错文件打开,修改错误后重新进行运行,用ALTF5查看运行结果。8.主函数中有一个数组存放8个数据为:7,3,2,5,1,4,8,6,编写一函数实现对该数组中的数据从大到小进行排序。并编写主函数调用函数对数组进行排序。实验十三 简单指针一实验目的1.掌握指针和指针变量,内存单元和地址、变量与地址、数组与地址的关系;2.掌握指针变量的定义和初始化,指针变量的引用方式;3.掌握取地址运算符与指针运算符;4.掌握指向变量的指针变量的使用;5.能正确使用数组的指针和指向数组的指针变量;6.能正确使用字符串的指针和指向字符串的指针变量。二实验内容与算法解析1.使用指针把从键盘输入的2个数按从大到小的顺序输出(不改变变量的值),请补充完整并上机调试。main() int a,b,*pa,*pb,*p;scanf(%d,%d,pa,pb); if( ) p=pa;pa=pb;pb=p; printf(%d,%dn,*pa,*pb); 2.输入10个整数存入一维数组,然后逆置数组,最后输出。下面给出部分程序的内容,请将程序补充完整,然后上机调试。 解法一:使用2个指针实现main() int a10,*p1,*p2,x,i;for(p1=a;p1a+10;p1+)scanf(%d,p1);for(p1=a,p2= ;p1 ;p1+, ) x=*p1;*p1=*p2;*p2=x;for(i=0;i10;i+)printf(%d,*(p1+i);解法二:使用1个指针实现main() int a10,*p1,x; for(p1=a;p1a+10;p1+) scanf(%d,p1); for(p1=a;p1a+5;p1+) x=*p1; ;for(p1=a;p1a+10;p1+) printf(%d,*p1);3.以下程序是使用数组与地址的关系来输入和输出数组元素的,请补充完整,并上机调试。main() int a44,i,j; for(i=0;i4;i+) for(j=0;j4;j+) scanf(%d,*( )+ );for(j=0;j4;j+) for(i=0;i4;i+)printf(%4d,*(*( )+ ); printf(n); 4.编写程序,使用指针实现逆序打印一维整型数组所有元素的操作。数组a: 1 3 7 2 9 6 5 8 2 0 4 8 2 0 45.编写程序实现求一个字符串的长度(不使用strlen()函数,要求用指针实现)。【算法提示】1)在主函数中定义一字符数组,并输入字符串;定义一个指向字符串的指针变量p, 并将输入的字符串的首地址赋值给p;2)循环移动指针,判断*p是否为0,如果不为0 ,则进行len+的操作,直到遇到0为止。然后打印len值。6.在字符串S中查找某个字符C,若包含则打印该字符在字符串中首次出现的位置,若不包含给出找不到信息。7.在mn的矩阵中找最大值(要求使用指针实现)。实验十四 指针、函数和数组一实验目的1.能正确使用指针变量作为函数的参数进行地址传递,以及会使用返回指针值的函数;2.掌握指向指针的指针变量的概念及其使用方法;3.了解指向数组的指针变量的概念及其使用方法;4.能正确使用指向函数的指针变量调用函数;二实验内容与算法解析1.上机调试下面程序,看那些程序实现了交换主函数中两个变量值的操作,那些没有实现,并分析原因。程序1:void exchange(int a,int b) int t;t=a;a=b;b=t;main() int a=1,b=2;exchange(a,b);printf(%d,%d,a,b);程序2:void exchange(int *a,int *b) int *t;t=a;a=b;b=t;main() int a=1,b=2;exchange(&a,&b);printf(%d,%d,a,b);程序3:void exchange(int *a,int *b) int t;t=*a;*a=*b;*b=t;main() int a=1,b=2;exchange(&a,&b);printf(%d,%d,a,b);程序4:void exchange(int *a,int *b) int c,*t=&c;*t=*a;*a=*b;*b=*t;main() int a=1,b=2;exchange(&a,&b);printf(%d,%d,a,b);2.编写一个函数s(a,n),其中a是一个指向整型的指针接受一维整型数组首地址,n是数组长度,功能是通过指针求数组中元素的平均值,并编写主函数测试函数。3.编写一函数使用指针实现两个字符串连接函数(不用strcat),并编写主函数测试函数是否正确。4.编写一个函数实现检测字符串s中的括号是否匹配(函数中使用指针处理字符串),要求使用指针实现,如合理则返回1,不合理则返回0。括号匹配合理的条件是:1)整个字符串中左括号“(”的个数应和右括号“)”的个数一致。2)在字符串的任何位置左括号“(”的个数要大于等于右括号“)”的个数。5.编写一函数实现删除字符串中重复的字符(函数中使用指针处理字符串),在主函数中输入一字符串然后调用函数实现删除字符串中重复出现的字符。6.下面程序使用了指向指针的指针变量,分析程序的执行过程,并上机调试。void fun(int *q) int c=2;*q+=c;main() int a=1;int *p=&a;fun(&p);printf(%d,a);7.下面的程序是一个使用函数指针调用min函数的实例。阅读程序,并补充完整上机运行。体会使用函数指针调用函数的步骤。#include int min(int x,int y) return xy?x:y;main() int a,b,c;int (*funp)(int,int); printf(Input a,b:);scanf(%d%d,&a,&b);funp=min; c= ; printf(min=%dn,c);8.编写函数process(),分别根据主函数传递的指向函数的指针来调用函数add()、sub()、mul()。三个函数的功能如下:1)求两个数之和函数add();2)求两个数之差函数sub();3)求两个数之积函数mul()。并编写主函数测试。实验十五 结构体与共用体一实验目的1.掌握结构体类型的概念和定义方法以及结构体变量的定义和引用。2.掌握结构体数组的定义和使用方法。3.掌握指向结构体变量的指针变量的概念和应用。二实验内容与算法解析1.阅读程序,掌握结构体的定义和使用。#include struct mydateint year;int month;int day;struct goodsint num;char name30;struct mydate pdate;int overdue;float price;main()struct goods g;g.num=1;strcpy(,meat);g.pdate.year=2006;g.pdate.month=6;g.pdate.day=22;g.overdue=3;g.price=7;printf(NumtNametPdatettOverdutetPricetn);printf(%dt%st%d-%d-%dt%dtt%.2ftn,g.num,,g.pdate.year,g.pdate.month,g.pdate.day,g.overdue,g.price);2.程序填空:设有6个职工,每个职工包括职工号和工资。从键盘输入职工的数据,求平均工资,并输出最高工资和对应的职工号。#include struct worker char num5;float wage;w6;main( ) float average,sum=0,max;int i,j;for(i=0;i6;i+)scanf(%s %f, );max=w0.wage;for(i=0;i6;i+) if( ) max=wi.wage;sum+= wi.wage;average=sum/6;printf(The average is %fn,average);printf(The max wage is %f,his num is %sn,wj.wage,wj.num);3.定义一个结构体变量,其成员包括学号,姓名,性别,总分,再定义一个指向这个结构体的指针,并指向这个学生结构体。通过键盘输入使用指针为结构体赋值,然后按照一定的格式输出。(格式自定)实验十六 预处理命令、位运算一实验目的1.掌握位运算的概念和方法,学会使用位运算符。2.学会使用位运算实现对指定位的操作。3.能够编写有关位运算的程序。二实验内容与算法解析1.分析下面3个程序,看看结果有什么不同,为什么?1)程序1:#define SQR(X) X*Xmain() int a,k=2,m=3;a=SQR(k+m)/SQR(k+m);printf(%dn,a);2)程序2:#define SQR(X) (X)*Xmain() int a,k=2,m=3;a=SQR(k+m)/SQR(k+m);printf(%dn,a);3)程序3:#define SQR(X) (X)*(X)main() int a,k=2,m=3;a=SQR(k+m)/SQR(k+m);printf(%dn,a);2.下面程序是从键盘输入一个8进制数,并输入要移动的位数,且正数表示右移,负数表示左移。调用不同的函数进行循环移位。请补充完整,并上机调试:#include unsigned Cyc_movR(unsigned a,int n)unsigned t;t= ;return t;unsigned Cyc_movL(unsigned a,int n)unsigned t;t= ;return t;main()int n;unsigned a;printf(Input an octal number:n);scanf(%o,&a);printf(Input the bit numver of rotation:n);scanf(%d,&n);if(n0)printf(Rotate right:%on,Cyc_movR(a,n);elseprintf(Rotate left:%on
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乡村旅游与乡村旅游目的地旅游与旅游社区研究
- 乡村旅游与文旅融合:2025年旅游与乡村振兴旅游体验提升报告
- 留置尿管病人的健康教育
- 亲子共骑摇摇椅创新创业项目商业计划书
- 烘焙汽车创新创业项目商业计划书
- 舞狮主题网站推广方案
- 跟痛症的诊断及治疗课件
- 九年级化学上册43氧气第一课时氧气的实验室制法全国公开课一等奖百校联赛微课赛课特等奖课件
- 31《消失了的恐龙》省公开课一等奖全国示范课微课金奖课件
- 物质的变化和性质
- 江苏省南通市中考物理部分试题总结课件
- 2025届新高考政治复习备考策略及教学建议 课件
- 呼吸与危重症医学专科医师规范化培训基地认定细则
- JGJ/T235-2011建筑外墙防水工程技术规程
- CHT 8024-2011 机载激光雷达数据获取技术规范(正式版)
- 乒乓球竞赛规则、规程与裁判法
- 北川县楠木园水泥用石灰石矿矿山地质环境保护与土地复垦方案
- 半导体芯片知识讲座
- 2024年广东广州市天河区社区专职工作人员招聘笔试参考题库附带答案详解
- 电池的历史与发展
- 抖音认证承诺函
评论
0/150
提交评论