《程序设计基础》习题参考答案与部分解析
第1章 C 语言概述
一、填空
a) C源程序的基本单位是函数。
b) 一个C程序中至少应包括一个main函数。
c) 在C语言中,输出操作是有库函数printf( )函数完成。
二、单选题
1、A
2、C
3、B
解析:
第1题答案:A 。因为一个C程序总是从main函数开始执行的,而不论main函数在程序中的位置。且到main函数结束。
第2题答案:C 。因为main函数没有限制必须位于程序的最前面。C程序书写自由,一行内可写几个语句。在对一个 C 程序进行编译的过程中,无法检查注释当中的拼写错误。不过C语言本身并没有输入输出语句,输入输出是由函数完成的。
第3题答案:B。因为一个C语言程序是由若干个函数组成的。但至少包含一个main 函数,且main函数的位置不限。
三、编程题
1、编写一个输出“Welcome to C!”信息的小程序。
解:程序如下
#include “stdio.h”
main( )
{
printf(“Welcome to C!”) ;
}
2、已知三角形的三边长分别为3,4,5,试用海轮公式编程
求其面积。海伦公式为:S△= ,其中s= (a+b+s)/2 ;
解:程序如下
#include “math.h”
#include “stdio.h”
main( )
{
int a , b , c ; /* a ,b,c 3个整型变量表示三角形的3条边。*/
float s ,s1 ; /* s1作为面积变量,s 作
为中间变量是都应该是实形*/
a=3 ; b= 4; c=5 ;
s= (a+b+c)/2.0 ;
s1= sqrt(s*(s-a)*(s-b)*(s-c)); /* sqrt函数完成开平方根功能。*/
printf(“area=%f\n”,s1);
}
第2章程序设计基础知识
一、单选题
1、C
2、A
3、C
4、A
5、C
6、C
7、D
8、C
9、D 10、A 11、D 12、A 13、C 14、C 15、B A
16、B 17 D
解析:
1. 答案:C。这里考察的是用户标识符的定义。用户标识符
由字母、数字、下划线组成。且必须以字母或下划线开头,区分大小写,且不能与C语言已有的32个关键字同名。由于选择不合法的用户标识符,A项的 A 、P_0、Do都是合法的用户标识符;B项的_A是合法的;D项的_123、temp、INT 也都是合法的。只有C 选项的标识符都是错误的用户标识符。
2.答案:A。这里考察的是整型常量的概念。B项当中01a
不正确,C
项当中的0668不是正确的八进制常量,D项当中的2e5是
float型常量。
3.答案:C。这里考察的是字符常量的定义。字符常量是用单撇号括起来的单个字符或转义字符。所以答案是C。4.答案:A。字符变量只能包含一个字符。
5.答案:C。这里考察的是转义字符的正确表示。C项的’074’是错误的转义字符,正确表示方法是’\074’。
6.答案:C。字符变量只能包含一个字符,而C项的c=’yes’是错误的。
7.答案:D。这里考察的是输入格式的控制。输入格式要与scanf语句中字符串格式相对应。
8.答案:C。这里考察的是输出格式和字符对应的ASCII 码值。’A’的ASCII码值是65,’Y’字符的ASCII码值是89。9.答案:D。这里考察输入格式和输出结果形式。由于输入格式不正确,所以输出的是不确定值。
10.答案:A。这里考察的是标识符的特点区分大小写,变量sum和变量sUM是两个不同的变量,sum并没有参加运算,所以它的值不边仍然是7。
11.答案:D。%运算符要求两边的运算数必须是整型。12.答案:A。这里考察的是复合赋值运算。a%=b+1;等价与a=a%(b+1);
由于a=10,b=4;所以运算后a的值是0。
13.答案:C。这里考察的是在变量定义类型是进行赋值操
作。要求a,b,c都赋值为5,且为int 类型。只有C正确。
14.答案:C。这里考察的是类型的自动转换,只要有单精度类型或双精度类型参加运算,结果都是double(双精度)类型。
15.答案:B, A。这里考察的是逻辑表达式的运算过程。
表达式1&表达式2 ,若表达式1的值是0的话,结果就是0,表达式2就不参加运算。要注意:赋值表达式的值是左边赋值变量的值。所以答案为B ,A。
16.答案:B。这里考察的是逗号表达式运算过程是从第1个表达式开始运算,然后依次运行到最后一个表达式。逗号表达式的值是最后表达式的值,且注意逗号运算符优先级低于赋值运算符。所以表达式
(a=2,b=5,b++,a+b)运算过程a=2 —> b=5 —> b++ —> a+b=8;结果是8。
17.答案:D。这里考察的是条件表达式的结合性是从右向左。所以
k 是1,然后计算k 二、填空题 1、-32768-32767 2、字母,数字,下划线 3、分号(;) 4、30 ,15 5、18 6、0 7、-264 8、7 9、0 10、1 11、y%2= = 1 12、x 13、0 14、(x>2&&x<3) | | x < -10 15、1 三、编程题 1、编写程序,输入一个长方形的二边长,输出其面积。 解:程序如下 #include “stdio.h” main( ) { int a , b , s ; /* a , b 作为长方形的两个边长,s为面积。*/ printf(“请输入两个边长\n”) ; scanf(“%d%d” , & a , & b) ; s = a * b ; printf(“ The area : %d \n “ , s ) ; } 2、设置半径为r = 2.9 ,编程求圆周长和圆面积 解:程序如下 #include “stdio.h” #define PI 3.14 main( ) { float r , L , S ; L = 2*PI*r ; S = PI * r *r ; printf( “ L = %f , S = %f \n “ , L , S ) ; } 3、输入一个华氏温度,输出相应的摄氏温度。二者的换算公式是: c = 5/9(F – 32) , 其中F表示华氏温度,c表示摄氏温度。解:程序如下 #include “stdio.h” main( ) { float c , F ; printf(“请输入一个华氏温度:\n”) ; scanf(“%f” , &F); c = (float) 5/9 *(F-32) ; printf(“ F=%f , c=%f \n” , F , c) ; } 第3章程序设计初步 一、单选题 1、C 2、C 3、B 4、 B 5、B 解析:1. 答案:C。这里考察的是if-else 语句和表达式中有增量和减量的执行过程。if(m++>5) printf(“%d\n”, m) ; else printf(“%d\n”,m++) ; 先执行m>5 的值是0,然后执行m=m+1; 得到m=6;由于m>5 的值是0所以执行else语句,应先输出m的值是6,然后m再自增一个单位变成7。 2.答案:C。这里考察的是if语句的嵌套。根据else子句总是与之前最近的if语句配对来进行选择满足条件的答案。 3.答案:B。这里也考察的是if语句的嵌套。同理:if(x 4.答案:B。这里考察的是if语句的嵌套。根据else子句总是与之前最近的if语句配对。 5.答案:B。由于B项:if(x=y) &&(x!=0) x+=y ; if 后的条件表达式没有用圆括号括起来。正确的是:if((x=y) &&(x!=0))x+=y ; 二、根据要求完成程序填空 1、z > y z > x y > x 2、ch >= ‘A’ && ch<=’Z’ch=ch-32 3、x < 0 x / 10 y!=2 三、编程题 1、编写一个程序,要求用户从终端键入两个整数数值。检测这两个数,判定第一个数是否能被第二数整除,并在终端上显示相应的信息。 解:程序如下 #include “stdio.h” main( ) { int a , b ; /* a为第一个数,b为第二个数*/ printf(“Please input two numbers: \n”) ; scanf(“%d%d” , &a ,&b) ; if( a%b = = 0 ) printf(“%d能被%d整除。\n” , a , b) ; else printf(“%d不能被%d整除。\n” , a , b) ; } 2、有3个整数a , b , c , 由键盘输入,输出其中最大的数。解:程序如下 #include “stdio.h” main( ) { int a , b , c , max ; printf(“ Please input three numbers : \n”) ; scanf(“%d%d%d” , &a ,&b , &c) ; if(a>b) max = a ; else max = b ; if(max < c ) max = c ; printf( “The max is %d \n”, max ) ; } 3、给出一百分制成绩,要求输出成绩等级A、B、C、D、E。其中90分以上为A,80~89分为B,70~79为C,60~69为D,60分以下为E。 解:程序如下 #include “stdio.h” main( ) { float score ; int grade ; printf(“Please input a score :\n”); scanf(“%f “ ,&score) ; grade=(int ) score /10 ; switch(grade) { case 10: case 9: printf(“grade is A\n”) ; break ; case 8: printf(“grade is B\n”) ; break ; case 7: printf(“grade is C\n”) ; break ; case 6: printf(“grade is D\n”) ; break ; default: printf(“grade is E\n”) ; } } 4、新世纪百货进行打折促销活动,消费金额(P)越高,折扣(d)越大,标准如下: 消费金额折扣 P < 100 0% 100 ≤ P < 200 5% 200 ≤ P < 500 10% 500 ≤ P < 1000 15% P ≥ 1000 20% 编程实现从键盘输入消费金额,输出折扣率和实付金额(f)。要求分别用if语句和switch语句实现。 解:(1) 用if语句编程实现如下 #include “stdio.h” main( ) { float P , d , f; printf(“输入消费金额:\n”); scanf(“%f”,&P); if( P<100 ) d=0 ; if( P>=100 && P<200 ) d=0.05 ; if( P>=200 && P<500 ) d=0.10 ; if( P>=500 && P<1000) d=0.15 ; if( P>=1000 ) d=0.20 ; f = P * (1-d) ; printf(“折扣是%f,则实付金额为%f\n”,d ,f) ; } (2) 用switch语句编程实现如下 #include “stdio.h” main( ) { float P , d , f ; int c ; printf(“输入消费金额:\n”); scanf(“%f”,&P); c = (int)P/100 ; switch( c ) { case 0 : d = 0 ; break ; case 1 : d = 0.05 ; break ; case 2 : case 3 : case 4 : d = 0.10 ; break ; case 5 : case 6 : case 7 : case 8 : case 9 : d = 0.15 ; break ; default : d = 0.20 ; } f = P * (1-d) ; printf(“折扣是%f,则实付金额为%f\n”,d ,f) ; } 第4章循环结构程序设计 一、单项选择 1、 A 2、 D 3、 C 4、 D 5、B 6、 D 7、 B 8、 B 二、按要求完成程序填空 1、c != ’\n’c>=’0’ && c <=’9’ 2、i%3= =2 && i%5= =3 && i%7= =2 j%5= =0 3、i < 10 j%3 != 0 三、编程题 1、编程求n的阶乘(n由键盘输入)。 解:程序如下 #include “stdio.h” main( ) { int n , i ; long fac ; fac = 1 ; printf(“ Input a number: ”) ; scanf(“%d” , &n) ; i = 1 ; while( i <= n ) { fac = fac * i ; i++ ; } printf(“ %d! is %ld \n” , n , fac) ; } 2、计算1!+2!+3!+…+10!的值。 解:方法一 #include “stdio.h” main( ) { int i=1 , j; double fac ,sum=0 ; while( i <=10 ) { j=1 ; Fac=1; while( j<=i) { fac = fac * j ; j++ ; } sum = sum + fac ; i++ ; } printf(“1!+2!+3!+…+10!=%.0f\n”,sum); } 方法二: #include “stdio.h” main( ) { int i , j ; double fac , sum=0 ; for(i=1;i<=10 ; i++) { for(j=1,fac=1; j<=i ;j++) fac = fac * j ; sum = sum + fac ; } printf(“1!+2!+3!+…+10!=%.0f\n”,sum); } 方法三: #include “stdio.h” main( ) { int i ; double fac , sum ; sum=0 ; fac=1 ; for( i=1 ; i<10 ; i++ ) { fac = fac * i ; sum = sum + fac ; } printf(“1!+2!+3!+…+10!=%.0f\n”,sum); } 3、求Sn = a + aa + aaa + … + aaa…a(n个a)的值,其中a 是一个数字。例如:3+33+333+3333(此时n=4),n由键盘输入。解:程序如下 #include “stdio.h” main( ) { int a , n , i ; long Sn , t ; Sn = 0 ; printf(“Please input a:\n”); scanf(“%d”,&a); printf(“Please input n:\n”); scanf(“%d”,&n) ; t=a ; for(i=1;i<= n ;i++) { Sn = Sn +t ; t= t*10 +a; } printf(“Sn=%ld\n”,Sn); } 4、打印出所有的“水花仙数”,所谓“水花仙数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水花仙数。 解:程序如下 #include “stdio.h” main( ) { int t , a , b , c , n ; /*变量n为统计水花仙数的个数*/ n=0 ; for(t=100 ; t<1000 ; t++) { a = t /100 ; b = ( t – a*100)/10 ; c = t%10 ; if( a*a*a + b*b*b +c*c*c = = t ) { n++ ; if( n%6 = = 0 ) printf(“\n”) ; printf(“%5d” , t ) ; } } } 6、每个苹果0.8元,第一天买2个苹果,第二天开始,每天买 前一个的2倍,直至购买的苹果个数达到不超过100的最大值。编写程序求每天平均花多少钱? 解:程序如下 #include “stdio.h” main( ) { int day , num , sum ; float money , every ; sum = 0 ; num = 2; for(day=1 ; num<100 ; ) { sum = sum + num ; day++ ; num = num *2 ; } money = sum * 0.8 ; every = money/day ; printf(“ every = %f \n” , every ) ; } 7、变成完成用一元人民币换成一分、二分、五分的所有兑换方案,即输出所有满足搭配要求的1分币个数,2分币个数,5分币个数。 解:程序如下: #include “stdio.h” main( ) { int one ,two , five ; for(one=0 ; one<=100 ; one++) for(two=0 ; two<=50 ; two++) for(five=0 ; five<=20 ; five++) if( one + two*2 + five *5 = =100) printf(“one=%d , two=%d , five=%d\n”,one , two , five); } 第5章模块化程序设计---函数 一、单选题 1、B 2、B 3、A 4、A 5、D 6、D 7、B 8、B 9、B 10、 A 二、编程题 1、已知三角形的三边长,编一实现求三角形面积的功能函 数。说明:用海伦公式来求面积,但要注意输入的三边长要符合构成三角形的条件。海伦公式为: SΔ=) s s- a - - (其中:s=(a+b+c)/2) .(c ).( ).( s b s 三、程序设计基础 下面我们这一节我们概要向用户管理人员介绍面问过程的程序设计语言的原理。绝大多数生产程序是用诸如COBOL、BASIC这样的POL编制的。虽然用户管理人员通常没有机会去实际地从事这类编程序的工作,但是他(或者她)将经常与从事这些工作的人们相互联系。掌握程序设计的基础知识将使得这种相互联系更加有效,同时也使得管理人员能够理解查询语言的概念。 在POL中,一个指令(又称作语句)序列是一条接着一条执行的,除非用一条“条件测试”指令来控制执行顺序而转移到程序的另一部分。例如,一个工资程序处理按月发工资的职工与按工时发工资的职工的两部分程序是不同的。计时职工的毛工资是计算出来的,而按月发工资的职工其每月的毛工资是从数据库中检索出来的。对每种工作(按工时计算或按月计算)都要求一组唯一的指令。一旦确定了毛工资,那么对二者的处理步骤(即程序指令)是相同的(例如,工资扣除、社会保险金额的计算、打印工资支票等等)。 在图20.7.4中,我们从一个BASIC工资程序中挑选出一些关键的语句用以说明程序设计中的“序列”和“条件测试”的概念。这些指令是自我说明了。编制一个计算和打印工资的联单的实际程序将要求几百行代码(LOC)或指令。 每种POL都有自己的一组指令集,其中,对下面一般的指令分类的每一类至少有一条指令。 (1)计算指令。计算指令允许程序员作加、减、乘、除和一个数的乘方(见图20.7.) 中的语句120)等运算。 图20.7.4 一个BASIC工资程序的关键语句 (2)数据传送指令。它可以将数据从主存的一个单元传送到另一个单元。赋值语句也属这一类,这些语句允许程序员通过一个命名的存储单元(称作为一个变量)使用一个常字“NETPAYIS”,或一个数值。在图20.7.4的例子中,“S$”引用了用来存贮工资码的主存单元的内容,工时比率存放在一个用“R”来引用的主存单之中。语句160是一个赋值语句, 第4章程序设计基础 习题 一、选择题 1. A 2.D 3.C 4. A 5. B 6.D 7.A 8.B 9.C 10. B 11. D 12. A 13.B 14.D 15.C 二、简答题 1.结构化程序设计的思想是什么? 答:结构化程序设计的基本思想就是采用自顶向下、逐步求精的设计方法和单入口单出口的控制结构。 2.结构化程序设计的原则是什么? 答:结构化程序设计的原则是: (1) 使用顺序、选择、循环3种基本控制结构表示程序逻辑。 (2)程序语句组织成容易识别的语句模块,每个模块都是单入口、单出口。 (3)严格控制GOTO语句的使用。 3.结构化程序设计语言采用自顶向下的方法进行程序设计的特点是什么? 答:利用结构化程序设计语言采用自顶向下的方法进行程序设计的特点是: (1) 问题分解成子问题的结构必须与3种基本程序结构之一相对应。 (2) 问题的划分决定了程序的结构。一方面,子问题的划分决定了这一层次的程序是3种基本结构中的哪一种结构;另一方面,一个问题该如何划分成子问题是灵活的,并不是只有一种分解方法。分解的好坏就决定了设计的质量,也决定了程序的不同结构。 (3) 问题的边界应该清晰明确。只有这样才能精确地解决这些子问题,否则就会模棱两可,无从下手。 4.简述面向对象和结构化程序设计的区别。 答:面向对象是从本质上区别于传统的结构化方法的一种新方法、新思路。它吸收了结构化程序设计的全部优点,同时又考虑到现实世界与计算机之间的关系,认为现实世界是由一系列彼此相关并且能够相互通信的实体组成,这些实体就是面向对象方法中的对象,每个对象都有自己的自然属性和行为特征,而一类相似对象的共性的抽象描述,就是面向对象方法中的核心——类。 5. 从互联网上面搜索选择结构的使用方式。 答案略。 6.简述模块化方法的原理。 西交大《程序设计基础》试题及答案 一、单项选择题(本大题共20小题,每小题2分,共40分) 1.int a[10];合法的数组元素的最小下标值为()。A:10 B:9 C:1 D:0 答案:D 2.以下运算符中优先级最低的是()。A:&& B:& C:|| D:| 答案:C 3.若使用一维数组名作函数实参,则以下正确的说法是()。A:必须在主调函数中说明此数组的大小B:实参数组类型与形参数组类型可以不匹配C:在被调用函数中,不需要考虑形参数组的大小D:实参数组名与形参数组名必须一致答案:A 4.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer 代表的是()。 A:一个整数,代表要读入的数据项总数B:一个文件指针,指向要读的文件C:一个指针,指向要读入数据的存放地址D:一个存储区,存放要读的数据项答案:C 5.对以下说明语句int a[10]={6,7,8,9,10}; 的正确理解是()。A:将5个初值依次赋给a[1]至a[5] B:将5个初值依次赋给a[0]至a[4] C:将5个初值依次赋给a[6]至a[10] D:因为数组长度与初值的个数不相同,所以此语句不正确答案:B 6.下列程序的输出结果是()。main() { int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y) { case case } case 2:a++;b++;break; case 3:a++;b++;break; } printf(\} A:a=1,b=0 B:a=2,b=1 C:a=1,b=1 D:a=2,b=2 答案:B 7.下列程序的输出结果为()。main() {int m=7,n=4; float a=38.4,b=6.4,x; x=m/2+n*a/b+1/2; printf(\ 0:a++;break; 1:b++;break; } A:27.000000 B:27.500000 C:28.000000 D:28.500000 答案:A 8.若k为int型变量,则以下程序段的执行结果是()。k=-8567; printf(\A:格式描述符不合 《Java语言程序设计(基础篇)》(第10版梁勇著) 第十一章练习题答案 11.1 public class Exercise11_01 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Enter three sides: "); double side1 = input.nextDouble(); double side2 = input.nextDouble(); double side3 = input.nextDouble(); Triangle triangle = new Triangle(side1, side2, side3); System.out.print("Enter the color: "); String color = input.nextLine(); triangle.setColor(color); System.out.print("Enter a boolean value for filled: "); boolean filled = input.nextBoolean(); triangle.setFilled(filled); System.out.println("The area is " + triangle.getArea()); System.out.println("The perimeter is " + triangle.getPerimeter()); System.out.println(triangle); } } class Triangle extends GeometricObject { private double side1 = 1.0, side2 = 1.0, side3 = 1.0; /** Constructor */ public Triangle() { } /** Constructor */ public Triangle(double side1, double side2, double side3) { this.side1 = side1; this.side2 = side2; this.side3 = side3; } 《计算机程序设计基础》课后练习题1 一.判断题 (1)(错)事件过程由某个用户事件或系统事件触发执行,但不能被其他过程调用。 (2)(错)若X=2, Y=5,则表达式 Y-2>X AND X+2>Y 的结果为:True。 (3)(错)常量是指在程序运行过程中其值可以改变的那些量。 (4)(错,timer没有)VB工具箱中的所有控件都具有宽度(Width)和高度(Height)属 性。 (5)(错)定义变量:Dim max,min as Single , 则max 和 min 的数据类型均为Single。 (6)(对)如果创建的菜单项的标题是一个减号“-”,则该菜单项显示为一条分隔线。 (7)(错)标准模块文件的扩展名是“*.VBP”。 (8)(错,都不能)定时器控件可以响应Click事件,但不能响应DbClick事件。 (9)(错)在默认情况下,数组下标下界的缺省值为1。 (10)(对)在使用字体对话框时,需要对其Flags属性先进行相应设置。 二.单选题 (11)在Visual Basic中,表示鼠标单击事件的是 C 。 A)Activate B)DoubleClick C)Click D)MouseDown (12)用于设置计时器时间间隔的属性是 A 。 A)Interval B)Name C)Left D)Top (13)函数Int(10*Rnd)是在 D 范围内的整数。 A)[1,10] B)[1,10] C) [0,9) D)[0,9] (14)Select case语句结构的结尾应使用 D 。 A)End B) End Case C) End Sub D) End Select (15)改变了容器的坐标系后,该容器的 A 属性值不会改变。 A)left B)scaleleft C)scaletop D)scalewidth (16)执行下列语句后,列表框中各表项顺序为 D List1.Clear For i=1 to 4 : List1.AddItem i-1,0 :Next i A)B)C)D) (17)输入对话框InputBox的返回值的类型是 A 。 第三部分程序设计基础 3.1 程序、程序设计、程序设计语言的定义 ⑴程序:计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。 ⑵程序设计:程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。 ⑶程序设计语言:程序设计语言用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。程序设计语言有3个方面的因素,即语法、语义和语用。 3.2 高级语言和低级语言的概念及区别 ⑴高级语言:高级语言(High-level programming language)是高度封装了的编程语言,与低级语言相对。 它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(例如汉字、不规则英文或其他外语),从而使程序编写员编写更容易,亦有较高的可读性,以方便对电脑认知较浅的人亦可以大概明白其内容。 ⑵低级语言:低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。 ⑶区别: 高级语言:实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好低级语言:实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差 了解知识:CPU运行的是二进制指令,所有的语言编写的程序最终都要翻译成二进制代码。越低级的语言,形式上越接近机器指令,汇编语言就是与机器指令一一对应的。而越高级的语言,一条语句对应的指令数越多,其中原因就是高级语言对底层操作进行了抽象和封装, 程序设计基础 公司内部编号:(GOOD?TMMT?MMUT?UUPTY?UUYY ?DTTI? 考点1程丿宇设计的方法与风格 【考点精讲】 养成良好的程丿子设计风格,主要考虑下述因素: 1.源程序文档化 (1)符号名的命名:符号名的命名应具有一定的实际含义,以便于对程序功能的理解。 (2)程序注释:在源程序中添加正确的注释可帮助人们理解程序。 程序注释可分为序言性注释和功能性注释。 (3)视觉组织:通过在程序中添加一些空格、空行和缩进等,使人们在视觉上对程序的结构一目了然。 2.数据说明的方法 为使程序中的数据说明易于理解和维护,可采用下列数据说明的风格,见表 2-lo 表2-1 数据说明风格 3.语句的结构程序应该简单易懂,语句构造应该简单直接。 4.输入和输出 考点2结构化程序设计 【考点精讲】 1.构化程序设计的原则 结构化程序设计方法引入了工程思想和结构化思想,使大型软件的开发和编程得到了极大的改善。结构化程序设计方法的主要原则为:H顶向下、逐步求精、模块化和限制使用got。语句。 自顶向上:先考虑整体,再考虑细节;先考虑全局目标,再考虑局部目标。 逐步求精:对复杂问题应设计一些子目标作为过渡,逐步细化。 模块化:把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块。 限制使用goto语句:在程序开发过程中要限制使用goto语句。 2.结构化程序的基本结构 结构化程序的基本结构有三种类型:顺序结构、选择结构和循环结构。 顺序结构:是最基本、最普通的结构形式,按照程序中的语句行的先后顺序 逐条执行。 选择结构:又称为分支结构,它包括简单选择和多分支选择结构。 循环结构:根据给定的条件,判断是否要重复执行某一相同的或类似的程序段。循环结构对应两类循环语句:先判断后执行的循环体称为当型循环结构;先执行循环体后判断的称为直到型循环结构。 考点3面向对象方法 《程序设计基础——C#.NET》练习 参考答案: 一、选择题 https://www.wendangku.net/doc/ea6169542.html,的目的就是将____A____作为新一代操作系统的基础,对互联网的设计思想进行扩展。A.互联网 B. Windows C. C# D. 网络操作系统 2.假设变量x的值为10,要输出x值,下列正确的语句是__C__。 A.System.Console.writeline(“x”) B. System.Cosole.WriteLine(“x”) C. System.Console.WriteLine(“x={0}”,x) D. System.Console.WriteLine(“x={x}”) 3.要退出应用程序的执行,应执行下列的_A___语句。 A. Application.Exit(); B. Application.Exit; C. Application.Close(); D. Application.Close; 4.关于C#程序的书写,下列不正确的说法是__D________。 A.区分大小写 B.一行可以写多条语句 C.一条语句可以写成多行 D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法 5. 在C#语言中,下列能够作为变量名的是__C__。 A.if B. 3ab C. b_3a D. a-bc 7. 能正确表示逻辑关系“a≥5或a≤0”的C#语言表达方式是__D__。 A.a>=5 or a<=0 B. a>=5|a<=0 C. a>=5&&a<=0 D. a>=5||a<=0 8. 以下程序的输出结果是___C_____。 A. 5 B. 4 C. 6 D. 不确定 9. If语句后面的表达式应该是__A___。 A.逻辑表达式 B. 条件表达式 C. 算术表达式 D. 任意表达式10.有如下程序: 附录Ⅰ各章习题答案 第1章C#语言概述 一、判断题 1、√ 2、× 3、√ 4、× 5、√ 6、√ 7、× 8、× 二、选择题 1、C 2、B 3、C 4、A 5、A 6、B 7、B 8、B 三、填空题 1、最新的;面向对象 2、C和C++;JA V A 3、先进设计思想;安全性能 4、灵活性 5、集成开发环境(IDE)——Visual https://www.wendangku.net/doc/ea6169542.html, 6、Microsoft .NET Framework(微软.NET框架体系) 7、最基本的通用语言运行时库CLR(Common Language Runtime);一些提供了具体功能的类库 8、需要开发和设计的项目文件;应用程序或组件 四、简答题 1、①简洁易用的语法。②自动的资源回收机制。③与Web的紧密结合。④完整的安全性与错误处理。⑤版本处理技术。⑥灵活性和兼容性。 2、C#程序必须包含一个Main方法,Main方法是程序的入口点,程序控制在该方法中开始和结束。该方法用来执行任务,并在任务完成后返回信息。 第2章常用标准控件 一、判断题 1、× 2、× 3、√ 4、× 5、√ 6、× 7、√ 8、√ 二、选择题 1、A 2、C 3、B 4、D 5、A 6、B 7、B 8、D 三、填空题 1、输入/输出信息 2、属性 3、事件 4、TextAlign 5、Click 6、文本框(TextBox) 7、保证数据标准化 8、Show 四、简答题 1、简述生成控件的操作过程。 (1)单击工具箱中相应的工具按钮,这一按钮呈现被按下状态,表明被选定。 (2)移动鼠标到窗体上,这时鼠标的指针变成十字形,在需要放置控件的左上角位置按下鼠标左键。 (3)在窗体范围内向下向右拖动鼠标,这时窗体上会显示一个矩形框,当其大小合适时,松开鼠标左键,窗体上就会显示一个相应大小的这种控件。 另外一种快捷的方法是在工具箱中相应的工具按钮上双击此按钮,窗体上就会出现一个系统默认大小的所选按钮。 2、消息框有多少种Button参数设置? OK:只显示“确定”按钮 OKCancel:显示“确定”和“取消”按钮 AbortRetryIgnore:显示“终止”、“重试”和“忽略”按钮 YesNoCancel:显示“是”、“否”和“取消” 4.1 阅读下列程序,写出执行结果 1.#include 3.const int n = 5 ; #include 《计算机程序设计基础》 计算机程序设 计基础_基础知识(一) 班级 学号 姓名 成 绩 一、 单选题 习题册 1.C++源程序文件的默认扩展名为A。 2.A) cpp B) exe C) obj D) lik 3.由C++源程序文件编译而成的目标文件的默认扩展名为C。 4.A) cpp B) exe C) obj D) lik 5.由C++目标文件连接而成的可执行文件的默认扩展名为B。 6.A) cpp B) exe C) obj D) lik 7.编写C++程序一般需经过的几个步骤依次是B。 8.A)编译、编辑、连接、调试 B)编辑、编译、连接、调试 C)编译、调试、编辑、连接 D)编辑、调试、编辑、连接9.程序中主函数的名字为 A 。 10.A) main B) MAIN C) Main D) 任意标识 符 11.下面四个选项中,均是不合法的 用户标识符的选项的是 C。 12.A) A p_o do B)float lao _A C)b-a goto int D)_123 temp INT 13.下列变量名中合法的是 C。 14.A) B)C)Tom B) 3a66 C) _6a7b D) $ABC 15.存储以下数据,占用存储字节最 多的是 D 。 16.A) 0 B) ‘0’ C) “0” D) 17.在C++语言中,字符型数据在内存中的存储形式是D。 18.A) 补码 B) 反码 C) 原码 D) ASCII码 19.若有说明语句:char c =’\072’;则变量c A。 20.A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法,变量的值不确定 二、填空题 1.C++头文件和源程序文件的扩展名分别为.h和.cpp 。 2.C++语言规定,标识符只能由字母、数字、下划线三种字符组成,而且第一个字符必须是字母或下划线。 3.一条表达式语句必须以__分号_;___作为结束符。 4.用于从键盘上为变量输入值的标准输入流对象是___cin____;用于输出表达式值的标准输出流对象是__cout____。 5.在一个C++程序文件中,若要包含另外一个头文件或程序文件,则应使用以_#include___标识符开始的预处理命令 计算机程序设计基础_基础知识(二) 班级学号姓名成绩 一、单选题 1.下列哪一个是C++语言中合法的变量 C A) 8ZSe B) ±A0 C) X0_2 D) ’x0’2.已知ch是字符型变量,下面不正确的赋值语句是A 3.A) ch='a+b' B) ch='\0' 第1章HTML 5概述 一、选择题 1.A 2.D 3.C 4.C 二、填空题 1.HyperText Markup Language 2. 3.HTML 4.UTF-8 5. HTML5新增的与数据存储和数据处理相关的新功能如下: (1)Web通信 在HTML 4中,出于安全考虑,一般不允许一个浏览器的不同框架、不同标签页、不同窗口之间的应用程序互相通信,以防止恶意攻击。如果要实现跨域通信只能通过Web服务器作为中介。但在桌面应用中,经常需要进行跨通信。HTML 5提供了这种跨域通信的消息机制。 (2)本地存储 HTML 4的存储能力很弱,只能使用Cookie存储很少量的数据,比如用户名和密码。HTML 5扩充了文件存储的能力,可以存储多达5MB的数据。而且还支持WebSQL和IndexedDB 等轻量级数据库,大大增强了数据存储和数据检索能力。 (3)离线应用 传统Web应用程序对Web服务器的依赖程度非常高,离开Web服务器几乎什么都做不了。而使用HTML 5可以开发支持离线的Web 应用程序,在连接不上Web服务器时,可以切换到离线模式;等到可以连接Web服务器时,再进行数据同步,把离线模式下完成的工作提交到Web服务器。 四、练习题 略 第2章JavaScript编程 一、选择题 1.C 2.B 3.A 4.A 二、填空题 1.js 2.=== 3.continue 4.break 5.function 6.return 7.Object 8.Array 9.Event 三、简答题 一、填空题。 1、微型计算机的运算器、控制器及内存储器组合在一起,称之为(D) A、ALU B、CPU C、MPU D、主机 2、信息的最小单位是(A ) A、bit B、byte C、KB D、word 3、Windows操作系统是(C ) A、单用户、单任务 B、多用户、单任务 C、单用户、多任务 D、多用户、多任务 4、下列数据中最大数是(D) A、(1010010)2 B、(123.4)8 C、(84.5)10 D、(55)16 5、设有int a=3,b=-4,c=5;表达式(a 程序设计基础复习题 一、单选 1、一个完整的计算机系统应该包括() A、系统软件和应用软件 B、计算机及其外部设备 C、硬件系统和软件系统 D、系统硬件和系统软件 2、“裸机”的概念是指() A、正在进行设计还没有组装好的计算机 B、已经组装好但还没有安装任何软件的计算机 C、仅安装了操作系统的计算机系统 D、安装了文字处理软件但没有安装专用数据处理系统的计算机 3、世界上第一台电子数字计算机研制成功的时间是() A、1936年 B、1946年 C、1956年 D、1970年 4、CASE的含义是() A、计算机辅助设计 B、计算机辅助制造 C、计算机辅助教学 D、计算机辅助软件工程5、当前广泛使用的微型计算机是() A、第一代 B、第二代 C、第三代 D、第四代 6、当代计算机的体系结构称为是() A、冯·诺依曼机 B、非冯·诺依曼机 C、图灵机 D、比尔盖茨机 7、硬盘是() A、输入设备 B、输出设备 C、存储设备 D、计算设备 8、下面4句话中,最准确的表述是() A、程序=算法+数据结构 B、程序是使用编程语言实现算法 C、程序的开发方法决定算法设计 D、算法是程序设计中最关键的因素 9、计算机能直接执行的语言是() A、机器语言 B、汇编语言 C、高级语言 D、目标语言 10、解释程序的功能是() A、将高级语言程序转换为目标程序 B、将汇编语言程序转换为目标程序 C、解释执行高级语言程序 D、解释执行汇编语言程序 11、下面4种程序设计语言中,不是面向对象式语言的是() A、JAVA B、Object Pascal C、Delphi D、C 12、不是C语言的基本数据类型是() A、int B、double C、char D、bool 13、在C语言中,为了求两个整数相除之后得到的余数,可以使用运算符() A、/ B、% C、* D、++ 14、数据的逻辑结构分为() A、纯属结构和非线性结构 B、顺序结构和非顺序结构 C、树型结构和图型结构 D、链式结构和顺序结构 15、用链表表示纯属表的优点是() A、便于随机存取 B、便于插入和删除操作 C、花费的存储空间较顺序存储少 D、元素的物理顺序与逻辑顺序相同 16、栈的最主要特点是() A、先进先出 B、先进后出 C、两端进出 D、一端进一端出 17、下面4句结论只有一句是错误的,它是() 第7章对话框与菜单程序设计 一、判断题 1.√2.√3.√4.×5.×6.×7.√8.√9.√10.√ 二、选择题 1.D 2.A 3.C 4.C 5.B 6.D 7.A 8.B 9.D 10.B 三、填空题 1.窗体控制菜单、下拉式菜单、快捷菜单2.ShowFont 3.打开文件、另存为、颜色、字体、打印对话框4.工程、部件 5.CommonDialog1.Action =3、CommonDialog1.ShowColor 6.提示信息、对话框类型、对话框标题7.Click 8.工具9.代码窗口、Click 10.相同、正 四、程序阅读题 程序1. 显示提示信息为“5”、标题为“na的输出结果”、有一个“确定”按钮的消息框。 程序2. 显示提示信息为“您选择了第1项”、标题为“第一项”、有一个“确定”按钮的消息框。 五、程序填空题 1.(1)Int(Rnd*100) (2)Str(i) (3)Exit For 2.(1)False (2)Date (3)CommonDialog1.Color (4)m1 六、程序设计题 程序1.界面设计略,过程设计如下: Private Sub Command1_Click() CommonDialog1.ShowOpen List1.AddItem CommonDialog1.FileName End Sub 程序2.界面设计略,过程设计如下: Private Sub Command1_Click() CommonDialog1.ShowSave List1.AddItem CommonDialog1.FileName End Sub 程序3.界面设计如图10-9、表10-2所示,过程设计如下: Private Sub Sqr_Click() Shape1.Shape = 1 End Sub Private Sub Rec_Click() Shape1.Shape = 0 End Sub Private Sub Oval_Click() Shape1.Shape = 2 End Sub 第11章理解MVC 习题答案 1.简述Web应用中表示层的两种架构模式,并比较这两种模式的优缺点。 答案: Web应用中表示层的两种架构模式分别为:Model1和Model2。 ●Model1的工作原理如下: (1)客户端发出请求,该请求由JSP页面接收。 (2)Java Bean用于实现业务模型,JSP根据请求与不同Java Bean进行交互。 (3)业务逻辑操作指定Java Bean并改变其模型状态。 (4)JSP将改变后的结果信息转发给客户端。 ● Model2的工作原理如下: (1)Servlet接收客户端发出的请求。 (2)Servlet根据不同的请求调用相应的Java Bean。 (3)业务逻辑操作指定Java Bean并改变其模型状态。 (4)Servlet将改变后Java Bean的业务模型传递给JSP视图。 (5)JSP将后台处理结果呈现给客户端。 这两种模式的优缺点比较如下: ● Model1适合快速开发小型应用,但是控制逻辑与表示逻辑耦合紧密。在大型应 用程序开发过程中,容易造成程序的可移植性差,不易维护。 ●与Model1模式相比,Model2更适合开发大型应用程序。在Model2中实现了业 务逻辑与表示逻辑的分离,相应地提高了程序的可维护性。但是在开发一些小型应用时,使用Model2可能会增加程序的复杂程度。 2.说明MVC设计模式中,M、V、C分别代表什么,有什么作用。 答案: M代表Model(模型),该组件是对软件所处理问题逻辑的一种抽象,封装了问题的核心数据,逻辑和功能实现,独立于具体的界面显示以及I/O操作。 V代表View(视图),该组件将表示模型数据,逻辑关系以及状态信息,以某种形式展现给用户。视图组件从模型组件获得显示信息,并且对于相同的显示信息可以通过不同的显示形式或视图展现给用户。 C代表Controller(控制器),该组件主要负责用户与软件之间的交互操作,控制模型 广州大学学年第学期考试卷 课程高级语言程序设计考试形式(开/闭卷,考试/查) 学院系专业班级学号姓名 一、填空题(每空1分,共10分) 1.C源程序的基本单位是(函数)。 2.一个C源程序中至少应包含一个(main()函数)。 3.若a和b均是int型变量,且a和b的初值均为5,则计算表达式a+=b++ 后,a的值为(10 ),b的值为( 6 )。 4.若a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,b值为( 4 ),c 值为( 2 )。 5.表达式8.2-2/3 的计算结果是(8 )。 6.在C语言中,整数可用三种数制表示,它们分别是(十进制)、(八进制)和(十六进制)。 二、程序计算题(每小题5分,共15分) 1. # define f(a) printf(“%d”,a) main() { int i,b[]={1,2,3,5,7,9,11,13,15},*p=5+b; for(i=3;i;i--) switch(i) { case 1: case 2: f(*p++); break; case 3: f(*(--p)); } } 2. main() { int arr_sum(int arr[],int n); int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int *p,total; int (*pt)( int arr[],int n); pt=arr_sum; p=a[0]; total=(*pt)(p,12); printf(“total=%d\n”,total); } arr_sum(int arr[],int n) { int i,sum=0; for(i=0;i 《c语言程序设计基础》试卷 (A卷) 考试时间:90分钟闭卷任课老师: 班级:学号:姓名:成绩: (每小题2分,共30分) 、由C++源文件编译生成的目标文件的缺省扩展名为() A、cpp B、exe C、obj D、lik 2、下列中,不是C++合法的标识符() A、2mn B、m123 C、kk D、a_1 3、C++中,基本数据类型不包括() A、int B、float C、char D、class 4、x和y均为bool量,则x| |y为真的条件是() A、它们均为真 B、其中一个为真 C、它们均为假 D、其中一个为 5、C++中,一个字符型数据在内存中占()字节。 A、4 B、2 C、1 D、8 6、字符串常量”hello”的长度是() A、5 B、6 C、7 D、8 7、以下语句,int i=2,j=2,m,n;m=i++;n=++j;则m,n,i,j的值分别为() A、2,3,2,2 B、2,3,3,3 C、2,2,3,3 D、3,3,2,2 8、假定a为一个整型数组名,则元素a[4]的字节地址为() A、a+4 B、a+8 C、a+16 D、a+32 9、 x>0 || y==5的相反表达式为()。 A、 x<=0 || y!=5 B、 x<=0 && y!=5 C、 x>0 || y!=5 D、 x>0 && y==5 10、在下面的函数声明中,存在着语法错误的是() A、void BC(int a , int) B、void BD(int , int) C、void BE(int , int=5) D、int BF(int x ; int y) 11、循环体至少被执行一次的语句为()。 A、for循环 B、while循环 C、do循环 D、任一种循环 12、已知一函数中有下列变量定义,其中属于静态变量的是() A、int a=5; B、static double b; C、register char c; D、auto short d; 13、do语句能够改写为()语句。 A、复合 B、if C、switch D、 while 14、要使语句: p=new int[10]; 能够正常执行,p应定义为() A、int p; B、int p[10]; C、int *p; D、int (*p)[10]; 15、编写C++程序一般需经过的几个步骤依次是( )。 A、编译、编辑、连接、调试 B、编辑、编译、连接、调试 C、编译、调试、编辑、连接 D、编辑、调试、编辑、连接 二、填空题(每小题1分,共10分) 1、使用const 语句定义一个标识符常量时,则必须对它同时进行。 2、用于输出表达式值的标准输出流对象是_________,用于从键盘上为变量输入 计算机程序设计基础知识 要求:这是计算机程序设计的一些基础知识,要求大家了解,不作为考试的主要类容,但是会涉及一些。因为在进行论文答辩时,如果问到一些软件设计的基础知识你都不知道可能会让得分减少很多,所以大家一定要看下。 第一章数据结构与算法 1.1 算法 算法:是指解题方案的准确而完整的描述。 算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。 算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括: (1)可行性; (2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性; (3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;(4)拥有足够的情报。 算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。 指令系统:一个计算机系统能执行的所有指令的集合。 基本运算包括:算术运算、逻辑运算、关系运算、数据传输。算法的控制结构:顺序结构、选择结构、循环结构。 算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。 算法复杂度:算法时间复杂度和算法空间复杂度。 算法时间复杂度是指执行算法所需要的计算工作量。 算法空间复杂度是指执行这个算法所需要的内存空间。 1.2 数据结构的基本基本概念 数据结构研究的三个方面: (1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构; (2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构; (3)对各种数据结构进行的运算。 数据结构是指相互有关联的数据元素的集合。 数据的逻辑结构包含: (1)表示数据元素的信息; (2)表示各数据元素之间的前后件关系。 数据的存储结构有顺序、链接、索引等。 线性结构条件: (1)有且只有一个根结点; 第一章:程序设计基础知识 一、单项选择题 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)结构化程序设计方法是面向过程程序设计的主流。 B)算法就是计算方法。 C)一个正确的程序就是指程序书写正确。 D)计算机语言就是编写程序的工具而不是表示算法的工具。 7、下面描述中,不正确的是( )。 A)递归法的关键是必须有一个递归终止的条件。 B)递归算法要求语言具有反复自我调用子程序的能力。 C)对于同一个问题,递推算法比递归算法的执行时间要长。 D)递推算法总可以转换为一个递归算法。 8、N-S图与传统流程图比较,主要优点是( )。 A)杜绝了程序的无条件转移。 B)具有顺序、选择和循环三种基本结构。 C)简单、只管。 D)有利于编写程序。 A)B)C)D) 二、填空题 1、在流程图符号中,判断框中应该填写的的是________。(判断条件) 2、结构化程序设计是__________应遵循的方法和原则。(面向过程编程) 3、结构化程序必须用__________程序设计语言来编写。(具有结构化控制语句) 4、可以被连续执行的一条条指令的集合称为计算机的________。(程序) 5、只描述程序应该“做什么”,而不必描述“怎样做”的语言被称为________。(面向对象) 6、任何简单或复杂的算法都是由_____和_____这两个要素组成。(数据结构算法) 7、算法的_______特征是指:一个算法必须在执行有限个操作步骤后终止。(有穷性) 8、在三种基本结构中,先执行后判断的结构被称为_________。(直到型循环结构) 9、在程序设计中,把解决问题确定的方法和有限的步骤称为______。(算法) 10、程序设计风格主要影响程序的________。(可读性) 11、用模块组装起来的程序被成为________结构化程序。(模块化) 12、采用自上而下,逐步求精的设计方法便于____________。(结构化和模块化) 三、应用题程序设计基础官方版
计算机科学导论第4章 程序设计基础(答案)
西交大《程序设计基础》试题及答案
《Java语言程序设计(基础篇)》(第10版 梁勇 著)第十一章练习题答案
《计算机程序设计基础》课后练习题参考答案
程序设计基础知识点)
程序设计基础
程序设计基础练习题(全答案版)
C#程序设计基础教程与实训习题答案
最新C++程序设计基础课后答案--第四章
计算机程序设计基础习题册含答案
Html5程序设计基础教程
程序设计基础C复习资料(1)
程序设计基础试题(附答案)
《Visual Basic程序设计基础》教材习题参考答案第七章
JSP程序设计第11章习题答案
(完整版)程序设计基础试题_10_答案
《C语言程序设计基础》 试卷A及参考答案
计算机程序设计基础知识
C语言程序设计基础知识 习题一及参考答案