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

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

www.nanhushi.com     佚名   不详 

答案

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

1.假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为
A)log2n
B)n2
C)O(n1.5)
D)n(n-1)/2
A       B       C       D      
2.算法分析的目的是
A)找出数据结构的合理性
B)找出算法中输入和输出之间的关系
C)分析算法的易懂性和可靠性
D)分析算法的效率以求改进
A       B       C       D      
3.线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是
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.在数据流图(DFD)中,带有名字的箭头表示
A)模块之间的调用关系
B)程序的组成成分
C)控制程序的执行顺序
D)数据的流向
A       B       C       D      
8.分布式数据库系统不具有的特点是
A)数据分布性和逻辑整体性
B)位置透明性和复制透明性
C)分布性
D)数据冗余
A       B       C       D      
9.关系表中的每一横行称为一个
A)元组
B)字段
C)属性
D)码
A       B       C       D      
10.下列数据模型中,具有坚实理论基础的是
A)层次模型
B)网状模型
C)关系模型
D)以上3个都是
A       B       C       D      

答案
11.以下叙述不正确的是
A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
A       B       C       D      
12.在C语言中,int,char和short三种类型数据在内存中所占用的字节数
A)由用户自己定义
B)均为2个字节
C)是任意的
D)由所用机器的机器字长决定
A       B       C       D      
13.以下叙述正确的是
A)在C程序中,每行中只能写一条语句
B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C)在C程序中,无论是整数还是实数,都能被准确无误地表示
D)在C程序中,%是只能用于整数运算的运算符
A       B       C       D      
14.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符
A)必须为字母
B)必须为下划线
C)必须为字母或下划线
D)可以是字母,数字和下划线中任一字符
A       B       C       D      
15.已知各变量的类型说明如下:
int k,a,b;
unsigned long w=5;
double x=1.42;
则以下不符合C语言语法的表达式是
A)x%(-3)
B)w+=-2
C)k=(a=2,b=3,a+b)
D)a+=a-=(b=4)*(a=3)
A       B       C       D      

答案
16.x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是
A)INPUT x,y,z;
B)scanf("%d%d%d",&x,&y,&z);
C)scanf("%d%d%d",x,y,z);
D)read("%d%d%d",&x,&y,&z);
A       B       C       D      
17.设x,y均为整型变量,且x=10 y=3,则以下语句的输出结果是
printf("%d,%d\n",x--,--y);
A)10,3
B)9,3
C)9,2
D)10,2
A       B       C       D      
18.以下程序的输出结果是
main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}
A)1
B)0
C)非0的数
D)-1
A       B       C       D      
19.执行下列程序时输入123<空格>456<空格>789<回车> 输出结果是
main()
{ char s[100]; int c, i;
scanf("%c",&c); scanf("%d",&i); scanf("%s",s);
printf("%c,%d,%s\n",c,i,s);
}
A)123,456,789
B)1,456,789
C)1,23,456,789
D)1,23,456
A       B       C       D      
20.下面有关for循环的正确描述是
A)for循环只能用于循环次数已经确定的情况
B)for循环是先执行循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环体
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
A       B       C       D      

答案
21.以下程序的输出结果是
main()
{ int i,j,x=0;
for(i=0;i<2;i++)
{ x++;
for(j=0;j<3;j++)
{ if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
A)x=4
B)x=8
C)x=6
D)x=12
A       B       C       D      
22.设有以下程序段
int x=0,s=0;
while(!x!=0)s+=++x;
printf("%d",s);

A)运行程序段后输出0
B)运行程序段后输出1
C)程序段中的控制表达式是非法的
D)程序段执行无限次
A       B       C       D      
23.若有以下定义,则能使值为3的表达式是
int k=7,x=12;
A)x%=(k%=5)
B)x%=(k-k%5)
C)x%=k-k%5
D)(x%=k)-(k%=5)
A       B       C       D      
24.以下描述中正确的是
A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C)在do-while循环体中,是先执行一次循环,再进行判断
D)do-while循环中,根据情况可以省略while
A       B       C       D      
25.以下叙述正确的是
A)函数可以嵌套定义但不能嵌套调用
B)函数既可以嵌套调用也可以嵌套定义
C)函数既不可以嵌套定义也不可以嵌套调用
D)函数可以嵌套调用但不可以嵌套定义
A       B       C       D      

答案
26.以下程序的运行结果是
sub(int x,int y,int *z)
{*z=y-x;}
main()
{ int a,b,c;
sub(10,5,&a);
sub(7,a,&b);
sub(a,b,&c);
printf("M,M,M\n",a,b,c);
}
A)5,2,3
B)-5,-12,-7
C)-5,-12,-17
D)5,-2,-7
A       B       C       D      
27.下列说法正确的是
int i,x;
for(i=0,x=0;i<=9 &&x!=876;i++)scanf("%d",x);
A)最多的执行10次
B)最多执行9次
C)是无限循环
D)循环体一次也不执行
A       B       C       D      
28.对下面程序描述正确的一项是 (每行程序前面的数字表示行号)
① main()
② {
③ float a[3]={0.0};
④ int i;
⑤ for(i=0;i<3;i++)scanf("%d",&a[i]);
⑥ for(i=1;i<3;i++)a[0]=a[0]+a[i];
⑦ printf("%f\n",a[0]);
⑧ }
A)没有错误
B)第3行有错误
C)第5行有错误
D)第7行有错误
A       B       C       D      
29.下面程序的输出结果为
main()
{ int a,b;b=(a=3*5,a*4,a*5);
printf("%d",b);
}
A)60
B)75
C)65
D)无确定值
A       B       C       D      
30.下面程序的输出结果是
struct st
{ int x;
int *y;
} *p;
int dt[4]={10,20,30,40};
struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};
main()
{ p=aa;
printf("%d\n",++p->x);
printf("%d\n",(++p)->x);
printf("%d\n",++(*p->y));
}
A)10
20
20
B)50
60
21
C)51
60
21
D)60
70
31
A       B       C       D      

答案
31.下面程序的输出结果是
#include
#include
main()
{ char *p1="abc",*p2="ABC",str[50]= "xyz";
strcpy(str+2,strcat(p1,p2));
printf("%s\n",str);}
A)xyzabcABC
B)zabcABC
C)xyabcABC
D)yzabcABC
A       B       C       D      
32.以下程序的输出结果是
long fun( int n)
{ long s;
if(n==1||n==2)s=2;
else s=n-fun(n-1);
return s;}
main()
{ printf("%ld\n", fun(3)); }
A)1
B)2
C)3
D)4
A       B       C       D      
33.有如下程序
main()
{ char ch[2][5]={"6937","8254"},*p[2];
int i,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>′\0′;j+=2)
s=10*s+p[i][j]-′0′;
printf("%d\n",s);}
该程序的输出结果是
A)69825
B)63825
C)6385
D)693825
A       B       C       D      
34.以下程序的输出结果是
union myun
{ struct
{ int x, y, z; } u;
int k;
} a;
main()
{ a.u.x=4; a.u.y=5; a.u.z=6;
a.k=0;
printf("%d\n",a.u.x);}
A)4
B)5
C)6
D)0
A       B       C       D      
35.下面的程序执行后,文件test中的内容是
#include
void fun(char *fname,char *st)
{ FILE *myf; int i;
myf=fopen(fname,"w" );
for(i=0;ifclose(myf);
}
main()
{ fun("test","new world"); fun("test","hello,");}
A)hello,
B)new worldhello,
C)new world
D)hello, rld
A       B       C       D      

答案

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

1.在算法正确的前提下,评价一个算法的两个标准是 【1】 。
输入答案,中间不含空格:
2.将代数式 Z=√(x2+y2)÷a+b 转换成程序设计中的表达式为 【2】 。
输入答案,中间不含空格:
3.软件危机出现于60年代末,为了解决软件危机,人们提出了 【3】 的原理来设计软件,这就是软件工程诞生的基础。
输入答案,中间不含空格:
4. 【4】 是数据库设计的核心。
输入答案,中间不含空格:
5.在关系模型中,把数据看成一个二维表,每一个二维表称为一个 【5】 。
输入答案,中间不含空格:

答案
6.以下程序段的输出结果是 【6】 。
int x=17,y=26;
printf ("%d",y/=(x%=6));
输入答案,中间不含空格:
7.下面程序的输出结果 【7】 。
main ()
{ enum team {y1=4,y2,y3};
printf ("%d",y3);}
输入答案,中间不含空格:
8.若有以下程序段:
int c1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是 【8】 。
输入答案,中间不含空格:
9.若有以下定义:
char a;int b;
float c; double d;
则表达式a*b+d-c值的类型为 【9】 。
输入答案,中间不含空格:
10.以下函数用来在w数组中插入x。n所指向的存储单元中存放w数组中字符个数。数组w中的字符已按从小到大的顺序排列,插入后数组w中的字符仍有序。请填空。
void fun(char *w, char x, int *n)
{ int i, p;
p=0;
w[*n]= x;
while(x > w[p])p++;
for(i=*n; i>p; i--)w[i]= 【10】 ;
w[p]=x;
++*n;
}
输入答案,中间不含空格:

答案
11.以下程序的输出结果是 【11】 。
main()
{ int x=100, a=10, b=20, ok1=5, ok2=0;
if(a else if(ok2)x=10;
else x=-1;
printf("%d\n", x);
}
输入答案,中间不含空格:
12.以下程序的输出结果是 【12】 。
main()
{ int y=9;
for(; y>0; y--)
if (y%3==0)
{ printf("%d", --y); continue;}
}
输入答案,中间不含空格:
13.以下函数的功能是 【13】 。
float av(a, n)
float a[];
int n;
{ int i; float s;
for(i=0, s=0; i return s/n;
}
输入答案,中间不含空格:
14.以下程序的输出结果是 【14】 。
#define PR(ar)printf("%d,",ar)
main()
{ int j, a[]={1, 3, 5, 7, 9, 11, 15}, *p=a+5;
for(j=3; j; j--)
switch(j)
{ case 1:
case 2: PR(*p++); break;
case 3:PR(*(--p));
}
printf("\n");
}
输入答案,中间不含空格:
15.以下程序的功能是处理由学号和成绩组成的学生记录,N名学生的数据已在主函数中放入结构体数组s中,它的功能是把分数最高的学生数据放在h所指的数组中,注意:分数高的学生可能不只一个,函数返回分数最高学生的人数。请填空。
#include
#define N 16
typedef struct
{ char num[10];
int s ;
} STREC;
int fun (STREC *a, STREC *b)
{ int i,j=0,max=a[0].s;
for(i=0;i if(max for(i=0;i if( 【15】 )b[j++]=a[i];
return j;
}
main ()
{ STREC s[N]={{ "GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},
{"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87},
{"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91},
{"GA011",66},{"GA017",64},{"GA018",64},{"GA016",72}
};
STREC h[N];
int i, n;FILE *out;
n=fun(s,h);
printf("The %d highest score :\n",n);
for (i=0; i printf("%s M\n ",h[i].num,h[i].s);
printf("\n");
out=fopen("out15.dat", "w");
fprintf(out, "%d\n",n);
for(i=0; i fprintf(out, "M\n ",h[i].s);
fclose(out);
}
输入答案,中间不含空格:

 

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

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

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