




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言练习题一、 填空题1. C语言程序的三种基本结构是_顺序 _、_分支_、_循环_。2. C语言程序的三种逻辑运算符是_&_、_|_、_!_。为了避免嵌套的条件语句if else 的二义性,C语言规定else与_最近的且没有和其他else匹配过的_if配对。3. C语言没有逻辑数据,在给出逻辑运算结果时,以_1_代表“真”,以_0_代表“假”,但在判断一个量是否为真时,以_非0_代表“真”,以_0_代表“假”。4. 条件“2x4或x2&x4|x-20_。5. 执行下列语句后,a,b,c值依次为_8_、_8_、_10_。int x=10,y=9;int a,b,c;a=(-x=y+)?-x:+y;b=x+;c=y;6. 设i为整型变量,则for(i=2;i=0;) printf(“%d”,i-);循环_0_次。二、 选择题1. 若要求在if后面一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表示式为 ( D)A. a0 B. !a C. a=0 D. a2. C语言中while与dowhile语句的区别是 ( A )A. dowhile 的循环体至少无条件执行一次B. dowhile 允许从外部转到循环体内C. dowhile 的循环体不能是复合语句D. while的循环控制条件比dowhile 的循环控制条件严格3. 以下的for 循环 ( B ) for (x=0,y=0;(y!=123)&(x4);x+)A. 循环3次 B. 执行4次 C. 循环次数不定 D. 无限循环4. 若 w=1,x=2,y=3,z=4则条件表达式wx?w:yz?y:z的结果是 ( D )A. 4 B. 3 C. 2 D. 15. 逻辑运算符两侧运算对象的数据类型 ( D )A. 只能是0或1 B. 只能是0或非0正数 C.只能是整型或字符型数据 D.可以是任何类型数据6. while (!x) 中的(!x)与下面条件 ( C )等价A. (x!=1) B. (x=1) C. (x=0) D. (x!=0)7. 以下关于switch语句和break语句的描述,只有( C )是正确的。A. 在switch语句中必须使用break语句B. break 语句中只能用于switch语句中C. 在switch语句中,可以根据需要使用或不使用break语句D. break语句是switch语句一部分8. 若a为int变量,则执行以下语句后的结果为 (A )a=5;do printf(“%2dn”,a-);while (!a);A. 5 B. 不打印任何内容 C. 4 D. 陷入死循环9. 下面程序段的运行结果是 ( C )a=1;b=2;c=3while (abc) t=a;a=b;b=t;c-;printf(“%d,%d,%d”,a,b,c);A. 1,2,0 B. 2,1,0 C. 1,2,1 D. 2,1,110. 若x是int型变量,则执行下列语句后结果是 ( C ) for(x=1;x=100;x+) if (+x%2=0) if (+x%3=0) if (+x%5=0) printf(“%d “,x);A. 30 60 90 B. 29 50 89 C. 不打印任何内容 D. 31 61 91三、写出下列程序的运行结果1. #include main() int i,j=4; for(i=j;i=2*j;i+) switch (i/j) case 0: case 1:printf(“*”);break; case 2:printf(“#”);*#2. main() int i,j,k; char space= ; for (i=0; i=5;i+) for (j=1;j=i;j+) printf(“%c”,space); for(k=0;k=5;k+) printf(“%c”,*); printf(“n”); * * * * *3. main() int x=18,i; for(i=2;i9;i+) if(x%i=0) printf(“%d,i); x=x/i-; if(x=0) break; 23330004 程序填空,不要改变与输入输出有关的语句。输入一个正整数 repeat (0repeat10),做 repeat 次下列运算:输入五级制成绩(AE),输出相应的百分制成绩(0100)区间,要求使用switch语句。五级制成绩对应的百分制成绩区间为:A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59),如果输入不正确的成绩,显示Invalid input。输出使用以下语句:printf(90-100n); printf(80-89n); printf(70-79n); printf(60-69n);printf(0-59n);printf(Invalid inputn);输入输出示例:括号内是说明输入6ABCDEj (repeat=6,输入的五级成绩分别为A、B、C、D、E和无效的字符j) 输入时不要空格或回车输出90-10080-8970-7960-690-59Invalid input (输入数据不合法)#include int main(void) char ch; int repeat, ri; scanf(%d, &repeat); for(ri = 1; ri = repeat; ri+) ch = getchar(); switch(ch) case A:printf(90-100n); break; case B:printf(80-89n); break; case C:printf(70-79n); break; case D:printf(60-69n);break; case E:printf(0-59n);break; default:printf(Invalid inputn); 30005查询水果的单价。有4种水果,苹果(apples)、梨(pears)、桔子(oranges)和葡萄(grapes),单价分别是3.00元/公斤,2.50元/公斤,4.10元/公斤和10.20元/公斤。在屏幕上显示以下菜单(编号和选项),用户可以连续查询水果的单价,当查询次数超过5次时,自动退出查询;不到5次时,用户可以选择退出。当用户输入编号14,显示相应水果的单价(保留1位小数);输入0,退出查询;输入其他编号,显示价格为0。输入输出示例:括号内是说明输入3 (oranges的编号) 0 (退出查询) 输出1 apples2 pears3 oranges4 grapes0 Exitprice = 4.11 apples2 pears3 oranges4 grapes0 Exit#include int main(void) int choice, i; double price; for(i = 1; i = 5; i+) printf(1 applesn); printf(2 pearsn); printf(3 orangesn); printf(4 grapesn); printf(0 Exitn); scanf(%d, &choice); if(choice = 0) break; else switch(choice) case 1:price=3;break; /*注意是整型值而不应用字符常量,如1*/ case 2:price=2.5;break; case 3:price=4.1;break; case 4:price=10.2;break; default:price=0.0; printf(price = %0.1fn, price); 30009输入一个正整数 n,再输入 n 个学生的百分制成绩,统计各等级成绩的个数。成绩等级分为五级,分别为A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59)。输入输出示例:括号内是说明输入5 (n=5)77 54 92 73 60输出Number of A(90-100): 1Number of B(80-89): 0Number of C(70-79): 2Number of D(60-69): 1Number of E(0-59): 1#include int main(void) int i, mark, n; int na, nb, nc, nd, ne; scanf(%d,&n); na = nb = nc = nd = ne = 0; for(i = 1; i = n; i+) scanf(%d, &mark); switch(mark/10) case 10:case 9: na+;break; case 8:nb+;break; case 7:nc+;break; case 6:nd+;break; case 5:case 4:case 3:case 2:case 1:case 0:ne+;break; printf(Number of A(90-100): %dn, na); printf(Number of B(80-89): %dn, nb); printf(Number of C(70-79): %dn, nc); printf(Number of D(60-69): %dn, nd); printf(Number of E(0-59): %dn, ne);30061输入一个正整数 repeat (0repeat10),做 repeat 次下列运算:某城市普通出租车收费标准如下:起步里程3公里,起步费10元;超起步里程后10公里内,每公里租费2元,超过10公里以上的部分加收50%的回空补贴费,即每公里租费3元。营运过程中,因路阻及乘客要求临时停车的,每5分钟按1公里租费计收。运价计费尾数四舍五入,保留到元。编写程序,输入行驶里程(公里)与等待时间(分钟),计算并输出乘客应支付的车费(元)。提示:先将等待的时间折算成公里数,与原公里数相加后再处理。输入输出示例:括号内是说明输入3 (repeat=3) 1.6 2 52 (行驶1.6公里,等待2分52秒)3.1 6 15 (行驶3.1公里,等待6分15秒)11.8 2 30 (行驶11.8公里,等待2分30秒)输出cost = 10cost = 13cost = 31注意点:1先将时间折算成公里数.2 无须加0.5,输出时自动四舍五入的.#include int main(void) int repeat, ri; int minutes, seconds; double cost, mile; scanf(%d, &repeat); for(ri = 1; ri = repeat; ri+) scanf(%lf%d%d, &mile, &minutes, &seconds);mile=mile+(seconds/60.0+minutes)/5.0;if(mile=3) cost=10; else if(mile=10) cost=10+(mile-3)*2;elsecost=24+3*(mile-10);printf(cost = %.0fn, cost); 40012程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:读入1个正实数 eps,计算并输出下式的值,精确到最后一项的绝对值小于 eps(保留6位小数)。请使用 while 语句实现循环。计算:11/41/71/101/131/16输入输出示例:括号内是说明输入2 (repeat=2)2E-4 (eps=2E-4)0.02 (eps=0.02)输出sum = 0.835549sum = 0.826310#include #include int main(void) int denominator, flag; int repeat, ri; double eps, item, sum; scanf(%d, &repeat); for(ri = 1; ri =eps) item=flag*1.0/denominator; sum=sum+item; denominator=denominator+3; flag=-flag; printf(sum = %.6fn, sum); 40013输入一个正整数repeat (0repeat10),做repeat次下列运算:读入一批正整数(以零或负数为结束标志),求其中的奇数和。请使用while语句实现循环。输入输出示例:括号内是说明输入2 (repeat=2)1 3 90 7 08 7 4 3 70 5 6 101 -1输出The sum of the odd numbers is 11.The sum of the odd numbers is 116.#include int main(void) int x, sum; int repeat, ri; scanf(%d, &repeat); for(ri = 1; ri 0) if(x%2=1) sum=sum+x; scanf(%d,&x); printf(The sum of the odd numbers is %d.n, sum); 40014输入一个正整数 repeat (0repeat10),做 repeat 次下列运算:输入一个整数 in,求它的位数。例如123的位数是3。请使用do-while语句实现循环。输入输出示例:括号内是说明输入4 (repeat=4) 12345 (in=12345) -100 (in=-100) -1 (in=-1) 1290 (in=1290) 输出count = 5 (12345的位数是5)count = 3 (-100的位数是3)count = 1 (-1的位数是1)count = 4 (99的位数是2)注意点:负数和0#include int main(void) int count, in; int repeat, ri; scanf(%d, &repeat); for(ri = 1; ri = repeat; ri+) scanf(%d, &in); count=0; if(in0) in=-in; do in=in/10; count+; while(in!=0); printf(count = %dn, count); 40019输入一个正整数 repeat (0repeat10),做 repeat 次下列运算:皮球从 height(米)高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,如此反复。问皮球在第 n 次落地时,在空中一共经过多少距离?第 n 次反弹的高度是多少?(输出保留1位小数) 输入输出示例:括号内是说明输入3(repeat=3)10 2(height=10m, n=2)4 1(height=2m, n=1)100 8(height=100m, n=8)输出distance=20.0, height=2.5(第2次落地时,空中经过距离为20米, 第2次反弹高度为2.5米)distance=4.0, height=2.0(第1次落地时,空中经过距离为4米,第1次反弹高度为2米)distance=298.4, height=0.4(第8次落地时,空中经过距离为298.4米,第8次反弹高度为0.4米)#include int main(void) int i, n; int repeat, ri; double distance, height; scanf(%d, &repeat); for(ri = 1; ri = repeat; ri+) scanf(%lf%d, &height, &n); distance=height;height=0.5*height;for(i=2;i=n;i+) distance= distance+height*2.0;height=0.5*height; printf(distance = %.1f, height = %.1fn, distance, height); 40024输入一个正整数 repeat (0repeat10),做 repeat 次下列运算:输入两个正整数 m 和 n(1=m, n=1000),输出 m 与 n之间(含m,n)的所有满足各位数字的立方和等于它本身的数。例如153的各位数字的立方和是 135333153 ,这里ab表示a的b次方。输出使用语句:printf(%dn, i);输入输出示例:括号内为说明输入:2 (repeat=2)100 400 (m=100, n=400)1 100 (m=1, n=100)输出:result:153 (1*1*1+5*5*5+3*3*3=153)370 (3*3*3+7*7*7=370)371 (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学生裁判课考试题及答案
- 2025年注册验船师资格考试(A级船舶检验法律法规)冲刺模拟试题及答案二
- 北京市门头沟区2023-2024学年七年级上学期期中考试数学试题及答案
- 2025年调酒技巧与实践应用练习题集
- 2025年教育机构行政岗位招聘笔试模拟卷与解析
- 公务员送分面试题及答案
- 云南省玉溪市师院附中2026届化学高一上期中质量检测模拟试题含解析
- 2025年邮政快递业务高级从业人员面试模拟题及案例分析
- 2025年初级的软件开发工程师考试模拟题集及答案解析
- 2025年新媒体运营师面试预测题与备考指南
- DBJ-T 13-91-2025 福建省房屋市政工程安全风险分级管控与隐患排查治理标准
- 前脑无裂畸形超声诊断
- 教育技术与现代科技深度融合的策略与建议
- 陕西省专业技术人员继续教育2025公需课《专业技术人员综合素质拓展》4学时题库及答案
- 2025年摩托车发动机配行业深度研究分析报告
- 社保补助代理协议书
- 2物流行业2025年人力资源招聘策略研究
- 大题04 板块模型(解析版)-【三轮冲刺】2025高考物理大题突破
- 统计分析在资产评估中的运用
- 个人提供技术与公司合作协议书范本
- 支气管哮喘防治指南(2024年版)解读
评论
0/150
提交评论