2013计算机二级C语言完全预测试题及答案1
一、选择题(每题2分,70分* * *)
1.数据结构作为计算机的一门学科,主要研究数据的逻辑结构,对各种数据结构的操作,以及
a)数据的存储结构
b)计算方法
c)数据映射
d)逻辑存储
2.字符串的长度是
a)字符串中不同字符的数量
b)字符串中不同字母的数量
c)字符串中包含的字符数和字符数大于零。
d)字符串中包含的字符数
3.在计算机中,算法是指
a)处理方法
b)解决方案的准确和完整描述。
c)分类方法
d)查询方法
4.下列不属于物体的基本特征的是
a)分类
b)多态性
c)继承
d)封装
开发软件的高成本和产品的低质量之间存在着尖锐的矛盾,这被称为
a)软件投机
b)软件危机
c)软件工程
d)软件生成
6.下列不属于软件设计原理。
a)抽象
b)模块化
c)自下而上
d)信息隐藏
7.当开发大型软件时,困难的根本原因是
a)大规模系统的复杂性
b)人员知识不足
c)客观世界是不断变化的
d)时间紧,任务重。
8.以下SQL语句用于修改表结构。
a)改变
b)创建
c)更新
d)插入
9.数据库、数据库系统和数据库管理系统之间的关系是
a)数据库包括数据库系统和数据库管理系统。
b)数据库系统包括数据库和数据库管理系统。
c)数据库管理系统包括数据库和数据库系统。
d)三者之间没有明显的包含关系。
10.关系模型允许定义三种类型的数据约束。以下不是数据约束。
a)实体完整性约束
b)参照完整性约束
c)域完整性约束
d)用户定义的完整性约束
11.在以下用于printf函数的控制字符常量中,表示“垂直制表符”的转义字符常量是
A)\b
B)\t
C)\v
D)\f
12.以下程序的输出是
主()
{ int a=21,b = 11;
printf("%d\n ",- a+b,-b+a);
}
A)30
B)31
C)32
D)33
13.如果变量N是float类型,M是int类型,那么可以实现下面的表达式将N中的数值保留到小数点后两位,第三位四舍五入。
a)n =(n * 100+0.5)/100.0
B)m=n*100+0.5,n=m/100.0
c)n = n * 100+0.5/100.0
d)n =(n/100+0.5)* 100.0
14.设x,y,z都是int变量,x=3,y=4,z=5,那么下面表达式中值为0的表达式为
x & amp& ampy
b)x & lt;=y
c)x | | ++ y & amp;& ampy-z
d)!(十
15.如果变量被正确地描述为int类型,则应该使用语句scanf ("%d% d% d ",&;一,& ampb & amp;c);指定值为3,b值为5,c值为8。不正确的输入形式是
a)输入3 >
5输入>
8回车>
b)在3、5和8 >中输入
c)输入3 >
58回车>
D)输入D)35 >
8回车>
49 !=返回j
16.有一个节目片段
int k = 10;
而(k = 0)k = k-1;
在下面的描述中,正确的是
A)while循环执行10次。
b)循环是无限的。
c)循环体语句不执行一次。
d)循环语句执行一次。
17.对于表达式for(表达式1;;表达式3)可以理解如下
A)for(表达式1;0;表达式3)
B)for(表达式1;1;表达式3)
C)for(表达式1;表达式1;表达式3)
D)for(表达式1;表情3;表达式3)
18.以下程序的输出是
主()
{ int a,I;a = 0;
for(I = 1;我& lt5;i++)
{开关(一)
{案例0:
情况三:a+= 2;
案例1:
情况二:a+= 3;
默认:a+= 5;
}
} printf("%d\n ",a);
}
A)31
B)13
C)10
D)20
19.如果你有以下说法。
int x = 3;
do{ printf("%d\n ",x-= 2);}
而(!(-x));
那么上述程序段
a)输出是1
b)输出是1和-2。
c)输出为3和0。
d)是一个无限循环。
20.下面这个程序的作用是将键盘输入的一对数字从小到大排序,当输入一对相等的数字时结束循环。应在下划线处填写的陈述是
#包括
主()
{ int a,b,t;
scanf("%d%d ",& amp一,& ampb);
while()
{ f(a & gt;b)
{ = a;a = b;b = t;}
printf("%d,%d\n ",a,b);
scanf("%d%d ",& amp一,& ampb);
}
}
答)!a=b
B)a!=b
C)a==b
D)a=b
21.有以下程序。
void fun(int a,int b,int c)
{a=456,b=567,c = 678}
主()
{ int x=10,y=20,z = 30
fun(x,y,z);
printf("%d,%d,%d\n ",x,y,z);
}
输出结果是
A)30,20,10
10,20,30
456,567,678
678,567,456
22.如果指定:int a[][4]={0,0 };那么下面不正确的说法是
a)数组a的每个元素可以得到初始值0。
b)二维数组A的第一维是1。
c)当原始值的个数可以除以第二维的常数表达式的值时,得到的商就是第一维的大小。
d)只有元素a[0][0]和a[0][1]可以得到初始值,其余元素都不能得到确定的初始值。
23.有以下程序。
主()
{ char a[]= {′a′、b′、c′、d′、e′、f′、g′、h′、0′};int i,j;
I = sizeof(a);j = strlen(a);
printf("%d,%d\b ",I,j);
}
程序运行后的输出结果是
A)9,9
B)8,9
c)1.8
D)9,8
24.已知的学生记录描述为
结构学生
{ int no
char名[20],性别;
结构体
{ int年、月、日;
}出生;
};
结构学生的;
设变量S中的“生日”为“1984 165438+10月12”,“出生”的正确赋值如下。
a)年份= 1984;月= 11;日= 12;
b)s . year = 1984;s . month = 11;s . day = 12;
c)出生.年份= 1984;出生.月份= 11;出生日期= 12;
D)s .出生年份= 1984;s . birth . month = 11;s . birth . day = 12;
25.以下方案的结果如下
#define MIN(x,y)(x)& lt;(y)?(x):(y)
主()
{ int i=10,j=15,k;
k=10*MIN(i,j);
printf("%d\n ",k);
}
A)10
B)15
C)100
D)150
49 !=返回j
26.有以下程序。
int func(int a,int b)
{ return(a+b);}
主()
{ int x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf("%d\n ",r);
}
这个程序输出的结果是
A)12
B)13
C)14
D)15
27.提供了以下语句。
typedef结构
{ int n;
char ch[8];
} PER
以下描述中正确的是
A)PER是结构变量名。
B)PER是结构类型名称。
C)typedef struct是一种结构类型。
D)struct是结构类型名。
28.有以下定义
struct person { char name[9];int age};
struct person class[10]={ "约翰",17,"保罗",19,"马利亚",18,"亚当",16,};
根据上面的定义,可以输出字母M的语句是
A)printf("%c\n ",class[3]。姓名);
B)printf("%c\n ",class[3]。name[1]);
C)printf("%c\n ",class[2]。name[1]);
D)printf("%c\n ",类[2]。name[0]);
29.执行以下程序后,A的值为
主()
{ int x,y=252,i=386,* m = & ampy,* z = & amp我;
x =(z = = y);
printf("%d ",x);
}
252
B)1
C)0
d)运行时有错误,X没有固定值。
30.阅读下面的程序。运行函数时,输入asd af aa z67,输出为
#包括
#包括
#包括
int fun (char *str)
{ int i,j = 0;
for(I = 0;str[i]!=′\0′;i++)
if(str[i]!=′′)str[j++]= str[I];
str[j]= ' \ 0 ';
}
主()
{
char str[81];
int n;
clr SCR();
printf("输入一个字符串:");
gets(str);
卖出(str);
fun(str);
printf("%s\n ",str);
}
A)asdafaaz67
B)asd af aa z67
建筑司
D)z67
31.以下程序的输出是
结构abc
{ int a,b,c,s;};
主()
{ struct abc s[2]={{1,2,3},{4,5,6 } };int t;
t=s[0]。a+s[1]。b;
printf("%d\n ",t);
}
答)5
B)6
C)7
D)8
32.如果有定义:char * st = " how are you下列程序段中正确的是
A)char a[11],* p;strcpy(p=a+1,& ampST[4]);
b)char a[11];strcpy(++a,ST);
c)char a[11];strcpy(a,ST);
D)char a[],* p;strcpy(p = & amp;a[1],ST+2);
33.以下方案的结果如下
void fun(int *a,int *b)
{ int * k;
k = a;a = b;b = k;
}
A)6 3
B)3 6
c)编译错误
D)0 0
34.请选择正确的节目片段。
a)int * p;
scanf("%d ",p);
…
B)int *s,k;
* s = 100;
…
C)int *s,k;
char *p,c;
s = & ampk;
p = & ampc;
* p =′a′;
…
D)int *s,k;
char *p,e;
s = & ampk;
p = & ampc;
s = p;
* s = 1;
…
35.如果有下面的描述和定义,sizeof(struct aa)的值为
结构aa
{ int r 1;双R2;浮动R3;
union uu { char u 1[5];龙U2[2];} ua
} mya
A)30
B)29
C)24
D)22
49 !=返回j
二、填空(每空2分,* * * 30分)
1.在长度为n的线性表中,在任意位置插入一个元素的概率相等时,插入一个元素所需移动元素的平均数为1。
2.使用树结构来表示实体类型和实体之间关系的数据模型称为2。
3.Class是支持集成的抽象数据类型,object是class的3。
4.有四种类型的数据流图:4和事务型。
5.当数据的物理结构(存储结构、访问模式等。)的变化,它不会影响数据库的逻辑结构,以免引起应用程序的变化,这里指的是5。
6.以下程序的运行结果是6。
长纤维(整数)
开关(g)
{ case 0∶return 0;
案例1∶案例2∶返回1;
}
返回(fib(g-1)+fib(g-2));
}
主()
{长k;
k = fib(5);
printf ("k=%(d\n)",k);
}
7.在下面的程序段中,错误的行号是7。
①#包括
②主要()
③{ char str[14];str []={“我爱中国”};
④ printf ("%s ",str);
⑤ }
8.把下面的程序写成三眼运算表达式:8。
如果(a & gtb)max = a;
else max = b;
9.设X和Y都是int变量,x=1,y=2,那么表达式double(1+x/y)的值就是9。
10.以下程序的功能是输出数组s中元素的下标,请填空。
主()
{ int k,p,s[]={1,-9,7,2,-10,3 };
for(p =0,k = p;p & lt6;p++)
if(s[p]& gt;s[k]) 10
printf("%d\n ",k);
}
11.用下面的定义和语句,* *(p+2)+1)的值是11。
int a[3][2]={10,20,30,40,50,60},(* p)[2];
p = a;
12.以下程序的运行结果是12。
#定义编号10
#定义s(x) x*x
#定义f(x) (x*x)
主()
{ int i1,I2;
I 1 = 1000/s(N);I2 = 1000/f(N);
printf("%d %d\n ",i1,I2);
}
13.以下程序的输出是13。
无符号函数6(无符号数)
{无符号k = 1;
do { k * = numnum/= 10;} while(num);
返回k;
}
主()
{无符号n = 26
printf("%d\n ",fun 6(n));
}
14.下面这个程序的作用是删除一维数组中所有相同的数字,只留下一个。数组中的数字已经从小到大排列,函数返回被删除数组中的数据个数。
例如,如果一维数组中的数据是22234445 6666789 910 10 10。删除后,数组中的内容应该是2 3 4 5 6 7 8 9 10。请填空。
#包括
#定义N 80
int fun(int a[],int n)
{ int i,j = 1;
for(I = 1;我
if(a[j-1] 14 a[i])
a[j++]= a[I];
15;
}
主()
{ int a[N]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10},I,N = 19;
printf("原始数据:\ n ");
for(I = 0;我
for(I = 0;我
}
49 !=返回j
1 A 2D 3 B 4 C 5 B 6 C 7 A 8 A 9 B 10 C
11 C 12 A 13 B 14D 15 B 16 C 17 B 18 A 19 B 20 B
21 B 22 D23 D 24D 25 B 26D 27 B 28D 29 C 30a
31 B32 A 33 B 34 C 35 D
36牛顿/2
37级模型
38个例子
39转换类型
40身体独立
41 k=5
42 3行
43 max =(a & gt;b)?甲:乙;
44 1.000000
45 k=p
46 60
47 1000 10
48 12
49 !=返回j