c 基础语言实验报告,程序设计基础C实验报告(2).doc

253b171540df25e1b84436cbe50dfc72.gif程序设计基础C实验报告(2).doc

程序设计基础C实验报告程序设计基础C实验报告教学班级 学号 姓名 课程教师 实验辅导教师_重庆理工大学计算机学院 2012年2月实验5 循环程序设计教学班级_ 学号_ 姓名_实验日期 实验地点 机房 实验成绩_ 一、实验目的1 了解C语言循环结构的使用范围。2 学会正确使用逻辑运算符和逻辑表达式。3 熟练掌握C语言的三种循环结构whilc语句、dowhilc语句、for语句的特点和使用方法。4 能够编写一些有实际应用意义的循环结构程序。二、实验内容1基本内容题目1计算135799101的值。(提示注意符号的变化)includestdio.hvoid mainint i,t1,s0; /* t标识正负符号 */for i1;i101; i2 /*error*/si*t;t -t; printfsdn,s; 请改错,并运行程序。 分别用dowhile语句和while语句改写以上程序。题目2分析程序,运行时输入24579CR注CR表示回车换行。includestdio.hvoid mainint c; whilecgetcharnswitchc-2case 0case 1 putcharc4;case 2 putcharc4;break;case 3 putcharc3;case 4 putcharc2;break; defaultputcharc;printfn;题目3下面程序的功能是打印100以内个位数为3且能被3整除的所有数,选择合适的语句填入该空格中。includestdio.hvoid mainint i,j;fori0; _ i10 ;i ji*103;ifi30continue;printf4d,j;题目4编程输出用04任意组成无重复数字的三位数都是多少每行输出10个数。includestdio.hvoid mainint i,j,k,count0;printfn;fori1;i5;i/*以下为三重循环*/forj0;j5;jfor k0;k5;kif /*确保i、j、k三位互不相同*/printf6d,i*100j*10k; count;ifprintfn;printfn;题目5根据公式 求e的近似值,精度要求为10-6。题目6输入一行字符,将小写字母转换为大写字母显示,其它字符原样输出。2选择内容题目7打印出如下图案*include stdio.hvoid mainint i,j; fori1;i4;i forj1;j8-i;j 理解数字8的作用 printf ; forj1;j2*i-1;j printf* ; printfn; /* 上面的程序输出上三角形 */ /* 下面的程序输出下三角形 */ fori3;i1;i forj1;j8-i;j printf ; forj1;j2*i-1;j printf* ; printfn; 运行以上程序,验证实验结果。 模仿上面程序,打印出如下图案 1 2 2 2 3 3 3 3 3三、实验结果(用截图说明)题目1题目2题目3题目4题目7四、调试心得(选作)实验6 数组实验教学班级_ 学号 姓名_实验日期 实验地点 机房 实验成绩_ 一、 实验目的1 理解数组的特点及其与普通变量的区别及特点;2 掌握一维数组的定义、赋值和输入输出的方法;3 掌握二维数组的定义、赋值和输入输出的方法;4 掌握字符数组和字符串函数的使用;5 掌握与一维数组和字符数组有关的程序与算法;6 理解与二维数组有关的程序与算法。二、 实验任务1基本内容【题目1】读程序,写结果。includestdio.hvoid mainint i,s0,a101,2,3,4,5,6,7,8,9,10;fori4;i7;issai;printfsdn,s;【题目2】下面程序给数组a输入数据,以每行4个数据形式输出,请填空。includestdio.hdefine N 8void mainint i, a N; fori0; iN; iscanfd,_;fori0; iN; iif_printfn;printf11d,_;printfn;【题目3】用简单选择法对10个整数排序,将程序补充完整。define N 10includestdio.hvoid mainint i,j,min,temp,aN1,5,4,3,7,0,9,8,2,6;for i0;iN-1;imini;for ji1;;jif aminajminj;ifmini_printfn 排序结果为n;for i0;iN;iprintf5d,ai;printfn;【题目4】下面的程序用冒泡法对10个数排序(从小到大),将程序补充完整。define N 10includestdio.hvoid mainint i,j,min,temp,aN1,5,4,3,7,0,9,8,2,6;fori0;iN;iforj0;;j if tempaj;ajaj1;aj1temp; printfn 排序结果为n;fori0;i10;iprintf4d,ai;printfn;【题目5】任意输入20个数到一维数组a中,求这20个数的平均值。【题目6】编程任意输入10个数,判断该哪些是素数,并输出这些素数。【题目7】以下程序是求二维数组中的最小数及其下标(设最小数是唯一的),请填空完成程序,并上机验证。includestdio.hvoid mainint i,j,row,col,min;int a341,2,3,4,9,8,7,6,-1,-2,0,5;mina00;_forj0;j4;jif_ minaij;rowi;colj; printfmind,rowd,coldn,min,row,col;【题目8】以下程序是实现输出杨辉三角(最多十行),请将程序补充补充完整。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 define N 11includestdio.hvoid mainint i,j,aNN;for i1;iN;iai11; _;for i3;iN;ifor j2;;jaij ai-1j-1 ai-1j;for i1;iN;ifor j1;ji;jprintf6d, aij;_;printfn;【题目9】从键盘上任意键入n阶方阵,求它的两条对角线元素之和。【题目10】分析以下读程序,写的运行结果,并上机验证。includestdio.hvoid mainchar c,sBABCDCBA;int k;fork1;csk0;kswitchccase Aputchar;continue;case Bk;break;defaultputchar*;case Cputcharcontinue;putchar;putcharn;【题目11】输入一串字符,计算其中字母的个数。include stdio.hinclude string.hdefine N 81void mainchar chN;int i,count0;puts请输入一串字符; _ /*提示使用字符串输入函数*/fori0;istrlench;iif_count;printf字母个数为d n, count;【题目12】编程输入一串字符,要求逆序输出。2选择内容【题目13】将两个字符串连接起来,不使用strcat字符函数includestdio.hdefine N 80void mainchar s12*N,s2N;int i0,j0;printfn请输入两个字符串,以空格或回车键作字符串结束标志n;scanfs,;scanfs,;while s1i0i;while _s1is2j;s1i0;printfn连接后的两个字符串为nsn,s1;【题目14】在字符串str中查找字符ch首次出现的位置,若str字符串中不包含字符ch,则输出0。【题目15】有4位学生,考4门功课。求出每位学生的总分和平均分,及所有学生每门功课平均分和所有功课的平均分。【题目16】找出一个二维数组的”鞍点”,即该位置上的元素在该行上最大,在该列上最小,如无”鞍点”,则给出提示。三、实验结果(用截图说明)题目1题目2题目3题目4题目5题目7题目8题目10题目11四、调试心得(选作)实验7 函数实验教学班级_ 学号 姓名 实验日期 实验地点 机房 实验成绩_ 一、 实验目的1 理解函数定义的方法。2 掌握函数实参与形参的对应关系,以及函数”参数传递”的方式。3 掌握函数的嵌套调用和递归调用的方法;4 掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法。二、 实验任务1基本内容【题目1】以下程序是求3个数中的最大值,请完善程序并上机验证。includestdio.hvoid mainint a,b,c,m;int maxint x,int y; /* 函数声明*/printf a,b,c;scanfd,d,d,printf最大值是dn,m;int maxint x,int y /*函数定义*/int z;zxyxy;return z;【题目2】程序填空子函数中判断一个大于1的整数是否是素数,数据由主函数中输入,并在主函数中显示结果。 includestdio.hvoid mainint number;printf请输入一个正整数n; scanfd,if printfn d是素数,number;elseprintfn d不是素数,number;int primeint number /*请注意区别main函数和prime函数中的number变量*/int flag1,n;for n2; flag1 nnumber/2;nif _ flag0;return flag;【题目3】读程序,验证结果。include stdio.hvoid mainint i2,p;pfi,i1;printfdn,p;int fint a, int bint c;ifabc1;else ifabc0;elsec-1;returnc;将程序中第4行语句pfi,i1; 改为以下语句,比较程序结果pfi1,i;实践说明,函数的参数求值顺序是【题目4】编程在主函数中输入和输出字符串,在子函数中实现一个字符串按反序存放。【题目5】用子函数计算4名学生的平均分。标注“error”处有错误,请改正。includestdio.hdefine N 4float averagefloat array /* 注意数据类型的一致 */int i; float aver,sum0;for i0;iN;isumarrayi;aversum/N;return aver;void mainfloat scoreN,aver;int i;printfn d scoresn,N;for i0;iN;iscanff,averaveragescoreN; /* error */printfn average score is 5.2fn,aver;【题目6】改正标注“error”语句行的错误,理解本程序的功能。includestdio.hvoid mainint a30,2,4,6,8,10,12,14,16,sum;int func; /*函数声明*/sumfunca3; /*error*/printfn sumdn,sum;int funcint a /*error*/int i,j,sum0;fori0;i3;iforj0;j3;jifijsumaij;return sum;【题目7】在主函数中定义数组A34、B4,用子函数对数组A每一行求和,其值放在数组B中,在主函数中输出数组B的值。【题目8】输入两个正整数,求其中最大公约数和最小公倍数。将程序补充完整。includestdio.hint fun1x,yint temp;if xytempx;xy;ytemp;while y0tempxy;xy;ytemp;return x;int fun2x,yreturn x*y/fun1x,y; /*函数的嵌套调用*/void mainint a,b;printf请输入两个正整数n;scanfd,d,printf它们的最大公约数为dn,;printf它们的最小公倍数为dn,;【题目9】阅读以下程序,若输入为ABCDE时,写出程序的执行结果。include stdio.hvoid reverse char ch;chgetchar ;if chprintf c,ch;elsereverse ;printf c,ch;void main reverse ;printfn;【题目10】编程计算猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,只剩下一个桃子了,求第一天共摘了多少桃子【题目11】阅读以下程序,该程序中,main函数的局部变量是_,max函数的局部变量是_,全局变量是_,理解它们的使用方式。includestdio.hint a4,b6;int maxint a,int bint c;cabab;return c;void mainint a9;printfdn,maxa,b; 【题目12】以下是一个求1-10累加和的错误程序,请改正。includestdio.hvoid mainint i,s;fori1;i10;issumi;printfsdt,s;sumint jint x0; /* error */xj;returnx;2选择内容【题目13】编写一个函数,判断一个整数是不是回文数。如34543是回文数,个位与万位相同,十位与千位相同。【题目14】在一个数组A中存放100个数据,用子函数判断该数组中那些是素数,并统计该素数的个数,在主函数中输出该素数的个数。【题目15】用递归法将一个整数转换成字符串。例如,输入1234,应输出字符串”1234”。n的位数不确定,可以是任意的整数。请在注释行中添加注释,使程序易于理解。include stdio.hvoid convertint nint i;if in/100 /**/converti;putcharn100; /*_*/void mainint number;printfn输入整数;scanfd,printfn输出字符是;if number0 /**/putchar-;number-number;convertnumber;printfn;三、实验结果(用截图说明)题目1题目2题目6题目9题目12四、调试心得(选作)实验8 常用指针实验教学班级_ 学号 姓名实验日期 实验地点_ 机房 实验成绩_ 一、 实验目的1 掌握指针的概念,指针变量的定义和使用。2 熟练使用指针访问各种简单数据类型。3 熟练掌握C语言指针的常见运算。4 熟练使用指针访问一维数组。5 理解和掌握指针作为函数参数的实质,学会使用指针作为函数参数。二、 实验任务1基本内容【题目1】请改正程序中错误的地方,预测程序的运行结果,并上机调试验证。includestdio.hvoid mainint x1,y2, *p, *q;px; /* error*/qy; /* error*/printfxd,ydn,x,y;printfprintfpd,qdn,p,q;printfpd,qdn,*p,*q;【题目2】请预测程序的结果,并上机运行程序,验证结果。includestdio.hvoid mainint a1,3,5,7,9,11,13;int *pa;printf1dn,*p;printf2dn,*p;printf3dn ,*p;printf4dn ,*p;printf5dn ,*p;printf6dn,*p;printf7dn,*p;printf8dn,*p;pprintf9dn ,*p;printf10dn,*p;p;printf11dn ,*p;【题目3】请预测程序的结果,并上机运行程序,验证结果。includestdio.hvoid mainint a61,2,3,4,5,6; int *p,i,s1;pa;fori0;i6;is**pi;printfdn,s;【题目4】请预测程序的结果,并上机运行程序,验证结果。includestdio.hvoid mainchar aabcdef;char *bABCDEF;int i;fori0;i3;iprintfc,sn,*a,bi;printf-n;fori3;ai;iputchar*bi;printfcn,*ai; 【题目5】程序功能输入一行字符不超过100个,统计其中大写字母的个数 要求阅读以下程序,将空格处补充完整,并上机调试运行。includestdio.hvoid mainint cle0;char *p,s101;printf请输入一行字符;getss;ps;whileif*pA*pZcle;;printf大写字母个数dn,;【题目6】编写程序输入两个整数,通过函数swap交换这两个整数的值。要求在main函数中输入两个整数,在main函数中输出交换后的结果。分析程序,将空白部分补充完整,并上机验证。includestdio.hvoid swapint *p1,int *p2int i;i_; ; _;void mainint n1,n2;printf请输入两个整数;scanfdd,swap_;printfd,dn,n1,n2;【题目7】程序功能求两个数中的最大值。要求阅读以下程序,将空格处补充完整,并上机调试运行。includestdio.hint * maxint *x,int *yif*x*yreturn ;elsereturn ;void mainint a,b;printf请输入两个整数a,b;scanfd,d,printf最大值是dn, ;【题目8】将数组a中的10个整数按相反顺序存放,完善程序。include stdio.hdefine N 10void invint *x, int n /*理解掌握本函数的算法*/int t,i;fori0;in-1/2;it*xi;*xi*xn-1-i;*xn-1-it;void mainint i,aN;fori0;iN;iscanfd,ai;printf原序为n;fori0;iN;iprintf6d,ai; inv_;printfn;printf逆序为n;fori0;iN;iprintf6d,*;printfn;2选择内容【题目9】编写程序输入10个整数到一个一维数组中,把该数组中所有为偶数的数,放到另一个数组中并输出。要求分析程序,将省略号的部分补充完整,并上机验证。includestdio.hvoid mainint num10,i,dnum10,di;int *p;pnum;fori0;i9;i /* 输入10个整数 */scanfd,pi;di0; /* 偶数个数清0 */fori0;i9;i pdnum;fori0;idi;i /* 输出所有的偶数 */ 【题目10】编写程序输入某班35个同学一门课程的成绩,计算并输出所有学生成绩的平均值,以及每个学生成绩与平均值之间的差值。要求用一维数组保存35个学生的成绩,用指针变量对学生成绩进行访问。【题目11】编写程序输入一行字符不超过1024个,统计其中大写字母、小写字母、空格、数字及其它字符分别有多少个 要求用字符数组存放输入的字符,用指针对字符数组进行访问。【题目12】编写函数len,求一个字符串的长度。要求在main函数中输入字符串,并输出其长度。分析下面的代码,将省略号的部分补充完整,并上机验证。include stdio.hint lenchar *str void mainchar str1024;getsstr;printfd,lenstr;【题目13】编写函数convert,把字符串中的小写字母转换成大写字母。要求在main函数中输入字符串,并输出转换后的字符串。分析下面的代码,将省略号的部分补充完整并上机验证。includestdio.hvoid convertchar *p void mainchar str100;getsstr;convertstr;putsstr;三、实验结果(用截图说明)题目1题目2题目3题目4题目6四、调试心得(选作)41

CSU 大一上 C语言实验报告 (1)教材第2章编程题第2题:编写计算球体体积的程序。 说明:本题声明适当变量,用户键入数据,运算并输出结果,较简单。 (2)教材第2章编程题第8题:编写程序计算第一、第二、第三月还贷后剩余贷款金额。 说明:本题要求用户输入总额、利率、每月还贷净额,输出每月剩余,对输入输出、类型定义考查。 (3)教材第3章编程题第2题:编写程序实现对用户输入的产品信息进行格式化。 说明:本题考查格式化输入输出、转义字符的运用。 (4)教材第4章编程题第4题:编写程序实现将输入的整数按八进制输出。 说明:本题重在考查简单的运算符和表达式运用。 (5)用户输入一个三位数,输出各位数字之和。 说明:本题重在考查如何从一个整数中取出每一个数字。 (6)教材第5章编程题第5题:编写程序计算用户输入所得额的税金。 说明:本题考查简单的选择结构。 (7)教材第5章编程题第11题:编写程序实现将用户输入的两位数转化为英文。 说明:本题考查switch语句的应用。 (8)教材第6章编程题第8题:编写程序显示单月日历,用户指定这个月的天数和该月起始日是星期几。 说明:本题考查循环结构和选择结构的综合应用,判断是否一个星期最后一天,换行符。 (9)教材第6章编程题第11题:编程序实现利用无穷级数法估计e的值。 说明:本题考查根据公式设计循环结构并实现。 (10)因子之和等于其本身的数称为完数,如28的因子为1、2、4、7、14,而28=1+2+4+7+14,因此28为完数。编程序找出2~5000中的完数。 说明:本题利用变量i在2~5000中变化,判断其是否是完数。 (11)教材第7章编程题第12题:编程计算从左至右求值的表达式的值。 说明:本题考查对运算符和操作数的判断。 (12)教材第7章编程题第14题:编程序用牛顿计算法计算浮点数平方根。 说明:本题考查对循环结构的掌握,对表达式的合理运用,对基本类型的理解。 (13)教材第8章编程题第14题:编写程序颠倒句子中单词的顺序。 说明:本题考查对字符数组的处理,对一些循环选择结构的理解。 (14)教材第8章编程题第15题:编写程序实现凯撒密码加密。 说明:本题考查对字符数组的掌握,对字符处理的理解。 (15)编程序实现将用户输入的数字字符串转化为整数输出。 说明:本题考察对字符、整数关系的掌握与理解,对循环结构的熟练运用。 (16)教材第9章编程题第1题:编写选择排序的函数,并递归调用。 说明:本题利用函数简化程序、使得结构更清晰、熟练掌握。 (17)教材第9章编程题第7题:编写计算xn的函数。 说明:本题考查函数定义、调用,并初步考察递归运用。 (18)教材第10章编程题第6题:编写程序实现逆波兰运算。 说明:本题考查对程序每部分的理解、掌握,外部、内部变量,主函数,小函数的编写与应用。初步了解栈的一些实现函数。 (19)编程序找出2~5000中满足条件的数x:x是素数且x的每位数字是素数、每位数字之和是素数,如23、223、2333等。 说明:本题考查函数方法与循环选择结构的综合运用。 (20)教材第11章编程题第3题:用指针变量编写简化一个分数的函数。 说明:本题用来解决函数无法传回传递的实际参数,指针变量。 (21)教材第12章编程题第2题:编写函数读入用户输入的一条消息,检测是否是回文,分别用数组、指针来解决。 说明:本题可以体会到数组与指针的特点,利用指针的便利。 (22)利用指针编写程序,实现从键盘键入字符串,将此字符串从m个字符开始的n个字符复制成另一个字符串。 说明:本题用指针指向字符串,进行跟踪和复制操作。 (23)教材第13章编程题第5题:编写程序实现对输入命令行参数求和。 说明:本题加深对命令行参数的理解、考查知识的综合应用。 (24)教材第16章编程题第5题:用结构变量解决搜索离用户输入时间最近的航班信息,并输出。 说明:本题考查结构与数组的结合运用,有助于理解结构。首先,定义一个存储起飞、到达时间的结构,再定义一个该类型的数组,循环搜索即可。 (25)教材第17章编程题第5题:用指针数组存储键入的字符串,对数组排序。 说明:本题应用动态分配内存、数组排序,考查综合能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值