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

A.x=3.600000,i=4 B.x=3,i=3 C.x=3.600000,i=3 D.x=3 i=3.600000 62.经过以下语句定义后,表达式z+=x>y?++x:++y的值为()。 int x=1,y=2,z=3;

A.2 B.3 C.6 D.5 63.以下程序的运行结果是()。 main() {

int i=1,sum=0;

while(i<10) sum=sum+1;i++; printf(\}

A.i=10,sum=9 B.i=9,sum=9 C.i=2,sum=1 D.运行出现错误 64.以下程序的运行结果是()。 main() { int n;

for(n=1;n<=10;n++) {

if(n%3==0) continue; printf(\ } }

A.12457810 B.369 C.12 D.1234567890

65.在C语言中,if语句后的一对原括号中,用以决定分支的流程的表达式()。 A.只能用逻辑表达式 B.只能用关系表达式

C.只能用逻辑表达式或关系表达式 D.可用任意表达式

66.在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的表达式是()。 A.(!E==0) B.(E>0||E<0) C.(E==0) D.(E!=0) 67.假定所有变量均已正确定义,下列程序段运行后x的值是()。 k1=1; k2=2; k3=3; x=15;

if(!k1) x--;

else if(k2) x=4; else x=3;

A.14 B.4 C.15 D.3 68.执行下列语句后的输出为()。 int j=-1;

if(j<=1) printf(\ else printf(\

A.**** B.%%%% C.%%%%c D.有错,执行不正确 69.下列程序的输出结果是()。

- 6 -

main()

{ int x=1,y=0,a=0,b=0; switch(x) {

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

70.在C语言中,为了结束由while语句构成的循环,while后一对圆括号中表达式的值应该为()。

A.0 B.1 C.TRUE D.非0 71.下列程序的输出为()。 main()

{ int y=10; while(y--);

printf(\ }

A.y=0 B.while构成无限循环 C.y=1 D.y=-1 72.C语言的if语句嵌套时,if与else的配对关系是()。 A.每个else总是与它上面的最近的if配对 B.每个else总是与最外层的if配对 C.每个else与if的配对是任意的 D.每个else总是与它上面的if配对

73.设j和k都是int类型,则for循环语句 for(j=0,k=-1;k=1;j++,k++) printf(\()。 A.循环结束的条件不合法 B.是无限循环

C.循环体一次也不执行 D.循环体只执行一次

74.下列数组说明中,正确的是()。

A.int array[][4]; B.int array[][]; C.int array[][][5]; D.int array[3][]; 75.下列数组说明中,正确的是()。 A.static char str[]=\B.static char str[]; str=\

C.static char str1[5],str2[]={\

D.static char str1[],str2[];str2={\76.下列定义数组的语句中正确的是()。

- 7 -

A.#define size 10 char str1[size],str2[size+2]; B.char str[]; C.int num['10'];

D.int n=5; int a[n][n+2];

77.下列定义数组的语句中不正确的是()。 A.static int a[2][3]={1,2,3,4,5,6}; B.static int a[2][3]={{1},{4,5}}; C.static int a[][3]={{1},{4}};

D.static int a[][]={{1,2,3},{4,5,6}}; 78.下列语句中,不正确的是()。 A.static char a[2]={1,2}; B.static int a[2]={'1','2'}; C.static char a[2]={'1','2','3'}; D.static char a[2]={'1'};

79.若输入ab,程序运行结果为()。 main()

{ static char a[3]; scanf(\

printf(\ }

A.a,b B.a, C.b, D.程序出错 80.下列说法不正确的是()。

A.主函数main中定义的变量在整个文件或程序中有效 B.不同函数中,可以使用相同名字的变量 C.形式参数是局部变量

D.在一个函数内部,可以在复合语句中定义变量,这些变量只在复合语句中有效 81.关于return语句,下列正确的说法是()。 A.不能在主函数中出现且在其他函数中均可出现 B.必须在每个函数中出现

C.可以在同一个函数中出现多次

D.只能在除主函数之外的函数中出现一次

82.在C语言的函数中,下列正确的说法是()。 A.必须有形参

B.形参必须是变量名 C.可以有也可以没有形参 D.数组名不能作形参 83.在C语言程序中()。

A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和函数调用均可以嵌套 D.函数的定义和函数调用不可以嵌套 84.C语言执行程序的开始执行点是()。 A.程序中第一条可以执行语言 B.程序中第一个函数

- 8 -

C.程序中的main函数

D.包含文件中的第一个函数

85.C语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为()。 A.void B.double C.int D.char 86.C语言程序中,当调用函数时()。 A.实参和形参各占一个独立的存储单元 B.实参和形参可以共用存储单元

C.可以由用户指定是否共用存储单元

D.计算机系统自动确定是否共用存储单元

87.数组名作为实参数传递给函数时,数组名被处理为()。 A.该数组的长度 B.该数组的元素个数 C.该数组的首地址 D.该数组中各元素的值 88.以下描述中,正确的是()。

A.预处理是指完成宏替换和文件包含中指定的文件的调用 B.预处理指令只能位于C源文件的开始

C.C源程序中凡是行首以#标识的控制行都是预处理指令

D.预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备

89.以下对C语言函数的描述中,正确的是()。 A.C程序必须由一个或一个以上的函数组成 B.C函数既可以嵌套定义又可以递归调用 C.函数必须有返回值,否则不能使用函数

D.C程序中有调用关系的所有函数必须放在同一个程序文件中 90.以下函数调用语句中实参的个数是()。 exce((v1,v2),(v3,v4,v5),v6);

A.3 B.4 C.5 D.6 91.以下函数调用语句中实参的个数是()。 func((e1,e2),(e3,e4,e5));

A.2 B.3 C.5 D.语法错误 92.C语言中函数调用的方式有()。 A.一种:函数调用作为语句

B.一种:函数调用作为函数表达式

C.两种:函数调用作为语句或函数表达式

D.三种:函数调用作为语句、函数表达式或函数参数 93.执行下面程序后,输出结果是()。 main()

{ a=45,b=27,c=0; c=max(a,b); printf(\}

int max(int x,int y) { int z;

if(x>y) z=x; else z=y;

- 9 -

return(z); }

A.45 B.27 C.18 D.72 94.以下程序的输出结果为()。 main()

{int a=1,b=2,c=3,d=4,e=5;

printf(\ }

int func(int x,int y) {

return(x+y); }

A.15 B.13 C.9 D.函数调用出错 95.下列定义不正确的是()。 A.#define PI 3.141592 B.#define S 345

C.int max(int x,int y); { } D.static char c;

96.下列程序运行结果为: #define P 3

#define S(a) P*a*a main() {int ar; ar=S(3+5);

printf(\ }

A.192 B.29 C.27 D.25

97.已知p,p1为整型指针变量,a为整型数组名,j为整型变量,下列赋值语句中不正确的是()。

A.p=&j,p=p1; B.p=a; C.p=&a[j]; D.p=10;

98.经过下列的语句 int j,a[10],*p=a;定义后,下列语句中合法的是()。 A.p=p+2; B.p=a[5]; C.p=a[2]+2; D.p=&(j+2); 99.两个指针变量不可以()。

A.相加 B.比较 C.相减 D.指向同一地址 100.若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是()。 A.int p=&x; B.int *p=x; C.int *p=&x; D.*p=*x; 101.关于指针概念说法不正确的是()。 A.一个指针变量只能指向同一类型变量 B.一个变量的地址称为该变量的指针

C.只有同一类型变量的地址才能放到指向该类型变量的指针变量之中 D.指针变量可以由整数赋值,不能用浮点数赋值 102.设有说明int (*ptr)[M];其中标识符ptr是()。 A.M个指向整型变量的指针

B.指向M个整型变量的函数指针

- 10 -