2021年C语言练习题.docx
《2021年C语言练习题.docx》由会员分享,可在线阅读,更多相关《2021年C语言练习题.docx(100页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、读程序,写成果1.#include main() int a=l, b=4, c=6if (c=a+b)printf(truenn);elseprintf(falsen);)运行成果为:false=示意判断符号两边的值是否相等:=示意将符号右边的值赋给左边的变量本题考点是 挑选结构3种根基形式的第二种挑选结构三种样形式中的“语句皆为复合语句,复合语句要用括起来,只有当复 合语句中只包罗一条语句时可以省略 ,此题即如此,是以两个printf操纵没有加若 c=a+b 成立,则执行 printf(truen);否则(即c=a+b不成立),执行printf(fn);+的 优先级髙于=,是以先算a+b,
2、值为5, 表达式5=6不成立,是以执行 printfCfakeW);即输出字符串false2.#include main() int a=12, b= -34, c=56, min=O;min=a;if(minb)min=b;if(minc)min=c;printf(Hmin=%dH, min);)运行成果为:min=-34本题考点是 挑选结构3种根基形式的第一种共包含了两个挑选结构(两个if语句) 定义变量,并赋值此时a=12, b= -34, c=56, min=O 将a中值拷贝,赋给min,覆盖了 min中的0,此时min中的值被更新为12。若minb成立,则执行min二b;若minc成
3、立,则执行min=c;输出min中的值12大于34,第一个if语句的表达式成立,是以执行min=b;执行后min中的值被更新为 -34.34小于56,第二个if语句的表达式不成立,是以不执行min二c;末了输出min中的值,为-34.3.#include main() int x=2, y= -1, z=5;if(xy)if(y0)z=0;elseprintf(%drr, z);运行成果为:5遇到挑选结构,起首要明白前提表达式成立时执行哪些操纵。本题中,第一个if语句, 其后的复合语句没有大括号( 说明复合语句中只包含一条语句,进而省略了。内层 的if.else.是 挑选结构的第二种根基形式,
4、在 结构上 视为一条语句。是以内层 的if.else. .作为 第一个if语句的 复合语句。若表达式xy成立,则继续判断若y=0),执行z=z+l;输出z2-1,表达式xy不成立,是以不执行内层的ifelse.进而z中的值没有被改变。输出z中的值为54.#include main() float a, b, c, t;a=3;b=7;c=l;if(ab)t=a;a=b;b=t;) if(ac)t=a;a=c;c=t; if(bc)t=b;b=c;c=t;)printf(H%5. 2f, %5. 2f, %5. 2f*, a, b, c);运行成果为:1.00,2.00,7. 00本题包含了 3
5、个if语句,每个if语句后的(都不可省略,因为每个1中都包含了多条 语句若表达式ab成立,则执行(仁a;a=b;b=t;若表达式ac成立,则执行t=a;a=c;c=t;l若表达式bc成立,则执行(匸b;b=c;c=l;输出a, b, c中的值, 对齐要求输出的每个数据宽度为5个空格,小数部分保留2位,数据右3小于7,是以表达式ab不成立,是以不执行t二a;a二b;b=t;3大于1,是以表达式ac成立,则执行t二a;a二b;b二t;。第一句,将a中的3拷贝,粘 贴到I中;第二句,将c中的1拷贝,粘贴到a中,覆盖掉先前的3:第三句。将t中的 3拷贝到c中,覆盖掉c中先前的1.执行完复合语句后实现了
6、 a, c元素的值的交流,a 为1, c为3, t为3。大于c中的3,是以bc成立,执行则执行t=b;b=c;c=t;,过程同上,执行后b为3, c为7, I为7此时输出a, b, c中的 值为1. 00,2. 00,7. 005.#include main () float c=3. 0 , d=4. 0;if ( cd ) c=5. 0;elseif ( c=d ) c=6. 0;else c=7.0;printfC6%. IfXnc);)运行成果为:7. 0此题为if. else.语句的 嵌套,第二if. else.作为 第一个if. else.语句else部 分的复合语句。若表达式cd
7、成立,则执行c=5.0;否则(表达式cd不成立)若表达式c=d成立,则执行c=6. 0;否则,执行c=7. 0;输出c中的值3. 0小于4. 0,是以表达式cd不成立,执行第二个ifelse。3.0不等于4.0,是以表达式c=d不成立,执行c=7.0,将7.0赋给c,覆盖掉c中的3.0,此时c中的值为7.0输出此时的c中的值6.#include main()int m;scanf(M%dM, &m);if(m = 0)if (m%2 = 0) printf(H%d is a positive evennn, m);else priniir%d is a positive oddnM, m);
8、| else if (m % 2 = 0) printf(%d is a negative evennu, m);else printf(0%d is a negative oddn, m);若键入9,则运行成果为:-9 is a negative odd7.#include main() ini num=0; while(num=2) num+; printf(M%dn num) ; 运行成果为:当循环前提numv=2成立的时辰,执行循环体 num+; prinlf(dn”, num) ; )中的 语句。循环初值num为0;循环前提num=2成立第1次循环:执行num+;即将num中的 值加
9、1,执行后num为!;执行prinlf(dn”, num);在 屏幕上 输出num中的 值,即输出I,之后换 行此时num中的 值为1,循环前提num=2成立第2此循环:执行num+;即将num中的 值加!,执行后num为2;执行printf(dn”, num);在屏幕上输出num中的值,即输出2,之后换 行此时num中的值为2,循环前提num=2成立第3此循环:执行num+;即将num中的值加1,执行后num为3;执行prinlf(dn”, num):在屏幕上输出num中的值,即输出3,之后换 行此时num中的值为3,循环前提num=2不成立,结束循环。#include main() int
10、 sum=10, n=l;while(n3) sum=sum-n; n+; )printf(t%d, %d, n, sum);)运行成果为:3, 7当循环前提n3成立的时辰,执行循环体sum=sum-n; n+; 中的语句。循环初值sum为10, n为1;循环前提n3成立第 ! 次循环:执行 sum=sum-n=10-l=9;执行n+,即将n中的值加1,执行后n为2;此时n中的值为2, sum中的值为9,循环前提n3成立,继续执行循环第2次循环:执行sum=sum-n=9-2=7:执行n+,即将n中的值加1,执行后n为3; 输出此时n, sum中的值,即为3,70需要注重,在printf(kt
11、%d, %dM, n, sum);中要求输 出的数据彼此间用逗号间隔,是以成果的两个数据间必然要有逗号9.#include main() int num, c;scanf(%d, &num);do c=num%10; printf(,%d, c); while(num/=10) 0);printf(nnn);1从键盘输入23,则运行成果为:32do while(表达式);先无前提执行循环体,再判断循环前提。注重while (表达式)后有分号定义整型变量num, c;为num赋一个整型值;执行(c二num%10; printf(n%d, c); )直到循环前提(num/=10) 0 不成立;输出
12、换行已知为num赋值23第1次执行循环体执行 c=num% 10=23% 10=3;执行 printf(%d, c);输出 3判断循环前提num/=10等价于num=num。;是以num=230=2, 2大于0,是以循环前提 (num/=10) 0成立,继续执行循环体。执行完第1次循环时,num为2, c为3第2次执行循环体执行 c=2%10=2;执行 printf(%d, c);再输出 2判断循环前提num=20=0,0等于,是以循环前提(num/=10) 0不成立。结束循环10#include main() int s=0, a=5, n;scanf(d”,&n);do s+=l; a=a
13、-2; while(a!=n);printf(H%d, %dnH, s, a);)若输入的值1运行成果为:2, 1执行 s+=l; a=a-2; 直到循环前提a!=n不成立;已知为n赋值l,s为0, a为5第1次执行循环体执行s+=l;等价于s=s+1 =0+1执行 a=a-2; a=5-2=3判断循环前提,3不等于!,是以循环前提a!=n成立,继续执行循环体。执行完第1次循环时,s为1, a为3第2次执行循环体执行 s+=l;等价于 s=s+l=l+l=2执行 a=a-2; a=3-2= 1判断循环前提,1等于1,是以循环前提a!=n不成立,结束循环。执行完第2次循环时,s为2, a为1输出
14、此时s, a中的值,成果为2, 111.include Mstdio. hmain()chare;c=getchar();while=?)putchar(c); c=getchar(); 1参加从键盘输入abede? fgh (回车)运行成果为:abede12.#include main() char c;while(c=getchar() !=$) ifCAv=c&cv=Z) putchar(c);else ifi(av=c&cv=z) putchar(c-32); 当输入为ab*AB%cd#CD$时,运行成果为:ABABCDCD13.#include main() int x, y =0;
15、for(x=l;x=10)break;y=y+x;printfC%d %d”, y, x);运行成果为:105for(表达式1;表达式2;表达式3)(1)先求解表达式1(2)求解表达式2.若其值为真,执行循环体,然后执行(3).若为假,则结束循环, 转到(3)求解表达式3(4)转回上面继续执行(5)循环结束,执行for语句下面的个语句break,跳出循环体;continue,结束本次循环(第i次循环),继续执行下一次循环(第i+1 次循环)此题表达式1为x=l,表达式2 (循环前提)为x=10,表达式3为x+初值x为1, y为0,循环前提(即表达式2) x=10成立,进入循环体第1次循环执行i
16、f语句。小于10, if语句的 前提表达式不成立,不执行break;执行 y=y+x; y=O+l=l转向表达式3,执行x+, x=x+l=l+l=2o循环前提x=10成立,进入第2次循环第2次循环执行if语句。1小于10, if语句的前提表达式不成立,不执行break;执行 y=y+x;y=l+2=3转向表达式3,执行x+, x=x+2+1=3。循环前提x=10成立,进入第3次循环第3次循环执行if语句。3小于10, if语句的前提表达式不成立,不执行break;执行 y=y+x; y=3+3=6转向表达式3,执行x+,x=x+l=3+l=4。循环前提x=10成立,进入第4次循环第4次循环执
17、行if语句。6小于10, if语句的前提表达式不成立,不执行break;执行 y=y+x;y=6+4=10转向表达式3,执行x+,x=x+l=4+l=5。循环前提x=10成立,进入第5次循环执行if语句。10等于10, if语句的 前提表达式成立,执行break,跳出循环。从break跳出至for语句的 下一条语句。执行printf(%d %d”, y, x);输出当前的y与x.成果为!0514.#includemain() char ch;ch=getchar();switch(ch) case A: printf(“c,A);case B: printfC%c, B); break;def
18、ault: printfC%siT, “other);) )当从键盘输入字母A时,运行成果为:ABswitch (表达式)case常量1 :语句1case常量2 :语句2case常量n :语句ndefault :语句 n+1其中表达式,常量1常量n都为整型或字符型case相当于给出执行程序的入口和起始位置,若找到匹配的常量,则从此处最先往下执 行程序,不再匹配常量,直至遇到break或switch结束本题过程:起首从键盘接收个字符A,并将其放在变量ch中。执行switch语句。Switch背面的前提表达式为ch,是以表达式的值即为字符A: 用字符依次与下面的case中的常量匹配。与第1个cas
19、e后的常量匹配,则从其后的语句最先往下执行程序(在执行过程中不 再进行匹配。)是以先执行printf(%c, A),屏幕上输出A!再往下继续执行 printf(c”, B),屏幕上 输出B:再继续执行break, 此时跳出switch语句。#include main() int a=l, b=0;scanf(%d”, &a);switch(a) case 1: b=l ; break;case 2: b=2; break;default: b=10; printf(M%db);)若键盘输入5,运行成果为:10本题过程:起首用scanf函数为 变量a赋值为5.执行switch语句。switch背
20、面的前提表达式为a,是以表达式的值即为5.用5依 次与下面case中的常量匹配。没有找到匹配的常量,是以两个case后的语句都不执 行。执行default背面的语句b= 10:将10赋给变量b。输出变量b,成果为!0#inciude main() _ char grade=,C,;switch(grade)case A: printf(“90100n”);case B: print.“8090n);case C: printf(“70-80n);case D: printf(“60-70n”); break;case E: printf(“60n);default: printf(error!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2021 语言 练习题
限制150内