计算机二级(C)59
(总分100, 做题时间90分钟)
选择题(1-10题每题2分,11-50题每题1分,共60分)
1.
程序中头文件typel.h的内容是:
#define N 5
#define M1 N*3
程序如下:
#include"typel.h"
#define M2 N *2
main( )
{ int i;
i=M1+M2; printf("%d\n",i);
}
程序编译后运行的输出结果是( )。
A 10
B 20
C 25
D 30
分值: 1
答案:C
2.
有以下程序
main( )
{ int a; char c=10;
float f=100.0; double x;
a=f/=c*=(x=6.5);
printf("%d %d %3.1f %3.1f\n",a,c,f,x); }
程序运行后的输出结果是( )。
A 1 65 1 6.5
B 1 65 1.5 6.5
C 1 65 1.0 6.5
D 2 65 1.5 6.5
分值: 1
答案:B
3.
以下叙述中错误的是( )。
A 二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B 在程序结束时,应当用函数fclose( )关闭已打开的文件
C 在利用函数fread( )从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
D 不可以用FILE定义指向二进制文件的文件指针
分值: 1
答案:D
4.
以下选项中合法的用户标识符是( )。
A long
B _2Test
C 3Dmax
D A.dat
分值: 1
答案:B
C语言中合法的变量名由字母、数字和下划线组成,且第一个字符必须为字母或下划线。
5.
有以下程序:
void f(int*x,int*y)
{
int t;
t=*x;*x=*y;*y=t;
}
main()
{
int a [8]={1, 2,3,4,5, 6, 7,8},i,*p,*q;
p=a;q=&a[7];
while(p<q)
{f(p,q);p++;q-;}
for(i=0;i<8;i++)printf("%d,"a[i]);
}
程序运行后的输出结果是【 】。
A 823,4,5,6,7,1,
B 5,6,7,8,12,3,4,
C 1,2,3,4,5,6,7,8,
D 8,7,6,5,4,3,2,1,
分值: 1
答案:D
本程序中函数f的作用是交换指针变量x和y所指向的存储单元的值。
6.
设变量X和Y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是【 】。
A if(X++);
B if(X>y&&y!=O);
C if(X>0)X
else Y++;
D if(Y<0){;}
else X++;
分值: 1
答案:C
C语言规定,在"if(表达式)语句1;else语句2;"这种形式的if语句中,在每一个else前面有一个分号,整个语句结束处有一分号。在本题的C)选项中,else前面少了一个分号,这样程序在编译时,会出现语法错误。
7.
能将高级语言编写的源程序转换为目标程序的是( )。
A 链接程序
B 解释程序
C 编译程序
D 编辑程序
分值: 1
答案:C
8.
有以下程序:
#include <string.h>
main()
{char p[]={''a'',''b'',''c''},q[10]={''a'',''b'',''c''};
printf("%d%d\n",strlen(p),strlen(q));
}
以下叙述中正确的是【 】。
A 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B 由于p数组中没有字符串结束符,长度不能确定;但q数组中字符长度为3
C 由于q数组中没有字符串结束符,长度不能确定:但p数组中字符长度为3
D 由于p和q数组中没有字符串结束符,故长度都不能确定
分值: 1
答案:B
strlen是计算以"\0"结束的字符串的长度的函数,函数的值为字符串中实际长度,不包括"\0"。题中"q[10]={'a','b','c'}"虽然给出了数组大小,即数组实际分配的存储空间,但此字符串只占用前3个存储弹元,其余存储单元系统自动加上"\0"故数组q的长度为3;由于p数组中没有字符串结束符,故字符串的长度不自绷定。
9.
以下叙述中正确的是【 】。
A C语言中的文件是流式文件,因此只能顺序存取数据
B 打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
C 在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
D 当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
分值: 1
答案:D
如果以写方式打开一个已经存在的文件,则在打开时将该文件删除,然后重新建立一个同名的新文件。
10.
有以下程序
main( )
{ char s[ ]="\n123 \ \";
printf("%d,%d\n",strlen(s),sizeof(s));
}
长度介于0和59字符串 执行后输出结果是( )。
A 赋初值的字符串有错
B 6,7
C 5,6
D 6,6
分值: 1
答案:C
11.
以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是( )。
A if((a>b)&&(b>c)) k=1;
else k=0;
B if((a>b)||(b>c))
k=1 else k=0;
C if(a<=b) k=0;
else if(b<=c) k=1;
D if(a>b) k=1;
else if(b>c) k=1;
else k=0;
分值: 1
答案:A
12.
若有以下函数首部int fun(double X[10],int *n)则下面针对此函数的函数声明语句中正确的是【 】。
A int fun(double X,int *n);
B int fun(double ,int);
C int fun(double * X,int n);
D int fun(double *int*);
分值: 1
答案:C
函数首部int fun(double x[10],int:n)表示这个函数的返回值是整型,其第一个形式参数是一个双精度型的一维数组,第二个参数是一个整型指针。在C语言中,一维数组的名字表示的是一维数组的地址,所以选项D)是正确的。
13.
下列描述中正确的是【 】。
A 程序就是软件
B 软件开发不受计算机系统的限制
C 软件既是逻辑实体,又是物理实体
D 软件是程序、数据与相关文档的集合
分值: 1
答案:D
计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。
14.
有以下程序:
main()
{ char a1=''M'',a2=''m'';
printf("%c\n",(a1,a2));
}
以下叙述中正确的是【 】。
A 程序输出大写字母M
B 程序输出小写字母m
C 格式说明符不足,编译出错
D 程序运行时产生出错信息
分值: 1
答案:B
在逗号表达式(表达式1,表达式2)中,其运算方法是先求表达式1的值,然后求表达式2的值,整个逗号表达式的值是表达式2的值。故本题输出的是a2的值m。
15.
以下叙述中错误的是【 】。
A C语言是一种结构化程序设计语言
B 结构化程序由顺序、分支、循环三种基本结构组成
C 使用三种基本结构构成的程序只能解决简单问题
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论