程序设计语言 习题与答案

合集下载

c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析1. 习题一:编写一个C程序,输出“Hello World!”。

解析:这是一个非常简单的C程序,只需要使用printf函数输出所需的字符串即可。

```c#include <stdio.h>int main() {printf("Hello World!");return 0;}```2. 习题二:编写一个C程序,计算两个整数的和并输出结果。

解析:这个程序需要使用scanf函数从用户输入中读取两个整数,并使用printf函数输出它们的和。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入第一个整数:");scanf("%d", &num1);printf("请输入第二个整数:");scanf("%d", &num2);sum = num1 + num2;printf("两个整数的和为:%d", sum);return 0;}```3. 习题三:编写一个C程序,判断一个数是奇数还是偶数并输出结果。

解析:这个程序需要使用scanf函数读取用户输入的整数,并使用if-else语句判断该数的奇偶性,然后使用printf函数输出结果。

```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("该数是偶数");} else {printf("该数是奇数");}return 0;}```4. 习题四:编写一个C程序,判断一个年份是否为闰年并输出结果。

《C语言程序设计》练习题及答案

《C语言程序设计》练习题及答案

《C语言程序设计》练习题及答案1. 单选题1. 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是A. p=1;B. *q=2;C. q=p;D. *p=5;正确答案:D2. 设有int x=11;则表达式(x++*1/3)的值是A. 3B. 4C. 11D. 12正确答案:A3. 下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));}A. 3B. 4C. 1D. 2正确答案:A4. sizeof(float)是A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式正确答案:B5. 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A. a=20000+20000;B. a=4000*10;C. a=30000+10000;D. a=4000L*10L正确答案:D6. 请选出以下语句的输出结果printf("%d\n",strlen("\t\"\065\xff\n"));A. 5B. 14C. 8D. 输出项不合法,无正常输出正确答案:A7. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为A. 4B. 16C. 32D. 52正确答案:C8. 下面能正确进行字符串赋值操作的是A. char s[5]={"ABCDE"};B. char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′};C. char *s;s="ABCDE";D. char *s;char a; scanf("%s",&s);正确答案:C9.以下程序的输出结果是#include "stdio.h"void reverse(int a[],int n){int i,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;reverse(b,8);for(i=6;i<10;i++) s+=b[i];printf("%d\n",s);}A. 22B. 10C. 34D. 30正确答案:A10. 以下不正确的叙述是A. 在C程序中,逗号运算符的优先级最低B. 在C程序中,APH和aph是两个不同的变量C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值正确答案:D2. 多选题11. 以下______是正确的转义字符。

(完整版)C语言程序设计练习题(含程序及参考答案)

(完整版)C语言程序设计练习题(含程序及参考答案)

(完整版)C语⾔程序设计练习题(含程序及参考答案)C语⾔练习题(所提供的源程序均采⽤⾃定义函数⽅式解决,如不采⽤函数⽅式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能⼀⼀验证,仅供参考使⽤)1、定义⼀个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三⾓形函数返回3,若能构成等腰三⾓形函数返回2,若能构成⼀般三⾓形函数返回1,若不能构成三⾓形函数返回0。

#includeint fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写⼀个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运⾏后 a 中的值为8,b中的值为3。

#includevoid fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输⼊3个数,将最⼤值放在变量a中,最⼩值放在变量c中。

程序设计语言C_习题集(含答案)

程序设计语言C_习题集(含答案)

《程序设计语言C》课程习题集一、单选题1.在C语言中,合法的长整型常数是A) OL B) 4962710 C) 324562& D) 216D2.以下有4组用户标识符,其中合法的一组是A) For B) 4d C) f2_G3 D) WORD3.以下选项中合法的字符常量是A)"B" B) '\010' C) 68 D) D4.以下程序的输出结果是main(){ int a=3;printf("%d\n",a+(a-=a*a) );}A) -6 B)12 C) 0 D) -125.设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值位为A) 0 B) 1 C)2 D) 36.t为int类型,进人下面的循环之前,t的值为0while( t=l ){ ……}则以下叙述中正确的是A) 循环控制表达式的值为0 B) 循环控制表达式的值为1C) 循环控制表达式不合法D) 以上说法都不对7.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是A) 地址传递B) 单向值传递C) 由实参传给形参,再由形参传回实参D) 传递方式由用户指定8.以下程序的输出结果是main(){ int i, a[10];for(i=9;i>=0;i- -) a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}A) 258 B) 741 C) 852 D) 3699.以下选项中,不能正确赋值的是A) char s1[10];s1="Ctest"; B) char s2[]={'C', 't', 'e', 's', 't'};C) char s3[20]="Ctest"; D) char *s4="Ctest\n";10.以下程序的输出结果是union myun{ struct{ int x, y, z; } u;int k;} a;main(){ a.u.x=4; a.u.y=5; a.u.z=6;a.k=0;printf("%d\n",a.u.x);}A)4 B) 5 C) 6 D) 011.以下叙述正确的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚、具有其他语言的一切优点12. C语言中用于结构化程序设计的三种基本结构是A) 顺序结构、选择结构、循环结构B) if、switch、breakC) for、while、do-while D) if、for、continue13.下列关于C语言用户标识符的叙述中正确的是A) 用户标识符中可以出现下划线和中划线(减号)B) 用户标识符中不可以出现中划线,但可以出现下划线C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头14.有以下程序段int m=0,n=0; char c=’a’;scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<回车>,则输出结果是:A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,015.有以下程序main(){ int i;for(i=0;i<3;i++)switch(i){ case 1: printf("%d",i);case 2: printf("%d",i);default: printf("%d",i);}}执行后输出的结果是A) 011122 B) 012 C) 012020 D) 12016.有以下程序main(){ int i=10,j=1;printf("%d,%d\n",i--,++j);}执行后输出的结果是A) 9,2 B) 10,2 C) 9,1 D) 10,117.有以下程序void f(int x,int y){ int t;if(x<y){ t=x; x=y; y=t; }}main(){ int a=4,b=3,c=5;f(a,b); f(a,c); f(b,c);printf("%d,%d,%d\n",a,b,c);}执行后输出的结果是A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,518.有以下程序main(){ char *s[]={"one","two","three"},*p;p=s[1];printf("%c,%s\n",*(p+1),s[0]);}执行后输出结果是A) n,two B) t,one C) w,one D) o,two19.有以下程序main(){ int m[][3]={1,4,7,2,5,8,3,6,9};int i,k=2;for(i=0;i<3;i++){ printf("%d ",m[k][i]); }}执行后输出结果是A) 4 5 6 B) 2 5 8 C) 3 6 9 D) 7 8 920.设有如下说明typedef struct{ int n; char c; double x;}STD;则以下选项中,能正确定义结构体数组并赋初值的语句是A) STD tt[2]={{1,’A’,62},{2,’B’,75}};B) STD tt[2]={1,"A",62,2,"",75};C) struct tt[2]={{1,’A’},{2,’B’}};D) struct tt[2]={{1,"A",62.5},{2,"B",75.0}};21.以下选项中属于C语言的数据类型是A)复数型B)布尔型C)集合型D)整型22.一个C程序的执行是从A)main()函数开始,直到main()函数结束B)第一个函数开始,直到最后一个函数结束C)第一个语句开始,直到最后一个语句结束D)main()函数开始,直到最后一个函数结束23.设有语句int a=3;则执行语句a+=a-=a*a;后,变量a的值是A)3 B)0C)-12 D)924.若有 char c[5]={'c','d','\0','e','\0'};则执行语句printf("%s",c);结果是A)cd\0e B)'c''d' C)cd D)cd e25.已知:int a[2][3]={1,2,3,4,5,6}, (*p)[3]=a;下列表达式不是4的是A)*(*p+3) B)*p+3 C)*(*(p+0)+3) D)a[0][3]26.以下有宏替换不正确的叙述A)宏替换不占用运行时间 B)宏名无类型C)宏替换只是字符串替换D)宏名必须用大写字母表示27.执行char str[10]=”Ch\nina”; strlen(str)的值是A)5 B)6 C)7 D)928.下面程序的输出结果是#define POWER(x) (x*x)main(){int i=4; printf("%d",POWER(i-2)); }A)-9 B)-7 C)5 D)-629.在定义int a[3][4];后,第10个元素是A)a[2][4] B)a[3][2] C)a[3][3] D)a[3][1]30.下面程序的输出结果是typedef struct{long x[2];short y[4];char z[8];}MYTYPE;MYTYPE a;main(){ printf("%d\n",sizeof(a));}A)2 B)8 C)14 D)2431.以下能正确进行字符串赋值的是A)char s[5]={‘a’,’e’,’I’,’o’,’u’} B)char s[5];s=”good”C)char s[5]=”abcd” D)char s[5];s[]=”good”32.若有float x;则sizeof(x)和sizeof(float)两种描述A)都正确B)都不正确C)前者正确,后者不正确D)后者正确,前者不正确33.若有代数式3ae/(bc),则不正确的C语言表达式是A)3*a*e/b*c B)3*a*e/b/c C)a/b/c*e*3 D)a*e/c/b*334.下面程序的运行结果是Main( ){struct cmplx{ int x;int y;}cnum[2]={1,3,2,7};Printf(“%d\n”,cnum[0].y/cnum[0].x*cnum[1].x);}A)0 B)1 C)3 D)635.若有以下说明和语句,且0<=i<10,则()是对数组元素的错误引用int a[]={1,2,3,4,5,6,7,8,9,0},*p,i;p=a;A)*(a+i) B)a[p-a] C)p+i D)*(&a[i])36.设有以下宏定义:#define M 2#define X(m) ((M+2)*m)则执行语句:z=2*(M+X(3+2));后,z的值为A)44 B)45 C)32 D)3337.在如下程序段中的while循环int k=0;While(k=1) k++;A)有语法错,不能执行B)无限循环C)一次都不执行D)执行一次38.下列程序运行的结果为#include<stdio.h>Main(){ int k=0;Char c=’A’;Do{switch(c++){ case ‘A’:k++;break;Case ‘B’:k- -;break;Case ‘C’:k+=2;break;Case ‘D’:k=k%2;break;Case ‘E’:k=k*10;break;Default:k=k/3;}K++;}while(c<’G’);Printf(“k=%d”,k);}A)k=4 B)k=6 C)k=7 D)k=839.下列程序运行的结果为#include<stdio.h>fun(int x,int y,int *cp,int *dp){*cp=x+y;*dp=x-y;}main(){ int a,b,c,d ;a=30 ;b=50;fun(a,b,&c,&d);printf(“%d,%d\n”,c,d);}A)50,30 B)30,50 C)80,-20 D)80,2040.阅读程序回答问题:main( ){ int i,j,k,m=0;for(i=1;i<4;i++)for(j=1;j<4;j++)for(k=1;k<4;k++)m++;printf(“M=%d”,m);}以上程序输出M=( ).A)3 B)6 C)9 D)2741.能将高级语言编写的源程序转换为目标程序的是A)链接程序B)解释程序C)编译程序D)编辑程序42.以下4组用户定义标识符中,全部合法的一组是A)main B)If C)txt D)intenclude -max REAL k_2sin turbo 3COM _00143.设有以下定义int a=0;double b=1.25;char c=’A’;#define d 2则下面语句中错误的是()A)a++ B)b++ C)c++ D)d++;44.以下4个选项中,不能看作一条语句的是A){;} B)a=0,b=0,c=0 C)if(a>0) D)if(b==0) m=1;n=2;45.有以下程序main( ){ char k; int i;for(i=1;i<3;i++){ scanf("%c",&k);switch(k){ case '0': printf("another\n");case '1': printf("number\n");}}}程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是A)another B)another C)another D)numbernumber number number numberanother number46.有以下程序void f(int v , int w){ int t;t=v;v=w;w=t;}main( ){ int x=1,y=3,z=2;if(x>y) f(x,y);else if(y>z) f(y,z);elsef(x,z);printf("%d,%d,%d\n",x,y,z);}执行后输出结果是A)1,2,3 B)3,1,2 C)1,3,2 D)2,3,147.有以下程序段int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是A)5 B)6 C)8 D)948.有以下程序#define f(x) x*xmain( ){ int i;i=f(4+4)/f(2+2);printf("%d\n",i);}执行后输出结果是A)28 B)22 C)16 D)449.设有以下语句typedef struct S{ int g; char h;}T;则下面叙述中正确的是A)可用S定义结构体变量B)可以用T定义结构体变量C)S是struct类型的变量D)T是struct S类型的变量50.有以下程序int a=2;int f(int *a){return (*a)++;}main( ){ int s=0;{ int a=5;s+=f(&a);}s+=f(&a);printf("%d\n",s);}执行后输出结果是A)10 B)9 C)7 D)851.组成C程序的基本单位是A)函数B)标识符C)表达式D)语句52.设int类型的数据长度为2字节,则该类型数据的取值范围A)0至65536 B)0至65535 C)-32767至32768 D)-32768至3276753.在C语言中,逻辑值“真”是用( )表示的。

c语言程序设计课后习题及答案

c语言程序设计课后习题及答案

c语言程序设计课后习题及答案C语言程序设计是计算机科学与技术专业的核心课程之一,它不仅教授了编程语言的基本知识,还培养了学生的逻辑思维能力和问题解决能力。

课后习题是巩固课堂学习内容的重要手段,以下是一些C语言程序设计的典型课后习题及答案。

习题1:基本数据类型编写一个程序,输入一个整数和一个浮点数,然后输出它们的和。

```c#include <stdio.h>int main() {int a;float b, sum;printf("请输入一个整数:");scanf("%d", &a);printf("请输入一个浮点数:");scanf("%f", &b);sum = a + b;printf("它们的和是:%f\n", sum);return 0;}```习题2:条件语句编写一个程序,根据输入的成绩判断学生的等级。

```c#include <stdio.h>int main() {float score;printf("请输入学生的成绩:");scanf("%f", &score);if (score >= 90) {printf("等级:A\n");} else if (score >= 80) {printf("等级:B\n");} else if (score >= 70) {printf("等级:C\n");} else if (score >= 60) {printf("等级:D\n");} else {printf("等级:F\n");}return 0;}```习题3:循环结构编写一个程序,计算1到100的整数之和。

程序设计基础(C语言)习题以及答案

程序设计基础(C语言)习题以及答案

其身正,不令而行;其身不正,虽令不从。

——《论语》一、选择题1.下列属于C语言中合法的标识符的是( B )A 、ex-1B 、-cookC 、951aD 、if2.若 x 为 float 型变量,则以下语句(A )。

x=213.82631;printf("%-4.2f\n",x);A、输出为213.83B、输出格式描述符的域宽不够,不能输出C、输出为213.82D、输出为-213.823.一个C程序的执行是从(C )A、main函数开始,直到最后一个函数结束B、第一个函数开始,直到最后一个函数结束C、main函数开始,直到main函数结束D、第一条语句开始,直到最后一条语句结4.构成C语言源程序的基本单位是(B )A、过程B、函数C、子程序D、命令5.以下叙述不正确的是(D )A、注释说明被计算机编译系统忽略B、注释说明必须跟在“//”之后不能换行或者括在“/*”和“*/”之间且注释符必须配对使用C、注释符“/”和“*”之间不能有空格D、在C程序中,注释说明只能位于一条语句的后面6.在C程序中,main函数的位置( A)A、可以任意B、必须作为最后一个函数C、必须作为第一个函数D、必须放在它所调用的函数之后7. C语言属于(C )A、机器语言B、汇编语言C、高级语言D、低级语言云路鹏程九万里,雪窗萤火二十年。

——《王实甫》人之为学,不日进则日退,独学无友,则孤陋而难成;久处一方,则习染而不自觉。

——《顾炎武》8.使用“scanf("a=%d,b=%d",&a,&b)”,要使a,b的值均为25,正确的输入是(D )。

A、a=25 b=25(空格分开)B、25 25(空格分开)C、25,25D、a=25,b=259. 下列叙述中,不正确的是( C)A、分号是C语句的必要组成部分B、C语句的注释可以写在语句的后面C、主函数的名字不一定用main表示D、函数是C程序的基本单位10.C程序是由( B)构成的A、若干过程B、一个或多个函数C、若干子程序D、一个主程序与若干子程序11. 以下程序的输出结果是(B )。

《C语言程序设计》课后习题答案(第四版)

《C语言程序设计》课后习题答案(第四版)

第1章程序设计和C语言11.1什么是计算机程序11.2什么是计算机语言11.3C语言的发展及其特点31.4最简单的C语言程序51.4.1最简单的C语言程序举例61.4.2C语言程序的结构101.5运行C程序的步骤与方法121.6程序设计的任务141-5 #include <stdio.h>int main ( ){ printf ("**************************\n\n");printf(" Very Good!\n\n");printf ("**************************\n");return 0;}1-6#include <stdio.h>int main(){int a,b,c,max;printf("please input a,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if (max<b)max=b;if (max<c)max=c;printf("The largest number is %d\n",max); return 0;}第2章算法——程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用N S流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3C语句573.3.1C语句的作用和分类573.3.2最基本的语句——赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题823-1 #include <stdio.h>#include <math.h>int main(){float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf("p=%f\n",p);return 0;}3-2-1#include <stdio.h>#include <math.h>int main(){float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p1=p*((1+r5)*5); // 一次存5年期p2=p*(1+2*r2)*(1+3*r3); // 先存2年期,到期后将本息再存3年期p3=p*(1+3*r3)*(1+2*r2); // 先存3年期,到期后将本息再存2年期p4=p*pow(1+r1,5); // 存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5); // 存活期存款。

C语言程序设计习题(含答案)

C语言程序设计习题(含答案)

C语言程序设计习题(含答案) C语言程序设计习题(含答案)C语言是一种常用的编程语言,被广泛应用于计算机科学和软件开发领域。

为了帮助学习者更好地掌握C语言的编程技巧,本文提供一些常见的C语言程序设计习题及其答案。

通过完成这些习题,学习者可以锻炼编程思维,加深对C语言的理解,并提高编程能力。

习题一:求两个整数的和题目描述:编写一个程序,计算两个整数的和并输出结果。

解答:```C#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```习题二:计算圆的周长和面积题目描述:编写一个程序,根据用户输入的半径,计算圆的周长和面积,并输出结果。

解答:```C#include <stdio.h>#define PI 3.14159int main() {double radius, circumference, area;printf("请输入圆的半径:");scanf("%lf", &radius);circumference = 2 * PI * radius;area = PI * radius * radius;printf("圆的周长为:%lf\n", circumference);printf("圆的面积为:%lf\n", area);return 0;}```习题三:判断一个数是否为素数题目描述:编写一个程序,判断用户输入的一个正整数是否为素数。

解答:```C#include <stdio.h>int isPrime(int num) {if (num <= 1) {return 0;}for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return 0;}}return 1;}int main() {int num;printf("请输入一个正整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}```习题四:计算两个矩阵的乘积题目描述:编写一个程序,计算两个3x3的矩阵的乘积并输出结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第六章习题 P159-161一、复习题1、简述自然语言与形式语言的概念以及区别、汇编语言与机器语言的概念及区别。

自然语言是某一社会发展中形成的一种民族语言,而形式语言是进行形式化工作的元语言,它是以数学和数理逻辑为基础的科学语言。

用机器指令形式编写的程序称为机器语言,用带符号或助记符的指令和地址代替二进制代码成为语言进化的目标。

这些使用助记符语言的语言后来就被称之为汇编语言。

(P144- P146)2、试述计算机语言的类型,它们各有什么特点?1.机器语言,是最低级的语言,由二进制码组成,最早期的程序员通过在纸带上打点来写程序2.汇编语言,用助记符和地址符代替了二进制码,更易于编写。

3.高级语言,相对于汇编语言又上升了一步,更接近于自然语言,如C语言、Pascal、Java、C#等都是高级语言。

(P145-147)3、列举程序设计语言的几种范型。

程序语言大致分为命令式程序设计语言、面向对象的程序设计语言、函数式程序设计语言和逻辑型程序设计语言等范型。

(P147-149)4、简述语言虚拟机。

提示:语言虚拟机是某种语言的解释器。

语言虚拟机是建立在硬件和操作系统之上,针对不同的硬件和操作系统有不同的虚拟机,通过语言虚拟机屏蔽掉硬件的差异。

这样使得硬件系统能够支持这种语言编写的程序的有效执行。

目前最流行的语言虚拟机是Java虚拟机。

(P156)5、计算机执行用高级语言编写的程序有哪些途径?它们之间的主要区别是什么?提示:主要有编译、解释等方式,也有两种方式的混合使用的形式。

编译是使用编译器将高级语言编写的源程序转换成计算机可以执行的机器语言可执行程序,也可以理解为用编译器产生可执行程序的动作。

编译方式是一次编译,然后执行程序可以反复多次执行。

解释是另一种将高级语言转换为可执行程序的方式。

与编译不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,每个语句都是执行的时候才翻译。

这样解释性语言每执行一次就要翻译一次,效率比较低。

近来随着网络的发展,为了实现跨平台但同时又保证一定的效率,出现了编译、解释混合的方式,先用伪编译形成效率较高中间代码,再用语言虚拟机进行解释执行,以屏蔽掉硬件的差异。

(P154-157)6、请画出编译程序的总框图。

如果你是一个编译程序的总设计师,设计编译程序时应当考虑哪些问题?作为一个编译程序的总设计师,首先要深刻理解被编译的源语言其语法及语义;其次,要充分掌握目标指令的功能及特点,如果目标语言是机器指令,还要搞清楚机器的硬件结构及操作系统的功能;第三,对编译的方法及使用的软件工具也必须准确化。

总之,总设计师在设计编译程序时必须估量系统功能要求、硬件设备及软件工具等诸因素对编译程序构造的影响等。

(P154-156)7、什么是IDE?IDE集成开发环境的简称(Integrated Develop Environment)是一套用于程序开发的软件工具集合,一般包括源代码编辑器、编译器、调试器和图形用户界面工具。

(P158)8、简述程序设计语言的基本构成元素。

程序设计语言的语法元素主要有:字符集、表达式、语句、标识符、关键字和保留字、注释等组成。

(P149-P151)9、简述标识符及其作用域的概念标识符是程序设计时设计人员用来命名事物的符号。

标识符的作用域是指其被定义的有效的范围,同一个表现形式的标识符在不再的区域里可以代表不同的含义。

(P150)10、说明将源程序转化为计算机能够识别的指令的过程。

提示:该转化过程即为编译的基本过程,包括词法分析;语法分析;中间代码生成;代码优化;目标代码生成等五个阶段,各阶段有具体的任务。

(P154-155)二、练习题(一)填空题1、____________语言的书写方式接近于人们的思维习惯,使程序更易阅读和理解。

高级语言(P146)2、程序语言中的控制成分包括顺序结构、__________和循环结构。

选择结构(P153)3、在基于继电器的计算机器时代,所谓“程序设计”实际上就是设置__________开关,所以通常的情况是“设置程序”的时间比计算时间长。

继电器(P145)4、自然语言的基本特征包括_________和_____________________。

歧义性、不够严格和不够统一的语法结构(P144)5、自然语言的输入可以使用___________、___________、___________、___________等方式。

6、函数与过程最明显的区别在于_________________。

{ 过程本身不返回值,而函数本身返回值 }(P154)7、通常按照程序运行时数据的_____能否改变,将数据分为常量和变量。

{ 值 } (P151)8、__________是将源程序转换为一种中间类型的代码,通常其生成的是非常接近机器语言的二进制代码。

伪编译(P156)9、集成开发环境(IDE)是一套用于程序开发的软件工具集合,一般包括___________、___________、___________和___________等工具。

{ 源代码编辑器、编译器、调试器和图形用户界面 } (P158)10、用运算符号按一定的规则连接起来的、有意义的式子称为__________。

表达式(P151)11、保留字也叫___________,指在语言中已经定义过的字,使用者不能再将这些字来命名其他事物。

关键字(P150)12、操作符是用来代表运算操作的符号,每个操作符表示一种运算操作。

通常语言中具备___________、___________、___________和___________等等几类。

赋值操作符、算术操作符、比较操作符、逻辑操作符、位操作符(P150)13、类是面向对象语言必须提供的由用户定义的数据类型,它是将具有相同___________、___________、___________的多个对象抽象而成的。

状态、操作和访问机制(P148)14、科学的语言基本上是___________性、___________性而非评论性的。

描述性、断定性(P145)15、_________是能被其他程序调用,在实现某种功能后能自动返回到调用程序去的程序。

子程序(P153)16、形式语言是进行形式化工作的元语言,它是以________和________为基础的科学语言。

数学和数理逻辑(P145)17、匈牙利命名法的基本原则是:标识符=____________+____________+____________。

属性类型对象描述(P150)18、程序语言的分类没有统一的标准,根据程序设计的方法将程序语言大致分为____________、____________、____________和____________设计语言等类型。

命令式程序设计语言、面向对象的程序设计语言、函数式程序设计语言和逻辑型程序设计语言(P159)19、逻辑型语言是一类以___________为基础的语言,其代表是Prolog语言,这种语言与数据库SQL语言有很多相似之处。

形式逻辑(P148)20、____________的选择是语言设计的第一件事。

字符集(P149)(二)选择题1、结构化程序设计主要强调的是______。

A、程序的规模B、程序的易读性C、程序的执行效率D、程序的可移植性B (P146)2、程序设计语言从机器语言到高级语言的抽象,带来的主要好处是_____。

A、高级语言接近算法语言,易学、易掌握B、可读性好,可维护性强,可靠性高C、设计的程序可移植性好,重用率高D、高级语言程序设计自动化程度高,开发周期短A (P146)3、下面是关于解释程序和编译程序的论述,其中正确的一条是__________A、编译程序和解释程序均能产生目标程序B、编译程序和解释程序均不能产生目标程序C、编译程序能产生目标程序而解释程序则不能D、编译程序不能产生目标程序而解释程序能A (P155)4、近来计算机报刊中常出现的“Java”一词是指_________。

A、一种计算机语言B、一种计算机设备C、一个计算机厂商云集的地方D、一种新的数据库软件A (P156)5、采用编译方法的高级语言源程序在编译后_________。

A、生成目标程序B、生成可在DOS下直接运行的目标程序C、生成可执行程序D、生成可在DOS下直接运行的可执行程序C (P155)6、用高级程序设计语言编写的程序,要转换成等价的可执行程序,必须经过____。

A、汇编B、编辑C、解释D、编译和连接D (P155)7、计算机硬件能直接执行的只有____。

A、符号语言B、机器语言C、机器语言和汇编语言D、汇编语言B (P145)8、只有当程序要执行时,它才会将原程序翻译成机器语言,并且一次只能读取、翻译并执行原程序中的一行语句,此程序称为____。

A、目标程序;B、编辑程序;C、解释程序;D、汇编程序。

C ( P156)9、构造编译程序应掌握____。

A、源程序B、目标语言C、编译方法D、以上三项都是D ( P154)10、编译程序绝大多数时间花在A、出错处理B、词法分析C、目标代码生成D、表格管理D ( P154)11、如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,这个变量的存储类型应该被说明为____。

A、静态变量B、动态变量C、外部变量D、内部变量D (P152)12、在C语言中,函数的数据类型是指____。

A、函数返回值的数据类型B、函数形参的数据类型C、调用该函数时的实参的数据类型D、任意指定的数据类型A13、自然语言的计算机处理可以分为___________A、文字和语音B、语义C、语法D、语用A14、DLL的优点有_____________A、程序实现模块化B、可方便地升级C、程序加载速度快D、程序不用编译A B C (P157)(三)判断题1、汇编语言语句与特定的机器指令有一一对应的关系(对)2、支撑机器语言的理论基础是冯诺依曼模型(错)3、形式化语言是人工语言符号系统发展的第三阶段(错)(四)讨论题1、简述匈牙利命名法。

匈牙利命名法。

其基本原则是:标识符=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。

命名要基于容易记忆容易理解的原则。

(P150)2、试比较“while型”循环结构和“do-while型”循环结构。

“while型”循环结构的逻辑含义是先判断条件,若成立,则执行需要重复的程序块,然后再去判断重复条件, 以决定是否继续循环。

“do-while型”循环结构的逻辑含义是先执行需要重复的循环体,然后计算关系表达式,以决定是否继续循环。

也就是说使用“while型”循环结构可能不进行入循环,循环体一次也不执行;而“do-while型”循环结构至少要执行一次循环体。

相关文档
最新文档