c语言习题讲解1
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.编写一个程序,输入三个整数,输出其最大者 #include <stdio.h> void main() { int a,b,c; int m; scanf("%d,%d,%d",&a,&b,&c); m = a; if (b > m) m = b; if (c > m) m = c; printf("%d\n",m); }
15.输人并运行给出的程序 #include<stdio.h> void main( ) { char c1=‘a’, c2=‘b’,c3=‘c’,c4=‘01’,c5=‘16’; printf("a%c b%c%c",c1,c2,c3); printf("%c%c",c4,c5); } 在上机前先用人工分析程序,写出应得结果,上机后将二者对照。
10.编写一个程序,输入任意三个小数,显示这三个小数相加 的结果;该结果四舍五入转换成整数输出 #include <stdio.h> void main() { float f1,f2,f3,sum; scanf("%f%f%f",&f1,&f2,&f3); sum=f1+f2+f3; printf("%.1f\n%d\n",sum,(int)(sum+0.5)); }
请对照程序和运行结果分析: ①将一个负整数赋给一个无符 号的变量,会得到什么结果; ②将一个大于32767的长整数 赋给整型变量,会得到什么 结果; ③将一个长整数赋给无符号变 量,会得到什么结果(分别 考虑该长整数的值大于或等 于65535以及小于65535的 情况)。 可以改变程序中各变量的值, 以便比较。例如;a=65580, b=-40000,e=65535, f=65580。
9.编写一个程序,输入4个字符,将输入的字符译成密码。加 密规则是:将原来的字母用字母表中其后面第3个字母来 替换,如字母c换成f,字母y换成b。提示:根据字母的 ASCII码值,按照加密方法对各个字符进行运算后输出
#include <stdio.h> void main() { char ch1,ch2,ch3,ch4; scanf("%c\n%c\n%c\n%c",&ch1,&ch2,&ch3,&ch4); ch1+=3; ch2+=3; ch3+=3; ch4+=3; printf("%c%c%c%c\n",ch1,ch2,ch3,ch4); }
内容回顾----第三章
• • • • • • • 算法 算法表示方法 程序设计的一般方法 C语言三种控制结构 break和continue语句 循环结构的嵌套 goto语句
内容回顾----第四章
• • • • • • 值、引用 数组在内存中的存储方式 字符数组与字符串 字符串的输入、输出函数 字符串操作函数
#include <stdio.h> void main() { int a=0,b=2,c=1; printf("%d\n",!(2<5)); printf("%d\n",7>3&&10>6); printf("%d\n",5>2||4>8); printf("%d\n",a>3&&b>=5); printf("%d\n",a>3||b>=5); printf("%d\n",!(b>=5)); printf("%d\n",!(a==b)); printf("%d\n",!(a=b)); printf("%d\n",a&&b++&&--c); printf("%d\n",a||b--||c++); printf("%d\n",a||b--||++c); printf("%d\n",a||--b||++c); }
习题讲解内容回顾第一章输入输出格式控制符输入输出格式控制符转义字符转义字符程序的开发环境程序的开发环境程序的开发过程程序的开发过程内容回顾第二章数据类型转换内容回顾第三章goto语句内容回顾第四章数组的概念数组的概念一维数组的定义初始化赋值引用一维数组的定义初始化赋值引用二维数组的定义初始化赋值引用二维数组的定义初始化赋值引用数组在内存中的存储方式数组在内存中的存储方式字符数组与字符串字符数组与字符串字符串的输入输出函数字符串的输入输出函数字符串操作函数字符串操作函数从键盘上输入两个整数然后在屏幕上输出这两个数的积
习题讲解
大纲
• 内容回顾 • 习题讲解
内容回顾----第一章
• C程序的基本结构
• printf函数 • scanf函数
• • • • 输入输出格式控制符 转义字符 C 程序的开发环境 C 程序的开发过程
内容回顾----第二章
• • • • • • • • 符号分类(关键字、标识符) 标识符命名规则 基本数据类型 变量 常量 常用运算符和表达式 运算符的优先级与结合性 数据类型转换
17.输入并运行下面的程序 #include<stdio.h> void main( ) { int i,j,m,n; i=8; j=10; m=++i; n=j++; printf("%d,%d,%d,%d",i,j,m,n); } ①运行程序,注意i、j、m、n各变量的 值,分别作以下改动并运行。 9,11,9,10 ②将第4、5行改为: m=i++; n=++j; 再运行。 9,11,8,11
11.判断输入的是数字字符还是其他字符(数字字符范围为 ‘0’-‘9’)。如果是数字字符,输出Yes;如果是其他字符, 输出No; #include <stdio.h> void main() { char ch; scanf("%c",&ch); if (ch>='0'&&ch<='9') { printf("Yes\n"); } else { printf("No\n"); } }
14. 按要求输入并运行下面的程序 ④再将第3、4行改为: c1=a; /*不用单撇号*/ #include<stdio.h> c2=b; void main() 'a' : undeclared identifier { 再使之运行,分析其运行结果。 char c1,c2; ⑤再将第3、4行改为: c1='a'; c1="a"; /*用双撇号*/ c2='b'; c2="b"; printf("%c%c \n ,", c1,c2); cannot convert from 'char [2]' to 'char' } ①运行此程序。 再使之运行,分析其运行结果。 ⑥再将第3、4行改为: ②在此基础上增加一个语句: c1=300; /*用大于255的整数*/ printf("%d%d \n ", c1,c2); c2=400; 再运行,并分析结果。 再使之运行,分析其运行结果。 ③将第2行改为: truncation from 'const int' to 'char' int c1, c2; 再使之运行,并观察结果。
warning C4305: 'initializing' : truncation from 'const int' to 'char'
16.输入并运行下面的程序 #include<stdio.h> void main( ) {int a,b; unsigned c,d; long e,f; a=100; b=-100; e=50000; f=32767; c=a; printf("%d,%d\n",a,b); printf("%u,%u\n",a,b); printf("%u,%u\n",c,d); c=a=e; d=b=f; printf("%d,%d\n",a,b); printf("%u,%u\n",c,d); }
8.从键盘输入一个四位数的正整数,编程实现反序输出这四位 数。 #include <stdio.h> void main() { int x,a,b,c,d,y; scanf("%d",&x); a=x%10; b=(x%100)/10; c=(x%1000)/100; d=x/1000; y=a*1000+b*100+c*10+d; printf("%d\n",y); }
③将程序改为: void main( ) { int i,j; i=8; j=10; printf("%d,%d",i++,j++); } ④在③的基础上,将printf语句改为; printf("%d,%d", ++i, ++j); ⑤再将printf语句改为 printf("%d,%d,%d,%d",i,j,i++,j++); ⑥将程序改为, void main( ) { int i,j,m=0,n=0; i=8; j=10; m+=i++; n-=--j; printf(“i=%d,j=%d,m=%d, n=%d",i,j,m,n);}
4.从键盘上输入一个半径r,输出圆的面积、周长。 #include <stdio.h> void main() { float r,s,l; scanf("%f",&r); s=3.14*r*r; l=2*3.14*r; printf("%.0f\n%.1f\n",s,l); }
5.已知F= 9 ÷ 5 ×C+32 ,其中其中C表示摄氏温度,F表示 华氏温度,从键盘上输入一个摄氏温度,转换为华氏温度 输出。
7.从键盘输入两个整数,交换两个变量的值并输出。 注意:该题要求不借助中间变量来实现,而是借助一系列算术 运算。 #include <stdio.h> void main() { int a,b; scanf("%d,%d",&a,&b); printf("交换前:a=%d,b=%d\n",a,b); a=a-b;b=b+a;a=b-a; printf("交换后:a=%d,b=%d\n",a,b); }
13.编写程序,从键盘输入任意一个数x,求出对应的分段函数y的值并输 出,以2位小数形式。 #include <stdio.h> void main() { float x,y; scanf("%f",&x); if (x<0) { y=x+1; } else { if (x>=0&&x<1) y=11; else y=x*x*x; } printf("%.2f\n",y); }
18.要将“China”译成密码,译码规律是: 用原来字母后面的第4个字母代替 原来的字母。 例如,字母“A”后 #include <stdio.h> 面第4个字母是“E”,用“E”代替 void main() “A”。因此,“China”应译为 { char c1='C',c2='h',c3='i',c4='n',c5='a'; “Glmre”。 请编一程序,用赋初值的方法使c1、c2、 c1+=4; c3、c4、c5五个变量的值分别为'C'、c2+=4; 'h'、'i'、'n'、'a', 经过运算,使 c3+=4; c1、c2、c3、c4、c5分别变为'G'、 c4+=4; 'l'、‘m'、'r'、'e',并输出。 c5+=4; ①输入事先已编好的程序,并运行该 程序。分析是否符合要求。 printf("密码是 ②改变c1、c2、c3、c4、c5的初值为: %c%c%c%c%c\n",c1,c2,c3,c4,c5); 'T'、'o'、'd'、'a'、'y',对译码规 } 律作如下补充:'W', 用'A'代替, 'X',用'B'代替,'Y'用'C'代替, 'Z'用'D'代替。修改程序并运行。 ③将译码规律修改为:将字母用它前 面的第4个字母代替,例如'E'用'A 代替,'Z' 用'U'代替,'D'用'Z'代 替,'C'用'Y'代替,'B'用'X'代替, 'A'用'V'代替。修改程序并 运行。
1. 从键盘上输入两个整数,然后在屏幕上输出这两个数的积。 #include <stdio.h> void main() { int a,b,c; scanf("%d,%d",&a,&b); c=a*b; printf("%d\n",c); }
2.编写C程序,输出以下信息: ********** Very Good! ********** #include <stdio.h> void main() { printf("**********\n"); printf("Very Good!\n"); printf("**********\n"); }
12.先计算再编程检验计 算结果(a=0,b=2,c=1) !(2<5) 7>3&&10>6 5>2||4>8 a>3&&b>=5 a>3 | | b>=5 !(b>=5) !(a= =b) !(a=b) a&&b++&&--c a||b--||c++ a||b--||++c a||--b||++c
#include <stdio.h> void main() { float f; float c; scanf("%f", &c); f = 9.0/5*c+32; printf("%.2f\n", f); }
6.从键盘输入两个整数,交换两个变量的值并输出。 #include <stdio.h> void main() { int a,b; int t; scanf("%d,%d",&a,&b); printf("交换前:a=%d,b=%d\n",a,b); t=a;a=b;b=t; printf("交换后:a=%d,b=%d\n",a,b); }