C语言习题册.docx
- 文档编号:28900159
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:78
- 大小:41.34KB
C语言习题册.docx
《C语言习题册.docx》由会员分享,可在线阅读,更多相关《C语言习题册.docx(78页珍藏版)》请在冰豆网上搜索。
C语言习题册
第一章C语言基础知识
1.读程序
(1)阅读程序,写出运行结果。
#include
main()
{inta,b,c,d;
a=26;
b=6;
c=a/b;
d=a%b;
printf("%d/%d=%d,%d%%%d=%d\n",a,b,c,a,b,d);
}
(2)阅读程序,写出运行结果。
#include
main()
{charx='a',y=98;
printf("%d\t\b%c\n",x,y);
}
(3)阅读程序,写出运行后的结果。
#include
main()
{inta=5,b=12,x,y;
x=a*=4;
y=b--;
printf("%d,%d\n",x,y);
}
(4)阅读程序,写出运行后的结果。
#include
main()
{inta=5,b;
charc='A';
floatd;
b=c;
d=a;
printf("%d,%f,%d,%c\n",b,d,a,c);
}
(5)阅读程序,写出运行后的结果。
#include
main()
{inti=28,j;
chara='a',c='c';
floatf=23.69;
doubled,e=14.6;
j=a=c-i;
d=i*f-e;
printf("%d,%d\n",i,j);
printf("%c,%c\n",a,c);
printf("%f\n",f);
printf("%lf\n",d);
}
(6)阅读程序,写出运行后的结果。
#include
main()
{
inti=1000;
printf("%d\n",i++);
printf("%d\n",++i);
printf("%d\n",i--);
printf("%d\n",--i);
}
2.编程题
(1)编写程序,从键盘上输入学生的三门课程成绩,求总成绩、平均成绩。
(2)编写程序,将a=120.3456按小数、整数部分各占3位,且靠左对齐的格式输出。
(3)编写程序,从键盘上输入一个大写字母,要求用小写字母输出。
(提示:
大写字母比小写字母的小32)
(4)编写程序,用getchar函数读入任意两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
还要求输出这两个字符的ASCII值。
(5)编写程序,有一个梯形的上底为10,下底为20,高为10,求梯形的面积。
(6)编写程序,已知a=8,b=10.4,求ax+6=0的x的值。
(7)编写程序,已知摄氏温度25度,求其华氏温度。
(f=9/5c+32)
(8)编写程序,已知一整数数字5768,利用整数除法求商和余数运算符,求各位数字之和。
(求5+7+6+8的值)
第二章选择结构
1.读程序
(1)阅读程序,写出运行结果。
#include
main()
{
charc='A';
if('0'<=c&&c<='9')
printf("YES");
else
printf("N0");
}
(2)阅读程序,当输入变量a的值为1,变量b的值为2,写出运行结果。
#include
main()
{
inta,b,t=0;
scanf("%d%d",&a,&b);
if(a=2)t=a,a=b,b=t;
printf("a=%d,b=%d\n",a,b);
}
(3)阅读程序,写出运行后的结果。
#include
main()
{
inta=2,b=-1,c=2;
if(a
if(b<0)c=0;
elsec+=1;
printf("%d\n",c);
}
(4)阅读程序,写出运行后的结果。
#include
main()
{
inta,b,c;
a=1;
b=2;
c=3;
if(a>b)
if(a>c)
printf("%d",a);
else
printf("%d",b);
printf("%d\n",c);
}
(5)阅读程序,写出运行后的结果。
#include
main()
{
inta=-1,b=1,k;
if((++a<0)&&!
(b--<=0))
printf("%d%d\n",a,b);
else
printf("%d%d\n",b,a);
}
(6)阅读程序,写出运行后的结果。
#include
main()
{
inta=10,b=0;
if(a=12)
{
a=a+1;
b=b+1;
}
else
{
a=a+4;
b=b+4;
}
printf("a=%d;b=%d\n",a,b);
}
(7)阅读程序,当从键盘输入字母A时,写出运行后的结果。
#include
main()
{
charch;
ch=getchar();
switch(ch)
{
case65:
printf("%c",'A');
case66:
printf("%c",'B');
default:
printf("%s\n","other");
}
}
(8)阅读程序。
①当输入为:
-1-2<回车>,程序的运行结果。
②当输入为:
10<回车>,程序的运行结果。
③为了输出n=4,变量a和b应具备条件。
#include
main()
{
inta,b,m,n;
scanf("%d%d",&a,&b);
m=n=1;
if(a>0)m=m+n;
if(a
else
if(a==b)n=5;
elsen=m+n;
printf("m=%dn=%d\n",m,n);
}
2.编程题
(1)编程判断输入整数x的正负性和奇偶性。
(2)求两数中的较大值。
(3)输入被除数和除数,求商。
(4)比较两个整数的大小。
(5)已知银行整存整取存款不同期限的月息利率分别为:
0.63%期限一年
0.66%期限=年
月息利率=0.69%期限三年
0.75%期限五年
0.84%期限八年
要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。
(6)通过键盘输入字符,将输入的字符分为控制、数字、大写字母、小写字母和其他字符等五类。
(7)在屏幕上显示一张时间表,操作人员根据提示进行选择,程序根据输入的时间序号显示相应的问候信息。
(8)简单计算器。
请编写一个程序计算表达式:
datalopdata2的值。
其中op为运算符+、—、*、/。
(9)输入年份year和月month,求该月有多少天。
判断是否为闰年,可用如下C语言表达式:
year%4==0&&year%100!
=0||year%400==0。
若表达式成立(即表达式值为1),则year为闰年;否则,表达式不成立(即值为0),year为平年。
(10)对输入的行、单词和字符进行计数。
我们将单词的定义进行化简,认为单词是不包含空格、制表符(\t)及换行符的字符序列。
例如:
“a+b+c”,认为是1个单词,它由5个字符组成。
又如:
“xyabc”,为2个单词,6个字符。
(11)从键盘输入任意的字符,按下列规则进行分类计数。
第-类'0','1','2','3','4','5','6','7','8','9'
第=类'+','-','*','/','%','='
第三类其它字符
当输入字符'\'时先计数,然后停止接收输入,打印计数的结果。
(12)输入10个整数,求其中正数的个数及平均值,精确到小数点后两位。
(13)已知一个首项大于0的等差数列的前四项和为26,前四项的积为880,求此数列。
(14)输入a、b、c三个整数,求最小值min。
(15)输入a、b、c、d四个整数,求最小值min和最大值max。
(16)编写程序,输入三角型的三条边长,求其面积。
注意:
对于不合理的边长输入要输出数据错误的提示信息。
第三章循环结构
1.读程序
(1)阅读程序,分别写出i,j,k运行后的结果。
#include
main()
{
inta=10,b=5,c=5,d=5;
inti=0,j=0,k=0;
for(;a>b;++b)
i++;
while(a>++c)
j++;
do
k++;
while(a>d++);
printf(“i=%d,j=%d,k=%d\n”,i,j,k);
}
(2)阅读程序,写出运行后的结果。
#include
main()
{
intn=4;
while(n--)
printf(“%d\n”,--n);
}
(3)阅读程序,写出运行后的结果。
#include
main()
{
inti,j;
for(i=0,j=10;i printf(“i=%d\n”,i); printf(“j=%d\n”,j); } (4)阅读程序,写出运行后的结果。 #include main() { inti=0,j=0,k=0,m; for(m=0;m<4;m++) switch(m) { case0: i=m++; case1: j=m++; case2: k=m++; case3: m++; } printf("\n%d,%d,%d,%d\n",i,j,k,m); } (5)阅读程序,写出运行后的结果。 #include main() { chari,j; for(i=’0’,j=’9’;i printf(“%c%c”,i,j); printf(“\n”); } (6)阅读程序,写出运行后的结果。 #include main() { intk,j,m; for(k=5;k>=1;k--) { m=0; for(j=k;j<=5;j++) m=m+k*j; } printf(“%d\n”,m); } (7)阅读程序,写出运行后的结果。 #include main() { inti,j; floats; for(i=7;i>4;i--) { s=0; for(j=i;j>3;j--)s=s+i*j; } printf(“%f\n”,s); } (8)阅读程序,写出运行后的结果。 #include main() { intx=10,y=10,i; for(i=0;x>8;y=++i) printf("x=%d,y=%d\n",x--,y); } (9)阅读程序,写出运行后的结果。 #include main() { intk=1; charc=’A’; do { switch(c++) { case’A’: k++;break; case’B’: k--; case’C’: k+=2;break; case’D’: k=k%2;continue; case’E’: k=k*2;break; default: k=k/3; } k++; }while(c<’F’); printf(“k=%d\n”,k); } (10)阅读程序,自第一列开始输入数据: 2473<回车>,写出运行后的结果。 #include main() { ints; while((s=getchar())! =’\n’) { switch(s-’2’) { case0: case1: putchar(s+4); case2: putchar(s+4);break; case3: putchar(s+3); default: putchar(s+2);break; } } printf(“\n”); } (11)若从终端上由第一列开始输入数据: right? <回车>,写出程序运行后的结果。 #include main() { charc; c=getchar(); while(c! =’? ’) { putchar(c); c=getchar(); } } (12)阅读程序,写出运行后的结果。 #include main() { inti=1; while(i<=15) if(++i%3! =2) continue; else printf(“%d”,i); printf(“\n”); } (13)阅读程序,写出运行后的结果。 #include main() { inti=0,j=0; while(i<10) i++; while(j++<10); printf(“i=%d,j=%d\n”,i,j); } (14)阅读程序,写出运行后的结果。 #include main() { inti,j,k; charspace=’’; for(i=0;i<=2;i++) { for(j=1;j<=i;j++) printf(“%c”,space); for(k=0;k<=2;k++) printf(“%c”,’*’); printf(“\n”); } } (15)阅读程序,写出运行后的结果。 #include voidmain() { intj,i,k=0; for(j=11;j<=30;j++) { if(k%10==0)printf(“\n”); for(i=2;i if(! (j%i))break; if(i>=j-1) { printf(“%d\t”,j); k++; } } } (16)阅读程序,输入数据: abcd<回车>,写出运行后的结果。 #include main() { charc; while((c=getchar())! ='\n') printf("%4d",c); printf("\n"); } 2.程序填空 (1)下面函数用来计算x的y次方,其中y为整型变量且y>=0。 floatpower(floatx,inty) { floatz; for(z=1;y>0;y___ (1)_____) z____ (2)____; return(z); } (2)已知: 任意一个正整数的立方都可以写成一串连续奇数的和。 例如: 13*13*13=2197=157+159+...+177+179+181 下列程序可以验证上述定理。 #include main() { longintn,i,k,j,sum; printf(“Entern=“); scanf(“%d”,&n); k=n*n*n; for(i=l;i { for(j=i,sum=0;___ (1)____;j+=2) sum+=j; if(____ (2)____) printf(“%ld*%ld*%ld=%ld=form%ldto%ld\n”,n,n,n,sum,i,___(3)___); } } (3) XYZ +YZZ 532 下列程序的作用是求以下算式中X、Y、Z的值。 #include main() {intx,y,z,i,result=532; for(x=1;____ (1)____;x++) for(y=1;____ (2)____;y++) for(z=____(3)____;____(4)____;z++) {i=(____(5)____)+(100*y+10*z+z); if(i==result) printf(“x=%d,y=%d,z=%d\n”,x,y,z); } } (4)华氏和摄氏的转换公式为C=5/9*(F-32),其中C表示摄氏的温度,F表示华氏的温度。 要求输出从华氏0度到华氏300度,每隔20度输出一个值。 #include main() { intupper,step; floatfahr=0,celsius; upper=300;step=20; while(____ (1)____ { ____ (2)_____; printf(“%4.0f,%6.1f\n”,fahr,celsius); ____(3)_____; } } (5)下面的程序输出3到100之间的所有素数。 #include main() { inti,j; for(i=3;i<=100;i++) { for(j=2;j<=i-1;j++) if(____ (1)____)break; if(____ (2)____) printf(“%4d”,i); } } (6)下面的函数gcd(a,b)计算两个整数a和b的最大公因子。 gcd(intnum,intden) { inttemp; while(den) { temp=____ (1)____; num=den; den=temp; } return(____ (2)____); } (7)函数primedec(m)是求整数m的所有素数因子,并输出。 例如: m为120时,输出的素数因子为: 2,2,2,3,5,程序如下: primedec(intm) { intk=2; while(k<=m) if(m%k___ (1)____) { printf(“%d,”,k); ____ (2)_____; } else ____(3)_____; } (8)下面的程序对从终端上接受的正文分别进行字符、字、行计数,并输出。 例如,输入: nowIam preparingfor Clanguagetest 则结果显示: line=3word=8charactor=39 #include main() { intc,n_line=0,n_word=0,n_char=0,inword=0; while((c=getchar())! =EOF) { ++n_char; if(c==’\n’) ++n_line; if(c==’’||c==’\t’||_____ (1)____) _____ (2)_____; else if(inword==0) {_____(3)____; ++n_word; } } printf(“line=%dword=%dcharacter=%d\n”,n_line,n_word,n_char); } 3.编程题 (1)从键盘输入十个整数,求这十个整数之和。 (2)从键盘中读入一系列字符,直到输入字母“a”时才停止。 (3)对输入的行和字符进行计数。 在计算机中,一行是以一个回车符(’\n’)作为行结束标记的,这样在程序中可以通过搜索’\n’对行进行计数。 在UNIX操作系统中,一般有[CTRL+D]作为文件结束标记,其字符码为—l。 当输入[CTRL+D]时表示文件输入结束,停止计数。 (4)输出如下图所示的下三角形乘法九九表。 123456789 ---------------------- 1 24 369 481216 510152025 61218243036 7142128354249 816243240485664 91827364554637281 (5)求1到10的阶乘。 (6)求菲波那奇数列: 数列1、1、2、3、5、8、13、21、…,是著名的菲波那奇数列,其递推通项公式为: Ul =U2 =1 (n=l,2) Un=Un-1+Un-2 (n>=3) (7)为求出第N项的值,请编写程序。 (8)输入一个正整数,要求以相反的顺序输出该数。 例如输入12345,输出位54321。 (9)求555555的约数中最大的三位数是多少? (10)输入10个整数,求其中正数的个数及平均值,精确到小数点后两位。 (11)输入n值,打印下列高为n的等腰三角形。 * *** ***** ******* ********* *********** 当n=6时 (12)输入n值,请编程输出如下图形(例n=3时)。 ** ** * ** ** (13)编程打印数字金字塔。 l 121 12321 1234321 123454321 12345654321 1234567654321 123456787654321 12345678987654321 (14)编程输出下列高度为n的图形。 136101521 2591420 481319 71218 1117
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题