2017年计算机二级考试C语言模拟试题2
-
下列程序利用指针将2个数按从大到小的顺序输出。
main ()
{ int a,b, 【 】;
printf("input a,b: ");
scanf ("%d%d", &a, &b);
【 】;
p2=&b;
if (a<b)
{ p=p1;
p1=p2;
p2=p;
}
printf("a=%d b=%d\n",a,b);
printf("max=%d min=%d\n",【 】);
-
以下程序的运行结果是【 】。
#include
long fib(int g)
{ switch(g)
{ case 0:return 0;
case 1:
case 2:return 1; }
return(fib(g-1)+fib(g-2)); }
main()
{ long k;
k=fib(5);
printf("k=%5ld\n",k);}
-
若已包括头文件<string.h>且已有定义char s1[18],s2={"ABCDE"}和int i,现要将字符串 "ABCDE"赋给s1,下列语句错误的是( )。
- A.strcpy(s1,s2)
- B.strcpy(s1, "ABCDE");
- C.s1="ABCDE";
- D.for(i=0;i<6;i++) s1[i]=s2[i];
-
当m=1,n=2,a=3,b=2,c=4时,执行d=(m=a!=B)&&(n=b>C)后,m的值为( )。
-
以下程序的输出结果为【 】。
main()
{ int k=1;
white(k<=15)
if(++k%3!=2)continue;
else printf("%d ",k);
printf("\n");
}
-
数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
- A.DB包括DBS和DBMS
- B.DBMS包括DB和DBS
- C.DBS包括DB和DBMS
- D.没有任何关系
-
设R是一个二元关系,S是一个三元关系,则下列运算中正确的是( )。
- A.R-S
- B.R×S
- C.R∩S
- D.R∪S
-
下述关于C语言文件的操作的结论中,正确的是______。
- A.对文件操作必须先关闭文件
- B.对文件操作必须先打开文件
- C.对文件操作顺序无要求
- D.对文件操作前必须先测文件是否存在,然后再打开文件
-
有以下程序: main() { int m=3, n=4, x; x=-m++; x=x+8/++n; printf("% d\n", x); } 程序运行后的输出结果是______。
- A.3
- B.5
- C.-1
- D.-216
-
在单链表中,增加头结点的目的是
- A.方便运算的实现
- B.使单链表至少有一个结点
- C.标识表结点中首结点的位置
- D.说明单链表是线性表的链式存储实现
-
以下说法正确的是( )。
- A.C程序总是从第一个函数开始执行
- B.在C程序中,被调用的函数必须在main函数中定义
- C.C程序总是从main函数开始执行
- D.C程序中的main函数必须放在程序的开始部分
-
下面程序运行的结果是______。 main() { int x,y,z; x=0;y=z=-1; x+=-z---y; printf("x=%d\n",x); }
- A.x=4
- B.x=0
- C.x=2
- D.x=3
-
执行以下程序后,a,b的值分别为 main() { in a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; b=(*p1)/(*p2)+7; printf("a=%d\n",a); printf("b=%d\n",b);}
- A.-1,5
- B.1,6
- C.0,7
- D.4,10
-
有以下程序 main() { char s[]="ABCD",*p; for(p=s+1;p<s+4;p++)printf("%s\n",p); } 程序运行后的输出结果是
- A.ABCD BCD CD D
- B.A B C D
- C.B C D
- D.BCD CD D
-
有如下程序段: int a[10]={1,2,3,4,5,6,7,8,9,10}; int *p=&a[3],b;b=P[5];则b的值是( )。
- A.5
- B.6
- C.9
- D.8
-
有如下程序 #include<stdio.h> main() { FILE *fpl; fpl=fopen("f1.txt","w"); fprintf(fp1,"abc"); fclose(fp1); } 若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为
- A.goodabc
- B.abcd
- C.abc
- D.abcgood
-
C语言可执行程序的开始执行点是( )。
- A.包含文件中的第一个函数
- B.程序中第一个函数
- C.程序中的main()函数
- D.程序中第一条语句
-
有以下程序
#include
main()
{ struct node{int n;struct node*next;}*p;
struct node x[3]={{2,x+1},{4,x+2},{6,NULL}};
p=x:
printf("%d,",p->n);
printf("%d\n",P->next->n);
}
程序运行后的输出结果是
- A.2,3
- B.2,4
- C.3,4
- D.4,6
-
以下选项中不属于字符常量的是
- A.′C′
- B.′′C′′
- C.′\xCC′
- D.′\072′
-
在下列几种排序方法中,要求内存量最大的是()
- A. 插入排序
- B. 选择排序
- C. 快速排序
- D. 归并排序
-
若有说明:int *p,m=5,n;,以下正确的程序段是
- A.p=&n;scanf("%d",&p);
- B.p=&n;scanf("%d",*p)
- C.scanf("%d",&n);*p=n;
- D.p=&n;*p=m;
-
十六进制数BB转换成十进制数是 ( )
- A.192
- B.256
- C.187
- D.121
-
设x=011050,则x=x&01252的值是( )。
- A.0000001000101000
- B.1111110100011001
- C.0000001011100010
- D.1100000000101000
-
在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送 ______ 。
- A. 调用语句
- B. 命令
- C. 口令
- D. 消息
-
有如下程序 main() { int y=3,x=3,z=1; printf("%d%d\n",(++x,y++),z+2); } 运行该程序的输出结果是______。
- A.3 4
- B.4 2
- C.4 3
- D.3 3
-
若有下面的说明和定义
struct test
{ int ml; char m2; float m3;
union uu {char ul[5]; int u2[2];} ua;
} myaa;
则sizeof(struct test )的值是
- A.12
- B.16
- C.14
- D.9
-
若有说明int a[][3]={1,2,3,4,5,6,7,8,9},则a数组第一维的大小是( )。
- A.2
- B.3
- C.4
- D.无确定值
-
有以下程序: void swap1(int C[]) { int t; t=c[0]; c[0]=C[1]; c[1]=t; } void swap2(int c0, int c1) { int t; t=c0; c0=c1; c1=t; } main() { int a[2]={3,5}, b[2]={3,5); swapl(a); swap2(b[0],b[1]); printf("%d %d %d %d\n",a[0],a[1],b[0],b[1]); } 其输出结果是
- A.5 3 5 3
- B.5 3 3 5
- C.3 5 3 5
- D.3 5 5 3