1、国家二级( C语言)章节练习试卷 28 及答案与解析 1 下面说明不正确的是 _。 ( A) char a10=“USA“; ( B) char a10, *p=a; p=a;p=“USA“; ( C) char*a;a=“USA“; ( D) char a10, *p;a=p=“USA“; 2 有如下程序段 int*p, a=10, b=3; p=&a; a=*p+b;执行该程序段后, a的值为 _。 ( A) 11 ( B) 12 ( C) 13 ( D) 14 3 int*f(int*x,int*y) if(*x *y) return x; else return y; main() i
2、nt a=7, b=8, *p, *q, *r; p=&a; q=&b; r=f(p, q); printf(“%d, %d, %d“, *p, *q, *r); 执行后输出结果是 _。 ( A) 7,8,8 ( B) 7,8,7 ( C) 8,7,7 ( D) 8,7,8 4 有以下程序 main() char*s=“BBC“, “CNN“,“NDS“, *p; p=s1; printf(“%c, %sn“, *(p+1), p); 执行后输出结果是 _。 ( A) C,BBC ( B) N,BBC ( C) C,CNN ( D) N,CNN 5 说明语句 int*(*p)();的含义是 _
3、。 ( A) p是一个指向 int型数组的指针 ( B) p是指针变量,它构成了指针数组 ( C) p是一个指向函数的指针,该函数的返回值是一个整型 ( D) p是一个指向函数的指针,该函数的返回值是一个指向整型的指针 6 己知 int i,x34;,则不能将 x11的值赋给变量 i的语句是 _。 ( A) i=*(*(x+1)+1) ( B) i=*(*(x+1) ( C) i=x11 ( D) i=*(x1+1) 7 下面程序的运行结果是 _。 #include stdio.h #include string.h fun(char*w,int n) char t, *s1, *s2; s1
4、=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 8 以下程序的输出结果是 _。 void fun() static int a=0; a+=2; printf(“%d“, a); main() int cc; for(cc=1; cc 4; cc+)fun(); printf(“n“); 9 以下程序的输出结果是 _。 int a
5、, b; void fun() a=100; b=200; main() int a=5, b=7; fun(); printf(“%d dn“,a,b); 10 以下程序的输出的结果是 _。 int x=3; main() int i; for (i=1; i x; i+) incre(); incre() staic int x=1; x*=x+1; printf(“%d“, x); 11 以下程序输出的最后一个值是 _。 int ff(int n) static int f=1; f=f*n; return f main() int i; for(i=1; i =5; i+) print
6、f(“%d “, ff(i); 12 以下函数把 b字符串连 接到 a字符串的后面,并返回 a中新字符串的长度。请填空。 surcen(chara, char b) int num=0,n=0; while(*(a+num)!=_)num+; while(bn)*(a+num)=bn; num+; _; return(num); _o或 0 国家二级( C语言)章节练习试卷 28 答案与解析 1 【正确答案】 D 2 【正确答案】 C 3 【正确答案】 A 4 【 正确答案】 D 5 【正确答案】 D 6 【正确答案】 B 7 【正确答案】 C 8 【正确答案】 246 9 【正确答案】 57 10 【正确答案】 26 11 【正确答案】 1 2 6 24 120 12 【正确答案】 0或 0, n+或其他使 n增 1的语句