您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> C语言 >> 模拟题 >> 正文    
  全国计算机等级考试二级C语言模拟试题5 【注册男护士专用博客】          

全国计算机等级考试二级C语言模拟试题5

www.nanhushi.com     佚名   不详 

答案

一、选择题(每题2分,共计70分)

1.数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及
A)数据的存储结构
B)计算方法
C)数据映象
D)逻辑存储
A       B       C       D      
2.串的长度是
A)串中不同字符的个数
B)串中不同字母的个数
C)串中所含字符的个数且字符个数大于零
D)串中所含字符的个数
A       B       C       D      
3.在计算机中,算法是指
A)加工方法
B)解题方案的准确而完整的描述
C)排序方法
D)查询方法
A       B       C       D      
4.以下不属于对象的基本特点的是
A)分类性
B)多态性
C)继承性
D)封装性
A       B       C       D      
5.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称作
A)软件投机
B)软件危机
C)软件工程
D)软件产生
A       B       C       D      

答案
6.下面不属于软件设计原则的是
A)抽象
B)模块化
C)自底向上
D)信息隐蔽
A       B       C       D      
7.开发大型软件时,产生困难的根本原因是
A)大系统的复杂性
B)人员知识不足
C)客观世界千变万化
D)时间紧、任务重
A       B       C       D      
8.下列SQL语句中,用于修改表结构的是
A)ALTER
B)CREATE
C)UPDATE
D)INSERT
A       B       C       D      
9.数据库、数据库系统和数据库管理系统之间的关系是
A)数据库包括数据库系统和数据库管理系统
B)数据库系统包括数据库和数据库管理系统
C)数据库管理系统包括数据库和数据库系统
D)3者没有明显的包含关系
A       B       C       D      
10.关系模型允许定义3类数据约束,下列不属于数据约束的是
A)实体完整性约束
B)参照完整性约束
C)域完整性约束
D)用户自定义的完整性约束
A       B       C       D    

答案
11.下列用于printf函数的控制字符常量中,代表"竖向跳格"的转义字符常量是
A)\b
B)\t
C)\v
D)\f
A       B       C       D      
12.以下程序的输出结果是
main()
{ int a=21,b=11;
printf("%d\n",--a+b,--b+a);
}
A)30
B)31
C)32
D)33
A       B       C       D      
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
A       B       C       D      
14.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是
A)x&&y
B)x<=y
C)x||++y&&y-z
D)!(x
A       B       C       D      
15.若变量已正确说明为int类型,要通过语句scanf("%d %d %d ",&a,&b,&c);给a赋值3,b赋值5,c赋值8,不正确的输入形式是
A)3<回车>
5<回车>
8<回车>
B)3,5,8<回车>
C)3<回车>
58<回车>
D)35<回车>
8<回车>
A       B       C       D      

答案
16.设有程序段
int k=10;
while(k=0)k=k-1;
则下面描述中正确的是
A)while循环执行10次
B)循环是无限循环
C)循环体语句一次也不执行
D)循环体语句执行一次
A       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)
A       B       C       D      
18.以下程序的输出结果是
main()
{ int a,i;a=0;
for(i=1;i<5;i++)
{ switch(i)
{ case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
} printf("%d\n",a);
}
A)31
B)13
C)10
D)20
A       B       C       D      
19.若有如下语句
int x=3;
do{ printf("%d\n",x-=2);}
while(!(--x));
则上面程序段
A)输出的是1
B)输出的是1和-2
C)输出的是3和0
D)是死循环
A       B       C       D      
20.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,在划线处应填入的语句是
#include
main()
{ int a,b,t;
scanf("%d%d",&a,&b);
while()
{ f(a>b)
{ =a;a=b;b=t;}
printf("%d,%d\n",a,b);
scanf("%d%d",&a,&b);
}
}
A)!a=b
B)a!=b
C)a==b
D)a=b
A       B       C       D      
21.有以下程序
void fun(int a,int b,int c)
{a=456,b=567,c=678;}
main()
{ int x=10,y=20,z=30;
fun(x,y,z);
printf("%d,%d,%d\n",x,y,z);
}
输出结果是
A)30,20,10
B)10,20,30
C)456,567,678
D)678,567,456
A       B       C       D      
22.若有说明:int a[][4]={0,0};则下面不正确的叙述是
A)数组a的每个元素都可得到初值0
B)二维数组a的第一维大小为1
C)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小
D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值
A       B       C       D      
23.有以下程序
main()
{ 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
A       B       C       D      
24.已知学生记录描述为
struct student
{ int no;
char name[20],sex;
struct
{ int year,month,day;
} birth;
};
struct student s;
设变量s中的“生日”是“1984年11月12日”,对“birth”正确赋值的程序段是
A)year=1984;month=11;day=12;
B)s.year=1984;s.month=11;s.day=12;
C)birth.year=1984;birth.month=11;birth.day=12;
D)s.birth.year=1984;s.birth.month=11;s.birth.day=12;
A       B       C       D      
25.以下程序的运行结果是
#define MIN(x,y)(x)<(y)?(x):(y)
main()
{ int i=10,j=15,k;
k=10*MIN(i,j);
printf("%d\n",k);
}
A)10
B)15
C)100
D)150
A       B       C       D      
26.有如下程序
int func(int a,int b)
{ return(a+b);}
main()
{ 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
A       B       C       D      
27.设有以下说明语句
typedef struct
{ int n;
char ch[8];
} PER;
则下面叙述中正确的是
A)PER 是结构体变量名
B)PER是结构体类型名
C)typedef struct 是结构体类型
D)struct 是结构体类型名
A       B       C       D      
28.有如下定义
struct person{char name[9];int age;};
struct person class[10]={"John",17,"paul",19,"Mary",18,"Adam",16,};
根据上述定义,能输出字母M的语句是
A)printf("%c\n",class[3].name);
B)printf("%c\n",class[3].name[1]);
C)printf("%c\n",class[2].name[1]);
D)printf("%c\n",class[2].name[0]);
A       B       C       D      
29.以下程序执行后a的值是
main()
{ int x,y=252,i=386,*m=&y,*z=&i;
x=(z==y);
printf("%d",x);
}
A)252
B)1
C)0
D)运行时出错,x无定值
A       B       C       D      
30.阅读下列程序,当运行函数时,输入asd af aa z67,则输出为
#include
#include
#include
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′;
}
main()
{
char str[81];
int n;
clrscr();
printf("Input a string : ");
gets(str);
puts(str);
fun(str);
printf("%s\n",str);
}
A)asdafaaz67
B)asd af aa z67
C)asd
D)z67
A       B       C       D      
31.下列程序的输出结果是
struct abc
{ int a, b, c, s;};
main()
{ struct abc s[2]={{1,2,3},{4,5,6}}; int t;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
A)5
B)6
C)7
D)8
A       B       C       D      
32.若有定义: char *st= "how are you "; 下列程序段中正确的是
A)char a[11], *p; strcpy(p=a+1,&st[4]);
B)char a[11]; strcpy(++a, st);
C)char a[11]; strcpy(a, st);
D)char a[], *p; strcpy(p=&a[1],st+2);
A       B       C       D      
33.下列程序的运行结果是
void fun(int *a, int *b)
{ int *k;
k=a; a=b; b=k;
}
main()
{ int a=3, b=6, *x=&a, *y=&b;
fun(x,y);
printf("%d %d", a, b);
}
A)6 3
B)3 6
C)编译出错
D)0 0
A       B       C       D      
34.请选出正确的程序段
A)int *p;
scanf("%d",p);

B)int *s, k;
*s=100;

C)int *s, k;
char *p, c;
s=&k;
p=&c;
*p=′a′;

D)int *s, k;
char *p, e;
s=&k;
p=&c;
s=p;
*s=1;

A       B       C       D      
35.若有下面的说明和定义,则sizeof(struct aa)的值是
struct aa
{ int r1; double r2; float r3;
union uu{char u1[5];long u2[2];}ua;
} mya;
A)30
B)29
C)24
D)22
A       B       C       D      
1.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为 【1】 。
输入答案,中间不含空格:
2.用树型结构表示实体类型及实体间联系的数据模型称为 【2】 。
输入答案,中间不含空格:
3.类是一个支持集成的抽象数据类型,而对象是类的 【3】 。
输入答案,中间不含空格:
4.数据流图的类型有 【4】 和事务型。
输入答案,中间不含空格:
5.当数据的物理结构(存储结构、存取方式等)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的 【5】 。
输入答案,中间不含空格:
6.以下程序运行结果是 【6】 。
long fib (int g)
{ switch (g)
{ case 0∶return 0;
case 1∶case2∶return 1;
}
return (fib(g-1)+fib(g-2));
}
main ()
{ long k;
k=fib (5);
printf ("k=%(d\n)",k);
}
输入答案,中间不含空格:
7.以下程序段中,错误的行号是 【7】 。
① #include
② main ()
③ { char str [14];str []={" I love China"};
④ printf ("%s",str);
⑤ }
输入答案,中间不含空格:
8.将以下程序写成三目运算表达式是 【8】 。
if(a>b)max=a;
else max=b;
输入答案,中间不含空格:
9.设x和y均为int型变量,且x=1,y=2,则表达式double(1+x/y)的值为 【9】 。
输入答案,中间不含空格:
10.下面程序的功能是输出数组s中最大元素的下标,请填空。
main()
{ int k, p,s[]={1, -9, 7, 2, -10, 3};
for(p =0, k =p; p< 6; p++)
if(s[p]>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】 。
#define N 10
#define s(x) x*x
#define f(x) (x*x)
main()
{ int i1,i2;
i1=1000/s(N); i2=1000/f(N);
printf("%d %d\n",i1,i2);
}
输入答案,中间不含空格:
13.以下程序的输出结果是 【13】 。
unsigned fun6(unsigned num)
{ unsigned k=1;
do{k *=num;num/=10;} while (num);
return k;
}
main()
{ unsigned n=26;
printf("%d\n", fun6(n));
}
输入答案,中间不含空格:
14.以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。删除后,数组中的内容应该是2 3 4 5 6 7 8 9 10。请填空。
#include
#define N 80
int fun(int a[], int n)
{ int i,j=1;
for(i=1;i if(a[j-1] 【14】 a[i])
a[j++]=a[i];
【15】;
}
main()
{ int a[N]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10}, i, n=19;
printf("The original data :\n");
for(i=0; i n=fun(a,n);
printf("\nThe data after deleted :\n");
for(i=0; i }
输入答案,中间不含空格:

答案
21.有以下程序
void fun(int a,int b,int c)
{a=456,b=567,c=678;}
main()
{ int x=10,y=20,z=30;
fun(x,y,z);
printf("%d,%d,%d\n",x,y,z);
}
输出结果是
A)30,20,10
B)10,20,30
C)456,567,678
D)678,567,456
A       B       C       D      
22.若有说明:int a[][4]={0,0};则下面不正确的叙述是
A)数组a的每个元素都可得到初值0
B)二维数组a的第一维大小为1
C)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小
D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值
A       B       C       D      
23.有以下程序
main()
{ 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
A       B       C       D      
24.已知学生记录描述为
struct student
{ int no;
char name[20],sex;
struct
{ int year,month,day;
} birth;
};
struct student s;
设变量s中的“生日”是“1984年11月12日”,对“birth”正确赋值的程序段是
A)year=1984;month=11;day=12;
B)s.year=1984;s.month=11;s.day=12;
C)birth.year=1984;birth.month=11;birth.day=12;
D)s.birth.year=1984;s.birth.month=11;s.birth.day=12;
A       B       C       D      
25.以下程序的运行结果是
#define MIN(x,y)(x)<(y)?(x):(y)
main()
{ int i=10,j=15,k;
k=10*MIN(i,j);
printf("%d\n",k);
}
A)10
B)15
C)100
D)150
A       B       C       D      

答案
26.有如下程序
int func(int a,int b)
{ return(a+b);}
main()
{ 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
A       B       C       D      
27.设有以下说明语句
typedef struct
{ int n;
char ch[8];
} PER;
则下面叙述中正确的是
A)PER 是结构体变量名
B)PER是结构体类型名
C)typedef struct 是结构体类型
D)struct 是结构体类型名
A       B       C       D      
28.有如下定义
struct person{char name[9];int age;};
struct person class[10]={"John",17,"paul",19,"Mary",18,"Adam",16,};
根据上述定义,能输出字母M的语句是
A)printf("%c\n",class[3].name);
B)printf("%c\n",class[3].name[1]);
C)printf("%c\n",class[2].name[1]);
D)printf("%c\n",class[2].name[0]);
A       B       C       D      
29.以下程序执行后a的值是
main()
{ int x,y=252,i=386,*m=&y,*z=&i;
x=(z==y);
printf("%d",x);
}
A)252
B)1
C)0
D)运行时出错,x无定值
A       B       C       D      
30.阅读下列程序,当运行函数时,输入asd af aa z67,则输出为
#include
#include
#include
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′;
}
main()
{
char str[81];
int n;
clrscr();
printf("Input a string : ");
gets(str);
puts(str);
fun(str);
printf("%s\n",str);
}
A)asdafaaz67
B)asd af aa z67
C)asd
D)z67
A       B       C       D      

答案
31.下列程序的输出结果是
struct abc
{ int a, b, c, s;};
main()
{ struct abc s[2]={{1,2,3},{4,5,6}}; int t;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
A)5
B)6
C)7
D)8
A       B       C       D      
32.若有定义: char *st= "how are you "; 下列程序段中正确的是
A)char a[11], *p; strcpy(p=a+1,&st[4]);
B)char a[11]; strcpy(++a, st);
C)char a[11]; strcpy(a, st);
D)char a[], *p; strcpy(p=&a[1],st+2);
A       B       C       D      
33.下列程序的运行结果是
void fun(int *a, int *b)
{ int *k;
k=a; a=b; b=k;
}
main()
{ int a=3, b=6, *x=&a, *y=&b;
fun(x,y);
printf("%d %d", a, b);
}
A)6 3
B)3 6
C)编译出错
D)0 0
A       B       C       D      
34.请选出正确的程序段
A)int *p;
scanf("%d",p);

B)int *s, k;
*s=100;

C)int *s, k;
char *p, c;
s=&k;
p=&c;
*p=′a′;

D)int *s, k;
char *p, e;
s=&k;
p=&c;
s=p;
*s=1;

A       B       C       D      
35.若有下面的说明和定义,则sizeof(struct aa)的值是
struct aa
{ int r1; double r2; float r3;
union uu{char u1[5];long u2[2];}ua;
} mya;
A)30
B)29
C)24
D)22
A       B       C       D      

答案

二、填空题(每空2分,共计30分)

1.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为 【1】 。
输入答案,中间不含空格:
2.用树型结构表示实体类型及实体间联系的数据模型称为 【2】 。
输入答案,中间不含空格:
3.类是一个支持集成的抽象数据类型,而对象是类的 【3】 。
输入答案,中间不含空格:
4.数据流图的类型有 【4】 和事务型。
输入答案,中间不含空格:
5.当数据的物理结构(存储结构、存取方式等)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的 【5】 。
输入答案,中间不含空格:

答案
6.以下程序运行结果是 【6】 。
long fib (int g)
{ switch (g)
{ case 0∶return 0;
case 1∶case2∶return 1;
}
return (fib(g-1)+fib(g-2));
}
main ()
{ long k;
k=fib (5);
printf ("k=%(d\n)",k);
}
输入答案,中间不含空格:
7.以下程序段中,错误的行号是 【7】 。
① #include
② main ()
③ { char str [14];str []={" I love China"};
④ printf ("%s",str);
⑤ }
输入答案,中间不含空格:
8.将以下程序写成三目运算表达式是 【8】 。
if(a>b)max=a;
else max=b;
输入答案,中间不含空格:
9.设x和y均为int型变量,且x=1,y=2,则表达式double(1+x/y)的值为 【9】 。
输入答案,中间不含空格:
10.下面程序的功能是输出数组s中最大元素的下标,请填空。
main()
{ int k, p,s[]={1, -9, 7, 2, -10, 3};
for(p =0, k =p; p< 6; p++)
if(s[p]>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】 。
#define N 10
#define s(x) x*x
#define f(x) (x*x)
main()
{ int i1,i2;
i1=1000/s(N); i2=1000/f(N);
printf("%d %d\n",i1,i2);
}
输入答案,中间不含空格:
13.以下程序的输出结果是 【13】 。
unsigned fun6(unsigned num)
{ unsigned k=1;
do{k *=num;num/=10;} while (num);
return k;
}
main()
{ unsigned n=26;
printf("%d\n", fun6(n));
}
输入答案,中间不含空格:
14.以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。删除后,数组中的内容应该是2 3 4 5 6 7 8 9 10。请填空。
#include
#define N 80
int fun(int a[], int n)
{ int i,j=1;
for(i=1;i if(a[j-1] 【14】 a[i])
a[j++]=a[i];
【15】;
}
main()
{ int a[N]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10}, i, n=19;
printf("The original data :\n");
for(i=0; i n=fun(a,n);
printf("\nThe data after deleted :\n");
for(i=0; i }
输入答案,中间不含空格:

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目