C语言实验指导1--C语言编程基础_第1页
C语言实验指导1--C语言编程基础_第2页
C语言实验指导1--C语言编程基础_第3页
C语言实验指导1--C语言编程基础_第4页
C语言实验指导1--C语言编程基础_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一 C语言编程基础工具、数据类型、运算符、I/O、控制语句、数组实验目的1、 学习使用VC+集成开发工具,编辑、编译、运行C语言程序。2、 编程验证C语言的数据类型和各种运算符。3、 编程验证C语言的基本I/O函数:printf()、scanf()、putchar()、getchar()。4、 编程验证C语言的控制语句:if、switch、while、do-while、for、break、continue5、 编程验证数组的定义、引用。6、 编程验证数组的在内存的存储方式。7、 编程验证字符数组的定义和使用,验证字符串函数。实验内容1、编程验证C语言的数据类型和各种运算符()输入并运行下面

2、的程序#include<stdio.h>void main()char c1,c2;c1='a'c2='b'printf("%c %c",c1,c2);运行此程序加入下面的一个语句作为“”前的最后一个语句:printf("%d,%dn",c1,c2);将第行改为:int c1,c2;然后再运行程序,并观察结果是否相同。将第行改为int c1,c2;将第4,行依次改为:c1=a;c2=b;c1="a"c2="b"c1=300;c2=400;每改为一次后运行程序,观察结果。(

3、2)输入并运行下面的程序#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,%dn",a,b);printf("%u,%un",a,b);printf("%u,%un",c,d);c=a=e;d=b=f;printf("%d,%dn",a,b);printf("%u,%un",c,d);请对照程序和运行结果分析:将一个负整数赋

4、给一个无符号的变量,会得到什么结果。画出它们在内存中的表示形式。将一个大于32767的长整数赋给一个整型变量,会得到什么结果。画出它们在内存中的表示形式。将一个长整数赋给无符号的变量,会得到什么结果。画出它们在内存中的表示形式。(3)输入并运行下面的程序#include<stdio.h>void main()int i,j;i=8;j=10;printf("%d,%dn",+i,+j);i=8;j=10;printf("%d,%dn",i+,j+);i=8;j=10;printf("%d,%dn",+i,i);i=8;j=

5、10;printf("%d,%dn",i+,i);运行程序并分析运行结果。(4)关于运算符,请大家在有时间的时候自己编程验证。2、编程验证C语言的基本I/O函数(1)掌握各种格式输出符的使用方法。#include<stdio.h>void main()int a,b;float d,e;char c1,c2;double f,g;long n,m;unsigned p,q;a=61;b=62;c1='a'c2='b'd=3.56; e=-6.87;f=3156890121;g=0.123456789;m=50000;n=-6000

6、0;p=32768;q=40000;printf("a=%d,b=%dnc1=%c,c2=%cnd=%6.2f,e=%6.2fn",a,b,c1,c2,d,e);printf("f=%15.6f,g=%15.12fnm=%ld,n=%ldnp=%u,q=%un",f,g,m,n,p,q);运行此程序并分析运行结果。在此基础上,修改程序的第行:a=61;b=62;c1=a;c2=b;f=3156,890121;g=0.123456789;d=f;e=g;p=a=m=50000;q=b=n=-60000;运行程序,分析运行结果。将行改为以下的scanf语句,

7、即用scanf函数接收从键盘输入的数据: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);运行程序(无错误的情况下)输入数据如下:61,62,a,b,3.56,-6.87,3156,890121,0.123456789,50000,-60000,32768,40000(2)getchar和putchar的验证编写程序,用getchar函数读入两个字符给c1,

8、c2,然后分别用putchar函数和printf函数输出这两个字符。请大家自行编程。3、编程验证C语言的控制语句:if、switch、while、do-while、for、break、continue(1)给出一个百分制的成绩,要求输出成绩等级,。分及以上为,为,为,为,分以下为。要求从键盘输入成绩,然后输出相应等级,分别用if语句和switch语句实现。程序提示:使用if语句的main函数结构如下:定义float型变量score,char型变量grade输入百分制成绩赋给score。关键代码如下:if (score>=90) grade='A'else if (scor

9、e>=80) grade='B'else if (score>=70) grade='C'else if (score>=60) grade='D'else grade='E'输出百分制成绩和等级。使用switch语句的main函数结构如下:定义float型变量score,char型变量grade输入百分制成绩赋给score关键代码如下:switch(int(score/10)case 10:case 9: grade='A'break;case 8: grade='B'break

10、;case 7: grade='C'break;case 6: grade='D'break;default: grade='E'break;输出百分制成绩和等级(2)编程求1到n中能被3或7整除的数之和。分别用for循环语句和while循环语句完成本题。程序提示:for循环语句的主要算法如下:for(i=1;i<=n;i+) if i能被3或7整除sum=sum+iwhile循环语句的主要算法如下:while(i<=n) if i能被3或7整除sum=sum+i+;(3)其它语句大家自行编程实验4、更多的练习(1)编程,输入圆的半径

11、radius,计算并输出area。注意%f %lf(2)编程,输出下列结果(3)编程,输出下列结果(4)编程,在两位数中找出4和6的所有公倍数,比如12、24等。此题为练习for if(5)数据类型、运算符、表达式整形signed int , signed short int, 简称shortsigned long int, 简称longunsigned int, unsigned short int, 简称 unsigned shortunsigned long int, 简称unsigned long编程验证short型数据等取值范围编程验证unsigned short型数据等取值范围字符

12、型charchar unsigned char编程验证char和unsigned char型等取值范围编程验证char型数据等本质编程,用循环输出编码为0127的所有字符。编程,当用户输入字符,则显示该字符;但如果输入的是q或Q则退出。编程,当用户输入字符,则显示该字符;但如果按ESC则退出。浮点float double运算符:算术运算,以上类型可用+ - * /等算术运算,整形可用%运算。关系运算有> < >= <= !=逻辑运算有&&(与、并且),|或,!非位运算 &与 | 或 异或 非 <<左移 <<右移条件运算?:

13、逗号运算(6)编程,判断公元1 10000年,将所有闰年的年份输出来。假定某年的年份是year,那么只要符合下列条件之一,该年就是闰年:(1) year % 400为0(2) year%4 为0 并且 year%100不为0(7)编程,判断打印机是否缺纸。假定打印机传递给驱动程序的数据存放在一个char型变量中。该变量8个比特位。如下图所示。7654321010当该变量的第3位是1并且第2位是0时,说明打印机缺纸。程序框架如下:#include "stdio.h"void main()char status;status = getchar();/打印机状态。手工输入。注意

14、要按回车。/判断/输出缺纸或不缺纸5、编程验证数组的定义、引用(1)一维数组(输入并运行下面的程序)#include<stdio.h>void main()int i,a=1,2,3,4,5;char b5='A', 'B', 'C', 'D', 'E'float c5;for(i=0;i<5;i+) ci=ai;for(i=0;i<5;i+) printf("%dt",ai);printf("n");for(i=0;i<5;i+) printf

15、("%ct",bi);printf("n");for(i=0;i<5;i+) printf("%ft",ci);(2)二维数组。运行下面的程序,并分析结果。#include<stdio.h>void main()int i,j;int a2=1,2,3,4,5,6;int b2=1,2,3,4,5;int c2=11,12,21,31;printf("array a isn");for(i=0;i<3;i+)for(j=0;j<2;j+) printf("%dt",

16、aij);printf("n");printf("array b isn");for(i=0;i<3;i+)for(j=0;j<2;j+) printf("%dt",bij);printf("n");printf("array c isn");for(i=0;i<3;i+)for(j=0;j<2;j+) printf("%dt",cij);printf("n");6、编程验证数组在内存的存储方式()一维数组的存储#include&l

17、t;stdio.h>void main()int i,a=1,2,3,4,5;char b5='A', 'B', 'C', 'D', 'E'float c5;int d;printf("数组a的地址是 %ldn",a); /*用&a也一样,编译后数组名就是相对地址*/printf("数组元素a0的地址是 %ldn",&a0);printf("数组元素a1的地址是 %ldn",&a1);d=(int)&a1-(int)&

18、amp;a0;printf("整型数组每个元素要占用%d个字节的空间n",d);printf("n");printf("数组b的地址是 %ldn",b); /*用&b也一样*/printf("数组元素b0的地址是 %ldn",&b0);printf("数组元素b1的地址是 %ldn",&b1);d=(int)&b1-(int)&b0;printf("字符型数组每个元素要占用%d个字节的空间n",d);printf("n&quo

19、t;);printf("数组c的地址是 %ldn",c); /*用&c也一样*/printf("数组元素c0的地址是 %ldn",&c0);printf("数组元素c1的地址是 %ldn",&c1);d=(int)&c1-(int)&c0;printf("单精度浮点型数组每个元素要占用%d个字节的空间n",d);运行程序,观察结果。(2)二维数组的存储#include<stdio.h>void main()int i,j;int a2=1,2,3,4,5,6;ch

20、ar b2='a','b','c','d','e','f'printf("二维数组a的首地址是a=%ldn",&a);/*可直接用a*/printf("二维数组a的第1行的首地址是a0=%ldn",&a0);/*可直接用a0*/printf("二维数组a的元素a00的地址是%ldn",&a00);printf("二维数组a的元素a01的地址是%ldn",&a01);printf("

21、;二维数组a的第2行的首地址是a1=%ldn",&a1);printf("二维数组a的第3行的首地址是a2=%ldn",&a2);printf("二维整型数组a的每个元素占用%d个字节n",(int)&a01-(int)&a00);printf("每个元素各自的地址分别如下n");for(i=0;i<3;i+)for(j=0;j<2;j+) printf("%ldt",&aij);printf("n");printf("n&

22、quot;);printf("二维数组b的首地址是b=%ldn",&b);printf("二维数组b的第1行的首地址是b0=%ldn",&b0);printf("二维数组b的元素b00的地址是%ldn",&b00);printf("二维数组b的元素b01的地址是%ldn",&b01);printf("二维数组b的第2行的首地址是b1=%ldn",&b1);printf("二维数组b的第3行的首地址是b2=%ldn",&b2);printf("二维字符型数组b的每个元素占用%d个字节n",(int)&b01-(int)&b00);printf("每个元素各自的地址分别如下n");for(i=0;i<3;i+)for(j=0;j<2;j+) printf("%ldt",&bij);printf("n");7、编程验证字符数组的定义和使用,验证字符串函数(1)字符数组的定义和使用。#include&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论