C练习题.docx
《C练习题.docx》由会员分享,可在线阅读,更多相关《C练习题.docx(13页珍藏版)》请在冰点文库上搜索。
C练习题
第一讲
1、C语言的主要用途是什么?
2、写出C语言编译和运行的过程。
3、编写一个C程序,输出以下信息:
*****************************************
欢迎您!
我是:
*****************************************
4、使用VC创建C语言源程序,编译运行。
5、完成课堂例题程序代码的上机输入,并正确运行。
6、编写C程序在屏幕中显示一个功能菜单。
第二讲
1、编写一个程序,显示一小时有____分,一分有____秒,其中下划线部分用变量代替。
2、编写一程序,由用户输入一个字符,输出该字符的ASCII码。
3、编写一个程序,接受三个数,并相加,求出平均值。
4、编写一个程序计算矩形的面积和周长,边长由用户输入。
5、编写一个程序计算圆柱体的体积,半径与高由用户输入。
6、什么是变量?
7、
什么是常量?
8、基本数据类型有哪些?
9、写出下列程序的运行结果:
#include
voidmain()
{
charc1=’a’,c2=’b’,c3=’c’,c4=’\101’,c5=’\116’;
printf(”a%cb%c\tc%c\tabc\n”,c1,c2,c3);
printf(“\t\b%c%c\n”,c4,c5);
}
10、要将“China”译成密码,密码规律是:
用原字母后面的第四个字母代替原来的字母。
如,字母“A”后面第4个字母是“E”。
因此,“China”译成密码为“Glmre”。
编写程序给变量c1、c2、c3、c4、c5赋值分别为‘C’、‘h’、‘i’、‘n’、‘a’,译成密码并显示在屏幕上。
11、C程序如下:
#include
voidmain()
{
Intc1,c2;
c1=97;
c2=98;
printf(“%c%c\n”,c1,c2);
printf(“%d%d\n”,c1,c2);
}
分析运行时会显示什么信息?
为什么?
课堂代码:
1
#include
voidmain()
{
intinum;
floatfnum;
doublednum;
charch;
inum=500;
fnum=12.1982;
dnum=100.282837;
ch='p';
printf("整型数据:
inum=%d\n",inum);
printf("浮点数fnum=%f\n双精度数dnum=%lf\n字符ch=%c\n",fnum,dnum,ch);
}
课堂代码:
2
#include
voidmain()
{
intnum1,num2,i,j;
printf("请输入两个整数(用逗号隔开):
");
scanf("%d,%d",&num1,&num2);
i=num1+num2;
printf("两个数和是i=%d\n",i);
printf("变量num1的内存地址编号是:
%d\n",&num1);
i+=5;
printf("变量i增加5结果是i=%d\n",i);
j=i%4;
printf("%d除以4余数是:
%d\n",i,j);
printf("num1=%d\n",++num1);
//printf("num1=%d\n",num1);
}
第三讲
1、求下面算术表达式的值:
(1)x+a%3*(int)(x+y)%2/4,设x=2.5,a=7,y=4.7
(2)(float)(a+b)/2+(int)x%(int)y,设a=3,b=3,x=.35,y=2.5
2、写出下面程序的运行结果:
#include
voidmain()
{
inti,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf(”%d,%d,%d,%d\n”,i,j,m,n);
}
3、写出下面赋值表达式运算后a的值,设原来a=12:
(1)a+=a;
(2)a-=a;
(3)a*=2+3;
(4)a/=a+a;
(5)a%=(n%=2);n的值等于5
(6)a+=a-=a*=a;
4、C语言中如何表示“真”和“假”?
系统如何判断一个量的“真”和“假”?
5、写出下面各逻辑表达式的值。
设a=3,b=4,c=5。
(1)a+b>c&&b==c
(2)a||b+c&&b-c
(3)!
(a>b)&&!
c||1
(4)!
(x=a)&&(y=b)&&0
(5)!
(a+b)+c-1&&b+c/2
6、编写程序,进行位运算。
&,|,~,^.
第四讲
1、若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。
想得到以下输出格式和结果,请写出命令代码,有定义变量和类型,输出函数的参数。
要求输出的结果如下:
a=3b=4c=5
x=1.200000,y=2.400000,z=-3.600000
x+y=3.60y+z=-1.20z+x=-2.40
u=51274n=128765
c1=’a’or97(ASCII)
c2=’b’or98(ASCII)
2、请写出下列程序的输出结果:
#include
Voidmain()
{
Inta=5,b=7;
Floatx=67.8564,y=-789.124;
Charc=’A’ ;
Longn=1234567 ;
Unsignedu=65535;
Printf(“%d%d\n”,a,b);
Printf(“%3d%3d\n”,a,b);
Printf(“%f,%f\n”,x,y);
Printf(“%-10f,%-10f\n”,x,y);
Printf("%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n",x,y,x,y,x,y);
Printf(“%e,%10.2\n”,x,y);
Printf(“%c,%d,%o,%x\n”,c,c,c,c);
Printf(“%ld,%lo,%x\n”,n,n,n);
Printf(“%u,%o,%x,%d\n”,u,u,u,u);
Printf(“%s,%5.3s\n”,”OCMPUTER”,”COMPUTER”);
}
3、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。
问在键盘上如何输入?
#include
voidmain()
{
inta,b;
floatx,y;
charc1,c2;
scanf(“a=%db=%d”,&a,&b);
scanf(“%f%e”,&x,&y);
scanf(“%c%c”,&c1,&c2);
}
4、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf函数输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。
5、输入一个华氏温度,要求输出摄氏温度℃。
公式为:
c=5/9*(F-32),输出要有文字说明,取2位小数。
6、书中88页习题4.4,4.5,4.6,4.8,4.9
7、编写程序,输出下列格式信息:
学号姓名性别年龄电话
001王红民男35138********2
第一周总结
1、编写一个程序,读取两个整数,计算并显示第一个数是否是第二个数的整数倍。
2、编写程序,输入有五位数字的数,把这个数的每一位分解成为单个数字。
显示每个数字。
3、南京的电话号码是5或8字开头的八位数字;5字开头的第二位数字是2或者8;8字开头的第二位是3、4、5、6或者7。
用一个变量m存放电话号码。
请写出判断电话号码是否符合上述规定的表达式。
第五讲
1、有数学函数:
当x<1时,y=x;当1≤x<10时,y=2x-1;当x≥10时,y=3x-11。
编写程序,输入x,输出y的值。
2、输入一个百分制的成绩,要求输出成绩的等级‘A’,‘B’,‘C’,‘D’,‘E’。
90分及以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。
3、企业发奖金是根据利润按比例提成。
利润I低于或等于100000元的,奖金可提10%;
利润高于100000元,不高于200000元时,低于100000元部分提10%,高于100000部分提7.5%;
利润高于200000元,不高于400000元时,高于200000元部分提5%,其它如前;
利润高于400000元到600000元的部分按3%提成;
利润高于600000元到1000000元的部分按1.5%提成;
利润高于1000000元的部分按1%提成。
从键盘输入当月利润I,求应发奖金总数,并显示。
4、输入三个整数,输出其中最大的数。
5、
编写C程序,解一元二次方程ax2+bx+c=0。
输入a、b、c三个系数,求出解x1和x2。
x=(-b±√b2-4ac)/(2a)。
6、输入一个4位整数,判断是否为闰年。
7、接受三个数,判断能否构成三角形,判断是否是等边三角形、等腰三角形、直角三角形,能则计算出面积,否则提示不能构成三角型。
area=
其中s=(a+b+c)/2。
8、设计一程序,实现简单计算机功能,即能完成加、减、乘、除运算。
如:
输入:
2.5*4,则输出为:
2.5*4=10
第六讲
1、将从1到200的奇数累加,显示其和。
2、在屏幕显示九九乘法表。
3、用‘*’号在屏幕上打印等腰三角形。
4、找出1到100之间的质数(只能被1和自己整除),并打印。
5、输入两个正整数m和n,求最大公约数和最小公倍数。
6、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
7、水仙花数是指一个三位数,其各位数字立方和等于该数本身。
如:
153=13+53+33。
输出所有的水仙花数。
8、一个数如果恰好等于它的因子之和,这个数称为完数。
如,6的因子是1、2、3,而6=1+2+3,所以6是完数。
找出1000以内的所有完数,并显示完数和其因子。
9、有一个分数序列:
2/1,3/2,5/3,8/5,13/8,21/13,···。
求出这个数列的前20项之和。
10、一个球从100米的高度自由落下,落地的反弹系数是0.7,再落下,再反弹。
求它在第10次落地时,共经过多少米?
第10次反弹多高?
11、猴子吃桃问题。
猴子第一天摘了若干桃子,立刻吃掉了一半,还多吃了一个;第二天吃了剩下的一半,又多吃一个。
以后每天吃掉前一天剩下的一半多一个。
到第十天想吃时只剩一个桃子了。
求第一天共摘了多少桃子。
12、用“*”符号在屏幕上显示菱形图形。
13、输入一个行数,显示用英文字母组成的等腰三角形。
第七讲
1、编写程序,由用户输入5个数,保存在数组中。
然后将该数组的值倒置存放并显示。
2、输入10个整数,进行排序,显示在屏幕上。
3、在一个3×3的整数矩阵中输入数据,计算并显示对角线元素之和。
4、输入一个数,按排序的顺序插入数组中。
5、输出10行杨辉三角形,对称显示。
6、输入整数n,输出n×n的自然数构成的魔方阵。
魔方阵的每一行、每一列和对角线的元素之和均相等。
7、有15个数按降序存放在一个数组中,输入一个数,用折半查找法,找出该数是数组中第几个元素。
如果没查到,则显示“无此数”。
8、读入一组(10个)整数到一维数组中,设计一程序,找出其中最大的偶数和最大的奇数(若没有奇数时则输出“没有奇数!
”)并输出。
9、计一程序,输出转置后的结果(用不更换元素值与更换元素值两种方法)。
例如:
123415913
5678261014
9101112371115
13141516481216
10、利用一个二维数组floatcla[50][2]来存放一个班级的两门课程(C++和计算机应用基础)成绩。
先输入一个班的人数(<50),再输入每一个人的两门课程的成绩,设计一个程序,求出全班的平均成绩和每一门课程的平均成绩。
第八讲:
1、定义十个元素的数组,输入十个整数。
用比较法或冒泡法进行排序,分别输出升序和降序后的数组。
2、编写C语言程序,进行书籍信息管理。
通过结构体定义存储书籍的编号、名称、价格、和数量。
输入5个书籍的信息,存入一个结构体数组中,计算并显示书籍的名称及其总价格。
显示库存书籍的总金额。
3、通过结构体数组来存储5个学生的姓名和成绩。
按照成绩降序对数组进行排序并显示。
4、定义一个结构体,包括日期的年、月、日。
输入日期,计算该日在本年中是第几天?
注意要考虑闰年问题。
5、存放10个学生的信息,包括学号、姓名、数学、语文、英语分数,从键盘输入数据。
输出3门课程的总平均分,各科成绩和总分最高分的学生学号和姓名,列表输出所有学生的信息。
第九讲
1、声明一个整数数组,输入数据使用指针操作进行升序排序。
2、定义结构体类型和变量,输入数据,用指针进行操作;
3、将数组(10个数)排序,然后从键盘输入一个数,并将其按顺序插入到数组中。
7、给歌手评分,用数组存放十个评委的打分,计算:
去掉一个最低分,去掉一个最高分,歌手最终得分显示。
8、输入一个整数,用循环计算的方法把整数转换成二进制数并打印。
第十讲
1、编写一个程序实现将两个字符串连接起来。
2、编写一个程序实现字符串复制的功能。
3、编写一个程序,从键盘输入两个字符串,用函数strcmp比较两个字符串,显示比较的结果。
4、编写一个程序,从键盘输入一个字符串,统计26个英文字母出现的次数(不区分大小写),显示统计结果。
5、编写一个程序,输入数组的长度,创建整型数组,输入若干数据,进行降序排序,显示结果。
6、创建字符串数组,输入10个字符串存放在数组中,进行降序排序,显示数组中的字符串。
第十一讲
1、编写一个数组排序的函数,实现不同长度的整型数组排序。
2、用函数的方法解一元二次方程。
3、编写两个函数,把华氏温度转换成摄氏温度和把摄氏温度转换华氏温度。
以整齐的列表形式打印输出摄氏温度从0到100对应的华氏温度。
4、写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并且显示结果。
从键盘输入两个整数。
5、写一个函数判断质数,在主函数中输入一个整数,调用函数判断,输出是否是质数的信息。
6、写一个函数,将一个3*3的二维数组中的元素值进行转置,即行与列互换。
7、写一个函数,将输入的字符串倒置存放,在主函数中输入和输出字符串。
8、写一个函数,将两个字符串连接起来。
9、写一个函数,将一个字符串中的元音字母复制到另一个字符串中,然后输出。
10、写一个函数,判断一个字符串是否是数字字符串,如果是数字字符串,就将字符串转化为整数。
11、编写程序,输入一个字符串,写一个函数,将字符串中由字母开头后面是字母或数字的连续的字符串提取并显示出来。
12、写一个函数,输入一个十六进制数字,输出相应的十进制数字。
13、输入今天日期年、月、日数据,用函数计算距2008北京奥运会倒计时的天数。
并且显示。
第十二讲
1、通过结构体数组来存储5个学生的姓名和成绩。
按照成绩降序对数组进行排序,把数组中的数据保存在文件中。
打开文件读取学生信息并显示。
2、编写一个程序,多次从键盘输入一些字符,并保存在文件中。
打开文件读取文件中的所有字符,统计26个英文字母出现的次数(不区分大小写),显示统计结果。
3、足球小组循环赛,输入4个球队每场比赛的比分,记录每个球队的积分、净胜球数、进球数、失球数,为小组赛排名次。
使用文件,结构体,函数,数组进行编程。