2012C语言实验
词法分析器实验报告

词法分析器实验报告实验名称: 编写词法分析器实验类型: 验证型实验指导教师:专业班级:姓名:学号:电子邮件:实验地点:实验成绩:日期: 2012 年3 月 22 日目录一、实验目的。
2 二、实验过程。
21、背景知识。
22、程序总体设计。
23、各种类型表。
4、程序流程图。
5 4三、试验结果。
5 四、讨论与分析。
6 五、附录。
7 六、试验者自评。
131一、实验目的通过设计、调试词法分析程序,实现从源程序中分出各种单词的方法;熟悉词法分析程序所用的工具自动机,进一步理解自动机理论。
掌握文法转换成自动机的技术及有穷自动机实现的方法。
确定词法分析器的输出形式及标识符与关键字的区分方法。
加深对课堂教学的理解;提高词法分析方法的实践能力。
通过本实验,掌握从源程序文件中读取有效字符的方法和产生源程序的内部表示文件的方法以及掌握词法分析的实现方法,并可以成功的上机调试编出的词法分析程序。
二、实验过程我们在设计词法分析器时,应该首先对词法分析器相关的背景知识有足够的了解以及熟练的掌握。
从而在脑海里形成词法分析的一般方案,根据方案一步步所要实现的目的,形成对词法分析器程序的模块划分和整体规划。
1、背景知识词法分析是作为相对独立的阶段来完成的(对源程序或中间结果从头到尾扫描一次,并作相应的加工处理,生成新的中间结果或目标程序)。
在词法分析过程中,编译程序是通过操作系统从外部介质中读取源程序文件中的各个字符的。
同时,为正确地识别单词,有时还需进行超前搜索和回退字符等操作。
因此,为了提高读盘效率和便于扫描器进行工作,通常可采用缓冲输入的方案,即在内存中设置一个适当大小的输入缓冲区,让操作系统直接将磁盘上的源程序字符串分批送入此缓冲区中,供扫描器进行处理。
程序总体设计 2、主程序的说明部分为各种表格和变量安排空间。
二维数组k:关键字表,采用定长的方式,较短的关键字后面补空格。
一维数组p:分界符表。
一维数组s: 运算符表。
二维数组id:存放标识符,在程序运行中,产生标示符表二维数组ci:存放常数。
c语言实验123

C语言实验指导书实验一:简单的C语言程序一、实验目的1.了解C语言的语法结构和书写格式;2.掌握C语言数据类型以及变量的定义和赋值;掌握运算符的种类、运算优先级和结合性;掌握不同类型数据间的转换和运算。
2.掌握C语言的表达式。
3.掌握C程序的编辑、编译、连接和运行的过程。
二、实验内容1.输入并运行以下程序:#include <stdio.h>void main( ){ char c1,c2;c1=97;c2=98;printf(“%c %c\n”,c1,c2);printf(“%d %d\n”,c1,c2);}程序运行结果输出:a 97 b 98 程序正常运行;a b为ASCLL码表的ASCLL值97 98所对应的控制字符。
在此基础上①将第三行、第四行改为:c1=321;c2=353; (类型转换)再使之运行,分析其运行结果。
程序运行结果输出:A65 a97,由于char,编译时出现警告,但可以运行,c1,c2为字符型常量,char为单个字符,取值范围:-128~127。
321和353已经超越了字符型数值最大范围,默认为整数型数据,转为字符型数据时造成溢出重新计算,所以c1=321-127-127=65,c2=353-127-127=95。
a b为ASCLL码表的ASCLL 值65 95所对应的控制字符。
②将第二行改为:int c1,c2;再使之运行,分析其运行结果。
程序输出:A321 a353 这是int 字符的原因,把c1 c2定义为带符号整数型常量,在输出时进行数据类型转换,变为字符型数据输出A a。
2.输入并运行以下程序:①#include<stdio.h>void main(){int a,b,x;x=(a=3,b=a--);printf(“x=%d,a=%d,b=%d\n”,x,a,b);}输出结果:x=3,a=2,b=3 x=(a=3,b=a--)表示x取a、b的最大值,b的值为a,运算完后a自减1.②#include<stdio.h>void main(){ float f1,f2,f3,f4;int m1,m2;f1=f2=f3=f4=2;m1=m2=1;printf(“%d\n”,(m1=f1>=f2) && (m2=f3<f4));}输出结果:0 先判断(m1=f1>=f2) && (m2=f3<f4)真假,再输出结果③#include<stdio.h>void main(){ float f=13.8;int n;n=(int)f%3;printf(“n=%d\n”,n);}输出结果:n=13.输入并运行以下程序:#include<stdio.h>void main( ){ int i=8,j=10,m,n;m=++i;n=j++;printf(“%d,%d,%d,%d\n”,i,j,m,n); }输出结果:9,11,9,10分别作以下改动并运行:①将程序改为:#include<stdio.h>void main( ){ int i=8,j=10;printf(“%d,%d\n”,i++,j++);}输出结果:8,10 %d后面是由于i++和j++在但程序只能识别i和j。
C语言-实验一二Word版

实验一最简单的C程序---顺序程序设计(验证性实验 2学时)(一)、实验目的1.熟悉VC++6.0/C-Free等C语言程序编译软件运行环境2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法3.掌握C语言中使用最多的一种语句——赋值语句4.掌握数据的输入输出方法,能正确使用各种格式控制符(二)、实验内容1.写出下列程序的运行结果(1)#include <stdio.h>void main(){printf(“*****************\n”);printf(“This is a c program. \n”);printf(“****************\n”);}运行结果及分析:将程序中的\n去掉后,运行结果及分析:(2)#include <stdio.h>void main(){int a=100,b=20,sum,sb;sum=a+b;sb=a/b;printf("sum=%d,sb=%d",sum,sb);}运行结果及分析:(3)#include <stdio.h>void main( ){char c1,c2;c1=97;c2=98;printf("%c ,%c\n",c1,c2);printf("%d,%d\n",c1,c2);printf("%c %c\n",c1+1,c2+2);}运行结果及分析:2.程序填空任意输入一个有五位数字的正整数x,分别输出每一数位上的数字(由高到低分别用b5,b4,b3,b2,b1表示),请将程序补充完整。
#include <stdio.h>main(){int b1,b2,b3,b4,b5;int x;Scanf( “ %ld ”,&x);b5= (x/10000)%10; ;b4=(x/1000)%10;b3= (x/100)%10; ;b2=(x/10)%10;b1x%10; ;printf(“the number is ⑤ %d \n”,x);printf(“its bit is:%d,%d,%d,%d,%d\n”,b5,b4,b3,b2,b1);}程序分析:3.程序改错(注意:题中的编号为行序号,并非程序本身)(1)计算任意一个半径为r的圆的面积和周长(结果保留两位小数)1)#include <stdio.h>2)main(){3) float r; p=3.14,c,area;4)printf(“input r:”);5)scanf(“%f”, r);6)c=2p*r;7)area=p*r*r8)printf(“c=%-7.2f,area=%-7.2f”,c,area);9)}错误语句的行号: 3改正后的语句全行:float r,p=3.14,c,area;错误语句的行号: 5改正后的语句全行:scanf(“%f”,&r);错误语句的行号: 6改正后的语句全行:c=2*p*r错误语句的行号: 7改正后的语句全行:area=p*r*r,改错分析:(2)修改下面的源程序,并调试出运行结果,并以sum.c命名保存。
C语言 实验一二

实验一最简单得C程序--—顺序程序设计(验证性实验 2学时)(一)、实验目得1、熟悉VC++6.0/C-Free等C语言程序编译软件运行环境2。
掌握运行一个C程序得步骤,理解并学会C程序得编辑、编译、链接方法3、掌握C语言中使用最多得一种语句——赋值语句4。
掌握数据得输入输出方法,能正确使用各种格式控制符(二)、实验内容1.写出下列程序得运行结果(1)#include 〈stdio.h>void main(){printf(“*****************\n”);printf(“This isa c program、\n");printf(“****************\n”);}运行结果及分析:将程序中得\n去掉后,运行结果及分析:(2)#include <stdio、h>void main(){int a=100,b=20,sum,sb;sum=a+b;sb=a/b;printf("sum=%d,sb=%d”,sum,sb);}运行结果及分析:(3)#include <stdio.h>void main( ){char c1,c2;ﻩﻩc1=97;c2=98;printf("%c ,%c\n”,c1,c2);printf("%d,%d\n”,c1,c2);printf(”%c %c\n",c1+1,c2+2);}运行结果及分析:2.程序填空任意输入一个有五位数字得正整数x,分别输出每一数位上得数字(由高到低分别用b5,b4,b3,b2,b1表示),请将程序补充完整、#include〈stdio.h>main(){int b1,b2,b3,b4,b5;int x;Scanf( “%ld ”,&x);b5= (x/10000)%10; ;b4=(x/1000)%10;b3= (x/100)%10; ;b2=(x/10)%10;b1x%10; ;ﻩﻩprintf(“the number is ⑤ %d \n”,x);printf(“its bit is:%d,%d,%d,%d,%d\n”,b5,b4,b3,b2,b1);}程序分析:3.程序改错(注意:题中得编号为行序号,并非程序本身)(1)计算任意一个半径为r得圆得面积与周长(结果保留两位小数)1)#include 〈stdio、h〉2)main(){ﻩ3) float r; p=3、14,c,area;4) printf(“inputr:”);5) ﻩscanf(“%f”, r);6) c=2p*r;7) ﻩarea=p*r*r8) ﻩprintf(“c=%—7.2f,area=%—7.2f",c,area);9)}错误语句得行号: 3改正后得语句全行:float r,p=3、14,c,area;错误语句得行号: 5改正后得语句全行:scanf(“%f”,&r);错误语句得行号: 6改正后得语句全行:c=2*p*r错误语句得行号:7改正后得语句全行:area=p*r*r,改错分析:(2)修改下面得源程序,并调试出运行结果,并以sum.c命名保存。
《C语言程序设计》教学改革的

机电技术 2012年12月172《C语言程序设计》教学改革的研究*冯 林 付志坚(东华理工大学,江西抚州 344000)摘 要:就如何提高C语言程序设计课程的教学质量,激发大学生在C语言教学中的兴趣,熟练掌握教学内容,开拓大学生的创新意识,文章从教学思想、教学内容、教学模式、教学方法、考核方式等几方面探究了C语言教学改革。
关键词:C语言;编程能力;教学方法;教学质量;教学改革中图分类号:TP312文献标识码:A 文章编号:1672-4801(2012)06-172-03C语言是贝尔实验室的Dennis Ritchie 在B 语言的基础上开发出来的,并逐渐被用于UNIX操作系统的系统软件和应用软件的开发。
不少高校不仅在计算机专业开设了C语言的课程,而且在非计算机专业也开设了C语言课程。
但是由于授课对象都是初次接触程序设计的大学低年级学生,大一上学期开设《大学计算机基础》,下学期就接着开设《C语言程序设计》。
在每学期都要召开期中教学质量检查座谈会上,了解到同一年级不同专业的大部分学生都认为C语言比较难。
根据多年的教学经验,本文分析问题存在的原因,从几个方面探究了改善C语言教学效果的方法,并通过改革取得了一定成效。
1 教学思想的改革传统的教育思想是以知识传承为中心,自然而然培养出的人才大多欠缺研究能力和创新能力,难以适应21世纪社会的需求。
在教学过程中,许多同学经常问:我学了以后到底有什么用呢?会不会过时呢?所以明确学习目的,培养学习兴趣,培养独立思考问题是头等要事,教师在第一堂课上要花一点时间说一说C语言的重要性:1)目前市场上各类工业及民用电子产品和测控系统及测试设备的基础设计与开发多以C/C++、Visual C++语言为工具。
2)DBASEⅢPLUS、DBASEⅣ、PC-DOS、UNIX操作系统、WORDSTAR、各类游戏软件、数据库、聊天室,编制PHOTOSHOP、FLASH、3DMAX等图像设计软件都采用C语言编写。
《C语言程序设计》实验报告(实验1-12)

《C语言程序设计》实验报告2013~2014学年第二学期班级姓名学号指导教师实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C++ 6.0一、实验目的:1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运行一个C程序;2.通过运行简单的C程序,初步了解C源程序的特点。
二、预习内容:教材《C语言程序设计教程》第1章。
三、实验内容:1. 在Visual C++ 6.0环境下输入并运行下面的程序:#include <stdio.h>int main( ){printf("This is a C program.\n");return 0;}2. 在Visual C++ 6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。
#include <stdio.h>int main( ){int a,b,suma=3;b=4;sun=a+b;print(“%d+%d=%d\n”,a,b,sum);return 0;}四、实验结果:1. 运行结果(或截图):This is a C program.Press any key to continue2. (1) 改正后的源程序:#include <stdio.h>int main( ){int a,b,sum;a=3;b=4;sum=a+b;printf("%d+%d=%d\n",a,b,sum);return 0;}(2) 运行结果(或截图):3+4=7五、思考题:1. 一个C程序上机的步骤有哪些?答:上级输入与编辑源程序—对原程序进行编译–与库函数链接–运行可执行的目标程序。
2. 组成C程序的基本单位是函数,一个函数包括哪几个部分?答:一个函数包括两部分:分别为函数头或函数首部和函数体。
C语言学习知识实验一二
实验一最简单的C程序---顺序程序设计(验证性实验 2学时)(一)、实验目的1.熟悉VC++6.0/C-Free等C语言程序编译软件运行环境2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法3.掌握C语言中使用最多的一种语句——赋值语句4.掌握数据的输入输出方法,能正确使用各种格式控制符(二)、实验内容1.写出下列程序的运行结果(1)#include <stdio.h>void main(){printf(“*****************\n”);printf(“This is a c program. \n”);printf(“****************\n”);}运行结果及分析:将程序中的\n去掉后,运行结果及分析:(2)#include <stdio.h>void main(){int a=100,b=20,sum,sb;sum=a+b;sb=a/b;printf("sum=%d,sb=%d",sum,sb);}运行结果及分析:(3)#include <stdio.h>void main( ){char c1,c2;c1=97;c2=98;printf("%c ,%c\n",c1,c2);printf("%d,%d\n",c1,c2);printf("%c %c\n",c1+1,c2+2);}运行结果及分析:2.程序填空任意输入一个有五位数字的正整数x,分别输出每一数位上的数字(由高到低分别用b5,b4,b3,b2,b1表示),请将程序补充完整。
#include <stdio.h>main(){int b1,b2,b3,b4,b5;int x;Scanf( “ %ld ”,&x);b5= (x/10000)%10; ;b4=(x/1000)%10;b3= (x/100)%10; ;b2=(x/10)%10;b1x%10; ;printf(“the number is ⑤ %d \n”,x);printf(“its bit is:%d,%d,%d,%d,%d\n”,b5,b4,b3,b2,b1);}程序分析:3.程序改错(注意:题中的编号为行序号,并非程序本身)(1)计算任意一个半径为r的圆的面积和周长(结果保留两位小数)1)#include <stdio.h>2)main(){3) float r; p=3.14,c,area;4)printf(“input r:”);5)scanf(“%f”, r);6)c=2p*r;7)area=p*r*r8)printf(“c=%-7.2f,area=%-7.2f”,c,area);9)}错误语句的行号: 3改正后的语句全行:float r,p=3.14,c,area;错误语句的行号: 5改正后的语句全行:scanf(“%f”,&r);错误语句的行号: 6改正后的语句全行:c=2*p*r错误语句的行号: 7改正后的语句全行:area=p*r*r,改错分析:(2)修改下面的源程序,并调试出运行结果,并以sum.c命名保存。
2012计算机C语言程序设计answer
高职升本计算机C语言程序填空题1. 阅读以下程序并填空。
以下程序的功能是:输出三位正整数中能被13整除的数#in elude <stdio.h>main (){ int n;for( n=100 ; n<=999 ;n++)if(n %13!=0) continue ; _______else prin tf("%d\n",n);}2. 阅读以下程序并填空。
该程序的功能是:计算1000以内(含1000)既能被3整除也能被7 整除的自然数的个数n#in elude <stdio.h>main (){ int n=1,i=1;while( i<=1000 ){ i++;if( i%3==0&&i%7==0 ) n++;}printf("n=%d\n", n-1 _____3. 阅读以下程序并填空。
以下程序的功能是:输出100以内能被3整除且个位数为6的所有整数#in elude <stdio.h>main (){ int i,j;for(i=0; i<=9 ;i++){ j= i*10+6 ;if( j%3!=0 ) continue;else prin tf("%d\n",j);} }4. 阅读以下程序并填空。
以下的程序功能是:求100至999之间所有能被13整除的整数之和与个数#in elude <stdio.h>main (){ int i,ent;float sum=0;i=100; ent=0;while( i<=99 ______{ if( i%13==0 ){ sum+=i; en t++; }i++ ; }prin tf("sum=%f,e nt=%d\n",sum,c nt);}5. 阅读以下程序并填空。
该程序的功能是:用递归的方法求菲波那契数列2,2,4,6,10,16,26,42,68,110 ,……的第10项#i nclude <stdio.h>long fib(i nt n){ if(n >= 3 _) ______return fi ________elsereturn 2 冷 ______mai n(){ pri ntf("%ld\n",fib(10)); }6. 阅读以下程序并填空。
C语言小实验
实验一 C 程序集成开发环境熟悉一、实验目的掌握在Visual C++ 6.0 集成开发环境下怎样编辑、编译、连接、执行、修改和调试C 语言程序。
二、实验内容1.使用visual C++ 6.0步骤文件—新建—文件—C++ Sourse File—输入文件名和选择保存位置点击‚确定‛—在编辑器输入源代码—‚组建‛中的‚编译‛—‚!‛2.调试过程若出现error C2059: syntax error : ')',即未输入main.实验二顺序结构程序设计一、实验目的1.掌握scanf 和printf 的主要用法。
2.掌握常用转换控制符的用法。
3.掌握赋值语句的用法。
4.掌握算术运算符的运算规律。
二、实验内容1.#include<stdio.h>void main( ){printf("%d\n",42);printf("%5d\n",42);printf("%f\n",123.45);printf("%12f\n",123.45);printf("%e\n",123.45);printf("%13e\n",123.45);printf("%g\n",123.45);printf("%8g\n",123.45);printf("%.5d\n",42);printf("%.0d\n",42);printf("%8.3f\n",123.45);printf("%8.1f\n",123.55);printf("%8.0f\n",123.55);printf("%g\n",123.56789);}运行结果:4242123.450000123.4500001.2345000e+0021.2345000e+002123.45123.450004242123.450123.6124123.5682.运行程序时没输入一个数据用空格,TAP,回车效果一样3.改错题#include "stdio.h"void main( )double a,b,c,s,v;printf(Input a,b,c:\n);scanf("%d%d%d",a,b,c);s=a*b;v=a*b*c;printf("a=%d b=%d c=%d\n",a,b,c);printf("s=%f\n",s, "v=%d\n",v);}改完后:#include "stdio.h"void main( ){float a,b,c,s,v;printf("Input a,b,c:\n");scanf("%f%f%f",&a,&b,&c);s=a*b;v=a*b*c;printf("%f% f% f\n",a,b,c);printf("%f %f\n",s,v);}4.#include "stdio.h"void main()13{char c1, c2;c1 = 'a';c2 = ‘b’;printf (‚%c %c\n‛, c1, c2);}运行结果:a b5.#include "stdio.h"void main(){int i,j,m,n;i = 8;j = 10;m = ++i;n = j++;printf(“%d,%d,%d,%d”, i, j, m, n);}结果:9,11,9,106.编程题。
c语言 实验报告11 12
实验十一字符指针和动态内存分配实验目的:1、掌握字符指针及字符串操作函数的使用方法。
2、掌握在程序中使用动态内存分配的方法。
实验内容:1、编写程序,从键盘输入n个整数,然后从键盘输入n个单词(假定输入所有单词都由小写英文字母组成),将这n个单词按字典顺序排序后输出。
2、先输入一个正整数n,再输入任意n个整数,将这n个整数逆序排列后输出,要求使用动态内存分配方法为这n个整数分配空间。
实验1、算法思想:先建立一个二维数组,将单词赋值给该数组,运用strcmp将单词进行大小比较,最后输出。
程序清单:#include<stdio.h>#include<string.h>int main(void){int i,j,k,n;char a[80],str[10][80];printf("请输入单词个个数n:");scanf("%d",&n);getchar();printf("请输入%d个单词:\n",n);for(i=0;i<n;i++)gets(str[i]);for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++){if(strcmp(str[k],str[j])>0)k=j;}strcpy(a,str[i]);strcpy(str[i],str[k]);strcpy(str[k],a);}printf("按字典顺序排序后的结果为:\n");for(i=0;i<n;i++)puts(str[i]);return 0;}测试数据与实验结果:原始数据:n=3,d h a,相应的运算结果:a d h分析与思考:strcmp(str[k],str[j])>0指前者比后者大。
实验2、算法思想:先定义指针,将第一个作为最大值和最小值,再用指针与其他进行比较,排序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 《C语言程序设计》 实验指导书
安徽工业职业技术学院 信息工程系应用教研室 2
实验一 C语言基础与顺序结构程序设计 一. 实验目的:
1. 初步了解C程序的基本结构。
2. 逐步熟悉VC++6.0的编译环境。
3. 掌握一个简单C程序的编辑、编译过程;能够处理编译过程中的一些简单错误。
4. 掌握基本类型变量的定义和各类常量的表示形式。
5. 掌握基本类型数据的输入与输出的实现。
6. 理解并掌握顺序结构程序设计的方法。
二. 实验内容:
1. 编写程序,计算一个长方形的周长与面积。
编写程序,计算数学#include int main() { int l,w,c,s; printf("请输入长和宽"); scanf("%d%d",&l,&w); c=(l+w)*2; s=l*w; printf("周长:%d,面积:%d",c,s); }
2. 表达式mnn2的值,其中民n和m的值由键盘输入。
#include int main() { float m,n,y; printf("请输入两个数:"); scanf("%f%f",&m,&n); 3
y=2*n/(m+n); printf("表达式的值为:%f",y); }
3. 编写程序,实现从键盘输入一个小写字母,输出该字母及对应的ASCII值,然后将该字
母转换成大写字母,并输出大写字母及对应的ASCII值。 #include int main() { char ch; printf("请输入一个小写字母:"); scanf("%c",&ch); printf("该字母为:%c,\n该字母的ASCLL值为:%d",ch,ch); ch=ch-32; printf("对应的大写字母为:%c,\n该大写字母的ASCLL值为:%d",ch,ch); }
4. 编写程序,实现输入一个三位数,依次求出该数的百位、十位、个位数字并输出。
#include int main() { int x,a,b,c,d; 4
printf("请输入一个三位数:"); scanf("%d",&x); a=x%10;b=x/10;c=b/10;d=b%10; printf("这个数的个位、十位、百位数字分别为%d、%d、%d\n",a,d,c); } 5 实验二 分支(选择)结构程序设计(一) 一. 实验目的:
1. 掌握运用if语句实现单分支的算法;
2. 掌握运用if_else语句实现双分支的算法
3. 学习调试程序的方法与步骤。
二. 实验内容:
1. 编程实现,判断用户输入的一个整数是奇数还是偶数,输出判断结果。
#include int main() { int x; printf("请输入一个整数:"); scanf("%d",&x); if(x%2==0) printf("这个数是偶数!"); else printf("这个数是奇数!"); }
2. 根据销售员一个月的销售额提成。如果销售额为两万元以上,则提成销售额的3%,否则,
仅提成500元。假设某销售员的基础工资为1500元,输入该销售员一个月的销售额,输出他的实际工资。 #include 6
int main() { float gz,xse; printf("请输入销售员一个月的销售额:"); scanf("%f",&xse); if(xse>=20000) gz=1500+xse*0.03; else gz=1500+500; printf("该销售员的实际工资为:%.2f",gz); }
3. 输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母;如果不是,不
转换。然后输出最后得到的字符。 #include int main() { char ch; printf("请输入一个字符:"); ch=getchar(); if(ch>='A'&&ch<='B') ch=ch+32; printf("%c",ch); } 7 8
实验三 分支(选择)结构程序设计(二) 三. 实验目的:
1. 熟练掌握if语句的用法;
2. 会用switch语句处理多分支选择结构的问题;
3. 学习调试程序的方法与步骤。
四. 实验内容:
1. 编写程序,实现用户输入一个年份,判断其是否是闰年并输出判断结果。
闰年的条件: 1) 能被4整除,但不能被100整除的年份; 能被100整除,又能被400整除的年份; #include int main() { int y=0; printf("请输入一个年份:"); scanf("%d",&y); if(y%400==0||y%4==0&&y%100!=0) printf("是闰年!"); else printf("是平年!"); } 9
2. 设计程序计算下列分段函数的函数值。其中变量x由键盘输入,计算y的值并输出。
#include int main() { float x;int y; printf("请输入x的值:"); scanf("%f",&x); if(x<-1) y=0; else if(x<=1) y=1; else y=10; printf("y=%d",y); }
)1(10)11(1)1(0xxxy 10 3. 某银行的存款利率如下:1年期利率是1.2%,2年期利率是1.75%,3年期利率是2.5%,
5年期利率是3.17%。编写程序,实现从键盘输入存款数及存款时间,计算到期存款利息。 #include int main() { float bj,lx;int x; printf("请输入存款数:"); scanf("%f",&bj); printf("请输入存款时间:"); scanf("%d",&x); switch(x) { case 1:lx=bj*0.012*x;break; case 2:lx=bj*0.0175*x;break; case 3:lx=bj*0.025*x;break; case 5:lx=bj*0.0317*x;break; default:printf("输入错误!");break; } printf("利息为:%.2f",lx); } 11 4. 用条件运算符求三个整数中的最大数。
#include int main() { int a,b,c,m; printf("请输入三个整数:"); 12
scanf("%d%d%d",&a,&b,&c); m=a>b?a:b; m=m>c?m:c; printf("这三个整数中的最大数是%d",m); }
实验五 循环结构程序设计 一. 实验目的:
1. 学会设计循环结构的程序。
2. 通过实验加深对while语句、do-while语句、for语句的理解。
3. 能根据循环要求选择while语句、do-while语句、for语句来实现循环。
二. 实验内容:
1. 分别用三种循环结构实现求1到20的平方和。
#include int main() { int i,sum=0; for(i=1;i<=20;i++) sum=sum+i*i; printf("1~20的平方和为%d",sum); } 13
#include int main() { int i=1,sum=0; while(i<=20) { sum=sum+i*i; i++; } printf("1~20的平方和为%d",sum); }
#include int main() { int i=0,sum=0; do{ i++; sum=sum+i*i; }while(i<20); printf("1~20的平方和为%d",sum); }