C语言题库及答案(选择题) 下载本文

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 -