【实验内容】 1、输入下面的程序,分析其编译信息和连接信息,如果编译和连接无错误,则根据运行结果说明程序的功能。 # include<stdio.h> void main() { printf("This is a c program..\n"); } 2、 输入下面的程序,分析其编译信息和连接信息,如果编译和连接有错误,请改正,然后根据运行结果说明程序的功能。 输入程序 #include<stdio.h> void main() { int a,b,sum a=123;b=456; sum=a+b print("sum is %d\n",sum); } 3、输入并运行一个需要在运行时输入数据的程序,根据运行结果说明程序的功能。 #include<stdio.h> void main() { int a,b,max; printf("input a,b:"); scanf("%d,%d",&a,&b); if(a>b) max=a; else max=b; printf("max=%d\n",max); } 4、把上面程序的蓝字体部分代码写在同一行上,观察编译和连接有没有错误? 5、总结一下自己的体会,说说C源程序的特点? 附加题: 1、编程实现在屏幕上显示下列图形 A A A A 2、编程实现在屏幕上显示以下3行信息 ************* Welcome ************* |
【实验结果与分析】 1、 如上图,该程序的作用是用于输出一下一行信息:This is a C program. 2、错误分析:语句末没有用“;”表示结束,printf输成“print”。 改正: #include<stdio.h> void main() { int a,b,sum; a=123;b=456; sum=a+b; printf("sum is %d\n",sum); } 功能:如下图所示,该程序的作用是用于输出123与456的和:579 3、 功能:如上面两图可清晰看出,该程序的功能为:确定并输出开始随意输出的任意两个整数的较大值 4、编译时和连接时都没有错误,Visual C++中允许一行内写多个语句。 5、c语言程序的特点: (1)语言简洁、紧凑,使用方便、灵活。C语言一共有32个关键字,9种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。 (2)运算符丰富,共有34种运算符,C语言把括号、赋值、强制类型转换等都作为运算符处理,从而使C语言的运算类型极其丰富,表达式类型多样化。 (3)数据类型丰富。C语言提供的数据类型有:整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型等。 (4)具有结构化的控制语句(如if…else语句、while语句、do…while语句、switch语句、for语句)。用函数作为程序的模块单位,便于实现程序的模块化。 (5)语法限制不太严格,程序设计自由度大。 (6)C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。 (7)生成目标代码质量高,程序执行效率高。 (8)用C语言编写的程序可移植性好(与汇编语言相比)。基本上不做修改就能用于各种类型的计算机和各种操作系统。 附加题: 1、# include <stdio.h> void main() { printf(" A \n"); printf("A A\n"); printf(" A \n"); } 2、 # include <stdio.h> void main() { printf("*************\n"); printf(" Welcome \n"); printf("*************\n"); } |
【实验内容】 1、 已知球的半径是2cm,编程计算球的表面积和体积(请用符号常量表示π的值) 2、 试编程输出整型中的short、int 、long,浮点型中float、double、long double等类型的字节长度和位长,输出格式如:long:4 byte 32 bit 3、 实验指导书P239(3) 请对照程序和运行结果分析:将一个负整数赋给一个无符号的变量,会得到什么结果 |
【实验结果与分析】 第一小题: #define PI 3.14 #include<stdio.h> void main() { double r,S,V; r=2; S=4*PI*r*r; V=4/3*PI*r*r*r; printf("S=%f\n",S); printf("V=%f\n",V); } 第二小题: #include<stdio.h> void main() { printf("short: %d byte %d bit\n",sizeof(short),8*sizeof(short)); printf("int: %d byte %d bit\n",sizeof(int),8*sizeof(int)); printf("long: %d byte %d bit\n",sizeof(long),8*sizeof(long)); printf("float: %d byte %d bit\n",sizeof(float),8*sizeof(float)); printf("double: %d byte %d bit\n",sizeof(double),8*sizeof(double)); printf("long double: %d byte %d bit\n",sizeof(long double),8*sizeof(long double)); } 第三小题: #include<stdio.h> void main() {int a,b; unsigned c,d; long e,f; a=100; b=-100; e=50000; f=32767; c=a; d=b; printf("%d,%d\n",a,b); printf("%u,%u\n",a,b); printf("%u,%u\n",c,d); c=a=e; d=b=f; printf("%d,%d\n",a,b); printf("%u,%u\n",c,d); } 将一个负整数赋给一个无符号的变量,运行结果会出错,无符号变量只能取正数。 |
【实验内容】 (1) 输入并运行下面的程序: #include <stdio.h> void main () {char c1,c2; c1='a'; c2='b'; printf("%c %c\n",c1,c2); } 1 运行此程序。 2 在上面printf语句的下面再增加一个printf语句:printf(“%d %d\n”,c1,c2);再运行,并分析结果。 3 将第三行改为:int c1,c2;再使之运行,并观察结果。 4 再将第4、5行改为: c1=a;/*不用单撇号*/ c2=b 再使之运行,分析其运行结果。 5 再将第4、5行改为: c1=”a”;/*用双撇号*/ c2=”b” 再使之运行,分析其运行结果。 6 再将第4、5行改为: c1=00; /*用大于255的整数*/ c2=400; 再使之运行,分析其运行结果。 (2)输入并运行教材第3章习题3.6给出的程序: # include<stdio.h> void main () {char c1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’; printf(“a%c b%c\tc%c\tabc\n”,c1,c2,c3); printf(“\t\b%c %c\n”,c4,c5); } 在上机前先用人工分析程序,写出应得结果,上机后将二者对照。 (4)输入习题3.10。即: # include<stdio.h> void main () {int i,j,m,n; i=8; j=10; m=++i; n=j++; printf("%d,%d,%d,%d\n",i,j,m,n); } 1 运行程序,注意i、j、m、n各变量的值。分别做一下改动并运行: 2 将第6、7行改为: m=i++; n=++j; 再运行。 ③程序改为: #include<stdil.h> void main() {int I,j; i=8; j=10; printf(“%d,%d\n”,i++,j++); } ④ 在③的基础上,将printf语句改为: printf(”%d,%d,%d,%d\n”,I,j,i++,j++); ⑤再将printf语句改为 printf(”%d,%d,5d,%d\n”,I,j,i++,j++); ⑥程序改为: void main() {int i,j,m=0,n=0; i=8; j=10; m+=i++;n-=--j; printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n); } (2) 要将“China”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如,字母“A”后面第4个字母是“E”,用“E”代替“A”。因此,“China”应译为“Glmre"。请编一程序,用赋初值得方法使c1、c2、c3、c4、c5这5个变量的值分别为 ‘C’、 ‘h’、 ‘i’、 ‘n’、 ‘a’,经过运算,使c1、c2、c3、c4、c5分别变为‘C’、 ‘h’、 ‘i’、 ‘n’、 ‘a’,并输出。 1 输入事先已编好的程序,并运行该程序。分析是否符合要求。 2 改变c1、c2、c3、c4、c5的初值为:’T’、’o’、’d’、’a’、’y’,对译码规律做如下补充:’W’用’A’代替,’X’用’B’代替,’Y’用’C’代替,’Z’用’D’代替。修改程序并运行。 3 将译码规律修改为:将一个字母被它前面第4个字母代替,例如 “E”用“A”代替, “Z”用“U”代替, “C”用“Y”代替, “B”用“X”代替, “A”用“V”代替。修改程序并运行。 |
【实验结果】 1、 (1) (2) 结果分析:字符型数据和整型数据是通用的。 (3) (4)不能运行该程序。原因;字符常量必须用‘’表示,否则只能被看作标示符。 (5)'a'是字符常量,“a”是字符串常量,二者不同,不能把一个字符串常量赋给一个字符变量。 (6)出现警告,运行结果如下: 原因:程序中将字符变量定义为unsigned char类型,这时其取范围为0-255。这时a,b的取值均大于255,故出错。 2、 3、 (1) (2) (3) (4) (5) (6) 5、 ①程序设计如下: # include<stdio.h> void main() {char c1='C',c2='h',c3='i',c4='n',c5='a'; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("password is %c%c%c%c%c\n",c1,c2,c3,c4,c5); } ②# include<stdio.h> void main() {char c1='T',c2='o',c3='d',c4='a',c5='y'; c1+=4; c2+=4; c3+=4; c4+=4; c5-=22; printf("password is %c%c%c%c%c\n",c1,c2,c3,c4,c5); } ③# include<stdio.h> void main() {char c1='C',c2='h',c3='i',c4='n',c5='a'; c1+=22; c2-=4; c3-=4; c4-=4; c5+=21; printf("password is %c%c%c%c%c\n",c1,c2,c3,c4,c5); } |
【实验内容】 1、实验指导书:P241-242:(1)①、②、③、④、⑦ 2、实验指导书:P242:(3) 3、课本:P89:4.9 |
【实验结果与分析】 P241-242 (1) ①#include <stdio.h> void main() {int a,b; float d,e; char c1,c2; double f,g; long m,n; unsigned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.87; f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q); } ②、运行结果: ③ #include <stdio.h> void main() {int a,b; float d,e; char c1,c2; double f,g; long m,n; unsigned int p,q; a=61;b=62; c1=a;c2=b; f=3157.890121;g=0.123456789; d=f;e=g; p=a=m=50000;q=b=n=-60000; printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q); } 运行结果: ④ #include <stdio.h> void main() {int a,b; float d,e; char c1,c2; double f,g; long m,n; unsigned int p,q; scanf("%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u", &a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,&p,&q); printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q); } 运行结果: ⑦ #include <stdio.h> void main() {int a,b; float d,e; char c1,c2; double f,g; long m,n; unsigned int p,q; scanf("%d,%d,%c,%c,%f,%f,%f,%f,%d,%d,%u,%u", &a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,&p,&q); printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q); } 从运行结果上看,f,g的值运行错误,因为输入的f,g的值已经超出了float值的范围,double型的数据应该用%lf输出,而long型与int型的数据存储长度一样,因此m、n的值运行正确。 P242:(3) #include <stdio.h> void main() {char c1,c2; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); } 课本:P89:4.9 程序为: #include<stdio.h> void main() {float c,f; printf("请在下面输入一个华氏温度:\n"); scanf("%f",&f); c=(5.0/9.0)*(f-32); printf("摄氏温度为:%5.2f\n",c); } 运行结果为: |
【实验内容】 4、 自来水公司采取按月用水量分段计费的办法,居民应交水费y(元)与用水量x(吨)的函数关系式如下: 编写程序实现输入用水量x的值,输出应交水费y的值,结果保留两位小数。 5、 输入一个年份year,判断该年是否是闰年。判断闰年的条件是:能被4整除但不能被100整除,或者能被400整除。 6、 反复从键盘输入一批学生的成绩,累加后,最后输出平均分 4、从键盘读入一个整数,统计该数的位数。例如,输入54689,输出5;输入-54,输出2 |
【实验结果与分析】 1、 #include <stdio.h> void main() { float x,y; scanf("%f",&x); if(x<0) y=0; else if(x<=15)y=(4.0/3.0)*x; else y=2.5*x-10.5; printf("x=%f,y=%5.2f\n",x,y); } 2、 #include <stdio.h> void main() { int year,leap; scanf("%d",&year); if((year%4==0&&year%100!=0)||(year%400==0)) leap=1; else leap=0; if(leap) printf("%d 是闰年.\n",year); else printf("%d 不是闰年.\n",year); c语言正确的字符常量} 3、 #include <stdio.h> void main() {float score,sum,average; int i; i=0;sum=0; printf(" 请输入一批学生的成绩:"); while(scanf("%f",&score)&&score!=0) { sum=sum+score; i=i+1; } printf("学生总分数sum=%.2f",sum); printf("\n"); average=sum/i; printf("这批学生的平均成绩为%.1f\n",average); } 4、 #include <stdio.h> void main() { long int a,b; int place,i=1; printf("请输入一个整数:"); scanf("%ld",&a); b=a/10; while(b!=0) { i=i+1; b=b/10; } place=i; printf("该整数的位数是%d",place); printf("\n"); } |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论