考前密卷可信吗_2005年考前密卷——选择81-100题

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

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

(81)下列语句中符合C语言语法的赋值语句是_______。
A)a=7+b+c=a+7 B)a=a+7
C)a=7+b,b++,a+7; D)a=7+b,c。a+7;
(81)D
知识点:C表达式类型
评析:本题的考查点是赋值语句。
c语言中,赋值语句具有其他高级语言的赋值语句的一切特点和功能。但也有不同:
①c语言中的赋值号“=”是一个运算符,在其他大多数语言中赋值号不是运算符。
②关于“赋值表达式”这一概念,其他大多数高级语言并没有,但在c语言中必须区分:例如:i=i+l是一个表达式,而不是语句;i=i+l:是一个语句。可以看到,一个表达式的最后加一个分号就成了一个语句。
由于赋值语句是由赋值表达式加分号构成,而赋值表达式是赋值运算符“=”将一个变量和一个表达式连接起来的式子,所以选项A、B均不是合法的赋值语句;选项c中,存在两种运算符:逗号运算符和赋值运算符,其中赋值运算符的优先级高,逗号表达式“a=7+b,b++,a+7”的值就是表达式“a+7”的值,即选项C也就可以表示为:a+7;。由此可见,选项C也不是一个合法的赋值语句。选项D是用逗号运算符连接的两个赋值语句。因此符合题目要求的应该是选项D。
(82)下面程序
main()
{int y=9;
for(;y>O;y--){
if(y%3==0)
{ printf("%d",--y);
continue;
}
}
}
的输出是______。
A)741 B)852 C)963 D)875421
(82)B
知识点:用if语句实现选择结构
评析:本题的考查点是if判断语句。
‘‘%’’是求余运算符,所以if判断语句中实际是指出只有当y可以被3整除时方可以继续;--y是先进行y的自减运算,再使用y值。所以,最后的打印结果应当为“852”。
(83)下面程序
main()
{
int a=-l,b=4,k;
k=(a++<=O)&&(!(b--<=0));
printf("%d%d%d\n",k,a,b);
}
的输出是_______。
A)0 0 3 B)0 1 2 C)1 0 3 D)1 1 2
(83)C
知识点:c表达式类型
评析:本题的考查点是逻辑与及自增、自减运算。
a+十是先使用a值再将a的值加1,b--是先使用b的值再将b的值减l,所以题中的逻辑运算表达式的值应当为真,即为1,而经过运算后,a和b的值已经分别变成0和3了。
(84)下面的程序片段
y=-l;
if(X!--0)
if(x>0)y=l;else y=0;
所表示的数学函数关系是_______。
-1(x<0) 1(x<0)
A) y= 0(x=0) B) y= -1(x=0)
1(x=0) 0(x>0)
0(x=0) -1(x<0)
C) y= -1(x=0) D) y= 1(x=0)
1(x>0) 0(x>0)
(84)C
知识点:用if语句实现选择结构
评析:本题的考查点是根据程序写出数学函数关系。
题中的两个判断语句实际上指出了y取值的条件,即当x大于零时y取1:当x小于零时y取0坏眡等于零时y值不变,为一l。
(85)下面的程序
rnain()
{ int x=3,y=O,z=O;
if(x=y+z)printf("* * * *");
else printf("# # # #");
}
______O
A)有语法错误不能通过编译
B)输出* * * *
C)可以通过编译,但是不能通过连接,因而不能运行
D)输出# # # #
(85)D
知识点:c运算符的种类、运算优先级和结合性
评析:本题的考查点是运算符在表达式中的处理原则。
本题中把y+z的值赋给x,由于y和z都等于0,所以x的值也为0,即表达式值为false,输出####。特别提醒:if语句中if后面的表达式一般为逻辑或关系表达式,但也可以是任意的数值类型(包括整型、实型、字符型、指针型数据)。
(86)下面函数
int fun1(char*x)
{ char*y=x;
while(*y++);
return(y-x-1);
}
的功能是_______。
A)求字符串的长度 B)比较两个字符串的大小
c)将字符串x复制到字符串y D)将字符串x连接到字符串y后面
(86)A
知识点: while和do-while循环结构
评析:本题的考查点是while()循环语句。
本题首先要注意的是对。y++的运算,由于++和*为同一优先级别,且结合方向为自右向左,因此它相当于*(y+十)。由于十+在y的右侧,是“后加”,因此先对y的原值进行。运算,然后使y的值改变。在程序中,首先将指针x和y指向同一个字符串的首地址。举个例子,假如。x=”abc”:
第一次判断while循环条件:*y=‘a’,然后使得y加l,指向了字符b;
第二次判断while循环条件:*y=‘b’,然后使得y加l,指向了字符c;
第三次判断while循环条件:*y=‘c’,然后使得y加I,指向了字符\0(字符串结束标志):
第四次判断while循环条件:*y=‘\0’,然后使得y加1,指向了字符‘\0‘后面的一个存储空间;
执行return(y-x-1);,返回值为3,所以此函数的功能是求字符串的长度,需要注意的是,在返回长度时一定要减l,否则计算出的串长度将会多l。
(87)已知字母A的ASCII码为十进制的65,下面程序
main()
{ char chl,ch2;
ch1=‘A’+‘5’-‘3’:
ch2=‘A’+‘6’-‘3’:
print削%d,%Cn",chl,ch2);
}
的输出是_______。
A)67,D B)B,C C)C,D D)不确定的值
(87)A
知识点:数据的输入与输出,输入输出函数的调用 。
评析:本题的考查点是格式输出函数printf的格式字符。
由于字符“5”和“3”的ASCII码相差为2。所以ch1经过运算后的值应为65+2=67;同理,ch2经过运算后的值应为65+3=68,即是字符“D”。
(88)以下程序的输出结果是_______。
#include<stdio.h>
main()
{
int a,b,d=241:
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
A)6,1 B)2,1 C)6,0 D)2,0
(88)B
知识点:c运算符的种类、运算优先级和结合性
评析:本题的考查点是运算符的应用。
第一个表达式中,运算的方向是从左至右,所以a的值为2:
第二个表达式中,等式右边是一个逻辑表达式,由于结果为真,所以表达式的值为l,即b为1。
(89)以下程序的输出结果是_______。
#include<stdio.h>
main()
{
printf("%d\n",NULL);
}
A)不确定的(因变量无定义) B)O
C)-l D)l
(89)B
知识点:“文件包含”处理
评析:本题的考查点是对“NULL"’的理解。
NULL在c编译器中是一个值为0的常量,它的定义在头文件“stdio.H“中,本题的程序在一开始就包含了这个头文件,所以,在打印的时候,将打印出0。
(90)以下程序的输出结果是_______。
main()
{ int k=4,m=l,p;
p=func(k,m);printf("%d,",p);
p=func(k,m);printf("%d\n",p);
}
func(int a,int b)
{ static int m=0,i=2;
i+=m+l:m=i+a+b;
return(m);
}
A)8,17 B)8,16 C)8,20 D)8,8
(90)A
知识点:函数的正确调用
评析:本题的考查点是函数的调用。
将k和m的值带入函数func中,第一次调用完func()后,其中m和i的值要保留,并在第二次调用时使用,这是因为两者都是局部静态变量。模块的代码开始运行后,使用static语句声明的变量会一直保持其值,直至该模块复位或重新启动。所以最后的结果是8和17。
(91)以下程序调用findmax函数求数组中值最大的元素在数组中的下标,请选择填空:
#include<stdio.h>
findmax(int*s,int t,int*k)
{ int p;
for(p=0,*k=p;p<t;p++)
if(s[p]>s[*k])________;
}
main()
{ int a[10],i,k;
for(i=0;i<l0;i++)scanf("%d",&a[i]];
fmdmax(a,10,&k);
printf("%d,%d\n",k,a[k]);
}
A)k=p B)*k=p-s C)k=p-s D)*k=p
(91)D
知识点:一维数组和多维数组的定义、初始化和引用
评析:本题的考查点是求数组中最大值的下标。
k是一个指针,它的值是一个地址,要通过它为主函数的变量改变数据,必须使用*p,这样就可以把一个下标数赋给p指针指向的那个内存单元,所以横线处应填入*k=p。
(92)以下函数调用语句中含________个实参。
func((expl,exp2),(exp3,exp4,exp5));
A)1 B)2 C)4 D)5
(92)B
知识点:形参与实参,参数值的传递
评析:本题的考查点是对实参的理解。
实参可以是常量、变量或表达式,(expl,exp2)是逗号表达式,它的值是exp2的值;(exp3,exp4,exp5)是逗号表达式,它的值是exp5的值。所以该函数调用语句含有的实参个数是2,即:(expl,exp2)和(exp3,exp4,exp5)。
(93)在c语言中,要求运算数必须是整型的运算符是________。
A)% B)/ C)< D)!
(93)A
知识点:位运算符的含义及使用
评析:本题的考查点是运算符。
题目的四个选项中,(B)(C)(D)都不要求运算数必须为整数,参与模运算(%)的运算数必须是整型数据。
(94)C语言提供的合法的数据类型关键字是________。
A)Double B)float C)integer D)Char
(94)B
知识点:c的数据类型
评析:本题的考查点是c语言中的关键字。
选项A和D中第一个字母大写,不正确;
选项c是PASCAL中的整型关键字,不是c语言中的关键字。
(95)若有以下说明:
int a[10]={l,2,3,4,5,6,7,8,9,10},。p。a;
则值为6的表达式是________。
A)串p+6 B)木(p+6) C)半p+=5 D)p+5
(95)C
知识点:指针数组
评析:本题的考查点是通过指针引用数组元素。
选项A,*p+6,其值等于1+6=7;
选项B,*(p+6),其值等于a[6]=7;
选项c,*p+=5,其值等于*p=*p+5=l+5=6;
选项D,p+5是个地址值。
(96)下面程序的输出是________。
main()
{
int m=0xa,n=2;
m+=a;
printf("%X\n",m);
}
A)C B)c C)99 D)2
(96)A
知识点:格式字符
评析:格式控制符x表示数据按十六进制形式输出(不输出前导符0x)。本题在执行语句m+=n;后,m的值变为字母c,又因为在输出a-f时,如果格式控制符用X,则以大写字母输出;如果用x,则以小写字母输出,故本题答案为A。
(97)以下程序的输出结果是________。
#include<string.h>
main()
{char*a="abcdefghi";int k;
fun(a);puts(a);
}
fun(char *s)
{ int x,y; char c;
for(x=0,y=strlen(s)-l; x<y; x++,y--)
{ c=s[y];s[y]=s[x];s[x]=c;}
}
A)ihgfedcba B)abcdefghi C)abcdedcba D)ihgfefghi
(97)A
知识点:字符串与字符数组
评析:本题的考查点是字符串的应用。
观察子函数fun()可知,它是实现一个数组首末元素位置互相依次交换。联系主函数,可以看出,是对字符串中的元素依次进行首末位置的对调。
(98)以下程序的输出结果是________。
main()
{ union{char i[2];
int k;
}r;
r.i[0]=2; r.i[l]=0;
printf("%d\n",r.k);
}
A)2 B)1 C)0 D)不确定
(98)A
知识点:结构体和共用体类型数据的定义方法和引用方法
评析;本题的考查点是共用体类型数据的特点。
根据共用体的定义可知:共用体r的成员k和成员i[2]是共用同一段内存空间,所以,当程序给r.i[0]赋值后,实际上,共用体成员k的值也确定了,为2。所以打印输出的结果应当为2。
(99)以下程序的输出结果是________。
#define f(x) x*x
main()
{ int a=6,b=2,c;
c=f(a)/f(b);
printf("%d\n",c);
}
A)9 B)6 C)36 D)18
(99)C
知识点:宏定义:不带参数的宏定义;带参数的宏定义
评析:本题的考查点是带参数的宏定义。
观察程序段可知,对带参数的宏的展开只是将语句中的宏名后面括号内的实参字符串代替#define命令行中的形参。本题中c=f(a)/f(b)用#define f(x)X*X代替得c=f(6)/f(2),即c=6*6/2*2,结果为36。
(100)以下程序的输出结果是________。
main()
{ int i;
for(i=1;i<6;i++)
{ if(i%2){printf("#");continue;}
printf("*");
}
printf("\n");
}
A)# * # * # B)# # # # # C)* * * * * D)* # * # *
(100)A
知识点:用if语句实现选择结构
评析:本题的考查点是if条件的判断。
i从l到5循环5次,i为1时,满足条件,打印输出“#”:i为2时,条件为假,打印输出“*”。也就是说,当i为奇数时,条件为真,程序打印输出“撑”,否则,输出”*”。

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

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

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

 站长统计