2017年计算机二级考试c语言题库试卷(1)
-
若文件指针fp已正确指向文件,ch为字符型变量,以下不能把字符输出到文件中的语句是( )。
- A.fget(f0,ch);
- B.foutc(ch,fo);
- C.fprinff(fp,”%c”,ch);
- D.fwrite(&ch,sizeof(ch),1,fp);
-
下面判断正确的是
- A.char *a="china";等价于 char *a;*a="china";
- B.char str[5]={"china"};等价于char str[]={"china"};
- C.char *s="china";等价于 char *s;s="china";
- D.char c[4]="abc",d[4]="abc";等价于char c[4]=d[4]="abc";
-
树是结点的集合,它的根结点数目是
- A.有且只有1
- B.1或多于1
- C.0或1
- D.至少2
-
以下能正确定义一维数组的选项是
- A.int num[ ];
- B.#define N 100 int num[N];
- C.int num[0..100];
- D.int N=100; int num[N];
-
以下程序的输出结果是
#include
void prt (int *x, int*y, int*z)
{printf("%d,%d,%d\n",++*x,++*y,*(z++));}
main()
{int a=10,b=40,c=20;
prt (&a,&b,&c);prt (&a,&b,&c);}
- A.11,42, 31 12,22,41
- B.11,41,20 12,42,20
- C.11,21,40 11,21,21
- D.11,41,21 12,42,22
-
有以下程序
#include
main()
{ char c1,c2,c3,c4,c5,c6;
scanf(" % c % c % c % c",&c1,&c2,&c3,&c4);
c5=getchar(); c6=getchar();
putchar(c1); putchar(c2);
printf(" % c % c\n",c5,c6);
}
程序运行后,若从键盘输入 ( 从第 1 列开始 )
123< 回车 >
45678< 回车 >
则输出结果是
- A.1267
- B.1256
- C.1278
- D.1245
-
设一棵满二叉树共有15个结点,则在该满二叉树中的叶子结点数为( )。
- A.7
- B.8
- C.9
- D.10
-
有以下程序
void f(int n,int *r)
{
int r1=0;
if(n%3==0) r1=n/3;
else if(n%5==0) r1=n/5;
else f(--n,&r1); *r=r1;
}
main()
{
int m=7,r;
f(m,&r);printf("%d",r);
}
程序运行后的输出结果是
- A.2
- B.1
- C.3
- D.0
-
若有以下定义和语句char c1='b',c2='e'printf("%d,%c\n",c2-c1,c2-'a'+A); 则输出结果 ( )
- A.2,M
- B.3,E
- C.2,E
- D.输出项与对应的格式控制不一致,输出结果不确定
-
数据库设计包括两个方面的设计内容,它们是______。
- A.概念设计和逻辑设计
- B.模式设计和内模式设计
- C.内模式设计和物理设计
- D.结构特性设计和行为特性设计
-
设整型数i=5,则printf("%d",i+++++i);的输出为______。
- A.10
- B.11
- C.12
- D.语法错误
-
下列程序的执行结果是 ______。#include<stdio.h>union un{ int i; char c[2];};void main(){ union un x; x.c[0]=10; x.c[1]==1; printf("\n%d",x.i);}
- A.266
- B.11
- C.265
- D.138
-
若有定义"int*p[3];",则以下叙述中正确的是( )。
- A.定义了一个基类型为int的指针变量p,该变量具有3个指针
- B.定义了一个指针数组p,该数组含有3个元素,每个元素都是基类型为int的指针
- C.定义了—个名为*p的整型数组,该数组含有3个int类型元素
- D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有3个int类型元素
-
下列程序的输出结果是
#include "stdio.h"
#define N 3
#define M 3
void fun(int a[M][N])
{ printf("%d\n",*(a[1]+2));}
main()
{ int a[M][N];
int i,j;
for(i=0;i
for(j=0;j
- a[i][j]=i+j-(i-j);
- fun(a);}
- A.3
- B.4
- C.5
- D.6
-
下列写法正确的是( )。
- A.main () { int i=3,j; j=5 }
- B.main() { int i=3;
- C.main ()
- D.main() {;}
-
下列关于字符串的说法中错误的是
- A.在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符'\0'作为字符串结束标志
- B.'\0'作为标志占用存储空间,计入串的实际长度
- C.在表示字符串常量的时候不需要人为在其末尾加入'\0'
- D.在C语言中,字符串常量隐含处理成以'\0'结尾
-
运行下列程序,若从键盘输入字符“a”,则输出结果是( )。
char c;
c=getchar;
if(c>=a&&c<=g)c=c+4:
else if(c>=9&&c<=2)c=c-21:
else printf("input error! \n");
putchar(c);
- A. f
- B.t
- C.e
- D.d
-
有以下程序
main()
{ int i,s=0,t[]={l,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2) s+=*(t+i);
printf(" % d\n",s);
}
程序执行后的输出结果是
- A.45
- B.20
- C.25
- D.36
-
下面程序的运行结果是______。 #include<stdio.h> #include<string.h> fun(char*w,int n) { char t,*s1,*s2; s1=w;s2=w+n-1; while(s1<s2) {t=*s1++;*s1=*s2--;*s2=t;} } main() { char*p; p="1234567"; fun(p,strlen(p)); puts(p); }
- A.7654321
- B.1714171
- C.1711717
- D.7177171
-
若x=10010111,则表达式(3+(int)(x))&(~3)的运算结果是( )。
- A.10011000
- B.10001100
- C.10101000
- D.10110000
-
以下不能定义为用户标识符的是( )。
- A.scanf
- B.Void
- C.3com
- D.int
-
在一个C程序中
- A.main函数必须出现在所有函数之前
- B.main函数可以在任何地方出现
- C.main函数必须出现在所有函数之后
- D.main函数必须出现在固定位置
-
下列合法的声明语句是( )。
- A.int_abc=50;
- B.double int=3+5e2.5;
- C.long do=1L;
- D.float 3_asd=3e-3;
-
设x和y均为int型变量,且x=10,y=3,则以下语句的输出结果是 ( ) printf(" %d,%d\n",x - -,- -y);
- A.10,3
- B.9,3
- C.9,2
- D.10,2
-
下列关于C语言用户标识符的叙述中正确的是
- A.用户标识符中可以出现下划线和中划线(减号)
- B.用户标识符中不可以出现中划线,但可以出现下划线
- C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头
- D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头
-
字符串"\\"ABCDEF\"\\”的长度是( )。
- A.11
- B.10
- C.5
- D.3
-
下述程序的输出结果是( )。
#include
void main
{ int b[6]={2,4,6,8,10,12);
int*p=b,**q=&p;
printf("%d,",*(p++));
printf("%d,",**q);
}
- A.4,4
- B.2,2
- C.4,5
- D.2,4
-
下面程序的输出结果是 ______。 #define a 121 const b=12; enum c{a1,a2}; main() { printf("%d,%d,%d",sizeof(a) ,sizeof(b) ,sizeof(enum c) ); }
- A.121,0,4
- B.2,2,2
- C.0,2,4
- D.0,2,2
-
下列说法错误的是______。
- A.关系中每一个属性对应一个值域
- B.关系中不同的属性可对应同一值域
- C.对应同一值域的属性为不同的属性
- D.DOM(A)表示属性A的取值范围
-
执行下面的程序段后,变量k中的值为( )。 int k=3, s[2]; s[0]=k;k=s[1]*10;
- A.不定值
- B.33
- C.30
- D.10
-
有下列程序:
#include <stdio.h>
#include "string.h"
void tim(char *s[],int n)
{
char *t; int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]=s[j];s[j]=t;}
}
main()
{
char *ss[]= {"bcc","bbcc","xy","aaaacc","aabcc"};
fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);
}
程序的运行结果是( )。
- A.xy,aaaacc
- B.aaaacc,xy
- C.bcc,aabcc
- D.aabcc,bcc
-
有以下程序 main() { int m=3,n=4,x; x=-m++; x=x+8/++n; printf("%d\n",x); } 程序运行后的输出结果是______。
- A.3
- B.5
- C.-1
- D.-2
-
栈通常采用的两种存储结构是
- A.线性存储结构和链表存储结构
- B.散列方式和索引方式
- C.链表存储结构和数组
- D.线性存储结构和非线性存储结构
-
有以下程序 main () { char s []= "Yes\n/No", *ps=s; puts (ps+4); * (ps+4)=0; puts (s); } 程序运行后的输出结果是(选项D中的第一行是空行)
- A.n/No Yes /No
- B./No Yes
- C.n/No Yes /No
- D./No Yes
-
设有如下定义: struct sk { int a; float b; }data; int *p; 若要使p指向data中的a域,正确的赋值语句是 ( )
- A.p=&a;
- B.p=data.a;
- C.p=&data.a,
- D.*p=data.a;
-
设有定义int n=0,*p=&n,**q=&p;,则下列选项中正确的赋值语句是
- A.p=1;
- B.*q=2;
- C.q=p;
- D.*p=5;
-
阅读以下程序及对程序功能的描述,其中正确的是 #include<stdio.h> main() { FILE*in,*out; charch,infile[10],outfile[10]; printf("Enter the infile name:\n"); scanf("%s",infile); printf("Enter the outfile name:\n"); scanf("%s",outfile); if((in=foen(infile
- A.程序完成将磁盘文件的信息在屏幕上显示的功能
- B.程序完成将两个磁盘文件合二为一的功能
- C.程序完成将一个磁盘文件复制到另一个磁盘文件中
- D.程序完成将两个磁盘文件合并并在屏幕上输出
-
以下程序的输出结果是______。 main() { int i,k,a[10],p[3] k=5; for(i=0;i<10;i++)a[i]=i for(i=0;i<3;i++)p[i]=a[i*(i+1)]; for(i=0;i<3;i++)k+=p[i]*2; printf("%d\n",k); }
- A.20
- B.21
- C.22
- D.23
-
有下列程序:
#include <stdio.h>
void fun(char *a, char *B)
{
while(*a=='*')a++;
while(*b=*A)
{
b++;a++;
}
}
main()
{
char *s="*****a*b****",t[80];
fun(s,t);
puts(t);
程序的运行结果是( )。
- A.*****a*b
- B.a*b
- C.a*b****
- D.ab
-
数据流图中带有箭头的线段表示的是______。
- A.控制流
- B.事件驱动
- C.模块调用
- D.数据流