C语言习题册.docx

上传人:b****6 文档编号:3301123 上传时间:2022-11-21 格式:DOCX 页数:69 大小:101.27KB
下载 相关 举报
C语言习题册.docx_第1页
第1页 / 共69页
C语言习题册.docx_第2页
第2页 / 共69页
C语言习题册.docx_第3页
第3页 / 共69页
C语言习题册.docx_第4页
第4页 / 共69页
C语言习题册.docx_第5页
第5页 / 共69页
点击查看更多>>
下载资源
资源描述

C语言习题册.docx

《C语言习题册.docx》由会员分享,可在线阅读,更多相关《C语言习题册.docx(69页珍藏版)》请在冰豆网上搜索。

C语言习题册.docx

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的图形。

136101

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1