实验三数据类型和顺序结构程序设计(4学时)[实验任务一]:通过调试、分析程序运行结果,掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符;掌握各种运算符尤其是复合赋值运算符和除法及求余运算符。
程序分析实例3-1:输入、运行下面的程序,并分析、验证运行结果。并以文件名assignment.c最终保存在实验3文件夹里:(需要存盘)
【分析】程序运行结果为:
在此基础上,做以下改动:
(1)将程序第9~14行改为:
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;
运行程序,分析结果。
【分析】修改后程序运行结果为:
(2)在(1)的基础上将printf语句改为:
printf("a=%d,b=%d,c1=%c,c2=%c,d=%15.6f,e=%15.12f\n",a,b,c1,c2,d,e);
printf("f=%f,g=%f,m=%d\n",f,g,m);
printf("n=%d\n”,n);
printf(“p=%d,q=%d\n",p,q);
运行程序。
(3)将p, q改用%o格式符输出。注意是字母o而不是数字0。
(4)改用scanf函数输入数据而不用赋值语句,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, 3,157.890121, 0.123456789, 50000,-60000, 40000
(说明:lf,ld格式符分别用于输入double型和long型数据)分析运行结果。
(5)将scanf函数中的%lf和%ld改写为%f和%d,运行程序并观察分析结果。
程序分析实例3-2:分析每个输出语句的输出结果,输入以下程序验证分析结果。总结复合赋值运算的运算规则及其应用。(无需存盘)
【复合赋值运算的几点说明】
1)当表达式为简单表达式(如单一变量)时,表达式外的一对圆括号才可缺省,否则可能出错。
2)运算时要把整个表达式当作一个整体。
3)表达式的形式:可以是常量、简单变量、函数调用、运算表达式。
例如:x += 3 /*等价于x=x+3 */
y *= x + 6 /* 等价于y=y*(x+6),而不是y=y*x+6 ,要把x+6当做一个整体 */
程序分析实例3-3:分析以下程序的运行结果,通过该实例加深对运算符号/与%的理解。(无需存盘)
[实验任务二]:通过调试运行程序,掌握scanf( )和printf( )函数的使用方法。(需要存盘)
问题1 要使下面程序的输出语句在屏幕上显示1, 2, 34,则从键盘输入的数据格式应为以下备选答案中的。将以下程序以文件名scan0.c最终保存在实验3文件夹里。
#include
void main()
{
char a,b;
int c;
scanf("%c%c%d",&a,&b,&c);
printf("%c,%c,%d\n",a,b,c);
}
A)1 2 34 B)1, 2, 34
C)’1’,’2’,34D)12 34
问题2 在与上面程序的键盘输入相同的情况下,要使上面程序的输出语句在屏幕上显示1 2 34,则应修改程序中的哪条语句?怎样修改?将修改好的正确程序以文件名scan1.c最终保存在实验3文件夹里。问题3要使上面程序的键盘输入数据格式为1,2,34,输出语句在屏幕上显示的结果也为1,2,34,则应修改程序中的哪条语句?怎样修改?将修改好的正确程序以文件名scan2.c最终保存在实验3文件夹里。
问题4要使上面程序的键盘输入数据格式为1,2,34,而输出语句在屏幕上显示的结果为'1', '2',34,则应修改程序中的哪条语句?怎样修改?将修改好的正确程序以文件名scan3.c最终保存在实验3文件夹里。
[提示:利用转义字符输出字符单引号字符。]
问题5 要使上面程序的键盘输入无论用下面哪种格式输入数据,程序在屏幕上的输出结果都为'1', '2',34,则程序应修改程序中的哪条语句?怎样修改?将修改好的正确程序以文件名scan4.c最终保存在实验3文
件夹里。
第1种输入方式:1,2,34↙(以逗号作为分隔符)
第2种输入方式:1 2 34↙(以空格作为分隔符)
第3种输入方式:1 2 34↙(以Tab键作为分隔符)
第4种输入方式:1↙
2↙
34↙(以回车符作为分隔符)
【相关说明:】本题主要是考查学生对常用标准输入输出函数使用方法的熟练使用程度。函数getchar()和putchar()用于字符输入输出操作,而函数scanf()和函数printf()则用于格式输入输出操作,即在程序设计者的控制下,以各种格式进行任意类型数据的读写操作,其中,函数printf()是向屏幕写数据,函数scanf()是从键盘读数据。
函数printf()和scanf()对输入输出数据的格式控制问题(尤其是scanf()函数)较难掌握,需要读者在使用过程中去慢慢体会,初学者常常在使用scanf()函数时出错,要熟练%d、%f、%c、%s这四种格式符以及忽略输入修饰符*和宽度等附加格式说明符。
其中问题4可利用转义字符输出字符单引号字符。问题5可利用忽略输入修饰符*或者1s%解决。[实验任务三]:进一步熟悉C程序的集成开发环境VC++,掌握简单C程序的查错方法。
程序改错实例3-1:改错题。下列程序多处有错,请通过上机改正。使之符合下面的要求。并将修改好的正确程序以文件名correct1.c最终保存在实验3文件夹里。(需要存盘)
当本程序运行时,要求按如下方式显示和输入:
Input a,b,c:2.0 2.0 3.0 (此处的2.0 2.0 3.0 为用户输入的)
a=2.000000 b=2.000000 c=3.000000
s=4.000000 v=12.000000
【分析:】
①第5行printf函数应加双引号;
②将第6行scanf函数中的%d改为%lf(注意%和f之间是小写字母l,而不是数字1);
③scanf函数中变量a,b,c前应为“&”符号;
④将最后2行printf函数中所有%开头的格式规定符一律改为%lf。
⑤将最后一行printf函数改为正确的格式。
程序改错实例3-2:程序改错题。
认真阅读以下程序,找出程序中的错误并且要求修改错误。写出该程序的主要功能和程序的输出结果。将程序输入计算机中调试通过。要求记录下调试中的错误信息,解决方法和程序的输出结果。对比自己写出的程序输出结果和实际执行的程序结果有什么不同并分析原因。并将修改好的正确程序以文件名correct2.c最终保存在实验3文件夹里。(需要存盘)
【分析:】①第1行主函数main的m为小写;
②主函数的函数体应加花括号;
③scanf函数中变量y前应为“&”符号;
④后面3行结尾少了语句结束标记“;”号;
⑤应是先计算后输出,即最后两行交换。
程序改错实例3-3:改正以下程序的错误,同时将修改正确的程序进行存盘。(需要存盘)
将修改好的程序以文件名sin.c最终保存在实验3文件夹中。
提示:在调试该程序时会碰到以下错误信息提示,现解释如下:
①
中文含义依次描述如下:
sin.c第5行:警告错误:Scanf没有定义;假定外部返回整型;
sin.c第6行:警告错误:SIN没有定义;假定外部返回整型;
sin.c第6行:严重错误:没有声明’pi’标识符;
sin.c第7行:警告错误:Printf没有定义;假定外部返回整型;
修改方法:(1) 依次将没有定义的符号修改为 scanf、sin和printf。
(2) 因为pi是一个符号常量,应该在主函数前面进行宏定义,即#define pi 3.14
②通过以上两步修改,编译连接均成功,点击运行按钮,通过键盘键入数字90,此时会出现如下所示的提示框:
原因分析:出现这种错误提示框的原因是scanf()函数中的地址参量表前面没有加上地址符号&。
修改方法:将scanf()中的地址参量表d改成 &d
③修改完毕,运行时你会发现不管你输入什么整数值,其结果都是0.000000,显然这一结果是错误的,
为什么呢?原因就是1/2的值等于0,所以为了保证输出正确的结果,应该将其修改为1.0/2或1/2.0。
将修改好的程序以文件名Macro.c最终保存在实验3文件夹里。
提示:在调试该程序时会碰到以下错误信息提示,现解释如下:
macro.c(6) : error C2106: '=' : left operand must be l-value 赋值号左边的操作数必须是左值。
原因分析:由于宏定义#define PRICE 30的功能是将PRICE定义为一个符号常量,这也就是说本程序第6行赋值语句PRICE=PRICE*x;中赋值号左边是一个常量,不符合赋值语句要求赋值号左边必须是一个变量的要求,所以会产生以上错误信息提示。
修改方法:有多种,比方说你可以将PRICE=PRICE*x;语句修改为x=PRICE*x;
[实验任务四]:通过完善或编写简单的C语言程序,进一步熟悉C语言的语法结构。
编程练习3-1:用宏定义编程求解圆的周长和面积、球的体积和表面积、圆锥的体积、圆柱的体积。
可参照理论教材P40例3.1的代码进行编程。
要求:①半径和高的值均从键盘上任意输入(用scanf()函数实现);
②用printf()函数将计算结果输出,且输出时要有相关的英文文字说明,如“圆的周长”
对应的英文文字说明是:“the perimeter of the circle”,且小数点后保留两位有效数字。
③将编写好的程序以文件名area.c最终保存在实验3文件夹里。(需要存盘)
提示:①所谓宏定义就是 #define PI 3.14
②因为PI为3.14是小数,所以定义半径、高、圆的周长、圆的面积等变量时应将它们定义为float
类型;
③相应的中英文对应单词如下所示:
半径:radius 高:height 圆:circle 周长:perimeter 面积:area 球:ball
圆锥:cone 体积:volume 圆柱:column 表面积:superficial area
④本题中涉及到的公式列举如下:
圆的周长=2*PI*r 圆的面积=PI*r*r 球的体积=4.0/3*PI*r*r*r
球的表面积=4*PI*r*r 圆锥的体积=1.0/3*PI*r*r*h 圆柱的体积=PI*r*r*h
编程练习3-2:编程实现: 将小写字母的输入转换成大写字母的输出。(例如,从键盘上输入的字母为a,则输出的字母为A)。将编写好的程序以文件名change.c最终保存在实验3文件夹里。(需要存盘)提示:①因为输入的小写字母是任意的,所以应该用scanf()函数,假设我们将输入的字符存放在字符变量ch中,则scanf()的具体语句格式为: scanf(“%c”, &ch);
②由于大写字母(如‘A’)比相应的小写字母(‘a’)的ASCII码值少32,因此要将小写字
母转换成相应的大写字母,只需将该字母的ASCII码值减掉32即可,用以下语句可实现这一
要求:ch=ch-32;
③为了验证结果是否正确,可用printf()函数将结果输出。具体语句为:
printf(“%c\n”, ch);
编程练习3-3:以下程序不用第3个变量,实现将两个数进行对调的操作,请选择填空。(需要存盘)
(1) A、a+b B、a-b C、a*b D、a/b
(2) A、a+b B、a-b C、b-a D、a*b
(3) A、a+b B、a-b C、b*a D、a/b
将完整的程序以文件名swap.c最终保存在实验3文件夹里。
编程练习3-4:以下程序输入3个整数值给a、b、c,程序把b中的值给a,把c中的值给b,把a中的值给c,交换后输出a、b、c的值。例如:读入后,a=10,b=20,c=30;交换后,a=20,b=30, c=10。请填空,并将完整的程序以文件名interchange.c最终保存在实验3文件夹里。(需要存盘) /* 提示:使用一个中间变量 */
编程练习3-5:输入任意一个3位数,将其各位数字反序输出(例如输入123,输出321)。程序以print.c 文件名最终保存在实验3文件夹里。(需要存盘)
提示:此类题目应将3位数的个、十、百位分离出来,即定义x、a1、a2、a3,
x ——从键盘输入的数
a1 —— x的个位 a1 = x%10
a2 —— x的十位 a2 = x%100/10
a3—— x的百位 a3 = x/100
反序输出:printf(“%d%d%d\n”,a1,a2,a3);
★作业上交(千万不要忘记):
C程序编译、连接、运行成功后,请务必将源程序(扩展名为.C、存于E:盘以本人姓名为名称的文件夹下,如E:\匡珍春\c01.c)复制
..到K:盘对应的文件夹中,如K(01):\ 工业109105匡珍春\实验3,才算上交作业。
注:为了方便自己使用,不妨将源程序备份到可移动存储器上(如U盘、手机卡等)
★强烈建议:
先理解消化例题及习题(书上提供了答案),然后再做编程题。因为这样效果会好些。
顺序结构、选择结构和循环结构的程序设计典型例题分析与解答 1 在三种选择结构中,能用2个条件,控制从3个操作中选择一个操作执行的选择结构是______选择结构 【分析】能用1个条件,控制某个操作做或不做的选择结构是单分支结构;能用1个条件,控制从2个操作中选择一个操作执行的选择结构是双分支结构;能用n(n>l)个条件,控制从n+ l个操作中选择一个操作执行的选择结构是多分支结构。【答案】多分支 2 在三种循环结构中,先执行循环操作内容(即循环体),后判断控制循环条件的循环结构是______循环结构。 【分析】当型循环结构是先判断控制循环的条件,条件成立,执行循环体;条件不成立,则退出循环体。次数型循环结构也是先判断是否达到循环次数,没有达到循环次数,执行循环体;达到循环次数的,退出循环。只有直到型循环结构才是先执行循环体,然后再判断控制循环的条件,如果条件成立,进行循环;条件不成立,退出循环。 【答案】直到型 3 使用“getchar( )”函数时,程序的开头必须写一条包含命令为____________。 【分析】凡是使用系统函数的程序,都要在程序的开头写一条包含命令,包含命令中的“头函数.h”是一个文件,其中有关于该系统函数的定义。系统函数“getchar( )”是在名为“stdio.h(标准输入输出函数)”的头函数文件中定义的。【答案】#include"stdio.h"或#include<stdio.h> 4 执行输入语句“scanf("x=%c,y=%d",&x,&y);”,要使字符型变量X的值为'A'、整型变量y的值为12,则从键盘上正确的输入是( ) ①'A'/②A/③x=A/ ④x=A,y=12/ 12/ 12/ y=12/ 说明:备选答案中的"/"表示回车换行键 【分析】输入语句的格式控制符串中的“x=”、“,”、“y=”都是非格式控制符, 在输入时必须原样位置输人,所以只有备选答案④才符合这个要求。【答案】④ 5 设有下列程序段,则执行该程序段后的输出是( ) int i=012; float f=1.234E-2; printf("i=%-5df=%5.3f",i,f); ... ①i=__012f=1.234 ②i=10___f=0.012 ③10___O.012 ④___100.012 注:答案中的_代表一个空格。 【分析】输出语句的格式控制符串中的“i=”、“f=”都是非格式控制符,在输出时必须原样,原位置输出,所以只有备选答案①和②才符合这个要求;格式控制符“%-5d”的格式控制是数据左对齐、宽度为5的整型数据,备选答案①中的数据是右对齐的;此外,该答案中的实数“1.234E-2”应该代表“0.01234”,而不是“1.234”。只有备选答案②符合题意。【答案】② 6 在Turbo C的主屏幕中,将当前编辑的源程序以原名存盘,可以选用___________菜单项,也可以直热键________。 【分析】如果选用“File/Save”菜单项,或者使用热键(f12),当前编辑的源程序将以原来的文件名存盘;如果选用“File /Write to”,当前编辑的源程序将以新的文件名存盘。 【答案】File/Save F2 7 下列各种选择结构的问题中,最适合用if-else语句来解决的是( ) ①控制单个操作做或不做的问题 ②控制两个操作中选取一个操作执行的问题 ③控制三个操作中选取一个操作执行的问题 ④控制10个操作中选取一个操作执行的问题 【分析】if-else语句是专门解决“双分支结构”的,而“双分支结构”的问题就是用单个条件控制从两个操作中选取一个操作来执行的问题。 【答案】② 8 下列程序是输入一个小写字母,转换成对应大写字母的后一个字母输出。例如:'a'将转换成’B’、…、‘y’将转换成’Z’,其中的’Z’将转换成’A’。请填写程序中所缺少的语句。 main() {char ch ; scanf(”%c”,&ch〕; ch=ch- 32+1; ___________________; printf("%c\n",ch); } 【分析】分析程序库中的“ch=ch- 32+ 1;”语句,可知是将字符型变量 ch中的小写字母转换成对应的大写字母(- 32)的后一个字母(+ l)。如果ch中的字母是' a'、' b'、··,'y',转换结果都不会出错,但是,如果 ch中的字母是'Z',则-32后是大写字母'Z',再+l后将不是大写字母了。为了使其转换成'A',需要用一个单分支结构来实现:如果ch的值等于'Z'+ l,则硬性将 ch的值改成'A'。完成这个任务的语句是一条单分支语句,正是所缺少的语句。 【答案】 if (ch=='Z'+l) h='A'; 9不能正确计算下列分段函数的程序段是_________ |-1 x<0 y=|0 x=0 x>0 ① switch(x< 0)② if(x> 0) {case1:y=-1;break; y=1; case 0:switch(x==0)else {casel:y=0;break;if(x==0) case 0: y= l;y=0 } else } &ny=-l ③ y= l;④ y= l; if(x==0)if(x<0) y=0; y =-l; else else y=- l; if(x== 0) y=0; 【分析】先来分析备选答案①:表达式“x<0”的值只有两种可能性,成立值为1、不成立值为on如果“x<0”的值为 1(即 x< 0),则执行“easel:”后的语句“y=-l”后,退出 switch语句,符合分段函数要求。如果“x<0”的值为0(即x>=0),则执行“case 0:”后的switch语句。该switch语句的表达式是“x==0”,结果也有两种:成立为1、不成立为0.如果“x==0”的值为1(即x=0),则执行“case l:”后的语句“y=0”后,退出 switch语句,符合分段函数要求。如果“x==0”的值为0(即x>0),则执行“case 0:”后的语句“y=1”,也符合分段函数要求。再分析备选答案②:这是标准的用嵌套双分支结构来实现三分支的分段函数,结果显然是能求解分段函数的。分析备选答案③:双分支语句的条件是“x==0”,条件成立时,y值为0,符合分段函数的要求,条件不成立时(包含x>0和x<0两种情况),结果y值为-l,显然不符合分段函数的要求,所以本题要选该答案。至于备选答案④,是能正确计算分段函数的,首先置y为1;接着用双分支结构处理“x<0”和“x>=0”的两种情况:前者使得y值为一l;后者再执行一个单分支结构,如果“x==0”则使y值为0,否则不改变y值,保持y的原值1,符合分段函数的要求。 【答案】③ 10 三种循环语句都能解决循环次数已经确定的次数型循环,其中__________循环语句最适合。 【分析】当“for(表达式 1;表达式 2;表达式 3)语句;”中的表达式1为:整型变量 k=l;表达式 2为:整型变量 k<= n;表达式 3为:整型变量 k++;则这个 for循环就是次数为n次的标准次数型循环结构。 【答案】for 11执行下列程序段后的输出是() x=l; while(x<=3) x++,y=x+++x; printf("%d,%d",x,y); ① 6,10 ②5,8 ③4,6 ④3,4 【分析】我们可以使用逐步记录运行结果的方法来获得输出结果,记录如下: x=1; 进入循环,条件满足执行循环体:计算x+十得x为2,计算y=x+++x,得y为4、x为3; 继续循环,条件满足执行循环体:计算x+十得x为4,计算y=x+++x,得y为8、x为5; 继续循环,条件不满足退出循环; 输出x和y的值为5,8。 【答案】② 12 执行下列程序段,其中的do-while循环一共执行_次。 static int x; do x+=x*x; while (x); 【分析】对静态型变量,不赋初值也有值,对整型变量,其值为 0。执行循环语句 do-while 的循环体,x+=x* x是x=x+(x*
C语言程序设计与问题求解实验报告 实验二选择结构程序设计 一、实验目的 1.正确使用关系表达式和逻辑表达式表示条件; 2.掌握选择语句if-else和switch语句的使用方法; 3.掌握分支结构程序设计。 二、实验内容 1. 选择结构编程示例 year是闰年,即year能被4整除但不能被100整除,或year能被400整除。从键盘读入一个年份,然后输出其是否为闰年。具体代码如下: #include
2.分析并修改下面程序错误,使之能够正常运行。 错误代码一:下面的这个程序是当a和b的值相等的情况下输出“a和b相等”,而a与b的值不相等的话无输出。 #include
MATLAB实验报告 学院:光电学院 班级:073-1 姓名:刘颖 学号:2
实验三 选择结构程序设计 1. 求分段函数的值。 y=?????--≠≠<≤+--≠<-+其他 及且且,13250,653x 0,6222x x x x x x x x x x 用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的值。 程序设计: x=[-5.0,-3.0,1.0,2.0,2.5,3.0,5.0] if x<0&x~=-3 y=x.*x+x-6; elseif x>=0&x<5&x~=2&x~=3 y=x.*x-5*x+6; else y=x.*x-x-1 end y 运行结果: x = -5.0000 -3.0000 1.0000 2.0000 2.5000 3.0000 5.0000 y = 29.0000 11.0000 -1.0000 1.0000 2.7500 5.0000 19.0000 y = 29.0000 11.0000 -1.0000 1.0000 2.7500 5.0000 19.0000 2.输入一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。其中90分~100分为A ,80分~89分为B ,70分~79分为C ,60分~69分为D ,60分一下为E 。 要求: (1)分别用if 语句和switch 语句实现。 用switch 语句实现 程序设计: score=input('请输入百分制成绩:'); switch fix(score/10) case {9,10} grade='A'; case {8} grade='B'; case {7} grade='C'; case {6} grade='D'; otherwise grade='E'; end grade
实验3 选择结构程序设计(续) 【实验目的】 1.掌握分支条件语句的使用。 2.掌握分支嵌套语句的使用。 【实验内容】 1.通过Input()函数任意输入三条边长,经过简单的计算后,判断三条边长能否构成三角 形,并确定是类型的三角形,如(等边,等腰,一般三角形)。 a=input("Please input the length of a:") b=input("Please input the length of b:") c=input("Please input the length of c:") if a+b>c and a+c>b and b+c>a: if a==b==c: print "This is an equilateral triangle." if a==b or a==c or b==c: print "This is an isosceles triangle." if a!=b!=c: print "This is a scalene triangle." else: print "These lengths can not form a triangle." 2.密码登录程序。要求:建立一个登录窗口,要求输入帐号和密码。设定用户名为”zhangshan”, 密码为“Python123”;若用户名正确,密码正确,则显示“Zhangshan先生,欢迎你!”;如果用户名错误,则显示“用户名错误,请重新输入!”;若密码不正确,显示“对不起,密码错误,无法登录!”。 x=raw_input("User:") y=raw_input("Password:") if x=="zhangshan" and y=="Python123": print "Welcome,Mr.Zhangshan!" if x=="zhangshan" and y!="Python123": print "Wrong password.No right to log-in." while x!="zhangshan" and y=="Python123": x=raw_input("Wrong user's name.Please enter again:") if x=="zhangshan": print "Zhangshan先生,欢迎你!"
实验三顺序及选择结构程序设计 一、实验目的 1、掌握顺序结构程序的设计方法。 2、掌握赋值语句、注释语句、InputBox()函数、MsgBox语句与函数的使用方法。 3、掌握Print方法、Tab函数、字体类型、打印机输出的使用。 4、掌握简单块If语句、多分支块If语句、行If语句、IIf()函数的使用。 5、掌握情况语句(Select Case)的使用。 二、实验内容 要求:实验一、实验二中选做一个,实验三、实验四中选做一个 1、实验一。 2、实验二。 3、实验三。 4、实验四。 三、实验指导 1、实验一。 用InputBox()函数输入弧度值,将弧度值转换为角度值(度、分、秒)的形式,然后在窗体上打印出来。 【提示】利用InputBox()函数输入弧度值后,首先把弧度值转换为原始角度值,然后取整,结果就为角度值中的度值,然后把原始角度值减去度值,把结果转化为分值,采用类似思维即可求出结果。 【参考代码】 Private Sub Cmd1_Click() Dim s As Single, a As Integer, b As Integer, c As Integer Const pi As Single = 3.14159 s = Val(InputBox("请输入弧度值:")) s = s * 180 / pi a = Int(s) s = s - a s = s * 60 b = Int(s) s = s - b c = s * 60 Print "对应的角度值为:"; a & "度" & b & "分" & c & "秒。" End Sub 程序运行界面如图4.1所示。
第3章顺序 一、单选题: 1.己知int k,m=1;执行语句k=-m++;后k的值是( A)。(提示:负号与自加运算符同级,结合方向从右向左) A)-1 B) 0 C)1 D)2 2.若变量a, b已正确定义,且a,b均已正确赋值,下列选项中合法的语句是( B) A) a=b B)++a; C) a+=b++=1; D)a=int(b); (提示:a=b 只是表达式非语句; b++是个表达式)3.若有定义int x=4;则执行语句 x + = x * = x + 1;后,x的值为( C )。 A)5 B)20 C)40 D)无答案 4.若有定义和语句: int s,p; s=p=5; p=s++,++p,p+2,p++;则执行语句后 p的值是( C) A)9 B)8 C)7 D)6 5.若有定义:int a,b;则表达式 a=4,b=3,a+b+2,a++,a+b+2的值为( C)。 A) 12 B)11 C)10 D)无答案 6.若有定义:float a=3.0,b=4.0,c=5.0;则表达式 1/2*(a+b+c)的值为( C )。 A)6.0 B)6 C)0.0 D)无答案 7.以下程序段的输出结果是( C )。(提示:a当约束过严时,约束失效。按自由格式输出。) int a=1234; printf("%2d\n",a); A)12 B)34 C)1234 D)提示出错,无结果 8.下列程序段的输出结果是(C)。 int a=1234; float b=123.456; double c=12345.54321; printf("%2d,%3.2f,%4.1f",a,b,c); A)无输出 B)12, 123.46, 12345.5 C)1234,123.46,12345.5 D)1234,123.45, 1234.5 9.设x, y均为整型变量,且x=8, y=5,则以下语句的输出结果是(D)。 printf("%d,%d\n",x--,++y); A)8,5 B)7,5 C) 7,6 D) 8,6 10.以下程序的输出结果是( A )。 void main() { int a=20,b=10; printf("%d,%%d\n",a+b,a-b); } A) 30,%d B)30,10 C)30,%10 D)以上答案均不正确(%%d中第一个%后面的表示字符)11.下列程序的运行结果是(A)。 void main() { float x=2.5; int y; y=(int)x; printf("x=%f,y=%d",x,y);} A) x=2.500000,y=2 B)x=2.5,y=2 C)x=2,y=2 D) x=2.500000,y=2.000000 12.己知int k=10 , m=3,n;则下列语句的输出结果是(B)。 printf("%d\n",n=(k%m,k/m));
《C语言程序设计》实验报告 实验序号:3 实验项目名称:顺序、选择结构 网工学号姓名专业、班级 实验地点316 指导教师林老师实验时间11.1 一、实验目的及要求 1.掌握正确使用逻辑运算符和逻辑表达式表示逻辑判断; 2.熟练掌握用if语句编写选择结构的程序; 3.掌握switch语句的正确使用; 4.初步了解调试程序的一般方法。 二、实验设备(环境)及要求 使用Visual C++ 6.0;windows系列操作系统的环境。 三、实验内容与步骤 1.输入一个华氏温度f,要求输出摄氏温度c。公式为c=5/9(f-32)。 输出要求有文字说明,取2位小数。 【算法提示】 1)定义实变量c,f 2)提示输入"Please enter f:" 3)读入f 4)根据公式计算c 5)打印两位精度的结果。 测试结果: 华氏温度f 摄氏温度c 100.25 0.5 23.78
2.有一函数 x (x<1) y= 2x-1 (1<=x<10) 3x-11 (x>=10) 用scanf函输入x的值,求y值。 【算法提示】 1)定义实变量x,y 2)提示输入"Please enter x:" 3)读入x 4)判断x所在的区间,对应出y的计算公式并求值(进一步细化) 5)打印结果。 运行结构截图: \ 3.从键盘上输入一个正整数,判断这个数能否同时被3和5整除; 运行结构截图: 4.设计算法输入一个四位正整数,将它们倒排,例如输入1234,输出4321。(提示:分别应用/ 求整数部分,%求余数部分。例如7/5=1,7%5=2)。 运行结构截图: 5.某公司的招聘条件如下:①Experience with C ②bachelor degree ③less than 30 要求屏幕输出如下:
《C语言程序设计》实验报告 ---------------------------------------------------------------------------------------------- 实验3选择结构程序设计 一.实验目的 1.了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。 2.学会正确使用逻辑运算符和逻辑表达式 3.熟练掌握if语句和switch语句; 4.结合程序掌握一些简单的算法。 5.学习调试程序 二.实验内容和步骤 1.基础知识和概念 (1)分析下面程序,掌握关系表达式的运算规则。 #include
int a=2,b=0,c=0; float x=3.0; printf("%d",a&&b); printf("%d",a||b&&c); printf("%d",!a&&b); printf("%d",a||3+10&&2); printf("%d",!(x==2)); printf("%d",!x==2); printf("%d\n",ch||b); return 0; } 总结与反思:1.运用逻辑运算符比较的结果,真为1,假为0;2.逻辑与&&优 先级11大于逻辑或||优先级12 (3)分析运行下面的程序,掌握关系及逻辑混合表达式的运算规则。 #include
第八讲:顺序结构程序设计举例 所谓的顺序结构就是从头到尾一步步按部就班的执行下去,不会中途出现放弃或者跳转的情况。利用这样的思想实现的程序我们称之为顺序结构程序。在前面学习了许多知识点之后我们就可以开始最基本的顺序结构程序的设计了。 8.1 顺序结构 所谓的顺序结构可以用一个成语形容叫“按部就班”。任何事情都遵循着先做什么,再做什么的思想进行。这样的结构是我们日常生活中最常见的结构。在顺序结构中当一件事情开始后就再也不会停下,直到最后一步完成,整件事情做完为止,中途不会有放弃或者选择性放弃的过程。 8.2 经典算法—数据交换 很多语言的程序设计大多数都是从数据交换这个最经典的算法开始的,所谓的数据交换是将两个同等性质的物质进行对换,例如有两个整数a和b,a = 1,b = 2,在交换之后,使得a = 2,b = 1。 交换的算法是由于变量的性质所决定的,由于变量在同一时刻只能够存储一个数据,因此我们不能直接使用 a = b,b = a的方式对数据进行交换。此时我们就需要想出一些方法,帮助程序实现最正确的交换。 对于任何的数据我们都可以采用“第三变量法”进行交换。所谓的“第三变量法”即借助第三个变量实现对数据的交换,例如对a和b的数据交换,就有: 接下来我们将通过如下示意图对“第三变量法”进行简单的介绍: b
在程序未执行交换前,a = 1,b = 2。在执行交换算法的过程中,首先执行“t = a;”一句,将a中的值1转移到t中暂存,接下来执行“a = b;”一句,将b之中的值2存放到变量a中,a中原先的1被覆盖;最后执行“b = t;”一句,将t中所暂存的原先a的值1存放到变量b中,b中原有的2被覆盖。此时 a = 2,b = 1,t = 1。 当然,读者也可以使用先暂存b的方式对a和b之中的数据进行交换。下面给出该案例的完整代码: [例] 使用“第三变量法”交换a和b之中的数据。 当然对于一些数值型的数据(所谓的数值型数据是指单纯的数字或者ASCII 码),我们也可以直接采用“算数交换法”进行交换。所谓的算数交换法是指利用数值型数据可进行算术运算的特性进行交换。以上例a与b的值交换为例,则有: 假设a = 1,b = 2。首先执行“a = a + b;”,此时a = a + b = 1 +2 = 3,而b = 2;
实验三选择结构程序设计 一、实验目的 1.熟悉JDK开发环境 2.进一步了解Java Application的程序结构和开发过程 3.掌握选择结构程序设计 二、实验环境:JDK1.5 三、实验内容 编写程序,在主类中完成以下功能。 提示:输入数据可以用java.util.Scanner包中的Scanner(中文意思是扫描仪)类,用法如下例: import java.util.Scanner;//必须要先导入java.util.Scanner包 public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in);//创建Scanner类的对象sc System.out.println("请输入一个整数:");//输出提示信息 int i = sc.nextInt();//sc对象的nextInt()方法可得到整数 System.out.println(i); } } 这个例子就可以得到一个整型的数据,然后输出。 1.从键盘上输入3个整数分别存入变量a,b,c,输出其中的最大值。 2.输入一个整数,打印出它是奇数还是偶数。 3.计算如下分段函数值: 具体要求如下: ①用if语句实现分支。自变量x与函数值均用单精度类型。 ②自变量x由键盘输入,且输入前要有提示。结果的输出采用以下形式: x=具体值,f(x)=具体值 ③请编写程序并上机调试。分别输入x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0,运 行该程序,写出运行结果。 4.输入一个年份,判断是不是闰年。闰年的条件有两个:①能被4整除,但不能被 100整除;②能被400整除。 5.由键盘输入3个整数,判断以此3个数为边长的三角形属于什么类型(不等边、等 腰、等边或不能构成三角形)。请编写程序并上机调试。 6.根据百分制分数决定成绩等级如下: ①80分(含)以上为A级。 ②70分(含)以上且80分以下为B级。 ③60分(含)以上且70分以下为C级。 ④60分以下为D级。 用多分支语句if-else if和switch两种方法编写程序,输入一个百分制分数,输出相
实验一顺序结构程序设计 一、实验目的 1. 掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。2 2. 学会使用有关算术运算符,以及包含这些运算符的表达式。 3. 掌握数据的输入输出方法,能正确使用各种格式转换符。 二、实验学时数 4学时 三、实验内容和步骤 1..启动TC 2.0编译系统,进入编辑界面,建立一个新文件。文件名自定。(要求每个学生建立一个自己的文件夹,每个同学的练习和作业的源程序命名形成系列,便于检查、查找和考核)。 利用一个小程序验证常量、变量的使用方法与特点,验证数据类型和表达式值的计算规则及其输出格式。 参考程序: main( ) { char c1,c2; c1=97;c2=98; printf(″%c,%c\n″,c1,c2); } (1)在此基础上加入以下printf语句,并运行。 printf(″%d,%d\n″,c1,c2); (2)将第二行改为以下语句,并运行。 int c1,c2; (3)将第三行改为以下语句,并运行。 c1=300;c2=400; 分别写出三次运行结果。 2.编程并调试运行 (1)编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf 函数输出这两个字符。上机运行此程序,比较putchar和printf函数输出字符的特点。 (2)试编写程序,从键盘输入一个大写字母,要求改用小写字母输出。 3.写出下面程序的运行结果: 1)main() { int x=1,y=1,z=1; y=y+x; x=x+y; printf(″%d\n″,x); printf(″%d\n″,y); } 2) main()
实验三程序的选择结构 一、实验目的 1.掌握赋值语句的使用。 2.掌握用户交互函数InputBox与MsgBox的使用。 3.掌握IF语句与Select Case语句的使用。 二、实验内容 1.编写一个程序,判断用户输入的年份是否是闰年。 提示:利用InputBox输入年份,利用MsgBox显示判断结果。 2.编写一个程序,判断一个输入的3位整数是否“水仙花数”。水仙花数是指一个3位数,其各位数字立方和等于该数本身。例如,153=13+53+33。 3.输入三角形的三边a、b、c的值,根据其数值,判断能否构成三角形。若能,还要显示三角形的性质:等边三角形、等腰三角形、直角三角形、任意三角形。 提示:使用if语句的嵌套。 4、编写程序,根据输入的学生成绩判断学生的等级。 100-90:等级为A 89-80:等级为B 79-70:等级为C 69-60:等级为D 50-0:等级为E 图3.1 运行界面 提示:可使用多分支IF语句实现。 5.某商场促销采用购物打折的优惠办法,即每位顾客一次购物金额: ①在1000元以上者,按九五折优惠; ②在2000元以上者,按九折优惠; ③在3000元以上者,按八五折优惠; ④在5000元以上者,按八折优惠。 程序界面如图3.2所示。
图3.2 运行界面 提示: 此例用多分支结构实现,注意计算公式和条件表达式的正确书写。 6.输入x、y、z三个整数,按从大到小的次序显示,如图3.3所示。 图3.3 运行界面 提示: ①利用InputBox函数输入3个数,存放到数值型变量中,然后对其进行比较;若放在字 符串变量中,有时会得到不正确的结果(因为字符串是从左到右的规则比较,例如会出现“34”>“2345”>“126789”的情况。 ②对三个数进行排序,通过两两比较,一般可用三条单分支IF语句来实现。方法如下: 先将x与y比较,使得x>y;然后将x与z比较,使得x>z,此时x最大;最后将y与z 比较,使得y>z。 7.输入一元二次方程ax2+bx+c=0的系数a,b,c,计算并输出一元二次方程的两个根x1,x2。界面如图3-4所示。 图3.4 运行界面
C语言练习题总汇 一、单选题: 【顺序结构程序设计】 1.己知int k,m=1;执行语句k=-m++;后k的值是(A )。(提示:负号与自加运算符同级,结合方向从右向左) A)-1 B) 0 C)1 D)2 2.若有定义int x=4;则执行语句x + = x * = x + 1;后,x的值为(C )。 A)5 B)20 C)40 D)无答案 3.若有定义:float a=3.0,b=4.0,c=5.0;则表达式1/2*(a+b+c)的值为( C )。 A)6.0 B)6 C)0.0 D)无答案 4.以下程序段的输出结果是( C )。(提示:a当约束过严时,约束失效。按自由格式输出。)int a=1234; printf("%2d\n",a); A)12 B)34 C)1234 D)提示出错,无结果 5.下列程序段的输出结果是(C)。 int a=1234; float b=123.456; double c=12345.54321; printf("%2d,%3.2f,%4.1f",a,b,c); A)无输出 B)12, 123.46, 12345.5 C)1234,123.46,12345.5 D)1234,123.45, 1234.5 6.设x, y均为整型变量,且x=8, y=5,则以下语句的输出结果是(D)。 printf("%d,%d\n",x--,++y); A)8,5 B)7,5 C) 7,6 D) 8,6 7.以下程序的输出结果是( A )。 int main() { int a=20,b=10; printf("%d,%%d\n",a+b,a-b); } A) 30,%d B)30,10 C)30,%10 D)以上答案均不正确(%%d中第一个%后面的表示字符) 8.下列程序的运行结果是(A)。 int main() { float x=2.5; int y; y=(int)x; printf("x=%f,y=%d",x,y);} A) x=2.500000,y=2 B)x=2.5,y=2 C)x=2,y=2 D) x=2.500000,y=2.000000 9.以下程序的输出结果是(A)。 int main() { char c=‘z’; printf("%c",c-25);} A)a B)z C)z-25 D)y (字母共有26个,而z是最后一个)
实验3-顺序结构、选择结构 以下是为大家整理的实验3-顺序结构、选择结构的相关范文,本文关键词为实验,顺序,结构,选择,c语言程序设计,实验,报告,序号,项,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在教育文库中查看更多范文。 《c语言程序设计》实验报告 实验序号:3实验项目名称:顺序结构、选择结构学号实验地点1507052114实1-316姓名指导教师何蕾吴芸专业、班级实验时间15
软件工程1班20XX/11/10一、实验目的及要求1.2.3.4.掌握正确使用逻辑运算符和逻辑表达式表示逻辑判断;熟练掌握用if语句编写选择结构的程序;掌握switch语句的正确使用;初步了解调试程序的一般方法。二、实验设备(环境)及要求使用Turboc或Visualc++6.0;windows 系列操作系统的环境。三、实验内容与步骤0.根据输入的百分制成绩score,转换成相应的五分制成绩grade并打印输出。标准为:grade=A90≤score【算法提示】1)定义实变量c,f2)提示输入\3)读入f4)根据公式计算c5)打印两位精度的结果。测试结果:华氏温度f100.250.523.782.有一函数x(x=10)用scanf函输入x的值,求y 值。【算法提示】1)定义实变量x,y2)提示输入\3)读入x4)判断x所在的区间,对应出y的计算公式并求值(进一步细化)5)打印结果。运行结构截图:摄氏温度c37.92-17.50-4.573.从键盘上输入一个正整数,判断这个数能否同时被3和5整除;运行结构截图 :4.设计算法输入一个四位正整数,将它们倒排,例如输入1234,输出4321。(提示:分别应用/求整数部分,%求余数部分。例如7/5=1,7%5=2)。运行结构截图:5.某公司的招聘条件如下:①experiencewithc②bachelordegree③lessthan30要求屏幕输出如下:根据应聘者输入数据逐步提问,如应聘者输入n,则提示应聘者全满足则输出【提示】:必须考虑用户输入大写Y或者n。6.假设手机有两种收费方式,第一种是每分钟0.6元,无月租费;另一种是每分钟0.4元再收50元月租费,输入一个月打电话的时间(分钟),判断那一种更省钱。
福建农林大学金山学院实验报告 系(教研室):专业:年级: 实验课程: C语言程序设计姓名:学号:实验室号:_ 计算机号:实验时间:指导教师签字:成绩: 实验1:顺序结构程序设计 一、实验目的和要求 1.了解Visual C++ DEV_C++的基本操作方法 2.掌握C程序设计的基本步骤:编辑、编译、连接和运行 3.掌握各种类型数据的输入输出方法 4.能够编写一个简单的程序 二、实验内容和原理 1. 输入并运行一个简单、正确的程序。 # include <> int main( ) { printf ("This is a c program!\n"); return 0; } 2. 要使下面程序的输出语句在屏幕上显示:A,B,34,则从键盘输入的数据格式应为AB34__________ 。 #include<> int main() { char a, b; int c;
scanf("%c%c%d",&a,&b,&c); printf("%c,%c,%d\n",a,b,c); return0; 问题1:要使上面程序的键盘输入数据格式为a=A,b=B,34,输出语句在屏幕上显示的结果也为A,B,34,则应修改程序中的哪条语句怎样修改 scanf( “a=%c,b=%c,%d”,&a,&b,&c ); 问题 2:要使上面程序的键盘输入数据格式为A,B,34,而输出语句在屏幕上显示的结果为“A”,“B”,34,则应修改程序中的哪两条语句怎样修改 scanf( “%c,%c,%d”,&a,&b,&c); printf(“\”%c\”,\”%c\”,%d\n”,a,b,c); 3、编程求一个圆的周长和面积。用scanf输入圆半径,输出保留两位小数。 4、输入一个华氏温度F,要求输出摄氏温度C。公式为 c=5/9(F-32),取两位小数。 5、编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf 函数输出这两个字符。 6. 计算定期存款本利之和。 设银行定期存款的年利率rate为%,并已知存款期为n年,存款本金为capital元,试编程计算n年后的本利之和deposit。要求定期存款的年利率rate、存款期n和存款本金capital 均由键盘输入。(提示:pow为幂函数:pow(2,3)表示23)。 #include <> #include <> int main() { } 三、实验环境
1、一个C程序的执行是从( )。 A.本程序的main函数开始,到main函数结束。 B.本程序的main函数开始,到本程序文件的最后一个函数结束。 C.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 D.本程序文件的第一个函数开始,到本程序main函数结束。 正确答案:A 2、C语言规定:在一个源程序中,main函数的位置( )。 A.必须在系统调用的库函数的后面 B.必须在最开始 C.可以任意 D.必须在最后 正确答案:C 3、下面四个选项中,均是不合法的浮点数的选项是( )。 A.160. 0.12 e3 B.123 2e4.2 .e5 C.-e3 .234 1e3 D..18 123e4 0.
4、下面四个选项中,均是合法浮点数的选项是( )。 A.+le+1 5e-9.4 03e2 B.123e 1.2e-.4 +2e-1 C.-.60 12e-4 -8e5 D.-e3 .8e4 5.e-0 正确答案:C 5、下面正确的字符常量是( )。 A.'' B.'W' C."a" D.'\\'' 正确答案:B 6、下面四个选项中,均是不正确的八进制数或十六进制数的选项是( )。 A. 016 0x8f 018 B. 010 -0x11 0x16
7ff -123 D.oabc 017 0x8 正确答案:C 7、下面不正确的字符串常量是( )。 A."12\12" B."0" C."" D.'abc' 正确答案:D 8、在C语言中,要求运算数必须是整型的运算符是( )。 A./ B.= C.++ D.% 正确答案:D 9、若以下变量均是整型,且num=sum=7;则执行表达式 sum=num++,sum++,++num后sum的值为( )。 A.7 B.9 C.10 D.8 正确答案:D 10、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是( )。
湖北工业大学实验报告 课程名称:C语言程序设计实验内容实验三顺序结构程序设计 学院:工程技术学院专业班级: 姓名:学号:教师:成绩: 一、实验目的 1、掌握赋值语句、表达式语句、函数调用语句、复合语句、空语句的使用方法。 2、掌握输入、输出函数的格式及格式符的使用。掌握文件包含预处理命令的使用方法。 3、掌握数据的输入、存储、输出之间的关系。 4、掌握顺序程序设计的逻辑结构,掌握数据结构的功能。 二、预习作业 1、程序填空题:试在括号中填入正确的答案,并上机验证程序的正确性。(1) 输入大写字符A,则输出为( )。(文件名:ex3_1.c) (#include
2、程序改错并上机调试运行 (1)更改下列程序中的位运算符和逻辑运算符,能使变量d、e输出的结果为零。 (文件名:ex3_3.c) #include