《C语言程序设计》复习题(专升本) 一、填空题
1、关系操作的特点是操作。
2、按照软件测试的一般步骤,集成测试应在测试之后进行。 3、软件工程三要素包括方法、工具和过程,其中,支持软件开发的各个环节的控制和管理。
4、E-mail地址由用户和域名两部分组成,这两部分的分隔符为。 5、在二维表中,元组的不能再分成更小的数据项。
6、设变量a和b已正确定义并赋初值。请写出与a-=a+b等价的赋值表达式。
7、在DOS环境下,表示打印机的设备文件名为。 8、数据的逻辑结构有线性结构和两大类。
9、顺序存储方法是把逻辑上相邻的结点存储在物理位置的存储单元中。
10、一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的。
11.是C程序的基本单位,一个C程序总是从开始执行。 12.C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或。
13.著名计算机科学家沃思提出的一个公式:数据结构+=程序 14.表达式 !!5的值是______。 15.下列程序段的输出结果是______。 printf(\"%xn\16.下列程序段的输出结果是_____。 int k, s;
for(k=0, s=0; k<10; k++) if (s>k) break ; else s += k;
printf(\"k=%d s=%d\17.下列程序段的输出结果是_____。 #define MIN(x,y) (x)<(y)?(x) : (y) printf(\"%d\
18.下列程序在运行时可能会出错,原因是______。 # include void main( )
{ char *s; gets(s); puts(s); } 19. 表达式1<0<5的值是。 20. 表达式 ~(10>>1^~5) 的值是。 二、选择题
1、以下叙述中正确的是 A. C语言比其他语言高级
B. C语言可以不用编译就能被计算机识别执行
C. C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D. C语言出现的最晚,具有其他语言的一切优点 2、C语言中用于结构化程序设计的三种基本结构是 A.顺序结构、选择结构、循环结构 B. if、switch、break C. for、while、do-while D. if、for、continue 3、在一个C程序中
A.main函数必须出现在所有函数之前 B. main函数可以在任何地方出现 C. main函数必须出现在所有函数之后 D. main函数必须出现在固定位置 4、下列叙述中正确的是
A.C语言中既有逻辑类型也有集合类型 B. C语言中没有逻辑类型但有集合类型
C. C语言中有逻辑类型但没有集合类型 D. C语言中既没有逻辑类型也没有集合类型 5、下列关于C语言用户标识符的叙述中正确的是 A.用户标识符中可以出现在下划线和中划线(减号) B.用户标识符中不可以出现中划线,但可以出现下划线
C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D.用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头
6、以下叙述中正确的是 A.构成C程序的基本单位是函数 B.可以在一个函数中定义另一个函数 C.main()函数必须放在其他函数之前 D.C函数定义的格式是K&R格式 7、应用数据库的主要目的是 A.解决数据保密问题 B.解决数据完整性问题 C.解决数据共享问题 D.解决数据量大的问题 8、一个C语言程序是由 A.一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成
9、请选出可用作C语言用户标识符的是 A.void,define,WORD B.a3_b3,_123,IF3、 C.FOR,--abc,Case D.2a,Do,Sizeof
10、下列各数据类型不属于构造类型的是
A.枚举型 B.共用型 C.结构型 D.数组型
11、在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是
A.a=20000+20000; B.a=4000*10; C.a=30000+10000; D.a=4000L*10L
12、以下不正确的叙述是
A.在C程序中,逗号运算符的优先级最低 B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
13、sizeof(float)是 A.一个双精度型表达式 B.一个整型表达式 C.一种函数调用 D.一个不合法的表达式
14、若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为
A.4 B.16 C.32 D.52
15、设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是
A.p=1; B.*q=2; C.q=p; D.*p=5;
16、以下叙述中正确的是 A.C程序的基本组成单位是语句 B.C程序中的每一行只能写一条语句 C.简单C语句必须以分号结束 D.C语句必须在一行内写完 17、计算机能直接执行的程序是 A.源程序 B.目标程序 C.汇编程序 D.可执行程序
18、以下关于宏的叙述中正确的是 A.宏名必须用大写字母表示
B.宏定义必须位于源程序中所有语句之前 C.宏替换没有数据类型限制 D.宏调用比函数调用耗费时间 19、以下选项中正确的定义语句是 A.double a;b; B. double a=b=7 C.double a=7,b=7; D.double,a,b;
20、以下不能正确表示代数式2ab/cd 的C语言表达式是 A.2*a*b/c/d B.a*b/c/d*2 C.a/c/d*b*2 D.2*a*b/c*d
21、C源程序中不能表示的数制是
A.二进制 B.八进制 C.十进制 D.十六进制
22.检查软件产品是否符合需求定义的过程称为 A.确认测试 B.集成测试 C.验证测试 D.验收测试
23.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是
A.控制流 B.加工 C.数据存储 D.源和潭
24.若变量已正确定义为
int 型,要通过语句
scanf(〞%d,%d,%d〞,&a,&b,&c.给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是(u代表一个空格符.
A.uuu1,2,3<回车> B.1u2u3<回车> C.1,uuu2,uuu3<回车> D.1,2,3<回车> 25.有以下程序段 int a,b,c;
a=10;b=50;c=30; if(a>b) a=b,b=c,c=a;
printf(〞a=%d b=%d c=%d\\n〞,a,b,c); 程序的输出结果是
A.a=10 b=50 c=10 B. a=10 b=50 c=30
B.a=10 b=30 c=10 D.a=50 b=30 c=50 26、一个C语言程序是 A.一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成
27、一个C程序的执行是从
A.本程序的main函数开始,到main函数结束
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C.本程序的main函数开始,到本程序文件的最后一个函数结束 D.本程序文件的第一个函数开始,到本程序main函数结束 28、以下叙述不正确的是
A.一个C源程序可由一个或多个函数组成 B.一个C源程序必须包含一个main函数 C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句后面 29、以下能对一维数组a进行正确初始化的语句是 A.int a[10]=0,0,0,0,0); B.int a[10]={}; C.int a[]={0}; D.int a[10]={10*1};
30、以下正确的函数定义形式是 A.double fun(int x,int y) B.double fun(int x;int y) C.double fun(int x,int y); D.double fun(int x,y); 三、判断题
1.在C语言中,各种类型的整型数据在内存中都占2个字节。 2. 表达式 (j=3, j++) 的值是4。
3.格式字符%e以指数形式输出实数数字部分小数位数7位。 4.char c[6]=\"abcde\"; printf(\"%3s\表示输出的字段的宽度为3位,如果被输出的数据的位数大于3,只输出3位数。
5.设d=1,e=2,f=3,则逻辑表达式!(d+e)+f&&e+f*2的值为0。 6.已知a=1,b=2,c=3,d=4,则条件表达式a>b?a:(c>d?c:d)的值为4。
7.已知a=3,b=4,c=5.则逻辑表达式a+b>c && b==c值为0。 8.do-while循环由do开始,while结束,循环体可能一次也不做。 9.对于for(表达式1;表达式2;表达式3)语句来说,continue语句意味着转去执行表达式2。
10.在do-while循环中,任何情况下都不能省略while。 11.对静态变量的初始化不是在编译阶段完成的。 12.定义 int x[5],n;则x=x+n;或x++;都是正确的。
13.语句 char ch[12]={\"C Program\与语句 char ch[ ]=\"C Program\";具有不同的赋初值功能。
14.数组名作为函数调用时的实参,实际上传递给形参的是数组第一个元素的值。
15.变量根据其作用域的范围可以分作局部变量和全局变量。 16.当变量的存储类型定义缺省时,系统默认为变量的存储类型为auto类型,分配在静态区。
17.若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。
18.for循环的三个表达式都可以省略。
19.continue语句对于while和do-while循环来说,意味着转去计算While表达式。
20.在打开文件时,必须说明文件的使用方式,\"wb+\"表示以读/写方式打开一个二进制文件。
四、程序填空
1、输入a、b、c三个值,输出其中最大者。 main(){ int a, b, c,max;
print(\"请输入三个数a,b,b:\\n\"); scanf(\"%d,%d,%d\max=a;
if(max max=b; if(max c) max=c;
printf(\"最大数为:%d\}
2、求1!+2!+…+20!的值。 main(){ float s=0,t=1; int n;
for (n=1;n<=20; ){ t=t n s=s+t; }
print(\"1!+2!++20!=%e\\n\}
3.以下程序的功能是输出杨辉三角形前10行,请在下划线处填上正确的内容,使程序能正确运行。
#include #define N 11 main() {int i,j,a[N][N];
for(i=1;i a[i][i]= ; } for(i=3;i 4.以下程序的功能是利用函数求100-200间素数(质数)的个数,请在下划线处填上正确的语句,使程序能正确运行。 #include int isprime(int n) { int i,f; f=1; for(i=2;i<=\"\" p=\"\"> if( ) {f=0; i=n; } return(f); } main() {int i=100,n=0; for(;i<200;i++) if( )n++; printf(\"Numbers of prime:%d\} 五、程序设计题 1、一球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少m?第10次反弹多高? 2、给出一个不多于5位的正整数,要求①求出它是几位数②分别打印出每一位数③逆序打印此数据。 3、输入一个数,输出这个数的质因子乘积的形式。例如输入72后,输出:72=2*2*2*3*3。 4、验证一个数是否为素数。 参考答案 一、填空题 1、集合 2、单元 3、过程 4、@ 5、分量 6、a=-b 7、PRN或LPT1或LPT2 8、非线性 9、相邻 10、可重用性 11、主函数 12、下划线 13、算法 14、1 15、12 16、k=4 s=6 17、15 18、指针变量s未赋初值 19、1 20.0 二、 1-5 CABDB 6-10 ACBBA 11-15 DDBCD 16-20 CDCCD 21-25AAABA 26-30 BADCA 三、 1-5 FFFFF 6-10 TTFFT 11-15 FFFFT 16-20 FFTTF 四、略 五、略
因篇幅问题不能全部显示,请点此查看更多更全内容