2010上半年等考二级C语言笔试精选试题(8)
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 相关资料 |