1、国家二级( C语言)章节练习试卷 29 及答案与解析 1 以下说法正确的是 _。 ( A) #define和 scanf都是 C语句 ( B) #define是 C语句,而 scanf不是 ( C) #define和 scanf都不是 C语句 ( D) #define不是 C语句, scanf是 2 以下程序的运行结果是 _。 #define MIN(x,y)(x) (y)?(x):(y) main() int i=10,j=15,k; k=10*MIN(i,j); printf(“%dn“, k); ( A) 10 ( B) 15 ( C) 100 ( D) 150 3 运行下面程序,若输入
2、 a回车 sd回车 in inc1 x=1 in inc1 x=1 in inc2 x=1 in inc2 x=2 in inc2 x=3 fg回车则输出结果为_。 #define N 6 #include stdio.h main() char cN; int i=0; for(;i N; ci=getchar(), i+); for(i=0; i N; i+)putch8r(ci); printf(“n“); ( A) a s d f g ( B) a s d f ( C) a sd f ( D) asdfg 4 以下程序运行后,输出结果是 _。 #define P4.5 #define
3、S(x)P*x*x #include stdio.h main() int a=2, b=3; printf(“%.1fn“,S(a+b); ( A) 49.5 ( B) 112.5 ( C) 18 ( D) 24 5 以下程序运行后的输出结果是 _。 main() char a=“Language“,b=“Programe“; char *p1, *p2; int k; p1=a; p2=b; for(k=0; k =7; k+) if(*(p1+k)=*(p2+k) printf(“%c, *(p1+k); 6 下列程序的功能是:将字符数组 a中下标值为偶数的元素从小到大排列,其他元素不变
4、。请填空。 #include string.h mare() chara=“clanguage“,t; int i, j, k; k=strlen(a); for(i=0; i =k-2; i+=2) for (j=i+2; j =k;_) if( ) t=ai; ai: aj; aj=t; put s(a) printf(“n“); 7 下列程序的字符串中各单词之间有一个空格,则程序的输出结果是 _。 #include string.h main() char strl=“How do you do“, *p1=strl strcpy(strl+strlen(strl)/2, “es she
5、“): printf(“%sn“, p1): 8 以下程序运行后的输出结果是 _。 #include string.h main() char ch=“abc“,x34; int i; for(i=0; i 3; i+) strcpy(xi, ch); for(i=0; i 3; i+) printf(“%s“, &xii); printf(“n“); 国家二级( C语言)章节练习试卷 29 答案与解析 1 【正确答案】 C 2 【正确答案】 A 3 【正确答案】 C 4 【正确答案】 C 5 【正确答案】 gae 6 【正确答案】 j+=2, ai aj 7 【正确答案】 How does she 8 【正确答案】 abcbcc