计算机二级(C)37
(总分3040, 做题时间120分钟)
选择题(1-10题每题2分,11-50题每题1分,共60分)
1.
DOS命令“COPY /?”的功能是( )。
A 将当前盘当前目录中的所有文件复制到当前盘的根目录下
B 将当前盘当前目录中所有以单个字符命名的文件复制到当前盘的根目录下
C 以提示方式复制文件
D 显示COPY命令的帮助信息
分值: 60
答案:D
2.
若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是【 】。
A ++x,y=x--
B x+l=y
C x=x+10=x+y
D double(x)/10
分值: 60
答案:A
选项A)为C语言中的逗号表达式。赋值表达式的左侧不能是表达式。在进行强制类型转换时,数据类型两边的圆括号不能省略。
3.
有以下程序
void f(int n,int* r)
{int rl=0;
if(n%3=0) rl=n/3;
else if(n%5=0) rl=n/5;
else f(n,&r1);
*r=rl;
}
main()
{int rn=7,r;
f(m,&);printf("%d",r);
}
程序运行后的输出结果是【 】。
A 2
B 1
C 3
D 0
分值: 60
答案:A
本题考查了函数的递归调用。在f函数中,当m=7时,程序执行"f(n,&r1);"语句,递归调用f(6,&r1),程序执行"r1=n/3;"语句,即r1=6/3=2,然后执行",* r=r1;"语句,所以输出结果为2。
4.
在DOS环境下,代表键盘和显示器的设备文件名为( )。
A PRN
B CON
C NUL
D LPT
分值: 60
答案:B
5.
有以下程序:
void fun(int *a,int i,int j)
{ int t;
if(i<j)
{ t=a[i];a[i]=a[j];a[j]=t;
i++; j--;
fun(a,i,j);
}
}
main( )
{ int x[ ]={2,6,1,8},i;
fun(x,0,3);
for(i=0;i<4;i++) printf("%2d",x[i]);
printf("\n");
}
程序运行后的输出结果是( )。
A 1 2 6 8
B 8 6 2 1
C 8 1 6 2
D 8 6 1 2
分值: 60
答案:C
6.
有以下程序:
struct STU
{char name[10];int num;float TotalScore;};
void f(struct STU *p)
{struct STU s[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;
++p;++q; *p=*q;
}
main()
{struct STU s[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};
f(s);
printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);计算机二级c语言选择题库
}
程序运行后的输出结果是【 】。
A SunDan 20044 550
B Penghua 20045 537
C LiSiGuo 20042 580
D SunDan 20041 703
分值: 60
答案:B
本题将结构体数组s的首地址传递给了结构体指针变量p,并在函数f中改变了指针变量p所指向的第二个结构体中的成员变量,这一改变,也就是改变了主函数中s[1]的成员变量,故程序输出的值为Penghua 20045 537。
7.
有以下程序
main()
{int a=1,b=3,C=5,*P;
int *pl=&a,,*p2=&b,*p3=&c;
*P=*pl*(*p2);
printf("%d\ n",*P);
}
执行后的输出结果是【 】。
A 1
B 2
C 3
D 4
分值: 60
答案:C
程序使指针pl、p2、p3指向a、b、c值所存放的地址空间。然后再将指针变量*pl、*p2运算所得的值放入指针变量*p,即放入了c值所存放的地址。则最后输出c的时候得到的值就是c地址里面的值,即1*3:3。
8.
以下选项中不能作为合法常量的是【 】。
A 1.234e04
B 1.234e0.4
C 1.234e+4
D 1.234e0
分值: 60
答案:B
指数形式的实型常量要求字母e(或E)之前必需有数字,且e后面的指数必须为整数,所以本题中选项B非法。
9.
以下选项中不能正确把c1定义成结构体变量的是( )。
A typedef struct
{ int red;
int green;
int blue;
} COLOR;
COLOR cl;
B struct color cl
{ int red;
int green;
int blue;
}
C struct color
{ int red;
int green;
int blue;
} cl;
D struct
{ int red;
int green;
int blue;
} cl;
分值: 60
答案:B
10.
以下叙述中错误的是【 】。
A 可以通过typedef增加新的类型
B 可以用typedef将已存在的类型用一个新的名字来代表
C 用typedef定义新的类型名后,原有类型名仍有效
D 用typedef可以为各种类型起别名,但不能为变量起别名
分值: 60
答案:A
关键字typedef的作用只是将C语言中的已有的数据类型作了置换,并不是增加新的类型。
11.
有以下定义:
#include <stdio.h>
char a[10],*b=a;
不能给数组a输入字符串的语句是( )。
A gets(a)
B gets(a[0])
C gets(&a[0]);
D gets(b);
分值: 60
答案:B
12.
有以下程序:
main()
{int a[10]={1,2, 3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;
printf("%d\n",*p+*q);
}
程序运行后的输出结果是【 】。
A 16
B 10
C 8
D 6
分值: 60
答案:B
数组a各元素a[0]~a[9]的值依次为1~10;在程序的说明部分,指针变量p初始化为&a[3],即*p的值为4;指针变量q初始化为p+2,即&a[3]+2,所以*q的值为6,所以*p+*q的值为10。
13.
下列叙述中正确的是【 】。
A 算法的效率只与问题的规模有关,而与数据的存储结构无关
B 算法的时间复杂度是指执行算法所需要的计算工作量
C 数据的逻辑结构与存储结构是一一对应的
D 算法的时间复杂度与空间复杂度一定相关
分值: 60
答案:B
根据时间复杂度和空间复杂度的定义可知,算法的时间复杂度与空间复杂度并不相关。数据的逻辑结构就是数据元素之间的逻辑关系,它是从逻辑上描述数据元素之间关系的,是独立于计算机中的,数据的存储结构是研究数据元素和数据元素之间的关系如何在计算机中表示,它们并非一一对应。算法的执行效率不仅与问题的规模有关,还与数据的存储结构有关。
14.
有以下程序:
main( )
{ int x[ ]={1,3,5,7,2,4,6,0},i,j,k;
for(i=0;i<3;i++)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论