C语言实验报告第3章答案
- 格式:docx
- 大小:75.67 KB
- 文档页数:14
3.2 基础实验一、程序分析a,A↙1. 以下程序若输入’a’,则输入格式为:c1=a;运行结果为:。
#include<stdio.h>intmain( ){char c1,c2;scanf(“c1=%c”,&c1);c2=c1-32;printf( “%c,n%”c ,c1,c2);return 0;}2. 以下程序如果使得 a 的值为2、b 的值为3,则输入格式为:_a=2,b=3;运行结果为:_2,3↙_。
#include<stdio.h>intmain( ){ int a,b;scanf(“a=%d,b=%d”,&a,&b);printf( “%n”a,,b);return 0;}3.以下程序若输入12.3、7.6、1.1,则输入格式为:_12.3 7.6 1.1;运行结果为:_aver=7.00。
#include<stdio.h>intmain( ){ floata,b,c,d;scanf(“%f%f%f ”,&a,&b,&c);d=(a+b+c)/3;printf( av“er=%.2f”d,);return 0;}二、程序填空1.输入一个四位整数,求各位数字之和(如1234,则结果为1+2+3+4=10)。
若输入3562,则运行结果为:3+5+6+2=16↙。
2.给定一个华氏法表示的温度值,将其转换为摄氏法表示的温度,转换公式 为则运行结果为: f=64.00,c=17.78↙ 。
#include <stdio.h> intmain ( ) c( f 95{ float f,c;f=64.0;c= (f-32)*5.0/9.0 ;printf(return 0; “ f=%n ”,f,c);} 三、程序改错找错错误在 4 行#include <stdio.h> intmain( ) { int n,a,b,c,d,m;scanf( “ %&d ”n),; a=n%10; b=(n/10)%10; c=(n/100)%10; d= n/1000 ; m=__a+b+c+d;printf( %“d+%d+%d+%d=%d\n ”, d,c,b,a,m);return 0; }32)行号 11. 分析以下程序段,找出错误并改正。
源程序#include<stdio.h> 2 main ( ) 3 { int i; float k; 4 scanf(“i=%d ”,i); 5 k=3.12*i; 6 printf( “.2f %\n ”,k);7 return 0;8}调试正确后的运行结果应改为:scanf(“i=%d”,&i);输入数据: i=17 运行结果:53.04↙行号1 2. 分析以下程序段,找出错误并改正。
源程序#include<stdio.h>2 main( )3 { char a;int b;float c;double d;4 scanf(“%c,%d,%f,%lf ”,&a,&b,&c,&d);5 putchar(a\n);6 printf( “%d n”b,,c,d);7 return 0;8 }找错调试正确后的运行结果四、程序设计错误在 5 行应改为:putchar(a); putchar(“\n”);输入数据: A,19,12.3,10.98 运行结果:A↙19,12.30,10.981. 对输入的字符进行加密,加密规则为“输入 4 个字符,将每个字符加 4 后转换成加密字符”,如输入“Ab2c”则加密后的字符序列为“Ef6g”。
1. #include <stdio.h>intmain( ){ char c1,c2,c3,c4;scanf( “c%c%c%c”,&c1,&c2,&c3,&c4);c1+=4;c2+=4;c3+=4;c4+=4;printf( “ n”c,1,c2,c3,c4);return 0;}3.3 拓展实验一、程序分析1.⊙以下程序若输入 3.4、12.0、8.9,则输入格式为:3.4,12.0,8.9,运行结果为:7.20↙。
#include <stdio.h>#include <math.h>intmain( ){ float a,b,c;float s,area;scanf( “ %f,%f,%f ”,&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));printf( “%n” ,area);return 0;}2. 以下程序若输入 C 和2,则运行结果分别为:'F'和'5'。
#include <stdio.h>intmain( ){ char c1;int c2=0;c1=getchar( );c2=c1+3;putchar('\'' );putchar(c2); putchar('\'' );return 0;}二、程序填空1. ⊙以下程序实现按由大到小顺序输出任意两个整数。
若输入3562,则运行结果为:62,35↙。
#include <stdio.h>int main( ){ int m,n;scanf( “%d”_,&m,&n );n>=m?printf(%“d,%d\n”,n,m):_printf( “n”m,,n) ;return 0;}2. 以下程序实现输入任意两个整数,完成加、减、乘、除、求余操作并运行结果。
若输入29 、18 ,则运行结果为:_29+18=47,29-18=11,29*18=522,29/18=1,29%18=11_。
#include <stdio.h>intmain ( ){ int x,y;printf( “请输入x,y 的值:”);scanf(“%d%d”,&x,&y);printf( printf( printf( printf( printf( %“d+%d=%d,”,_x,y,x+y ); %“d-%d=%d,”,_x,y,x-y ); %“d*%d=%d, ”, _ x,y,x*y ); %“d/%d=%d,”, _ x,y,x/y ); %“d%%%d=%d”, _ x,y,x%y );return 0;}三、程序改错1.分析以下程序段,找出错误并改正。
行号1 2 3 4 5 6 7 8 源程序#include <stdio.h>main( );{ char i;int j;scanf( “i=%d,j=d%”,&i,&j);j=i+j/2;printf(return 0;“%n ”i,j,);}错误在 2 行找错应改为:main( )调试正确后的运行结果输入数据: i=65,j=5 运行结果:AC2.分析以下程序段,找出错误并改正。
行号源程序1 #include <stdio.h>2 #include<math.h>3 #define pi=3.1416四、程序设计1.输入圆的半径,输出该圆的周长和面积,结果保留2 位小数。
2.⊙求 ax2+bx+c 的根, a 、b 、c 从键盘输入,结果保留 2 位小数。
1. #include <stdio.h> intmain( ) { float r,s,area; scanf( “f ”%,&r); s=2*3.14*r; area=3.14*r*r;printf( 周“长为 %.2f,面积 2. #include <stdio.h> #include <math.h> intmain( ){ float a,b,c,x1,x2,disc,p,q; scanf( “f%%f%f ”,&a,&b,&c); disc=sqrt(b*b-4*a*c);p=-b/2/a; q=disc/2/a; 为 n ”r ,,area);x1=p+q;printf( re turn 0;x2=p-q;return 0;“ n ”x ,1,x2);}}4 main( )5 { float r;6 scanf( r “=%f ”,&r);7 printf(“ %.2f n ”p ,i*pow(r,2),2pi*r);8 return 0; 9 }错误在 3,7 行找错应改为:#define pi3.1416printf( “ %.2f n ”p ,i*pow(r,2),2*pi*r); 调试正确后 输入数据 : r=2 运行结果: 12.57,12.57↙的运行结果r=328.27,18.85↙3.4 习题一、选择题1. 以下 4 个选项中,不能看作一条语句的是() 。
A. {;}B.a=0,b=0,c=0;C.if(a>0) ;D.if(b==0) m=1;n=2;2. 以下叙述中错误的是() 。
A.C 语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行D.赋值表达式末尾加分号就构成赋值语句3. ⊙已有如下定义和输入语句,若要求a1,a2,c1,c2 的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是()。
int a1,a2; char c1,c2;scanf( “%d%c%d%”c,&a1,&c1,&a,2&c2);A. 10A20B ↙B. 10A 20B ↙C. 10A20B ↙D.10A 20B↙4. 有输入语句:scanf( “a=%d,b=%d,c=%d”,&a,&b,&c为); 使变量 a 的值为1,b 的值为3,c 的值为2,则正确的数据输入方式是()。
A. 132 ↙B. 1,3,2 ↙C.a=1 b=3 c=2 ↙D.a=1,b=3,c=2 ↙5. 若定义x 为double 型变量,则能正确输入x 值的语句是()。
A. s canf( “%f”,x.)s; c B anf( “%f”,&x);C.scanf( “%lf ”,&D x.s);canf( “%5.1f ”,&x);6. 已知i,j,k 为int 型变量,若从键盘输入:1, 2, 3<回车>,以下选项中正确的输入语句是()。