当前位置:文档之家› 13本程序设计语言基础复习题

13本程序设计语言基础复习题

13本程序设计语言基础复习题
13本程序设计语言基础复习题

一、判断题

1.C语言中,为了区别一般的变量,符号常量必须用大写字母表示。错

2.C语言中,强制类型转换后,原变量的值和数据类型不变。对

3.switch…case结构中条件表达式和常量表达式值可以为float类型。错

4.C语言中,do-while语句构成的循环只能用break语句退出。错

5.C语言中,数组元素的下标是从1开始的,下标不能越界。错

6.一个数组中的所有元素可以具有不相同的数据类型。错

7.C语言中,实参的个数、类型和位置必须与形参的定义一一对应。对

8.所有的函数调用前都必须进行函数原型说明。错

9.C语言通过文件指针对它所指向的文件进行操作。对

10.在程序运行过程中,可通过赋值语句改变常量的值。错

11.在一个循环体中,break和continue只能出现一次。错

12.C语言中,字符串以字符数组形式存放,且规定了用?\0?作为结束标记。对

13.常量、表达式可以做为函数的形参。错

14.C语言程序是函数体程序,main()是主函数。对

15.在程序运行过程中,可通过重定义改变变量的类型。错

16.在if语句中使用break,可退出选择结构。错

17.函数的递归调用同样适用于主函数main()。对

18.指针变量存放的是地址信息,所以对指针变量进行加、减等算术运算是没有意义的。错

19.C语言数据文件由二进制数据序列组成,C语言中能读写二进制文件。对

20.C语言中的文本文件以ASCII码形式存储数据。对

二、单项选择题

1.下面各选项中,均是C语言合法标识符的选项组是(B)。

A. 33 we auto

B. _23 me _3ew

C. _43 3e_ else

D. ER -DF 32

2.若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是(C)。

A. scanf("%d",&p);

B. scanf("%d%d%d",a,b,c);

C. scanf("%d",p);

D. scanf("%d",a,b,c);

3.表达式:(int)((double)9/2)-(9)%2的值是(B )。

A.0

B.3

C.4

D.5

4.以下程序段的描述,正确的是(C )。

x=-1;

do

{x=x*x;} while(!x);

A. 是死循环

B. 循环执行两次

C. 循环执行一次

D. 有语法错误

5.在下述程序中,判断i>j共执行的次数是(D )。

main()

{ int i=0, j=10, k=2, s=0;

for (;;)

{ i+=k;

if(i>j)

{ printf("%d",s);

break;

} s+=i;

}

}

A. 4

B. 7

C. 5

D. 6

6.有以下结构体说明、变量定义和赋值语句(D)。

struct STD

{char name[10];

int age;

char sex;

}s[5],*ps;

ps=&s[0];

则以下scanf函数调用语句中错误引用结构体变量成员的是(D)。

A. scanf(“%s”,s[0].name);

B. scanf(“%d”,&s[0].age);

C. scanf(“%c”,&(ps->sex));

D. scanf(“%d”,ps->age);

7.下列关系表达式中,结果为“假”的是(D)

A.(3+4)>6 B.(3!=4)>2

C.3<=4||3 D.(3<4)==1

8.下列关于开关语句中的描述中,错误的是(D )。

A.开关语句中,case子句的个数是不受限制的。

B.开关语句中,default子句的语句可以省略。

C.开关语句中,右花括号具有退出开关语句的功能。

D.开关语句中,case子句的语句序列中一定要有break语句。

9.语句int *p=&k;定义了指针变量p,与这个语句等效的语句是(C)。

A.int *p;p=k; B.int *p;*p=&k

C.int *p;p=&k ; D.int p;*p=k

10.设有定义:int x[2][3];则以下关于二维数组x的叙述错误的是(D )。

A.x[0]可看作是由3个整型元素组成的一维数组

B.x[0]和x[1]是数组名,分别代表不同的地址常量

C.数组x包含6个元素

D.可以用语句x[0]=0;为数组所有元素赋初值0

11.下列关于编译预处理的描述,错误的是(B )。

A.预处理在编译前执行

B.预处理指令需要分号结束

C.每条预处理指令要单独占一行

D.预处理指令可以出现在程序的任何地方

12.设有定义:int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是(C)。

A.if(a>b) c=a,a=b,b=c;

B.if(a>b) {c=a,a=b,b=c;}

C.if(a>b) c=a;a=b;b=c;

D.if(a>b) {c=a;a=b;b=c;}

13.有以下定义语句,编译时会出现编译错误的是(C )。

A.char a=?a?

B.char a=?\n?;

C.char a=?aa?;

D.char a=?\x2d?;

14.若有定义语句:int a[4][10],*p,*q[4];且0≤i<4,则错误的赋值是(A)。

A.p=a

B.q[i]=a[i]

C.p=a[i]

D.p=&a[2][1]

15.下面是有关C语言字符数组的描述,其中错误的是(D)。

A.不可以用赋值语句给字符数组名赋字符串

B.可以用输入语句把字符串整体输入给字符数组

C.字符数组中的内容不一定是字符串

D.字符数组只能存放字符串

16.下列程序的运行结果为( A)。

#include

int main()

{

char a[]="morning";

int i, j=0;

for(i=1; i<7; i++)

if(a[j]

j=i;

a[j]=a[7];

puts(a);

return 0;

}

A.mo B.mogninr C.morning D.mornin

17.变量的指针,其含义是指该变量的( A)。

A.地址B.值C.名D.一个标志

18.若有说明:int *p,m=5,n;以下程序段合法的是( D)。

A.p=&n ; B.p = &n ;

scanf(“%d”, &p);scanf(“%d”,*p);

C.scanf(“%d”, &n);D.p = &n ;

*p=n ; *p = m ;

19.对定义语句:int a[10]={5,6,7,8,9,10};的正确理解是( C)。

A. 将6个初值赋给a[1]至a[6]

B. 将6个初值赋给a[5]至a[10]

C. 将6个初值赋给a[0]至a[5]

D. 此语句不正确

20.当定义一个结构体变量时,系统分配给它的内存是( A )。

A.各成员所需内存量的总和

B.结构体中第一个成员所需内存量

C.成员中占内存量最大的容量

D.结构体中最后一个成员所需内存量

三、填空题

1.C语言程序的三种基本结构,分别是顺序结构、选择结构和循环结构。

2.若x=1,y=2,z=3,则表达式x

3.若x=12,z=0;执行语句z+=++x+1;则z的值为14 。

4.有字符数组定义char str[80]; 从键盘接收一个字符串存入该数组中,语句应是getchar(str) 。

5.在循环过程中,若要跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定,应使用

continue语句。

6.有以下程序段,且变量已正确定义和赋值

for(s=1.0,k=1;k<=n;k++)

s=s+1.0/(k*(k+1));

printf("s=%f\n",s);

请填空,使下面程序段的功能与其完全相同。

s=1.0;k=1;

while( k<=n){ s=s+1.0/(k*(k+1)); k++;}

printf("s=%f\n\n",s);

}

7.以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最

小的数与第一个数对换,把最大的数与最后一个数对换。请填空。

#include

viod f(int x[],int n)

{ int p0,p1,i,j,t,m;

i=j=x[0]; p0=p1=0;

for(m=0;m{ if(x[m]>i) {i=x[m]; p0=m;}

else if(x[m]}

t=x[p0]; x[p0]=x[n-1]; x[n-1]=t;

t=x[p1];x[p1]= x[n]; x[n]=t;

}

main()

{ int a[10],u;

for(u=0;u<10;u++) scanf("%d",&a);

f(a,10);

for(u=0;u<10;u++) printf("%d",a);

printf("\n");

}

8.下列程序中的函数strcpy2()实现字符串两次复制,即将t所指字符串复制两次到s所指内存空间中,

合并形成一个新的字符串。例如,若t所指字符串为efgh,调用strcpy2后,s所指字符串为efghefgh。

请填空。

#include

#include

void strcpy2(char *s,char *t)

{ char *p=t;

while(*s++=*t++);

s= s-1;

while( *s++ =*p++);

}

main()

{ char str1[100]="abcd",str2[]="efgh";

strcpy2(str1 ,str2); printf("%s\n",str1);

}

9.以下程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,num[1]中统计字

母B的个数,其它依次类推.用#号结束输入,请填空。

#include

#include

main()

{ int num[26]={0},i; char c;

while(( c=getchar() )!='#')

if(isupper(c)) num[c-…A?]+= 1 ;

for(i=0;i<26;i++)

printf("%c:%d\n",i+'A',num);

} 10. 以下程序中,函数fun 的功能是计算x2-2x+6,主函数中将调用fun 函数计算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

请填空。

#include "math.h"

double fun(double x) { return(x*x-2*x+6); }

main()

{

double x,y1,y2;

printf("Enter x:"); scanf("%lf",&x);

y1=fun( 8+x );

y2=fun( sin(x) );

printf("y1=%lf,y2=%lf\n",y1,y2);

}

11. 有一个链表结构,如图所示:

下列代码段实现的功能是在p1结点和p2结点之间插入结点p ,根据功能填空。

if ( p == NULL ) printf("Can Not Insert a NULL Node into Link List!\n");

else{

p->next = p2 ;

p1->next =p ;

}

12. C 语言中调用 fopen() 函数来打开文件,C 语言中调用 fclose() 函数来关闭文件。

13. 程序中有语句 c=sqrt(n); 则在程序的首部必须写上 #include

14. 指针P 用于指向整型数据,则该变量的定义语句为 int i = 0;int* p = &i; 。

15. 在循环体中,continue();语句的作用是 跳过循环体中剩余的语句而进行下一次循环 。

16. 定义二维整型数组a,4行10列,定义语句是 int a[4][10] 。

17. 若a 、b 和c 均是int 型变量,则计算表达式a=(b=4)+(c=2)后,a,b,c 的值分别是为 a=6,b=4,c=2 。

18. 表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))结果的数据类型为 int 。 19. 数学表达式2()a b 等价的C 语言表达式是 pow((a-b),2) 。

20. 至少执行一次循环体的循环语句是 do-while 语句 。

21. 若有定义语句:int a[4]={0,1,2,3},*p;p=&a[1];则++(*p)的值是 2 。

22. 若有 int a[10]; 则a 数组的最后一个元素表示为 a[9] 。

23. 若有定义int a,b ;则“a,b 中只有一个大于零”的表达式是 (a>0&&b<0)||(a<0&&b>0) 。

24. 静态变量如果没有指定初值,则其初值为 0 。

25. 设有以下定义:

#define N 10

#define M(x) x*N

执行语句a=M(1+1)后,a的值为20。

26.C源程序的基本单位是函数。

27.下面程序的功能是对3个浮点数进行从大到小排序,请填空。#include

int main( ){

float a,b,c,t;

scanf("%f,%f,%f",&a,&b,&c);

if ( a-b <0 ){

t=a;a=b;b=t;

}

if ( a-c<0){

t=a;a=c;c=t;

}

if ( b-c <0 ){

t=b ;

b=c;

c=t ;

}

printf("%5.2f,%5.2f,%5.2f\n",a,b,c);

return 0;

}

28.以下程序是利用“辗转相除法”,求两个正整数的最大公约数。#include

int main(){

int r,m,n;

scanf(“%d,%d,”,&m,&n);

if(m

r=m; m=n; n=r;

}

r=m%n;

while( ( r=m%n) !=0){

m=n; n=r; r= m ;

}

printf(“最大公约数:%d\n”,n);

retrun 0;

}

29.下面程序用变量num统计文件中字符的个数。补足所缺语句。#include

int main( ) {

FILE*fp ;

long num=0;

if((fp=fopen("file.txt","r"))==NULL) {

printf("cannot open the file\n");

exit(0);

}

while(!feof(fp)) {

fgetc(fp);

num++ ;

}

printf("num=%ld\n",num);

fclose(fp);

return 0;

}

30. 下列程序实现的功能是求分数数列 ,5

8,35,23,12--前20项之和。 #include

int main()

{

int s=1,i;

double a=2.0,b=1.0;

double sum=0;

for(i=1;i<=20;i++)

{

sum=sum+s*a/b;

a=a+b;

b=a-b;

s=(-1)*s;

}

printf("数列的和为:%.4lf\n",sum);

return 0;

}

四、 程序阅读题

1. 若运行时输入:246<回车>,写出以下程序运行后的输出结果。

#include

int main(void)

{

int x[3][2]={0},i;

for(i=0;i<3;i++)

scanf("%d",x[i]);

printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);

return 0;

} 2. 写出以下程序运行后的输出结果。

#include

int main(void)

{

int a[3][3], *p,i;

p=&a[0][0];

for (i=1; i<9; i++)

p[i]=i+1;

printf ("%d\n",a[1][2]);

return 0;

}

3.以下程序运行时,当输入Nanjing University of Information & Technology回车,写出程序的运行结果。#include

int main( ){

char str[80];

scanf("%s",str);

printf("%s\n",str);

return 0;

}

4.写出下面程序的输出结果。

#include

int main ( ){

int k=1,n=263 ;

do { k *= n%10 ; n/=10 ; } while (n) ;

printf("%d\n",k);

return 0;

}

5.当运行以下程序时,从键盘输入:Aha Aha回车,写出程序的运行结果。

#include

int main(){

char s[80],c='a';

int i=0;

scanf("%s",s);

while(s[i]!='\0'){

if(s[i]==c) s[i]=s[i]-32;

else if(s[i]==c-32) s[i]=s[i]+32;

i++;

}

puts(s);

return 0;

}

6.写出下面程序的输出结果。

#include

int a=3 , b=5;

int max(int a,int b){

int c;

c=a>b?a:b;

return (c);

}

int main( ) {

int a=8;

printf(“%d”,max(a,b));

return 0;

}

7.输入5回车后,写出下面程序的执行结果。

#include

long int fac(int );

int main(){

int n;

scanf("%d",&n);

printf("%d\n",fac(n));

return 0;

}

long int fac(int m){

long int f;

if(m<0)

printf("data error!\n");

else if(m==0||m==1)

f=1;

else

f=fac(m-1)*m;

return f;

}

8.从键盘输入27回车,写出下面程序执行的结果。#include

int main(){

int x,y,i,a[8],j,u;

scanf("%d",&x);

y=x;i=0;

do{

u=y/2;

a[i]=y%2;

i++;y=u;

}while(y>=1);

for(j=i-1;j>=0;j--)

printf("%d",a[j]);

return 0;

}

9.写出以下程序运行后的输出结果。

#include

void fun(char *t,char *s)

{

while(*t!=0)t++;

while((*t++=*s++)!=0);

}

int main(void)

{

char ss[10]=”acc”,aa[10]=”bbxxyy”;

fun(ss,aa);

printf(“%s,%s\n”,ss,aa);

return 0;

}

10.写出以下程序运行后的输出结果。

#include

int main(void)

{

int a=1,b=3,c=5;

int *p1=&a,*p2=&b,*p=&c;

*p=*p1*(*p2);

printf("%d\n",c);

return 0;

}

11.以下程序时,从键盘输入ADescriptor(表示回车),写出以下程序运行后的输出结果。

#include

int main(void)

{ char c;

int v0=1,v1=0,v2=0;

do

{

switch(c=getchar())

{

case ′a′:case ′A′:

case ′e′:case ′E′:

case ′i′:case ′I′:

case ′o′:case ′O′:

case ′u′:case ′U′:v1+=1;

default:v0+=1;v2+=1;

}

} while(c!=′\n′);

printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);

}

12.写出以下程序运行后的输出结果。

#include

#include

struct A

{

int a;

char b[10];

double c;

};

struct A f(struct A t);

int main(void)

{

struct A a={1001,”ZhangDa”,1098.0};

a=f(a);

printf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);

return 0;

}

struct A f(struct A t)

{

t.a=1002;

strcpy(t.b,”ChangRong”);

t.c=1202.0;

return t;

}

13.若运行时输入:246<回车>,写出以下程序运行后的输出结果。

#include

int main(void)

{

int x[3][2]={0},i;

for(i=0;i<3;i++)

scanf("%d",x[i]);

printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);

return 0;

}

14.写出以下程序运行后的输出结果。

#include

int main(void)

{

int a[3][3], *p,i;

p=&a[0][0];

for(i=1; i<9; i++)

p[i]=i+1;

printf("%d\n",a[1][2]);

return 0;

}

15.写出以下程序运行后的输出结果。#include

void fun(char *t,char *s)

{

while(*t!=0)t++;

while((*t++=*s++)!=0);

}

int main(void)

{

char ss[10]=”acc”,aa[10]=”bbxxyy”;

fun(ss,aa);

printf(“%s,%s\n”,ss,aa);

return 0;

}

16.写出以下程序运行后的输出结果。

#include

int main(void)

{

int a=1,b=3,c=5;

int *p1=&a,*p2=&b,*p=&c;

*p=*p1*(*p2);

printf("%d\n",c);

return 0;

}

17.以下程序时,从键盘输入ADescriptor(表示回车),写出以下程序运行后的输出结果。

#include

int main(void)

{ char c;

int v0=1,v1=0,v2=0;

do

{

switch(c=getchar())

{

case ′a′:case ′A′:

case ′e′:case ′E′:

case ′i′:case ′I′:

case ′o′:case ′O′:

case ′u′:case ′U′:v1+=1;

default:v0+=1;v2+=1;

}

} while(c!=′\n′);

printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);

}

18.写出以下程序运行后的输出结果。

#include

#include

struct A

{

int a;

char b[10];

double c;

};

struct A f(struct A t);

int main(void)

{

struct A a={1001,”ZhangDa”,1098.0};

a=f(a);

printf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);

return 0;

}

struct A f(struct A t)

{

t.a=1002;

strcpy(t.b,”ChangRong”);

t.c=1202.0;

return t;

}

五、程序设计题

1.编写程序,实现如下功能。

从键盘输入一数值给变量x,若x大于60,则输出pass,否则输出nopass。

#include

int main(void)

{

int x;

printf("Input:");

scanf("%d",&x);

if(x>60)

printf("pass");

else

printf("nopass");

return 0;

}

2.编写程序,实现如下功能:

输入一串字符,并以回车结束。将其中的小写字母转换成大写字母,而其它字符不变,输出转换字母的个数。

若有:char ch = …a?;

转换成大写字母的操作为:ch = ch – 32;

#include

int main(void)

{

char ch,count;

printf("Input a string:");

ch=getchar();

while(ch!='\n')

{

if(ch>='a'&&ch<='z')

ch=ch-32;

count++;

ch=getchar();

}

printf("%d",count);

return 0;

}

3.编写程序实现如下功能:

有10个学生,每个学生的数据包括学号,姓名和成绩,从键盘输入10个学生数据,要求输出成绩总和,以及分数最高的学生的数据(包括学号,姓名,成绩)。

#include

#define N 10

struct student

{

int num;

char name[];

int score;

};

int main(void)

struct student stu[N];

int i=0,sum;

printf("Input Data:\n");

for(i=0;i

scanf("%d%s%d",&stu[i].num,&stu[i].name,&stu[i].score);

for(i=0;i

{

if(stu[i].score>stu[i+1].score)

printf("%d%s%d\n",stu[i].num,stu[i].name,stu[i].score);

else

printf("%d%s%d\n",stu[i+1].num,stu[i+1].name,stu[i+1].score);

sum=stu[i].score+stu[i+1].score;

printf("%d\n",sum)

return 0;

}

4.编写程序,实现如下功能。

输入n值,输出高度为n的等边三角形。例如当n=4时的图形如下。

*

***

*****

*******

#include

int main(void)

{

int row,col,n;

printf("N: ");

scanf("%d",&n);

for(row=1;row<=2*n;row++)

{

if(row%2==1)

for(col=1;col<=row;col++)

printf("*");

printf("\n");

}

return 0;

}

5.以下程序完成的是冒泡排序,至少有五个错误,请指出并改正。main()

{ int a[10];i; j; t;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

printf(…\n?);

for(i=0;i<9;i++)

for(i=0;i<9-j;i++)

if(a[i]>a[i+1]);

{t=a[i]; a[i]=a[i+1]; a[i+1]=t;}

printf("The sorted numbers:\n");

printf("%d ",a);

}

#include

int main()

{

int a[10],i,j,t;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(i=0;i<9;i++)

if(a[i]>a[i+1])

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

for(i=0;i<10;i++)

printf("The sorted numbers:%d\n",a[i]);

return 0;

}

6.将1-100的整数在屏幕上输出,每行10个,每个数字间用制表位分隔。请写出主要程序段。

#include

int main(void)

{

int i;

for(i=1;i<=100;i++)

{printf("%d\t",i);

if(i%10==0)

printf("\n");}

return 0;

}

7.写程序,从键盘输入十个任意的整数存放于数组a[10]中,分别求出它们的最大数、最小数和平均数,

分别放于变量max、min和aver中。

#include

#define N 10

int main()

{

int a[N],i,max,min,sum;

float aver;

for(i=0;i

scanf("%d",&a[i]);

max=min=a[0];

sum=a[0];

for(i=1;i

{

sum+=a[i];

if(a[i]>max)

max=a[i];

if(a[i]

min=a[i];

}

aver=(float)sum/10;

printf("max:%d,min:%d,aver:%f\n",max,min,aver);

return 0;

}

8.给定程序MODI1.C中函数fun的功能是:计算正整数num的各位上的数字之积。

例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。

请改正程序中的错误,使它能得出正确的结果。

#include

long fun (long num)

{

/************found************/

long k; long k=1;

do

{k*=num%10 ;

/************found************/

num\=10 ; num=num/10;

} while(num);

return (k);

}

main()

{long n ;

printf("\nPlease enter a number:"); scanf("%ld",&n);

printf("\n%ld\n",fun(n));

}

9.编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。

float fun(float a[],int n)

{

int i;

float s=0,t;

for(i=0;i

s=s+a[i];

t=s/n;

return(t);

}

10.给定程序MODI1.C中fun函数的功能是:将n个无序整数从小到大排序。请改正程序中的错误,使

它能得出正确的结果。

#include

#include

fun (int n, int *a)

{int i, j, p, t;

for (j = 0; j

{p = j;

/************found************/

for (i=j+1; i

if (a[p]>a[i])

/************found************/

t=i; p=i;

if (p!=j)

{t = a[j]; a[j] = a[p]; a[p] = t;}

}

}

putarr(int n, int *z)

{int i;

for (i = 1; i <= n; i++, z++)

{printf("%4d", *z);

if (!(i%10)) printf("\n");

} printf("\n");

}

main()

{int aa[20]={9,3,0,4,1,2,5,6,8,10,7}, n=11;

printf("\n\nBefore sorting %d numbers:\n", n); putarr(n, aa);

fun(n, aa);

printf("\nAfter sorting %d numbers:\n", n); putarr(n, aa);

}

11.请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。

例如:若有5门课程的成绩是:90.5, 72, 80, 61.5, 55

则函数的值为:71.80。

float fun(float a[],int n)

{

int i;

float s=0,t;

for(i=0;i

s=s+a[i];

t=s/n;

return(t);

}

12.给定程序的功能是:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。

例如,若输入整数:2310,则应输出:2、3、5、7、11。请改正程序中的语法错误,使程序能得出正确的结果。

#include

/************found************/

IsPrime (int n); /*定义函数*/ int IsPrime(int n )

{int i, m;

m = 1;

for (i = 2; i < n; i++)

/************found************/

if !(n%i) if ( n%i==0 )

{m = 0; break ;}

return (m); return m;

}

main()

{int j, k;

printf("\nPlease enter an integer number between 2 and 10000: "); scanf("%d", &k);

printf("\n\nThe prime factor(s) of %d is(are):", k);

for(j = 2; j <= k; j++)

if((!(k%j))&&(IsPrime(j)) ) printf("\n %4d", j);

printf("\n");

}

13.已知学生的记录由学号和学习成绩构成,N名学生的数据已存入结构体数组a中。请编写函数fun,

函数的功能是:找出成绩最高的学生记录,通过形参指针传回主函数(规定只有一个最高分)。函数的首部fun(struct ss a[],struct ss *s),请完成该函数。

struct ss fun(struct ss a[],struct ss *s)

{

int i;

s=a;

for(i=1;i

{

if(a[i].s>s->s)

{

*s=a[i];

}

}

return (*s);

}

14.}写程序,从键盘输入十个任意的整数存放于数组a[10]中,分别求出它们的最大数、最小数和平均数,

分别放于变量max、min和aver中。

#include

#define N 10

int main()

{

int a[N],i,max,min,sum;

float aver;

for(i=0;i

scanf("%d",&a[i]);

max=min=a[0];

sum=a[0];

for(i=1;i

{

sum+=a[i];

if(a[i]>max)

max=a[i];

if(a[i]

min=a[i];

}

aver=(float)sum/10;

printf("max:%d,min:%d,aver:%f\n",max,min,aver);

return 0;

}

C++语言程序设计复习题

《C++程序设计》复习题 一、选择题 1.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是( ) A、类 B、对象 C、函数体 D、数据块 2.面向对象的程序设计语言必须具备的关键要素是( ) A、抽象和封装 B、抽象和多态性 C、抽象、封装、继承和多态性 D、抽象、封装和继承性 3.类的构造函数被自动调用执行的情况是在定义该类的( ) A、成员函数时 B、数据成员时 C、对象时 D、友元函数时 4.设有函数模板 template Q Sum(Qx,Qy){ return(x)+(y); } 则下列语句中对该函数模板错误的使用是( ) A、Sum(10,2); B、Sum(5.0,6.7); C、Sum(15.2f,16.0f); D、Sum(″AB″,″CD″); 5.已知类A是类B的友元,类B是类C的友元,则( ) A、类A一定是类C的友元 B、类C一定是类A的友元 C、类C的成员函数可以访问类B的对象的任何成员 D、类A的成员函数可以访问类B的对象的任何成员 6.静态成员函数没有( ) A、返回值 B、this指针 C、指针参数 D、返回类型 7.当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中( ) A、都是虚函数 B、只有被重新说明时才是虚函数 C、只有被重新说明为virtual时才是虚函数 D、都不是虚函数 8.下面叙述不正确的是( ) A、派生类一般都用公有派生 B、对基类成员的访问必须是无二义性的 C、赋值兼容规则也适用于多重继承的组合 D、基类的公有成员在派生类中仍然是公有的 9.在C++中实现封装是借助于( )

程序设计语言 习题与答案

第六章习题 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、请画出编译程序的总框图。如果你是一个编译程序的总设计师,设计编译程序时应当考虑哪些问题? 作为一个编译程序的总设计师,首先要深刻理解被编译的源语言其语法及语义;其次,

Java语言程序设计基础篇前三章课后习题要点

第1章计算机、程序和Java概述 1.1(显示三条消息)编写程序,显示Welcome to Java、Welcome to Computer Science和Programming is fun。 程序: 显示: 1.2(显示五条消息)编写程序,显示Welcome to Java五次 程序: 显示: 1.3(显示图案)编写一个程序,显示下面的图案:

程序: 显示: 1.4(打印表格)编写程序,显示以下表格: 程序: 显示:

1.5(计算表达式)编写程序,显示(9.5x4.5- 2.5x3)/(45.5- 3.5)的结果 程序: 显示: 1.6(数列求和)编写程序,显示1+2+3+4+5+6+7+8+9的结果 程序: 显示: 1.7(近似求π)可以使用以下公式计算π: Π=4x(1-1/3+1/5-1/7+1/9-1/11+1/13+...) 编写程序,显示4x(1-1/3+1/5-1/7+1/9-1/11+1/13...)的结果。在程序中用1.0代替1 程序: 显示:

第2章基本程序设计 2.1(将摄氏温度转换为华氏温度)编写程序,从控制台读入double型的摄氏温度,然后将其转换华氏温度,并显示结果。转换公式如下所示: Fahrenheit-=(9/5)*celsius+32 (华氏度=(9/5)*摄氏度+32) 程序: 显示: 2.2(计算圆柱体的体积)编写程序,读入圆柱体的半径和高,并使用下列公式计算圆柱体的体积 面积=半径x半径xπ 体积=面积x高 程序: 显示:

2.3(将英尺转换为米)编写程序,读入英尺数,将其转换为米数并显示结果。一英尺等于0.305米。 程序: 显示: 2.4(将磅转换为千克)编写程序,将磅数转换为千克数。程序提示用户输入磅数,然后转换成千克并显示结果。1磅等于0.454千克。 程序: 显示: 2.5(财务应用程序:计算小费)编写一个程序,读入一笔费用与酬金率,就算酬金和总钱数。例如,如果用户读入10作为费用,15%作为酬金率,计算结果显示酬金为$1.5,总费用为$11.5. 程序:

汇编语言程序设计练习题

汇编语言程序设计练习题 一、字符与串处理类 1.逆序输出字符串“BASED ADDRESSING”。 2.试编写一段程序,要求对键盘输入的小写字母用大写字母显示出来。 3.编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。 4.从键盘上输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示计数结果。 5.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。)放在STRING中,试编制一个程序测试字符串中是否存在数字。如有,则把CL的第5位置1,否则将该位置置0。 6.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。),将其中的小写英文字母变换为大写英文字母,其他字符保持不变。然后将变换后的字符串显示出来。 7.试编制一个程序:从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为buffer的缓冲区中(空格符不存入),直到接收到第二个空格符时退出程序。 8.试编写一段程序,要求比较两个字符串string1和string2所含字符是否相等,如相等则显示“MATCH”, 若不相同则显示“NO MATCH”。 9.试编写一段程序,要求输入两个字符串,如两个字符串相等则显示“MATCH”, 否则显示“NO MATCH”。 10.试编写一段程序,要求在长度为100H字节的数组中,找出大于61H的无符号数的个数并存入字节单元UP中,找出小于2FH的无符号数的个数并存入字节单元DOWN中。 11.在内存区域0B800:0000-0B800:0FFFF(都是16进制数)内查找首地址为SOURCE的串(SOURCE的首字节为串长度),如果找到,则把AL的第0位置0,否则将该位置置1。 12.已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。试编制一个程序,把既在A中又在B中出现的整数存放于数组C中。 13.在附加段中,有一个首地址为LIST和未经排序的字数组。在数组的第一个字中,存放着该数组的长度,数组的首地址已存放在DI寄存器中,AX寄存器中存放着一个数。要求编制一个程序:在数组中查找该数,如果找到此数,则把它从数组中删除。 二、数字输入输出类 1. 试编制一个程序,把BX寄存器内的二进制数以十六进制数的形式在屏幕上显示出来。 2. 试编制一个程序,把BX寄存器内的二进制数以八进制数的形式在屏幕上显示出来。 3. 试编制一个程序,把BX寄存器内的二进制数以十进制数的形式在屏幕上显示出来。 4.从键盘上输入2个一位数,求出它们的和(假设和不超过1位)。 5.试编写一段程序,从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数。 6.试编写一段程序,从键盘接收一个0-65535间的十进制无符号数,并在终端上显示与它等值的二进制数。 7.试编写一段程序,从键盘接收一个-32768-32767间的十进制有符号数,并在终端上显示与它等值的二进制数。 8.编写一个程序,从键盘输入一个0~65535之间的10进制无符号数,然后以16进制

汇编语言程序设计课后习题解答宋人杰2版

第1章汇编语言基础知识 1.简述汇编语言源程序、汇编程序、和目标程序的关系。 答:用汇编语言编写的程序称为汇编源程序;汇编源程序在汇编程序的翻译下转换成计算机语言变成目标程序。 2. 简述汇编语言的优缺点。 答:(1) 汇编语言的优点: ①可有效地访问、控制计算机各种硬件设备,如磁盘、存储器、CPU、I/O端口等。. ②目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 ③可与高级语言配合使用,应用十分广泛。 (2) 汇编语言的缺点: ①通用性和可移植性较差 ②相对于高级语言来说较繁锁、易出错、不够直观。 3.CPU的寻址能力为8KB,那么它的地址总线的宽度为多少? 答:13 4. 1KB的存储器有多少个存储单元? 答:1024个字节。 5. 指令中的逻辑地址由哪两部分组成? 答:指令中的逻辑地址由段基址和偏移量组成。 6. 以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。 (1) 12F8:0100 (2) 1A2F:0103 (3) 1A3F:0003 (4) 1A3F:A1FF 答: (1) 13080H (2) 1A3F3H (3) 1A3F3H (4) 245EFH 7. 自12FA:0000开始的内存单元中存放以下数据(用十六进制形式表示): 03 06 11 A3 13 01,试分别写出12FA:0002的字节型数据、字型数据及双字型数据 的值。 答:字节型数据:11H 字型数据:0A311H 双字型数据:0113A311H 8. 内存中某单元的物理地址是19318H,段基地址为1916H,则段内偏移地址为 多少?若段内偏移地址为2228H,则段基地址为多少? 答:若段基地址为1916H,则段内偏移地址为01B8H;若段内偏移地址为2228H,则段基地址为170FH 9. 在实模式环境中,一个段最长不能超过多少字节? 答:64KB 10. 实模式可寻址的内存范围是多少? 答:1MB

程序设计基础(知识点)

第三部分程序设计基础 3.1 程序、程序设计、程序设计语言的定义 ⑴程序:计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。 ⑵程序设计:程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。 ⑶程序设计语言:程序设计语言用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。程序设计语言有3个方面的因素,即语法、语义和语用。 3.2 高级语言和低级语言的概念及区别 ⑴高级语言:高级语言(High-level programming language)是高度封装了的编程语言,与低级语言相对。

它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(例如汉字、不规则英文或其他外语),从而使程序编写员编写更容易,亦有较高的可读性,以方便对电脑认知较浅的人亦可以大概明白其内容。 ⑵低级语言:低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。 ⑶区别: 高级语言:实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好低级语言:实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差 了解知识:CPU运行的是二进制指令,所有的语言编写的程序最终都要翻译成二进制代码。越低级的语言,形式上越接近机器指令,汇编语言就是与机器指令一一对应的。而越高级的语言,一条语句对应的指令数越多,其中原因就是高级语言对底层操作进行了抽象和封装,

语言程序设计复习题

《C语言程序设计》复习题库 1、计算下面公式的值。T=1/1!+1/2!+1/3!+……+1/m! 当m=5时的结果(按四舍五入保留3位小数)。(注:所有变量用float数据类型定义!)答案:1.717 #include main() {float T,m,i,n; T=0; for(m=1;m<=5;m++) {n=1; for(i=1;i<=m;i++) {n=n*i;} T=T+(1/n);} printf("%.3f",T);} 2、程序填空:用*号输出字母C的图案。 #include "stdio.h" #include "conio.h" main() { _____________ printf(" *\n"); _____________ _____________ getch(); } 3、8232和9678,它们的个、十、百、千各位数字之和是15的倍数,8+2+3+2=15,9+6+7+8=30。编写程序,求四位数的所有奇数中,这样的数(各位数字之和是15的倍数)的总和。(注:所有变量用long数据类型定义!) 答案:1533459 #include main() {long a,b,c,d,s,n; s=0; for(n=1000;n<=9999;n++) {if(n%2==1) {a=n/1000%10; b=n/100%10; c=n/10%10; d=n%10; if((a+b+c+d)%15==0) s=s+n;} }

printf("%ld",s);} 4、/*下面程序的功能是:计算并输出700以内的最大的10个能被13或者17整除的自然数之和。请改正程序中的错误,并运行,最后给出程序运行的正确结果。(注:只有一处错误!)*/ 答案:6591 #include void main() { int total=0, mc=1, k=700; 改成mc=0 int pm[10],count=0; while( (k>=2) && mc<=10 ) { if ((k%13==0) || (k%17==0)) { pm[mc] = k; mc++; } k--; } for( k=1;k<=10;k++ ) total += pm[k-1]; printf(" %d\n",total); } 5求x = 1+1/5+1/7+1/9+…的近似值,直到最后一项的绝对值小于10-5为止。 5、#include 6、#include 7、main() 8、{ 9、 float x,t; 10、x=1,t=5; 11、do 12、{x=x+1/t; 13、t=t+2;}while(abs(1/t)>0.0001); 14、printf("%f",x); 15、} 16、 6、计算如下公式的A20值。 A1=1, A2=1/(1+A1), A3=1/(1+A2), A4=1/(1+A3), ......(按四舍五入保留10位小数)。答案:0.6180339850 #include main() { double n,x; x=1; for(n=2;n<=20;n++) x=1/(1+x);

(完整版)《C语言程序设计》基本知识点

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

C语言程序设计期末考试复习题及答案[1]

C语言考试期末考试复习题及答案 一、选择题 (1) 一个C语言程序总是从(C )开始执行 A) 书写顺序的第一个函数 B) 书写顺序的第一条执行语句 C) 主函数main() D) 不确定 (2) 设int x=3,y=4,z=5,则下列表达式中的值为0的是 ( D ) A) ‘x’&&’y’B) x||y+z&&y-z C) x<=y D) !((x

C语言程序设计的试题及答案

C语言程序设计的试题及答案 C语言程序设计的试题及答案C语言程序设计的试题及答案第一章基础知识 一、填空 1.每个C程序都必须有且仅有一个________函数。 2.C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3.软件是程序,以及______、使用和维护所需要的所有文档。 4.国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6.C语言是由________组成的。 7.C语言的函数可分为主函数ain、标准库函数和_________。 8.一个函数是由两部分组成的,即:________和函数体。 9.编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自

动化、管理信息系统、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11.机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12.与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。 13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14.C程序的执行均是由执行_________开始。15.函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C语句组成的执行部分。 16.C语言程序中一条简单语句是以________字符作为结束符的。 17.C语言是结构化、________的程序设计语言。 18.由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19.用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.第一个系统体现结构化程序设计思想的教学工具语言是_______语言。

8086汇编语言程序设计

实验1 简单汇编语言程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握简单汇编语言程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG 工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG 工具调试程序,验证程序的正确性。 1. 若X、Y、R、W 是存放8 位带符号数字节单元的地址,Z 是16 位字单元的 地址。试编写汇编程序,完成Z←((W-X) ÷5-Y)?(R+ 2) 。 2.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL 的第0 位置1,否则将该位置0。 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验2 分支及循环程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握分支程序和循环程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。 2.从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自己拟定) 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验3 子程序程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握子程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装成子程序dispDEC和dispHEX。 2.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元,并调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下: EXAMSCORE DB 01 ;学号 DB 89,76,54,77,99 ;单科成绩 DW ? ;该学生的总分 DB 02 ;学号 DB 79,88,64,97,92 ;单科成绩 DW ? ;该学生的总分 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

程序设计基础试题(附答案)

程序设计基础复习题 一、单选 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句结论只有一句是错误的,它是()

JAVA语言程序设计复习题

山东理工大学成人高等教育JAVA语言程序设计复习题 一、选择题 1、欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的()。 (A)ArrayList myList=new Object( ) (B)List myList=new ArrayList( ) (C)ArrayList myList=new List( ) (D)List myList=new List( ) 2、下列哪个是JAVA应用程序主类中正确的main方法声明()。 (A)public void main(String args[]) (B)public static void main(String args[]) (C)static void main(String args[]) (D)public static void Main(String args[]) 3、设有数组的定义double[] a = new double[4],则下面对数组元素的引用错误的是()。 (A)a[0]; (B)a[a.length]; (C)a[3]; (D)int i=1; a[i]; 4、Java语言使用的字符码集是( )。 (A) ASCII (B) BCD (C) DCB (D) Unicode 5、覆盖与重载的关系是()。 (A) 覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中 (B) 覆盖方法可以不同名,而重载方法必须同名 (C) final修饰的方法可以被覆盖,但不能被重载 (D) 覆盖与重载是同一回事 6、下面关键字中,哪一个不是用于异常处理语句()。 (A)try (B)break (C)catch (D)finally 7、类与对象的关系是()。 (A)类是对象的抽象(B)对象是类的抽象 (C)对象是类的子类(D)类是对象的具体实例 8、下面哪一个是Java中不合法的标识符()。 (A)$persons (B)twoNum (C)_myVar (D)*point 9、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。 (A)static void method( ) (B)public void method( ) (C)final void method( ) (D)abstract void method( ) 10、如下的程序,下列选项中与构造方法ConstOver重载的构造方法是( )。 public class ConstOver{ public ConstOver(int x, int y, int z){ } } A、ConstOver( ) { } B、Protected int ConstOver ( ) { } C、Private ConstOver (int z, int y, byte x) { } D、public Object ConstOver(int x, int y, int z) { } 11、已知类关系如下: class Employee; class Manager extends Employee; class Director extends Employee; 则以下关于数据的语句正确的是:()。 A、Employee e=new Manager(); B、Director d=new Manager(); C、Director d=new Employee(); D、Manager m=new Director(); 12、( )下面代码定义的接口中,方法MyMethod()的修饰属性为: interface InterfaceDemo{ int MyMethod();}

程序设计语言基础知识题库1-1-8

程序设计语言基础知识题库1-1-8

问题: [单选]将来源不同的目标程序装配成一个可执行程序是()的任务。 A.连接程序 B.编译程序 C.解释程序 D.汇编程序 连接程序:它将分别在不同的目标文件中编译或汇编的代码收集到一个可直接执行的文件中。编译程序:把用高级程序设计语言书写的源程序翻译成等价的计算机汇编语言或机器语言书写的目标程序的翻译程序。解释程序:是高级语言翻译程序的一种,它将源语言(如BASIC)书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。汇编程序:把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序。

问题: [单选]某C语言程序中,m是一个整型变量,则()时遇到表达式m+"test"会报错。 A.词法分析 B.语法分析 C.语义分析 D.程序运行 词法分析阶段是编译过程的第一个阶段,这个阶段的任务是对源程序从前到后(从左到右)逐个字符地扫描,从中识别出一个个"单词"符号。"单词"符号是程序设计语言的基本语法单位,如关键字(或称保留字)、标识符、常数、运算符和分隔符等。但双引号("")不属于这些分类。

问题: [单选]面向对象程序设计语言主要用于()。 A.面向对象分析、设计与实现 B.面向对象分析 C.面向对象设计 D.面向对象实现 面向对象的程序设计,即是利用面向对象的程序设计语言将面向对象的产品定义模型转换成可以在计算机上处理的表达形式,以便最终在计算机上实现系统的设计。 (辽宁11选5 https://www.doczj.com/doc/693863083.html,)

问题: [单选]表达式"a*(b-c)+d"的后缀式为()。 A.abcd*-+ B.ab*c-d+ C.ab-cd+* D.abc-*d+ 在后缀表示方式下,运算对象自左至右依次书写,运算符紧跟在需要参与运算的对象后面。对于"a*(b-c)+d",运算次序为b-c,之后与a相乘,最后再与d相加,因此其后缀表示为"abc-*d+"。

新版汇编语言程序设计钱晓捷第1章习题答案

第1章汇编语言基础知识(全) 2010-10-18 19:32:40| 分类:答案集锦| 标签:|字号大中小订阅 第1章汇编语言基础知识 〔习题1.1〕简述计算机系统的硬件组成及各部分作用。 〔解答〕 CPU:包括运算器、控制器和寄存器组。运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为 处理单元提供所需要的数据。 存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。 外部设备:实现人机交换和机间的通信。 〔习题1.2〕明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 〔解答〕 主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速 度慢。 RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电 后能保存信息。 存储器由大量存储单元组成。为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常 称做I/O端口。 KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。 〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序? 〔解答〕 用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编 译通过的程序就是目标程序。

C语言程序设计基础测试题-答案

C语言程序设计基础测试题 一、单选 [1] 下面叙述中错误的是____。 A. 复合语句中定义的函数只在该复合语句中有效 B. return( )语句中的括号中,可以是变量,常量或有确定值的表达式 C. 形式参数也是局部变量 D. 主函数中定义的变量在整个程序中都是有效的 [2] 下列说法中正确的是____。 A.带参数的宏定义中的参数是没有类型的 B.宏展开将占用程序的运行时间 C.宏定义命令是C语言中的一种特殊语句 D.使用#include命令包含的头文件必须以“.h"为后缀 [3] 若函数的形参为一维数组,则下列说法中正确的是____。 A.调用函数时的对应实参必为数组名 B.形参数组可以不指定大小 C.形参数组的元素个数必须等于实参数组的元素个数 D.形参数组的元素个数必须多于实参数组的元素个数 [4] 系统的标准输出设备是____。 A.键盘 B.硬盘 C.内存 D.显示器 [5] 下面叙述中正确的是____。 A.全局变量在定义它的文件中的任何地方都是有效的 B.全局变量在程序的全部执行过程中一直占用内存单元 C. C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式 D. 说明函数时必须明确其参数类型和返回类型 [6] C程序的基本结构单位是____。 A.文件 B.语句 C.函数 D.表达式 [7] 对于定义,char *aa[2]={"abcd","ABCD"},选项中说法正确的是____。 A.aa数组元素的值分别是"abcd"和"ABCD" B.aa是指针变量,它指向含有两个数组元素的字符型一维数组 C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D.aa数组的两个元素中各自存放了字符'a'和'A'的地址 [8] 任何一个C语言的可执行程序都是从____开始执行的。 A.程序中的第一个函数 B.main( )函数的入口处

语言程序设计期末复习综合练习题答案

Java语言程序设计期末复习综合练习题 一、选择题。 2. main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的() A、public static void main() B、public static void main( String args[] ) C、public static int main(String [] arg ) D、public void main(String arg[] ) 答:B 4.下列哪个是合法的Java标识符() A、Tree&Glasses B、FirstJavaApplet C、_$theLastOne D、 答:B 、 C 5.Java Application源程序的主类是指包含有()方法的类。 A、main方法 B、toString方法 C、init方法 D、actionPerfromed方法 答:A 6.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用()个比特位。 A、8 B、16 C、32 D、64 答:B 7.设 a = 8,则表达式 a >>> 2 的值是( )。 A、1 B、2 C、3 D、4 答:B 8.若a的值为3时,下列程序段被执行后,c的值是多少() c = 1; if ( a>0 ) if ( a>3 ) c = 2; else c = 3; else c = 4; A、1 B、2 C、3 D、4 答:C 9.在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上( )语句。 A、import .* ; B、import ; C、import .* ; D、import ; 答:C 10.对于构造函数,下列叙述正确的是()。 A、构造函数是类的一种特殊函数,它的方法名必须与类名相同。 B、构造函数的返回类型只能是void型。 C、构造函数的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。 答:A C D 11.下面的是关于类及其修饰符的一些描述,正确的是:()。 A、abstract类只能用来派生子类,不能用来创建abstract类的对象。 B、final类不但可以用来派生子类,也可以用来创建final类的对象。

程序设计语言基础

先来认识一下程序,要使计算机能完成人们预定的工作,就必须把要完成工作的具体步骤编写成计算机能执行的一条条指令,计算机执行这些指令序列后,就能完成指定的功能,这样的指令序列就是程序。简单地说,程序是能完成一定功能的指令序列。要想学会编写程序,首先要学习能提供指令的程序设计语言;其次要学习更多和程序设计有关的知识和技巧,就好像认识许多字不一定能写出好文章一样,仅仅学习了程序设计语言还不能编写出好的程序。 程序的功能一般是指其处理数据的能力,所以一个程序包括以下两个方面的内容。 (1)对数据的描述。在程序中要指定处理数据的类型和组织形式,即数据结构(data structure)。 (2)对操作的描述。即操作步骤,也就是算法(algorithm)。数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。 作为程序设计人员,必须认真考虑和设计数据结构与操作步骤(即算法)。因此,著名计算机科学家沃思(Nikiklaus Wirth)提出一个公式: 程序=数据结构+算法 当然这些要素都离不开一个与计算机交互的平台——语言工具和环境。因此,可以这样表示程序: 程序=算法+数据结构+语言工具和环境 算法是程序的灵魂,是解决问题所需要采用的合适方法,决定程序“做什么”和“怎么做”;数据结构是加工对象的组织方式;程序设计语言是程序设计的工具和环境。 大家更熟悉的一个词可能是“软件”,软件是具有一定综合功能的程序、数据及相关文档的集合。只有打好程序设计的基本功,并掌握一定的软件开发技术后,才有可能去开发具有实用性的软件。 1.1 引言 1.1.1 程序设计语言及其分类 1.什么是程序设计语言?其功能又如何 “程序设计语言是一种指挥机器的工具?一种程序员之间交流的方式?一种表述高层

相关主题
文本预览
相关文档 最新文档