C语言程序设计实验指导书
更新时间:2024-05-31 13:01:01 阅读量: 综合文库 文档下载
青岛科技大学 信息科学技术学院
C语言程序设计
实验指导书
目录
实验1 C语言入门及选择结构 ....................................................................................................... 1
实验1.1 Visual C++6.0开发环境............................................................................................ 1 实验1.2 C程序快速入门 ........................................................................................................ 8 实验1.3算术运算与赋值运算 .............................................................................................. 12 实验1.4逻辑运算及if语句 ................................................................................................. 18 实验1.5 switch选择结构 ...................................................................................................... 24 实验2循环结构及数组(共8学时) ......................................................................................... 28
实验2.1 循环结构(2学时) .............................................................................................. 28 循环结构程序设计补充 ................................................................................................................. 33
实验2.2数组一:一维数组 .................................................................................................. 37 实验2.3数组二:二维数组 .................................................................................................. 44 实验2.4数组三:字符数组 .................................................................................................. 46 实验3:函数与自定义数据类型 .................................................................................................. 50
实验3.1函数一:函数的定义、调用和声明 ...................................................................... 50 实验3.2函数二:函数的参数传递2 ................................................................................... 56 实验3.3函数三:函数的嵌套和递归2 ............................................................................... 58 实验3.4 自定义数据类型(2学时) .................................................................................. 60 实验4:指针(共6学时) .......................................................................................................... 62
实验4.1指针一:指针的定义及运算 .................................................................................. 62 实验4.2指针二:指向数组的指针 ...................................................................................... 68 实验4.3指针三:用指针操作字符串2 ............................................................................... 72
第 II 页
信息科学技术学院《C语言程序设计》实验指导书
实验1 C语言入门及选择结构
实验1.1 Visual C++6.0开发环境
一、实验目的
1. 熟悉C语言的系统环境,掌握在集成环境中编辑、编译、连接和运行C语言程序的方法。
2. 掌握C语言源程序的结构特点与书写规范。 二、实验学时数
2学时
三、实验步骤及任务 (一) VC++6.0集成环境
(1)运行VC++6.0
a.双击桌面上的VC++6.0快捷方式,运行VC++6.0。
b.双击\.EXE\,运行VC++6.0。 (2)认识VC++6.0 菜单栏 工作空间 标题栏的左侧显示当前的文件名,右侧有最小化,最大化和关闭三个按钮。 菜单栏包含了开发环境中几乎所有的命令,其中一些常用的命令还被排列在工具栏中。
工具栏上的按钮提出和一些菜单命令相对应,提供了经常使用的命令的一种快捷方式。
第 1 页
标准按钮 执行 组建 编译 输出 信息科学技术学院《C语言程序设计》实验指导书
项目工作区窗口包含有Class View和File View两个页面。
(3)建立C语言源文件,单击[文件]-[新建],单击[文件]选项卡,新建一个C++ Source File,选择存储位置(新建建立的文件夹D:\\test),输入文件名“myhello.c”,进入D:\\test,可以看到新建的文件myhello.c。
(4)输入C语言源程序,在打开的程序编辑窗口输入C语言源程序。
输入C语言源程序 第 2 页
信息科学技术学院《C语言程序设计》实验指导书
(5)编译
点击[组建]-[编译],或按ctrl+F7进行预编译,或用工具栏工具编译,编译成功生成.obj目标文件(myhello.obj),显示在输出窗口。
(6)连接
点击[组建]-[编译]命令,或按F7,或点按连接按钮执行连接操作。连接成功生成扩展名为.exe的文件。
(7)执行
点击[组建]-[执行]命令,或按ctrl+F5,或点按执行按钮完成“执行”操作。
完成后界面如下,到目前为止一个简单的C程序创建成功。
连接结果 连接工具 编译结果 编译工具 第 3 页
信息科学技术学院《C语言程序设计》实验指导书
(8)关闭工作空间
程序运行结束后,如果想输入一个新程序,我们需要将当前的程序关闭,选择菜单栏中的“文件”→“关闭工作空间”即可。
(9)常用功能键及其意义
为了使程序员能够方便快捷地完成程序开发,开发环境提供了大量快捷方式来简化一些常用操作的步骤。键盘操作直接、简单,而且非常方便,因而程序员非常喜欢采用键盘命令来控制操作。下面是一些最常用的功能键,希望在实验中逐步掌握。
操作类型 文件操作 编辑操作 功能键 对应菜单 Ctrl+N Ctrl+O Ctrl+S Ctrl+X Ctrl+C Ctrl+V Ctrl+Z Ctrl+Y Ctrl+A Del File|New File|Open File|Save Edit|Cut Edit|Copy Edit|Paste Edit|Undo Edit|Redo Edit|Select All Edit|Del 含义 创建新的文件、项目等 打开项目、文件等 保存当前文件 剪切 复制 粘贴 撤消上一个操作 重复上一个操作 全选 删除光标后面的一个字符 执行工具 结果输出窗体 建立程序操作 Ctrl+F7 Build| Compiler current file 编 译当前源文件 Ctrl+F5 Build|Run exe F7 Build|Build exe 运行当前项目 建立可执行程序 第 4 页
信息科学技术学院《C语言程序设计》实验指导书
调试 F5 F5 F11 Build|Start Debugging Debug|Go Debug|Step into 启动调试程序 继续运行 进入函数体内部 从函数体内部运行出来 执行一行语句 设置/清除断点 运行到光标所在位置 快速查看变量或表达式的值 停止调试 shift+F11 Debug|Step out F10 F9 Debug|Step over Ctrl+F10 Debug|Run to cursor shift+F9 Debug|QuickWatch Shift + F5 Debug|Stop debugging 要求:请用最简单的语言描述如何新建一个C语言的源文件,如何编辑程序,如何编译程序,如何连接程序,如何运行程序,程序结果然后显示?
(二)阅读程序
要求:编辑下面源程序,并且读懂与分析运行程序,上机运行程序,并与分析结果相对比。
1. 输入并运行以下程序,观察运行结果。(sy1.1.1.c) # include
{ printf(\ printf(\ Hello world!\\n\
printf(\ return 0; }
分析结果 运行结果 思考:如何采用一个输出(printf)函数调用实现此输出结果。
2.输入并运行以下程序,观察运行结果。 (sy1.1.2.c) # include
{ int a,b,sum,minus; a=456;b=123;
第 5 页
信息科学技术学院《C语言程序设计》实验指导书
sum=a+b; minus=a-b;
printf(\ return 0; } 分析结果 运行结果 printf中删除a+b=和a-b= printf中删除第一个\\n printf中删除a+b=和a-b= printf中删除第一个\\n 输出结果: 输出结果: 输出结果: 输出结果: (三)完成程序 要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。
1.求(a-b)×c的值。(设a=33,b=22,c=11)(sy1.1.3.c) # include
printf(\return 0; }
2.求圆的面积。(sy1.1.4.c) #include
float r,area;
printf(\scanf(\area=PI*r*r;
printf(\, ); return 0; }
(四)调试程序
要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。(sy1.1.5.c)
第 6 页
信息科学技术学院《C语言程序设计》实验指导书
行号 #include
4. printf(\,%d,%d\\n\ 5. return 0; 6. } 错 错误在 行 应改为: 调试正确后的运行结果 输出结果: (五)编写程序 1.请用C程序告诉大家你来自哪里? 有什么爱好?(sy1.1.6.c) 2.输出以下图案: (sy1.1.7.c) * **
***
(六)分析与讨论
1.记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论对策成功或失败的原因。
2.总结C程序的结构和书写规则。
第 7 页
信息科学技术学院《C语言程序设计》实验指导书
实验1.2 C程序快速入门
一、实验目的
1.掌握标识符、变量与常量的定义; 2.掌握C语言数据类型的种类和作用;
3.熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符;
4.掌握不同的类型数据之间赋值的规律; 5.掌握输出、输入函数的使用及格式控制;
6.进一步熟悉C程序语句和程序的结构特点,学习简单程序的编写方法。 二、实验学时数
2学时 三、实验步骤 (一)阅读程序
1. 输入并运行以下程序,观察运行结果。 #include
printf(\ return 0;
}
(1)在第五行后面加入以下printf语句,并运行。
printf(\
字符型97,98对应a,b 分析结果 a 运行结果 b (2)在(1)的基础上,将第三行改为以下语句,并运行。 int c1,c2;
分析结果 第 8 页
信息科学技术学院《C语言程序设计》实验指导书
仍为a,b 运行结果 若改为%d,则为97,98 (3)在(1)的基础上,将第四行改为以下语句,并运行。 c1=321;c2=400;
分析结果 A,? 运行结果 2. 分析并运行此程序,当输入的数据为10时,下面程序的运行结果。 #include
printf(\ printf(\
printf(\ return 0; }
分析结果 2.4*x-1/2=23.500000 x%%2/5-x=-10.000000 (x-=x*10,x/=10)=0 运行结果 (二)完成程序 要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。
1.求任意输入字符的ASCⅡ码。 #include
int b;//变量的定义
printf(“请输入一个字符:”); scanf(“%c”,&a); b=(int)a;
第 9 页
信息科学技术学院《C语言程序设计》实验指导书
printf(“\\n\\n%c的ASCⅡ码为%d\\n”,a,b); return 0; }
2、输出任意一个十进制数对应的八进制,十六进制数。 #include
scanf(“%d”,&a);
printf(“\\n%d(10) ,%o(8), %x(16)\\n”,a,a,a); return 0; }
(三)调试程序
要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。
1.行号 #include
3 printf(“u=%d,v=%d\\n”,u,v); 4 return 0; 5 }
错 错误在 1 行 应改为: 调试正确后的运行结果 输出结果: 2.下面的程序试图计算由键盘输入的任意两个整数的平均值: 行号 #include
int main() {
int x,y,a;
scanf(\a=(x+y)/2;
printf(\
7 return 0; 8 }
第 10 页
信息科学技术学院《C语言程序设计》实验指导书
错 错误在 行 应改为: 调试正确后的运行结果 输入数据 2,6 1,4 -1,-3 -2,4 2,0 输出结果: (四)编写程序 1. 编写一个程序,从键盘输入某电视机的价格,再输出该价格打7折后的价格。
分析:必须设计一个实型变量接受从键盘输入的值,输入、输出应该有提示。#include
double a,b;
printf(\电视机的价格:\ scanf(\ b=0.7*a;
printf(\打折后的价格:%lf\ return 0; }
2. 编写一个程序, 求一元一次方程ax+b=0的根。
分析:a、b的值从键盘输入,输入时a的值不能为0(无解),方程的根即x的值为:-b/a
第 11 页
信息科学技术学院《C语言程序设计》实验指导书
实验1.3算术运算与赋值运算
一、实验目的
1.掌握算术运算符和算术表达式。
2.熟练掌握赋值运算符、复合的赋值运算符 3.熟练掌握自增1和自减1运算符。
4.熟练掌握顺序结构的程序设计,能够编写简单的应用程序。 二、实验学时数
2学时 三、实验步骤 (一)分析程序
1.分析以下程序运行的结果 #include
int i,j,m,n ;
i=8;j=10; m=++i; n=j++;
printf(\
return 0; }
分析结果 运行结果 (2)将第6、7行改为:m=i++; n=++j;
分析结果 运行结果 (3)程序改为: #include
{ int i , j , m=0 , n=0 ;
i=8; j=10;
第 12 页
信息科学技术学院《C语言程序设计》实验指导书
}
m+=i++; n-=--j;
printf(“%d,%d,%d,%d\\n”,i,j,m,n);
return 0;
分析结果 运行结果 1. 输入并运行以下程序,观察运行结果。 #include
float u=1234.567;
printf(\ printf(\ return 0; }
分析结果 运行结果 2. 输入并运行以下程序,观察运行结果。 #include
printf(“x=%d,y=%d\\n”,x,y);
return 0; }
分析结果 运行结果 3.阅读以下程序,若输入的数据形式为25 13 10,输出结果为:
第 13 页
信息科学技术学院《C语言程序设计》实验指导书
#include
scanf(\
printf(\return 0; }
分析结果 运行结果 (二)完成程序
要求:按照给定题目要求,参照出现的语句,填写程序空白处。 1. 键盘输入任意一个小写字母,将其转换成大写字母,然后输出。 #include
putchar('\\n');putchar('\\'' );putchar(c2); putchar('\\'' ); return 0; }
(a?b)?4a?b的值。2. 求(设a=25,b=5)
#include
c= ; printf(\ return 0; }
(三)调试程序
要求:分析下列程序是否正确,如有错误,指出错误所在,并改正;若正确,写出运行结果。
第 14 页
信息科学技术学院《C语言程序设计》实验指导书
1. 行号 #include
1 int main( ) 2 { int i,k; 3 i=8; 4 k=5*I*I;
5 printf(\6 return 0; 7 } 错 错误在 行 应改为: 调试正确后的运行结果
2.该程序输入一个三位数,然后进行个位和百位的置换,如 234 ,转换成432 行号 #include
int main( ) { int n,a,b,c,m;
scanf(\a=n;
b=(n/10); c=(n/100); m=100*a+10*b+c;
printf(\
9 return 0; 10 } 错 错误在 行 应改为: 调试正确后的运行结果
(四)编写程序
1.编程求出某学生期末三门课程的总分及平均分。结果保留小数点后一位。 2.编程从键盘输入两个整数分别给变量a和b,分别写出不借助于其他变量和借助于其他变量的条件下,将变量a和b的值实现交换。
1.编写一个程序,其功能为:从键盘上输入一个浮点数,然后分别输出该数
第 15 页
信息科学技术学院《C语言程序设计》实验指导书
的整数部分和小数部分。
分析:若输入的浮点数存入fd变量,则可用强制类型转换运算符,将输入的该数的整数部分取出:zhs=(int)fd;
2. 从键盘输入三角形的三条边a,b,c的值,计算三角形的面积,程序框架如下:
#include “sdtio.h” #include “math.h” main() {定义变量
从键盘输入 a,b,c 三条边的值 计算 s 的值 计算三角形面积 输出结果 }
第 16 页
信息科学技术学院《C语言程序设计》实验指导书
1.编程序计算数学表达式:b2 -4ac,a,b,c的值从键盘输入。 2. 编程序计算298秒是几分几秒。
提示:设 int x=298; 再定义两个变量存放分(m)、秒(s)值; 则:m=x/60;s=x`;
3.从键盘输入一个三位数,求各位数字之和。例如,输入的三位数为358,则输出结果为3+5+8=16 。
提示: 题目的关键是要求出该数的个、十、百位上的数字,可利用C语言整数相除,结果仍为整数的特点。若设该数为data,它的个、十、百位为g、s、b,则b=data/100 ;s=(data-b*100)/10;g=data (三)编写程序
1.用赋值语句表达:a 的值为2,b的值比a多2,c 的值比b的值多2,并输出a,b,c的结果。请编出完整程序验证。
2.假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请先填空,再编出完整程序验证。
a+=_________;(a为a、b之和) b=a-__________;a-=___________;
第 17 页
信息科学技术学院《C语言程序设计》实验指导书
实验1.4逻辑运算及if语句
一、实验目的
1.掌握关系、条件、逻辑运算符及关系、条件、逻辑表达式。 2.掌握逗号运算符和逗号表达式。
3.熟练掌握三种单分支、双分支和多分支if语句。 4.掌握if语句的嵌套。 二、实验学时数
2学时 三、实验步骤 (一)阅读程序 1.分析程序运行结果: #include
{ int i , j , m=0 , n=0 ; }
分析结果 运行结果 i=8; j=10; m+=i++; n-=--j;
printf(“%d,%d, \\n”,(i,j,m),n);
return 0;
2. 输入并运行以下程序,观察运行结果。 #include
int x=10,y=9,a,b,c; a=(--x==y++)?--x:++y; b=x++; c=y;
printf(\return 0; }
第 18 页
信息科学技术学院《C语言程序设计》实验指导书
分析结果 运行结果 3、若x=12,则以下程序运行的结果是 #include
scanf(\y=x>12?x+10:x-12; printf(\return 0; }
分析结果 运行结果 三、实验步骤 (一)阅读程序
1. 输入并运行以下程序,观察运行结果。 #include
分析结果 运行结果 a=10;b=60;c=30; if(a>b) a=b; b=c; c=a;
printf(\
return 0;
2. 输入并运行以下程序,观察运行结果。 #include
第 19 页
信息科学技术学院《C语言程序设计》实验指导书
{ int x=60,a=30,b=20; int v1=3,v2=8; if (a
if (b!=15)
if (!v1) x=1; else
if (v2) x=10;
x=-2;
printf(“%d\\n”, x); return 0; }
分析结果 运行结果 (二)完成程序
要求:按照给定题目要求,参照出现的语句,填写程序空白处。
1. 输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其他字符不变,请在_______上填写正确内容。
#include
if (_______________________)ch=ch+32;
else if (ch>='a' && ch<='z' ) ____________________; printf(\ return 0; }
2. 以下程序根据输入的三角形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型,请在_______上填写正确内容。 #include
{ float a, b , c ;
第 20 页
信息科学技术学院《C语言程序设计》实验指导书
float s , area ;
scanf(“%f ,%f ,%f” , &a, &b ,&c); if (___________________________) { s=(a+b+c)/2;
area= sqrt(s*(s-a)*(s-b)*(s-c)); printf(“三角形的面积为:%f\\n”,area); if (_________________) }
printf(“等边三角形\\n”); printf(“等腰三角形\\n”); printf(“直角三角形\\n”);
else printf(“一般三角形\\n”);
else if (_________________)
else if((a*a+b*b==c*c)|| (a*a+c*c==b*b)|| (c*c+b*b==a*a))
else printf(“不能组成三角形\\n”); return 0; }
(三)调试程序
要求:分析下列程序是否正确,如有错误,指出错误所在,并改正;若正确,写出运行结果。
1. 以下程序实现求分段函数。 y= -1 x>9 x*(x+2) 3
int x ,y ; scanf(“%d”,&x); if (3 printf(“%d\\n”, y); return 0; 第 21 页 信息科学技术学院《C语言程序设计》实验指导书 9 } 错 错误在 行 应改为: 调试正确后的运行结果 输入数据:4 2 1 -3 10 输出结果: 2. 有一函数关系如下: x-3 x<0 y= 0 x=0 x+3 x>0 以下程序表示上面的函数关系 行号#include int main() 1 { int x ,y ; 2 scanf(\3 y=x-3; 4 if (x!=0) 5 if (x>0) y=x+3; 6 else y=x; 7 printf(\8 return 0; 9 } 错 错误在 行 应改为: 调试正确后的运行结果 输入数据:5 0 -3 输出结果: (四)编写程序 1. 输入某学生的成绩(成绩为100分制,可以为89.5,如果输入的成绩不在0-100之间,请给出出错提示。),经处理后给出学生的等级,等级分类如下: 90分以上(包括90): A 80至90分(包括80):B 70至80分(包括70):C 第 22 页 信息科学技术学院《C语言程序设计》实验指导书 60至70分(包括60):D 60分以下: E 2.输入一个三位的正整数,判断该数是否为水仙花数。(水仙花数的是指一个三位数,其各位数字的立方各等于该数本身。例如:153是一个水仙花数,因为153=1^3+5^3+3^3) 1.某邮局对邮寄包裹有如下规定:若包裹的长宽高任一尺寸超过1米或重量超过30千克,不予邮寄;对可以邮寄的包裹每件收取手续费0.5元,再加上根据下表按重量weight计算的邮资,请编写程序计算某包裹的邮寄资费。 2. 输入一个正整数n,再输入n个学生的成绩,计算平均分,并统计不及格成绩的个数。 第 23 页 信息科学技术学院《C语言程序设计》实验指导书 实验1.5 switch选择结构 一、实验目的 1.熟练掌握switch语句。 2.掌握省略break的case语句的执行方式。 3.比较if语句的嵌套及if、switch多路分支语句。 二、实验学时数 2学时 三、实验步骤 (一)阅读程序 1. 输入并运行以下程序,观察运行结果。 #include switch(i) { case 1:printf(\case 2:printf(\case 3:printf(\case 4:printf(\} printf(\return 0; } 分析结果 运行结果 (二)完成程序 要求:按照给定题目要求,参照出现的语句,填写程序空白处。 1. 以下程序实现的功能是: -1 x<0,请将以下程序补充完整 y= 0 x=0 1 x>0 #include { int x,y;scanf(“%d”,&x); 第 24 页 信息科学技术学院《C语言程序设计》实验指导书 switch(x<0) {case 1: ;break; case 0:switch(x==0) { case 1;y=0;break; case 0:y=1; } } printf(“y=%d\\n”,y); return 0; } 2.用switch结构编写一个处理四则运算的程序。 #include { float v1,v2;char op; printf(“please type your expression:\\n”); scanf(“%f%c%f”,&v1,&op,&v2); switch( ) {case ‘+’:printf(“%1.0f+%1.0f=%1.0f\\n”,v1,v2,v1+v2);break; case ‘ ’:printf(“%1.0f-%1.0f=%1.0f\\n”,v1,v2,v1-v2); break; case ‘*’:printf(“%1.0f*%1.0f=%1.0f\\n”,v1,v2,v1*v2); break; case ‘/’: if( ){printf(“除数为零\\n”);break;} else {printf(“%1.0f/%1.0f=%1.0f\\n”,v1,v2,v1/v2);break;} default:printf(“运算符错误\\n”); } return 0; } 3.输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以3 月5 日为例,应该先把前两个月的加起来,然后再加上5 天即本年的第几天,特殊情况,闰年且输入月份大于3 时需考虑多加一天。 #include { int day,month,year,sum,leap; printf(\scanf(\ 第 25 页 信息科学技术学院《C语言程序设计》实验指导书 switch(month)/*先计算某月以前月份的总天数*/ { case 1:________;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; default:printf(\} sum=sum+day; /*再加上某天的天数*/ if(year@0==0||(_______________))/*判断是不是闰年*/ leap=1; else leap=0; if(______________________)/*如果是闰年且月份大于2,总天数应该加一天*/ _____________; printf(\ \\n \return 0; } (三)编写程序 1. 以下4种水果([1]苹果[2]梨[3]桔子[4]芒果)单价分别是2.0元/公斤,2.5元/公斤,3.0元/公斤,4.5元/公斤,请输入水果编号、重量,计算应付款。 2.从键盘输入1-7,显示输出该日期对应的英文日期 (Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,sunday)名称。 3.己知某公司员工的保底薪水为500,某月所接工程的利润p与利润提成的关系如下:(计量单位:元)(选作) p<=1000 没有提成 1000 提成15% 5000 第 26 页 信息科学技术学院《C语言程序设计》实验指导书 1.编写程序实现运输公司对用户计算运费。路程(s)越远,每公里运费越低。 2.考虑一个自动售货机,提供如下选择: [1]矿泉水 [2]巧克力 [3]爆米花 [4] 果汁 [5] 显示购买商品的数量 [6] 退出系统 第 27 页 信息科学技术学院《C语言程序设计》实验指导书 实验2循环结构及数组(共8学时) 实验2.1 循环结构(2学时) 2.1.1 while循环和do…while循环及二者比较 2.1.2 for循环 2.1.3循环嵌套 一、实验目的 1. 掌握while ,do-while,for 循环语句的使用与区别; 2. 掌握循环条件、循环体、循环终止等循环要素; 4. 理解循环执行过程。 5. 熟练使用循环语句编写程序。 二、实验学时数 2学时 三、实验步骤 (一)阅读程序 1. #include b-=a ; a++ ; printf(“a=%d,b=%d\\n”,a,b); } 分析结果 运行结果 return 0; 2. #include { int x=2 ,y=6 , z=3; do while(z-->0&&++x<5) ; 第 28 页 y=y-1; 信息科学技术学院《C语言程序设计》实验指导书 printf(“x=%d\\ty=%d\\tz=%d\\n”,x,y,z); return 0; } 分析结果 运行结果 3. #include int main() { int n=0; while(n<=2) { n++; printf(\return 0; } 分析结果 运行结果 (二)完成程序 要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。 1. 以下程序的功能是计算正整数2345的各位数字平方和,请在_______ 上填写正确内容。 #include int main() n=2345; do { sum = sum + ____________; ______________________; } while( n) ; printf(\return 0; } 2. 以下程序的功能是计算S=2+4+8+16+?+128,请在______上填写正确内容。 第 29 页 { int n,sum= 0 ; 信息科学技术学院《C语言程序设计》实验指导书 #inlcude int main() { int a, s,n ,count ; a=2 ,s=0 , n=1 ,count=1; while(count<=7) { _____________; s = s + n ; _____________;} printf(“s = %d\\n”,s ); return 0; } (三)调试程序 要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。 1. 以下程序输出100(包括100)以内的数,每行输出10个。 行号 #include int main() 1 { int k=100; 2 3 4 6 while(k=0) { printf( \ } k--; if (k==0)printf(\ 5 7 return 0; 8 } 错 错误在 5 行 应改为: if (k>0)printf(\ 2.下面程序的功能是计算n!。 行号 #include int main() { int i,n,s=1; printf(\ scanf(\ for(i=1;i<=n;i++) 第 30 页 信息科学技术学院《C语言程序设计》实验指导书 6 7 8 9 错 s=s*i; printf(\ return 0; } 错误在 行 应改为: 调试正确后的运行结果 输入数据: 1 5 9 12 15 输出结果: 3. 以下程序输出1---100的数字 行号 #include int main() 1 { int i =100; 2 3 5 6 7 8 9 while( 1 ) { } return 0; 错 错误在 行 应改为: i = i0+1 ; printf( “ M ,“ ,i ) ; if ( i==0 ) printf ( “ \\n ”) ; if ( i>100) break ; 10 } (四)编写程序 1.小明妈妈给他买了若干块巧克力,小明第一天吃了一半,还不过瘾,又多吃了一块,第二天又将剩下的巧克力吃掉一半,又多吃一块,以后每天都吃了前一天剩下的一半零一块。到第10天再想吃时,只剩下一块了。编程计算小明妈妈总共给小明买了多少块巧克力? 2. 一百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,该计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天我仍给你十万元,你给我二分钱,第三天我仍给你十万元,你给我四分钱,…,你每天给我的钱是前一天的两倍,直到满一月(30天) ,百万富翁很高兴,欣然接受了这个契约。请编写一个程序计算这一个月中陌生人给了百万富翁多少钱?百万富翁给陌生人 第 31 页 信息科学技术学院《C语言程序设计》实验指导书 多少钱? While实现: 1.译密码。为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。可以按以下的规律将电文变成密码:将字母A变成字母E,a变成e,即变成其后的第4个字母,W变成A,X变成B,Y变成C,Z变成D。字母按上述规律转换,非字母字符不变。 2.计算1~20之间的奇数之和和偶数之和。 do…while循环实现 1.日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想,猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘以3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1,请编程验证。 2.统计一个整数的位数。从键盘输入一个整数,统计该数的位数。例如,输入12345,输出5;输入-99,输出2。 For循环实现 1.马克思手稿里有一道有趣的数学问题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50先令:每个男人花3先令,每个女人花2先令,每个小孩花1先令,问男人、女人和小孩各有几人? 2.有一对兔子,从出生后第三个月起每个月都生一对小兔子,小兔子长到第三个月后每月又生一对小兔子,假如兔子都不死,问20个月内每个月的兔子总数为多少? 3.输入一批学生的成绩,找出最高分。 循环嵌套 1.计算1!+2!+3!+…+100!。要求使用嵌套循环。 2. 三对情侣参加婚礼,三个新郎为A,B,C,三个新娘为X,Y,Z,有人不知道谁和谁结婚,于是询问了六位新人中的三位,但听到的回答是这样的:A说他将和X结婚;X说他的未婚夫是C;C说他将和Z结婚,这人听后知道他们在开玩笑,全是假话,请编程找出谁将和谁结婚。 第 32 页 信息科学技术学院《C语言程序设计》实验指导书 循环结构程序设计补充 (一)阅读程序 1. #include int main( ) {int a=0,j; for(j=0;j<4;j++) { switch( j ) { case 0: case 3:a+=2;break; case 1: case 2:a+=3;break;; default:a+=5;break; } } printf(\return 0; } 分析结果 运行结果 2. #include for(i=1;i<6;i++) { if(i%2) {printf(\ printf(\ } printf(\return 0; } 分析结果 运行结果 3. #include 第 33 页 信息科学技术学院《C语言程序设计》实验指导书 { int s=0,t,i,j; for(i=1;i<=3;i++) { t=1; for(j=1;j<=2*i-1;j++) t=t*j; s=s+t; } printf(\return 0; } 分析结果 运行结果 4.#include while(y--!=-1) { do { a*=y; a++; }while(y--); } printf(\return 0; } 分析结果 运行结果 (二)完成程序 要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。 1. 一个数如果恰好等于它的因子之和,这个数就称为完数。求100之内 的所有完数。请在_______上填写正确内容。 #include 第 34 页 信息科学技术学院《C语言程序设计》实验指导书 { int n,s,j; for(n=1;n<=____________;n++) { s=___________; for(j=1;j if(______________)printf(\} return 0; } 2. 以下程序的功能是打印以下图形,请在______上填写正确内容。 #include for(i=1; i<=4;i++) { for(j=1;j<=___________;j++) printf(\ for(j=1;j<=___________;j++) printf(\ printf(\} return 0; } 3. 以下程序功能是完成用10元人民币换成一角、两角、五角的所有兑换方案,请在_______上填写正确内容。 #include if (________________) { _________________; printf(\第%d种: = = =\ 第 35 页 信息科学技术学院《C语言程序设计》实验指导书 } return 0; if(n%3==0)printf (\ } } (三)编写程序 1.打印九九乘法表。格式:1*1=1 2. 每个苹果0.8元,第一天买2个,从第二天开始,每天买前一天的2倍,直到当天购买的苹果个数不超过100的最大值为止,编写程序求每天平均花多少钱。 第 36 页 信息科学技术学院《C语言程序设计》实验指导书 实验2.2数组一:一维数组 一、实验目的 1. 掌握一维数组的定义。 2. 掌握一维数组的引用 3. 掌握一维数组的初始化。 4.熟练对一维数组元素进行输入输出。 二、实验学时数 2学时 三、实验步骤 (一)阅读程序 1.#include int main() { int a[]={1,2,3,4,5},i,j,s=0; j = 1; for ( i = 4 ; i>=0 ; i--) { } printf(\ } 分析结果 运行结果 s = s+ a[i] * j ; j = j * 10 ; return 0; (二)完成程序 要求:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。 1.下面程序的功能是将十进制整数转换成二进制 ,请在_______上填写正确内容。 #include 第 37 页 信息科学技术学院《C语言程序设计》实验指导书 { int k=0,n,j,num[16]={0}; } 2、 设数组 a 的元素均为正整数,以下程序是求 a 中奇数的个数和奇数的平均值,请在_______上填写正确内容。 #include { int a[10]={10,9,8,7,6,5,4,3,2,1}; int k,s,i; float ave; for(i=0,k=s=0;i<10;i++) { if(_____________) continue ; s+=__________; k++; } if(k!=0) { ave=s/k; printf (\ } return 0; } (三)调试程序 要求:调试运行下列程序是否正确,若有错,写出错在何处?填写正确的运行结果。 1.以下程序实现的功能是输入四个数,求这四个数的和. #include 第 38 页 printf(\输入要转换的十进制数\\n\scanf(\do { num[k]=________________; n=n/2;________________; } while(n!=0); printf(\ printf (\转换为二进制数:\\n\ for(k=15;k>=0;k--) return 0;
正在阅读:
C语言程序设计实验指导书05-31
8月份工作计划03-28
2018年湖北医药学院成人教育招生简章03-08
世联-深圳御景湾营销策略报告08-30
2019春八年级道德与法治下册第二单元理解权利与义务检测10-14
第二章 化学反应速率和化学平衡05-28
CRTS III型板式无砟轨道毕业设计05-06
一元线性回归模型(习题与解答)07-24
加油站从业人员安全教育培训档案08-17
- 冀教版版五年级科学下册复习资料
- 微生物学复习提纲
- 2013—2014学年小学第二学期教研组工作总结
- 国有土地转让委托服务合同协议范本模板
- 我的固废说明书
- 企业管理诊断报告格式
- 东鼎雅苑施工组织设计
- 谈谈如何做好基层党支部书记工作
- 浮梁县环保局市级文明单位创建工作汇报
- 管理学基础知识
- 大学物理实验报告23 - PN结温度传感器特性1
- 计算机网络实践
- 酒桌上这四种情况下要坐牢,千万别不当回事……
- 国家康居示范工程建设技术要点
- 中国贴布行业市场调查研究报告(目录) - 图文
- 新课标下如何在高中物理教学中培养学生的创新能力初探
- 营养师冬季养生食谱每日一练(7月4日)
- 关注江西2017年第3期药品质量公告
- 建设海绵城市专题习题汇总
- 10万吨年环保净水剂建设项目报告书(2).pdf - 图文
- 指导书
- 程序设计
- 语言
- 实验
- (函数专题(四))
- 拟表彰安全生产监管监察先进个人名单
- 年产1万吨高纯四氧化三锰工程项目可行性研究报告(150页
- 游戏规则的公平性 教学设计
- 2019湖南省高三历史下学期定时训练试题94
- C语言程序复习题及参考答案
- LABVIEW有很多优点
- 《电力系统分析》习题集及答案
- 布袋除尘操作规程
- 96分基于S7-200PLC的地铁排水控制系统毕业设计优秀论文
- 学生学习共同体建设研究开题报告
- 测试题一 平法识1
- 29 - 世界自然遗产、自然与文化双遗产申报和保护管理办法(试行
- 于吉人西综生理学—编书(2011-7-17) - 图文
- 机械制造基础习题集答案(含简答题)
- 郑州外贸现状及发展对策
- 件数单位代码
- 公司法综合习题一
- 语言学教程山东大学期末考试知识点复习
- 《教育学》试卷(2)