2015计算机考试二级笔试真题[附答案]
fun(int k)
{ if(k==0) return w;
return(fun(k-1)*k); }
A)360 B)3600 C)1080 D)1200
(47) 要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。能正确招待此功能的函数是
A)funa(int *x,int *y) B) funb(int x,int y)
{int *p; {int t;
*p=*x;*x=*y;*y=*p;} t=x;x=y;y=t;}
C) func(int *x,int *y) D) fund(int x,int y)
{*x=*y;*y=*x;} {*x=*x+*y; *y=*x-*y; *x=*x-*y; }
(48) 要求函数的功能是在一维数组中查找值;若找到则返回所在的下标值,否则返回0;数列放在到中。不能正确执行的函数是
A)funa(int *a,int n,int x ) B)funb(int *a,int n,int x)
{ *a=x; {int k;
while(a[n]!=x)n--; for(k=1;k<=n;k++)
return n; if(a[k]==x)return k;
} return 0; }
C)func(int a[],int n,int x ) D) fund(int a[],int n,int x )
{ int *k; { int k=0;
a[0]=x;k=a+n; do
while(*k!=x) k--; k++;
return k-n; while((k
} if(a[k]==x)return k; else return 0; }
(49) 若有下面的说明和定义,则sizeof(struct aa) 的值是
struct aa
{ int r1;double r2; float r3;
union uu{char u1[5]; long u2[2]; } ua;
} mya;
A)30 B)29 C)24 D)22
(50) 用十进制数表示表达式:12/012的运算结果是
A)1 B)0 C)14 D)12
二、填空题:(每空2分,共40分)
请将每空的正确答案写在答题卡【1】-【20】序号的横线上,答在试卷上不得分。
(1) 与八进制小数0.1等值的十六进制小数为 【1】 。
(2) DOS命令分为内部命令和外部命令,SYS命令属于 【2】 。
(3) 要打印输出当前盘当前目录下的所有扩展名为.DAT的文件内容,应使用的DOS命令为 【3】 。
(4) 设当前系统提示符为"C:\USER>",执行命令"PROMPT $p"后,系统提示符变为 【4】 。
(5) 要建立当前盘当前目录下的全部文件与下一级子目录的目录信息文件MYDIR,应使用的DOS命令为 【5】 。
(6) 若想通过以下输入语句给a赋于1,给b赋于2,则输入数据的形式应该是 【6】 。
int a,b;
scanf("a=%b,b=%d,&a,&b);
(7) 函数mycmp (char*s,chat *t)的功能是比较字符串s和t的大小,当s等于t 时返回0,否则返回s和t的第一个不同字符的ASCOII码的差值,即当s>t时返回正值, 当s等于t 时返回0,否则返回s和t的第一个不同字符的ASCOII码的差值,即当s>t时返回正值, 当s
mycmp(char *s,char *t)
{ while(*s==*t)
{if(*s=='\0') return 0;
++s; ++t;}
return (【7】); }
(8) 下面程序的输出是【8】 。
#define MAX 5
int a[MAX],k;
main()
{ fun1();fun3(); fun2(); fun3();
printf("\n"); }
fun1()
{ for(k=0;k
fun2()
{ int a[MAX],k;
for(k=0;k<5;k++) a[k]=k; }
fun3()
{ int k;
for(k=0;k
(9) 若有以下定义和语句,则使指针p指向值为36的数组元素的表达式是【9】 。
int a[10]={19,23,44,17,37,28,49,36},*p;
p=a;
(10) 下面程序的输出是 【10】 。
main()
{ enum em{ em1=3,em2=1,em3};
char *aa[]={"AA","BB","CC","DD"};
printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]); }
(11) 下面函数要求用来求出两个整数之和,并通过形参传回两数相加之和值,请填空。
int add(int x,int y, 【11】 z)
{ 【12】 =x+y;}
(12) 有以下说明定义和语句,可用a.day引用结构体成员day, 请写出引用结构体成员a.day的其它两种形式 【13】 、【14】 。
struct{int day;char mouth;int year;}a,*b; b=&a;
(13) 下面fun函数的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在一维数组中返回,二进制数的最低位放在下标为0的元素中,其它依此类推。请填空。
fun(int x,int b[])
{ int k=0,r;
do
{ r=x% 【15】;
b[k++]=r;
x/=【16】; } while(x); }
(14) 现有如图所示的存储结构,每个结点含两个域,data是指向字符串的指针域,next是指向结点的指针域。请填空完成此结构的类型定义和说明。
head
struct link
{【17】 ; 【18】;} *head;
(15) 下面程序把从终端读入的文本用@作为文本结束标志)复制到一个名为bi.dat的新文件中,请填空。
#include
FILE *fp;
main()
{ char ch;
if((fp=fopen( 【19】))==NULL)exit(0);
while ((ch=getchar())!='@')fputc(ch,fp); 【20】
【参考答案】
一.选择题((1)~(40)题每题1分,(41)~(50)题每题2分,共60分)
(1)D (2)D (3)A (4)B (5)B (6)A (7)D (8)B (9)C (10)C
(11)D (12)B (13)B (14)D (15)C (16)B (17)C (18)B (19)B (20)A
(21)B (22)A (23)D (24)A (25)C (26)D (27)B (28)B (29)D (30)C
(31)D (32)A (33)D (34)D (35)C (36)D (37)C (38)D (39)A (40)C
(41)B (42)D (43)A (44)D (45)C (46)B (47)D (48)C (49)D (50)C
二.填空题(每空2分,共40分) ((1)至(5)题中所有字母都允许大、小写或大小写混合)
(1) 1 0.2或(0.2)16
(2) 2 外部命令(答外部不扣分)
(3) 3 COPY *.DAT PRN
(4) 4 C:\USER
(5) 5 DIR >MYDIR
(6) 6 a=1,b=2
(7) 7 *s=*t
(8) 8 o246802468
(9) 9 p=p+7或p+=7
(10)10 DDBBCC
(11)11 int * 12 * z
(12)13 (*b).day 14 b->day
说明:答案[13]和[14]可以互换
(13)15 2 16 2
(14)17 char *data 18 struct link *next
说明:答案[17]和[18]可以互换
(15)19 "bi.dat","w" (说明:"w"内以w开头的字符串都可以) 20 fclose(fp)