admin 管理员组文章数量: 1184232
2024年12月31日发(作者:typealiases)
计算机二级(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("%dn",i);
}
程序编译后运行的输出结果是( )。
SSS_SINGLE_SEL
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.1fn",a,c,f,x); }
程序运行后的输出结果是( )。
SSS_SINGLE_SEL
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( )关闭已打开的文件
SSS_SINGLE_SEL
C 在利用函数fread( )从二进制文件中读数据时,可以用数组名给数组中所
有元素读入数据
D 不可以用FILE定义指向二进制文件的文件指针
分值: 1
答案:D
4.
以下选项中合法的用户标识符是( )。
SSS_SINGLE_SEL
A long
B _2Test
C 3Dmax
D
分值: 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]);
}
程序运行后的输出结果是【 】。
SSS_SINGLE_SEL
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语句中,在编译时将产生错误信息
的是【 】。
SSS_SINGLE_SEL
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.
能将高级语言编写的源程序转换为目标程序的是( )。
SSS_SINGLE_SEL
A 链接程序
B 解释程序
C 编译程序
D 编辑程序
分值: 1
答案:C
8.
有以下程序:
#include <string.h>
main()
{char p[]={''a'',''b'',''c''},q[10]={''a'',''b'',''c''};
printf("%d%dn",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.
以下叙述中正确的是【 】。
SSS_SINGLE_SEL
SSS_SINGLE_SEL
A C语言中的文件是流式文件,因此只能顺序存取数据
B 打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆
盖
C 在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能
读到第1个数据
D 当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
分值: 1
答案:D
如果以写方式打开一个已经存在的文件,则在打开时将该文件删除,然后重新建
立一个同名的新文件。
10.
有以下程序
main( )
{ char s[ ]="n123 ";
printf("%d,%dn",strlen(s),sizeof(s));
}
执行后输出结果是( )。
SSS_SINGLE_SEL
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);
SSS_SINGLE_SEL
SSS_SINGLE_SEL
C int fun(double * X,int n);
D int fun(double *int*);
分值: 1
答案:C
函数首部int fun(double x[10],int:n)表示这个函数的返回值是整型,其第
一个形式参数是一个双精度型的一维数组,第二个参数是一个整型指针。在C语
言中,一维数组的名字表示的是一维数组的地址,所以选项D)是正确的。
13.
下列描述中正确的是【 】。
SSS_SINGLE_SEL
A 程序就是软件
B 软件开发不受计算机系统的限制
C 软件既是逻辑实体,又是物理实体
D 软件是程序、数据与相关文档的集合
分值: 1
答案:D
计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相
关文档的完整集合。
14.
有以下程序:
main()
{ char a1=''M'',a2=''m'';
printf("%cn",(a1,a2));
}
以下叙述中正确的是【 】。
SSS_SINGLE_SEL
A 程序输出大写字母M
B 程序输出小写字母m
C 格式说明符不足,编译出错
D 程序运行时产生出错信息
分值: 1
答案:B
在逗号表达式(表达式1,表达式2)中,其运算方法是先求表达式1的值,然后求
表达式2的值,整个逗号表达式的值是表达式2的值。故本题输出的是a2的值
m。
15.
以下叙述中错误的是【 】。
A C语言是一种结构化程序设计语言
B 结构化程序由顺序、分支、循环三种基本结构组成
C 使用三种基本结构构成的程序只能解决简单问题
D 结构化程序设计提倡模块化的设计方法
分值: 1
答案:C
SSS_SINGLE_SEL
结构化程序设计是指在程序的构成上只使用顺序、选择(即分支)和循环3种结
构组成的编程方式。它强调程序设计风格和程序结构的规范化,提倡清晰的结
构。结构化程序设计方法的基本思路,是把一个复杂问题的求解过程分阶段进
行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。结构化程序设
计提倡模块化的设计方法。
16.
C语言中用于结构化程序设计的三种基本结构是( )。
A 顺序结构、选择结构、循环结构
B if、switch、break
C for、while、do-while
D if、for、continue
分值: 1
答案:A
17.
以下程序的功能是按顺序读入10名学生4门课程的成绩,计算出每位学生的平
均分并输出,程序如下:
main( )
{ int n,k;
float score,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{ for(k=1;k<=4;k++)
{ scanf("%f",&score);sum+=score;}
ave=sum/4.0;
printf("NO%d:%fn",n,ave);
}
}
上述程序运行后结果不正确,调试中发现有―条语句出现在程序中的位置
不正确。这条语句是( )。
SSS_SINGLE_SEL
SSS_SINGLE_SEL
A sum=0.0;
B sum+=score;
C ave=sum/4.0;
D printf("NO%d:%fn",n,ave);
分值: 1
答案:A
本题中sum用来保存每位学生的总成绩,所以在计算不同学生的总成绩时,应
将sum重新赋值 初值0,即语句sum=0.0;,它应在第二个for语句前执行。
18.
有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不
为3的是( )。
SSS_SINGLE_SEL
A if (c<a) x=1;
else if (b<a) x=2;
else x=3;
B if (a<3) x=3;
else if (b<a) x=2;
else x=1;
C if (a<3) x=3;
if (a<2) x=2;
if (a<1) x=1;
D if (a<b) x=b;
if (b<c) x=c;
if (c<a) x=a;
分值: 1
答案:C
19.
有以下程序:
}
struct s
{ int x,y; } data[2]={10,100,20,200};}
main( )}
{ struct s *p=data;}
printf("%dn",++(p->x));}
程序运行后的输出结果是( )。
SSS_SINGLE_SEL
A 10
B 11
C 20
D 21
分值: 1
答案:B
20.
有以下程序
#include
main()
{FILE * fp;int k , n,a[6]={1,2,3,4, 5,6};
fp=fopen("","W");
fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);fprintf(fp,"%d%d%d
\n",a[3],a[4],a[S]);
fclose(fp);
fp=fopen("","r");
fscanf(fp,"%d%d",&k,.&n);printf("%d%d\n",k,n);
fclose(fp);
}
程序运行后的输出结果是【 】。
SSS_SINGLE_SEL
A 12
B 14
C 1234
D 123456
分值: 1
答案:D
将有6个元素的整型数组分两行输出到一个文件中,因为输出的都是数字并且每
行都没有分隔符,所以当再对其进行读取操作时,每一行都会被认为是一个完整
的数,而换行符则作为它们的分隔符。故本题答案为D)。
21.
若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是
【 】。
SSS_SINGLE_SEL
A #define N 10
B #define n 5int a[N]; int a[2*n];
C int a[5+5];
D int n=10,a[n].
分值: 1
答案:D
在选项D)中,n是一个整型的变量。C语言规定,在一维数组的定义中,其下标只
能是常量表达式,不能包含变量。
22.
在Windows环境下,单击当前窗口中的按钮“
A 将当前应用程序转为后台运行
B 退出Windows后再关机
C 终止当前应用程序的运行
D 退出Windows后重新启动计算机
分值: 1
答案:C
23.
DOS命令“COPY /?”的功能是( )。
A 将当前盘当前目录中的所有文件复制到当前盘的根目录下
B 将当前盘当前目录中所有以单个字符命名的文件复制到当前盘的根目录下
C 以提示方式复制文件
D 显示COPY命令的帮助信息
分值: 1
答案:D
24.
用8位无符号二进制数能表示的最大十进制数为( )。
SSS_SINGLE_SEL
SSS_SINGLE_SEL
SSS_SINGLE_SEL
”,其功能是( )。
A 127
B 128
C 255
D 256
分值: 1
答案:C
25.
有以下程序
#include
main()
{FILE * fp;int i,a[6]={l,2,3,4,5,6};
fp=fopen("","W+b");
fwrite(a,sizeof(int),6,fp);
fseek(fp,sizeof(int)* 3,SEEK_SET);/*该语句使读文件的位置指针从
文件头向后移动3个int型数
据*/
fread(a,sizeof(int),3,fp);fclose(fp);
for(i=0;i<6;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是【 】。
SSS_SINGLE_SEL
A 4,5,6,4,5,6,
B 1,2,3,4,5,6,
C 4,5,6,1,2,3,
D 6,5,4,3,2,1,
分值: 1
答案:A
首先利用fwrite函数将数组a中的数据写到文件中,接着fseek函数的功能是
读文件的位置,指针从文件头向后移动3个int型数据,这时文件位置指针指向
的是文件中的第4个int数据"4"。然后fread函数将文件fp中的后3个数据
4,5,6读到数组a中,这样就覆盖了数组中原来的前3项数据。最后数组中的数
据就成了{4,5,6,4,5,6},故本题答案为A)。
26.
有以下程序
int fun(int X[],int n)
{static int sum=0,i;
for(i=0;i return sum; } main() {int a[]={1,2,3,4,5},b[]={6,7,8,9},S=0; S=fun(a,5)+fun(b,4);printf("%d\n",S); } 程序执行后的输出结果是【 】。 SSS_SINGLE_SEL A 45 B 50 C 60 D 55 分值: 1 答案:C 内部静态变量是始终存在的,当函数被调用退出后,内部静态变量会保存数据,再 次调用该函数时,以前调用时的数值仍然保留着。Fun(a,5)的值是15,再次调用 后sum=15,所以Fun(b,4):45,s=45+15=60。 27. 以下对结构体类型变量td的定义中,错误的是【 】。 A virtual void vf()=0; B void vf(int)=0; C virtual int vf(int); D virtual void vf(int) {} 分值: 1 答案:C 选项C中的aa本身就为结构体变量名,所以不能再用它来定义结构体变量,故此 种定义方法是错误的。 28. 有以下程序 maln() {int a=0,b=0,C=0,d=0; . if(a=1)b=1;c:2; else d=3; printf("%d,%d,%d,%d\n",a,b,C,d); } 程序输出【 】。 SSS_SINGLE_SEL SSS_SINGLE_SEL A 0,1,2,0 B 0,0,0,3 C 1,1,2,0 D 编译有错 分值: 1 答案:D else子句不能作为语句单独使用,在题中if与else语句被"c=2;"语句分隔开 了。 29. 计算机网络的主要特点是( )。 SSS_SINGLE_SEL A 运算速度快 B 运算精度高 C 资源共享 D 人机交互 分值: 1 答案:C 30. 以下与函数fseek(fp,OL,SEEK_SET)有相同作用的是【 】。 SSS_SINGLE_SEL A feof(fp) B ftell(fp) C fgetc(fp) D rewind(fp) 分值: 1 答案:D fseek函数用于改变文件的位置指针。本题中"fseek(fp,0L,SEEK_SET)"的作用 是将位置指针移到文件头。feof的作用判断文件是否结束,己指到文件的末尾, 则返回值为非零,否则为零。ftell的作用是得到流式文件中的当前位置,用相 对于文件开头的位移量来表示。fgets的作用是指定文件读入一个字符串。 31. 以下叙述中错误的是【 】。 A 可以通过typedef增加新的类型 B 可以用typedef将已存在的类型用一个新的名字来代表 C 用typedef定义新的类型名后,原有类型名仍有效 D 用typedef可以为各种类型起别名,但不能为变量起别名 分值: 1 答案:A 关键字typedef的作用只是将C语言中的已有的数据类型作了置换,并不是增加 新的类型。 32. 在Windows环境下,当一个应用程序窗口被最小化后,该应用程序( )。 SSS_SINGLE_SEL SSS_SINGLE_SEL A 继续在后台运行 B 继续在前台运行 C 终止运行 D 暂停运行 分值: 1 答案:A 33. 按照"后进先出"原则组织数据的数据结构是【 】。 SSS_SINGLE_SEL A 队列 B 栈 C 双向链表 D 二叉树 分值: 1 答案:B 栈的特点是栈顶元素总是最后被插入的元素,也是最早被删除的元素;栈底元素 总是最早被插入的元素,也是最晚才能被删除的元素。即栈的修改原则是"后进 先出"(Last In First Out,简称LIFO)或"先进后出"(First In last Out,简称 FILO),因 此,栈也称为"后进先出"表或"先进后出"表。 34. 已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制 表示的字符常量''101''是( )。 SSS_SINGLE_SEL A 字符A B 字符a C 字符e D 非法的常量 分值: 1 答案:A 字符,'101',所对应的八进制数为101,转换成十进制数为65。 35. 有以下程序 main( ) { int x[8]={8,7,6,5,0,0},*s; s=x+3; printf("%dn",s[2]); } 执行后输出结果是( )。 SSS_SINGLE_SEL A 随机值 B 0 C 5 D 6 分值: 1 答案:B 36. 有以下程序 int *f(int *x,int *y) { if(*x<*y) return x; else return y; } main( ) { int a=7,b=8,*p,*q,*r; p=&a; q=&b; r=f(p,q); printf("%d,%d,%dn",*p,*q,*r); } 执行后输出结果是( )。 SSS_SINGLE_SEL A 7,8,8 B 7,8,7 C 8,7,7 D 8,7,8 分值: 1 答案:B 37. 有以下程序 fun(int X,int Y){return(X+Y);} main() {int a=1,b=2,C=3,sum; sum=fun((a++,b++,a+b),C++); printf("%d\n",sum); } 执行后的输出结果是【 】。 SSS_SINGLE_SEL A 6 B 7 C 8 D 9 分值: 1 答案:C 变量a.b,c的初始值分别为1,2,3。因此逗号表达式"a++,b++,a+b"的值等于5, 表达式c++的值为3,这样主函数main()中调用子函数的表达式为"fun(5,3); ",其返回值等8。所以变量sum的值等于8。 38. 在Internet中,用于在计算机之间传输文件的协议是( )。 SSS_SINGLE_SEL A TELNET B BBS C FTP D WWW 分值: 1 答案:C 39. 已定义以下函数: fun(char *p2, char *p1) { while((*p2=*p1)!=''0''){ p1++;p2++; } } 此函数的功能是( )。 A 将p1所指字符串复制到p2所指内存空间 SSS_SINGLE_SEL B 将p1所指字符串的地址赋给指针p2 C 对p1和p2两个指针所指字符串进行比较 D 检查p1和p2两个指针所指字符串中是否有'0' 分值: 1 答案:A 40. 有以下程序: main( ) { int a[3][3],*p,i; p=&a[0][0]; for(i=0;i<9;i++) p[i]=i+1; printf("%d n",a[1][2]); } 程序运行后的输出结果是( )。 SSS_SINGLE_SEL A 3 B 6 C 9 D 2 分值: 1 答案:B 41. 以下语句中存在语法错误的是【 】。 A char SS[6][20]; SS[1]="right?"; B char SS[][20]={"right?"}; C char * ss[6];SS[1]="right?"; D char SS[]={"right?"}; 分值: 1 答案:A 不能用赋值语句将一个字符串常量直接赋给一个字符串数组。 42. 若各选项中所用变量已正确定义,函数fun中通过return语句返回—个函数值, 以下选项中错误的程序是【 】。 SSS_SINGLE_SEL SSS_SINGLE_SEL A main() {……X=fun(2,10);……} float fun(int a,int b){……} B float fun(int a,int b){……} main() {……X=fun(i,j);……} C float fun(int,int); main() {……x=fun(2,10);……} float fun(int a,int b){……} 分值: 1 答案:A 在调用子函数时,应对其进行说明。选项A)中,调用时,没有对子函数进行说 明。选项B)、C)中被调用函数在主调函数之前定义,不用说明;选项D)中在主 调函数中对被调用函数的返回值类型进行了说明。 43. 能将高级语言编写的源程序转换成目标程序的是( )。 SSS_SINGLE_SEL A 编辑程序 B 编译程序 C 解释程序 D 链接程序 分值: 1 答案:B 由高级语言编写的程序称为“源程序”,由二进制代码表示的程序称为“目标 程序”,而把源程序 转换成机器能够识别的目标程序是由“编译程序”完成 的。 44. 在16位编译系统上,若有定义int a[]={10,20,30},*P=&a;,当执行P++后,下 列说法错误的是【 】。 A p向高地址移了一个字节 B p向高地址移了一个存储单元 C p向高地址移了两个字节 D p与a+1等价 分值: 1 答案:A 在16位编译系统下,一个int型变量是用16位来存储的,其占用两个字节,当执 行p++之后,相当于p向高位移动了一个存储单元,也就是两个字节。因此,本题 的答案为选项A。 45. 以下叙述中错误的是【 】。 A 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出 B 数组名代表的是数组所占存储区的首地址,其值不可改变 C 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出"下标 越界"的出错信息 D 可以通过赋初值的方式确定数组元素的个数 分值: 1 答案:C 在C语言中,如果出现下标越界的情况,系统不管在编译还是执行时都不会给出" 下标越界"的错误提示。 46. SSS_SINGLE_SEL SSS_SINGLE_SEL 设有如下说明 typedef struct ST {long a;int b;char c[2];}NEW; 则下面叙述中正确的是【 】。 SSS_SINGLE_SEL A 以上的说明形式非法 B ST是一个结构体类型 C NEW是一个结构体类型 D NEW是一个结构体变量 分值: 1 答案:C typedef关键字用于声明一个新的类型名代替已有的类型名。本题中如果没有 用typedef进行定义的话,则struct ST为结构体类型,现在用typedef定义后, 相当于用NEW代表了struct ST这一结构体类型,故NEW为结构体类型。 47. 若有定义int x=0,*p=&x;,则语句printf("%dn",*p);的输出结果是 【 】。 SSS_SINGLE_SEL A 随机值 B 0 C x的地址 D p的地址 分值: 1 答案:B 由题中定义可以看出,指针变量p指向了x所在的存储单元,故输出的*p的值即 为x的值0。 48. 在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为 【 】。 SSS_SINGLE_SEL A 63 B 64 C 6 D 7 分值: 1 答案:B 顺序查找是从线性表的第一个元素开始依次向后查找,如果线性表中的第一个元 素就是要查找的元素,则只需要做一次比较就查找成功;但如果要查找的元素是 线性表中的最后一个元素,或者要查找元素不在线性表中,则需要与线性表中所 有元素进行比较,这是顺序查找的最坏情况,比较次数为线性表的长度。 49. 有以下程序: main( ) { int m=0256,n=256; printf("%o %on",mn,n); } 程序运行后的输出结果是( )。 SSS_SINGLE_SEL A 0256 0400 B 0256 256 C 256 400 D 400 400 分值: 1 答案:C 50. 数据库设计的根本目标是要解决 SSS_SINGLE_SEL A 数据共享问题 B 数据安全问题 C 大量数据存储问题 D 简化数据维护 分值: 1 答案:A 由于数据的集成性使得数据可为多个应用所共享,特别是在网络发达的今天,数 据库与网络的结合扩大了数据关系的应用范围。数据的共享本身又可极大地减 少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不 一致性。因此,数据库设计的根本目标是要解决数据共享问题。 51. 有以下程序 main() {int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i ,k,t; for(i=0;i<3;i++)
版权声明:本文标题:计算机二级(C)59_真题(含答案与解析)-交互 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1735738774a1686841.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论