第三套题
1、整数在计算机中存储和运算通常采用的格式是( )。
A、原码
B、补码
C、反码
D、偏移码
2、在操作系统中,将文件名转换为文件存储地址的结构是( )。
A、路径名
B、PCB表
C、文件目录
D、文件名
3、在长度为n的有序链表中进行查找,最坏情况下需要比较的次数为( )。
A、n-1
B、n/2
C、n
D、与有序顺序表的对分查找相同
4、循环队列的存储空间为Q(1:50)。经过一系列正常的入队与退队操作后,front=rear=25。后又成功地将一个元素入队,此时队列中的元素个数为( )。
A、1
B、50
C、26
D、2
5、设二叉树的前序序列为ABCDEF,中序序列为ABCDEF,则该二叉树的后序序列为( )。
A、ABCDEF
B、FEDCBA
C、DEFCBA
D、CBAFED
6、不属于对象构成成份的是( )。
A、标识
B、属性
C、方法(或操作)
D、规则
7、软件工程的三要素是( )。
A、方法、工具和环境
B、方法、工具和过程
C、方法、平台和管理
D、方法、工具和文档
8、关于数据库管理阶段的特点,下列说法中错误的是( )。
A、数据独立性差
B、数据的共享性高,冗余度低,易扩充
C、数据真正实现了结构化
D、数据由DBMS统一管理和控制
9、学校的每个社团都有一名团长,且一个同学可同时担任多个社团的团长,则实体团长和实体社团间的联系是( )。
A、一对一
B、一对多
C、多对一
D、多对多
10、如果定义班级关系如下:班级(班级号,总人数,所属学院,班级学生)则使它不满足第一范式的属性是( )。
A、所属学院
B、班级号
C、总人数
D、班级学生
11、以下关于结构化程序设计的叙述中正确的是
A、结构化程序使用goto语句会很便捷
B、在C语言中,程序的模块化是利用函数实现的
C、一个结构化程序必须同时由顺序、分支、循环三种结构组成
D、由三种基本结构构成的程序只能解决小规模的问题
12、对于一个正常运行的C程序,以下叙述中正确的是
A、程序的执行总是从main函数开始,在程序的最后一个函数中结束
B、程序的执行总是从程序的第一个函数开始, 在main函数结束
C、程序的执行总是从main函数开始
D、程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
13、以下选项中能表示合法常量的是
A、1,200
B、1.5E2.0
C、'\'
D、"\007"
14、以下定义语句中正确的是
A、int a=b=0;
B、char A=65+1,b='b';
C、float a=1,*b=&a,*c=&b;
D、double a=0.0; b=1.1;
15、若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是
A、x+1=y
B、++x,y=x--
C、x=x+10=x+y
D、double(x)/10
16、若变量已正确定义为int型,要通过语句
scanf("%d,%d,%d",&a,&b,&c);
给a赋值1、给b赋值2、给 c赋值3,以下输入形式中错误的是(注:□代表一个空格符)
A、1,2,3<回车>
B、□□□1,2,3 <回车>
C、1,□□□2,□□□3<回车>
D、1□2□3<回车>
17、以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)
A、printf ("%c \n", 'a'-32);
B、printf ("%d \n", 'A');
C、printf ("%c \n", 65);
D、printf ("%c \n", 'B'-1);
18、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是
A、1
B、0
C、2
D、不知道a的值,不能确定
19、设有定义:
int a=1,b=2,c=3;
以下语句中执行效果与其他三个不同的是
A、if(a>b) {c=b,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=a;}
20、有以下程序
#include <stdio.h>
main()
{
int y=10;
while(y--);
printf("y=%d\n", y);
}
程序执行后的输出结果是
A、y=0
B、y=-1
C、y=1
D、while构成无限循环
21、有以下程序
#include <stdio.h>
main()
{
int i,j;
for(i=1;i<4;i++)
{
for(j=i;j<4;j++) printf("%d*%d=%d",i,j,i*j);
printf("\n");
}
}
程序运行后的输出结果是
A、
1*1=1 1*2=2 1*3=3
2*2=4 2*3=6
3*3=9
B、
1*1=1 1*2=2 1*3=3
2*1=2 2*2=4
3*1=3
C、
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
D、
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
22、有以下程序
#include <stdio.h>
main()
{
int i=5;
do
{
if (i%3==1)
if (i%5==2)
{printf("*%d",i);break;}
i++;
}while(i!=0);
printf("\n");
}
程序的运行结果是
A、*2*6
B、*3*5
C、*5
D、*7
23、有以下程序
#include <stdio.h>
double f (double x);
main()
{
double a=0;
int i;
for(i=0;i<30;i+=10) a+=f((double)i);
printf("%3.0f\n",a);
}
double f(double x)
{return x*x+1;}
程序运行后的输出结果是
A、500
B、401
C、503
D、1404
24、若有以下函数首部
int fun(double x[10], int *n)
则下面针对此函数的函数声明语句中正确的是
A、int fun(double , int );
B、int fun(double *, int *);
C、int fun(double *x, int n);
D、int fun(double x, int *n);
25、有以下程序
#include <stdio.h>
main()
{
int m=1,n=2,*p=&m,*q=&n,*r;
r=p; p=q; q=r;
printf("%d,%d,%d,%d\n",m,n,*p,*q);
}
程序运行后的输出结果是
A、2,1,1,2
B、1,2,1,2
C、2,1,2,1
D、1,2,2,1
26、若有以下定义
:int x[10],*pt=x;
则对x数组元素的正确引用是
A、pt+3
B、*&x[10]
C、*(pt+10)
D、*(x+3)
27、有以下程序
#include <stdio.h>
main()
{
int i,s=0,t[]={1,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2) s+=*(t+i);
printf("%d\n",s);
}
程序执行后的输出结果是
A、20
B、25
C、45
D、36
28、有以下程序
#include <stdio.h>
#define N 4
void fun(int a[][N],int b[])
{
int i;for(i=0;i<N;i++) b[i]=a[i][i];
}
main()
{
int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;
fun(x, y);
for(i=0;i<N;i++) printf("%d,",y[i]);
printf("\n");
}
程序的运行结果是
A、1,0,7,0,
B、1,2,3,4,
C、1,4,5,9,
D、3,4,8,10,
29、设有定义:
char *c;
以下选项中能够使c正确指向一个字符串的是
A、char str[ ]="string"; c=str;
B、scanf("%s",c);
C、c=getchar( );
D、*c="string";
30、若有定义语句:
char s[10]="1234567\0\0";则strlen(s)的值是
A、7
B、8
C、9
D、10
31、有以下程序
#include <stdio.h>
#include <string.h>
main()
{
char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde";
strcat(p,r);
strcpy(p+strlen(q),q);
printf("%d\n",strlen(p));
}
程序运行后的输出结果是
A、11
B、9
C、6
D、7
32、有以下程序( 说明:字母A的ASCII码值是65 )
#include <stdio.h>
void fun(char *s)
{
while(*s)
{ if( *s%2 ) printf("%c",*s);
s++;
}
}
main()
{
char a[ ]="BYTE";
fun(a);
printf("\n");
}
程序运行后的输出结果是
A、BT
B、YE
C、YT
D、BY
33、有以下程序:
#include <stdio.h>
int fun()
{
static int x=1;
x+=1;
return x;
}
main()
{
int i,s=1;
for(i=1;i<=5;i++) s+=fun();
printf("%d\n",s);
}
程序运行后的输出结果是
A、120
B、11
C、6
D、21
34、有以下程序:
#include <stdio.h>
void fun2(char a,char b)
{
printf("%c %c",a,b);
}
char a='A',b='B';
void fun1()
{
a='C';b='D';
}
main()
{
fun1( );
printf("%c %c ",a,b);
fun2('E','F');
}
程序的运行结果是
A、A B E F
B、C D E F
C、A B C D
D、C D A B
35、以下关于typedef的叙述错误的是
A、用typedef可以增加新类型
B、typedef只是将已存在的类型用一个新的名字来代表
C、用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名
D、用typedef为类型说明一个新名,通常可以增加程序的可读性
36、程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为指针指向链表的第一个结点。
若有以下程序段:
q=s;s=s->next;p=s;
while(p->next)p=p->next;
p->next=q;q->next=NULL;
该程序段实现的功能是
A、删除尾结点
B、尾结点成为首结点
C、删除首结点
D、首结点成为尾结点
37、有以下程序:
#include <stdio.h>
#define S(x) 4*(x)*x+1
main()
{
int k=5,j=2;
printf("%d\n",S(k+j));
}
程序运行后的输出结果是
A、33
B、197
C、143
D、28
38、若有以下程序段:
int r=8;
printf("%d\n",r>>1 );
输出结果是
A、16
B、8
C、4
D、2
39、以下叙述中错误的是
A、gets函数用于从终端读入字符串
B、getchar函数用于从磁盘文件读入字符
C、fputs函数用于把字符串输出到文件
D、fwrite函数用于以二进制形式输出数据到文件
40、有以下程序:
#include <stdio.h>
main()
{
FILE *pf;
char *s1="China", *s2="Beijing";
pf=fopen("abc.dat","wb+");
fwrite(s2,7,1,pf);
rewind(pf); /*文件位置指针回到文件开头*/
fwrite(s1,5,1,pf);
fclose(pf);
}
以上程序执行后abc.dat文件的内容是
A、China
B、Chinang
C、ChinaBeijing
D、BeijingChina
41、使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。
例如,有10个正数:46、30、32、40、6、17、45、15、48、26,平均值为30.500000。
移动后的输出为:46、32、40、45、48、30、6、17、15、26。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件blank1.c中。
不得增行或删行,也不得更改程序的结构!
42、使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。此程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里"单词"是指由空格隔开的字符串)。
例如,若输入"I am a student to take the examination",则应输出"I Am A Student To Take The Examination"。
请改正程序中的错误,使程序能得出正确的结果。
注意:部分源程序在文件modi1.c中。
不得增行或删行,也不得更改程序的结构!
同根子题
43、使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。例如,若a 数组中的值为:
则返回主程序后s的值应为3.375。
注意:部分源程序在文件prog1.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。