1、 c2 = b; printf (“%c %cn”, c1, c2);(1)运行此程序;(2)在程序的最后增加语句“printf(“%d%dn”,c1,c2);”再运行,并分析结果;(3)将程序的第4行“char c1, c2;”改为“int c1, c2;”后再运行,并分析结果;(4)将程序的第5、6行改为:c1 = a; /* 不用单撇号*/c2 = b;再运行,并分析结果;运行出现一个错误。因为a,b是常量字符,将它赋值给一个变量字符,不能运行。(5)再将程序的第5、6行改为:c1 =” a”; /*用双撇号*/c2 =” b”;(6)再将程序的第5、6行改为:c1 =300; /*用大
2、于255的整数*/c2 =400;再运行,并分析结果。2输入以下程序: char c1 = a, c2 = b, c3 = c, c4 = 101, c5 = 116; printf (“a%c b%ctc%ctabcn”,c1, c2, c3); printf(“tb%c%c”, c4, c5);先用人工分析程序,写出应得结果,再与运行结果比较。应输出:aa bb cc abc AN 3输入并运行下面的程序void main()int a,b;unsigned c,d;long e,f;a = 100;b = -100;e = 50000;f = 32767;c = a;d = b;prin
3、tf(“%d,%dn”, a, b);printf(“%u,%un”, a, b);printf(“%u,%un”, c, b);c = a = e;d = b = f;printf(“%u,%un”, c, d);请对照程序和运行结果分析:(1)将一个负整数赋给一个无符号的变量,会得到什么结果;原样输出。(2)将一个大于32767的长整数赋给整型变量,会得到什么结果;(3)将一个长整型数赋给无符号变量,会得到什么结果(分别考虑该长整数的值大于或等于65535 以及小于65535 的情况)。大于或等于65535时:原样输出;小于65535时:同学们可以改变程序中各变量的值,以便比较。例如: a
4、 = 65580, b = -40000, e = 65535, f = 65580。4输入以下程序:int i,j,m,n;i = 8;j = 10;m = +i;n = j+;printf(“%d,%d,%d,%dn”, i, j, m, n);(1)运行程序,分析变量:i、j、m、n 的值(2)将第7、8行改为:m = i+;n = +j;再运行并分析结果;(3)将程序改为:int i,j;printf(“%d,%dn”, i+, j+);运行并分析结果;(4)在(3)的基础上,将printf 语句改为:printf(“%d,%d”, +i, +j);(5)再将printf 语句改为:p
5、rintf(“%d,%d,%d,%d”, i, j, i+, j+);(6)将程序改为:int i, j, m=0, n=0;m+= i+; n-= -j;printf(“i=%d,j=%d,m=%d,n=%dn”, i, j, m, n); 最后,对这次实验作一个简要的总结。1阅读下面的程序,说明其功能,然后运行并观察分析结果。程序一: int x,y;printf(“Enter integer x and y :n”);scanf(“%d%d”,&x, &y);printf(“x= %d, y =%dn”,x,y);if(xy) printf(“x=%dn”,x);if(yx) print
6、f(“y=%dn”,y);if(x=y) printf(“x=y=%dn”,x);功能:判断两个数的大小,然后分别输出相应的值;分析:无论xy或yx,都分别输出x和 y的值,若x=y,则输出x。程序二: int a,b,c,t;printf(“input integer a, b,c :scanf(“%d%d%d”,&a, &b,&c);printf(“a= %d, b =%d, c =%d n”,a,b,c);if(ab) t=a; a=b; b=t;c) a=c; c=t;if(b t=b; b=c;printf(“%d, %d; %dn”,a,b,c);将a,b,c按小到大的顺序排列。若
7、if句成立,则运行后面花括号的结果。程序三: int n;printf(“Enter integer n : ”);scanf(“%d”,&n);if(n%2) printf(“n=%d is odd.n”,n);elseprintf(“n=%d is even.n”,n);判断输出n的值为奇数还是偶数。若输入n的值为奇数,则输出“n=11 is odd”,若输入n的值为偶数,则输出“n=12 is even”。程序四:printf(“n= %d n”,n);if(n=90) printf(“An”);else if(n=80)printf(“Bn”);=70)printf(“Cn”);=60
8、)printf(“Dn”);printf(“En”);通过判断输入的成绩,输出相应的等级。若n=90,为A等,若n=80,为B等,若n=70,为C等,若n=60,为D等,其余为E等。程序五:int a=3,b=4,c=5,d=0;d=a;if(cd=c;d=b;d=%dn,d);判断最大值。判断定义的a,b,c,d,找出最大值,然后附值给d,然后输出d。程序六:int c; scanf(%d,& if(0=c&c=9) /*条件表达式*/ c=c-0; printf(c=%dn elsedata error!n);功能:根据条件,得出结果。 若满足条件,则运行c=c-0。并输出相应的值。2对于
9、如下函数:编写程序,用scanf函数输入x的值,求y值。程序: int x,y;输入x:x); if(x1) y=x;x=%3d, y=x=%dn ,x,y); else 10) y=2*x-1;x=%d, y=2*x-1=%dn,x,y); y=3*x-11;x=%d, y=3*x-11=%dn return 0;运行程序,输入x的值(分别为x1、1x100|score0) printf(n 输入有误,请重输 switch(int)(score/10) case 10: case 9: grade=Abreak; case 8:B case 7:C case 6:D case 5: case
10、 4: case 3: case 2: case 1: case 0:E成绩是 %5.1f,相应的等级是%cn ,score,grade);5编写程序,用 scanf 函数输入一个年份 year,计算这一年 2 月份的天数 days,然后用输出函数 printf 输出 days。实验步骤与要求: (1)有变量定义为整型。(2)输入前要加提示语句。(3)输出结果前要有必要的文字说明。说明:(1)闰年的条件是:year 能被 4 整除但不能被 100 整除,或者 year 能被 400 整除。(2)如果 year 是闰年,则 2 月份的天数为 29 天,不是闰年则为 28 天。 int year;
11、 int r;请输入年份:year); r = year % 400 = 0 | year % 100 != 0 & year % 4 = 0;这一年二月有%dn天, 28 + r); return 1;总结:平常多看书,才做得快。1编写输入m和n(其中,mn),求 m+(m+1)+n的和的程序int main( ) int i,s=0,m,n;m,& for(i=m;i=n;i+) s=s+i;%dn,s);结果:2下面程序的功能是计算n!。 int i,n,s=1;Please enter n: for(i=1; s=s*i;%d! = %dn,n,s);首次运行先输入n=4,输出结果为4
12、!=24,这时是正确的。为了检验程序的正确性,再输入n=10,输出为10!=24320,这显然是错误的。为了找到程序的错误,可以通过单步执行来观察变量的变化。分析产生这种现象的原因,把程序改正过来,再用n=20进行实验,分析所得到的结果。 int i,n; double s=1; = %fn3下列程序用于输出 fibnocci 数列的前 20 项,每行输出 5 个。请补充完整后运行。/* fibnocci 数列的前两项均为,以后各项等于其前两项之和。*/ int i,f1,f2,f3,n; f1=1;f2=1;n%5d %5d ,f1,f2); n=2; i=20 ;i+) if( n%d=0
13、 ) printf( f3=f2+f1 ;%5d ,f3);n+;f1=f2;f2=f3; return 0;4编写程序,输出 100 以内能被 7 整除的数。提示:对 7100 的每一个数进行测试,如该数不能被 7 整除,即模运算不为 0,则由continue语句转去下一次循环。只有模运算为0时,才能执行后面的printf语句,输出能被 7 整除的数。 int i,n;scanf(for(i=7; if(i%7=0),i);5.编写程序打印图形 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1 1 分别使用递增循环和递减循环完成,先把图形分成
14、两部分来看待,前五行一个规律,后四行一个规律。每一部分利用双重 for 循环,外循环控制行,内循环控制列。内循环又有两个并列的 for 循环,一个控制空格的输出,一个控制数据的输出。#include int i,j;=5; for(j=1;j=1;j-) for(i=4;ii-) for(j=1; for(j=i-1;用 公式求 PI 的近似值,直到发现某一项的绝对值小于10-6 为止(该项不累计加)。#includemath.h int sign=1; double pi=0.0,n=1.0,term=1.0; while(fabs(term)=1e-6) pi=pi+term; n=n+2
15、; sign=-sign; term=sign/n; pi=pi*4;pi=%10.8fn,pi); return 0;1调试下列程序,使之具有如下功能:输入10个整数,按每行3个数输出这些整数,最后输出10个整数的平均值。int i,n,a10,av;for(i=0;n;,ai); printf(if(i%3=0);i!=n;av+=ai;av=%fn,av);上面给出的程序是完全可以运行的,但是运行结果是完全错误的。调试时请注意变量的初值问题、输出格式问题等。int i,n,a10;float av,sum=0;for(i=0;10;%5dai);,ai);if(i+1)%3=0)sum=
16、sum+ai;av=sum/10;nav=%5fn,av);6.编写程序,任意输入10个整数的数列,先将整数按照从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。int i,j,m,n,a10;请输入10个整数: i+)9;m=i;for(j=m+1; j j+)if(amchar str210;char string10;int i;2;gets (stri);if(strcmp(str0,str1)strcpy(string,str0);strcpy(string,str1);nthe largest string is:n%sn,string);8.将一个数
17、组中的值按逆序重新存放。原来顺序为8,6,5,4,1。要求改为1,4,5,6,8。int reverse(int a, int n)int p=a+n-1;int t;while(ap)t=p, p=a, a=t;int a5=8,6,5,4,1;reverse(a,5);5;%d , ai);5.输入4名学生的姓名及三门课成绩,打印学生成绩表。(姓名、三门课成绩、平均分)。# include char name430; double score44 = 0.0; int i = 0,j;*请输入4名学生的名字和三门成绩*n for(i = 0; i 4; +i)姓名: scanf(%s, namei); for(j = 0;3; 第%d门成绩:, j+1); scanf(%lfscoreij); scorei3 += scoreij; /输出各科成绩和平均成绩%sn 3;%lfn, j+1, scoreij);平均成绩为:, scor
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1