Res第五周实验及练习情况总结.doc

上传人:wux****ua 文档编号:9118557 上传时间:2020-04-03 格式:DOC 页数:13 大小:62KB
返回 下载 相关 举报
Res第五周实验及练习情况总结.doc_第1页
第1页 / 共13页
Res第五周实验及练习情况总结.doc_第2页
第2页 / 共13页
Res第五周实验及练习情况总结.doc_第3页
第3页 / 共13页
点击查看更多>>
资源描述
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 (3*3*3+7*7*7+1*1*1=371)result:1 (1*1*1=1)#include stdio.hint main(void) int i, digit, m, n, number, sum; int repeat, ri; scanf(%d,&repeat); for(ri = 1; ri = repeat; ri+) scanf(%d%d, &m, &n); printf(result:n); for(i=m;i=n;i+) number=i;sum=0; while(number!=0) digit=number%10; sum=sum+digit*digit*digit; number=number/10; if(sum=i) printf(%dn, i);40052输入一个正整数n,再输入n个正整数,判断它们是否为素数。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。输出使用以下语句:printf(%d is a primen, m);printf(%d isnt a primen, m);输入输出示例:括号内为说明输入4 (n=4) 1 2 9 17输出1 isnt a prime2 is a prime9 isnt a prime17 is a prime#include #include int main(void) int flag, i, j, k, m, n; scanf(%d, &n); for(i=1;i=n;i+) scanf(%d,&m); if(m=1) printf(%d isnt a primen, m);elsek=sqrt(m); for(j=2;jk) printf(%d is a primen, m); else printf(%d isnt a primen, m);
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!