1、【
单选题
】
下列数据结构中,属于非线性结构的是
[2分]
、
循环队列
、
带链队列
、
二叉树
、
带链栈
答案:
2、【
单选题
】
下列数据结构中,能够按照“先进后出”原则存取数据的是
[2分]
答案:
3、【
单选题
】
对于循环队列,下列叙述中正确的是
[2分]
、
队头指针是固定不变的
、
队头指针一定大于队尾指针
、
队头指针一定小于队尾指针
、
队头指针可以大于队尾指针,也可以小于队尾指针
答案:
4、【
单选题
】
算法的空间复杂度是指
[2分]
、
算法在执行过程中所需要的计算机存储空间
、
算法所处理的数据量
、
算法程序中的语句或指令条数
、
算法在执行过程中所需要的临时工作单元数
答案:
5、【
单选题
】
软件设计中划分模块的一个准则是
[2分]
、
低内聚低耦合
、
高内聚低耦合
、
低内聚高耦合
、
高内聚高耦合
答案:
6、【
单选题
】
下列选项中不属于结构化程序设计原则的是
[2分]
、
可封装
、
自顶向下
、
模块化
、
逐步求精
答案:
7、【
单选题
】
软件详细设计产生的图如下:
该图是
[2分]
、
N-S图
、
PAD图
、
程序流程图
、
E-R图
答案:
8、【
单选题
】
数据库管理系统是
[2分]
、
操作系统的一部分
、
在操作系统支持下的系统软件
、
一种编译系统
、
一种操作系统
答案:
9、【
单选题
】
在E-R图中,用来表示实体联系的图形是
[2分]
答案:
10、【
单选题
】
有三个关系R,S,和T如下:
其中关系T由关系R和S通过某种操作得到,该操作为
[2分]
答案:
11、【
单选题
】
以下叙述中正确的是
[1分]
、
程序设计的任务就是编写程序代码并上机调试
、
程序设计的任务就是确定所用的数据结构
、
程序设计的任务就是确定所用算法
、
以上三种说法都不完整
答案:
12、【
单选题
】
以下选项中,能用作用户标识符的是
[1分]
、
void
、
8_8
、
_0_
、
unsigned
答案:
13、【
单选题
】
阅读以下程序
#include <stdio.h>
main()
{ int case; float printF;
printf("请输入2个数:");
scanf("%d %f",&case,&printF);
printf("%d %f\n",case,printf);
}
该程序在编译时产生错误,其出错原因是
[1分]
、
定义语句出错,case是关键字,不能用作用户自定义标识符
、
定义语句出错,printF不能用作用户自定义标识符
、
定义语句无错,scanf不能作为输入函数使用
、
定义语句无措,printf不能输出case的值
答案:
14、【
单选题
】
表达式:(int)((double)9/2)-(9)%2的值是
[1分]
答案:
15、【
单选题
】
若有定义语句: int x=10;,则表达式x-=x+x的值为
[1分]
答案:
16、【
单选题
】
有以下程序
#include <stdio.h>
main()
{ int a=1,b=0;
printf("%d,",b=a+b);
printf("%d",a=2*b);
}
程序运行后的输出结果是
[1分]
答案:
17、【
单选题
】
设有定义: int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是
[1分]
、
if(a>b) c=a,a=b,b=c;
、
if(a>b){c=a,a=b,b=c;}
、
if(a>b) c=a;a=b;b=c;
、
if(a>b){c=a;a=b;b=c;}
答案:
18、【
单选题
】
有以下程序
#include <stdio.h>
main()
{ int c=0,k;
for(k=1;k<3;k++)
switch(k)
{ default:c+=k;
case 2:c++;break;
case 4:c+=2;break;
}
printf("%d\n",c);
}
程序运行后的输出结果是
[1分]
答案:
19、【
单选题
】
以下程序段中,与语句: k=a>b?(b>c?1:0):0;功能相同的是
[1分]
、
if((a>b)&&(b>c)) k=1;
else k=0;
、
if((a>b)||(b>c)) k=1;
else k=0;
、
if(a<=b)k=0;
else if(b<=c) k=1;
、
if(a>b) k=1;
else if(b>c) k=1;
else k=0;
答案:
20、【
单选题
】
有以下程序
#include <stdio.h>
main()
{ char s[]={"012xy"};int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>'a'&&s[i]<='z') n++;
printf("%d\n",n);
}
程序运行后的输出结果是
[1分]
答案:
21、【
单选题
】
有以下程序
#include <stdio.h>
main()
{ int n=2,k=0;
while(k++&&n++>2);
printf("%d %d\n",k,n);
}
程序运行后的输出结果是
[2分]
答案:
22、【
单选题
】
有以下定义语句,编译时会出现编译错误的是
[2分]
、
char a='a';
、
char a='\n';
、
char a='aa';
、
char a='\x2d';
答案:
23、【
单选题
】
有以下程序
#include <stdio.h>
main()
{ char c1,c2;
c1='A'+'8'-'4';
c2='A'+'8'-'5';
printf("%c,%d\n",c1,c2);
}
已知字母A的ASCII码为65,程序运行后的输出结果是
[2分]
、
E,68
、
D,69
、
E,D
、
输出无定值
答案:
24、【
单选题
】
有以下程序
#include <stdio.h>
void fun(int p)
{ int d=2;
p=d++;
printf("%d",p);
}
main()
{ int a=1;
fun(a);
printf("%d\n",a);
}
程序运行后的输出结果是
[2分]
答案:
25、【
单选题
】
以下函数findmax拟实现在数组中查找最大值并作为函数值返回,
但程序中有错导致不能实现预定功能
#define MIN -2147463647
int findmax(int x[],int n)
{ int i,max;
for(i=0;i<n;i++)
{ max=MIN;
if(max<x[i]) max=x[i];
}
return max;
}
造成错误的原因是
[2分]
、
定义语句int i,max中max未赋值
、
赋值语句max=MIN;中,不应该给max赋MIN值
、
语句if(max<x[i]) max=x[i];中判断条件设置错误
、
赋值语句max=MIN;放错了位置
答案:
26、【
单选题
】
有以下程序
#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);
}
程序运行后的输出结果是
[2分]
、
1,2,1,2
、
1,2,2,1
、
2,1,2,1
、
2,1,1,2
答案:
27、【
单选题
】
若有定义语句: int a[4][10],*p,*q[4];且0<=i<4,则错误的赋值是
[2分]
、
p=a
、
q[i]=a[i]
、
p=a[i]
、
p=&a[2][1]
答案:
28、【
单选题
】
有以下程序
#include <stdio.h>
#include <string.h>
main()
{ char str[][20]={"One*World","One*Dream!"},*p=str[1];
printf("%d,",strlen(p));
printf("%s\n",p);
}
程序运行后的输出结果是
[2分]
、
9,One*World
、
9,One*Dream!
、
10,One*Dream!
、
10,One*World
答案:
29、【
单选题
】
有以下程序
#include <stdio.h>
main()
{ int a[]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{ case 0:
switch(a[i]%2)
{ case 0:a[i]++;break;
case 1:a[i]--;
} break;
case 1:a[i]=0;
}
for(i=0;i<4;i++)
printf("%d ",a[i]);
printf("\n");
}
程序运行后的输出结果是
[2分]
、
3 3 4 4
、
2 0 5 0
、
3 0 4 0
、
0 3 0 4
答案:
30、【
单选题
】
有以下程序
#include <stdio.h>
#include <string.h>
main()
{ char a[10]="abcd";
printf("%d,%d\n",strlen(a),sizeof(a));
}
程序运行后的输出结果是
[2分]
、
7,4
、
4,10
、
8,8
、
10,10
答案:
31、【
单选题
】
下面是有关C语言字符数组的描述,其中错误的是
[2分]
、
不可以用赋值语句给字符数组名赋字符串
、
可以用输入语句把字符串整体输入给字符数组
、
字符数组中的内容不一定是字符串
、
字符数组只能存放字符串
答案:
32、【
单选题
】
下列函数的功能是
fun(char *a,char *b)
{ while((*b=*a)!='\0'){a++;b++;} }
[2分]
、
将a所指字符串赋给b所指空间
、
使指针b指向a所指字符串
、
将a所指字符串和b所指字符串进行比较
、
检查a和b所指字符串中是否有'\0'
答案:
33、【
单选题
】
设有以下函数:
void fun(int n,char *s){……}
则下面对函数指针的定义和赋值均正确的是
[2分]
、
void (*pf)(); pf=fun;
、
void *pf(); pf=fun;
、
void *pf(); *pf=fun;
、
void (*pf)(int,char);pf=&fun;
答案:
34、【
单选题
】
有以下程序
#include <stdio.h>
int f(int n);
main()
{ int a=3,s;
s=f(a);s=s+f(a);printf("%d\n",s);
}
int f(int n)
{ static int a=1;
n+=a++;
return n;
}
程序运行后的输出结果是
[2分]
答案:
35、【
单选题
】
有以下程序
#include <stdio.h>
#define f(x) x*x*x
main()
{ int a=3,s,t;
s=f(a+1);t=f((a+1));
printf("%d,%d\n",s,t);
}
程序运行后的输出结果是
[2分]
、
10,64
、
10,10
、
64,10
、
64,64
答案:
36、【
单选题
】
下面结构体的定义语句中,错误的是
[2分]
、
struct ord {int x;int y;int z;};struct ord a;
、
struct ord {int x;int y;int z;} struct ord a;
、
struct ord {int x;int y;int z;} n;
、
struct {int x;int y;int z;} a;
答案:
37、【
单选题
】
设有定义: char *c;以下选项中能够使字符型指针C正确指向一个字符串的是
[2分]
、
char str[]="string";c=str;
、
scanf("%s",c);
、
c=getchar();
、
*c="string";
答案:
38、【
单选题
】
有以下程序
#include <stdio.h>
#include <string.h>
struct A
{ int a;char b[10];double c;};
struct A f(struct A t);
main()
{ struct A a={1001,"ZhangDa",1098.0};
a=f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);
}
struct A f(struct A t)
{ t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;return t;}
程序运行后的输出结果是
[2分]
、
1001,ZhangDa,1098.0
、
1002,ZhangDa,1202.0
、
1001,ChangRong,1098.0
、
1002,ChangRong,1202.0
答案:
39、【
单选题
】
有以下程序
int r=8;
printf("%d\n",r>>1);
输出结果是
[2分]
答案:
40、【
单选题
】
下列关于C语言文件的叙述中正确的是
[2分]
、
文件由一系列数据一次排列组成,只能构成二进制文件
、
文件由结构序列组成,可以构成二进制文件或文本文件
、
文件由数据序列组成,可以构成二进制文件或文本文件
、
文件由字符序列组成,只能是文本文件
答案: