结构化程序设计习题
- 格式:doc
- 大小:61.00 KB
- 文档页数:9
1. 为了提高测试的效率,应该。
A、随机地选取测试数据B、取一切可能的输入数据作为测试数据C、在完成编码后制定软件的测试计划D、选择发现错误可能性大的数据作为测试数据2. 与设计测试数据无关的文档是。
A、需求说明书B、设计说明书C、源程序D、项目开发设计3. 结构设计是一种应用最广泛的系统设计方法,是以为基础、自顶向下、逐步求精和模块化的过程。
A、数据流B、数据流图C、数据库D、数据结构4. 概要设计的结果是提供一份。
A、模块说明书B、框图C、程序D、数据结构5. 需求分析是由分析员经了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型并写出。
A、模块说明书B、软件规格说明书C、项目开发计划D、合同文档6. 注释是提高程序可读性的有效手段,好的程序注释占到程序总量的。
A、1/6B、1/5C、1/4D、1/37. 变换型和事务型是程序结构的标准形式。
从某处获得数据,再对这些数据作处理,然后将结果送出是属于。
A、变换型B、事务型8. PAD(Problem Analysis Diagram)图是一种工具。
A、系统描述B、详细设计C、测试D、编程辅助9. 排错一般是在测试发现错误后进行,其中找到错误位置占排错总工作量的。
A、95%B、5%C、50%D、20%10. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。
A、总貌B、细节C、抽象D、软件的作者11. 数据流图中,当数据流向或流自文件时,。
A、数据流要命名,文件不必命名B、数据流不必命名,有文件名就足够了C、数据流和文件均要命名,因为流出和流进数据流是不同的D、数据流和文件均不要命名,通过加工可自然反映出12. 分析员是。
A、用户中系统的直接使用者B、用户和软件人员的中间人C、软件的编程人员D、用户和软件人员的领导13. 在软件开发中,有利于发挥集体智慧的一种做法是。
A、设计评审B、模块化C、主程序员制D、进度控制14. 在开发软件时,可用来提高程序员的工作效率。
部分思考与练习答案思考与练习11.填空题(1)中文Visual Basic 6.0包括学习版(Learning)、专业版(Professional)和企业版(Enterprise)三个版本。
(2)中文Visual Basic 6.0的菜单栏主要包括文件、编辑、视图、工程、格式、调试、运行、查询、图表、工具、外接程序、窗口和帮助。
(3)应用程序建立在工程的基础之上,一个工程是各种类型文件的集合。
(4)工程包括有如下文件:文件(Vbp)、窗体文件(Frm)、标准模块文件(Bas)、类模块文件(Cls)、资源文件(Res)和包含ActiveX的文件(ocx)。
(5)Visual Basic为了对这些工程资源进行有效地管理,提供了工程资源管理器。
单击“视图”→“工程资源管理器”菜单命令,即可调出“工程资源管理器”窗口。
(6)代码编辑器由“对象”下拉列表框、“过程”下拉列表框、程序编辑区域、“过程查看”按钮和“全模块查看”按钮组成。
(7)调出代码编辑器的方法有以下三种:单击“视图”→“代码窗口”菜单命令;单击选中一个对象,单击鼠标右键,弹出它的快捷菜单,再单击该菜单中的“查看代码”命令;在调出代码编辑器的同时,也创建了该对象的一对过程头和过程尾语句;双击某一个对象,在调出代码编辑器的同时,也创建了该对象的一对过程头和过程尾语句。
(8)Visual Basic应用程序的基本单元就是对象。
对象是代码和数据的的集合。
(9)“属性”窗口有两种显示方式,一种是按照属性分类排序,另外一种是按照英文字母排序。
(10)对象属性的设置可以使用“属性”窗口修改其属性值来完成,在程序中使用代码来完成两种方法。
(11)方法是改变对象属性的操作。
在Visual Basic中,方法是针对对象进行操作的程序和改变对象属性值的程序。
(12)事件可分为鼠标事件及键盘事件等。
(13)通常的程序设计方法有结构化程序设计、面向对象程序设计和事件驱动程序设计三种。
1. 进一步理解数据类型、常量、变量、表达式和函数的含义,掌握各种运算符的使用方法、常用函数的功能。
2. 能够根据程序要求使用不同的程序控制结构编写程序实验内容:1. 顺序结构程序设计(1) 输入两个数,做加法运算。
(2) 输入两个数,交换位置(3) 从键盘输入三个数并分别存入变量a,b,c 中,求它们的平均值(4) 从键盘输入一个小写字母,输出其对应的大写字母(5) 输入一个华氏温度,根据公式 c=5/9(f-32),计算并输出摄氏温度。
(6) 输入一个三位数,将它反向输出,如输入127,输出应为721(7) 将从键盘输入的数值型十进制数分离为整数部分和小数部分后输出,如输入123.45,输出为123.45=123+0.45(8) 编程求以a,b,c 为边长的三角形的面积,提示:))()((c s b s a s s area ---=其中:s=(a+b+c)/2;a=3.5; b=5.4; c=4.3(9) 已知a=2.5,b=9.4,c=4.3,编程求02=++c bx ax 提示:a acb b x 2422,1-±-=) (10) 输出数据库中某一条学生信息(11) 查找并显示xsqk 中某学生的有关情况。
2. 分支结构结构程序设计单分支或双分支结构1) 从键盘输入一个数,若为正数则输出,非正数则结束。
(单分支)2) 从键盘输入两个整数,按从小到大的顺序输出。
(单分支)3) 从键盘输入3个数,按从小到大的顺序输出4) 从键盘输入一个数,判断是奇数还是偶数。
(双分支)5) 计算运费。
车站从甲地到乙地托运行李,收费规定:若行李重量不超过50公斤,每公斤收费0.5元;若行李重量超过50公斤,其超重部分加收0.4元。
编写计算运费的程序。
6) 判断某一年是否是闰年提示:设N 为年份数,若N 满足如下两个条件之一,则N 为闰年。
✧ N 能被4整除,但N 不能被100整除✧ 或者N 能被400整除。
1、下列选项中不属于结构化程序设计原则的是()。
A、可封装B、自顶向下C、模块化D、逐步求精正确答案:A答题解析:结构化程序设计方法的主要原则可以概括为自顶向下,逐步求精,模块化,限制使用goto语句。
故本题答案为A。
2、下面对类-对象主要特征描述正确的是()。
A、对象唯一性B、对象无关性C、类的单一性D、类的依赖性正确答案:A答题解析:本题考查知识点是对象的主要特征。
面向对象方法中最基本的概念是对象,它的基本特点有:标识唯一性、分类性、多态性、封装性和模块独立性好。
所以本题答案为A。
3、结构化程序的三种基本控制结构是()。
A、顺序、选择和重复(循环)B、过程、子程序和分程序C、顺序、选择和调用D、调用、返回和转移正确答案:A答题解析:本题考查知识点是结构化程序基本控制结构。
结构化程序的三种基本控制结构:顺序、选择和重复(循环)所以本题答案为A。
4、下面不属于对象主要特征的是()。
A、唯一性B、多态性C、可复用性D、封装性正确答案:C答题解析:本题的考查知识点是对象基本特点。
面向对象方法中最基本的概念是对象,它的基本特点有:标识唯一性、分类性、多态性、封装性和模块独立性好。
所以本题答案为C。
5、下面不属于对象主要特征的是()。
A、对象唯一性B、对象依赖性C、对象继承性D、对象持久性正确答案:D答题解析:本题考查知识点是对象主要特征。
面向对象方法中最基本的概念是对象,它的基本特点有:唯一性、抽象性、继承性、多态性。
6、面向对象方法中,实现对象的数据和操作结合于统一体中的是()。
A、结合B、封装C、隐藏D、抽象正确答案:B答题解析:本题考查知识点是对象的基本特点。
面向对象方法学中的对象是由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体。
所以本题答案为B。
7、将程序设计语言的整数设为整数类I,则下面属于类I实例的是()。
A、10.3B、10E3C、-103D、"0103"正确答案:C答题解析:本题考查知识点是面向对象基本概念。
C程序练习题一(结构化程序设计)一选择题1.有以下语句printf("%d,%d,%u\n”,016,16,-16);其输出结果是(d )a)16,16,65520 b) 14,16,65520c) 16,16,-16 d) 14,16,-162.若有定义语句:intb=0xl7;printf("%d”,b++);,其正确的输出结果是(b )a) 23 b) 24 c) 25 d) 223.有以下程序main()(int m=0256,n=256;printf("%o %o\n",m,n); }程序运行后的输出结果是—A—。
A、0256 0400B、0256 256C、256 400D、400 4004.设以下变量均为int类型,则值不等于7的表达式是CABDA) (x=y=6,x-f-y,x+l) B) (x=y=6,x+y,y+l)C) (x=6,x+l,y=6,x+y) D) (y=6,y+l,x=y,x+l)5.已有定义语句:intx=3,y=4,z=5;,则值为0的表达式是:(A )a) x>y++ b) x<=++y c) x !=y+z>y-z d) y%z>=y-z6.已有定义语句:int a=3,b=4;,则执行下述表达式后,变量b的值是:(D) (a++==4)&&(b++==5)a) 3 b) 4 c) 5 d) 67.已有定义语句:int a=4,b=6;,则执行下述表达式后,变量b的值是:(C) (a++==4) 11 (b++==6)a) 4 b) 5 c) 6 d) 78.以下程序的运行结果是:(D )main()( int i=0;if(i==0) printf("**”);else printf("$"); printf("*\n");}a) * b) $* c) ** d) ***9.若变量a,b,c都为整型,且a=l、b=15> c=0,则表达式a==b>c的值是(A )a) 0 b)非零c)“真”d) 110.有以下程序:main(){ int a=2,b=l,c=2;if(b<a)if(b<0) c=0, c++;b++;printf(/z b=%d,c=%d\n,,,b,c);}程序的输出结果是:(A )a) b=l,c=2 b) b=l,c=Oc) b=2,c=2 d) b=l,c=l11.有以下程序:main(){ int n;scanf("%d〃,&n);if(n++<5) printf("%X\n”,n);else printf("%X\n〃,n--);}若执行程序时从键盘上输入9,则输出结果是:(c )a) 11 b) A c) 9 d) 812.有以下程序:main(){ int m=5;if(++m>5)if(m++>5) printf("%d\n”,m+5);else printf("%d\n”,m-・);else printf("%d\n”,・・m);}程序的输出结果是:(D )a) 8 b) 5 c) 10 d) 1213.假设所有变量均已正确说明:a=b=c=0; x=35;if(!a) x-;else if(b); if(c) x=3;else x=4;以上程序段运行后,x的值是:(A )a) 34 b) 35 c) 4 d) 314.当a=l、b=3、c=5、d=4时,执行下面一段程序:if(a<b)if(c<d) x=l;elseif(a<c)if(b<d) x=2;else x=3;else x=6;else x=7;以上程序段运行后,x的值是:(C )a) 1 b) 2 c) 3 d) 615.以下程序的输出结果是:()main(){ int a=5,b=4,c=6,d;printf("%d\n,d=a>b ?(a>c ? a:c): (b));}ml7 .有以下程序:main(){ int a=15,b=21,m=0;switch(a%3){case 0: m++;break;是跳出整个程序吗case 1: m++;switch(b%2){default: m++;case 0: m++;break;}}printf("%d\n”,m);}程序的输出结果是:(c)a) 1 b) 2 c) 3 d) 418.以下while循环中,循环体执行的次数是:(C )k=l;while (―k) k=10;a) 10次b)无限次c) 一次也不执行d) 1次19.有以下程序段,其中n为整型变量,执行后输出结果是:(D )n=20 ;d) 0 while(n —) ; printf("%d",n);a) 2 b) 10 c) -120. 有以下程序段,其中x 为整型变量,以下选项中叙述正确的是:(C ) x=-l;do{;}while (x++);printf("x=%d",x);a)该循环没有循环体,程序错误 b)输出x=l c)输出x=0 d) 输出x=-l21. 有以下程序:main()( int x=0,y=0;while(xv5&&++y) y —,x++;printf("%d,%d",y,x);}程序的输出结果是:(A )a) 0,5 b) 1,5 c) 0,4 d) 1,422. 有以下程序:main()( int num=0;do( num++ ;printf("%d\n'',num); } while(num<=2); 程序的输出结果是: (A ) a) 1b) 1 c) 1 d) 1 2 22 3 34 23. 有以下程序:main()( int x=3;do{ printf("%d",x-=2); } while(!(—x));程序的输出结果是:(C )a) 1 b) 3 0 c) 1 -2d)死循环24.有以下程序:main()( int y=10;do { y—; } while(—y);printf("%d\n'',y--);}程序的输出结果是:(D )a) 1 b) -1 c) 8 d) 025.有以下程序:main()( int x=3,y;do{ y=--x;if( !y) printf("x”);else printf("y”);} while(x);}程序的输出结果是:(B )a) xyx b) yyx c) yxx d) yxy26.有以下程序:main()( int x=3,y=0;do( while( !y) y=-x;} while(x—);printf("%d,%d\n'',x,y);}程序的输出结果是:(B )a) -1,3 b) -1,-3 c) 0,0 d) 1,-327.有以下程序:main()( int i,s=l;for(i=l ;i<=50 ;i++)if( !(i%5)&& !(i%3)) s+=i;printf("%d\n'',s);}程序的输出结果是:()a) 409 b) 277 c) 1 d) 9128.有以下程序:main()( int x=0,y=0,i;for(i=l ; ;++i)( if(i%2==0) {x++ ;continue ;)if(i%5==0) (y++ ;break ;}}printf("%d,%d'',x,y);}程序的输出结果是:()a) 2,1 b) 2,2 c) 2,5 d) 5,229.有以下程序:main()( int a,b;for(a=l,b=l ;a<=100 ;a++)( if(b>=10) break;if(b%3==l)( b+=3; continue; }}printf("%d\n”,a);}程序的输出结果是:()a) 101 b) 6 c) 5 d) 430.有以下程序:main()( int i=0;for(i+=3 ;i<=5 ;i=i+2)switch(i%5)( case 0: printf("*‘‘);case 1: printf("#‘‘); break;default: printf("!"); break;case 2: printf("&‘‘);}}程序的输出结果是:()a) *# b) !& c) !*# d) *#*二程序填空1、以下程序的功能是计算:m=l-2+3-4+...+9-10,并输出结果。
程序设计基础试题程序设计基础试题一、选择题【例1】结构化程序设计方法提出于_______。
(考点1)A)20世纪50年代B)20世纪60年代C)20世纪70年代D)20世纪80年代解析:20世纪70年代提出了"结构化程序设计(structured programming)"的思想和方法。
结构化程序设计方法引入了工程化思想和结构化思想,使大型软件的开发和编程得到了极大的改善。
答案:C)【例2】结构化程序设计方法的主要原则有下列4项,不正确的是_______。
(考点1)A)自下向上B)逐步求精C)模块化D)限制使用goto语句解析:结构化程序设计方法的主要原则为:(1)自顶向下:即先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。
(2)逐步求精:对复杂问题,应设计一些子目标作过渡,逐步细化。
(3)模块化:把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块。
(4)限制使用goto语句。
答案:A)【例3】面向对象的开发方法中,类与对象的关系是_______。
(考点2)A)抽象与具体B)具体与抽象C)部分与整体D)整体与部分解析:现实世界中的很多事物都具有相似的性质,把具有相似的属性和操作的对象归为类,也就是说类是具有共同属性、共同方法的对象的集合,是对对象的抽象。
它描述了该对象类型的所有对象的性质,而一个对象则是对应类的一个具体实例。
所以本题正确答案为A)项。
答案:A)二、填空题【例1】在面向对象方法中,使用已经存在的类定义作为基础建立新的类定义,这样的技术叫做_______。
(考点2)解析:继承是面向对象方法的一个主要特征。
继承是使用已有的类定义作为基础建立新类的`定义技术。
已有的类可当作基类来引用,则新类相应地可当作派生类来引用。
答案:继承【例2】对象的基本特点包括_______、分类性、多态性、封装性和模块独立性好等5个特点。
(考点2)解析:对象具有如下的基本特点:(1)标识惟一性。
程序设计基础(一)(总分:40.00,做题时间:90分钟)一、{{B}}选择题{{/B}}(总题数:10,分数:20.00)1.结构化程序设计方法主要是为 ______ 服务的。
(分数:2.00)A.项目管理人员B.程序员√C.系统分析员D.用户解析:2.下列各项中,不是结构化程序基本模块结构的是 ______。
(分数:2.00)A.处理单元B.循环机制C.二分决策机制D.嵌套机制√解析:3.面向对象程序设计中,基于父类创建的子类具有父类的所有特性(属性和方法),这一特点称为类的______。
(分数:2.00)A.多态性B.封装性C.继承性√D.重用性解析:4.结构化程序设计主要强调程序的 ______。
(分数:2.00)A.效率B.速度C.可读性√D.大小解析:5.以下关于结构化程序的说法中,正确的是 ______。
(分数:2.00)A.结构化程序由单入口、单出口和循环3种结构组成B.结构化程序由顺序、单入口和单出口3种结构组成C.结构化程序由顺序、循环和goto3种结构组成D.结构化程序由顺序、循环和分支3种结构组成√解析:6.程序设计属于软件开发过程的 ______ 阶段。
(分数:2.00)A.分析B.定义C.实现√D.维护解析:7.结构化程序设计方法特点大致可分为3点,下列选项中, ______ 不是其特点。
(分数:2.00)A.要求所有模块都使用单入口、单出口,顺序、选择和循环三种控制结构B.由顶向下逐步求精的程序设计方法C.采用模块化来实施具体开发D.充分考虑模块间的相互联系√解析:8.结构化程序设计理论认为,实现良好的程序结构要应用 ______ 的分析方法。
(分数:2.00)A.自顶向下√B.自底向上C.面向对象D.基于组件解析:9.信息隐蔽的概念与下述 ______ 概念直接相关。
(分数:2.00)A.软件结构定义B.模块类型划分C.模块独立性√D.模块耦合性解析:10.在结构化程序设计中,不建议使用 ______。
一、选择题1.结构化程序设计的3种结构是(D)A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构2.以下叙述中正确的是(C)A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点3.C语言中用于结构化程序设计的3种基本结构是(A)A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-whileD)if,for,continue4.C语言中最简单的数据类型包括(B)A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型5.若变量已正确定义并赋值,以下符合C语言语法的表达式是(B) A)a:=b+1B)a=b=c+2C)int 18.5%3D)a=a+7=c+b6.下列可用于C语言用户标识符的一组是(B)A)void, define, WORDB)a3_b3, _123,CarC)For, -abc, IF CaseD)2a, DO, sizeof7.C语言中运算对象必须是整型的运算符是(A)A)%=B)/C)=D)<=8.若变量a,i已正确定义,且i已正确赋值,合法的语句是(B)A)a= =1B)++i;C)a=a++=5;D)a=int(i);9.已知int t=0;while (t=1){...}则以下叙述正确的是(B)A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对10.若变量已正确说明为float型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋予10.0,b赋予22.0,c赋予33.0,下列不正确的输入形式是(B) A)10<回车>22<回车>33<回车>B)10.0,22.0,33.0<回车>C)10.0<回车>22.0<空格>33.0<回车>D)10<<空格>>22<回车>33<回车>11.有如下程序:main(){int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是(A)A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=212.有以下程序main(){int i=1,j=1,k=2;if((j++||k++)&&i++)printf("%d,%d,%d\n",i,j,k);}执行后输出结果是(C)A)1,1,2B)2,2,1C)2,2,2D)2,2,313.有如下程序main(){float x=2.0,y;if(x<0.0)y=0.0;else if(x<10.0)y=1.0/x;else y=1.0;printf("%f\n",y);}该程序的输出结果是(C)A)0.000000B)0.250000C)0.500000D)1.00000014.有如下程序:main(){int n=9;while(n>6){n--;printf("%d",n);}}该程序的输出结果是(B)A)987B)876C)8765D)987615.在下列选项中,没有构成死循环的是(D)A) int i=100;while(1){i=i 0+1;if(i>100)break;}B) for(;;);C) int k=10000;do{k++;}while(k>10000);D) int s=36;while(s)--s;16.设int x=1,y=1;表达式(!x||y--)的值是(B)A)0B)1C)2D)-117.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(D) A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参18.有以下程序float fun(int x,int y){return(x+y);}main(){int a=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是(B)A)编译出错B)9C)21D)9.019.若有以下调用语句,则不正确的fun函数的首部是(D)main(){int a[50],n;…fun(n,&a[9]);…}A)void fun(int m,int x[])B)void fun(int s,int h[41])C)void fun(int p,int *s)D)void fun(int n,int a)20.fseek函数的正确调用形式是(B)A)fseek(文件指针,起始点,位移量)B)fseek(文件指针,位移量,起始点)C)fseek(位移量,起始点,文件指针)D)fseek(起始点,位移量,文件指针)21.若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是(C)A)EOFB)-1C)1D)NULL22.若有说明语句:char c='\72';则变量c (A)A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定23.若有说明 int a[3][4];则a数组元素的非法引用是(D)A)a[0][2*1]B)a[1][3]C)a[4-2][0]D)a[0][4]24.设有以下说明语句struct stu{int a;float b;}stutype;则下面的叙述不正确的是(C)A)struct是结构体类型的关键字B)struct stu是用户定义的结构体类型C)stutype是用户定义的结构体类型名D)a和b都是结构体成员名25.在C语言中,引用数组元素时,其数组下标的数据类型允许是(C) A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式26.若运行时给变量x输入12,则以下程序的运行结果是(A)main(){int x,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}A)0B)22C)12D)1027.以下说法正确的是(C)A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分28.表达式0x13^0x17的值是(A)A)0x04B)0x13C)0xE8D)0x1729.有以下程序main(){int a=3, b=4;printf("%d\n", (a++)*(b++));}程序运行后的输出结果是 (A)A)12B)15C)16D)2030.下列程序执行后的输出结果是(A)void func(int *a,int b[]){b[0]=*a+6;}main(){int a,b[5];a=0; b[0]=3;func(&a,b);printf("%d\n",b[0]);}A)6B)7C)8D)931.若有下面的程序段:char s[]="china";char *p; p=s;则下列叙述正确的是(D)A)s和p完全相同B)数组s中的内容和指针变量p中的内容相等C)s数组长度和p所指向的字符串长度相等D)*p与s[0]相等32.以下程序中函数sort的功能是对a数组中的数据进行由大到小的排序void sort(int a[],int n){int i,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){int aa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序运行后的输出结果是(C)A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)1,2,3,8,7,6,5,4,9,10,D)1,2,10,9,8,7,6,5,4,3,33.以下程序的运行结果是(A)struct date{int year,month,day;}today;main(){printf("%d\n",sizeof(struct date));}A)6B)8C)10D)1234.若有语句int *point,a=4;和 point=&a;下面均代表地址的一组选项是(D) A)a,point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point35.在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是(B)A)地址传递B)单向值传递C)由实参传形参,再由形参传实参D)传递方式由用户指定36.fun(char *p2, char *p1){while((*p2=*p1)!='\0'){p1++;p2++;}}函数的功能是(A)A)将p1所指字符串复制到p2所指内存空间B)将p1所指字符串的地址赋给指针p2C)对p1和p2两个指针所指字符串进行比较D)检查p1和p2两个指针所指字符串中是否有'\0'37.若执行下述程序时,若从键盘输入6和8时,结果为(B)main(){int a,b,s;scanf("%d%d",&a,&b);s=aif(a<b)s=b;s*=s;printf("%d",s);}A)36B)64C)48D)以上都不对38.fscanf函数的正确调用形式是(D)A)fscanf(fp,格式字符串,输出表列);B)fscanf(格式字符串,输出表列,fp);C)fscanf(格式字符串,文件指针,输出表列);D)fscanf(文件指针,格式字符串,输入表列);39.下列关于C语言数据文件的叙述中正确的是(D)A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件40.有以下程序void ss(char *s,char t){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){char str1[100]="abcddfefdbd",c='d';ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是(B)A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd41.struct link{int data;struct link *next;}a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。
第4章顺序结构程序设计4-1 C语言的控制语句有哪些?答:C语言有九条控制语句:(1)条件语句:if-else语句。
(2)开关语句:switch语句。
(3)当循环语句:while语句。
(4)直到循环语句:do-while语句。
(5)计数循环语句:for语句。
(6)中止本次循环语句:continue语句。
(7)中止整个循环语句:break语句。
(8)函数返回语句:return语句。
(9)无条件转移语句:goto语句。
4-2 程序中使用注释语句有何作用?如何给程序加注释?答:注释语句的作用:注释程序、函数及语句块的功能以及注释变量的作用,增强程序可读性。
给程序加注释通常遵循以下原则:(1)一个程序至少应该有一条注释语句,对整个程序功能进行说明;(2)对程序中主要的变量应该加必要的注释,以说明变量的作用;(3)对程序中重要的语句块应该加必要的注释,以说明语句块的作用。
(4)给程序加注释的方法:// 注释内容(仅对当前行起作用)/* 注释内容*/思考:你在写程序时,是否养成了添加必要注释的习惯?4-3 结构化程序设计方法的基本思想是什么?答:结构化程序设计方法的基本思想是:自顶向下、逐步求精。
思考:你是如何理解:“自顶向下、逐步求精”的?4-4 简述程序设计的基本过程。
答:程序设计的基本过程是:(1)分析问题;(2)设计算法;(3)编写程序。
思考:这几步中,你认为最难的是哪一步?4-5 运行下面的程序时,数据如何输入?#include <stdio.h>main(){int a,b;float x,y;char c1,c2;scanf("a=%d b=%d",&a,&b);scanf("x=%f y=%e",&x,&y);scanf("c1=%c c2=%c",&c1,&c2);}假定a=3,b=7,x=8.5,y=71.82,c1='A',c2='a'。
C程序练习题一(结构化程序设计)一选择题1. 有以下语句printf(“%d,%d,%u\n”,016,16,-16);其输出结果是(d )a) 16,16,65520 b) 14,16,65520c) 16,16,-16 d) 14,16,-162.若有定义语句:int b=0x17;printf(“%d”,b++);,其正确的输出结果是(b )a) 23 b) 24 c) 25 d) 223、有以下程序main(){ int m=0256,n=256;printf("%o %o\n",m,n); }程序运行后的输出结果是___A___。
A、0256 0400B、0256 256C、256 400D、400 4004、设以下变量均为int类型,则值不等于7的表达式是CABDA) (x=y=6,x-f-y,x+1) B) (x=y=6,x+y,y+1)C) (x=6,x+1,y=6,x+y) D) (y=6,y+1,x=y,x+1)5.已有定义语句:int x=3,y=4,z=5;,则值为0的表达式是:(A )a) x>y++ b) x<=++y c) x !=y+z>y-z d) y%z>=y-z6.已有定义语句:int a=3,b=4;,则执行下述表达式后,变量b的值是:(D )(a++==4)&&(b++==5)a) 3 b) 4 c) 5 d) 67. 已有定义语句:int a=4,b=6;,则执行下述表达式后,变量b的值是:(C)(a++==4)||(b++==6)a) 4 b) 5 c) 6 d) 78. 以下程序的运行结果是:(D )main(){ int i=0;if(i==0) printf(“**”);else printf(“$”); printf(“*\n”);}a) * b) $* c) ** d) ***9. 若变量a,b,c都为整型,且a=1、b=15、c=0,则表达式a==b>c的值是(A )a) 0 b) 非零c) “真” d) 110. 有以下程序:{ int a=2,b=1,c=2;if(b<a)if(b<0) c=0,c++;b++;printf(“b=%d,c=%d\n”,b,c);}程序的输出结果是:(A )a) b=1,c=2 b) b=1,c=0c) b=2,c=2 d) b=1,c=111. 有以下程序:main(){ int n;scanf(“%d”,&n);if(n++<5) printf(“%X\n”,n);else printf(“%X\n”,n--);}若执行程序时从键盘上输入9,则输出结果是:(c )a) 11 b) A c) 9 d) 812. 有以下程序:main(){ int m=5;if(++m>5)if(m++>5) printf(“%d\n”,m+5);else printf(“%d\n”,m--);else printf(“%d\n”,--m);}程序的输出结果是:(D )a) 8 b) 5 c) 10 d) 1213. 假设所有变量均已正确说明:a=b=c=0; x=35;if(!a) x--;else if(b) ; if(c) x=3;else x=4;以上程序段运行后,x的值是:(A )a) 34 b) 35 c) 4 d) 314. 当a=1、b=3、c=5、d=4时,执行下面一段程序:if(c<d) x=1;elseif(a<c)if(b<d) x=2;else x=3;else x=6;else x=7;以上程序段运行后,x的值是:(C )a) 1 b) 2 c) 3 d) 615. 以下程序的输出结果是:()main(){ int a=5,b=4,c=6,d;printf(“%d\n”,d=a>b ?(a>c ? a:c) : (b)); }m17.有以下程序:main(){ int a=15,b=21,m=0;switch(a%3){ case 0: m++;break; 是跳出整个程序吗case 1: m++;switch(b%2){ default: m++;case 0: m++;break;}}printf(“%d\n”,m);}程序的输出结果是:(C)a) 1 b) 2 c) 3 d) 418.以下while循环中,循环体执行的次数是:(C )k=1;while (--k) k=10;a) 10次b) 无限次c) 一次也不执行d) 1次19. 有以下程序段,其中n为整型变量,执行后输出结果是:(D )n=20 ;while(n--) ; printf(“%d”,n) ;a) 2 b) 10 c) -1 d) 020. 有以下程序段,其中x为整型变量,以下选项中叙述正确的是:(C )x=-1;do{;}while (x++);printf(“x=%d”,x);a) 该循环没有循环体,程序错误b) 输出x=1c) 输出x=0d) 输出x=-121. 有以下程序:main(){ int x=0,y=0;while(x<5&&++y) y--,x++;printf(“%d,%d”,y,x);}程序的输出结果是:(A )a) 0,5 b) 1,5 c) 0,4 d) 1,422. 有以下程序:main(){ int num=0;do{ num++ ;printf(“%d\n”,num); }while(num<=2);}程序的输出结果是:(A )a) 1 b) 1 c) 1 d) 12 2 23 3423. 有以下程序:main(){ int x=3;do{ printf(“%d”,x-=2); }while(!(--x));}程序的输出结果是:(C )a) 1 b) 3 0 c) 1 -2 d) 死循环24. 有以下程序:main(){ int y=10;do { y--; } while(--y);printf(“%d\n”,y--);}程序的输出结果是:(D )a) 1 b) -1 c) 8 d) 025. 有以下程序:main(){ int x=3,y;do{ y=--x;if( !y) printf(“x”) ;else printf(“y”) ;} while(x);}程序的输出结果是:(B )a) xyx b) yyx c) yxx d) yxy26. 有以下程序:main(){ int x=3,y=0;do{ while( !y) y=-x;} while(x--);printf(“%d,%d\n”,x,y);}程序的输出结果是:(B )a) -1,3 b) -1,-3 c) 0,0 d) 1,-327. 有以下程序:main(){ int i,s=1;for(i=1 ;i<=50 ;i++)if( !(i%5)&& !(i%3)) s+=i;printf(“%d\n”,s);}程序的输出结果是:()a) 409 b) 277 c) 1 d) 9128. 有以下程序:main(){ int x=0,y=0,i;for(i=1 ; ;++i){ if(i%2==0) {x++ ;continue ;}if(i%5==0) {y++ ;break ;}}printf(“%d,%d”,x,y);}程序的输出结果是:()a) 2,1 b) 2,2 c) 2,5 d) 5,229. 有以下程序:main(){ int a,b;for(a=1,b=1 ;a<=100 ;a++){ if(b>=10) break;if(b%3==1){ b+=3; continue; }}printf(“%d\n”,a);}程序的输出结果是:()a) 101 b) 6 c) 5 d) 430.有以下程序:main(){ int i=0;for(i+=3 ;i<=5 ;i=i+2)switch(i%5){ case 0: printf(“*”);case 1: printf(“#”); break;default: printf(“!”); break;case 2: printf(“&”);}}程序的输出结果是:()a) *# b) !& c) !*# d) *#*二程序填空1、以下程序的功能是计算:m=1-2+3-4+…+9-10,并输出结果。
请填空。
main( ){ int m=0,f=1,i,n;scanf(“%d”,&n);for(i=1; i<=n; i++);2、以下程序的功能是计算s=1+1/2!+1/3 !+1/4 !+…+1/n! ,请填空。
main( ){double s=0.0,fac=1.0;int i;int n;scanf(“%d”,&n);for(i=1,i<=n;i++){ fac=fac * ;s=s+fac;}printf(“s=%lf”,s);}3、以下程序的功能是计算:s=1+12+123+1234+12345。
请填空。
main(){ int t=0,s=0,i;; s=s+t; }\n",s);}4、下列程序计算0到9 之间的任意3个不同的数字组成的三位数共有多少种不同的组成方式。
请完成下列程序。
#include <stdio.h>main(){ int j,i,k,count=0;for(i=9;i>=1;i--)for(j=9;j>=0;j--)if( )continue;elsefor(k=0;k<=9;k++)if( )count++;printf("%d\n",count);}5、以下用来输出两整数M和N之间的所有素数(质数),请填空,使程序能正确运行。
#define M 4#define N 30main(){int i, j, k, s=0;for(i=M; i<= N ; i++){ for(j=2; j< i ; j++)if(i%j== 0 ) break;if(j>=i){ printf("%5d", i);s=s+1;if( s%5==0 ) printf("\n");}}printf("\n");}6、以下程序实现:从键盘输入一位整数,计算其各位数字之和。
比如输入整数31421,则打印结果为11。
请填空。
main(){int i,sum=0,a;scanf("%d",&i);while(i>0){a= ;sum+=a;i= ;}printf("%d\n",sum);}7、以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。