1、C语言程序设计习题第一章 C 语言概述一、选择题C语言源程序名的后缀是 A).exe B).C C).obj D).cp答案:B能将高级语言编写的源程序转换为目标程序的软件是A)编辑程序 B)编译程序 C)解释程序 D)连接程序答案:B以下叙述中正确的是A)C 程序中注释部分可以出现在程序中任意合适的地方B)花括号“和“只能作为函数体的定界符C)构成 C程序的基本单位是函数,所有函数名都可以由用户命名D)分号是 C语句之间的分隔符,不是语句的一部分答案:A以下叙述正确的是A)C 语言比其他语言高级 B)C 语言可以不用编译就能被计算机识别执行C)C 语言以接近英语国家的自然语言和数学语言作为语
2、言的表达形式D)C 语言出现的最晚、具有其他语言的一切优点答案:C在一个 C语言程序中A)main 函数必须出现在所有函数之前B)main 函数可以在任何地方出现C)main 函数必须出现在所有函数之后D)main 函数必须出现在固定位置答案:B以下叙述中正确的是A)构成 C程序的基本单位是函数 B)可以在一个函数中定义另一个函数 C)main()函数必须放在其它函数之前D)所有被调用的函数一定要在调用之前进行定义答案:A下列叙述中错误的是 A)计算机不能直接执行用 C语言编写的源程序B)C 程序经 C编译后,生成后缀为.obj 的文件是一个二进制文件C)后缀为.obj 的文件,经连接程序生成
3、后缀为.exe 的文件是一个二进制文件D)后缀为.obj 和.exe 的二进制文件都可以直接运行答案:D第二章 程序的灵魂算法一、选择题算法中,对需要执行的每一步操作,必须给出清楚、严格的规定,这属于算法的 A)正当性 B)可行性 C)确定性 D)有穷性答案:CC语言中用于结构化程序设计的三种基本结构是A)顺序结构、选择结构、循环结构 B)if、switch、breakC)for、while、do-whileD)if、for、continue答案:A以下叙述中错误的是 A)C 语言是一种结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单
4、问题D)结构化程序设计提倡模块化的设计方法答案:C第三章 数据类型、运算符与表达式一、选择题下列叙述中正确的是A)C 语言中既有逻辑类型也有集合类型B)C 语言中没有逻辑类型但有集合类型 C)C 语言中有逻辑类型但没有集合类型D)C 语言中既没有逻辑类型也没有集合类型答案:D下列关于 C语言用户标识符的叙述中正确的是A)用户标识符中可以出现下划线和中划线(减号)B)用户标识符中不可以出现中划线,但可以出现下划线C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头答案:B按照 C语言规定的用户标识符命名规则,不能出现在标
5、识符中的是 A)大写字母 B)连接符 C)数字字符 D)下划线答案:B以下不能定义为用户标识符的是A)scanf B)Void C)_3com_ D)int答案:D以下不合法的用户标识符是A)j2_KEY B)Double C)4d D)_8_答案:C以下选项中合法的用户标识符是 A)long B)_2Test C)3Dmax D)A.dat 答案:B可在 C程序中用做用户标识符的一组标识符是 A)and B)Date C)Hi D)case _2007 y-m-d Dr.Tom Bigl答案:A以下不合法的数值常量是A)011 B)1e1 C)8.0E0.5 D)0xabcd答案:C以下选项
6、中,合法的一组 C语言数值常量是 A)028 B)12. C).177 D)0x8A .5e-3 0Xa23 4c1.5 10,000 -0xf 4.5e0 0abc 3.e5答案:B以下关于 long、int 和 short类型数据占用内存大小的叙述中正确的是A)均占 4个字节 B)根据数据的大小来决定所占内存的字节数 C)由用户自己定义 D)由 C语言编译系统决定答案:D以下选项中可作为 C语言合法整数的是A)10110B B)0386 C)0Xffa D)x2a2答案:C以下选项中合法的实型常数是A)5E2.0 B)E-3 C).2E0 D)1.3E答案:C有以下程序main() int
7、 a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf(“%d %d %3.1f %3.1fn“,a,c,f,x);程序运行后的输出结果是A)1 65 1 6.5 B)1 65 1.5 6.5C)1 65 1.0 6.5 D)2 65 1.5 6.5答案:B设变量 x为 float型且已赋值,则以下语句中能将 x中的数值保留到小数点后两位,并将第三位四舍五入的是A)x=x*100+0.5/100.0; B)x=(x*100+0.5)/100.0;C)x=(int)(x*100+0.5)/100.0; D)x=(x/100+0.5
8、)*100.0;答案:C以下不合法的字符常量是A)018 B)“ C) D)xcc答案:A已知大写字母 A的 ASCII码是 65,小写字母 a的 ASCII码是 97,则用八进制表示的字符常量101是A)字符 A B)字符 a C)字符 e D)非法的常量 答案:A以下正确的字符串常量是 A)“ B)abc C)OlympicGames D)“答案:D已定义 c为字符型变量,则下列语句中正确的是A)c=97; B)c=“97“; C)c=97; D)c=“a“;答案:C已定义 ch为字符型变量,以下赋值语句中错误的是A)ch=; B)ch=62+3; C)ch=NULL; D)ch=xaa;
9、答案:A已知字符A的 ASC代码值是 65,字符变量 c1的值是A,c2 的值是D。执行语句 printf(“%d,%d“,c1,c2-2);后,输出结果是 A)A,B B)A,68 C)65,66 D)65,68答案:C下列关于单目运算符+、-的叙述中正确的是A)它们的运算对象可以是任何变量和常量B)它们的运算对象可以是 char型变量和 int型变量,但不能是float型变量C)它们的运算对象可以是 int型变量,但不能是 double型变量和float型变量D)它们的运算对象可以是 char型变量、int 型变量和 float型变量答案:D以下选项中,与 k=n+完全等价的表达式是A)k
10、=n,n=n+1 B)n=n+1,k=n C)k=+n D)k+=n+1答案:A设有定义:int k=0; ,以下选项的四个表达式中与其他三个表达式的值不相同的是 A)k+ B)k+=1 C)+k D)k+1答案:A有以下程序main() int i=10,j=1;printf(“%d,%dn“,i-,+j);执行后输出的结果是A)9,2 B)10,2 C)9,1 D)10,1答案:B以下选项中非法的表达式是A)00;答案:C若变量均已正确定义并赋值,以下合法的 C语言赋值语句是 A)x=y=5; B)x=n%2.5; C)x+n=I; D)x=5=4+1;答案:A有定义语句:int x, y
11、;,若要通过 scanf(“%d,%d“,语句使变量 x得到数值 11,变量 y得到数值 12,下面四组输入形式中,错误的是A)11 12 B)11, 12C)11,12 D)11,12答案:A设变量均已正确定义,若要通过 scanf(“%d%c%d%c”,语句为变量 a1和 a2赋数值 10和 20,为变量 c1和 c2赋字符 X和 Y。以下所示的输入形式正确的是(注:代表空格字符) A)10X20Y回车 B)10X20Y回车 C)10X回车 D)10X回车20Y回车 20Y回车答案:D已知 i、j、k 为 int型变量,若从键盘输入:1,2,3,使 i的值为 1、j 的值为 2、k 的值为
12、 3,以下选项中正确的输入语句是A)scanf(“%2d%2d%2d“, B)scanf(“%d %d %d“, C)scanf(“%d,%d,%d“, D)scanf(“i=%d,j=%d,k=%d“,答案:C有以下程序段int m=0,n=0; char c=a;scanf(“%d%c%d“,printf(“%d,%c,%dn“,m,c,n);若从键盘上输入:10A10,则输出结果是: A)10,A,10 B)10,a,10 C)10,a,0 D)10,A,0答案:A设有定义:long x=-123456L;,则以下能够正确输出变量 x值的语句是A)printf(“x=%dn“,x); B
13、)printf(“x=%ldn“,x); C)printf(“x=%8dLn“,x); D)printf(“x=%LDn“,x);答案:B若有以下程序: main() int k=2,i=2,m; m=(k+=i*=k); printf(“%d,%dn“,m,i); 执行后的输出结果是A)8,6 B)8,3 C)6,4 D)7,4答案:C若有以下程序段(n 所赋的是八进制数)int m=32767,n=032767;printf(“%d,%on“,m,n);执行后输出结果是A)32767,32767 B)32767,032767C)32767,77777 D)32767,077777答案:A若
14、有以下程序段int m=0xabc,n=0xabc;m-=n;printf(“%Xn“,m);执行后输出结果是A)0X0 B)0x0 C)0 D)0XABC答案:C有以下程序,其中%u 表示按无符号整数输出main() unsigned int x=0xFFFF;/* x的初值为十六进制数 */printf(“%un“,x);程序运行后的输出结果是 A)-1 B)65535 C)32767 D)0XFFFF答案:B二、填空题执行以下程序时输入 1234567,则输出结果是【 】 。#include main() int a=1,b; scanf(“%2d%2d“, printf(“%d %dn
15、“,a,b); 答案:12 34若有程序main() int i,j;scanf(“i=%d,j=%d“,printf(“i=%d,j=%dn “,i,j);要求给 i赋 10,给 j赋 20,则应该从键盘输入【 】 。答案:i=10,j=20第五章 选择结构程序设计一、选择题已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 ,程序前面已在命令行中包含 ctype.h文件,不能用于判断 c中的字符是否为大写字母的表达式是 A)isupper(c) B)Aa)|(m=abc)printf(“%dn“,d);else if(c-1=d)=1)printf(“%dn“,d+1
16、);else printf(“%dn“,d+2);执行后输出的结果是A)2 B)3 C)4 D)编译时有错,无结果答案:B设变量 x和 y均已正确定义并赋值,以下 if语句中,在编译时将产生错误信息的是 A)if(x+) B)if(xy C)if(xy) x- - else y+: D)if(y0y= 0 x=0-1 x0) y=1;else if(x=0) y=0;else y=-1; B)y=0;if(x0) y=1;else if(x=0) if(x0) y=1;else y=-1; D)if(x=0) if(x0) y=1;else y=0;else y=-1;答案:C有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为 3的是A)if (c main() int a,b,c,t1,t2; scanf(“%d%d%d“, t1=a0 ? p/10 : p%3);答案:3以下程序的运行结果是【 】 。main()int a=2,b=7,c=5;switch(a0) case 1:switch(b0) case 1:printf(“); break;case 2: printf(“!“); break;case 0: switch(c=5) case