C语言习题集.docx
《C语言习题集.docx》由会员分享,可在线阅读,更多相关《C语言习题集.docx(8页珍藏版)》请在冰豆网上搜索。
C语言习题集
C语言习题集
1.编写程序,在屏幕上输出以下两行文本(用一个printf()产生)
Uppercaseiis‘I’
LowercaseIis‘i’
2.编写程序,给2个整型变量a和b分别赋值8进制的225和16进制的12e,并用printf()
输出变量a所对应的10进制、8进制、16进制数值。
(输出8进制整数的格式符为%o输出16进制整数的格式符为%x)
3.定义2个长整型变量a和b,并分别赋值1345678和1,编写程序求a与b的和、差、积、商并输出。
(输出长整型数据的格式符为%ld)
4.定义圆半径为一个双精度型变量r,并赋值5.25,编写程序求该圆的周长和面积(∏取3.14)并输出。
(输出实数的格式符为%f)
5.假定一个字符变量C1的值为小写的‘c’,编写程序,将其转换成大写的’C’,并输出大写的’C’的ASCⅡ码值。
6.编写程序,将一个三位数387的个位、十位、百位分离后输出,输出结果为:
a=3,b=8,c=7
7.编程计算出-48%9、48%-9及-48%-9的结果
8.假设每次运算时i的初值均为16,求i+++i和--i-i的值
9.编写程序,将”China”译成密码,密码规律:
用原来的字母后面第4个字母代替原来的字母,例如:
字母“A”后面第4个字母是”E”,用”E”代替“A”,因此,“China”应译为“Glmre”并输出。
10.编写程序,输出双引号”和反斜杠\,并以3位8进制数和2位16进制的转义字符形式输出大写的字母A。
11.已知x=3.6,y=4.2.编写程序,求表达式x+y及(int)x%(int)y的值
12.设b=35.425,c=52.954,编写程序,求b*c并将其值整数化后赋给a1;再将c除以b的值赋给a2
13.已知a=7,b=3,x=2.5,y=4.7,编写程序,求表达式(float)(a+b)/2+a%3*(int)(x+y)%2的值
14.用getchar()和putchar()编写从键盘接收一个字符并输出的程序。
15.已知a=123,b=12345678,编写程序,输出a和b所对应的十进制数、十六进制数。
16.已知a=654.12345,编写程序输出以下结果
:
654.123450:
:
654.12:
:
654.12:
:
6.54e+02:
17.已知字符数组s[]=”welcometohengyang”,编写程序输出以下结果:
:
welcometohengyang:
:
welcometohengyang:
:
welcome:
18.已知银行定期存款的年利率rate为2.25%,并已知存款期为n年,存款本金为capital元,编写程序,计算n年后的本利之和deposit。
要求定期存款的年利率rate、存款期n、存款本金capital均由键盘输入,本利之和deposit只要显示2位小数。
19.编写程序,输入一个华氏温度,要求输出摄氏温度,公式为C=5/9(F-32),输出结果取3位小数。
20.已知a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’,编写程序,使程序能得到以下的输出格式和结果:
a=3,b=4,c=5
x=1.200000,y=2.400000,z=-3.600000
x+y=3.60,y+z=-1.20,z+x=-2.40
u=51274,n=128765
c1=’a’or97
c2=’b’or98
21.编程输出下列表达式的结果:
5&3,5&4,5|3,5|4,5&&3,5&&5,5||3,5||5
11.输入a、b两个整数,如果a=b,则在屏幕输出2行
“OK!
”
“a=b=赋值”
12.输入a、b两个整数,如果a=b,则在屏幕输出2行
“OK!
”
“a=b=赋值”
否则,则在屏幕输出2行
“No!
”
“a=赋值b=赋值“
13.输入a、b两个整数,
如果a=b,则在屏幕输出:
“a=b”
如果a>b,则在屏幕输出:
“a>b”
否则,在屏幕输出:
“a
14.用IF的嵌套编写程序,将输入的三个整数x,y,z,求出3个数当中最大的数。
15.用switch编一程序,输入ABCD后分别输出”perfect””good”“pass”和”NG’,否则显示“inputerror”
16.用IF的嵌套编写程序,将输入的三个整数x,y,z,按大小从左至右依次排列。
17.根据输入的年份判断是否为闰年(能被4整除但不能被100整除或能被400整除的年份为闰年)
18.用switch编一程序,如输入的分数score≥90,则输出”perfect”
70≤score<90,则输出”good”
60≤score<70则输出“pass”
其他则输出”Fail’
19.用switch编一程序,根据键盘输入的月份,输出对应的季度,如输入3则输出“Spring”
19分别用whiledo…while和for循环计算出13+23+33+……+133的和。
20.用双重for循环打印出以下列倒三角形
*****
****
***
**
*
21.用双重for循环打印出以下九九乘法口诀:
1*1=1
2*1=2
2*2=4
3*1=3
3*2=6
3*3=9
4*1=4
4*2=8
4*3=12
4*4=16
5*1=5
5*2=10
5*3=15
5*4=20
5*5=25
6*1=6
6*2=12
6*3=18
6*4=24
6*5=30
6*6=36
7*1=7
7*2=14
7*3=21
7*4=28
7*5=35
7*6=42
7*7=49
8*1=8
8*2=16
8*3=24
8*4=32
8*5=40
8*6=48
8*7=56
8*8=64
9*1=9
9*2=18
9*3=27
9*4=36
9*5=45
9*6=54
9*7=63
9*8=72
9*9=81
22.打印出以下菱形:
----*
---**
--***
-****
*****
-****
--***
---**
----*
23.求任意两个正整数的最大公约数和最小公倍数
24.打印出所有的“水仙花数”。
25.输入以下代码,然后分别设计在i=4时中止循环、继续循环:
Main()
{
Inti;
For(i=1;i<=6;i++)
Printf(“thisis%dloop\n”);
Printf(“weareoutoftheloop\n”);
}
26.将一缸金鱼分5次出售。
第1次卖出全部的一半加1/2条,第2次卖出余下的1/3加1/3条,第3次卖出余下的1/4加1/4条,第4次卖出余下的1/5加1/5条,最后卖出余下的11条,问原来共有多少条金鱼。
27、定义一个长度为6的整型数组a,并赋初值10、11、12、13、14、15,最后输出a[0]=10,a[1]=11,a[2]=12,a[3]=13,a[4]=14,a[5]=15
2801.用循环语句输入8个整数,并找出最小数。
2802.用循环语句输入8个整数,用冒泡法将8个数从小到大进行排序。
29、定义一个3行3列的整型数组a,并赋初值10、11、12、23、24、25、36、37、38,最后输出a[0][0]=10,a[0][1]]=11,a[0][2]=12,
a[1][0]=23,a[1][1]=24,a[1][2]=25,
a[2][0]=36,a[2][1]=37,a[2][2]=38,
30、求一个3行3列的整型数组的对角线元素之和。
31、31、定义一个字符数组,用单个字符+scanf()配合循环语句输入“student”,最后用单个字符+printf()配合循环语句输出。
32、定义一个字符数组,用整个字符串+scanf()输入“student”,最后用printf()输出。
33、输入2个字符串,并用strcmp比较它们大小。
34、定义字符数组str1并赋值“mynameis”,将自己的姓名用gets()输入字符数组str2,
再用strcat将str2连接到str1,最后用puts输出str1。
35、输入2个字符串a和b,要求不用strcat把b的前5个字符连接到a中。
36、输入5个国家的名字并按字母顺序排列输出。
37、在主函数中输入三个整数,在子函数中用if的嵌套比较出最大的数并返回主函数。
38、在子函数中用switch依据主函数输入的月份输出对应的季度,如输入3则输出“Spring”
39、在主函数中输入一个整数给变量x,在子函数中用for循环计算出1~2x之间的整数和
并返回主函数。
39.1、在主函数中建立一个长度为5的float数组并随机输入3个正数和2个负数,然后
在子函数中将该数组中的3个正数求和并返回主函数输出。
40、在主函数中输入一个同学的5门功课成绩,调用函数统计有几门功课及格。
41、在主函数中输入年月日,调用函数计算该日是本年的第几天。
42、在主函数中输入任意n个整数,再输入一个整数m,在n中找出与m最接近的整数,
并用m置换该数。
43、用函数递归调用的方法编写程序计算8的阶乘。
44、编写一个求x的y次幂的递归函数,x为double型,y为int型,要求从主函数输入x、y的值,调用函数求其幂。
45、hanoi塔问题:
一块板上有三根针A、B、C,A针上有3个大小不等的圆盘,大的在下,小的在上,要把这3个圆盘从A针移动到C针上,每次只能移动一个圆盘,移动可以借助B针进行,但在任何时候,任何针上的圆盘都必须保持大盘在下,小盘在上,求移动的步骤。
46、编写fac函数,该函数的功能是计算n!
再调用该函数,计算1!
+3!
+5!
+…+9!
47、定义一个float变量x并从键盘赋值,再定义一个指向x的指针变量px,最后用指针变量px输出x的地址(格式符%X)及x的值(*px)。
48、定义一维整型数组a[5],并初始化其元素值为10,11,12,13,14,再分别用下标法、数组指针法、指针变量法输出其元素值。
49、定义一维整型数且a[5],并初始化其元素值为10,11,12,13,14,再定义一个指向数组a的指针变量p,请用指针法输出a[2]、a[4]的值。
49、定义二维整型数且a[3][3],并初始化其元素值为10,11,12,20,21,22,30,31,32,再定义一个指向数组a的指针变量p,最后用指针法输出数组a中各元素的值。
50、定义一个字符串指针变量p,并将自已姓名的拼音赋值给它,先用下标法显示整个姓名,再通过改变该指针变量的值的方法,只输出你的名字。