• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
计算机等级考试二级C语言考前密卷[5]下
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
计算机等级考试二级C语言考前密卷[5]下
软件发布 计算机等级考试二级C语言考前密卷[5]下
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 认证考试 >> 计算机等级考试 >> 计算机二级考试 >> 计算机等级考试二级C语言考前密卷[5]下

计算机等级考试二级C语言考前密卷[5]下

添加时间: 2007-5-3 6:10:36  作者: 计算机等级考试认证参考  阅读次数:23   来源: http://www.d9soft.com

       

(28)有如下程序
main()
{ int x=3;
do
{ printf("%d",x--);}
while(!x);
}
该程序的执行结果是________。
A)321  B)3  C)不输出任何内容  D)陷入死循环
答案:B
评析:本题x赋初值为3,当执行printf("%d",x--);时,由于X--的作用是先运算x,再将x的值减l,所以,printf输出的x值为3,等输出后,x的值减1变为2,继续执行,判断条件!x为假,循环只被执行一次。

(29)设有声明语句:char a='\72';则变量a__________
A)包含1个字符  B)包含2个字符
C)包含3个字符  D)声明不合法
答案:A
评析:转义字符常量'xx'可以把'\'后面的数字转换为对应的ASCII字符。

(30)有以下程序段:
main()
{
int a=5,*b,**c
c==&b;b=&a;
}
程序在执行了c=&b;b=&a;语句后,表达式ttc的值是__________。
A)变量a的地址  B)变量b中的地址
C)变量a中的值  D)变量b的地址
答案:C
评析:指针变量是用来存放地址的。&:取地址运算符。+:指针运算符。**c为指针变量*c所指向的存储单元,*c为指针指针变量c所指向的存储单元,而c=&b表示c为变量b的地址,b=&a表示b为变量a的地址。表达式一c的值就是变量a中的值。

(31)有如下函数调用语句
func(recl,rec2+rec3,(rec4,rec5));
该函数调用语句中,含有的实参个数是________。
A)3  B)4  C)5   D)有语法错误
答案:A
评析:(rec4,rec5)是逗号表达式,它的值是rec5的值。所以该函数调用语句含有的实参个数是3。

(32)有如下程序
main()
{
char s[115]={.tabc","de","fgh"};
printf("%e",s[2][6]);
}
其输出为__________。
A)不确定  B)编译错误  C)g    D)输出null字符
答案:A
评析:由于s[2116]表示字符串已超出了数组s的表示范围,在c中不会对数组越界进行 检查 ,当数组越界时,会得到一个不确定的值。

(33)有如下程序
int rune(ira a,int b)
{ remm(a+b);}
main()
{ int x=2,y=5,z=8,r;
r=func(func(x,y),z);
primf("%d ",r);
}
该程序的输出结果是________。
A)12  B)13  C)14    D)15
答案:D
评析:调用函数func(x,y),返回x+y,即7;再调用函数func(7,z),返回7+z,即15。

(34)有如下程序段
int  *p,a=10,b=l;
p=&a; a=*p+b;
执行该程序段后,a的值为_________。
A)12  B)11  C)10  D)编译出错
答案:B
评析:执行p=&a;后,p指向整数a,*p即p的目标变量,也就是a;所以a=*p+b等价于a=a+b,可知a的值最终为11。

(35)有以下程序:
int*f(int*x,int*y)
{  if(*x<*y)return x;
else returny;
}
main()
{
int a=7,b=8,*p,*q,*r;
p=&a;q=&b;
r=f(p,q);
printf("%d,%d,%d\n",*p,*q,*r);
}
程序运行后输出结果是_________。
A)7,8,8  B)7,8,7  C)8,7,7  D)8,7,8
答案:B
评析:f函数的功能是返回地址为x,y的两个数中值较的数的地址,本题输出结果是7,8,7。

(36)有如下程序
long fib(im n)
{ if(n>2) return(fib(n-1)+fib(n-2));
else return(2);
)
main()
{ printf(%ld\n",fib(3));}
该程序的输出结果是_________。
A)2  B)4  C)6  D)8
答案:B
评析:函数舶内部有两个递归调用,当n=3时,fib(n-1)返回2,fib(n-2)也返回2,所以fib(n-I)+fib(n-21的值为4。

(37)下面程序的输出结果是_________。
main()
{
char str[10],c='a';
inti=0:
for(;i<5;i++)
str[I]=c++;
printf("%s",str);
}
A)abcde  B)a  C)不确定  D)bcdef
答案:C
评析:字符串少一个结束标志,所以输出的结果不确定。

(38)在c语言中,函数中变量的隐含存储类别是__________。
A)auto  B)static  C)extern  D)无存储类别
答案:A
评析:函数中变量的存储类别包括auto,static,extern,其中auto为隐含存储类别,static为静态存储类别,register是寄存器存储类别。A
评析:函数中变量的存储类别包括auto,static,extern,其中auto为隐含存储类别,static为静态存储类别,register是寄存器存储类别。

(39)有如下程序
#define n 2
#define m N+I
#define NUM  2*m+l
main()
{ int i;
for(i=1;i<=NUM;i++)printtf("%d\n",i);
}
该程序中的for循环执行的次数是_________。
A)5  B)6  C)7  D)8
答案:B
评析:在c语言中,宏定义在编译时将被直接替换,所以NUM最后会被替换成2*N+l+l,即2*2+1+1,值为6。因此,for循环执行的次数为6。

(40)假设在turboc2.0采用small模式编译如下程序
main()
{
char a[4]:{'a','b'};
char%="abc.t:
printf("%d,%d",sizeof(a),sizeof(b));
}
其输出结果为_________。
A)4,2  B)4,4  C)4,3  D)2,2
答案:A
评析:用small模式编译,指针变量占2个字节。sizeof(array):数组名array代表数组本身,sizeof函数测出的是整个数组的大小。a数组的大小为4,b指针变量的大小为2。

(41)有以下函数
char *fun(char *p)
{  retum p; }
该函数的返回值是_________。
A)无确切的值        B)形参p中存放的地址值
C)一个临时存储单元的地址  D)形参p自身的地址值
答案:B
评析:p本身就是一个字符型指针变量,返回p也就是返回变量p中存放的地址值。

(42)有如下程序段:
#include<stdio.h>
#define Max(a,b)a>b?a:b
main()
{
int a=5,b=6,c=4,d;
d=c+Max(a,b);
printf("%d",d);
}
其输出结果为__________。
A)10  B)5  C)6  D)编译错误
答案:B
评析:在c语言中,宏定义是直接替换的,所以在c+a>b?a:b这个条件表达式中,c+a>b为真,所以用a的值作为整个表达式的值,而a的值为5,所以整个表达式的值为5。

(43)有如下程序段
int a=14,b=l 5,x;
char c='A':
x=(a&&b) &&(c<'B');
执行该程序段后,x的值为________。
A)true  B)false  C)0  D)l
答案:D
评析:a&&b的值为true,c<'B'的值也为true,所以(a&&b)&&(c<'B')的值为true。但x是int型变量,所以(披&b)&&(c<'B')的值最后要从bool型转换为int型赋给x。这样x的值应为l。

(44)下述关于C语言文件的操作的结论中,正确的是________。

A)对文件操作必须先关闭文件
B)对文件操作必须先打开文件
C)对文件操作顺序无要求
D)对文件操作前必须先测文件是否存在,然后再打开文件。
答案:B
评析:在c中对文件操作必须先打开文件,待文件操作完毕后要关闭文件。对文件以读的方式进行打开操作时,同时会执行文件的 检查 文件是否存在,不存在将会返回空的文件指针,如果对文件以写的方式打开时,文件不存在,将会自动创建文件,.因此在C中打开文件前不必对其检查文件是否存在,故答案为B。


(45)下列关键字中,不属于C语言变量存储类别的是________。
A)register  B)auto  C)extem  D)public
答案:D
评析:变量的存储类别具体包含四种:自动的(auto),静态的(statiC),寄存器的(register),外部的(extern)。

(46)有如下说明
im a[10]={l,2,3,4,5,6,7,8,9,10},*p=a;
则数值为9的表达式是________。
A)木p+9  B)半(p+8)  C)牛p+=9  D)p+8
答案:B
评析:p是指针,p+8是地址值,D是错的;*p是p的目标变量,即a[0],值为1,所以+p+9的值是lO,而*p+=9值是重新给a[O]赋了值(1+9);所以A和C也是错的。p+8是地址值,指向a[8],那么*(p+8)。的值就是a[81的值,即9。

(47)若有以下定义:int t[3][2];能正确表示t数组元素地址的表达式是________。
A)&t[3][2]  B]t[3]  C]t[1]  D]*t[2]
答案:C
评析:A和B两个表达式都已越界了;*t[2]是目标变量,即一个整数,而不是地址值。

(48)下面程序运行后的输出结果是________。
struct abc
{
int a,b,c;
}
main()
{
struct abc s[2]={{1,2,3},{4,5,6}};
int t=-s[0].a+s[1].b;
printf("%d\n",t);
}
A)5  B)6  C)7  D)8
答案:B
评析:在main函数中定义了一个struct abc类型的数组,同时分别利用{1,2,3}及{4,5,6}对数组中两个元素进行初始化。在该结构体,依次对其中的a,b,c三个变量进行初始化。故s[O].a=l,s[1].b=5,所以本题输出为6。

(49)有如下程序
main()
{
int a[31131。{{1,2},{3,4},{5,6}},i,j,s=0;
for(i=l;i<3;i++)
for(j=0;j<=i;j++)
s+=a[I][j];
printf("%d\n",s);
}
该程序的输出结果是________。
A)18  B)19  C)20  D)2l
答案:A
评析:题中的外循环只执行了2次:
第1次:a[1][0]=3,a[1][1]=4,所以s=7;
第2次:a[2][O]=5,a[2][1]=6,a[2][2]=0,所以s=7+5+6+0=18。

(50)若己建立如下图所示的单向链表结构:

在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是__________。
A)p=p->next;s->next:p;p->next=s;
B)p=p->next;s->next:p->next;p->next=s;
C)s->next:NULL;p=p->next;p->next:s;
D)p=(*p).next;(*s).next=(*p).next;(*p).next=s;
答案:A
评析:在答案A中:p=p->next;s->next=p;p->next=s;s的确已插到了链表的末尾,但它的next却并没有为NULL,而是指向了它的直接前趋p,这样它就不是一个单向链表(单向链表最后一个结点的next指针一定是一个NULL)。

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

请将每一个空的正确答案写在答题卡的【1】至【20】序号的横线上,答在试卷上不得分。

(1)在运算过程中,能够使空表与非空表的运算统一的结构是 【1】 。
答案:【1】循环链表
评析:在链表的运算过程中,采用链接方式即循环链表的结构把空表与非空表的运算统一起来。循环链表具有两个特点:
①在循环链表中增加了一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。
②循环链表中最后一个结点的指针不是空,而是指向表头结点。

(2)软件工程研究的内容主要包括: 【2】 技术和软件工程 管理 。
答案:【2】软件开发
评析:基于软件工程的目标,软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。
软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学。
软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。

(3)与结构化需求分析方法相对应的是 【3】 方法。
答案:【3】结构化设计
评析:与结构化需求分析方法相对应的是结构化设计方法。结构化设计就是采用最佳的可能方法设计系统的各个组成部分以及各个成分之间的内部联系的技术。也就是说,结构化设计是这样一个过程,它决定用哪些方法把哪些部分联系起来,才能解决好某个具体且有清楚定义的问题。

(4)关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、 【4】 和自定义完整性。
答案:【4】参照完整性
评析:关系模型允许定义三类数据约束,它们是实体完整性、参照完整性以及用户定义的完整性约束,其中前两种完整性约束由关系数据库系统自动支持。
实体完整性约束要求关系的主键中属性值不能为空,这是数据库完整性的最基本要求,因为主键是惟一决定元组的,如为空则其惟一性就成为不可能的了。
参照完整性约束是关系之间相关联的基本约束,它不允许关系引用不存在的元组:即在关系中的外键要么是所关联关系中实际存在的元组,要么是空值。
自定义完整性是针对具体数据环境与应用环境由用户具体设置的约束,它反映了具体应用中数据的语义要求。

(5)数据模型按不同的应用层次分为三种类型,它们是 【5】  数据模型、逻辑数据模型和物理数据模型。
答案:【5】概念
评析:数据模型按不同的应用层次分为三种类型,它们是概念数据模型、逻辑数据模型和物理数据模型。
概念数据模型简称概念模型,是一种面向客观世界、面向用户的模型;它与具体的数据库管理系统无关。

(6)表示""整数x的绝对值大于5""时值为""真""的C语言表达式是 【6】  。
答案:【6】x>5‖x<-5或k<-5‖x>5
评析:要使整数x的绝对值大于5,则x大于5或x小于-5,用c语言表示即为:x>5‖x<-5或者x<-5‖x>5。
故本题答案为:x>5‖x<-5或者x<-5‖x>5。

(7)以下程序的输出结果是 【7】 。
main()
{  unsigned short a=65536;int b;
printf("%d\n",b=a);
}
答案:【7】0
评析:对于一个unsigned short来说,它能取的最大值是65535。这里给a赋值65536,已经超出了它的取值范围,这样它的高位将被截掉,只把低位赋给它(全零)。所以a的值实际为0。

(8)若有定义:ira a=lO,b=9,c=8;,接着顺序执行下列语句,变量b中的值是 【8】 。
c=(a-=(b-5));
c=(a%11)+(b=3);
答案:【8】3
评析:这里:b-5=4,a.=4之后a的值为6,并把它赋给c。此时b的值并未被改变。在第2个表达式中,也只有赋值表达式b=3改变了b的值。所以两行语句执行完毕,b的值应该为3。

(9)以下程序运行后的输出结果是 【9】 。
main()
{
int p=30;
primf("%d\n",(p/3>O?p/10:p%3));
}
答案:【9】3
评析:条件表达式的一般形式为:表达式17表达式2:表达式3条件运算符的执行顺序:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值;若表达式l的值为0(假)-,则求解表达式3,表达式3的值就是整个条件表达式的值。30/3=10>0,所以执行p/lO,结果为3。

(10)函数pi的功能是根据以下近似公式求n值:

(∏*∏)/6=1+1/(2*2)+1/(3*3)+…+1(n*n)
现在请你在下面的函数中填空,完成求n的功能。
#include"math.H"
{ double s=0.0;long i;
for(i=1;i<=n;i++)s=s+ 【10】  ;
retum(sqrt(6*s));
}
答案:【10】1.O/(i*i1或(double)l/(i*i)
评析:表达式1+1/(2*2)+l/(3*3)+…+1(n*n)可写为:1/(1*1)+1/(2*2)+1/(3*3)+…+1(n*n)
n
即:∑l÷(i×i)
i-l
对应的c语言的表达式:s=s+1.O/(i*i)。注:必须要写成1.0的形式,否则1/(i*i)返回值为其值截尾取整,即恒为O。


(11)函数pi的功能是根据以下公式近似求得的:
pi*pi/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)
请在下面的函数中填空,完成求pi的功能。
#include<math.h>
double pi(10ng n1
{ double s=O.O,long i;
for(i=1;i<=n;I++)s=s+ 【11】  ;
return(sqrt(6*s));
}
答案:【11】1.0/i/i或1.O/(i*i)
评析:由题面中提供的计算pi的公式可知:在第i项其值为1/(i*i),考虑到运算结果为浮点数,故必须要将l转化为浮点数或采用1.O/(i*i)的形式。故本题应填1.O/(i*i)或其等效形式。

(12)若输入字符串:abcde/,则以下while循环体将执行 【12】  次。
while((ch=getchar())=='e')printf("*");
答案:【12】0
评析:函数getchar()是从键盘得到用户输入的一个字符。用户输入的第1个字符是a,不管后面输入的是什么ch的值都是'a',因此条件(ch=getchar())=='e'为假,这个循环不会被执行。

(13)以下函数用来求出两整数之和,并通过形参将结果传回,请填空。
voidfunc(intx,inty, 【13】  z]
{ *z-x+y;},
答案:【13】int*
评析:从题中代码可知:z应该是一个整型指针,因此应填:int*

(14)若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是  【14】  。
int w[10]={23,54,10,33,47,98,72,80,61},*p=w;
答案:【14】p[5]或*(p+5)
评析:98是数组w的第5个元素(最开始的为第O个),而通过*p=w已经将p指向了数组w,要想不移动指针p而引用98,可以有以下两种写法:p[5]、*(p+5)。

(15)设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函  数的首部 【15】  。要求形参名为b。
main()
{  double s[10][22];
int n:
……
fun(s);
……
}
答案:【15】void fun(double b[1011221]
评析:本题答案:void fun(double b[10][22])

(16)有以下程序:
int f(int n)
{  if(n==1)return 1;
else return f(n-1)+1;}
main()
{ int i j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n"'j);
}
程序运行后的输出结果是 【16】 。
答案:【16】3
评析:i=l时,f(1)=1 J=j+f(1)=0+1=1;i=2时,f(2)=f(1)+l=1+1=2 j=j+f(2)=l+3=3;此时循环结束,程序运行后的输出结果是3。

(17)以下程序的输出结果是 【17】 。
void fun()
{ static int a:0;
a+=2;printf("%d",a);
}
main()
{ int cc;
for(CC=1;cc<4;cc++)fun();
printf("\n");
}
答案:【17】246
评析:循环for(cc=l;cc<4;cc++)被执行了3次。在函数fun中,由于a是static型变量,所以函数第1次调用后,a=2;第2次调用后,a=4;第3次调用后,a=6。

(18)实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于copy命令),假定文件在当前目录下。请补全程序。
#include<stdio.h>
void main(int argc,char。argv[])
{ FILE *f1,*f2;
if(argc< 【18】 )
{  printf("parameter error! ");exit(0);}
fl=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while( 【19】 )fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
答案:【18】3
【19】!feof(f1)
评析:在c语言中,宏定义是直接替换的,所以在对表达式MAX(a+b,c+d)*10进行或替换后,表达式变为:(a+b)>(c+d)?(a+b):(c+d)*10
在这个条件表达式中,(a+b)>(c+d)为真,所以用(a+b)的值作为整个表达式的值(否则用(c+d)*10的值作为整个表达式的值),而(a+b)的值为7。所以整个表达式的值为7。

(19)以下程序的输出结果是 【20】 。
#define  MAX(x,y)(x)>(y)?(x):(y)
main()
f int  a=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",t);
}

 

上下文章:

 

上一篇文章: 计算机等级考试二级C语言考前密卷[5]上 下一篇文章: 计算机等级考试二级C语言考前密卷[4]上

相关文章:

  • 中国国家计算机病毒中心监测发现蠕虫新变种
  • 09年全国计算机等级考试更新7门教材
  • 谷歌百科全书网站Knol推出多种语言服务
  • 火星文:最时髦的网络语言
  • 确保计算机安全 个人用户责无旁贷

相关软件:

  • 多国语言互译专家 2009 6.4
  • 出国留学考试旅游英语免费用 V1.0
  • 二级VB学习系统 1.0
  • RonyaSoft ProPoster 多语言版 v2.02.11
  • 公安基础知识考试宝典 3.0
  • 易语言 V4.04 简体中文正式版

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

计算机等级考试分类导航

  • 计算机等级考试动态
  • 计算机一级考试
  • 计算机二级考试
  • 计算机三级考试
  • 计算机四级考试

本类经典文章推荐

  • 2006年全国计算机等级考试二级C考...
  • 《C++编程规范》笔记(设计风格)
  • 如何编写高质量的VB代码
  • VB编程的几个API函数的应用问题
  • VB编程:去掉窗体的关闭按钮
  • 最简Windows编程
  • VB编程:如何在列表框中自动查找
  • VB指导:生成auto-OK对话框
  • 使用VB的布局工具节省编程时间
  • VB中利用Winrar进行文件压缩

计算机二级考试阅读排行

  • 计算机二级:《计算机基础》考试题
  • 2006年全国计算机等级考试二级C考...
  • VB编程:去掉窗体的关闭按钮
  • 计算机二级:计算机基础知识作业题
  • 二级VF程序设计全真预测试卷(一)
  • 全国计算机等级考试二级VISUALFOX...
  • 2005年9月17日二级VF笔试试题答案
  • 《C++编程规范》笔记(设计风格)
  • 二级C语言程序设计试题(含答案)
  • 2005年9月计算机等级考试二级笔试...

计算机等级考试阅读总排行

  • 全国计算机等级考试一级模拟试题01
  • 全国计算机等级考试一级模拟试题10
  • 全国计算机等级考试一级模拟试题08
  • 全国计算机等级考试一级模拟试题02
  • 全国计算机等级考试一级考试最新模...
  • 全国计算机等级考试一级模拟试题07
  • 一级(WINDOWS)试题解析-Word篇
  • 全国计算机等级考试上机考试应试技...
  • 全国计算机等级考试一级模拟试题03
  • 全国计算机等级考试一级模拟试题06

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有