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

内容发布更新时间 : 2024/11/18 20:01:19星期一 下面是文章的全部内容请认真阅读。

m=(w

A.4 B.3 C.5 D.2 392.C语言的switch语句中case后 A.只能为常量

B.只能为常量或常量表达式

C.可为常量或表达式或有确定值的变量及表达式 D.可为任何量或表达式

393.C语言的if语句中,用作判断的表达式为 A.任意表达式 B.逻辑表达式 C.关系表达式 D.算术表达式

394.C 语言程序的三种基本结构是顺序结构、选择结构和______结构. A.循环 B.递归 C.转移 D.嵌套

395.若变量已正确定义且 k 的值是 4,计算表达式 ( j =4, k--) 后,j和k的值为 A.j=3, k=3 B.j=3, k=4 C.j=4, k=4 D.j=4, k=3 396.下列语句定义pf为指向float类型变量f的指针,_____是正确的. A.float f, *pf = f; B.float f, *pf = &f; C.float *pf = &f, f; D.float f, pf

397.设变量定义为\执行下列语句时,输入_____,则a和b的值都是10. scanf(\A.10 10 B.10, 10

C.a=10 b=10 D.a=10, b=10

398.C语言源程序名的后缀是

A..exe B..c C..obj D..cp

399.以下关于long、int和short类型数据占用内存大小的叙述中正确的是 A.均占4个字节

B.根据数据的大小来决定所占内存的字节数 C.由用户自己定义

D.由C语言编译系统决定

400.若变量均已正确定义并赋值,以下合法的C语言赋值语句是

A.x=n/2.5; B.x==5; C.x+n=I; D.5=x=4+1;

401.已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf(\后,输出结果是

A.A,B B.A,68 C.65,66 D.65,68 402.以下叙述中错误的是

A.用户所定义的标识符允许使用关键字

B.用户所定义的标识符应尽量做到\见名知意\C.用户所定义的标识符必须以字母或下划线开头 D.用户定义的标识符中,大、小写字母代表不同标识

- 37 -

403.以下叙述中错误的是

A.可以通过typedef增加新的类型

B.可以用typedef将已存在的类型用一个新的名字来代表 C.用typedef定义新的类型名后,原有类型名仍有效

D.用typedef可以为各种类型起别名,但不能为变量起别名 404.下列( )表达式的值为真,其中a=5;b=8;c=10;d=0

A.a*2>8+2 B.a&&d C.(a*2-c)||d D.a-b

406.从循环体内某一层跳出,继续执行循环外的语句是

A.break语句 B.return语句 C.continue语句 D.空语句 407.下列数据中属于\字符串常量\的是

A.ABC B.\ C.'ABC' D.'A'

408.C语言源程序文件经过C编译程序编译连接之后生成一个后缀为( )的可执行文件

A..c B..obj C..exe D..bas 409.若有定义int a[10],*p=a;,则p+5表示 A.元素a[5]的地址 B.元素a[5]的值 C.元素a[6]的地址 D.元素a[6]的值

410.定义结构体的关键字是

A.union B.enum C.struct D.typedef

411.为了避免在嵌套的条件语句if—else中产生二义性,C语言规定:else总与( )配对

A.缩排位置相同的if

B.其之前最近的未配对的if C.其之后最近的if D.同一行上的if

412.下列正确的标识符是

A._do B.6a C.%y D.a+b 413.设有说明:char c; int x; double z;则表达式c*x+z值的数据类型为 A.float B.int C.char D.double 414.下列说法中错误的是

A.一个数组只允许存储同种类型的变量

B.如果在对数组进行初始化时,给定的数据元素个数比数组元素个数少时,多余的数组元素会被自动初始化为最后一个给定元素的值 C.数组的名称其实是数组在内存中的首地址

D.当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改 415.判断两个字符串是否相等,正确的表达方式是

A.s1==s2 B.s1=s2 C.strcmp(s1,s2)==0 D.strcmp(s1,s2)=0

- 38 -

416.下面叙述中错误的是

A.主函数中定义的变量在整个程序中都是有效的 B.在其它函数中定义的变量在主函数中也不能使用 C.形式参数也是局部变量

D.复合语句中定义的变量只在该复合语句中有效 417.C语言函数内定义的局部变量的隐含存储类别是

A.static B.auto C.register D.extern 418.有定义:char*p1,*p2;则下列表达式中正确合理的是

A.p1/=5 B.p1*=p2 C.p1=&p2 D.p1+=5 419.若int a=2,则执行完表达式a-=a+=a*a后,a的值是

A.-8 B.-4 C.-2 D.0

420.算术运算符、赋值运算符和关系运算符的运算优先级按从高到低顺序依次为 A.算术运算、赋值运算、关系运算 B.关系运算、赋值运算、算术运算 C.算术运算、关系运算、赋值运算 D.关系运算、算术运算、赋值运算 421.以下程序的执行结果是_______. main()

{ int num = 0;

while( num <= 2 ) { num++; printf( \ }

A.0,1,2 B.1,2, C.1,2,3, D.1,2,3,4, 422.以下程序的执行结果是________. main()

{ int w = 1, x = 2, y = 3, z = 4; w =( w < x ) ? x : w; w =( w < y ) ? y : w;

w =( w < z ) ? z : w; printf( \

A.1 B.2 C.3 D.4 423.以下程序的输出结果是________. void fun(int a, int b, int c) { a=456; b=567; c=678; } main()

{ int x=10, y=20, z=30; fun(x, y, z);

printf(\

A.30,20,10 B.10,20,30 C.456567678 D.678567456 424.若x=2,y=3则x||y的结果是

A.0 B.1 C.2 D.3 425.C语言中,switch后的括号内表达式的值可以是 A.只能为整型

B.只能为整型,字符型,枚举型 C.只能为整型和字符型 D.任何类型

- 39 -

426.下面叙述中正确的是

A.对于用户自己定义的函数,在使用前必须加以声明 B.声明函数时必须明确其参数类型和返回类型 C.函数可以返回一个值,也可以什么值也不返回

D.空函数在不完成任何操作,所以在程序设计中没有用处

427.对于定义,char *aa[2]={\选项中说法正确的是 A.aa数组元素的值分别是\和\

B.aa是指针变量,它指向含有两个数组元素的字符型一维数组

C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D.aa数组的两个元素中各自存放了字符'a'和'A'的地址 428.以下正确的字符串常量是

A.\ B.'abc' C.OlympicGames D.'A' 429.如果int a=2,b=3,c=0,下列描述正确的是 A.a>b!=c和a>(b!=c)的执行顺序是一样的 B.!a!=(b!=c)表达式的值为1 C.a||(b=c)执行后b的值为0 D.a&&b>c的结果为假

430.若有如下定义和语句,且0<=i<5,下面( )是对数值为3数组元素的引用 int a[]={1,2,3,4,5},*p,i; p=a;

A.*(a+2) B.a[p-3] C.p+2 D.a+3 431.字符串指针变量中存入的是

A.字符串 B.字符串的首地址 C.第一个字符 D.字符串变量 432.为表示关系x≥y≥z,应使用C语言表达式 A.(x>=y)&&(y>=z) B.(x>=y) AND (y>=z) C.(x>=y>=z) D.(x>=z)&(y>=z)

433.C语言源程序文件经过C编译程序编译后生成的目标文件的后缀为 A..c B..obj C..exe D..bas

434.若变量已正确定义,执行语句scanf(\时,___是正确的输入

A.2030,40 B.20 30 40 C.20, 30 40 D.20,30,40 435.C语言中while和do—while循环的主要区别是

A.While的循环控制条件比do—while的循环控制条件严格 B.do—while的循环体至少无条件执行一次 C.do—while允许从外部转到循环体内 D.do—while循环体不能是复合语句 436.main()

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

{ case 0: b++; case 1: a++;

case 2: a++;b++;}

- 40 -