C语言___200道练习题及答案C语言___200道练习题及答案
练习题 main() {int x=10; int y=x++; printf("%d,%d", (x++,y), y++); } 11,10 分析程序的运行结果 main() {int m=0256,n=256; printf("%o,%o\n",m,n); } 256,400 以每行4个数据的形式输出数据 int a[20]={1,2,3,4,5}; for (I=0; I<20; I++) { printf("%d", a[I]); if ((I+1)%4==0) printf("\n"); } 126.以下程序执行输出结果是【 】 main() {int a,,b,k=3,m=6,*p1=&k,*p2=&m; a=p1==&m; b=(*p1)/(*p2)+6; printf(“%d,%d\n”,a,b);} A)0,6.5 B)1,6 C)0,6 D) 6,6.5 127.下面程序的输出是【 】 fun3(int x) {static int a=3; a+=x; return(a);} main() {int k=2,m=1,n; n=fun3(k); n=fun3(m); printf(“%d\n”,n);}A)3 B)4 C)6 D)9 128.若有语句int *point,a=4; 和 point=&a; 下面均代表地址的一组选项是【 】A)a,point,*&a B)&*a,&a,*pointC)*&point, *point, &a D)&a, &*point, point 129. 有以下程序段int k=0while(k=1) k++;while 循环执行的次数是【 】A) 无限次 B) 有语法错,不能执行 C)一次也不执行 D) 执行1次 130. 有如下程序 main( ) { int x=1,a=0,b=0; switch (x){ case 0: b++; case 1: a++; case 2: a++; b++; } printf(“a=%d,b=%d\n”,a, b); } 该程序的输出结果是 【 】A)a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 131. 下列关于switch语句和break语句的说法中,只有【 】是正确的。A)break是switch语句中的一部分B)在switch 语句中可以根据需要使用或不使用break语句C)在switch 语句中必须使用break语句D)以上三种说法有两个是正确的 132. 为了判断两个字符串s1和s2长度是否相等,可以使用【 】 A)if (strlen(s1)= strlen(s2)) B)if (s1=s2) C)if (strlen(s1,s2) D)if (strlen(s1)== strlen(s2)) 133. 在C语言中,使用时才分配内存单元的变量存储类型为【 】 A)static B)auto C)register D)extern 134.若定义了int *pointer[5],则下列说法正确的是【 】A)定义了一个指针数组pointerB)定义了一个指向5个元素的一维数组的指针变量pointerC)定义了五个指针变量D)定义一个整型数组,名为*pointer,又、有5个元素。 135. 下面程序的输出结果是【 】A)0 B) 1 C) 10 D) 9main(){ int a[]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf("%d\n",*p+9);} 136.当调用函数时,实参是一个数组名,则向函数传送的是【 】A)数组的长度 B) 数组的首地址C) 数组每一个元素的地址 D) 数组每个元素中的值 137.以下叙述中不正确的是【 】A)预处理命令行都必须以“#”开始。B)在程序中凡是以“#”号开始的语句行都是预处理命令行C)C语言的编译系统对宏命令的处理是在对源程序中其他成分正式编译之前进行的。D)宏名必须用大写字母表示 138.下面程序