2010上半年等考二级C语言笔试精选试题(8)

全国等级考试资料网 2019-01-23 14:13:27 105
 1.若以下对fun函数的调用是正确的:

x=fun(fun(a,b,c),(a+b,a+c),a+b+c);

则fun函数的形参个数为()

A)3 B)4 C)5 D)6

2.若有说明:int*p, m=5; n;,以下正确的程序段是()

A)p=&m;

scanf("%d",&p)

B)p=&n;

scanf("%d",&p)

C)scanf("%d",&p)

p=&n;

D)p=&n;

p=&m;

3.以下程序调用findmax函数返回数组中的最大值

findmax(int*a,int n)

{ int*p,*s;

for(p=a,s=a;p-aif()s=p;

return(*s);

}

main()

{ intx[5]={12,21,13,6,18};

printf("%d ",findmax(x,5));

}考试用书

在下划线处应填入的是()

A)p>s B)*p>*s C)a[p]>a[s] D)p-a>p-s

4.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,则正确语句是()

A)p=2*(int*)malloc(sizeof(int));

B)p=(int*)calloc(2*sizeof(int));

C)p=(int*)malloc(2* sizeof(int));

D)p=2*(int*)calloc(sizeof(int));

5.下列程序的输出结果是()

main()

{char *p1,*p2,str[50]="xyz";

p1="abcd";

p2="ABCD";

strcpy(str+2,strcat(p1+2,p2+1));

printf("%s",str);

}

A)xyabcAB B)abcABz C)Ababcz D)XycdBCD

6.以下叙述中不正确的是()

A)一个变量的作用域完全取决于变量定义语句的位置

B)全局变量可以在函数以外的任何部位进行定义

C)局部变量的“生存期”只限于本次函数调用,因此不可能将局部变量的运算结果保存至下一次调用

D)一个变量说明为static存储类是为了限制其他编译单位的引用

7.交换两个变量的值,不允许用临时变量,应该使用下列哪一个位运算符()

A)~ B)& C)^ D)|

8.下面的说法不正确的是()

A)函数调用时,先求出实参表达

B)函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译时进行的,在展开时也要分配内存单元,进行值传递

C)对于函数中的实参和形参都要定义类型,二者的类型要求一致,而宏不存在类型问题,宏名有类型

D)调用函数只可得到一个返回值,而用宏可以设法得到几个结果

9.fscanf函数的正确调用形式是()

A)fscanf(fp,格式字符串,输出表列);

B)fscanf(格式字符串,输出表列,fp);

C)fscanf(格式字符串,文件指针,输出表列);

D)fscanf(文件指针,格式字符串,输入表列);

10.以下程序的运行结果是()

# define MAX 10

int a[MAX],i;

main()

{ printf(" ");sub1();sub3(a);sub2();sub3(a);

}

sub2()

{ int a[MAX],i,max;

max=5;

for(i=0;i}

sub1()

{for(i=0;i}

sub3(int a[])

{ int i;

for(i=0;iprintf(" ");

}

A)0 2 4 6 8 10 12 14 16 18

0 1 2 3 4

B)0 1 2 3 4

0 2 4 6 8 10 12 14 16 18

C)0 1 2 3 4 5 6 7 8 9

0 1 2 3 4

D)0 2 4 6 8 10 12 14 16 18

0 2 4 6 8 10 12 14 16 18

答案:1.A 2.D 3.B 4.C 5.D 6.B 7.C 8.B 9.D 10.D

相关资料

相关阅读