C.一个指向具有M个整型元素的一维数组的指针
D.具有M个指针元素的一维指针数组,每个元素都只能指向整型量 103.设char a[5],*p=a;,下面选择中正确的赋值语句是()。
A.p=\ B.a=\ C.*p=\ D.*a=\104.具有相同类型的指针变量p与数组a,不能进行的操作是()。 A.p=a; B.*p=a[0]; C.p=&a[0]; D.p=&a; 105.若有下列定义,则对a数组元素地址的正确引用是()。 int a[5],*p=a;
A.&a[5] B.p+2 C.a++ D.&a 106.若有下列定义和语句,则对a数组元素的非法引用是()。 int a[2][3], (*pt)[3]; pt=a;
A.pt[0][0] B.*(pt+1)[2] C.*(pt[1]+2) D.*(a[0]+2) 107.以下程序段的输出结果是()。
char *alp[]={\A.A B.B C.D D.DEF
108.设有以下语句, 若0 for (j=0;j<4;j++) strp[j]=str[j]; A.strp B.str[k] C.strp[k] D.*strp 109.若有int a[][2]={{1,2},{3,4}}; 则*(a+1),*(*a+1)的含义分别为()。 A.非法,2 B.&a[1][0],2 C.&a[0][1],3 D.a[0][0],4 110.若有定义:char *p1,*p2,*p3,*p4,ch;则不能正确赋值的程序语句为()。 A.p1=&ch; scanf(\ B.p2=(char *)malloc(1);scanf(\C.*p3=getchar(); D.p4=&ch;*p4=getchar(); 111.当定义一个结构体变量时,系统分配给它的内存是()。 A.各成员所需内存量的总和 B.结构中第一个成员所需内存量 C.结构中最后一个成员所需内存量 D.成员中占内存量最大者所需的容量 112.设有如下定义: struct sk {int a; float b;} data,*p;若要使p指向data中的a域,正确的赋值语句是()。 A.p=(struct sk*)&data.a; B.p=(struct sk*) data.a; C.p=&data.a; D.*p=data.a; 113.以下对枚举类型名的定义中正确的是()。 A.enum a={sum,mon,tue}; B.enum a {sum=9,mon=-1,tue}; C.enum a={\D.enum a {\ 114.在下列程序段中,枚举变量c1,c2的值依次是()。 enum color {red,yellow,blue=4,green,white} c1,c2; - 11 - c1=yellow;c2=white; printf(\ A.1,6 B.2,5 C.1,4 D.2,6 115.变量p为指针变量,若p=&a,下列说法不正确的是()。 A.&*p==&a B.*&a==a C.(*p)++==a++ D.*(p++)==a++ 116.以下程序的输出结果是()。 main() { char s[]=\ p=s; printf(\ } A.123 B.321 C.213 D.312 117.执行下列语句后的结果为()。 int x=3,y; int *px=&x; y=*px++; A.x=3,y=4 B.x=3,y=3 C.x=4,y=4 D.x=3,y不知 118.下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是()。 A.8 B.23 C.17 D.6 119.若有以下程序段:int a=3,b=4; a=a^b;b=b^a;a=a^b;则执行以上语句后,a和b的值分别是()。 A.a=3,b=4 B.a=4,b=3 C.a=4,b=4 D.a=3,b=3 120.在位运算中,操作数每右移一位,其结果相当于()。 A.操作数乘以2 B.操作数除以2 C.操作数乘以16 D.操作数除以16 121.fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是()。 A.字符串读入后不会自动加入'\\0' B.fp是file类型的指针 C.fgets函数将从文件中最多读入n-1个字符 D.fgets函数将从文件中最多读入n个字符 122.C语言中的文件类型只有()。 A.索引文件和文本文件两种 B.ASCII文件和二进制文件两种 C.文本文件一种 D.二进制文件一种 123.C语言中,文件由()。 A.记录组成 B.由数据行组成 C.由数据块组成 D.由字符(字节)序列组成 124.C语言中的文件的存储方式有()。 A.只能顺序存取 B.只能随机存取(或直接存取) C.可以顺序存取,也可随机存取 D.只能从文件的开头进行存取 125.下列程序的输出结果是()。 main() { int x=1,y=0,a=0,b=0; switch(x) - 12 - { case 1:switch(y) { case 0:a++;break; case 1:b++;break; } case 2:a++;b++;break; case 3:a++;b++;break; } printf(\} A.a=1,b=0 B.a=2,b=1 C.a=1,b=1 D.a=2,b=2 126.设j和k都是int类型,则下面的for循环语句()。 for(j=0,k=0;j<=9&&k!=876;j++) scanf(\ A.最多执行10次 B.最多执行9次 C.是无限循环 D.循环体一次也不执行 127.以下程序段 char *alp[]={\ puts(alp[1]);的输出结果是 A.A B.B C.D D.DEF 128.下列标识符中,不合法的C语言用户自定义标识符是()。 A.printf B.enum C._(下划线) D.sin 129.以下字符中不是转义字符的是()。 A.'\\a' B.'\\b' C.'\\c' D.'\\\\' 130.下列程序段的输出结果为()。 float k=0.8567; printf(\ A.0085.6%% B.85.70% C.85.60% D.0.857 131.下列程序段的输出结果为()。 float x=213.82631; printf(\ A.213.82 B.213.83 C.213 D.3.8 132.C语言的注释定界符是()。 A.{ } B.[ ] C.\\* *\\ D./* */ 133.下列字符序列中,是C语言关键字的是()。 A.sizeof B.include C.scanf D.sqrt 134.double x;scanf(\不可以赋值给x变量的常量是()。 A.123 B.100000 C.'A' D.\135.C语言能正确处理的指数是()。 A.8.50E+42 B.e-32 C.1.23E+11 D.4.5e-5.6 136.下列运算符中是C语言关系运算符的是()。 A.~ B.! C.& D.!= 137.以下常量中,能够代表逻辑“真”值的常量是()。 A.'\\0' B.0 C.'0' D.NULL 138.下列程序段的输出结果为()。 int x=3,y=2; - 13 - printf(\ A.1 B.7 C.3 D.5 139.下列程序段的输出结果为()。 int a=7,b=9,t; t=a*=a>b?a:b; printf(\ A.7 B.9 C.63 D.49 140.下列表达式中,可作为C合法表达式的是()。 A.[3,2,1,0] B.(3,2,1,0) C.3=2=1=0 D.3/2/1/0 141.以下语句中,不能实现回车换行的是()。 A.printf(\ B.putchar(\ C.fprintf(stdout,\ D.fwrite(\142.执行以下程序段后,输出结果和a的值是()。 int a=10; printf(\ A.10 和 10 B.10 和 11 C.11 和 10 D.11 和 11 143.以下语句中,循环次数不为10次的语句是()。 A.for(i=1;i<10;i++); B.i=1;do{i++;}while(i<=10); C.i=10;while(i>0){--i;} D.i=1;m:if(i<=10){i++;goto m;} 144.以下程序段的输出结果为()。 for(i=4;i>1;i--) for(j=1;j A.无 B.###### C.# D.### 145.以下程序段中,能够正确地执行循环的是()。 for(i=1;i>10;i++) static int a; while(a) int s=6; do s-=2; while(s); int s=6; m:if(s<100) exit(0); else s-=2; goto m: 146.int a=1,b=2,c=3; if(a>b)a=b; if(a>c)a=c; 则a的值为()。 A.1 B.2 C.3 D.不一定 147.int a=3,b=2,c=1; - 14 - if(a>b>c)a=b; else a=c; 则a的值为()。 A.3 B.2 C.1 D.0 148.求平方根函数的函数名为()。 A.cos B.abs C.pow D.sqrt 149.while(fabs(t)<1e-5)if(!s/10)break;循环结束的条件是()。 A.t>=1e-5&&t<=-1e-5&&s>-10&&s<10 B.fabs(t)<1e-5&&!s/10 C.fabs(t)<1e-5 D.s/10==0 150.int a[10];合法的数组元素的最小下标值为()。 A.10 B.9 C.1 D.0 151.char a[10];不能将字符串\存储在数组中的是()。 A.strcpy(a,\ B.a[0]=0;strcat(a,\C.a=\ D.int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0; 152.int i,j,a[2][3];按照数组a的元素在内存的排列次序,不能将数1,2,3,4,5,6存入a数组的是()。 A.for(i=0;i<2;i++)for(j=0;j<3;j++)a[i][j]=i*3+j+1; B.for(i=0;i<3;i++)for(j=0;j<2;j++)a[j][i]=j*3+i+1; C.for(i=0;i<6;i++)a[i/3][i%3]=i+1; D.for(i=1;i<=6;i++)a[i][i]=i; 153.static char str[10]=\数组元素个数为()。 A.5 B.6 C.9 D.10 154.若char a[10];已正确定义,以下语句中不能从键盘上给a数组的所有元素输入值的语句是()。 A.gets(a); B.scanf(\C.for(i=0;i<10;i++)a[i]=getchar(); D.a=getchar(); 155.char a[]=\输出前5个字符的语句是()。 A.printf(\ B.puts(a); C.printf(\ D.a[5*2]=0;puts(a); 156.int a[10]; 给数组a的所有元素分别赋值为1、2、3、??的语句是()。 A.for(i=1;i<11;i++)a[i]=i; B.for(i=1;i<11;i++)a[i-1]=i; C.for(i=1;i<11;i++)a[i+1]=i; D.for(i=1;i<11;i++)a[0]=1; 157.以下程序段的输出结果为()。 char c[]=\int i=0; do ;while(c[i++]!='\\0');printf(\ A.abc B.ab C.2 D.3 158.char a1[]=\将a1串连接到a2串后面的语句是()。 - 15 -