2017年计算机二级考试C语言模拟试题3
-
fun1函数的功能是将3个整数按由大到小的顺序调整后依次放入a、b、c3个变量中,a中放最大数,fun2函数的功能是交换两个变量中的值。补足所缺语句。
fun2(int*x,int*y)
{ int t;
t=*x;*x=*y;*y=t;
}
fun1(int*p1,int*p2,int*p3)
{if(*p3>*p2) fun2(*P2,*p3);
if(*p1<*p3) fun2(______);
if(*p1<*p2) fun2(______);
}
main()
{ int a,b,c;
scanf("%d%d%d",&a,&b,&c) ;
fun1(&a,&b,&c) ;
printf("%d,%d,%d\n",a,b,c) ;
}
-
以下程序运行后的输出结果是【 】。
main()
{ char a[]="Language",b[]="Pragrame";
char *p1,*p2; int k;
p1=a; p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k));
}
-
以下程序中select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。请填空。
#define N 3
#define M 3
select{int a[N][M],int *n;
{ int i,j,row=l,eolum=l;
for(i=0;i<N;i++
for j=0;j<M;j++)
if(a[i][j]>a[row][colum]){row=i;colum=j:}
*n=______;
return______;
}
main()
{ int a[N][M]={9,11,23.6,1,15,9,17,20}, max,nj
max=select(a,&n);
printf("max=%d, line=%d\n",max.n ;
}
-
以下程序的输出结果是______。
main()
{char c='z';
printf("%c",c-25);}
-
有以下程序main ( ) { int a[3] [3],*p, i; p=&a[0] [0]; for (i=0;i<9; i++) p[i] =i; for(i=0;i<3;i++) printf ("%d" ,a[1] [i] );} 程序运行后的输出结果是
- A.12
- B.123
- C.234
- D.345
-
标准库函数fgets(s,n,file)的功能是( )。
- A.从文件file中读取长度为n的字符串存入字符数组s中
- B.从文件file中读取长度不超过n-1个字符的字符串放到字符数组s中
- C.从文件file中读取n个字符串存入字符数组s中
- D.从文件file中读取长度为n-1个字符的字符串存入字符数组s中
-
有以下程序
#include <stdio.h>
main( )
{int a[ ]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;
*q=*(p+5);
printf("%d %d\n",*p,*q);
}
程序运行后的输出结果是
- A.运行后报错
- B.6 6
- C.6 11
- D.5 10
-
C语言中运算对象必须是整型的运算符是( )。
- A.%=
- B./
- C.=
- D.<=
-
需求分析最终结果是产生
- A.项目开发计划
- B.需求规格说明书
- C.设计说明书
- D.可行性分析报告
-
下列程序的输出结果是( )。
#include<stdio.h>
main()
{iut a=2,b=3,p;
p=f(a,B)
printf("%d",p);
}
intf(a,b)
{int c;
if(a>B) c=1;
e1Seif(a==B) c=0;
else(3=-1;
return(C) ;
}
- A.-1
- B.0
- C.1
- D.2
-
在位运算中,操作数左移一位,其结果相当于( )。
- A.操作数乘以2
- B.操作数除以2
- C.操作数除以4
- D.操作数乘以4
-
下面程序段的输出结果是______。 char *s="abcde"; s+=2;printf("%d",s);
- A.cde
- B.字符'c'
- C.字符'c'的地址
- D.无确定的输出结果
-
下列叙述中,不属于软件需求规格说明书的作用的是()
- A. 便于用户、开发人员进行理解和交流
- B. 反映出用户问题的结构,可以作为软件开发工作的基础和依据
- C. 作为确认测试和验收的依据
- D. 便于开发人员进行需求分析
-
以下程序输出的结果为______。 main() { char *alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"); char **p; int i; p=alpha; for(i=0;i<4;i++) printf("%s",p[i]); }
- A.ABCDEFGHIJKL
- B.ABCD
- C.ABCDEFGHIJKLMNOP
- D.AEIM
-
下列4个关于C语言的结论中错误的是( )。
- A.可以用do…while语句实现的循环一定可以用while语句实现
- B.可以用for语句实现的循环一定可以用while语句实现
- C.可以用while语句实现的循环一定可以用for语句实现
- D.do…while语句与while语句的区别仅是关键字“while”出现的位置不同
-
下列程序的输出结果是 #include"stdio.h”" main() { int i,a=0,b=0; for(i=1;i<10;i++) { if(i%2==0) {a ++; continue;} b++;} printf("a=%d,b=%d",a,b);}
- A.a=4,b=4
- B.a=4,b=5
- C.a=5,b=4
- D.a=5,b=5
-
软盘上第( )磁道最重要,一旦损坏,该盘就不能使用了。
- A.0
- B.40
- C.1
- D.80
-
有以下程序: void sum(int * a) {a[0]=a[1];} main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=1;i>0;i--)sum(&aa[i]); print("%d\n",aa[0]); } 程序运行后的输出结果是 ______。
- A.4
- B.3
- C.2
- D.1
-
以下选项中非法的字符常量是
- A.'\101'
- B.'\65'
- C.” \xff'
- D.'\019'
-
有以下程序:
#include
void fun(char *t,char *s)
{ while(*t!=0) t++;
while((*t++=*s++)!=0);
}
main()
{ char ss[10]= " acc " ,aa[10]= " bbxxyy " ;
fun(ss,aa);
printf( " %s,%s\n " ,ss,aa);
}
程序运行结果是
- A.accxyy,bbxxyy
- B.acc, bbxxyy
- C.accxxyy,bbxxyy
- D.accbbxxyy,bbxxyy
-
若有定义int(*pt)[3];,则下列说法正确的是
- A.定义了基类型为int的三个指针变量
- B.定义了基类型为int的具有三个元素的指针数组pt
- C.定义了一个名为*pt、具有三个元素的整型数组
- D.定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组
-
串的长度是( )
- A.串中不同字符的个数
- B.串中不同字母的个数
- C.串中所含字符的个数且字符个数大于零
- D.串中所含字符的个数
-
下列关于线性表的叙述中,不正确的是( )。
- A.线性表可以是空表
- B.线性表是一种线性结构
- C.线性表的所有结点有且仅有一个前件和后件
- D.线性表是由n个元素组成的一个有限序列
-
下列关于栈的描述中错误的是( )。
- A.栈是先进先出的线性表
- B.栈只能顺序存储
- C.栈具有记忆作用
- D.对栈的插入与删除操作中,不需要改变栈底指针
-
命令“DIR A:*.*/W”的功能是 ( )
- A.宽行显示A盘当前目录的所有文件
- B.宽行显示A盘所有目录的所有文件
- C.宽行显示A盘的所有目录
- D.显示A盘中的文件名,每满一屏后停顿一下
-
以下能正确定义一维数组的选项是
- A.inta[5]={0,1,2,3,4,5};
- B.char a[]={'0','1','2','3','4','5','\0'};
- C.char a={'A','b','C'};
- D.inta[5]="0123";
-
下述程序的输出结果是( )。 #include<stdio.h> void main() {char a=1,b=2; char c=a^b<<2; printf("\n%d",C); }
- A.9
- B.10
- C.12
- D.2
-
下列叙述中正确的是
- A.数据的逻辑结构与存储结构必定是一一对应的
- B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
- C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构
- D.以上三种说法都不对
-
下列数据结构中,按先进后出原则组织数据的是( )。
- A.循环队列
- B.栈
- C.顺序表
- D.循环链表
-
下列程序的输出结果是
#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
-
以下不能将s所指字符串正确复制到t所指存储空间的是( )。
- A.while(*t=*s){t++;s++;}
- B.for(i=0;t[i]=s[i];i++);
- C.do{*t++:*s++;}while(*s);
- D.for(i=0,j=0;t[i++]=s[j++];);