当前位置:文档之家› 程序设计基础(C)期末复习题

程序设计基础(C)期末复习题

程序设计基础(C)期末复习题
程序设计基础(C)期末复习题

对外经济贸易大学远程教育学院

2009—2010学年度第一学期

程序设计基础(C)期末复习题

一、单项选择题

1.程序设计一般包含以下四个步骤,其中首先应该完成的是(B)

A. 设计数据结构和算法

B. 建立数学模型

C. 编写程序

D. 调试运行程序

2.下面描述中不正确的是(D)

A. 程序就是软件,但软件不仅仅是程序

B. 程序是指令的集会,计算机语言是编写程序的工具

C. 计算机语言都是形式化语言,它有严格的语法规则和定义

D. 计算机语言只能编写程序而不能表示算法

3.以下说法中正确的是(C )

A. C语言程序总是从第一个函数开始执行

B. 在C语言程序中, main()函数可有可无

C. C语言程序总是从main()函数开始执行

D. C语言程序中的main()函数必须放在程序的开始部分

4.C语言程序的基本单位是(B)

A. 语句

B. 函数

C. 程序行

D. 字符

5.C语言程序由什么组成(C)

A. 子程序

B. 过程

C. 函数

D. 主程序段程序6.以下不是C语言特点的是(B)

A、语言的表达能力强

B、语法定义严格

C、数据结构系统化

D、控制流程结构化

7.C语言并不是非常严格的算法语言,在以下关于C语言的不严格的叙述中,错误的说法是(A)

A、任何不同数据类型都不可以通用

B、有些不同类型的变量可以在一个表达式中运算

C、在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型

D、同一个运算符号在不同的场合可以有不同的含义

8.下面描述中,不正确的是(B)

A、C程序的函数体由一系列语句和注释组成

B、注释内容不能单独写在一行上

C、C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明

D、scanf和printf是标准库函数而不是输入或输出语句

9.下面描述中,正确的是(C)

A、主函数中的花括号必须有,而子函数中的花括号是可有可无的

B、一个C程序行只能写一个语句

C、主函数main是C程序启动时唯一的入口

D、函数体包含了函数说明部分

10.C语言中字符(char)数据在内存中存储的是(D)

A、原码

B、补码

C、反码

D、ASCⅡ码11.下列可以正确表示字符型常数的是(B)

A、”a”

B、’\’’

C、”\n”

D、297

12.以下错误的转义字符是(C)

A、’\\’

B、’\’’

C、’\81’

D、’\0’

13.已知:char a;int b;float c;double d;执行语句c=a+b+c+d;后,变量c的数据类型是(C)

A、int

B、char

C、float

D、double 14.已知;int i, a ;执行语句“i=(a=2*3,a*5),a+6;”后,变量i的值是(C)

A、6

B、12

C、30

D、36

15.已知int i=5;执行语句i+=++i; i的值是(C)

A、10

B、11

C、12

D、以上答案都不对16.已知:int x=1,y=2,z; 则执行:z=x>y? ++x:++y; 则z的值为(C)

A、1

B、2

C、3

D、4

17.已知:float a=4,b=5,c; 则执行表达式“c=a=a>b”后变量a的值为(A)

A、0

B、1

C、4

D、5

18.执行下面语句后x的值为(D)

int a=14,b=15,x;

char c=’A’;

x=((a&&b) && (c<’a’));

A、TRUE

B、FALSE

C、0

D、1

19.下列四个选项中,均是C语言关键字的选项是(B)

A. auto enum include

B. switch typedef continue

C. signed union scanf

D. if struct type

20.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符(C)

A. 必须为字母

B. 必须为下划线

C. 必须为字母或下划线

D. 可以是字母,数字和下划线中任一字符21.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(A)

A. 2.500000

B. 2.750000

C. 3.500000

D. 0.000000 22.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为(C)

A. int

B. float

C. double

D. 不确定

23.表达式(a=3*5,a*5),a+5的值是多少(A)

A. 20

B. 80

C. 不能确定

D. 15

24.语句:printf("%d \n",12&&12);的输出结果是(B)

A. 12

B. 1

C. 24

D. 0

25.C语言的语句中用作判断的表达式一般为(D)

A. 关系表达式

B. 逻辑表达式

C. 算术表达式

D. 逻辑表达式和关系表达式

26.若已定义x和y为double型,则表达式:x=1,y=x+3/2的值是(C)

A. 1

B. 2

C. 2.0

D. 2.5

27.若有以下定义:

char a; int b;

float c;double d;

则表达式a*b+d-c值的类型为(D)

A. float

B. int

C. char

D. double

28.若x和y都是int型变量,x=100,y=200,且有下面的程序片段:

printf("%d",(x,y));

上面程序片段的输出结果是(A)

A. 200

B. 100

C. 200 100

D. 输出格式符不够,输出不确定的值29.表达式:10!=9的值是(D)

A. true

B. 非零值

C. 0

D. 1

30.以下关于运算符优先顺序的描述中正确的是(C)

A. 关系运算符 < 算术运算符 < 赋值运算符 < 逻辑运算符

B. 逻辑运算符 < 关系运算符 < 算术运算符 < 赋值运算符

C. 赋值运算符 < 逻辑运算符 < 关系运算符 < 算术运算符

D. 算术运算符 < 关系运算符 < 赋值运算符 < 逻辑运算符

31、putchar函数可以向屏幕输出一个(D)

A、整形变量值

B、实型变量值

C、字符串

D、字符或字符变量值

32、执行以下程序段后,c3的值是(A)

int c1=1,c2=2,c3;

c3=c1/c2;

A、0

B、1/2

C、0.5

D、1

33、若int a,b,c;则为它们输入数据的正确输入语句是(D)

A、read (a,b,c);

B、scanf (“%d%d%d”,a,b,c);

C、scanf (“%D%D%D”,&a,&b,&c);

D、scanf (“%d%d%d’,&a,&b,&c);

34、若有以下程序段,其输出结果是(B)

int a=0,b=0,c=0;

c=(a-=a-5),(a=b,b+3);

printf (“%d,%d,%d\n”,a,b,c);

A、3,0,-10

B、0,0,5

C、-10,3,-10

D、3,0,3

35、若a为int 类型,且a=125,执行下列语句后的输出是(B)

printf (“%d,%o,%x\n”,a,a+1,a+2)

A、125,175,7D

B、125,176,7F

C、125,176,7D

D、125,175,2F

36.表达式(int)2.1416的值是(A)

A. 2 B. 2.1 C. 0 D. 3

37.若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是(B)

A. (exp==0)

B. (exp!=0)

C. (exp==1)

D. (exp!=1) 38.设int x=1, y=1; 表达式(!x||y--)的值是(B)

A. 0

B. 1

C. 2

D. -1

39.在C 语言中,错误的int类型的常数是(A)

A.32768 B.0 C.037 D.0xAF

40.下列正确表示字符型常数的是(B)

A.‘101’ B.‘\101’C.“\n” D.297

41.有定义char ch; 判断ch的值是否为小写字母的表达式为(D)

A.‘a’<= ch =‘z’ B.(ch >=‘a’)&(ch <=‘z’)

C.(ch>=‘a’)AND (ch<=‘z’)D.ch>=97 && ch<=122

42.以下程序的输出结果是(C)

main()

{int a=12,b=12;

printf("%d %d\n",--a,++b);

}

A. 10 10

B. 12 12

C. 11 13

D. 11 10

43.能正确表示逻辑关系:"a ≥ =10或a ≤ 0"的C语言表达式是(D)

A. a > =10 or a < =0

B. a > =0||a < =10

C. a > =10 &&a < =0

D. a < =0 || a>=10

44.下列程序的输出结果是(C)

main()

{ double d=3.2;

int x,y;

x=1.2; y=(x+3.8)/5.0;

printf("%d \n", d*y);

}

A. 3

B. 3.2

C. 0

D. 3.07

45、已知:int a,*p=&a;则下列函数调用中错误的是________。

A、scanf(“%d”,&a);

B、scanf(“%d”,p);

C、print f(“%d”,a);

D、printf(“%d”,p);

46、C语言中决定函数返回值类型的是_______。

A、return语句中的表达式类型

B、调用该函数的主调函数类型

C、调用函数时临时指定的类型

D、定义函数时所指定的函数类型

47、在下列结论中,只有一个是错误的,它是________。

A、C语言允许函数的递归调用

B、C语言中的continue语句,可以通过改变程序的结构而省略

C、有些递归程序是不能用非递归算法实现的

D、C语言中不允许在函数中再定义函数

48、在C语言的函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函

数funA,则________。

A、称为函数的直接递归

B、称为函数的间接递归

C、称为函数的递归定义

D、C语言中不允许这样的递归形式

49、已知:int*p,a;则语句“p=&a;”中的运算符“&“的含义是_______。

A、位与运算

B、逻辑与运算

C、取指针内容

D、取变量地址50.以下程序的输出结果是(C)

main()

{ int a= -1,b=1;

if((++a < 0)&& ! (b-- < =0)) printf("%d %d\n",a,b);

else printf("%d %d\n",b,a);

}

A. -1 1

B. 0 1

C. 1 0

D. 0 0

51.若执行下面的程序从键盘输入3和4,则输出是(B)

main()

{ int a,b,s;

scanf("%d%d",&a,&b);

s=a;

if (a < b) s=b;

s=s*s;

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

}

A. 14

B. 16

C. 18

D. 20 52.下面的程序是(D)

main()

{ int x=3,y=0,z=0;

if (x==y+z) printf("****");

else printf("####");

}

A. 有语法错误不能过通过编译

B. 输出****

C. 可能通过编译,但是不能通过连接,因而不能运行

D. 输出####

53.以下程序输出结果是(B)

main ( )

{ int m=5;

if (m++ > 5) printf ("%d\n",m);

else printf ("%d\n",m--);

}

A. 7

B. 6

C. 5

D. 4 54.执行下面语句后的输出为( D)

int i= -1;

if (i < =0)printf("****\n")

else printf("%%%%\n")

A. ****

B. %%%%

C. %%%%C

D. 有语法错,不能执行55.执行下列程序段后,x、y和z的值分别是(B)

int x=10,y=20,z=30;

if(x>y) z=x;x=y;y=z;

A、10,20,30

B、20,30,30

C、20,30,10

D、20,30,20

56.以下程序的输出结果是(D)

main()

{int w=4,x=3,y=2,z=1;

if(x>y&&(z= =w))printf (“%d\n”,(w

else printf (“%d\n”,(w>x? w:z>y? z:x));

}

A、1

B、2

C、3

D、4

57.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是(A)

A.if((a>b)&&(b>c)) k=1; else k=0;

B.if((a>b)||(b>c)) k=1;else k=0;

C.if(a<=b) k=0; else if(b<=c) k=1;

D.if(a>b) k=1; else if(b>c) k=1; else k=0;

58、若有:do {i=a-b++;printf(“%d”,i);}while (!i); 则while中的!i 可用(A) 代替。

A、i==0

B、i!=1

C、i!=0

D、以上均不对59.以下能对二维数组a进行正确初始化的语句是(B)

A. int a[2][]={{1,0,1}{5,2,3}};

B. int a[][3]={{1,2,3},{4,5,6}};

C. int a[2][4]={{1,2,3},{4,5},{6}};

D. int a[][3]={{1,0,1},{},{1,1}}; 60.以下程序的输出是(B)

main()

{ int x=1,y=0,a=0,b=0;

switch(x) { case 1: switch(y)

{ case 0:a++;break;

case 1:b++;break; }

case 2: a++;b++;break;

case 3: a++;b++;

}

printf(“\na=%d,b=%d”,a,b);

}

A.a=1,b=0 B.a=2,b=1 C.a=1,b=1 D.a=2,b=2 61.阅读以下程序:

main()

{ int x;

scanf("%d",&x);

if(x--<5) printf("%d"'x);

else printf("%d"'x++);

}

程序运行后,如果从键盘上输人5,则输出结果是(B)

A. 3

B. 4

C. 5

D. 6

62、执行语句for (i=1;i++<4;);后,i的值是______。(C)

A、3

B、4

C、5

D、不定

63、若int x;则执行下列程序段后输出是______。(B)

for(x=10;x>3;x--)

{if (x%3) x--;--x;--x;

printf (“%d”,x);

}

A、63

B、74

C、62

D、73

64、下列说法中正确的是______。(C)

A、break用在switch语句中,而continue用在循环语句中。

B、break用在循环语句中,而continue用在switch语句中。

C、break能结束循环,而continue只能结束本次循环。

D、continue能结束循环,而break只能结束本次循环。

65、下列程序执行的结果是(B)

int a=1, b=2, c=3, t;

while (b

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

A、1,2,0

B、2,1,0

C、1,2,1

D、2,1,1 66.以下程序的输出结果是(A)

main( )

{ int n=4;

while(n--)printf("%d ",--n);

}

A. 2 0

B. 3 1

C. 3 2 1

D. 2 1 0 67.假定a和b为int型变量,则执行以下语句后b的值为(D)

a=1; b=10;

do

{ b=b-a; a++; }

while (b-- > 0);

A. -3

B. -2

C. -1

D. -4 68.下面程序的输出是(D)

main()

{ int x=3,y=6,a=0;

while (x++!=(y-=1))

{ a+=1;

if (y < x) break;

}

printf("x=%d,y=%d,a=%d\n",x,y,a);

}

A. x=4,y=4,a=1

B. x=5,y=5,a=1

C. x=5,y=4,a=3

D. x=5,y=4,a=1 69.以下程序段的输出结果是(C)

int x=3;

do

{ printf("%3d",x-=2);}

while (!(--x));

A. 1

B. 3 0

C. 1 -2

D. 死循环

70.已知:int a ,x;则正确的赋值语句是__C___。

A、a=(a[1]+a[2])/2;

B、a*=*a+1;

C、a=(x=1,x++,x+2);

D、a=”good”;

71、已知:char s[10],*p=s,则在下列语句中,错误的语句是__B____。

A、p=s+5;

B、s=p+s;

C、s[2]=p[4];

D、*p=s[0];

72、已知:char b[5],*p=b;则正确的赋值语句是__C__。

A、b=”abcd”;

B、*b=”abcd”;

C、p=”abcd”;

D、*p=”abcd”;

73、下列对字符串的定义中,错误的是___A___。

A、char str[7]=”FORTRAN”

B、char str[ ]=”FORTRAN”

C、char*str=”FORTRAN”

D、char str[]={…F?,?O?,?R?,?T?,?R?,?A?,?N?,0}

74、已知:char **s; 正确的语句是__B___。

A、s=”computer”;

B、*s=”computer”;

C、**s=”computer”;

D、*s=?A?;

75、已知:int a,*p=&a;则为了得到变量a的值,下列正确的表达式为__B___。

A、*&p

B、*p

C、p[0]

D、*&a

76、已知:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int (*ptr) [3]=a,*p=a[0];则以下能够正确表示

数组元素a[1][2]的表达式是__D___。

A、*((ptr+1)[2])

B、*(*(p+5).)

C、(*ptr+1)+2

D、*(*(a+1)+2)

77、已知:struct {int i;

char c;

float a;} Test; 则sizeof(test)的值是___D___。

A、4

B、5

C、6

D、7

78、选择出错误的函数定义。(D)

A、struct tree funa(s)

B、int *funb(s)

struct tree s[ ]; char s[ ];

{…{…

} }

C、struct tree*func(s) D 、int *fund(s)

Char **s; char *s[10][ ];

{…{…

} }

79、以下对C语言中联合类型数据的正确叙述是___C__。

A、一旦定义了一个联合变量之后,即可引用该变量或该变量中的任意成员

B、一个联合变量中可以同时存放其所有成员

C、一个联合变量中不能同时存放其所有成员

D、联合类型数据可以出现在结构体类型定义中,但结构体类型数据不能出现在联合类

型定义中

80、已知:struct sk

{ int a; float b;

}data,*p;

若有p=&data,则对data 中的成员a的正确引用是___B___。

A、(*p).data.a

B、(*p).a

C、p->data.a

D、p.data.a

81、在以下对C语言的描述中,正确的是_A__。

A、在C语言中调用函数时,只能将实参的值传递给形参,形参的值不能传递给实参

B、C语言函数既可以嵌套定义又可以递归调用

C、函数必须有返回值,否则不能使用函数

D、C语言程序中有调用关系的所有函数都必须放在同一源程序文件中

82、说明语句”int (*p)();”的含义是_______。

A、p是一个指向一维数组的指针变量

B、p是指针变量,指向一个整型数据

C、p是一个指向函数的指针,该函数的返回值是一个整型

D、p是一个指针函数,该函数的返回值是一个指向整型数据的指针

83、在对typedef的叙述中错误的是__B____。

A、用typedef可以定义各种类型名,但不能用来定义变量

B、用typedef可以增加新类型

C、用typedef只是将已存在的类型用一个新的标志符来代表

D、使用typedef有利于程序的通用和移植

84、在进行文件操作时,写文件的一般含义是__A___。

A、将计算机内存中的信息存入磁盘

B、将磁盘中的信息存入计算机内存

C、将计算机CPU中的信息存入磁盘

D、将磁盘中的信息存入计算机CPU

85、C语言中标准输入文件stdin是指___A_。

A、键盘

B、显示器

C、鼠标

D、硬盘

86、系统的标准输出文件stdout是指__B___。

A、键盘

B、显示器

C、软盘

D、硬盘

87、在高级语言中对文件操作的一般步骤是___A__.

A、打开文件——操作文件——关闭文件

B、操作文件——修改文件——关闭文件

C、读写文件——打开文件——关闭文件

D、读文件——写文件——关闭文件

88、要打开一个已存在的非空文件“file”用于修改,正确的语句是___D___。

A、fp=fopen(“file”,”r”);

B、fp=fopen(“file”,”a+”);

C、fp=fopen(“file”,”w”);

D、fp=fopen(“file”,”r+”);

89、下列关于文件的结论中正确的是___B____。

A、对文件操作必须先关闭文件

B、对文件操作必须先打开文件

C、对文件操作顺序没有统一规定

D、以上三种答案全是错误的90.以下程序的输出结果是(B)

main( )

{ int i,x[3][3]={9,8,7,6,5,4,3,2,1};

for(i=0;i<4;i+=2)printf("%d ",x[i][i]);

}

A. 5 2

B. 9 1

C. 5 3

D. 9 7

91.以下对一维整型数组a的正确说明是(D)

A. int a(10);

B. int n; scanf("%d",&n); int a[n];

C. int n=10,a[n];

D. #define SIZE 10 (换行) int a[SIZE]; 92.若二维数组a有m列,则在a[i][j]前的元素个数为(B)

A. j*m+i

B. i*m+j

C. i*m+j-1

D. i*m+j+1 93.定义如下变量和数组:

int k; int a[3][3]={1,2,3,4,5,6,7,8,9};

则语句for(k=0;k<3;k++) printf("%d",a[k][2-k]); 的输出结果是(A)

A. 3 5 7

B. 3 6 9

C. 1 5 9

D. 1 4 7 94.以下程序的输出结果是(A)

main()

{ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};

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

}

A. 0650

B. 1470

C. 5430

D. 输出值不定95.已知:char str1[20]=” abcde”,str2[20]=“xyz”;则执行语句:

printf(” %d”,strlen(strcat(str1,str2)));的输出的结果是(C)

A.3 B.5 C.8 D.9

96.判断字符串a和b是否相等,应当使用(D)

A.if(a = = b) B.if(a = b)

C.if( strcpy(a,b) ) D.if (!strcmp(a,b) )

97.有以下语句:int b;char c[10]; 则正确的输入语句是(B)

A.scanf("%d%s",&b,&c); B.scanf("%d%s",&b,c);

C.scanf("%d%s",b,c); D.scanf("%d%s",b,&c);

98.以下能正确定义一维数组的选项是(B)

A.int a[5]={0,1,2,3,4,5}; B.char a[ ]={0,1,2,3,4,5};

C.char a={'A','B','C'}; D.int a[5]="0123";

99.以下程序的输出结果是(B)

main()

{ char ch[3][5]={"AAAA","BBB","CC"};

printf("%s",ch[1]);

}

A. "AAAA"

B. "BBB"

C. "BBBCC"

D. "CC" 100.有如下程序

main()

{ int n[5]={0,0,0},i,k=2;

for(i=0;i < k;i++) n[i]=n[i]+1;

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

}

该程序的输出结果是(D)

A. 不确定的值

B. 2

C. 1

D. 0

101.以下叙述正确的是(C)

A.在C程序中,main函数必须位于程序的最前面

B.C程序的每行中只能写一个语句

C.C语言本身没有输入输出语句

D.在对一个C程序进行编译的过程中,可发现注释中的错误

102.假定所有变量均已正确说明,下列是程序段运行后x的值是(A)

a=b=c=0;

x=35;

! a ? x-- : x=c ? 3 : 4;

A.34

B.4

C.35

D.3

103.main()

{ int a=7,b=5,c;

printf(“%d,%d\n”,a--,--b);} 此程序的输出结果是( )

A. 7,5

B.6,5

C.7,4

D.6,4

104.程序段:int a=5;printf(“%d\n”,(a=3*5,a*4,a+5));的输出结果为()A.45 B.20 C.15 D. 10

105.下面语句执行完后,b的值是()

int a=b=10;

b=10+(a++);

A. 10

B.19

C. 20

D. 21

106.有以下语句:int b;char c[10]; 则正确的输入语句是()A.scanf("%d%s",&b,&c); B.scanf("%d%s",&b,c);

C.scanf("%d%s",b,c); D.scanf("%d%s",b,&c);

107.下面程序的运行结果是()

main()

{int a=1,b;

for(b=1;b<=10;b++) {if(a>=8)break;

if(a%2==1){a+=5;continue;}

a-=3;

}

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

}

A.3 B.4 C.5 D.6

108.有以下程序段int k=0; while(k=1)k++; while循环执行的次数是()A.无限次B.有语法错,不能执行

C.一次也不执行D.执行1次

109.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是()A.if((a>b)&&(b>c)) k=1; B.if((a>b)||(b>c)) k=1;

else k=0; else k=0;

C.if(a<=b) k=0; D.if(a>b) k=1;

else if(b<=c) k=1; else if(b>c) k=1;

else k=0; 110.下面程序的输出结果是()

main()

{ int k=0;

char c=?A?;

do{switch(c++)

{ case …A?: k++;break;

case …B?: k--;

case …C?: k+=2;break;

case …D?: k=k%2;continue;

case …E?: k=k+10;break;

default: k=k/3;

}

}while(c

printf(“k=%d\n”,k);

}

A.1 B.2 C.5 D.6

二、判断正误题

1.在C程序中,main函数必须位于程序的最前面(×)

2.C程序的每行中只能写一条语句(×)

3.C语言本身没有输入输出语句(√)

4.在对一个C程序进行编译的过程中,可发现注释中的拼写错误(×)

5.一个C源程序可由一个或多个函数组成(√)

6.一个C源程序必须包含一个main函数(√)

7.C程序的基本组成单位是函数(√)

8.在C程序中,注释说明只能位于一条语句的后面(×)

9.在C语言的源程序中,main函数的位置是任意的(√)

10.一个C语言程序是由若干子程序组成(×)

11.在C程序中,逗号运算符的优先级最低(√)

12.在C语言中,预处理命令行都以“#”开头(√)

13.每个C程序必须在开头包含预处理命令行:#include (×)

14.在C程序中,APH和aph是两个不同的变量(√)

15.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变(√)16.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值(×)17.在C语言中的if语句中,用作判断的表达式可以是任意表达式(√)

18.在C语言中的if语句中,用作判断的表达式只能是逻辑表达式(×)

19.为避免嵌套的条件分支语句if…else的二义性,C语言规定,else总是与上面距它最近的,并且没有其他else与其配对的if相配对(√)

20.为避免嵌套的条件分支语句if…else的二义性,C语言规定,else总是与其同一行上的if相配对(×)

21.对for (表达式1; ;表达式3) 可理解为for(表达式1;1;表达式3) (√)

22.对for (表达式1; ;表达式3) 可理解为for(表达式1;表达式1;表达式3) (×)

23.有以下程序段int k=0; while(k=1)k++; ,while 循环执行的次数是无限次(√)

24.有以下程序段int k=0; while(k=1)k++; ,while 循环执行的次数是一次(×)

25.若有说明:int a[3][4]={0};则只有元素a[0][0]可得到初值0 (×)

26.若有说明:int a[3][4]={0};则数组中的最后一个元素为a[3][4],且值为0 (×)

27、C程序中源程序文件的扩展名是OBJ (×)

28、负数在计算机中是以补码形式表示。(√)

29、关系表达式的运算结果是逻辑值0或1 (√)

30、表达式的运算对象可以是常数、变量和函数调用(√)

31、{a=3;c+=a-b;}在语法上被认为是两条语句(×)

32、if语句控制表达式只有其值为1时表示逻辑“真”,其值为0表示逻辑“假”。(×)

33、if(!k) a=3;语句中的!k可以改写为k==0,使其功能不变。(√)

34、以下循环语句共执行20_次循环(√)

int i,j;

for (i=5;i;i--)

for (j=0;j<4;j++) {……}

35.若有说明:int a[][4]={0,0};则只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0 (×)

36.在C语言中,字符数组中可以存放字符串(√)

37.在C语言中,可以对字符数组进行整体输入、输出(√)

38.在C语言中,可以对整型数组进行整体输入、输出(×)

39.在C语言中,不能在赋值语句中通过赋值运算对字符数组进行整体赋值(√)40.以下while循环执行的次数是0次。(×)

k=0; while (k=10) k=k+1;

41.在C语言中,printf() 函数总是从新行的起始位置开始打印。(×)

42.在C语言中,所有的变量在使用前都必须予以申明。(√)

43.在C语言中申明变量时必须给出变量的类型。(√)

44.C语言认为变量number和NuMbEr是相同的。(×)

45.在C语言中,求余运算符%只能用于两个整数操作数。(√)

46.C语言中的switch选择结构中必须有default子句。(×)

47.如果x>y或ay&&a

48.如果x>y或ay||a

49.在C语言中,不能在赋值语句中通过赋值运算对字符数组进行整体赋值(√)50.若已定义的函数有返回值,则函数调用可以出现在表达式中(√)

《程序设计基础》试卷B及答案

黄淮学院计算机科学系2007-2008学年度第一学期 期末考试《程序设计基础》B 卷 注意事项:本试卷适用于计科系06级本科计算机科学与技术专业学生。 1.__ ____函数是程序启动时惟一的入口。 2.算法的复杂性包含两方面: 和 。 3.已知 char c= 'a' ; int x=2,k; 执行语句k=c&&x++ ; 则x 为 ,k 为 。 4.数值0x34对应的十进制为 。 5.已知int a ; 则表达式”(a=2*3 , 3*8), a*10”的结果为_ _ ____,变量a 的值为___ ___。 6.面向对象程序开发步骤为: 、 和面向对象实现。 1.下列程序设计语言中( )是面向对象语言。 A. FORTRAN B. C 语言 C. C++ D. 汇编语言 2.下列关于注释的说法哪个是错误的( )。 A. 注释不是程序中的可执行语句 B. 注释对于程序的执行有很重要的意义 C. 注释将在程序的编译阶段被编译器剔除 D. 编程时在程序中添加适当的注释是一个良好的编程风格 3.算法设计应该遵守( )的设计原则。 A. 自底向上,逐步求精 B. 自顶向下,逐步求精 C. 自底向上,同步扩展 D. 自顶向下,同步扩展 4.下列语句执行后a 的值为( )。 int a=4, &z=a, k=3; a=k; z+=2; k++; A. 0 B. 4 C. 1 D. 5 5.以下程序执行后,屏幕输出为( )。 #include “iostream.h ” void fun(int d) {d++;} void main() { int d=3; fun(d); d++; cout<=’a ’)&&(d<=’z ’) B. ‘a ’<=d<=’z ’ C. (d>=’a ’)||(d<=’z ’) D. ‘A ’<=d<=’Z ’ 8.已知:int k=7, x=12; 则执行语句( )后x 的值为0。 A. x+=k-x%5; B. x+=(x-k%5); C. x%=(k-=5); D. (x-=k)-(k+=5); 9.运行下列程序,其输出结果为( )。 #include “iostream.h ” void main() { int x(5),y(5),z(5); y--&&++x&&z--||y++; cout<

C语言程序设计课程设计题目

1 一元稀疏多项式的运算 问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。 实现要求: ⑴输入并建立多项式; ⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n是多项式的项数,c i,e i分别为第i项的系数和指数。序列按指数降序排列; ⑶多项式A和B相加,建立多项式A+B,输出相加的多项式; ⑷多项式A和B相减,建立多项式A-B,输出相减的多项式; ⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 测试数据: (1) (2x+5x8-3.1x11)+(7-5x8+11x9) (2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15) (3)(x+x2+x3)+0 (4)(x+x3)-(-x-x-3) 2 成绩排序 假设某年级有4个班,每班有45名同学。本学期有5门课程考试,每门课程成绩是百分制。假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求: ⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩; ⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中; ⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式

进行班内排序; ⑷用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序; ⑸对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表; ⑹设计一个菜单,至少具有上述操作要求的基本功能。 3 迷宫问题 问题描述:以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 实现要求: ⑴实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 ⑵编写递归形式的算法,求得迷宫中所有可能的通路; ⑶以方阵形式输出迷宫及其通路。 [测试数据] 迷宫的测试数据如下:左上角(1,1)为入口,右下角(8,9)为出口。 1 2 3 4 5 6 7 8 实现提示:

程序设计基础试题库

练习题一Visual FoxPro 基础 、选择题 1. 关系数据库管理系统应能实现的专门关系运算包括___c __________ A 显示、打印、制表B关联、更新、排序 C 选择、投影、连接D排序、索引、统计 2. 关系是指__b__。 A 属性的集合B元组的集合 C 实例的集合 D 字段的集合 3. 如果把学生看成实体,某个学生的姓名叫“杨波”,则“杨波”应看成是___b ______ 。 A)属性型B )属性值C )记录型D )记录值 4. 关系数据库系统中所使用的数据结构是 _______ d ___ 。 A)图B )树C )表格D )二维表 5. 对表进行水平方向的分割用的运算是 _______ b ___ 。 A)交B )选择C )投影D )连接 6. 下列数据库技术的术语与关系模型的术语的对应关系中_______ d _____ 是正确的。 A)实例与关系 B )字段与元组C )记录与属性 D )记录类型与关系模式 7. 下列关于数据库系统的叙述中,正确的是 _____ c _____ 。 A)数据库系统中数据的一致性是指数据类型一致 B)数据库系统只是比文件系统管理的数据更多 C)数据库系统减少了数据冗余 D数据库系统避免了数据冗余 8. 关系数据模型 ______ d ___ 。 A)只能表示实体间的1:1联系 B)只能表示实体间的1:n C只能表示实体间的m:n D 可以表示实体间的上述三种联系 9. 在一个关系中如果有这样一个属性存在,它的值能惟一地标识关系中的每一个元组,称

这个属性为 _____ a____ 。 A)关键字B )主属性C )数据项D )主属性值 10. 关系数据库管理系统中的元组是______ b ____ 。 A)关系中的垂直方向的列 B )关系中的水平方向的行 C属性或属性的组合 D )以上的答案均不正确 11. 从数据库的整体结构看,数据库系统采用的数据模型有_________ a __ 。 A)层次模型、网状模型和关系模型 B)层次模型、网状模型和环状模型 C)网状模型、链状模型和层次模型 D链状模型、关系模型和层次模型 12. 设有属性A B、C D以下表示中不是关系的是___________ d__。 A)R( A) B )R( A, B)C )R (A, B, C, D) D )R (A X B X C X D) 13. 若实体间联系是M N的,则将联系类型_________ a___ 。 A)也转换为关系模型 B)属性加入任一个关系模式中 C)属性加入N端实体类型相应的关系模式中 D)属性加入M端实体类型相应的关系模式中 14. 数据库系统的构成为数据库、计算机硬件系统、用户和________ a ____ 。 A 数据库管理系统 B 操作系统 C 数据集合 D 文件系统 15. 层次型、网状型和关系型数据库划分原则是________ c ___ 。 A 文件大小 B 记录长度 C 数据之间的联系 D 联系的复杂程度 16. 在数据库设计中用关系模型来表示实体和实体之间的联系,关系模型的结构是 _____ d ___ 。 A 封装结构 B 层次结构 C 网状结构 D 二维表结构 17. 在关系模型中,实现“关系中不允许出现相同的元组”的约束是通过__a ________ 。 A 主键 B 超键 C 外键 D 候选键 18. 层次模型不能直接表示 ______ b __ 关系。 A 1:1 B m:n C 1:m D 1:1 和1:m 19. DBAS旨的是_____ d____ 。

程序设计基础期末复习汇总.doc

《程序设计基础》期末复习 考试题型和分值。 一、单选题(20小题,每题2分) 二、填空题(共20题,计20分) 三、编程填空题(给出程序的输出结果,共5题,14分) 四、读程序题(补充程序,共2小题,,共26分) 程序练习: 1. 输出1-10之间所有的偶数和它们的平方。 2. 输出所有的水仙花数。 3. 从键盘输入一行字符,统计其中有多少个单词。假设单词之间是以空格分开。 4. 编程先由计算机“想” 一个1?100之间的数请人猜,如果人猜对了,贝U 结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。 5. 编写程序,要求在main函数接受一个整型变量,将其作为参数传入IsPrime 函数中,IsPrime函数根据传入的值确定返回值,如果<2,返回0;如果不是素数,返回1; 如果是素数,返回2O主函数根据返回值输出相应的提示信息:输入不合法,不是素数,是素数。 6. 编写程序:给学生出一道加法运算题,然后判断学生输入的答案对错与否。 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示 “Right!,”否则提示重做,显示“ Not correct! Try again!",重复要求输入答案,直到输入结果正确,程序结束。

要求:用Add函数来进行两个整数的加法运算;用Print函数判断输入的答案正确与否;用main 函数输入两个相加的数和学生的答案,然后调用Add函数和Print函数判进行判断和显示输出。 7. 利用指针编写两个整数交换的函数。 8. 从10个元素的数组中找出最大值和最小值,并记录最大值和最小值对应的元 素的下标位置。 9. 给定40个数,按照要求进行排序并输出排序的结果。 程序设计ABC 1. 程序运行的方式分为哪两种?(编译运行和解释运行) 2 .什么叫编译器,其功能是什么?(把程序设计语言转换成目标代码的软件称为编译器) 数据类型、运算符与表达式 4.C程序的特点? 函数是C程序的基本单位。一个C程序有且仅有一个main函数(主函数), 总是从main函数开始执行,在main函数中结束,与其位置无关; 函数由函数头和函数体组成 C程序的书写格式:C语句都以分号结束;允许一行多句,但最好一行一 句并按照锯齿形(缩进式)书写,提高可读性和可测试性;适当使用注释 (注释中的语句不参与编译,不能发现其中的拼写错误)。 2. C语言标识符的命名规则,会判断哪些是合法的哪些不合法。

程序设计基础试题和答案解析二

《程序设计基础》考试试卷二 1.1966年,Bohra和Jacopini提出的三种基本程序设计结构是:________ A.if、while和for; B. switch、do-while和for; C.while、do-while和for; D.顺序结构、分支结构和循环结构。 2.算法的特征不包括:______。 A.有穷性 B.可行性 C.确定性 D.有1个或者多个输入。 3.C语言源程序的基本组成单位是______。 A.函数 B. 语句 C. 声明和语句 D. 文件 4.下列标识符中,只有______是合法的。 A.if B. 3ab C. Int D. A-4 5.下列常量中,只有______是合法的。 A.3e-0.3 B. ‘abc’ C. 02a1 D. ‘\377’ 6.下列说法中正确的是:______。 A.C语言中的for语句的三个表达式都可以省略,而且分号也可以省略。 B.宏替换比函数调用的执行速度慢。 C.实质上,C语言中的指针就是一个变量的地址。 D.C语言中的任何函数都可以由程序员命名。 7.C语言中,运算对象必须是整型的运算符是_______。 A./ B. % C. + D. - 8.以下叙述中错误的是_______。 A.C语句必须以分号结束 B.复合语句在语法上被看作一条语句 C.空语句出现在任何位置都不会影响程序运行 D.赋值表达式末尾加分号就构成赋值语句 9.以下叙述中正确的是_______。 A.调用printf函数时,必须要有输出项 B.使用putchar函数时,必须在之前包含头文件stdio.h C.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出 D.调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码10.以下关于函数的叙述中正确的是_______。 A.每个函数都可以被其它函数调用(包括main函数) B.每个函数都可以被单独编译 C.每个函数都可以单独运行 D.在一个函数内部可以定义另一个函数 11.有以下程序段typedef struct NODE{ int num; struct NODE *next;

程序设计基础课程设计

设计题目:学生成绩管理系统班级:计0902 姓名:付乐颖 学号:20091221067 完成日期:2010.10.15

1. 课程设计目的和要求 随着科学的发展和社会的进步,许多过去有人工处理的繁杂事务开始交付计算机来完成。学生成绩管理系统可以说是一个得力助手,它利用计算机对学生成绩进行统一管理,实现学生成绩信息管理工作流程的系统化、规范化和自动化,提高了广大教师的工作效率。 本程序旨在训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件等的各种基本操作,使学生能对C语言的文件操作有一个更深的理解。为进一步开发出高质量的信息管理系统打下坚实的基础。 2. 课程设计任务内容 学生包含以下信息项:学号、姓名、学院、班级、高数成绩、英语成绩、C语言成绩、总分、平均分。系统的主要功能包括: 1. 创建学生成绩信息文件,根据提示输入学生的各项信息,计算出总分和平均分,然后按学号对学生信息进行排序,并将排序后的学生成绩信息存储到一个二进制文件中。 2. 增加学生信息,在原有学生信息文件的基础上增加新的学生成绩信息,要求:增加后的学生信息仍按学号排序,并继续保存至原文件。 3. 删除学生信息,提示用户输入要进行删除操作的学号,如果在文件中有该信息存在,则将该学号所对应的学生信息删除,否则输出提示信息,并提示用户选择是否继续进行删除操作。 4. 修改学生信息,提示用户输入要进行修改操作的学号,如果在文件中有该息存在,则将提示用户输入该学号对应的要修改的选项,结果保存至原文件,并提示用户选择是否继续进行修改操作。 5. 按不同条件对学生信息进行查询操作,输出满足条件的学生信息。 (1) 按学号查询,输入一个学号,输出对应的学生信息。

程序设计基础练习题(全答案版)

《程序设计基础——C#.NET》练习 参考答案: 一、选择题 https://www.doczj.com/doc/6916723220.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.输入整数n,输出由2×n+1行2×n+1列组成的以下(n=2)的图案。 2.输入整数n(<10),输出以下形式(n=3)的数字排列图案。 3.编写一个程序,输入一个整数,输出0~9各数字在该整数中出现的次数。 4.编写一个程序,输出所有英文字符及它们的ASCII码值,其中代码值分别用八进制形式、十六进制形式和十进制形式输出。 5.水仙花数是一个n(n>=3)位数字的数,它等于每个数字的n次幂之和。例如,153是一个水333。试编写一个程序求小于999的所有水仙花数。仙花数,153=1+5 +3 6. 编写程序解百鸡问题:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡。问鸡翁、鸡母和鸡雏各几何 7.编写一个程序,输入一个整数,逐位地输出整数的十进制数,要求位与位之间有一个空格符分隔。 8.编写程序,列表输出整数1~10的平方和立方值。 9.编写一个程序,输入3个实数,判断这些值能否作为一个三角形的三条边的长,如果能构成三角形,要求输出三角形的面积。 的图案。4等于n列星号字符组成的三角形图案。以下是n行n,输出n输入正整数10. 11.输入正整数n,输出由n行2×n-1列星号字符组成的三角形图案。以下是n 等于3的图案。

12.输入正整数你n,输出n行2×n-1列的空心三角形图案。以下是n等于4的图案。 13..输入正整数n,输出n行n列的空心四边形图案。以下是n等于5的图案。 14.编写程序,按下面的公式计算自然对数底e的值。 E=1+1/1!+1/2!+1/3!+1/5!+··· 15.编写程序,按如下公式计算圆周率π的近似值。 π=4-4/3+4/5-4/7+4/9-4/11+··· 16.编写输入正实数x,求平方不超过x的最大整数n,并输出。 回文整数是指正读和反读相同的整数,编写一个程序,输入一个整数,判断它是否是回文17. 整数。 17.编写一个程序,输出1~256十进制数等价的二进制、八进制和十六进制数值表。 18.草地上有一堆野果,有一只猴子每天去吃掉这堆野果的一半又一个,5天后刚好吃完这堆野果。求这堆野果原来共有多少个猴子每天吃多少个野果 19.输入n(>2)个整数,输出其中的次最小的数。 第四章 1.在数组的某个下标位置插入一个元素。 2.将数组的某个下标位置的元素从数组中删掉。 3.在数组a[]的前n个元素中寻找值等于变量key值的元素的下标。 4.输入n个整数,用冒泡法将它们从小到大排序,然后输出。 5.用C代码描述以下计算要求: (1)输出一组数组中下标是4的倍数的元素。

《程序设计基础》试卷(A卷)

《程序设计基础》试卷(A 卷) 注意:1、考试时间: 90 分钟; 2、班级、姓名、学号必须写在指定地方; 3、适用班级: 4、考试方式: 一、填空题 (每空 2 分,共 20 分) 1、C 程序是由函数构成的,其中有且只能有 1 个主函数,每个C 程序总是从它开始执行,并且以 ; 作为结束符。 2、C 语言中三大基本结构有:顺序结构、 选择结构 、 循环结构 。 3、‘A ’+3的结果是 68 。 4、若已定义x 和y 为double 类型,则表达式x=1,y=x+3/2 的值是 2.5 。 5、C 语言中逻辑运算符 ! 的优先级高于算术运算符。 6、符号“a”和‘a’的区别是 “a ”2字节 ‘a ’1字节 。 7、C 语言的预处理语句以____#_____开头。 8、有如下输入语句:scanf(“a=%d,b=%d ,c=%d”,&a ,&b ,&c );为使变量a 的值为1,b 的值为3,c 的值为2,从键盘输入数据的正确形式应是 a=1,b=3,c=2 。 二、选择题 (每小题 3 分,共 30 分) 1、下列叙述中错误的是( D )。 A 、 if 语句允许用户选择是否执行某个操作。 B 、 if else 语句允许用户选择执行两个操作中的某个操作。 C 、 switch 语句允许用户选择执行多个操作中的某个操作 D 、 多分支选择结构只能使用switch 语句实现 2、以下不正确的C 语言标识符是( D ) A 、ABC B 、abc C 、a_bc D 、ab.c 3、按照C 语言规定的用户标识符命名规则,不能出现在标识符中的是( B )。 A 、大写字母 B 、连接符 C 、数字字符 D 、下划线 4、将int 型变量n 转换成float 型变量的方法是( B )。 A 、float n B 、(float)n C 、float(n) D 、(int )n 5、( A )是构成C 语言的基本单位。 A 、函数 B 、子函数 C 、过程 D 、子过程 6、下面关于运算符优先顺序的描述中正确的是( B )。 A 、关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符 B 、逻辑运算符< 关系运算符< 算术运算符< 赋值运算符 C 、赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符 D 、算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符 7、在C 语言中,要求参加运算的数必须是整数的运算符是( C )。 A 、/ B 、! C 、% D 、= = 8、char 型常量在内存中存放的是( B )。 A 、ASCII 代码值 B 、BCD 代码值 C 、内码值 D 、十进制代码值 9、以下程序的输出结果是( B ) Main() { Int x=10,y=4; Printf(“%d\n ”,x/y);

程序设计基础课程设计报告 内容样例

第一章目的与要求 书上有。 第二章需求分析 软件设计的一个重要的环节就是需求分析。本章在对ATM取款机管理系统的应用情况作了全面调查的基础上,确定系统目标,并对系统所需要的基础功能进行分析,从而确定用户的需求。以下是ATM取款机管理系统所需要的需求分析。 ATM管理系统包括六个模块:登录,挂失功能,修改密码,取款功能,转账功能,查询功能。 ①登录: 输入银行卡的账号,密码,验证银行卡的卡号,密码是否正确,之后进入主界面 ②挂失功能: 确认是否对银行卡进行挂失,挂失后账户无法操作 ③修改密码: 用户可自由对其银行卡密码进行修改,修改之后的新密码将会覆盖其原密码 ④取款功能: 用户可自由取得所持银行卡内的存款,所取款数必须在其原有账户余额之内 ⑤转账功能: 用户可将本账户中的存款转入其他账户,转账过程中,需要转入账户的账

号 ⑥查询功能: 用户可查询用户信息,其中包括用户姓名、用户身份证号码、银行卡号以及存款余额 模拟ATM取款机的操作: 首先录入账户信息,格式如下 ㈠、登录功能:输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 ㈡、查询功能:查询账户余额。 ㈢、取款功能:取款,更新余额。 ㈣、挂失功能:挂失后,该账户不能进行任何操作。 ㈤、修改密码:输入原密码和新设置密码。 ㈥、转账功能:输入转账的转出账户以及转账金额,进行转账。

第三章设计分析 3.1、ATM系统管理 3.1.1系统基本功能 首先,确定系统中存在两种用户,一种是ATM,可以进行信息录入和后台管理。另外一种是取款人,取款人主要是进行信息的查询,不能进行信息录入。所以在创建类的时候,先创建一个ATM类,然后创建取款人类,并与ATM 类形成有元,进而继承ATM的所有功能,并添加录入信息的功能。 基本功能: 登录功能---------输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。 查询功能---------查询账户余额。 取款功能---------取款,更新余额。 挂失功能---------挂失后,该账户不能进行任何操作。 修改密码---------输入原密码和新设置密码。 转账功能---------输入转账的转出账户以及转账金额,进行转账。、

计算机程序设计基础习题册含答案

《计算机程序设计基础》 计算机程序设 计基础_基础知识(一) 班级 学号 姓名 成 绩 一、 单选题 习题册

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 矩阵的操作(6人) 设有两个矩阵A=(a ij)m×n,B=(b ij)p×q 实现要求: ⑴编写矩阵输入函数INPUT_MAT,通过该函数完成矩阵的输入并返回保存矩阵的数组和对应矩阵的行数、列数。(不能使用全局变量) ⑵编写矩阵输出函数OUTPUT_MAT,通过该函数完成矩阵的输出。 ⑶求矩阵的转置,矩阵的转置A’=(a ji)n×m,转置前输出原矩阵,转置后输出转置矩阵。 ⑷求矩阵A、B的和。矩阵A和B能够相加的条件是:m=p,n=q;矩阵A和B如果不能相加,请给出提示信息;若能够相加,则求和矩阵C并输出C。 C=A+B=(c ij)m×n,其中c ij=a ij+b ij ⑸求矩阵A、B的积。矩阵A和B能够相乘的条件是:p=n;矩阵A和B 如果不能相乘,请给出提示信息;若能够相乘,则求积矩阵D并输出D。 D=A×B=(d ij)m×q,其中d ij=∑a ik×b kj,k=1,2,……,n ⑹设计一个菜单,具有求矩阵的转置、求矩阵的和、求矩阵的积、退出等基本的功能。在求矩阵的和或求矩阵的积时要求能够先提示输入两个矩阵的,然后再进行相应的操作。

2 数据汇总 (6人) 问题描述: 在数据处理中经常需要对大量数据进行汇总,将相同关键字记录的某些数据项的值叠加起来,生成一个分类汇总表。 假设某超级市场销售有m种商品(假设商品的编号为1,2,3,┅┅,m),有n台前台收款机(假设收款机的编号为1,2,3,┅┅,n)进行收款,以记录的形式提供给计算机,每个记录表示某台收款机的一种商品一次交易的数量和销售额。记录由4个域组成:收款机编号、商品编号、销售数量、销售金额。构造一个结构体类型,每次销售数据以一个结构体变量保存在一个数据文件中。实现要求: ⑴编写实现将数据记录插入到数据文件的最后的函数; ⑵编写以收款机为单位的数据分类处理函数。构造n个单链表,每个链表保存一台收款机的销售记录,这n个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪台收款机。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到n个单链表; ⑶统计每台收款机的销售总额; ⑷编写以商品为单位的数据分类处理函数。构造m个单链表,每个链表保存一种商品的销售记录,这m个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪种商品。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到m个单链表; ⑸以商品为单位,统计每种商品的销售总额。 ⑹设计一个菜单,具有插入数据记录、按收款机统计销售总额、按商品统计销售总额、退出系统等最基本的功能。

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

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

程序设计基础期末考试题A卷

《程序设计基础》试题 程序设计基础期末考试题A 卷 一、 选择题(1*20=20分) 题号 1 2 3 4 5 6 7 8 9 10 总分 答案 题号 11 12 13 14 15 16 17 18 19 20 答案 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 、链式结构和顺序结构 班级 姓名

《测量程序设计课程设计》指导书-2015

测量数据处理程序设计指导书 设计名称:测量数据处理程序设计 计划周数:2周 适用对象:测绘工程专业本科 先修课程:测量学,测量平差基础,大地控制测量,测量程序设计 一、设计目的 测量数据处理程序设计是学生在系统学习完大地控制测量学、测量平差基础、测量程序设计等相关课程之后,为了系统理解控制网平差的整体过程及综合运用科学工具而安排的。通过课程设计主要达到以下几个目的:掌握控制网平差课程设计具体内容、方法和步骤;通过理论联系实际,进一步巩固已学到的专业理论知识,并加深对理论的认识;培养学生对编写代码,上机调试和编写说明书等基本技能;锻炼学生阅读各类编程参考书籍及加以编程运用的能力。 二、设计内容及日程 在VB、 VC软件或matlab科学计算软件的平台上,选择的具体课程设计题目,进行程序设计与实现,共计10个工作日,工作程序如下: 三、设计的组织: 1.设计领导 (1)指导教师:由教研室指派教师、实验员兼任。

职责:全面组织设计大纲的实施,完成分管工作及相关技术指导。 (2)设计队长:学生班长兼任。 职责:协助教师做好本班学生的人员组织工作。 (3)设计组长:每组一人。 职责:组织执行下达的设计任务,安排组内各成员的工作分工。 2.设计分组 学生实习作业组由3~4人组成(含组长一人)。 四、设计内容 在VB、VC或MATLAB 软件平台上,按选择的设计题目进行相关程序开发 1、闭合导线简易平差、附合导线简易平差支导线计算 2、闭合水准网计算、附合水准网简易平差 3、地形图编号(新、旧两种方法) 4、误差椭圆的参数的计算与绘制误差椭圆 5、水准网严密平差 6、高斯正反算计算 7、高斯投影换带计算 8、七参数大地坐标转换(WGS84-bj54坐标转换、WGS84-CGCS2000坐标转换) 9、四参数坐标转换(西安80-bj54坐标转换、CGCS2000-bj54坐标转换、CGCS2000-西安80坐 标转换(平面) 10、大地高转换为正常高的计算 11、工程投影变形超限的处理 12、遥感图像数据处理 13、曲线(曲面)拟合 14、摄影测量空间后方交会 15、****管理信息系统设计与开发 五、上交成果 1) 小组利用vb、vc或matlab编写的软件包一个及测试数据一份 2)小组关于所开发程序设计说明书一份 3) 个人课程设计的心得一份 4)小组答辩PPT一份

(完整版)程序设计基础试题_10_答案

广州大学学年第学期考试卷 课程高级语言程序设计考试形式(开/闭卷,考试/查) 学院系专业班级学号姓名 一、填空题(每空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

简答程序设计基础期末复习题

简答程序设计基础期末复习题 一、名词解释:CAD,CAM,CAI,CPU,CASE。 2、CAD:计算机辅助设计(Computer Aided Design) 3、CAM:计算机辅助制造(Computer Aided Manufacturing) 4、CAI:计算机辅助教学(Computer Aided Instruction) 5、CPU:中央处理器 6、CASE:计算机辅助软件工程 二、简述计算机硬件与软件的关系。 计算机硬件与软件的关系主要体现在以下三个方面: (1)互相依存。计算机硬件与软件的产生与发展本身就是相辅相成、互相促进的,二者密不可分。硬件是软件的基础和依托,软件是发挥硬件功能的关键,是计算机的灵魂。在实际应用中更是缺一不可,硬件与软件,缺少哪一部分,计算机都是无法使用的。 (2)无严格界面。虽然计算机的硬件与软件各有分工,但是在很多情况下软硬件之间的界面是浮动的。计算机某些功能既可由硬件实现,也可以由软件实现。随着计算机技术的发展,一些过去只能用软件实现的功能,现在可以用硬件来实现,而且速度和可靠性都大为提高。 (3)相互促进。无论从实际应用还是从计算机技术的发展看,计算机的硬件与软件之间都是相互依赖、相互影响、相互促进的。硬件技术的发展会对软件提出新的要求,促进软件的发展;反之,软件的发展又对硬件提出新的课题。

三、简述计算机程序设计语言的分类和各类的特点。 一般分为三类:机器语言(也称机器指令集),汇编语言和高级语言。 机器语言是每台计算机出厂时,厂家都为它配备一套机器语言,不同的计算机,其 机器语言通常是不同的。由于机器语言是面向具体机器的,所以其程序缺乏通用 性,编写程序的过程繁琐复杂,易出错,错了又不易查找和修改,编出的程序可读 性极差。 汇编语言是机器语言的符号化形式。用汇编语言编写的程序(又称源程序)经汇编器加工处理后,就转换成可由计算机直接执行的目标程序。汇编语言提高了程序设计 效率和计算机利用率。汇编语言仍属面向机器的一种低级语言,其程序的通用性和 可读性较差。 高级程序设计语言是指通用性好,不必对计算机的指令系统有深入的了解就可以编 写程序。采用高级语言编写的程序在不同型号的计算机上只需做某些微小的改动便 可运行,只要采用这些计算机上的编译程序重新编译即可。高级语言具有通用性, 与具体的机器无关。 四、冯·诺伊曼原理的主要思想是什么? "冯·诺伊曼原理"的主要思想就是"存储程序控制"原理。"存储程序控制"原理的基本内容是: l用二进制形式表示数据和指令; l将程序(数据和指令序列)预先存放在主存储器中,使计算机在工作时能够自动高 速地从存储器中取出指令,并加以执行,这是"存储程序控制"的基本特点; l确立了计算机系统的5大基本部件:存储器、控制器、运算器、输入设备和输出 设备,同时也规定了5大部件的基本功能。 冯·诺依曼型计算机的两大特征是"程序存储"和"采用二进制"。 冯·诺伊曼思想实际上是电子计算机设计的基本思想,奠定了现代电子计算机的基 本结构,开创了程序设计的时代。 五、何谓算法?算法有什么性质? 算法就是为解决一个特定问题而采取的特定的有限的步骤。一个完整的计算机算法 必须满足下述5个准则或标准:有穷性,确定性,可行性,输入性,输出性。

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