c语言进阶强化练习.doc_第1页
c语言进阶强化练习.doc_第2页
c语言进阶强化练习.doc_第3页
c语言进阶强化练习.doc_第4页
c语言进阶强化练习.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

班级: 姓名: 学号: 成绩:强化练习1:数据类型,表达式,简单程序一、 数据类型与变量申明1 C的基本数据类型主要有以下四种,阅读数据类型说明并抄写3遍类型关键字类型说明在内存中所占空间长度抄写关键字3遍char字符,代表一个字母或者数字、标点符号。1 字节charcharcharint代表一个有符号的整数。-214748364821474836474 字节intintintfloat代表一个精度较低的浮点数(单精度数)4 字节floatfloatFloatdouble代表一个精度较高的浮点数(双精度数)8字节doubledoubleDouble2 按照要求写一条语句:a) 申明名为c的字符变量,并将大写字母A作为初值赋给它: char c=A; b) 申明名为integer的整型变量,并将5000作为初值赋给它: int integer=5000; c) 申明名为f的单精度浮点型变量,并将1.32作为初值赋给它: float f=1.32; d) 申明名为d的双精度浮点型变量,并将23.212作为初值赋给它: double d=23.212 3 在C的一个计算表达式中,参与运算的可以是不同数据类型的变量或值。在这种情况下,低精度的类型会自动转化成高精度的类型。在赋值表达式中,一般是把要赋的值的类型转化为左值(被赋值的变量)的类型。如果在变量或值前面使用强制类型转换,则可以明显地进行需要的类型转换。如:表达式(float)4 将4变成单精度数。这种写法称为强制类型转换。根据上述提示完成下面的填空练习:a) 写一个语句,将浮点数f强制转换成整型并赋值给整型变量i: i=(int)f; b) 将双精度变量d强制转换成单精度数并赋值给单精度变量f: f=(float)d; c) 将双精度变量x强制转换成字符型并赋值给字符型变量c: c=(char)x; d) 在C程序中,表达式1.4 + 3/2 的值为: 2.4 e) 在C程序中,表达式1.4 + 3/2.0 的值为: 2.9 f) 在C程序中,表达式1.4 + (float)3/2 的值为: 2.9 4 C语言的变量名只能由字母、数字和下划线组成,且不能以数字开头,中间不可以有空格。变量名必须见名知意,不可以太短。由于有些编译器不能识别31个以上的字符,所以名称的长度也不要超过31个字符。根据上述提示完成下面的练习:a) 在下列不正确的变量名下面打:5year u&me _1dayWork price$ grade1 _timex x x b) 写一个语句,定义表示平均分的整形变量: int pjf; c) 写一个语句,定义表示总金额的双精度型变量: double sum_money; d) 写一个语句,定义表示年龄的整型变量: int nianling; e) 写一个语句,定义表示出生日的整型变量: int birth; 二、 运算符与表达式1 假定x、y是已经申明的变量。将有关y 和x的代数式转换成C语言表达式:a) y = x2 + 2x +10 ( y=x*x+2*x+10 ) x2 + 5xb) y = ( y=(x*x+5*x)/(x+4) ) x + 42 假设程序中已有定义语句int x = 1, y = 2, c, d; 试写出下面各C语言表达式的值:a) c = (x = = y) 的值为: 0 ; b) d = ( x y 的值为: 0 ; d) x y x的值为: 0 ;e) x= =1 & y 1的值为: 1 ; f) x = = 2 | y = = 2的值为: 1 ;g) !( x y)的值为: 1 ; h) x != y 的值为: 1 ;i) (x = = y)? 5 : 10 的值为: 10 ; j) (x y)? Y : O 的值为: 79 。三、 简单程序 1) 试写出两种仅仅由main函数构成的最简单的程序框架(不包含功能性语句);void main();void main()2) 在上面写出的程序框架中,加上一条语句在控制台显示“我是XXX。”;void main()printf(“我是XXX。n”);3) 在最简单的程序框架中,先申明一个整数变量,表示学生年龄;然后要求操作者从控制台输入一个年龄,并将输入的年龄保存在刚刚申明的变量中;在控制台显示“您输入的年龄是:XXX”,将刚输入的年龄显示出来;void main()int student_age;scanf(“%d”,&student_age);printf(“您输入的年龄是:%dn”,student_age);4) 在最简单的程序框架中,申明两个整数变量,表示两个加数,要求输入两个加数,然后显示这两个加数的和。要求有清晰的文字提示和说明;void main()int x,y;scanf(“%d%d”,&x,&y);printf(“x=%d,y=%d,x+y=%dn”,x,y,x+y);5) 在最简单的程序框架中,申明三个整数变量,要求输入这三个整数,然后分两行显示这三个整数的和及平均值。程序执行要求有清晰的文字提示和说明。void main()int x,y,z;scanf(%d%d%d,&x,&y,&z);printf(x=%d,y=%d,z=%d,x+y+z=%dn,x,y,z,x+y+z);printf(平均值为:%dn,(x+y+z)/3);强化练习2:选择语句,循环语句,函数一、 条件语句1) 写出下列程序执行后屏幕上的显示结果:a) 程序代码 执行后屏幕显示结果:#include void main()int a = 1, b = 2, c;if(a b) c = a;else c = b;printf(“c = %d.n”, c);b) 程序代码 执行后屏幕显示结果:#include void main()int a = 1, b = 2, c;if(a b) c = a + b;else c = a - b;printf(“c = %d.n”, c);c) 程序代码 执行后屏幕显示结果:#include void main()int a = 2, b = 2, c;if(a = b) c = 1;c = 0;if(c) printf(“a = b”);else printf(“a != b”);d) 程序代码 执行后屏幕显示结果:#include void main()int a = 2, b = 2, c;if(a = b) c = 1;else c = 0;if(c) printf(“a = b”);else printf(“a != b”);e) 程序代码 执行后屏幕显示结果:#include void main()int a = 1, b = 2, c =3;a+;a += b;b+;c -= 1;if(1 = a) printf(“ a = 1n”);if(b = 2) printf(“b = 2n”);if(3 = c) printf(“c = 3n”);printf(“a = %d, b = %d, c = %dn”, a, b, c);f) 程序代码 执行后屏幕显示结果:#include void main()int a = 1, b = 2, c =3;a = c;b += 2;if(b = a) printf(“ a 等于b!n”);else if(a b) printf(“a大于b!n”);else printf(“a小于b!n”);printf(“a = %d, b = %d, c = %dn”, a, b, c);2) 根据要求写出简单的程序a) 编写一个简单的程序,首先申明一个整型变量a, 然后提示操作员输入整数并将输入值存放在变量a中。如果输入的整数可以被2整除,则在屏幕上显示“输入的数是偶数!”;如果输入的数能被3整除,则显示“输入的数是3的倍数!”;如果上面两种情况都不是,则显示“输入的数是奇数!”。void main()int a;scanf(%d,&a);if(a%2=0)printf(输入的数是偶数!n);if(a%3=0)printf(输入的数是3的倍数!n);if(a%2&a%3) printf(输入的数是奇数!n);b) 编写一个简单的程序,首先申明两个整型变量a、b, 然后提示操作员输入两个整数并将输入值存放在变量a、b中。如果输入的两个数相等,则在屏幕上显示“输入的两个数相等!”;如果输入的两个数不相等,则显示“两个数的差为XXX!”。最后,不管两个数是否相等,都要在屏幕上显示“输入的两个数的和是XXX!”。这里,要显示出实际的数值代替XXX。void main()int x,y;scanf(%d%d,&x,&y);if(x=y)printf(输入的两个数相等!n);else if(xy)printf(两个数的差为%d!n,x-y);elseprintf(两个数的差为%d!n,y-x);printf(输入的两个数的和是%d!n,x+y);二、 分支转移语句1) 写出下列程序执行后屏幕上的显示结果:a) 程序代码 执行后屏幕显示结果:#include void main()int a =2, b = 3, c;switch(a) case 1: c = a; break; case 2: c = b; b+; case 3: c+; break; default: a+;printf(“c = %d.n”, c);b) 程序代码 执行后屏幕显示结果:#include void main()int a =52, b, c = 1;b = 52 % 5;switch(b) case 0:case 1: c = a / 6; break; case 2: c = a / 5; case 3: c+; break; default: c += a / 4;printf(“c = %d.n”, c);2) 根据要求写出简单的程序a) 写一个简单的程序,提示操作者输入一个百分制的考试成绩(0100分)。如果分数与20相除的商为0,则显示该成绩等级为F;如果商为1,则显示该成绩等级为E;如果商为2,则显示成绩等级为D;依此类推,如果商为5,则显示成绩等级为A。要求程序中使用switch语句。不作要求。不写三、 循环语句1) 写出下列程序执行后屏幕上的显示结果:a) 程序代码 执行后屏幕显示结果:#include void main()int c;for(c=0; c5; c+)printf(“c = %d.n”, c); b) 程序代码 执行后屏幕显示结果:void main()int c=0;while(c 0);d) 程序代码 执行后屏幕显示结果:#include void main() int i = 0;while(1) switch(i) case 0: case 1: printf(“ %d Line. n ”, i); break ; case 2: case 3: printf(“ Line Number is %d. n ”, i); break; default: printf(“ Default line.n ”); i+; if(i = 5) break;e) 程序代码 执行后屏幕显示结果:void main()int m, n;for(m=0; m0; n-)if(m%2)printf(“#”);else printf(“$”); printf(“n”); f) 程序代码 执行后屏幕显示结果:void main()int m, n;for(m=0; m5; m+) for(n = 0; n = m; n+)printf(“*”); printf(“n”); 2) 根据要求写出简单的程序a) 写一个简单的程序,利用while循环语句计算1+2+3+100的和;void main()int sum=0,i=1;while(i=100)sum+=i;i+;printf(%dn,sum);b) 写一个简单的程序,提示操作者输入10个学生的英语成绩,并计算这10个学生成绩的平均值、最大值、最小值,然后将这10学生成绩的平均值、最大值、最小值显示在屏幕上。要求使用循环语句。我采用函数的形式将题目用数组的形式求解,注意理解各个函数的功能。#includevoid arr(int x,int n);double arravg(int x,int n);int arrmax(int x,int n);int arrmin(int x,int n);void main()int a10;arr(a,10);printf(平均值为:%.2fn,arravg(a,10);printf(最大值为:%dn,arrmax(a,10);printf(最小值为:%dn,arrmin(a,10);void arr(int x,int n) /用于输入的学生的成绩的数组for(int i=0;in;i+)printf(第%d学生的成绩:,i+1);scanf(%d,&xi);double arravg(int x,int n) /用于求学生成绩的平均值for(int i=0,sum=0;in;i+)sum+=xi;return (double)sum/n;/强制转换sum为double型,使之平均值能有小数点位。int arrmax(int x,int n) /用于求学生成绩的最大值int max=x0;for(int i=1;in;i+)if(maxxi)max=xi;return max;int arrmin(int x,int n) /用于求学生成绩的最小值int min=x0;for(int i=1;ixi)min=xi;return min;四、 函数1) 写出下列程序执行后屏幕上的显示结果:a) 程序代码 执行后屏幕显示结果:#include void printstars(int number);void main()printstars(5);printstars(3);printstars(5);void printstars(int number) int i; for(i = 0; i number; i+) printf(“*”); printf(“n”);b) 程序代码 执行后屏幕显示结果:#include void printchars(int number, char c);void main()int m;for(m=0; m4; m+)printchars(5, A);void printchars(int number, char c) int i; for(i = 0; i number; i+) printf(“%c”, c); printf(“n”);c) 程序代码 执行后屏幕显示结果:#include int findSum(int a, int b, int c);void main() int x = 5, y = 6, z = 10;printf(“the sum of %d、%d、%d is:%d。n”, x, y, z, findSum(x, y, z);int findSum(int a, int b, int c) return a + b + c;d) 程序代码 执行后屏幕显示结果:#include int findMax(int a, int b, int c);void main() int x = 5, y = 6, z = 10;printf(“the max of %d、%d、%d is:%d。n”, x, y, z, findMax(x, y, z);int findMax(int a, int b, int c) int result; if( a b)result = a; elseresult = b; if (c result) result = c; return result;e) 程序代码 执行后屏幕显示结果:#include int isEven(int a);void main()int x;for(x = 0; x6; x+)printf(“%d is %s。n”, x, isEven(x) ? “even” : ”odd”);int isEven(int a) if(a%2)return 0; return 1;f)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论