1、 int a=9; a+=a-=a+a; *包含复合的赋值运算符的赋值表达式*,a);该程序的输出结果是 -18 。赋值表达式aaaa的求解步骤?第一步:a=a-(a+a)=-9 第二步a=a+a=18(4)main() int k=-1;%d,%un,k,k);该程序的输出结果是 -1 。1在内存中的存储形式? 取反加一 (32个)(5)main() unsigned x1; int b=-1; x1=b; *有符号数据传送给无符号变量*%u,x1);该程序的输出结果是 。不同类型的整型数据相互赋值时,规则是什么?(有符号赋值给无符号)(6)main() int a=3,b=4,c=5;,(
2、!(ab)&(c=c+1); %d,c);该程序的输出结果是 0(换行)5 。若将第一个printf语句中&变为| ,结果将如何?1(换行)6(7)main() int a=1,b=2,c=3;if(c=a) ;else printf(,b);该程序的输出结果是 1 。2、编程序并上机调试运行(包括题目及要求、流程图、程序清单、测试数据及结果)(1)将一个百分制成绩转换成等级制成绩,百分制与等级制的对应关系如下表:百分制90-10080-8970-7960-69b)&(ac)if(bc)printf(min=%dn,b);else,c);if(a,a);程序中包含有一些错误,按下述步骤进行调试
3、。1)设置断点。2)通过单步执行,观测变量,发现程序中的错误。程序调试记录1、程序出现的错误及改正第四行,abc前都加&,在%d%d%d中两个%d之间加空格; 括住六到九行;把第十行if改成else if;2、程序的改进1.每个后加一个=;2.在程序末尾添加如下指令 else if(a=c) if (b=c) printf( else 实验2 循环结构及其应用1、熟练掌握while,dowhile,for语句实现循环的方法,包括如何正确地设定循环条件,如何控制循环的次数。2、掌握break语句与continue语句的使用方法。 3、熟悉循环的嵌套以及从循环体内退出循环的处理。4、理解什么是循环
4、程序结构。为了达到最佳的实验效果,以下提供几条适于模块化编程的指导意见,可供参考。1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意循环语句的一般使用方法,以及复合运算符的使用。2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,以面向过程的、模块化设计方法完成程序设计。【例题解析】编写一个程序,输出半径为1到10的圆的面积,若面积在40到90之间则予以输出,否则,不予输出。1)解题分析:解决问题的关键算法为求圆的面积并按要求输出。循环求圆的面积area,若area90,则用break语句跳出循环。2)算法流程图如图2-1:3)综合分
5、析需要从循环体中提前跳出循环,或者在满足某种条件下,不执行循环中剩下的语句而立即从头开始新的一轮循环,这时就要用到break和continue语句。图2-1 输出半径为1到10且面积在40 到90之间的圆面积的流程图4)程序代码 #include stdio. (void) float area=0.0,pi=3.14; int r;for(r=1;r11;r+) area=pi*r*r; if (area90) break;area=%5.2fn,area);1、阅读程序题。#includestdio.( ) int x=-1; do x=x*x; while(!x);%x=n,x);该程序
6、的输出结果是 1= 。 int num=0; while(num=2) num+;,num);该程序的输出结果是 1(换行)2(换行)3 。stdio.( ) int a,b; for (a=1,b=1 ; a=20) break; if (b%3=1) b+=3 ; continue ; b-=5; printf(“%dn”,a);该程序的输出结果是 8 。int y=2,a=1; while (y-!=-1) do a*=y ; a+ ; while (y-) ; printf(“%d,%dn”,a,y);该程序的输出结果是 1,-2 。(1) 输入整数n,求 n!(1n20)。(2) 打
7、印出所有“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方之和正好等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33【提示】根据题目要求只要分别求出一个三位数的个位、十位、百位上的数字,然后判断是否满足(某一三位数a=a的百位的立方+a的十位的立方+a的个位的立方)这个公式,满足这个条件的三位数就是“水仙花数”。(3) 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?【提示】在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。3、程序选做题(1) 猴子吃桃
8、问题。猴子第一天摘下若干个桃子,当即吃掉了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的总数一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子。【提示】 使用逆向推导的方式,设后一天的桃子为N个,则其前面一天的桃子为(N+1)*2个,以此类推。(2) “百钱买百鸡”问题:公鸡每只5元,母鸡每只3元,小鸡每3只1元;用100元买100只鸡,问公鸡,母鸡,小鸡各买多少只?【提示】设公鸡x只,母鸡y只,小鸡z只;则有1=x=18,1=y=31,1=z=98,且同时满足5x+3y+z3=100,x+y+z=100,
9、z%3=0这三个条件。通过数学运算可改变条件,从而可用不同的方法来解决此问题,请尝试不同的循环次数解决该问题。五、程序调试记录要求:写出题号,并编写顺序号。如四(1)出现的错误(1)(2)实验3模块化设计与应用完成本实验需要4学时。(1) 掌握函数实参和形参的对应关系以及“值传递”的方式;(2) 理解函数调用的过程以及函数的返回值;(3) 弄清楚带参函数和带参的宏之间的异同。(1) 深刻理解模块化程序设计的思想及如何进行模块划分;(2) 掌握定义函数的方法以及函数原型的声明;(3) 灵活运用函数调用(有参函数和无参函数、有返回值的函数和无返回值的函数)。为了达到最佳的实验效果,下面提出几点指导
10、意见或要求以供参考:1、阅读程序题应先运用自己在课堂所学的知识,推导出结果。上机时输入计算机,验证自己推导的结果是否正确。若不正确,应分析原因。2、编程题注意事项:(1) 一个模块(或函数)应有一个入口点和一个退出点。(2) 一般每个模块(或函数)只执行一个任务。不要将无关的任务放于同一模块中,只将完成同一任务的语句组合在一起。(3) 先画流程图,后写程序代码;(4) 变量和函数标示符尽量“见名知义”;(5) 程序中应有适当注释。3、应记录调试程序时出现的错误,以便经验的积累。(1) 下面程序的输出结果是 5,8 。#include stdio. k+m;void main( ) int s;
11、s=f(2);%d, %dn, s, f(s);(2) 下面程序的输出结果是 777 。stdio.(a+b+c);void main()int a=2,i;for( i =0;i =0chi9;i+=2) s=10*s+chi-,s); 该程序的输出结果是 6 。 (2)#define MAX 5 main()int aMAX,i; for(i=0;i5; ai=i;n*a*n); a%d=,i);,ai); 该程序的输出结果是 。(3) #include int i,j,temp;int aN+1;int count=0; input %d data : n,N);for (i=1;=N;
12、,&ai);*sort course*nfor(i=1; count+; for(j=1;jaj+1) temp=aj;aj=aj+1; aj+1=temp; %3d:,count);j+) %d,aj);nthe result is: for(i=1; 该程序的输出结果是 冒泡排序显示过程,并最终把输入的十个数字由小到大无空格排列 。(4)#include int fN,i; f0=1; f1=1; for(i=2;N;i+) fi=fi-1+fi-2;nFibonaccin if(i%4=0) printf(nnf%-2d=%-5d ,i,fi);该程序的运行结果为 。(5)#includ
13、e int i,j, temp;int a33= ,;-matrix a-n for(j=0;%3d,aij); for(j=0;i; temp=aij;aij=aji;aji=temp;-matrix a changed-nj+) printf(6)#include char s40; int i;input string:(si=getchar()!ni+); si=0noutput string:si! if(siasiAZ si=si+32;%c,si); 该程序的运行结果为 将输入大写字母转变为小写,小写字母转变为大写 。(1)编写一个3*4矩阵,找出每行中最大元素并与第一列元素交换
14、。(a)使用二维数组存放该3*4矩阵;(b)定义并初始化该二维数组;(c)输出原矩阵和变换后的矩阵进行比较;(d)有必要的提示信息。(2)编程实现如下功能:将字符数组str1中的全部字符拷贝到字符数组str2中,具体要求如下:(a)不能使用字符串拷贝函数strcpy();(b)必须将str1中的字符串结束标志0一起拷贝,但其后的字符不拷贝;(c)str1的长度不超过80,str2的长度必须足够大;。(3)设某班共有10名学生,为了平定某门课程的奖学金,按照规定超过全班平均成绩10%者发给一等奖,超过全班平均成绩5%者发给二等奖。编写程序,输出学生学号、成绩和奖学金等级。主函数中调用代码:无(1
15、)调试下面程序。#define N 10 int i,num,data=56,70; * num存放被查找的整数,数组data存放有序数列* int low=0, scanf(num); *输入要查找的整数*the sorted numbers are:%d ,datai); *输出有序数列* while(low= %d is not in data*若low大于high,则查找失败*1.用把十四十五行括起来2.第十行i=1改成i=0;1.把七八九三行与十十一两行换一下位置,方便用户操作;实验5 深入模块化设计与应用(1)学会使用函数嵌套调用的使用方法(2)学会使用一维数组做为函数参数(3)递归调用的设计与使用(4)学会使用指针做为函数的参数(1)如何运用指针进行程序设计(2)如何以一维数组、二维数组做为函数参数进行程序设计(3)冒泡排序、选择排序的灵活应用1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察函数嵌套调用、一维数组做为函数参数、指针做为函数的参数、递归调用的使用方法。要注意变量设置、函数参数及返回值在数据传递或共享
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1