第三套笔试试题
一、选择题
1、软件调试的目的是______。
A、发现错误 B、改正错误 C、改善软件的性能 D、挖掘软件的潜能
2、在关系数据库中,用来表示实体之间联系的是______。
A、树结构 B、网结构 C、线性表 D、二维表
3、下列叙述中正确的是______。
A、线性表是线性结构 B、栈与队列是非线性结构
C、线性链表是非线性结构 D、二叉树是线性结构
4、程序流程图(PFD)中的箭头代表的是______。
A、数据流 B、控制流 C、调用关系 D、组成关系
5、下面概念中,不属于面向对象方法的是______。
A、对象 B、继承 C、类 D、过程调用
6、在一棵二叉树上第5层的结点数最多是______。
A、8 B、16 C、32 D、15
7、将E-R图转换到关系模式时,实体与联系都可以表示成______。
A、属性 B、关系 C、键 D、域
8、在结构化方法中,软件功能分解属于下列软件开发中的______阶段。
A、详细设计 B、需求分析 C、总体设计 D、编程调试
9、数据处理的最小单位是______。
A、数据 B、数据元素 C、数据项 D、数据结构
10、在下列选项中,哪个不是一个算法一般应该具有的基本特征______。
A、确定性 B、可行性 C、无穷性 D、拥有足够的情报
11、有以下定义
#include <stdio.h>
char a[10],*b=a;
不能给a数组输入字符串的语句是______。
A、gets(a) B、gets(a[0]); C、gets(&a[0]); D、gets(b);
12、有以下程序:
main()
{ int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf("%d,%d,%d\n",x,y,z);
}
程序执行后的输出结果是______。
A、3,2,0 B、3,2,-1 C、4,3,-1 D、5,-2,-5
13、以下符合C语言语法的实型常量是______。
A、1.2E0.5 B、3.14159E C、.5E-3 D、E15
14、有以下程序
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、8
15、若以下选项中的变量已正确定义,则正确的赋值语句是______。
A、x1=26.8%3; B、1+2=x2; C、x3=0x12; D、x4=1+2=3;
16、设有以下定义
int a=0; double b=1.25; char c='A';
#define d 2
则下面语句中错误的是______。
A、a++; B、b++; C、c++; D、d++;
17、设有定义:float a=2,b=4,h=3;,以下C语言表达式中与代数式1/2(a+b)h计算结果不相符的是______。
A、(a+b)*h/2 B、(1/2)*(a+b)*h C、(a+b)*h*1/2 D、h/2*(a+b)
18、有以下程序段
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、9
19、有以下程序:
struct STU{
char name[10];
int num;
};
void f1(struct STU c)
{struct STU b={"LiSiGuo",2042};
c=b;
}
void f2(struct STU *c)
{struct STU b={"SunDan",2044};
*c=b;
}
main()
{struct STU a={"YangSan",2041},b={"WangYin",2043};
f1(a);f2(&b);
printf("%d %d\n",a.num,b.num);
}
执行后输出结果是______。
A、2041 2044 B、2041 2043 C、2042 2044 D、2042 2043
20、以下叙述中正确的是______。
A、C语言的源程序不必通过编译就可以直接运行
B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C、C语言程序经编译形成的二进制代码可以直接运行
D、C语言中的函数不可以单独进行编译
21、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是______。
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; |
22、有以下程序
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
number
|
B、another
number
another |
C、another
number
number |
D、number
number |
23、有以下程序
void swap1(int c[])
{ int t;
t=c[0]; c[0]=c[1]; c[1]=t;
}
void swap2(int c0,int c1)
{ int t;
t=c0; c0=c1; c1=t;
}
main()
{ int a[2]={3,5},b[2]={3,5};
swap1(a); swap2(b[0],b[1]);
printf("%d %d %d %d\n", a[0],a[1],b[0],b[1]);
}
其输出结果是______。
A、5 3 5 3 B、5 3 3 5 C、3 5 3 5 D、3 5 5 3
24、设有以下语句
typedef struct S
{ int g; char h;} T;
则下面叙述中正确的是______。
A、可用S定义结构体变量 B、可以用T定义结构体变量
C、S是struct类型的变量 D、T是struct S类型的变量
25、有以下程序
main()
{ int i,n=0;
for( i=2;i<5;i++)
{do
{ if(i%3) continue;
n++;
}while(!i);
n++;
}
printf("n=%d\n",n);
}
程序执行后输出结果是______。
A、n=5 B、n=2 C、n=3 D、n=4
26、若程序中定义了以下函数,
double myadd(double a,double b)
{return(a+b);}
并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是______。
A、double myadd(double a, b); B、double myadd(double,double);
C、double myadd(double b, double a); D、double myadd(double x, double y);
27、有以下程序
struct STU
{ char name[10];
int num;
int Score;
};
main()
{ struct STU s[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580},
{"WangYin",20043,680},{"SunDan",20044,550},
{"Penghua",20045,537}}, *p[5],*t;
int i,j;
for(i=0;i<5;i++) p[i]=&s[i];
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(p[i]->Score>p[j]->Score)
{t=p[i];p[i]=p[j];p[j]=t;}
printf("%d %d\n",s[1].Score,p[1]->Score);
}
执行后输出结果是______。
A、550 550 B、680 680 C、580 550 D、580 680
28、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是______。
A、char s[10]="abcdefg"; B、char t[]="abcdefg",*s=t;
C、char s[10];s="abcdefg"; D、char s[10];strcpy(s,"abcdefg");
29、有以下程序
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);
else f(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,1
30、以下4个选项,不能看作一条语句的是______。
A、{;} B、a=0,b=0,c=0; C、if(a>0); D、if(b==0)m=1;n=2;
31、有以下程序
main()
{ int x=102,y=012;
printf("%2d,%2d\n",x,y);
}
执行后输出结果是______。
A、10,01 B、02,12 C、102,10 D、02,10
32、有以下程序:
#define f(x) x*x
main()
{ int i;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
执行后输出的结果是______。
A、28 B、22 C、16 D、4
33、有以下程序:
void sum(int *a)
{ a[0]=a[1];}
main()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
for(i=2;i>=0;i--) sum(&aa[i]);
printf("%d\n",aa[0]);
}
执行后的输出结果是______。
A、4 B、3 C、2 D、1
34、有以下程序
int f(int b[][4])
{ int i,j,s=0;
for(j=0;j<4;j++)
{ i=j;
if(i>2) i=3-j;
s+=b[i][j];
}
return s;
}
main()
{ int a[4][4]={{1,2,3,4},{0,2,4,6},{3,6,9,12},{3,2,1,0}};
printf("%d\n",f(a));
}
执行后输出的结果是______。
A、12 B、11 C、18 D、16
35、一个算法应该具有"确定性"等5个特性,下面对另外4个特性的描述中错误的是______。
A、有零个或多个输入 B、有零个或多个输出
C、有穷性 D、可行性
36、有以下程序:
main()
{ unsigned char a,b;
a=4|3;
b=4&3;
printf("%d %d\n",a,b);
}
执行后输出结果是______。
A、7 0 B、0 7 C、1 1 D、43 0
37、有以下程序
char fun(char x,char y)
{ if(x<y) return x;
return y;
}
main()
{ int a='9',b='8',c='7';
printf( "%c\n",fun(fun(a,b),fun(b,c)));
}_
程序的执行结果是______。
A、函数调用出错 B、8 C、9 D、7
38、设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是______。
A、p=1; B、*q=2; C、q=p; D、*p=5;
39、有以下程序
main()
{ char a[]="abcdefg",b[10]="abcdefg";
printf("%d %d\n",sizeof(a),sizeof(b));
}
执行后输出结果是______。
A、7 7 B、8 8 C、8 10 D、10 10
40、设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是______。
A、scanf("%d",pa); B、scanf("%d",a);
C、scanf("%d",&pa); D、scanf("%d",*pa);
41、有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件末尾向前移2*sizeof(int)字节):
#include <stdio.h>
main()
{ FILE *fp; int i, a[4]={1,2,3,4},b;
fp=fopen("data.dat","wb");
for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp);
fclose(fp);
fp=fopen("data.dat","rb");
fseek(fp,-2L*sizeof(int),SEEK_END);
fread(&b,sizeof(int),1,fp); /*从文件中读取sizeof(int)字节的数据到变量b中*/
fclose(fp);
printf("%d\n",b);
}
执行后输出的结果______。
A、2 B、1 C、4 D、3
42、下面程序的功能是输出以下形式的金字塔图案:
*
***
*****
*******
main()
{ int i,j;
for(i=1;i<=4;i++)
{ for(j=1;j<=4-i;j++)printf(" ");
for(j=1;j<=______;j++)printf("*");
printf("\n");
}
}
在下划线处应填入的是______。
A、i B、2*i-1 C、2*i+1 D、i+2
43、有以下程序:
void sort(int a[],int n)
{ int i,j,t;
for(i=0;i<n-1;i+=2)
for(j=i+2;j<n;j+=2)
if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}
}
main()
{ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(aa,10);
for(i=0;i<10;i++) printf("%d,",aa[i]);
printf("\n");
}
其输出结果是______。
A、1,2,3,4,5,6,7,8,9,10, B、10,9,8,7,6,5,4,3,2,1,
C、9,2,7,4,5,6,3,8,1,10, D、1,10,3,8,5,6,7,4,9,2,
44、有以下程序:
main()
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1;
printf("%d\n",s);
}
程序执行后的输出结果是______。
A、自然数1~9的累加和 B、自然数1~10的累加和
C、自然数1~9中奇数之和 D、自然数1~10中偶数之和
45、有以下程序:
#include <string.h>
main(int argc,char *argv[])
{ int i,len=0;
for(i=1;i<argc;i+=2) len+=strlen(argv[i]);
printf("%d\n",len);
}
经编译连接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行ex abcd efg h3 k44
执行后输出结果是______。
A、14 B、12 C、8 D、6
46、有以下程序
void f(int a[],int i, int j)
{ int t;
if(i<j)
{ t=a[i];a[i]=a[j];a[j]=t;
f(a,i+1,j-1);
}
}
main()
{ int i,aa[5]={1,2,3,4,5};
f(aa,0,4);
for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");
}
执行后输出结果是______。
A、5,4,3,2,1, B、5,2,3,4,1, C、1,2,3,4,5, D、1,5,4,3,2,
47、有以下程序:
#include <stdio.h>
main()
{ FILE *fp;int i,k=0,n=0;
fp=fopen("d1.dat","w");
for(i=1;i<4;i++) fprintf(fp,"%d",i);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n);printf("%d %d\n",k,n);
fclose(fp);
}
执行后输出结果是______。
A、1 2 B、123 0 C、1 23 D、0 0
48、有以下程序
#include <stdlib.h>
struct NODE{
int num;
struct NODE *next;
};
main()
{ struct NODE *p,*q,*r;
int sum=0;
p=(struct NODE *)malloc(sizeof(struct NODE));
q=(struct NODE *)malloc(sizeof(struct NODE));
r=(struct NODE *)malloc(sizeof(struct NODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next=r;r->next=NULL;
sum+=q->next->num;sum+=p->num;
printf("%d\n",sum);
}
执行后输出结果是______。
A、3 B、4 C、5 D、6
49、有以下程序
main()
{ char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"};
printf("%d\n",strlen(p[4]));
}
执行后的结果是______。
A、2 B、3 C、4 D、5
50、以下4组用户定义标识符中,全部合法的一组是______。
① ② ③ ④
_main If txt int
enclude -max REAL k_2
sin turbo 3COM _001
A、① B、② C、③ D、④
二、填空题
1、与结构化需求分析方法相对应的是______方法。
2、软件维护活动包括以下几类:改正性维护、适应性维护、______维护和预防性维护。
3、面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个______。
4、一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目"的联系属于______的联系。
5、顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。
6、有以下语句段
int n1=10,n2=20;
printf("______",n1,n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10
n2=20
7、以下sum函数的功能是计算下列级数之和。
S=1+x+x^2/2!+x^3/3!+…+x^n/n!
请给函数中的各变量正确赋初值。
double sum(double x,int n)
{ int i;
double a,b,s;
______
for(i=1;i<=n;i++)
{a=a*x;b=b*i;s=s+a/b;}
return s;
}
8、下面rotate函数的功能是:将n行n列的矩阵A转置为A',例如:
|1 2 3 4 |
|5 6 7 8 |
当A=|9 10 11 12|
|13 14 15 16|
|1 5 9 13|
|2 6 10 14|
则A'=|3 7 11 15|
|4 8 12 16|
请填空。
#define N 4
void rotate(int a[][])
{ int i,j,t;
for(i=0;i<N;i++)
for(j=0;______;j++)
{t=a[i][j];
______;
a[j][i]=t;
}
}
9、函数fun的功能是计算x^n。
double fun(double x,int n)
{int i; double y=1;
for(i=1;i<=n;i++) y=y*x;
return y;
}
主函数中已经正确定义m、a、b变量并赋值,并调用fun函数计算:m=a^4+b^4-(a+b)^3。实现这一计算的函数调用语句为______。
10、有以下程序
#include <stdio.h>
main()
{ char ch1,ch2; int n1,n2;
ch1=getchar(); ch2=getchar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序运行时输入:12↙,执行后输出结果是______。
11、有以下程序
main()
{ int n=0,m=1,x=2;
if(!n) x-=1;
if(m) x-=2;
if(x) x-=3;
printf("%d\n",x);
}
执行后输出的结果是______。
12、有以下程序
main()
{ int t=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
执行后输出结果是______。
13、已知字符A的ASCII码值为65,以下语句的输出结果是______。
char ch='B';
printf("%c %d\n",ch,ch);
14、以下程序的运行结果是:______。
#include <string.h>
char *ss(char *s)
{ return s+strlen(s)/2;}
main()
{ char *p,*str="abcdefgh";
p=ss(str); printf("%s\n",p);
}
15、下面程序的运行结果是:______。
int f(int a[],int n)
{ if(n>1) return a[0]+f(&a[1],n-1);
else return a[0];
}
main()
{ int aa[3]={1,2,3},s;
s=f(&aa[0],3); printf("%d\n",s);
}
16、以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指内存空间中,形成一个新字符串s。请填空。
void sstrcpy(char *s,char *t)
{ while(*s++=______);}
main()
{ char str1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
17、以下程序运行结果是______。
#include <string.h>
typedef struct student{
char name[10];
long sno;
float score;
}STU;
main()
{ STU
a={"Zhangsan",2001,95},b={"Shangxian",2002,90},
c={"Anhua",2003,95},d,*p=&d;
d=a;
if(strcmp(a.name,b.name)>0) d=b;
if(strcmp(c.name,d.name)>0) d=c;
printf("%ld %s\n",d.sno,p->name);
}
18、以下程序给指针p分配三个double型动态内存单元,请填空。
#include <stdlib.h>
main()
{ double *p;
p=(double*)malloc(______);
p[0]=1.5; p[1]=2.5;p[2]=3.5;
printf("%f%f%f\n",p[0],p[1],p[2]);
}
19、有以下程序
void f(int y,int *x)
{ y=y+*x; *x=*x+y;}
main()
{ int x=2,y=4;
f(y,&x);
printf("%d %d\n",x,y);
}
执行后输出的结果______。
第三套笔试试题答案
题号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
答案 |
B |
D |
A |
B |
D |
B |
B |
C |
C |
C |
B |
B |
C |
C |
题号 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
答案 |
C |
D |
B |
D |
A |
B |
A |
C |
B |
B |
D |
A |
C |
C |
题号 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
答案 |
C |
D |
C |
A |
A |
D |
B |
A |
D |
D |
C |
A |
D |
B |
题号 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
|
|
|
|
|
|
答案 |
C |
D |
D |
A |
B |
B |
A |
A |
|
|
|
|
|
|
二、填空题答案 1、结构化设计 2、完善性 3、实体 4、一对多 5、相邻 6、n1=%d\nn2=%d
7、a=1.0;b=1.0;s=1.0; 8、j<=i 或 i>=j 9、a[i][j]=a[j][i] 10、fun(a,4)+fun(b,4)-fun((a+b),3) 11、12 12、-4 13、0 14、B 66 15、efgh 16、6
17、*t++ 18、2002 Shangxian 19、3*sizeof(double) 20、8 4