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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言程序设计综合练习题集.docx

1、C语言程序设计综合练习题集C语言程序设计综合练习题B)十进制数 C)C语言的不严格的叙述中,错误的说法是一、单选题1. c语言中基本数据类型有 A) 整型、实型、逻辑型C) 整型、实型、字符型2在C语言中,数字 029是一个A)八进制数3.在以下关于。CB)整型、字符型、逻辑型D)整型、实型、字符型、逻辑型。A卜六进制数 D)非法数。AA) 在标识符中,大写字母和小些字母的意义相同B) 有些不同类型的变量可以在一个表达式中运算C) 在赋值表达式中等号 “=”左边的变量和右边的值可以是不同类型D) 同一个运算符号在不同的场合可以有不同的含义4.下列关于C语言用户标识符的叙述中正确的是 。BA)

2、用户标识符中可以出现下划线和中划线(减号)B) 用户标识符中不可以出现中划线,但可以出现下划线C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头【解析】考查 C语言中的用户标识符规则,在 C语言程序设计中,用户标识符是由字母、数字和下划线组成的,并且第一个字符必须是字母或下划线。5.结构化程序设计方法中有三种基本控制结构,以下不正确的是 。 DA)顺序结构 B)选择结构 C)循环结构 D)数组结构6.C语言提供的合法关键字是 。DA) swicth B) cha C) Case D) default7 以下非法的

3、赋值语句是 CA) n=(i=2,+i); B)j+; C) +(i+1); D)x=j0;【解析】对表达式不能进行自加自减运算。8.在以下一组运算符中,优先级最高的运算符是 。A) = B) = C) % D) &【解析】C语言常用的积累运算符的优先级关系是:逻辑非“! ”算术运算符 关系运算符 逻辑与&”逻辑或“|”赋值运算符 逗号运算符。由于 C选项为求余运算符,所以本题正确答案为 C选项。9.以下四个选项中不能看作一条语句的是 。 DA) ; B) a=0,b=0,c=0; C) if(a0) D) if(b=0)m=1 ; n=2 ;【解析】C语言的基本语句包含控制语句、表达式语句、

4、空语句、复合语句、函数调用语句。控制语句:完成一定的控制功能,C语言有9种控制语句,分别是if-else、while、continue、switch、return、for、do-while、break、goto ;表达式语句:由各类表达式构成,后面加上一个分号,就可以单独作为一条语句出现在一 行,多数情况下含赋值运算符。复合语句:由一对大括号将一组语句序列括起来形成一个程序段,经常出现在选择或循环 语句中。空语句:只有一个分号,表示什么也不做。函数调用语句:由函数名、圆括号内加实参表和分号组成。本题中D选项为三条语句,一条控制语句,链条表达式语句。正确答案为 D选项。10.能将高级语言编写的源

5、程序转换为目标程序的软件是 。DA)汇编程序 B)编辑程序 C)解释程序 D)编译程序11.以下选项中合法的实型常数是 。CA) 5E2.0 B) E-3 C) .2E0 D) 1.3E【解析】以指数形式表示实数时,字母 e或E之前必须有数字,且 e后面指数必须为整数。12.依据C语言的语法规则,下列合法标识符是 AA)Else B)else C)user$2 D)5_examp【解析】标识符的定义有明确的规则: (1)标识符只能由字母、数字、下划线三者构成; (2)标识符的首字符必须是字母或者下划线;( 3)标识符命名对字母大小写敏感;( 4 )标识符定义不能和C语言关键字(Key Word

6、s )相同。C语言中标识符对大小写敏感, sum和SUM是 不同的标识符。13.以下选项中合法的用户标识是 。A) long B) _2Test C) 3Dmax D) A.dat【解析】选项中 A为保留字;选项 C没有以字母或者“ _”开头;选项D中不能有“.”14.在C语言中,字符型数据在内存中的存储形式是 。DA)原码 B)补码 C)反码 D) ASCII码【解析】数据在内存中是以二进制形式存放的。数值是以补码表示的。 c的char数据属于基本类型,在内存中字符的存储实际上是把字符相对应的ASCII代码放到存储单元中的。而这些ASCII代码值在计算机中也是以二进制形式存放的。这个与整型的

7、存储很相似。因此这两类之间的转换也比较方便!整型:一个正数的补码和其原码的形式相同。而负数的补码方式是将其绝对值的二进制形式“按位求反再加 1 ”实型:在内存中占4个字节,是按照指数形式存储的,实型数据分为小数部分和指数部分,分别存放!计算机用二进制表示小数部分,用 2的幕次来表示指数部分!15.以下非法的赋值语句是 。CA)n=(i=2,+i); B) j+; C) +(i+1); D) x=j0;【解析】对表达式不能进行自加自减运算。16.已定义c为字符型变量,则下列正确的赋值语句是 。 DA)c=66: B) c=66; C) c=B; D) c=66;17.已知小写字母的 ASCII

8、码为 97,对于 int a=99, b=b: printf( %c,%d ”,a , b);的结果是 。BA)99, b B) c, 98 C) 99, 98 D) c, b【解析】字符类型变量用char来定义,特别要注意字符数据在内存中的存储方式: 字符数据在内存中是用字符对应的 ASCII码存储,其存储形式实质是采用整数形式,由于 ASCII码集合中有256个字符,因此用 0255这个范围内的256个整数分别与每个字符对应。因此字符型数 据和整型数据在一定范围(0255 )内,形式上可以相互引用。表现在这两种类型的变量能够 以对方形式常量来赋值,以对方的形式来输出,还可以同时出现在算数表

9、达式中参与运算int n=a: /*相当于 n=97*/prin tf(c=%d,c=%c,c,c); /* 输出:n=65, n=A*/虽然字符型数据和整型数据在一定范围内可以通用,但其外在表现形式并不影响各自的数 据类型,上例中n本质上还是整型变量,c本质上还是字符型变量。18.若变量a和i已正确定义,且i已正确赋值,合法的语句是 。 BA) a=1 B) +i; C) a=a+=5 D) a=i nt(i)【解析】C语言的语句必须以分号结束, 选项A是错误的。赋值表达式等号的左边只能是变量, 而不能是表达式,选项 C中含有a+=5,是错误的。选项 D中的强制转换类型必须用圆括号 将int

10、括起来,也是不正确的。19.假定x和y为double型,则表达式 x=2,y=x+3/2的值是 。DA) 3.500000 B) 3 C) 2.000000 D) 3.000000【解析】算出来结果为 3,排除A和C选项;又因为是double型,所以D选项为正确答案。20.以下程序的输出结果是 。Cmain ()int a=5,b=4,c=6,d;printf( “ %dn ” ,d=ab?(ac?a:c):(b);1:表达式2)可以用来代A ) 5 B)4 C ) 6 D )不确定【解析】本题考察条件表达式。简单的条件表达式(条件表达式?表达式替if语句进行赋值。详见教材 102页。21.设

11、 a=3,b=4,c=-5,则逻辑表达式: a | b+c & b=c 的值是 。 BA) 1 B) 0 C)非0 D)语法错【解析】运算符优先级由高到底为算术运算符 -关系运算符-&和|卜-赋值运算符。其中&和|的结合方向为从左到右22.表示关系x=y=z的c语言表达式为 。AA) (x=y)&(y=z) B) (x=y)AND(y=z)C) x=y=z D) (x=y)&(y z-后,x,y,z的值分别是 。DA ) 1,1,1 B ) 1,2,0 C ) 0,1,1 D ) 0,2,0【解析】注:前缀是先增值后引用,后缀是先引用再增值24.已知int a=4,b=5;,执行表达式 a=a

12、b后,变量a的值为 。AA) 0 B) 1 C) 4 D) 5【解析】C语言常用的积累运算符的优先级关系是:逻辑非“! ”算术运算符 关系运算符 逻辑与&”逻辑或“|”赋值运算符 逗号运算符。由于关系运算符优先级别高于赋值运算符,所以 先执行ab,得到结果为假,即 0,所以变量a的值为0。25.能正确表示逻辑关系 “a 10或a=A & ch=A & ch0; k-=3) putchar( *); 输出是B)* C) * D )无限循环输出函数)的作用是向终端输出一个字符。用putchar ()函数可以输出能在屏幕上显示的字符,也可以输出控制字符,如putchar ( n)的作用是输出一个换行

13、符,使输出的当前位置移到下一行的开头。35.已知int i=1;执行语句while(i+4)后,变量i的值为 。C36.【解析】此数组共、 43列。应该是7卫25803690【解析】i+是先进行其他运算,运算终了后再将 i加1所以循环中过程如下:i=0判断i4 :成立i=i+1,于是 i=1继续循环:判断i4 :成立i=i+1,于是 i=2继续循环:判断i4 :成立i=i+1,于是 i=3继续循环:判断i4 :成立i=i+1,于是 i=4继续循环:判断i0前1个大,7)m_;printf( “ %dn ” ,m);C)9876D)1098A)9 B)108 97 87(1) 计算while 一

14、对圆括号中表达式的值。当值为非零时,执行步骤( 2);当值为零时,执行步骤(4)。(2) 执行循环体中语句。(3) 转去执行步骤(1 )。(4) 退出while循环。由以上while循环的一般过程来看,只有当 while后面的括号中表达式的值为零时才停止循环。本题中,当m=7是循环停止,也就是说最后一个输出的应是 7.开始m被赋予10,进入循环体,由于m-;所以m自减1为9,所以第一个输出的应是 9.44.若有如下程序段,其中 s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a; for(b=1;b=c;b+) s=s+1; 则与上述程序段功能等价的赋值语句是 。 BA) s

15、=a+b; B) s=a+c; C) s=s+c; D) s=b+c;【解析】掌握两点:一、 a赋给了 s;二、s执行c次自加;所以最终相当于将 a+c赋给了 s。45.以下程序中,while循环的循环次数是 。Dmain ()int i=0;while(i10)if(i1)c ontinue;if(i=5)break;i+;A) 1 B) 10 C) 6 D)死循环,不能确定次数【解析】在循环中,如果执行 continue,将直接开始下一次循环,不继续执行 continue下面的语句。进入循环时,i=0,当执行到if(i1)continue ; 句时,将执行 continue命令,直接开始下

16、 一次循环,i的值始终没有变,循环条件(i10 )将一直满足下去。所以,程序将一直无法退出 循环,即死循环。46.A) strcatB)strcmpC)strcpyD)strlen当对两个字符串进行比较时,应该使用的函数是 。B47 .若有定义“int k,*q; ”则下列各选项中赋值表达式正确的是 。 BA) q=(&k+1) B) q=&k C) q=k D) *q=&k【解析】(1)本题的定义语句中,在 q前面有一个*号说明符,表示 q是一个指针变量,而 C语言规定,在指针变量中只能存放存储单元(即变量)的地址。(2) 因为在定义中,q的基类型为int,所以q中只能存放int类型变量的地

17、址。(3) 在C程序中&号是求地址符,表达式 &k的值是变量k在内存中的地址,而*号的作用是求 地址指向单元的值。(4) 现在来看看选项 C和D。C中,是把整型变量直接赋给指针变量 q,由于赋值不兼容性, 这是错误的。D中,企图把k的地址赋给一个整型变量(*p在此可代表一整型变量),这也是 不允许的,地址值不可能转换为一个整数。(5) 关于A,还得声明一点,地址符 &只能应用于变量和以后将要介绍的数组元素,不可以用于表达式,常量或者被说明为 register的常量。因此 A也不正确。(6) 那答案只能是 B,因为此处q中只能存放int类型的地址,而 k是int型,&k又是k的地 址,B当然是正

18、确的。48.若有以下定义: char s20= “programming ” , *ps=s ;则不能代表字符 g的表达式是 。AA) ps+3 B) s3 C) ps3 D) ps+=3,*ps【解析】1、C语言对字符串常量是按字符数组处理的, 在内存中开辟了一个字符数组用来存放该字符串 常量。2、指向数组的指针变量也可以带下标,如 pi与*(p+i)等价。详见教材231页。49.以下能正确定义数组并正确赋初值的语句是 。CA) int N=5,bNN; B) int a12=1, 3;C) int c2= 1,2,3,4; D) int d32=1,2,34;【解析】如果对全部元素都赋初值

19、 (即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省!系统会根据总个数和第二维的长度算出第一维的长度。详见教材p13850.假设已定义char c8= test ; int i ;则下面的输出函数调用中错误的是 。DA) printf(%s,c); B) for(i=0 ; i8 ; i+) printf(%c,ci);C) puts(c) D) for(i=0 ; i8 ; i+) puts(ci);【解析】首先 A、B两个选项是没有问题的, puts函数一般形式为puts(字符数组),其作用是输出字符串,所以 D选项是错误的。51.下程序段:char s20

20、 =xyz, *sp=s; strcat(sp,12345); puts(sp); 的输出结果是 。AA) xyz12345 B) 12345xyz C) 12345 D) xyz【解析】strcat(字符数组1,字符数组2)-(字符串连接)其作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组 1中,函数调用后得到一个函数值 -字符数组1的地址。52.在执行 int a 3=1,2,3,4; 语句后 a12的值是 。CA.3B.4C.0D. 2【解析】考查知识点:二维数组的初始化 int a 3=1,2,3,4;初始化的数组元素如下:258369I4【解析】此数组

21、共 3列。应该是7在C语言中如果对全部元素都赋初值(即提供全部初始数据) ,则定义数组时对第一维的长度 可以不指定,但第二维的长度不能省。系统会根据总个数和第二维的长度算出第一维的长度。本题中一共有1个元素,每行3列,显然可以确定行数为 4.见教材138.54.设有定义语句: char str2=Hello,Beiji ng,*p=str;则 printf(%dn,strlen(p+2); 输出结果是 。CA) B) 5 C)7 D)2【解析】数组char str2实际上是一个2行2列的字符数组。*p正好指向H,个英文字 母占一个字节,这样 p+2就指向第二行的第一列,也就是 Beijing的B,所以输出结果是 7。 注意:虽然第一行,第二行都没有排满,但 Hello其后是,而不是空格。55.用数组名作为函数调用时的实参,则实际传

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

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