您的当前位置:首页正文

计算机二级c++上机考试题库

来源:帮我找美食网
所属语言:C++ 试卷总分:200分 共有题型:5种

一、填空 共20题 (共计20分) 第1题 (1.0分) 假设变量a,b均为整型,表达式 (a=5,b=2,a>b?a++:b++,a+b) 的值是【1】. 答案:

=======(答案1)======= 8

第2题 (1.0分)

若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3

该数组的元素中,数值最大的元素的下标值是【1】答案:

=======(答案1)======= 2

第3题 (1.0分) 下面程序段的输出结果是【1】. int a=12; a=a&0377;pritnf(\"%o\\n\

. 答案:

=======(答案1)======= 14

第4题 (1.0分)

若输入字符串:abcde<回车>,则以下while循环体将执行 【1】 次.

While((ch=getchar())=='e') printf(\"*\"); 答案:

=======(答案1)======= 0

第5题 (1.0分)

将数组a的首地址赋给指针变量p的语句是【1】. 答案:

=======(答案1)======= p=a;

第6题 (1.0分)

C语言把文件看作是一个【1】的序列. 答案:

=======(答案1)======= 字符

=========或=========

字节

第7题 (1.0分)

静态变量和外部变量的初始化是在【1】阶段完成的,而自动变量的赋值是 在【2】时进行的. 答案:

=======(答案1)======= 编译

=======(答案2)======= 函数调用

第8题 (1.0分)

若有定义:int a[3][2]={2,4,6,8,10,12};,则*(a[1]+1)的值是【1】. 答案:

=======(答案1)======= 8

第9题 (1.0分)

C语言中,数组名是一个不可变的【1】量,不能对它进行加减和赋值运算. 答案:

======(答案1)======= 地址

第10题 (1.0分) int x=2;z=x++-1; 则x的值为【1】.

答案:=======(答案1)======= 3

第11题 (1.0分)

若所用变量都已正确定义,请填写以下程序段的输出结果【1】. for(i=1;i<=5;i++); printf(\"OK\\n\"); 答案:

=======(答案1)======= OK

第12题 (1.0分)

feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为【1】, 否则为【2】. 答案:

=======(答案1)======= 非0值

======(答案2)======= 0

第13题 (1.0分)

如果函数不要求带回值,可用【1】来定义函数返回值为空. 答案:

=======(答案1)======= void

第14题 (1.0分)

调用 fopen 函数打开一文本文件,在\"使用方式\"这一项中,

为输出而打开需填入【1】. 答案:

=======(答案1)======= w

=========或========= w+

第15题 (1.0分)

顺序结构存储方法是把逻辑上相邻的结点存储在物理位置【1】 的存储单元中。 答案:

=======(答案1)======= 相邻

第16题 (1.0分)

一个类可以从直接或间接的祖先中继承所有属性和方法。采用

这个方法提高了软件的【1】。

答案:

=======(答案1)======= 可重用性

第17题 (1.0分)

C++中封装性、继承性和【1】是面向对象程序设计的三个主要性质。 答案:

=======(答案1)======= 多态性

第18题 (1.0分)

C++语言的参数传递机制包括传值和传地址两种,如果调用函数

时,需要改变实参或者返回多个值,应该采取【1】方式。

答案:

=======(答案1)======= 传地址

第19题 (1.0分)

设i,j,k均为int型变量,则执行完for(i=0,j=10;j<=j;i++,j--)k=i+j; 语句后,K的值为【1】。 答案:

=======(答案1)======= 10

第20题 (1.0分)

对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为【1】。 答案:

=======(答案1)======= 45

二、判断 共20题 (共计20分) 第1题 (1.0分)

用fopen(\"file\打开的文件\"file\"可以进行修改。 答案:Y

第2题 (1.0分) int i=20;switch(i/10){case 2:printf(\"A\"); case 1:printf(\"B\");}的输出结果为A。 答案:N

第3题 (1.0分) 若有定义和语句:

int a;char c;float f;scanf(\"%d,%c,%f\若通过键盘输入:

10,A,12.5,则a=10,c='A',f=12.5.

答案:Y

第4题 (1.0分)

char *p=\"girl\";的含义是定义字符型指针变量p,p的值是字符串\"girl\"。 答案:N

第5题 (1.0分) x*=y+8 等价于 x=x*(y+8)。 答案:Y

第6题 (1.0分)

如果有一个字符串,其中第十个字符为'\\n',则此字符串的

有效字符为9个。 答案:N

第7题 (1.0分)

通过return语句,函数可以带回一个或一个以上的返回值。 答案:N

第8题 (1.0分)

如果想使一个数组中全部元素的值为0,可以写成 int a[10]={0*10}; 答案:N

第9题 (1.0分)

一个include 命令可以指定多个被包含的文件。 答案:N

第10题 (1.0分)

C程序中有调用关系的所有函数必须放在同一个源程序文件中。 答案:N

第11题 (1.0分)

进行宏定义时,宏名必须使用大写字母表示。 答案:N

第12题 (1.0分)

共同体变量所占的内存长度等于最长的成员的长度。 答案:Y

第13题 (1.0分)

在C 语言中,此定义和语句是合法的: enum aa{ a=5,b,c}bb;bb=(enum aa)5; 答案:Y

第14题 (1.0分) 7&3+12的值是15。 答案:N

第15题 (1.0分)

类有两个特殊的成员函数构造函数和虚函数 答案:N

第16题 (1.0分)

抽象类不仅可用做派生其他类的基类,也可以用于直接创建对象 实例。 答案:N

第17题 (1.0分) 静态函数可声明为虚函数。 答案:N

第18题 (1.0分)

如果一个函数在其函数体内直接或间接的调用了自己,该函数

称为递归函数。 答案:Y

第19题 (1.0分)

类中提供了三种访问控制权:公有、私有、保护三种类型。 答案:Y

第20题 (1.0分)

所谓继承就是利用已有的数据类型定义出新的数据类型。 答案:Y

三、单选 共60题 (共计60分) 第1题 (1.0分) fscanf函数的正确调用形式是()。 A:fscanf(fp,格式字符串,输出表列); B:fscanf(格式字符串,输出表列,fp); C:fscanf(格式字符串,文件指针,输出表列); D:fscanf(文件指针,格式字符串,输入表列);

答案:D

第2题 (1.0分)

C语言的if语句嵌套时,if与else的配对关系是()。 A:每个else总是与它上面的最近的if配对 B:每个else总是与最外层的if配对 C:每个else与if的配对是任意的 D:每个else总是与它上面的if配对 答案:A

第3题 (1.0分) C语言中,文件由()。 A:记录组成 B:由数据行组成 C:由数据块组成 D:由字符(字节)序列组成 答案:D

第4题 (1.0分)

设C语言中,int类型数据占2个字节,则short类型数据占()。 A:1个字节 B:2个字节 C:4个字节 D:8个字节 答案:B

第5题 (1.0分)

以下不符合C语言语法的赋值语句是()A:j++; B:j=j=5; C:k=2*4,k*4; D:y=float(j); 答案:D

第6题 (1.0分)

。 C语言允许函数类型缺省定义,此时函数值隐含的类型是()。 A:float B:int C:long D:double 答案:B

第7题 (1.0分) int (*p)[6]; 它的含义为()。 A:具有6个元素的一维数组

B:定义了一个指向具有6个元素的一维数组的指针变量

C:指向整型指针变量

D:指向6个整数中的一个的地址 答案:B

第8题 (1.0分)

经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在

微机上的值分别为()。 char x=65; float y=7.3; int a=100; double b=4.5; A:2,2,2,4 B:1,2,2,4 C:1,4,2,8 D:2,4,2,8 答案:C

第9题 (1.0分) char *match(char c)是()A:函数定义的头部 B:函数预说明 C:函数调用 D:指针变量说明

。 答案:A

第10题 (1.0分)

若有说明: int a[3][4]={0};则下面正确的叙述是()。 A:只有元素a[0][0]可得到初值0 B:此说明语句不正确

C:数组a中各元素都可得到初值,但其值不一定为0 D:数组a中每个元素均可得到初值0 答案:D

第11题 (1.0分)

当说明一个结构体变量时系统分配给它的内存是()。 A:各成员所需内存量的总和 B:结构中第一个成员所需内存量 C:成员中占内存量最大者所需的容量 D:结构中最后一个成员所需内存量 答案:A

第12题 (1.0分) 以下不是无限循环的语句为()。 A:for(y=0,x=1;x>++y;x=i++) i=x; B:for(;;x++=i); C:while(1){x++;} D:for(i=10;;i--) sum+=i; 答案:A

第13题 (1.0分)

利用 fseek 函数可以实现的操作是()A:改变文件的位置指针 B:文件的顺序读写 C:文件的随机读写 D:以上答案均正确 答案:D

第14题 (1.0分)

。 C语言中 while 和 do-while 循环的主要区别是()。 A:do-while 的循环体至少无条件执行一次

B:while的循环控制条件比 do-while的循环控制条件更严格

C:do-while 允许从外部转到循环体内 D:do-while 的循环体不能是复合语句 答案:A

第15题 (1.0分) sizeof(float)是()。 A:一种函数调用 B:一个不合法的表达式 C:一个整型表达式 D:一个浮点表达式 答案:C

第16题 (1.0分) 以下程序的运行结果是()。

main() { int n;

for(n=1;n<=10;n++) {

if(n%3==0) continue; printf(\"%d\ } }

A:12457810 B:369 C:12

D:1234567890 答案:A

第17题 (1.0分) 以下不正确的叙述是()。

A:在C程序中所用的变量必须先定义后使用 B:程序中,APH和aph是两个不同的变量

C:若a和b类型相同,在执行了赋值语句a=b;后中的值将放入a中,b中的值不变

bD:当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值 答案:D

第18题 (1.0分) 下列程序的输出结果为()main() {int m=7,n=4; float a=38.4,b=6.4,x; x=m/2+n*a/b+1/2; printf(\"%f\\n\}

A:27.000000 B:27.500000 C:28.000000 D:28.500000 答案:A

。 第19题 (1.0分)

凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()。 A:自动(auto) B:静态(static) C:外部(extern) D:寄存器(register) 答案:A

第20题 (1.0分)

下列定义数组的语句中正确的是()。 A:#define size 10 char str1[size],str2[size+2]; B:char str[]; C:int num['10']; D:int n=5; int a[n][n+2]; 答案:A

第21题 (1.0分)

以下描述中,正确的是()。

A:预处理是指完成宏替换和文件包含中指定的文件的调用

B:预处理指令只能位于C源文件的开始

C:C源程序中凡是行首以#标识的控制行都是预处理指令

D:预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备 答案:C

第22题 (1.0分) 位字段数据的单位是()位。 A:十六进制 B:八进制 C:二进制 D:十进制 答案:C

第23题 (1.0分)

以下的选择中,正确的赋值语句是()。 A:a=1,b=2 B:j++ C:a=b=5; D:y=int(x) 答案:C

第24题 (1.0分)

若有int *p=(int *)malloc(sizeof(int));则向内存申请到内存

空间存入整数123的语句为()。 A:scanf(\"%d\B:scanf(\"%d\C:scanf(\"%d\D:scanf(\"%d\ 答案:A

第25题 (1.0分)

已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用

八进制表示的字符常量'\\101'是()。 A:字符A B:字符a C:字符e D:非法的常量 答案:A

第26题 (1.0分) 以下叙述中正确的是 ()。

A:C程序中注释部分可以出现在程序中任意合适的地方

B:花括号“{“和”}”只能作为函数体的定界符 C:构成C程序的基本单位是函数,所有函数名都可以由用户命名

D:分号是C语句之间的分隔符,不是语句的一部分

答案:A

第27题 (1.0分)

假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,

则数组x在内存中所占字节数是()。 A:3 B:6 C:10 D:20 答案:D

第28题 (1.0分)

在C语言中,形参的缺省存储类是()。 A:auto B:register C:static D:extern

答案:A

第29题 (1.0分)

已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为()。 char a='a'; a--;

printf(\"%d,%c\\n\A:b,c

B:a--运算不合法,故有语法错 C:98,c

D:格式描述和输出项不匹配,输出无定值 答案:C

第30题 (1.0分)

不仅可将C源程序存在磁盘上,还可将数据按数据类型分别以什么的 形式存在磁盘上()。 A:内存 B:缓冲区 C:文件

D:寄存器 答案:C

第31题 (1.0分)

表达式18/4*sqrt(4.0)/8值的数据类型为()。 A:int B:float C:double D:不确定 答案:C

第32题 (1.0分)

以下能对二维数组a进行正确初始化的语句是()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}};

。 答案:B

第33题 (1.0分) 函数 rewind 的作用是()。 A:使位置指针重新返回文件的开头 B:将位置指针指向文件中所要求的特定位置 C:使位置指针指向文件的末尾

D:使位置指针自动移至下一个字符位置 答案:A

第34题 (1.0分)

在C语言中,要求运算数必须是整型或字符型的运算符是()。 A:&& B:& C:! D:||

答案:B

第35题 (1.0分) int a=1,b=2,c=3;

if(a>c)b=a;a=c;c=b;则c的值为()。 A:1 B:2 C:3 D:不一定 答案:B

第36题 (1.0分)

对 for(表达式1; ;表达式3) 可理解为()A:for(表达式1;0;表达式3) B:for(表达式1;1;表达式3) C:for(表达式1;表达式1;表达式3) D:for(表达式1;表达式3;表达式3)

。 答案:B

第37题 (1.0分)

a,b为整型变量,二者均不为0,以下关系表达式中恒成立的是()。 A:a*b/a*b==1 B:a/b*b/a==1 C:a/b*b+a%b==a D:a/b*b==a 答案:C

第38题 (1.0分)

char a1[]=\"abc\将a1串连接到a2串后面的语句是()。 A:strcat(a2,a1); B:strcpy(a2,a1); C:strcat(a1,a2); D:strcpy(a1,a2);

答案:A

第39题 (1.0分)

设 char *s=\"\a\\017bc\";则指针变量s指向的字符串所占的字节数 是()。 A:9 B:5 C:6 D:7 答案:C

第40题 (1.0分) 以下描述中正确的是()。

A:由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

B:do-while 循环由do开始,用while结束,在 while(表达式)后面不能写分号

C:在 do-while 循环体中,一定要有能使 while 后面表达式的值变为零(\"假\")的操作

D:do-while 循环中,根据情况可以省略 while 答案:C

第41题 (1.0分)

对于void类型函数,调用时不可作为()A:自定义函数体中的语句 B:循环体里的语句 C:if语句的成分语句 D:表达式 答案:D

第42题 (1.0分) 下列语句中,不正确的是()。 A:static char a[2]={1,2}; B:static int a[2]={'1','2'}; C:static char a[2]={'1','2','3'}; D:static char a[2]={'1'};

。 答案:C

第43题 (1.0分)

设有定义 int x;float y;,则10+x+y值的数据类型是 A:int B:double C:float D:不确定 答案:C

第44题 (1.0分)

在类的定义中,用于为对象分配内存空间,对类的数据成员进行

初始化并执行其他内部管理操作的函数是 A:友元函数 B:虚函数 C:构造函数 D:析构函数

答案:C

第45题 (1.0分)

下面对静态数据成员的描述中,正确的是 A:静态数据成员可以在类体内进行初始化 B:静态数据成员不可以被类的对象调用 C:静态数据成员不能受private控制符的作用 D:静态数据成员可以直接用类名调用 答案:D

第46题 (1.0分) 下面对友元函数描述正确的是 A:友元函数的实现必须在类的内部定义 B:友元函数是类的成员函数

C:友元函数破坏了类的封装性和隐藏性 D:友元函数不能访问类的私有成员 答案:C

第47题 (1.0分) 下面叙述不正确的是

A:基类的保护成员在派生类中仍然是保护成员 B:基类的保护成员在公有派生类中仍然是保护成员 C:基类的保护成员在私有派生类中是私有成员 D:对基类成员的访问必须是无二义性 答案:A

第48题 (1.0分)

在C++语言程序中,对象之间的相互通信通过 A:继承实现 B:调用成员函数实现 C:封装实现 D:函数重载实现 答案:B

第49题 (1.0分)

下列关于虚基类的描述中,错误的是 A:设置虚基类的目的是为了消除二义性 B:虚基类的构造函数在非虚基类之后调用

C:若同一层包含多个虚基类,这些基类的构造函数按照它们的次序调用

D:若虚基类由非基类派生而来,则仍然先调用基类构造函数,再用派生类的构造函数 答案:B

第50题 (1.0分)

下列运算符中,在C++语言中不能重载的是 A:* B:>= C::: D:/ 答案:C

第51题 (1.0分)

继承机制的作用是 A:信息隐藏 B:数据封装 C:定义新类 D:数据抽象 答案:C

第52题 (1.0分)

C++语言对C语言进行了很多改进,C++语言相对于C语言的最根 本的变化是

A:增加了一些新的运算符

B:允许函数重载,并允许设置缺省参数

C:规定函数说明符必须用原型 D:引进了类和对象的概念 答案:D

第53题 (1.0分)

若x、i、j、k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为( ). A:4 B:16 C:32 D:52 答案:C

第54题 (1.0分)

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

A:开关语句中,case子句的个数是不受限制的 B:开关语句中,case子句的语句序列中一定要有语句

C:开关语句中,default子句可以省略

breakD:开关语句中,右花括号具有退出开关语句的功能 答案:B

第55题 (1.0分)

下列while循环语句的循环次数是( while(int i=0) i--; A:0 B:1 C:2 D:无限 答案:A

第56题 (1.0分) 下列运算符中优先级最高的是( ).

). A:?: B:% C:-= D:&& 答案:B

第57题 (1.0分) 采用函数重载的目的在于( ).

A:实现共享 B:减少空间

C:使用方便,提高可靠性 D:提高速度 答案:C

第58题 (1.0分) 使用磁盘文件,要包含_____头文件

A:iostream B:fstream C:iomanip D:complex 答案:B

第59题 (1.0分) ( )是析构函数的特征.

A:一个类中只能定义一个析构函数 B:析构函数与类名不同 C:析构函数的定义只能在类体内 D:析构函数可以有一个或多个参数 答案:A

第60题 (1.0分)

下列关于字符数组的描述中,错误的是( A:字符数组中的每一个元素都是字符

). B:字符数组可以使用初始值表进行初始化 C:字符数组可以存放字符串

D:字符数组就是字符串 答案:D

四、程序填空 共6题 (共计40分) 第

1

5.0

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

功能:产生10个[30,90]区间上的随机整数,然后对其用选择法

进行由小到大的排序。

-------------------------------------------------------*/ #include main() {

/***********SPACE***********/ 【?】; int i,j,k; int a[10]; for(i=0;i<10;i++) a[i]=random(61)+30; for(i=0;i<9;i++) {

/***********SPACE***********/ 【?】;

for(j=i+1;j<10;j++)

/***********SPACE***********/ if(【?】) k=j; if(k!=i) {

t=a[k]; a[k]=a[i]; a[i]=t; } }

/***********SPACE***********/ for(【?】 )

printf(\"%5d\ printf(\"\\n\"); } 答案:

=======(答案1)======= int t

=======(答案2)======= k=i

=======(答案3)======= a[k]>a[j]

=========或========= a[j]=======(答案4)======= i=0;i<10;i++

=========或========= i=0;10>i;i++

=========或=========

i=0;i<=9;i+=1

=========或========= i=0;9>=i;i++

=========或========= i=0;i<10;i+=1

=========或========= i=0;10>i;i+=1

=========或========= i=0;i<=9;i++

=========或========= i=0;9>=i;i+=1

=========或========= i=0;i<10;++i

=========或========= i=0;10>i;++i

=========或========= i=0;9>=i;++i

=========或========= i=0;i<=9;++i 第

2

5.0

)(

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

功能:求一个二维数组中每行的最大值和每行的和。

-------------------------------------------------------*/

#include main() {

int a[5][5],b[5],c[5],i,j,k,s=0; for(i=0;i<5;i++) for(j=0;j<5;j++)

a[i][j]=random(40)+20; for(i=0;i<5;i++) {

/***********SPACE***********/ k=a[i][0]; 【?】 ; for(j=0;j<5;j++) {

/***********SPACE***********/

if(k/***********SPACE***********/ 【?】 ; }

for(i=0;i<5;i++) {

for(j=0;j<5;j++)

/***********SPACE***********/ printf(\"%5d\【?】 ); printf(\"%5d%5d\ printf(\"\\n\"); } } 答案:

=======(答案1)======= s=0

=======(答案2)======= k=a[i][j]

=======(答案3)======= c[i]=s

=======(答案4)======= a[i][j] 第

3

5.0

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

功能:计算一元二次方程的根。

-------------------------------------------------------*/

#include

/***********SPACE***********/ #include 【?】

)分

main() {

double x1,x2,imagpart; float a,b,c,disc,realpart; scanf(\"%f%f%f\ printf(\"the equation\");

/***********SPACE***********/ if(【?】<=1e-6)

printf(\"is not quadratic\\n\"); else

disc=b*b-4*a*c; if(fabs(disc)<=1e-6)

printf(\"has two equal roots:%-8.4f\\n\ /***********SPACE***********/ else if(【?】) {

x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf(\"has and %.4f\\n\ } else

distinct

real

roots:%8.4f

{

realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf(\"has complex roots:\\n\");

printf(\"%8.4f=%.4fi\\n\ printf(\"%8.4f-%.4fi\\n\ } } 答案:

=======(答案1)=======

=======(答案2)======= fabs(a)

=======(答案3)======= fabs(disc) > 1e-6 =========或========= 1e-6

4

5.0

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

功能:分别求出一批非零整数中的偶数、奇数的平均值,用零作

为终止标记。

-------------------------------------------------------*/ #include main() {

int x,i=0,j=0;

float s1=0,s2=0,av1,av2; scanf(\"%d\

/***********SPACE***********/ while(【?】) {

if(x%2==0) {

s1=s1+x; i++; }

/***********SPACE***********/ 【?】 {

s2=s2+x; j++; }

/***********SPACE***********/ 【?】; } if(i!=0) av1=s1/i; else av1=0; if(j!=0)

/***********SPACE***********/ 【?】 ; else av2=0;

printf(\"oushujunzhi:%7.2f,jishujunzhi:%7.2f\\n\} 答案:

=======(答案1)======= x != 0

=========或========= x

=======(答案2)======= else

=========或========= else if(x%2==1) =========或========= else if(x%2!=0) =========或========= if(x%2)

=======(答案3)======= scanf(\"%d\

=======(答案4)======= av2=s2/j 第

5

10.0

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

功能:以下程序的功能是输入字符串,再输入一个字符,将字符串

中与输入字符相同的字符删除。

-------------------------------------------------------*/

#include #include #include void fun(char a[],char c) { int i,j;

/***********SPACE***********/

for(i=j=0;【?】;i++) if(a[i]!=c) a[j++]=a[i];

/***********SPACE***********/ 【?】; }

void main() {

char a[20],cc;

/***********SPACE***********/ 【?】; cc=getchar();

/***********SPACE***********/ 【?】; cout<=======(答案1)======= a[i]!='\\0'

=========或========= a[i]!=0

=========或========= i=========或========= a[i]

=======(答案2)======= a[j]='\\0'

=========或========= a[j]=0

=======(答案3)======= cin>>a

=========或========= printf(\"%s\

=========或========= gets(a)

=========或========= cin.getline(a,20)

=======(答案4)=======

fun(a,cc) 第

6

10.0

/*------------------------------------------------------- 【程序填空】

---------------------------------------------------------

功能:对任意10个字符串按升序排序,每个串的长度小于20个字符。

-------------------------------------------------------*/

#include #include #include void main() {

/***********SPACE***********/ char temp[20],【?】; int i,j,l; for(i=0;i<10;i++)

gets(word[i]); for(i=0;i<9;i++) { l=i;

/***********SPACE***********/ for(【?】)

if(strcmp(word[l],word[j])>0) /***********SPACE***********/ 【?】; strcpy(temp,word[i]); /***********SPACE***********/ 【?】;

strcpy(word[l],temp); }

for(i=0;i<10;i++) cout<=======(答案1)======= word[10][20]

=======(答案2)======= j=i+1;j<10;j++

=========或========= j=i;j<10;j++

=========或========= j=i;j<=9;j++

=========或========= j=i+1;j<=9;j++

=======(答案3)======= l=j

=======(答案4)======= strcpy(word[i],word[l])

五、程序设计 共6题 (共计60分)第

1

10.0

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

) 分

功能:求一组数中大于平均值的数的个数。

例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函 数值为3。

------------------------------------------------*/

#include void wwjt();

int fun(int a[],int n) {

/**********Program**********/

/********** End **********/

} main() {

int a[10]={1,3,6,9,4,23,35,67,12,88}; int y; y=fun(a,10); printf(\"y=%d\\n\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int iIN[10],iOUT,i,j; IN=fopen(\"in.dat\ if(IN==NULL) {

printf(\"Please Verify The Changed\"); }

OUT=fopen(\"out.dat\ if(OUT==NULL) {

Be Currernt Dir..it May printf(\"Please Verify The Current Dir.. it May Be Changed\"); }

for(j=0;j<10;j++) {

for(i=0;i<10;i++) fscanf(IN,\"%d\ iOUT=fun(iIN,10); }

fprintf(OUT,\"%d\\n\

fclose(IN); fclose(OUT); }

答案:---------------------- int i,k=0; float s=0,ave; for(i=0;iprintf(\"%f \

for(i=0;iave)k++; return k; ---------------------- 第

2

10.0

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:输入2个学生3门课的成绩,计算学生成绩平均分,

课程平均分和最高分.

例如:输入2名学生3门课的成绩分别为92,87,68,56,

92,84 则

学生1平均分:82.33 学生2平均分:77.33 课程1平均分:74.00 课程2平均分:89.50 课程3平均分:76.00 最高分为:92

------------------------------------------------*/ #include void wwjt();

/*定义全局变量*/ /*学生成绩平均分*/ float StuAgv[2]; /*课程平均分*/ float CouAgv[3];

/*所有学生的所有课程最高分*/ float Max=0;

/*说明:需要在下面函数中把题干要求中的结果赋值到上面定义一变量中*/ void fun(float score[2][3]) {

/**********Program**********/

/********** End **********/ }

void main() {

int i,j;

float score[2][3];

printf(\"输入学生的成绩:\"); for(i=0;i<2;i++) for(j=0;j<3;j++)

scanf(\"%f\

printf(\"\\n输出学生的成绩:\"); for(i=0;i<2;i++) {

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

printf(\"%.2f \ printf(\"\\n\");

}

fun (score);

for(i=0;i<2;i++) printf(\"第%d个学生的平均成是:%0.2f\\n\

for(j=0;j<3;j++) printf(\"第%d门课的平均成是:%0.2f\\n\

printf(\"所有分数中的最高为:%.2f\\n\

wwjt(); }

void wwjt() {

绩分绩

FILE *IN,*OUT; float iIN[2][3]; int i,j;

IN=fopen(\"in.dat\ if(IN==NULL) {

printf(\"Please Verify The Currernt Dir..it Changed\"); }

OUT=fopen(\"out.dat\ if(OUT==NULL) {

printf(\"Please Verify The Current Dir.. it Changed\"); }

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

fscanf(IN,\"%f\ fun(iIN); for(i=0;i<2;i++)

fprintf(OUT,\"%.2f\\n\

Be May Be May for(j=0;j<3;j++)

fprintf(OUT,\"%.2f\\n\ fprintf(OUT,\"%.2f\\n\ fclose(IN); fclose(OUT); return ; }

答案: int i,j; float sum;

for(i=0;i<2;i++) 均分*/ { sum=0; for(j=0;j<3;j++) sum=sum+score[i][j]; StuAgv[i]=sum/3; }

for(j=0;j<3;j++) 均分*/ {

/*计算第i个学生平 /*计算第j门课的平 sum=0; for(i=0;i<2;i++)

sum=sum+ score [i][j]; CouAgv[j]=sum/2; }

Max=score[0][0]; for(i=0;i<2;i++) for(j=0;j<3;j++) if(Max<=score[i][j]) {

Max=score[i][j]; } return ; 第

3

10.0

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:计算出k以内最大的10个能被13或17整除的自然数之

和。(k〈3000)。

------------------------------------------------*/

#include #include\"conio.h\" void wwjt();

int fun(int k) {

/**********Program**********/

/********** End **********/ }

main() { int m;

printf(\"Enter m: \"); scanf(\"%d\

printf(\"\\nThe result is %d\\n\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int s ; int t; int o;

IN=fopen(\"in.dat\

if(IN==NULL) {

printf(\"Read FILE Error\"); }

OUT=fopen(\"out.dat\ if(OUT==NULL) {

printf(\"Write FILE Error\"); }

for(s=1;s<=5;s++) {

fscanf(IN,\"%d\ o=fun(t);

fprintf(OUT,\"%d\\n\ } fclose(IN); fclose(OUT); }

答案:---------------------- int a=0,b=0;

while((k>=2)&&(b<10))

{if((k%13==0)||(k%17==0)) {a=a+k;b++;} k--; } return a; ---------------------- 第

4

10.0

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:求出二维数组周边元素之和,作为函数值返回。二

维数组的值在主函数中赋予。

-------------------------------------------------*/

#define M 4 #define N 5 #include void wwjt();

int fun(int a[M][N]) {

/**********Program**********/

/********** End **********/ } main() { int

a[M][N]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8}}; int y; y=fun(a);

printf(\"s=%d\\n\

wwjt(); }

void wwjt() {

FILE *IN,*OUT; int iIN[M][N],iOUT; int i,j,k;

IN=fopen(\"14.IN\if(IN==NULL)

{printf(\"Please Verify The Currernt Dir..it Changed\"); }

OUT=fopen(\"14.out\if(OUT==NULL)

{printf(\"Please Verify The Current Dir.. it Changed\"); }

for(k=0;k<10;k++) { for(i=0;ifscanf(IN,\"%d\

Be May Be May iOUT=fun(iIN);

fprintf(OUT,\"%d\\n\} fclose(IN); fclose(OUT); }

答案:---------------------- int s=0; int i,j;

for(i=0;i5

10.0

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

)分

题目: 将10进制正整数N转化成K进制(K<9)按位输出到 m.

--------------------------------------------------

注意:部分源程序给出如下。请勿改动主函数main和其它

函数中的任何内容,仅在函数的花括号中填入所编

写的若干语句。

------------------------------------------------*/

#include #include #include

void writeinfile(int n);

void main() {

int m,n,k,l=1; n=8;k=2;

/**********Program**********/

/********** End **********/ writeinfile(m); }

void writeinfile(int n) {

fstream myfile;

myfile.open(\"f.txt\myfile<答案:---------------------- m=0; while(n!=0) {m=m+n%k*l; n=n/k;l*=10;} ----------------------

6

10.0

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

题目: 已知一个数m(=252)求各位数字之和

--------------------------------------------------

注意:部分源程序给出如下。请勿改动主函数main和其它

函数中的任何内容,仅在函数的花括号中填入所编

写的若干语句。

------------------------------------------------*/

#include #include #include

void writeinfile(int n);

void main() {

int m,s=0,n; m=252;

/**********Program**********/

/********** End **********/ cout<void writeinfile(int n) {

fstream myfile;

myfile.open(\"f2.txt\myfile<答案:---------------------- while( m!=0)

{n=m%10;s+=n;m=m/10;} ----------------------

因篇幅问题不能全部显示,请点此查看更多更全内容

Top