c语言题库1 下载本文

C、C程序由函数组成 D、C程序由函数和过程组成 153、优先级最高的为(C)。(2分)

A、 && B、 ?: C、 != D、 || 154、假设所有变量均为整型,则表达式(a=2,b=5, a+b)的值是(A)(2分) A、 7 B、 8 C、 6 D、 2 155、以下选项中非法的表达式是 (D)(2分)

A、 0<=x<100 B、 i=j==0 C、 (char)(65+3) D、 x+1=x+1

156、若变量已正确说明为float类型,要通过语句scanf(\给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:(B)

A、 10<回车>22<回车>33<回车> B、 10.0,22.0,33.0<回车> C、 10.0<回车>22.0 33.0<回车> D、 10 22<回车>33<回车>

157、若有以下定义和语句:char c1='b',c2='e';printf(\则输出结果是(B) A、2,M B、3,E C、2,E D、输出项与对应的格式控制不一致,输出结果不确定

158、执行语句int x=5,a=0,b=0;if(x=a+b) printf(\后,结论是( D )。(2分)

A、有语法错,不能通过编译 B、能通过编译,但不能连接 C、输出**** D、输出 #### 159、设有int k=10;while (k=0) k=k-1;则下面描述中正确的是( C )。 (2分) A、while循环执行10次 B、循环是无限循环 C、循环体语句一次也不执行 D、循环体语句执行一次 160、下面有关for循环的正确描述是( D )。(2分) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体

D、for循环体语句中,可以包含多条语句,但要用花括号括起来

161、执行语句x=y=0; while (x<15) y++,x+=++y ;printf(“%d,%d”,y,x);的结果是( D )。(2分) A、20,7 B、6,12 C、20,8 D、8,20 A 、 9 B、-2 C、-1 D、8

163、C语言规定,数组名做实参时,它和对应形参之间的数据传递方式是( D )。(2分) A、用户指定传递方式 B、无传递 C、单向值传递 D、地址传递

164、若二维数组a有m列,则计算任一元素a[I][j]在数组中位置的公式为( D )。(2分) A、i*m+j B、j*m+I C、i*m+j-1 D、i*m+j+1

165、对以说明语句int a[10]={6,7,8,9,10};的正确理解是( B )。(2分) A、将5个初值依次赋给a[1]至a[5] B、将5个初值依次赋给a[0]至a[4] C、将5个初值依次赋给a[6]至a[10]

D、因为数组长度与初值的个数不同,所以此语句不正确

166、在C语言中,若对函数类型未加明显式说明,则函数的隐含类型是( C )类型。(2分) A、void B、double C、int D、char

167、程序int a[ ]={1,2,3,4,5,6,7,8,9,0,},*p; p=a; printf(“%d\\n”,*p+9);的输出结果是( C )。 A、0 B、1 C、10 D、9

168、设有说明语句“struct stu{ int a; float b;}stutype;”,则叙述不正确的是(C )(2分) A、stuct是结构体类型的关键字。 B、struct stu是用户定义的结构体类型。 C、stutype是用户定义的结构体类型名。 D、a和b都是结构体成员名。 169C语言程序的注释是(A)(2分)

162、a和b为int型变量,则执行a=1;b=10;do {b- =a;a++; } while (b--<0);后b的值为( D )。

25

A、由\开头,\结尾 B、由\开头,\结尾 C、由\开头 D、由\或\开头 170、下列关于赋值运算符的表述中,错误的是(B)(2分)

A、赋值运算符优先级高于逗号运算符 B、赋值运算符的结合性是从左至右 C、赋值运算符是双目运算符 D、赋值运算符可在表达式中连用 171、以下选项中正确的实型常量是(B)(2分) A、0 B、3.1415 C、0.03x10 D、.32

172、下列表达式中,( B )不满足“当x的值为偶数时值为真,为奇数时值为假”的要求。(2分)

A、x%2==0 B、!x%2!=0 C、(x/2*2-x)==0 D、!(x%2)

173、设有int k=10;while (k=0) k=k-1;则下面描述中正确的是( C )。 (2分) A、while循环执行10次 B、循环是无限循环 C、循环体语句一次也不执行 D、循环体语句执行一次

174、若i、j均为整型变量,则for (i=0,j=-1;j=1;i++,j++) printf(“%d,%d\\n”,i,j); ( D )。 (2分)

A、循环体只执行一次 B、循环体一次也不执行 C、判断循环结束的条件不合法 D、是无限循环 175、以下描述正确的是( C )。(2分)

A、由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。

B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。

C、在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。 D、do-while循环中,根据情况可以省略while 176、以下对二维整形数组a的正确说明是( C )。

A、int a[3][]; B、float a(3,4); C、double a[1][4]; D、float a(3)(4) 177、以下能对二维整形数组a进行正确初始化的语句是( D )。 A、int a[2][3]={0}; B、int a[][3]={{1,2},{0}};

C、int a[2][3]={{1,2},{3,4},{5,6}}; D、int a[][3]={1,2,3,4,5,6};

178、在C语言中,一位数组的定义方式为:类型说明符 数组名( A )。(2分) A、[常量表达] B、整型表达式 C、[整型常量]或[整型表达式] D、[整型常量] 179、实际参数不能是(D )。(2分) A、常量 B、变量 C、表达式 D、不确定值

180、设有程序:int *var,ab; ab=10; var=&ab; ab+=*var+10;执行程序段后,ab值为( B )。 (2分)

A、40 B、30 C、20 D、10

181、已有定义“struct xy{int a; double b;}m;”,变量m的成员a的正确表示是(A )(2分) A、m.a B、m->a C、*m.a D、xy.a 182、以下叙述中正确的是(B)(2分)

A、C语言的源程序不必通过编译就可以直接运行

B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C、C源程序经编译形成的二进制代码可以直接运行 D、C语言中的函数不可以单独进行编译

183、以下所列的C语言常量中,错误的是(B)(2分) A、 0xFF B、 1.2e0.5 C、 2L D、 '\\72'

184、若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(A)(2分)

26

A、 2.500000 B、 2.750000 C、 3.500000 D、 0.000000

185、若执行以下语句:int a;float b,c;scanf(“-?O”, &a, &b, &c); printf(“\\na=%d,b=%f,c=%f\\n”,a, b, c);在键盘上从第一列开始,输入9876543210(此处表示Enter),则程序的输出结果是(C)(2分) A、a=98,b=765,c=4321 B、a=10,b=432,c=8765

C、a=98,b=765.000000,c=4321.000000 D、a=98,b=765.0,c=4321.0

186、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C)(2分)

A、scanf(\、scanf(\ C、scanf(\ D、scanf(\

187、若变量已正确定义,执行以下语句: x=5.16894; printf(“%f\\n”, (int)(x*1000+0.5)/(float)1000); 的输出结果是(D)

A、输出格式说明与输出项不匹配,输出无定值 B、5.17000 C、5.168000 D、5.169000 188、若

w,x,y,z,m

均为

int

型变量,则执行语句

w=1;x=2;y=3;z=4;

m=(w

189、设j为int型变量,则for(j=10;j>3;j--) {if (j%3) j--; --j;--j;printf(“%d ”,j); }的执行结果是( A )。 (2分)

A、7 4 B、4 7 C、5 6 D、1 3

190、程序 int i,sum; for(i=1;i<=3;sum++)sum+=i; printf(“%d\\n”,sum); 的执行结果是( C )。(2分)

A、6 B、3 C、不确定 D、0

191、不能正确为字符数组输入数据的是(A )。 (2分) A、char s[5]; scanf(\,&s); B、char s[5]; scanf(\,s); C、char s[5]; scanf(\,&s[0]); D、char s[5]; gets(s);

192、有说明:char *language[]={\VA\则表达式*language[1]>*language[2]比较的是( A )。(2分)

A、字符B和字符P B、字符串FORTRAN和字符串BASIC C、字符F和字符B D、字符串BASIC和字符串PASCAL 193、下面的函数是无参函数的是( A )。(2分)

A、main() B、int max(int x, int y) C、return(z) D、scanf(\194、以下正确的说法是(A )。(2分)

A、定义函数时,形参的类型说明可以放在函数体内 B、return后边的值不能为表达式 C、如果函数值的类型与返回值类型不一致,以函数值类型为准 D、如果形参与实参类型不一致,以实参类型为准

195、当说明一个共用体变量时系统分配给它的内存是(C )(2分) A、各成员所需内存量的总和。 B、第一个成员所需内存量。

C、成员中占内存量最大者所需的容量。 D、最后一个成员所需内存量。 196、下列正确定义一个文件指针pm的语句是(C ) A、FILE pm; B、file *pm; C、FILE *pm; D、file pm; 197、以下运算符中优先级最低的算符为(B)

A、&& B、 ?: C、!= D、|| 198、正确的标识符是: (D)

27

A、 ?a B、a=2 C、a.3 D、a_3 199、以下不是关键字的是(C)(2分) A、continue B、char C、If D、default

200、设有定义:int x=10,y=3,z;则执行语句printf(\后输出结果是(D) A、1 B、0 C、4 D、3

201、执行下列语句int a;printf(\后,a的值是(C)(2分) A、 65 B、 20 C、 15 D、 10

202、若w=1,x=2,y=3,z=4,则条件表达式w

203、设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为( B ) 。 A、1 B、2 C、 D、4

204、对于程序段 int k=0; while(k=1)k++; while 循环执行的次数是( A)。 (2分) A、无限次 B、有语法错,不能执行 C、一次也不执行 D、 执行1次

205、while构成的循环int ks=0; while (ks=2) ks++;执行的次数是( A )。 (2分) A、无限次 B、有语法错误,不能执行 C、一次也不执行 D、执行一次

206、若已定义char s[10];在下面表达式中不能表示s[1]的地址的是( B )。 (2分) A、s+1 B、s++ C、&s[0]+1 D、&s[1]

207、对于某个函数调用,不用给出被调用函数的原形的情况是( C )。(2分) A、被调用函数是无参函数 B、被调用函数是无返回值的函数 C、函数的定义在调用处之前 D、函获得的定义在别的程序文件中 208、变量的指针,其含义是指该变量的(B)。(2分) A、值 B、地址 C、名 D、一个标志

209、下列打开文件的方式中,对二进制文件操作的是( D) A、r B、a C、w+ D、rb+

210、在C语言中,逻辑表达式的操作数为非0是,则表示为(A) A、真 B、假 C、0 D、1

211、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)(2分) A、 6.500000 B、 6 C、 5.500000 D、 6.000000

212、若执行以下程序段: int a=0, b=0, c=0;c=(a-=a-5), (a=b, b+3); printf(“%d,%d,%d\\n”,a, b, c); 其输出结果是(B)(2分)

A、0,0,-10 B、0,0,5 C、-10,3,-10 D、3,3,-10

213、对于程序 int a,b; scanf (\正确的判断是( A )。(2分)

A、有语法错误不能通过编译 B、若输入4,5则输出5,6 C、若输入5,4则输出4,5 D、若输入5,4则输出5,5 214、下面有关for循环的正确描述是( D)。(2分) A、for循环只能用于循环次数已经确定的情况。 B、for循环是先执行循环体语句,后判断表达式。 C、在for循环中,不能用break语句跳出循环体。

D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来。 215、下列循环语句会进入死循环的是( C )。 (2分)

A、i=0; do { i++; }while(i = =100); B、for(i=0; i<100; i+=3.14); C、for(i=0; ; i+=2); D、k=1; do { k--;} while(k);

216、for(x=0,y=0;(y!=123)&&(x<4);x++);循环是( C )。(2分)

28