考前密卷可信吗|2005年考前密卷——选择121-140题

等级考试 2021-02-01 网络整理 可可

【shitiku.jxxyjl.com--等级考试】

(121)有如下程序
main()
{ int y=3,x=3,z=l;
printf("%d%d\n",(++x,y++),z+2);
}
运行该程序的输出结果是______。
A)3 4 B)4 2 C)4 3 D)3 3
(121)D
知识点:基本语句中的输入输出语句
评析:逗号表达式(++x,y++)的值应该是y+十的值,由于y++是先引用后自增,所以y++的值是3。
(122)能正确表示逻辑关系:“a≥10或a≤0”的c语言表达式是______。
A)a>=10 0r a<=0 B)a>=0 | a<=10
C)a>=10 && a<=0 D)a>=10‖ a<=10
(122)D
知识点:c语言表达式
评析:c语言中的“或”关系用“||”表示,其他相关逻辑运算符“与”用“&&”表示;运算符”非”用“!”来表示。
(123)有如下程序
main()
{ int x=l,a=0,b=0:
switch(x){
case 0:b++:
case 1:a++;
case 2:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是_______。
A)a=2,b=l B)a=1,b=l C)a=1,b=0 D)a=2,b=2
(123)A
知识点:用switch语句实现多分支选择结构
评析:在这个switch语句中,因为x的值为l,所以执行case l:后面的a++,这样a=l。但又由于其下没有break语句,所以其后面的语句“a++;b++”也将被执行,这样一来,a=2,b=l。
(124)有如下程序
main()
{ float x=2.0,y;
if(x<O.O)y=0.0;
else if(x<10.0)y=1.O/x;
else y=1.0;
printf("%f\n",y);
}
该程序输出结果是_______。
A)0.000000 B)0.250000 C)0.500000 D)1.000000
(124)C
知识点:用if语句实现选择结构
评析:本题考查的是if...else语句的使用。x=2.0,符合第二个IF语句的条件x<lO.O,所以执行y=l.0/x语句,即y=1.0/2.0=0.500000。
(125)有如下程序
main()
{ int i,sum;
for(i=1;i<=3;sum++)sum+=i;
printf("%d\n",sum);
}
该程序的执行结果是_______。
A)6 B)3 C)死循环 D)0
(125)C
知识点:for循环结构
评析:在循环过程中,i的值一直没有被改变,所以这是一个死循环。
(126)有如下程序
main()
{ int x=3;
do
{ printf("%d",x--);}
while(!x);
}
该程序的执行结果是_______。
A)321 B)3 C)不输出任何内容 D)陷入死循环
(126)B
知识点:do-while循环结构
评析:本题x赋初值为3,当执行print(“%d”,x一一);时,由于x--的作用是先运算x,再将x的值减l,所以,printf输出的x值为3,等输出后,x的值减l变为2,继续执行,判断条件!x为假,循环只被执行一次。
(127)设有说明语句:char a=‘\72";则变量a_______。
A)包含1个字符 B)包含2个字符
C)包含3个字符 D)说明不合法
(127)A
知识点:c语言运算符
评析:转义字符常量"\xx"可以把’\’后面的数字转换为对应的ASCII字符。
(128)有如下函数调用语句
func(rec1,rec2+rec3,(rec4,rec5));
该函数调用语句中,含有的实参个数是_______。
A)3 B)4 C)5 D)有语法错
(128)A
知识点:函数的正确调用
评析:(rec4,rec5)是逗号表达式,它的值是rec5的值。所以该函数调用语句含有的实参个数是3。
(129)有如下程序
int func(int a,intb)
{ 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
(129)D
知识点:函数参数的传递
评析:调用函数func(x,y),返回x+y,即7:再调用函数func(7,z),返回7+z,即15。
(130)有如下程序段
int *p,a=10,b--1:
p=&a;a=*p+b;
执行该程序段后,a的值为________。
A)12 B)ll C)10 D)编译出错
(130)B
知识点:指针变量的概念
评析:执行p=&a;后,p指向整数a,*p即p的目标变量,也就是a;所以a=*p+b等价于a=a+b,可知a的值最终为11。
(131)有如下程序
long fib(int 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
(131)B
知识点:函数的递归调用
评析:函数仃b内部有两个递归调用,当n=3时,fib(n-1)返回2,fib(n-2)也返回2,所以fib(n-1)+fib(n一2)的值为4。
(132)在c语言中,函数中变量的隐含存储类别是________。
A)auto B)static C)extern D)无存储类别
(132)A
知识点;函数中变量的存储类别
评析:函数中变量的存储类别包括auto,static,extem,其中auto为隐含存储类别,static为静态存储类别,register是寄存器存储类别。
(133)有如下程序
#define n 2
#define m N+I
#define NUM 2*m+l
main()
{ int i;
for(i=l;i<=NUM;i++)printf("%d\n",i);
}
该程序中的for循环执行的次数是________。
A)5 B)6 C)7 D)8
(133)B
知识点:宏定义的应用
评析:在c语言中,宏定义在编译时将被直接替换.所以NUM最后会被替换成2*N+1+1,即2*2+l+l,值为6。因此,for循环执行的次数为6。
(134)有以下函数
char *fun(char*p)
{return p; }
该函数的返回值是________。
A)无确切的值 B)形参p中存放的地址值
C)一个临时存储单元的地址 D)形参p自身的地址值
(134)B
知识点:返回指针值的指针函数
评析:p本身就是一个字符型指针变量,返回p也就是返回变量p中存放的地址值。
(135)有如下程序段
int a=14,b=15,x;
char c=‘A’:
x=(a&&b) &&(c<‘B’);
执行该程序段后,x的值为_______。
A)true B)false C)0 D)1
(135)D
知识点:逻辑表达式的运算
评析: a&&b的值为true,c<’B’的值也为true,所以(a&&b)&&(c<’B’)的值为true。但x是int型变量,所以(a&&b)&&(c<’B’)的值最后要从bool型转换为int型赋给x。这样x的值应为l。
(136)若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是_______。
A)EOF B)0 C)非零值 D)NULL
(136)C
知识点:库函数的返回值
评析:函数feof是用来判断文件是否已读到末尾,如果已读到末尾则返回非零值,否则返回O。
(137)有如下说明
int 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
(137)B
知识点:指针变量的概念
评析:p是指针,p+8是地址值,D是错的;*p是p的目标变量,即a[0],值为l,所以*p+9的值是10,而*p+=9的值是重新给a[0]赋了值(1+9),所以A和C也是错的。p+8是地址值,指向a[8],那么。(p+8)的值就是a[8]的值,即9。
(138)若有以下定义:int t[3][2],能正确表示t数组元素地址的表达式是_______。
A)&t[3][2] B)t[3] C)t[l] D)*t[2]
(138)C
知识点:数组的概念
评析:A和B两个表达式都已越界了;*t[2]是目标变量,即一个整数,而不是地址值。
(139)有如下程序
main()
{
int a[3][3]={{l,2},{3,4},{5,6}},i,j,s=0;
for(i=l;i<3;i++)
for(j=O;j<=i;j++)
s+=a[i][j];
printf("%d\n",s);
}
该程序的输出结果是_______。
A)18 B)19 C)20 D)21
(139)A
知识点:循环的嵌套使用
评析:题中的外循环只执行了2次:
笫1次:a[l][0]=3,a[l][l]=4,所以s=7;
第2次:a[2][0]=5,a[2][1]=6,a[2][2]=0,所以s=7+5+6+0=18。
(140)若已建立如下图所示的单向链表结构:

在该链表结构中,指针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;
(140)A
知识点:单向链表的建立
评析:在答案A中:p=p->next;s->next=p;p->next=s;s的确已插到了链表的末尾,但它的next却并没有为NULL,而是指向了它的直接前趋p,这样它就小是一个单向链表(单向链表最后一个结点的next指针一定是一个NULL)。


本文来源:https://shitiku.jxxyjl.com/dengjikaoshi/1451.html

Copyright @ 2011- 考试题库网 All Rights Reserved. 版权所有

免责声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。

 站长统计