c语言复习题库-v02
更新时间:2023-12-01 12:19:01 阅读量: 教育文库 文档下载
第一部分 C语言概述
1.1 选择题
【题1.1】一个C程序的执行是从 A 。
A) 本程序的main函数开始,到main函数结束
B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序的main函数开始,到本程序文件的最后一个函数结束 D) 本程序文件的第一个函数开始,到本程序main函数结束
【题1.2】以下叙述正确的是 C 。
A) 在C程序中,main函数必须位于程序的最前面 B) C程序的每行中只能写一条语句 C) C语言本身没有输入输出语句
D) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误
【题1.3】以下叙述不正确的是 。
A) 一个C源程序可由一个或多个函数组成 B) 一个C源程序必须包含一个main函数 C) C程序的基本组成单位是函数
D) 在C程序中,注释说明只能位于一条语句的后面
【题1.4】C语言规定:在一个源程序中,main函数的位置 B 。
A) 必须在最开始
B) 必须在系统调用的库函数的后面 C) 可以任意 D) 必须在最后
【题1.5】一个C语言程序是由 B 。
A) 一个主程序和若干子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成
1.2 填空题
【题1.6】C源程序的基本单位是 函数 。 【题1.7】一个C源程序至少应包括一个 main 。
【题1.8】在一个C源程序中,注释部分两侧的分界符分别为 /* 和 */ 。
第二部分 C语言的基本数据类型与表达式
2.1 选择题
【题2.1】在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为 。
A) char 【题2.5】C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 C 。 A) 必须为字母 B) 必须为下划线 C) 必须为字母或下划线 D) 可以是字母、数字和下划线中任一种字符 【题2.8】下面四个选项中,均是合法转义字符的选项是 A 。 A) ‘\\’’ ‘\\\\’ ‘\\n’ B) ‘\\’ ‘\\017’ ‘\\”’ C) ‘\\018’ ‘\\f’ ‘xab’ D) ‘\\\\0’ ‘\\101’ ‘x1f’ 【题2.9】下面正确的字符常量是 。 A)“c” B) ‘\\\\’’ C) ‘W’ D) ‘’ 【题2.10】对应以下各代数式中,若变量a和x均为double类型,则不正确的C语言表达式是 C 。 代数式 C语言表达式 A) e^(x^2/2)2? exp(x*x/2)/sqrt(2*3.14159) B) ?ax?1?2?a?x?? 4a? 1.0/2.0*(a*x+(a+x)/(4*a) C) (sinx)^2.5 D) x^2?e^5 【题2.11】若有代数式 sqrt((pow(sin(x*3.14159/180),2.5)) x*x-exp(5.0) 3ae,则不正确的C语言表达式是 C 。 bcA) a/b/c*e*3 B) 3*a*e/b/c C) 3*a*e/b*c D) a*e/c/b*3 【题2.12】以下不正确的叙述是 。 A) 在C程序中,逗号运算符的优先级最低 B) 在C程序中,APH和aph是两个不同的变量 C) 若a和b类型相同,在执行了赋值表达式a=b后b中的值将放入a中而b中的值不变 D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型 数值 【题2.13】以下正确的叙述是 。 A) 在C程序中,每行中只能写一条语句 B) 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C) 在C程序中,无论是整数还是实数,都能被准确无误地表示 D) 在C程序中,%是只能用于整数运算的运算符 【题2.15】在C语言中,要求运算数必须是整型的运算符是 D 。 A)/ B)++ C)!= D)% 【题2.17】在C语言中,int、char和short三种类型数据在内存中所占用的字节数 D 。 A)由用户自己定义 B)均为2个字节 C)是任意的 D)由所用机器的机器字长决定 【题2.22】在C语言中,char型数据在内存中的存储形式是 D 。 A)补码 B)反码 C)原码 D)ASCII码 【题2.25】若有以下定义,则能使值为3的表达式是 D 。 int k=7,x=12; A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5) 3.2填空题 【题2.26】若定义int m=5,y=2;,则执行表达式y+=y-=m*=y后的y值是 -16 。 【题2.28】在C语言中的实型变量分为两种类型,它们是 float 和 double 。 【题2.29】C语言所提供的基本数据类型包括:单精度型、双精度型、 字符型 、 整型 和 长整型 。 【题2.30】若s是int型变量,且s=6,则表达式s%2+(s+1)%2的值为 7 。 【题2.31】若a是int型变量,则表达式((a=4*5,a*2),a+6)的值为 26 。 【题2.32】若x和a均是int型变量,则执行表达式x=(a=4,6*2)后的x值为 ,执行表达式 (x=a=4,6*2)后的x值为 。 【题2.33】若a是int型变量,且a的初值为6,则执行表达式a+=a-=a*a后a的值为 -60 。 【题2.34】若a是int型变量,则执行表达式a=25/3%3后a的值为 。 【题2.35】若x和n均是int型变量,且x和n的初值均为5,则执行表达式x+=n++后x的值为 10 ,n的值为 6 。 【题2.38】C语言中的标识符只能由三种字符组成,它们是 字母 、 数字 和 下划线 。 【题2.39】已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=‘a’+‘8’-‘3’的值为 31 。 第3部分 顺序程序设计 3.1 选择题 【题3.1】putchar函数可以向终端输出一个 D 。 A) 整型变量表达式值 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 【题3.2】printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大 于5,则输出按方式 ;如果字符串长度小于5,则输出按方式 。 A) 从左起输出该字串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字串,左补空格 D) 输出错误信息 【题3.3】若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是 B 。 A) scanf(“%d%lx,%le”,&x,&y,&z); B) scanf(“-*%d%lf”,&x,&y,&z); C) scanf(“%x%*d%o”,&x,&y); D) scanf(“%x%o%6.2f”,&x,&y,&z); 【题3.4】已有定义int x; float y;且执行scanf(“=%f”,&x,&y);语句,若从第一列开始输入数据 12345 678<回车>,则x的值为【1】,y的值为【2】。 【1】A)12345 B)123 C)45 D)345 【2】A)无定值 B)45.000000 C)678.000000 D)123.000000 【题3.6】阅读以下程序,当输入数据的形式为25,13,10<回车>正确的输出结果为 D 。 main() { int x,y,z; scanf(“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\\n”,x+y+z); } A) x+y+z=48 B) x+y+z=35 C) x+z=35 D) 不确定值 【题3.7】以下说法正确的是 。 A) 输入项可以为一实型常量,如scanf(“%f”,3.5); B) 只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”); C) 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如 scanf(“%4.2f”,&f); D) 当输入数据时,必须指明变量的地址,如scanf(“%f”,&f); 【题3.9】有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b为3,c为2, 从键盘输入数据的正确形式应当是 。 A) 132<回车> B) 1,3,2<回车> C) a=1 b=3 c=2<回车> D) a=1,b=3,c=2<回车> 【题3.10】已知ch是字符型变量,下面不正确的赋值语句是 A 。 A)ch=‘a+b’; B)ch=‘\\0’; C)ch=‘7’+‘9’; D)ch=5+9; 4.2 填空题 【题3.11】以下程序的输出结果为 。 main() { printf(“*%f,%4.3f*\\n”,3.14,3.1415); 【题3.14】以下printf语句中*号的作用是 ,输出结果是 。 #include 【题3.17】若a和b均为int型变量,则以下语句的功能是 。 a+=b; b=a-b; a-=b; 第4部分 选择结构程序设计 4.1 选择题 【题4.1】逻辑运算符两侧运算对象的数据类型 D 。 A) 只能是0或1 B) 只能是0或非0正数 C) 只能是整型或字符型数据 D) 可以是任何类型的数据 【题4.2】以下关于运算符优先顺序的描述中正确的是 B 。 A) 关系运算符<算术运算符<赋值运算符<逻辑与运算符 B) 逻辑与运算符<关系运算符<算术运算符<赋值运算符 C) 赋值运算符<逻辑与运算符<关系运算符<算术运算符 D) 算术运算符<关系运算符<赋值运算符<逻辑与运算符 【题4.3】下列运算符中优先级最高的是 B 。 A)< B)+ C)&& D)!= 【题4.4】能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是 C 。 A) (x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B) (x>=1)||(x<=10)||(x>=200)||(x<=210) C) (x>=1)&&(x<=10)||(x>=200)&&(x<=210) D) (x>=1)||(x<=10)&&(x>=200)||(x<=210) 【题4.5】判断char型变量ch是否为大写字母的正确表达式是 C 。 A)‘A’<=ch<=‘Z’ B)(ch>=‘A’)&(ch<=‘Z’) C)(ch>=‘A’)&&(ch<=‘Z’) D)(‘A’<=ch)AND(‘Z’>=ch) 【题4.6】设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是 A 。 A) ‘x’&&‘y’ B) x<=y C) x||y+z&&y-z D) !((x 【题4.7】若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则 以下不能满足要求的表达式是 C 。 A)A%2==1 B)!(A%2==0) C)!(A%2) D)A%2 【题4.8】判断char型变量c1是否为小写字母的正确表达式是 D 。 A)‘a’<=c1<=‘z’ B)(c1>=a)&&(c1<=z) C)(‘a’>=c1)||(‘z’<=c1) D)(c1>=‘a’)&&(c1<=‘z’) 【题4.9】以下不正确的if语句形式是 A 。 A) if(x>y&&x!=y); B) if(x==y) x+=y; C) if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y); D) if(x 【题4.10】下列运算符中优先级最低的 ,优先级最高的是 。 A)?: B)&& C)+ D)!= 【题4.12】请阅读以下程序: main() { int a=5,b=0,c=0; if(a=b+c) printf(“***\\n”); else printf(“$$$\\n”); } 以下程序 。 A)有语法错不能通过编译 B)可以通过编译但不能通过连接 C)输出*** D)输出$$$ 【题4.14】为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与 B 配 对。 A)缩排位置相同的if B)其之前最近的if C)其之后最近的if D)同一行上的if 【题4.15】以下不正确的语句为 。 A) if(x>y); B) if(x=y)&&(x!=0) x+=y; C) if(x!=y) scanf(“%d”,&x); else scanf(“%d”,&y); D) if(x 【题4.16】若w=1、x=2、y=3、z=4,则条件表达式w 4.2 填空题 【题4.18】当a=5,b=4,c=2时,表达式a>b!=c的值是 1 。 【题4.19】C语言提供的三种逻辑运算符是 、 、 。 【题4.20】设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式 (x 【题4.21】已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是 0 。 【题4.22】若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是 。 else ; break; default: printf(“input error”); break; } printf(“the length of %d %d is %d\\n”,yy,mm,len); } 【题4.48】以下程序用以计算y年m1月d1日与同年的m2月d2日之间的天数(m2>=m1),并打印计算 结果。若m1=m2且d1=d2则算1天。在闰年时,2月有29天。闰年的年号由以下方式确定:该年号能被4整除但不能被100整除,或者该年号能被400整除则是闰年。例如:输入1997,2,27,3,10<回车>时,输出为12。表明从1997年2月27日到3月10日共有12天。请在 内填入正确内容。 main() { int y,m1,d1,m2,d2: int i,d; scanf(“%d,%d,%d,%d,%d”,&y,&m1,&d1,&m2,&d2); y=(y%4==0 y0!=0 y@0)?1:0; d=0-d1; for(i=m;i 第五章 循环控制 5.1 选择题 【题5.1】设有程序段 int k=10; while(k=0) k=k-1; 则下面描述中正确的是 。 A)while循环执行10次 C)循环体语句一次也不执行 【题5.2】设有以下程序段 int x=0,s=0; while(!x!=0) s+=++x; B)循环是无限循环 D)循环体语句执行一次 printf(“%d”,s); 则 。 A)运行程序段后输出0 B)运行程序段后输出1 C)程序段中的控制表达式是非法的 D)程序段执行无限次 【题5.5】下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循 环,请选择填空。 #include 【题5.6】下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空。 #include 【题5.7】C语言中while和do-while循环的主要区别是 A 。 A) do-while的循环体至少无条件执行一次 B) while的循环控制条件比do-while的循环控制条件严格 C) do-while允许从外部转到循环体内 D) do-while的循环体不能是复合语句 【题5.9】以下描述中正确的是 。 A) 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合 语句 B) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号 C) 在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作 D) do-while循环中,根据情况可以省略while 【题5.10】等比数列的第一项a=1,公比q=2,下面程序的功能是求满足前n项和小于100的最大n, 请选择填空。 #include main() { int a,q,n,sum; a=1; q=2; n=sum=0; do{ 【1】; ++n; a*=q; }while(sum<100); 【2】; printf(“%d\\n”,n); } 【1】 A)sum++ B)sum+=a C)sum=a+a D)a+=sum 【2】 A)n=n-2 B)n=n C)n++ D)n-=1 【题5.12】下面有关for循环的正确描述是 。 A) for循环只能用于循环次数已经确定的情况 B) for循环是先执行循环体语句,后判断表达式 C) 在for循环中,不能用break语句跳出循环体 D) for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 【题5.13】对for(表达式1;;表达式3)可理解为 A 。 A)for(表达式1;0;表达式3) B)for(表达式1;1;表达式3) C)for(表达式1; 表达式1;表达式3) D)for(表达式1; 表达式3;表达式3) 【题5.14】若i为整型变量,则以下循环执行次数是 A 。 for(i=2;i==0;) printf(“%d”,i--); A)无限次 B)0次 C)1次 D)2次 【题5.17】下面程序的功能是计算1至50中是7的倍数的数值之和,请选择填空。 #include A)(int)(i/7)==i/7 B)(int)i/7==i/7 C)i%7=0 D)i%7==0 【题5.18】以下正确的描述是 。 A) continue语句的作用是结束整个循环的执行 B) 只能在循环体内和switch语句体内使用break语句 C) 在循环体内使用break语句或continue语句的作用相同 D) 从多层循环嵌套中退出时,只能使用goto语句 【题5.19】下面程序段 。 for(t=1;t<=100;t++) { scanf(“%d”,&x); if(x<0) continue; printf(“=”,t); } A)当x<0时整个循环结束 B)x>=0时什么也不输出 C)printf函数永远也不执行 D)最多允许输出100个非负整数 【题5.21】以下描述正确的是 。 A) goto语句只能用于退出多层循环 B) switch语句中不能出现continue语句 C) 只能用continue语句来终止本次循环 D) 在循环中break语句不能独立出现 【题5.22】下面程序的功能是将从键盘输入的偶数写成两个素数之和。请选择填空。 #include A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$ 5.2 填空题 【题5.25】下面程序的功能是用公式 ?26?1111?????? 122232n2- 6 求π的近似值,直到最后一项的小于10#include long i=1; 为止。请填空。 pi=0; while(i*i<=10e+6) { pi= ; i++; } pi=sqrt(6.0*pi); printf(“pi=.6f\\n”,pi); } 【题5.26】有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完? 请填空。 #include 【题5.27】下面程序的功能是用“辗转想除法”求两个正整数的最大公约数。请填空。 #include 【题5.29】下面程序段是找出整数的所有因子,请填空。 scanf(“%d”,&x); i=1; for(; ;) { if(x%i==0) printf(“=”,i); i++; } 【题5.30】鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,请填空。 for(x=1;x<=29;x++) { y=30-x; if( (2*x + 4*y == 90) ) printf(“%d,%d\\n”,x,y); } 【题5.31】若for循环用以下形式表示: for(表达式1;表达式2;表达式3) 循环体语句 则执行语句for(i=0;i<3;i++) printf(“*”);时,表达式1执行 次,表达式3 执行 次。 【题5.32】下面程序的功能是计算1-3+5-7+?-99+101的值,请填空。 #include
正在阅读:
c语言复习题库-v0212-01
中山市2017-2018学年第一学期期末水平测试试卷八年级英语01-11
园林苗圃学试卷105-04
中国工业汽轮机产业专项调研与未来前景分析报告(2015-2022)04-21
结合,政府机构改革02-12
2018 - 2019学年高中化学专题2化学反应速率与化学平衡第三单元化04-24
贵州师范大学09机制班教育学03-25
深化机构改革表态发言-在机构改革和综合改革会的表态发言03-08
中国煤炭资源产业竞争态势专项调查及企业发展商机评估报告08-28
托福雅思满分各是多少05-17
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 题库
- 复习
- 语言
- 02
- 河南省许昌市2009―2010学年度上学期四校期中联考高二历史试题
- 没收建筑物处理办法
- 党代会闭幕词搜集汇总 - 图文
- 研究生个人总结(包括政治思想表现,学习科研,奖惩情况)
- 微观经济学习题1-7章
- 精品2019-2020年(新课标)最新北师大版小学二年级数学上册《教室有多长》同步练习2-精品试题
- 喷混
- 微观经济学复习题1
- 设施规划与物流分析习题
- 发生在肺内的气体交换习题经典(带答案)
- 2016年北京电影学院中国电影文化研究院赵彬《艺术概论》参考书总结
- 《金融理论与实务》课后试题及答案
- 西南科技大学大学物理单元练习
- 2019中考英语总复习第一篇教材过关篇课时训练10Units1-2八下习题
- 导学案实施方案123
- 中班健康活动:勤洗头,常理发(生活自理)
- 高中通用技术 第一册复习提纲 广东版 -
- 新疆在民族团结工作中存在的问题及建议
- 高年级说明文阅读与答案
- 兰州大学2000-2006年西方经济学考研试卷