ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:32.81KB ,
资源ID:8470102      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8470102.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(德州学院二级C语言期末复习题.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

德州学院二级C语言期末复习题.docx

1、德州学院二级C语言期末复习题C语言练习题一、单项选择题1 以下选项中合法的标示符是( )A.1_1 B.1-1 C._11 D. 1_ _ 2 若有以下类型说明语句: char a; int b; float c; short int d; 则表达式(c*b+a)*d的结果类型是( )。 A.char B.int C.double D.float3 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为( )。A.算术运算、赋值运算、关系运算 B.关系运算、赋值运算、算术运算C.算术运算、关系运算、赋值运算 D.关系运算、算术运算、赋值运算4 多重if_else语句嵌套使用时,寻

2、找与else配套的if方法是( )。A.缩排位置相同的ifB.其上最近的ifC.下面最近的ifD.同行上的if5 有以下程序,其运行后的输出结果是( )。main()int x=1,y=2; x=x+y,y=x-y; x=x-y; printf(x=%d,y=%d n,z);A. 1 2 B. 1,2 C. 0,1 D. 2,16 有以下程序,其中%u表示按无符号整数输出main()unsigned short x=0xFFFF; printf(%un,x);程序运行后的输出结果是( )。A.-1 B.65535 C.32767 D.0xFFFF7 以下合法的c语言语句是( B )。A. x=

3、int(x+0.5); B. +k; C. a=b=0 D. a=1,8 下面有关for循环的正确描述是( D ) 。A. for循环只能用于循环次数已经确定的情况。B. for循环是先执行循环体语句,后判断表达式。C. 在for循环中,不能用break语句跳出循环体。D. for循环的循环体语句,可以包含多条语句,但必须用花括号括起来。9 有以下程序,其运行后的输出结果是( C )。main()int x=1,y=2,z; z= x/y; printf(%dn,z);A. 1/2 B. 0.5 C. 0 D. 110 下列对字符串的操作正确的是( C)。A. char c34=ABCD; B

4、. char c4=A,B,C,D;C. char c4;scanf(%s,c); D. char c4;c=ABCD;11 若有说明int a34;则对其数组元素的正确引用是(A )。A. a21+2 B. a(2)(3) C. a2,3 D. a3412 在C语言程序中,以下正确的描述是(A )。 A .函数的定义可以嵌套,但函数的调用不可以嵌套。B. 函数的定义不可以嵌套,但函数的调用可以嵌套。C. 函数的定义和函数的调用均不可以嵌套。D. 函数的定义和函数的调用均可以嵌套。13 执行下面程序的正确结果是( )。main()floata=1.9;switch(a)case0:printf

5、(0000);case1:printf(1111);case2:printf(2222);printf(%f,a);A. 1.900000 B. 111122221.900000C.22221.900000 D. 0000111122221.90000014 若用数组名作为函数调用的实参,传递给形参的是(A )。A. 数组的首地址 B. 数组第一个元素的值C. 数组中全部元素的值 D. 数组元素的个数15 以下叙述中错误的是( )A. 计算机不能直接执行用C语言编写的源程序。B. C程序经编译程序编译后,生成后缀为.obj的文件是一个二进制文件。C. 后缀为.obj的文件,经连接程序生成后缀为

6、.exe的文件是一个二进制文件。D. 后缀为.obj和.exe的二进制文件都可以直接运行。16 2. 执行以下程序段后,w的值为( )int w=A,x=14,y=15;w=(x|y)&(wx?w:zy?z:x的值是( )。 A. 4 B. 3 C. 2 D. 119 4. 若变量已正确定义,语句“if(ab) k=0; else k=1;”和( )等价。 A. k=(ab)?1:0; B. k=ab;C. k=a=b; D. a=b ? 0 : 1;20 若有定义:int x=5,*p=&x;,则语句printf(%dn,*p);的输出结果是( B )。 A. 随机值 B. 5 C. x的地

7、址 D. p的地址21 以下判断两个字符串相等的正确方法是( )。A.if(str1=str2) B.if(str1=str2)C.if(strcpy(str1,str2)=0) D. if(strcmp(str1,str2)=0)22 设变量已正确定义并赋值,以下正确的表达式是( ) 。A. int(6.3%2) B. x=z*5=3 C. i=j+5,+j D. k=20%3.023 有以下程序#include main() int i=5;do if (i%3=1)if (i%5=2) printf(*%d,i); break;i+; while (i!=0);printf(n); 程序

8、运行结果是( )A. *7 B. *3*5 C. *2*6 D. *524 有下列程序:void swap1(int c1 ,int c2 ) int t; t=c10; c10=c20; c20=t;void swap2(int *c1,int *c2) int t; t=*c1; *c1=*c2; *c2=t;main( ) int a2=1,2, b2=3,4; swap1(a,a+1); swap2(&b0,&b1); printf(%d %d %d %dn,a0,a1,b0,b1);程序运行后的输出结果是( )A. 1 2 3 4 B. 2 1 4 3 C. 2 3 4 1 D. 1

9、 3 2 425 若有定义int a=1,2,3,b3=1,2,3;,表达式a=b的结果是(A )。A. 不能比较 B. 结果为真 C. 结果不确定 D. 结果为假26 有定义:int a=4,b,*p=&b,*q=&a;,以下赋值语句中与b=a;语句等价的是( )。A. *p=*q; B. p=q; C. *p=&a; D. p=*q;27 有下列程序:void sum(int a ) a1=a0+a2;main( ) int a10=1,2,3,4,5,6,7,8,9,10; sum(&a2); printf(%dn,a2);程序运行后的输出结果是( )A. 6 B. 7 C. 3 D.

10、928 定义struct pint x;char y10; p1;,则下列正确的赋值是( C )。A. p1.y=sun B. p1-y=sun 29 C. strcpy(p1.y, sun) D. p1.strcpy(y, sun)30 若调用一个函数,且此函数中没有return语句,则正确的说法是( )。A.该函数没有返回值 B.返回若干个系统默认值C.能返回一个用户所希望的函数值D.返回一个不正确的值31 指针是一种( )。A. 标识符 B. 变量 C. 运算符 D. 内存地址32 有下列程序:main(int argc,char *argv ) int n=0,i; for(i=1;i

11、b?a:cd?c:dA. 1 B. 2 C. 4 D. 435 有以下程序,其运行后的输出结果是( C )。main()int x=1,y=2,z; z= x/y; printf(%dn,z); A. 1/2 B. 0.5 C. 0 D. 136 设变量已正确定义,以下不能统计出一行中输入字符个数的是( D )。A. n=0;while(ch=getchar()!=n) n+; B. n=0;while(getchar()!=n) n+;C. for(n=0;getchar()!=n;n+); D. n=0;for(ch=getchar(); ch!=n;n+);37 有以下定义:int a=

12、0,1,2,3,4;char c1=b,c2=1;则数值为3 的表达式是( B)。A. a2 B. e-c1 C. a4-c2 D. c2+138 有以下定义:char c1=abcdef;char c2=a,b,c,d,e,f;则正确的叙述是(C )。A. 数组c1和数组c2等价。 B. 数组c1和数组c2的长度相等。C. 数组c1的长度大于数组c2的长度。 D. 数组c1的长度小于数组c2的长度。39 C语言允许函数值类型缺省定义,此时该函数值隐含的类型是( B)。A. float型 B. int型C. long型 D. double型40 #include main()char p20=

13、a,b,c,d,q=”abc”,r=”abcde”;strcpy(p+strlen(q),r);strcat(p,q);printf(”%d %dn”,sizeof(p),strlen(p);程序运行后的输出结果是( )A. 20 9 B. 9 9 C. 20 11 D.11 1141 以下正确的说法是( )如果在一个函数中的复合语句中定义了一个变量,则该变量A. 只在该复合语句中有效 B. 在该函数中有效C. 在本程序范围内均有效 D. 为非法变量42 以下正确的函数形式是( )A. double fun (int x,int y) z=x+y; return z;B. fun (int x

14、,y); int z; return z;C. fun (x;y) int x,y; double z; z=x+y; return z;D. double fun (int x, int y) double z; z=x+y; return z;43 若有定义int a3=1,2,3,4,5,6;,下面( )能访问元素5。A. A4 B. a0+4 C. *a+4 D. *(&a00+4)44 若有char s10,*p=s;,则下面表达式正确的是( )A. s=p+s; B. p=s0+10; C. s2=p4; D. p=s0;45 定义union sint w,x,y,z;char c

15、6;,则sizeof(union s)=( )A. 2 B. 6 C. 8 D. 1446 C语言规定,函数返回值的类型是由( )。A. return语句中的表达式类型所决定。B.调用该函数时的主调函数类型所决定。C.调用该函数时系统临时决定。D.在定义该函数时所指定的函数类型所决定。47 设已有定义:int x;,则下列对指针变量p进行定义且赋初值的语句中正确的是( )。A. int *p=1024; B. int *p=(int)x; C. int p=&x; D.int *p=&x;48 有下列程序:float f1(float a) return a*a;float f2(float

16、b) return 3*b;main( ) float (*p1)(float),(*p2)(float),(*t)(float),y1,y2; p1=f1; p2=f2; y1=p2(p1(3.0); t=p1; p1=p2; p2=t; y2=p2(p1(3.0); printf(%3.0f,%3.0fn,y1,y2);程序运行后的输出结果是( B ) 。A. 27,8 B. 27,81 C. 2,8 D. 2,8149 定义typedef structint x; A10; A a;,下面正确的是( B ) 。A. a.x=30; B. a0.x=30; C. a.A0.x=30; D.

17、 A0.x=20;50 结构化程序设计的基本原则不包括( ) 。A. 多元性 B. 自顶向下 C. 模块化 D. 逐步求精51 若函数中有定义语句:int k;,则( )A. 系统将自动给k赋初值0 B. 这时k中的值无定义C. 系统将自动给k赋初值-1 D. 这时k中无任何值52 以下不能定义为用户标识符的是( )。A. Main B. _0 C. _int D. sizeof53 下列运算符中,优先级最低的是( )。A. * B.!= C. + D. =54 若有以下类型说明语句: char a; int b; float c; short int d; 则表达式(c*b+a)*d的结果类

18、型是( )。 A. char B. int C. double D. float55 有以下程序,程序的运行结果是( )。#include void main() int x=8; for(;x0;x-) if (x%3) printf(%d,x-); continue; printf(%d, ,-x); A. 7,4,2 B. 8,7,5,2, C. 9,7,6,4, D. 8,5,4,2,56 有以下程序#include void main()int a44= 1,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1,i,k,t; for(i=0;i3;i+) for(k=i+1;k

19、4;k+) if(aiiakk) t=aii;aii=akk;akk=t; for(i=0;i4;i+) printf(%d,a0i); 程序运行后的结果是( )。 A. 6,2,1,1, B. 6,4,3,2, C. 1,1,2,6, D. 2,3,4,6,57 有以下程序#include void main()int a44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,i,j,k,t; for(i=0;i4;i+) for(j=0;j3;j+) for(k=j+1;kaki) t=aji;aji=aki;aki=t; for(i=0;i4;i+) prin

20、tf(%d,aii); 程序运行后的结果是( )。 A. 1,6,11,16, B. 1,7,11,12, C. 1,7,11,13, D. 1,6,2,11,58 在C语言中,只有在使用时才占用内存单元的变量,其存储类型是( )。A.auto 和 register B.extern 和 register C.auto 和 static D.static 和 register59 有以下程序,输出结果是( )。#include void fun (int a,int b,int c)a=456;b=567;c=678;void main()int x=10,y=20,z=30; fun (x,

21、y,z); printf(%d,%d,%d,x,y,z);A. 30,20,10 B. 10,20,30 C. 456,567,678 D. 678,567,45660 下列程序的输出结果是( )。void main( ) int a23,*p,i; p=&a00; for(i=0;i6;i+) pi=i; for(i=0;i12?x+10:x-12; printf(%dn,y); A. 0 B. 22 C. 1 D. 2二、填空题1. 算法具有有穷性、可行性、确定性、 、输出等5个主要特征。2. 设A为int型的一维数组,如果A的首地址为p,那么A中第i个元素的地址为 。3. 人们根据特定的

22、需要,预先为计算机编制的指令序列称为 。4. 若以指数形式输出一个浮点数,则对应的格式控制字符为 。5. 设变量i已正确定义为整型,且初值为0,则printf(“%d,%”,i+,i+)的输出结果是 。6. 设有变量定义为int a3=1,4,7,*p=&a2;,*p的值是 。7. 结构变量可以作为函数的参数和返回值类型,以 方式传递参数。8. 结构指针是结构变量的内存地址,保存该指针的变量称为 。9. 逻辑运算的值也为“真”和“假”两种,在C语言中“真”用 ,“假”用0来表示。10. for(i=0; ;i+);如果此for语句要执行 10次,则需要在空白处填写 。11. 若k为整型变量,则

23、下面while循环执行的次数为: 。k=10;while(k=0) k=k-1;12. 若有定义:int k;,以下程序段的输出结果是 。for(k=2;k6;k+,k+) printf(#%d,k);13. 有以下定义:float b20;则数组b共有20个元素,其中的第一个元素为b0,最后一个元素为 。14. 若有定义:int k;,以下程序段的输出结果是 。for(k=2;k6;k+,k+) printf(#%d,k);15. for(i=0;i10;i+);结束后,i的值是 。16. 对定义语句char s=abcd;则数组的长度是 。17. 函数调用语句“f(e1,e2),(e3,e

24、4,e5)”中参数的个数是 。18. 在C语言中,一个函数一般由两个部分组成,它们是函数头和 。19. 根据变量作用域的不同可以将变量分为局部变量和 。20. 指针是C语言的重要特色,实际上它代表了机器的 。21. 结构类型的定义需要以关键字开始,其关键字为 。22. for(i=0;i10;i+);结束后,i的值是 。23. for(i=0; ;i+);如果此for语句要执行 10次,则需要在空白处填写 。24. 有以下定义:float b20;则数组b共有 个元素,25. 在C语言中,递归函数分为直接递归和 。 26. 有定义int arr10=0,1,2,3,4,5,6,7,8,9,*p

25、,i=2;若执行语句:p=arr;printf(“%d”,*(p+i);输出结果为: 。27. 结构数组是以 为基类型的数组,下标运算可以访问每个结构元素。28. 指针变量虽然都是存放指针,但 不同。29. 使用结构中成员变量必须先写上结构变量名,中间以 分割。30. 若有定义:int k;,以下程序段的输出结果是 。for(k=2;k6;k+,k+) printf(#%d,k);31. 有以下定义:float b20;则数组b共有20个元素,其中的第一个元素为 ,最后一个元素为b19。 32. 变量的存储类型有 、static、register和extern四种。33. 在C语言中,递归函数分为直接递归和 。 34. 指针变量虽然都是存放指针,但 不同。35. 使用结构中成员变量必须先写上结构变量名,中间以 分割。三、分析程序结果1. 以下程序的输出结果为 。#include main() int n=12345,d; while(n!=0) d=n%10; printf(%d,d); n/=10;2. 以下程序的输出结果为 。#include stdio.hmain()int i,a34=1,3,5,7,9,11,13,15,17,19,21,23; for(i=0;i3;i+) printf(%d,aii);3. 以下程序的输出结果

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1