C语言习题及答案可编辑修改word版.docx

上传人:b****6 文档编号:8418423 上传时间:2023-01-31 格式:DOCX 页数:62 大小:53.86KB
下载 相关 举报
C语言习题及答案可编辑修改word版.docx_第1页
第1页 / 共62页
C语言习题及答案可编辑修改word版.docx_第2页
第2页 / 共62页
C语言习题及答案可编辑修改word版.docx_第3页
第3页 / 共62页
C语言习题及答案可编辑修改word版.docx_第4页
第4页 / 共62页
C语言习题及答案可编辑修改word版.docx_第5页
第5页 / 共62页
点击查看更多>>
下载资源
资源描述

C语言习题及答案可编辑修改word版.docx

《C语言习题及答案可编辑修改word版.docx》由会员分享,可在线阅读,更多相关《C语言习题及答案可编辑修改word版.docx(62页珍藏版)》请在冰豆网上搜索。

C语言习题及答案可编辑修改word版.docx

C语言习题及答案可编辑修改word版

习题一

【习题1-1】C语言源程序最多可能由部分组成?

A)预处理部分B)变量说明部分

C)函数原型声明部分D)函数定义部分

【习题1-2】一个完整的C语言源程序最少必须有。

A)若干个主函数B)若干个函数

C)且只能有一个主函数D)一个函数

【习题1-3】C语言以函数为源程序的基本单位最主要有利于。

A)程序设计结构化B)程序设计模块化

C)程序设计简单化D提高程序设计有效性

【习题1-4】要使得C语言编写的程序能够在计算机上运行并得出正确结果,必须要先经过。

A)编辑和链接B)编译和链接

C)修改和运行D运行并输入数据

【习题1-5】选择一个C语言集成开发环境并启动它,然后分别输入【例1-1】、【例1-2】、【例1-3】的源程序,依次编译、链接、运行,看看能否达到预想的结果?

从中了解程序的开发过程。

习题二

一、单项选择题

【习题2-1】已知’A’的ASCII代码是65,以下程序的输出结果是()#include?

"stdio.h"

main()

{int?

c1=65,c2=66;printf("%c,?

%c",c1,c2);

}

A.因输出格式不合法,输出错误信息B.65,66C.A,B?

D.65,66

【习题2-2】若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是()

A.a=a+b,b=a-b,a=a-b;?

?

?

B.t=a,a=b,b=t;C.a=t,t=b,b=a;?

D.t=b;b=a;a=t;

【习题2-3】若k是整型变量,则以下程序段的输出是()k=-8567;

printf?

(“|%d|\n”,k);

A.输出格式不正确?

B.输出为|008567|

C.输出为|8567|?

D.输出为|-8567|

【习题2-4】下列可作变量的标识符是()A.3rt?

B.je_cC.$89?

D.a+6

【习题2-5】C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()

A.必须为字母或下划线B.必须为下划线

C.必须为字母

D.可以是字母、数字和下划线中的任一种字符

【习题2-6】C语言并不是非常严谨的算法语言,在以下关于C语言的不严谨的叙述中,错误的说法是()

A.大写字母和小写字符的意义相同

B.有些不同类型的变量可以在一个表达式中运算

C.在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D.同一个运算符号在不同的场合可以有不同的含义

二、简答题

【习题2-7】C语言数据类型有哪几类?

基本数据类型包括哪几类?

【习题2-8】C语言中十进制、八进制和十六进制整常量是如何表示的?

【习题2-9】C语言为什么规定对所用到的变量“先定义,后使用”,这样做有什么好处?

【习题2-10】C语言中的语句有几类?

控制语句有哪些?

【习题2-11】怎样区分表达式和表达式语句?

为什么有人称C为表达式语言?

【习题2-12】字符常量与字符串常量有什么区别?

【习题2-13】下面各数用八进制和十六进制数表示:

(1)10

(2)32(3)75(4)-617

(5)-111(6)2483(7)-28654(8)21003

三、阅读程序写结果或填空

【习题2-14】写出以下程序的运行结果:

#include

main()

{

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);

}

【习题2-15】写出以下程序的运行结果:

#include

main()

{

intn=177;printf("%o\n",n);

}

【习题2-16】写出以下程序的运行结果:

#include

main()

{

inta,n=0;n+=(a=10);

printf("%d\n",a);

}

【习题2-17】写出以下程序的运行结果:

#include

main()

{

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.2e\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","COMPUTER","COMPUTER");

}

【习题2-18】写出以下程序的运行结果:

#include

main()

{

inti,j,m,n;i=8;

j=10;

m=++i;n=j++;

printf("%d,%d,%d,%d",i,j,m,n);

}

【习题2-19】下面运算表达式的值是:

x+a%3*(int)(x+y)%2/4

设x=2.5,a=7,y=4.7

【习题2-20】下面运算表达式的值是:

(float)(a+b)/2+(int)x%(int)y

设a=2,b=3,x=3.5,y=2.5

【习题2-21】写出下面赋值表达式运算后a的值,设原来a=12;

(1)a+=a

(2)a-=2

(3)a*=2+3(4)a/=a+a

(5)a%=(n%=2),n的值等于5(6)a+=a-=a*=a

【习题2-22】数学表达式:

-5

x>5或x<-5又是如何表达?

请写出相应的C语句。

四、编写程序题

【习题2-23】设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积(4πR2)、圆球体积(V=4πR3/3)、圆柱体积。

用scanf()输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。

请编写程序。

5

【习题2-24】输入一个华氏温度,要求输出摄氏温度。

公式为c=(F-32),

9

输出要有文字说明,取2位小数。

【习题2-25】编程序,用getchar()函数读入两个字符给cl、c2,然后分别用putchar()函数和printf()函数输出这两个字符。

并思考以下问题:

(1)变量c1、c2应定义为字符型或整型?

抑或二者皆可?

(2)要求输出c1和c2值的ASCII码,应如何处理?

用putchar函数还是printf函数?

(3)整型变量与字符变量是否在任何情况下都可以互相代替?

如“charc1,c2;”与“intcl,c2;”是否无条件地等价?

【习题2-26】编写程序,从终端键盘输入圆的半径r,圆柱的高h,分别计算出圆周c1、圆面积cs和圆柱的体积cvz。

输出计算结果要求有文字说明,并取小数点后两位数字。

【习题2-27】编写程序,读入一个字母,输出与之对应的ASCII码,输入输出都要有相应的文字提示。

习题三

一、单项选择题

【习题3-1】“基本结构”不具有以下特点()

A.只有一个入口,只有一个出口B.没有死循环

C.没有永远执行不到的语句D.不允许退出循环

【习题3-2】在流程图中,菱形框表示的操作是()

A.数据的输入输出?

B.程序的开始

C.条件判断D.赋值

【习题3-3】以下程序的运行结果是()#include

main()

{intm=5,n=10;printf("%d,%d\n",m++,--n);

}A.5,9B.6,9

C.5,10D.6,10

【习题3-4】逻辑运算符两侧的数据类型()A.只能是0和1B.只能是0或非0正数

C.只能是整型或字符型数据D.可以是任何类型的数据

【习题3-5】下列关系表达式结果为假的是()

A.0!

=1B.2<=8C.(a=2*2)==2D.y=(2+2)==4

【习题3-6】下列运算符中优先级最低的是()A.?

:

B.+=

C.>=D.==

【习题3-7】写出下面各逻辑表达式的值。

设a=3,b=4,c=5。

a+b>c&&b==c

a||b+c&&b-c

!

(a>b)&&!

c||1

!

(x=a)&&(y=b)&&0

!

(a+b)+c-1&&b+c/2

二、简单题

【习题3-8】什么是算法?

算法有哪些特性?

从日常生活中举出几个算法的例子。

【习题3-9】算法有哪些描述方法?

各有什么优缺点?

【习题3-10】结构化的算法有哪几种结构?

试分别描述。

【习题3-11】选择语句和循环语句对条件的判断的标准是什么?

(即何值为真、何值为假?

三、用传统流程图表示求解以下问题的算法。

【习题3-12】有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换(即A

瓶原来盛醋,现改盛酱油,B瓶则相反);

【习题3-13】依次将10个数输入,要求将其中最大的数打印出来;

【习题3-14】有三个数a、b、c,要求按大小顺序把它们打印出来;

【习题3-15】求1+2+3+…+100;

【习题3-16】判断一个数n能否同时被3和5整除;

【习题3-17】将100~200之间的素数打印出来;

【习题3-18】求两个数m和n的最大公约数;

【习题3-19】求方程式ax2+bx+c=0的根(a、b、c从键盘输入)。

四、编写程序题

【习题3-20】有一函数

写一程序,输入x,输出y值。

【习题3-21】给一个不多于5位的正整数,要求:

①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数为321,应输出123。

【习题3-22】企业发放的奖金根据利润提成。

利润I低于或等于10万元的,奖金可提10%;利润高于10万元,低于20万元(100000

高于20万元的部分按5%提成;400000

从键盘输入当月利润I,求应发奖金总数。

要求:

(1)用if语句编程序;

(2)用switch语句编程序。

【习题3-23】输入4个整数,要求按从小到大的顺序输出。

【习题3-24】输入两个正整数m和n,求其最大公约数和最小公倍数。

【习题3-25】输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

【习题3-26】编写程序实现功能:

输入整数a和b,若a2+b2>100,则输出a2+b2

之和的百位以上的数字,否则直接输出a2+b2的和。

【习题3-27】编写程序判断输入的正整数是否既是5又是7的整数倍。

若是则输出“yes”,否则输出“no”。

【习题3-28】编写程序实现功能:

根据表3-1的函数关系,对输入的每个x

的值,计算出相应的y值。

表3-1习题3-28的函数关系

x

y

x<0

0

0

x

10

10

20

-0.5x+20

【习题3-29】编写程序实现,输入一个整数,判断它能否被3、5、7整除,并输出以下信息之一:

(1)同时被3、5、7整除;

(2)能被其中两个数整除(要指出是哪两个数);(3)能被其中一个数整除(要指出是哪个数);(4)不能被3、5、7中任意一个整数整除。

【习题3-30】用switch编程实现以下函数

【习题3-31】编写程序,用switch实现:

对制成绩,改成相应的A、B、C、D、E表示,90分以上为A,80~89为B,70~79为C,60~69为D,60以下为E。

【习题3-32】编写程序实现功能:

输入一个复数,输出其共轭复数,如,输入2+3i<回车>,输出2-3i。

【习题3-33】求Sn=a+aa+aaa+…+aa…a(n个a)之值,其中a是一个数字。

例如:

2+22+222+2222+22222(此时n=5),n由键盘输入。

 

20

【习题3-34】求∑n!

(即求1!

+2!

+3!

+4!

+…+20!

)。

n=1

 

1005010

2

【习题3-35】求∑k+∑k+∑k。

k=1

k=1

k=1

 

【习题3-36】打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。

例如,153是一水仙花数,因为153=13+53+33。

【习题3-37】每个苹果0.8元,的一天买了2个苹果;从第二天开始,每天买前一天的两倍,直到每天购买的苹果个数达到不超过100的最大值,编写程序求每天平均花多少钱。

【习题3-38】试编写程序,找出1~99之间的全部同构数。

同构数是这样一组数,它出现在平方数的右边。

例如,5是25的右边数,25是625的右边数,所以5和25都是同构数。

【习题3-39】假设x、y是整数,编写程序求xy的最后3位数,要求x、y

从键盘输入。

【习题3-40】一个数如果恰好等于它的因子之和,这个数就称为“完数”。

例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。

编程序找出1000之内的所有完数,并按下面格式输出其因子:

6itsfactorsare1,2,3

【习题3-41】有一分数序列

23581321

,,,,,,…

1235813

求出这个数列的前20项之和。

【习题3-42】一球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下。

求它在第10次落地时,共经过多少米?

第10次反弹多高?

【习题3-43】猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,就只剩一个桃子了。

求第一天共摘多少桃子。

【习题3-44】编程打印出以下图案。

*

***

***3*-*45】用迭代法求x=。

求平方根的迭代公式为

*******

*********

1

xn+1=(xn+a/xn)

2

要求前后两次求出的x的差的绝对值小于10-5。

【习题3-46】用牛顿迭代法求下面方程在1.5附近的根。

2x3-4x2+3x-6=0

【习题3-47】两个乒乓球队进行比赛,各出3人。

甲队为A、B、C3人,乙队为X、Y、Z3人。

已抽签决定比赛名单。

有人向队员打听比赛的名单,A说他不和X比,C说他不和X、Z比,请编程序找出3对赛手的名单。

习题四

一、单项选择题

【习题4-1】一个C程序的执行是从。

A)本程序的main函数开始,到main函数结束

B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序文件的第一个函数开始,到本程序main函数结束

D)本程序的main函数开始,到本程序文件的最后一个函数结束

【习题4-2】以下叙述正确的是。

A)在对一个C程序进行编译的过程中,可发现注释中的拼写错误

B)在C程序中,main函数必须位于程序的最前面

C)C语言本身没有输入输出语句

D)C程序的每行中只能写一条语句

【习题4-3】以下叙述正确的是。

A)main函数不可以有返回值B)main函数不可以有参数

C)函数可以有多个返回值D)函数的形参可以是静态变量

【习题4-4】以下叙述正确的是。

A)void类型的函数体中不可以有return语句B)void类型的函数体中可以有return语句

C)函数体中不可以有多个return语句

D)函数体中定义的变量名称与形式参数的名称可以相同

【习题4-5】以下叙述正确的是。

A)一个程序文件中定义的内部函数,其他文件可以调用它B)一个程序文件中定义的内部函数,其他文件不可以调用它C)不同文件中定义的内部函数不可以有相同的名称

D)函数的定义不能放在调用它的函数之后

【习题4-6】在由多个文件构成的C程序中,以下叙述正确的是。

A)外部变量与局部变量不能同名

B)不同程序文件中可以定义相同名称的内部变量C)只能把外部变量指定为静态存储方式

D)只能把局部变量指定为静态存储方式

【习题4-7】以下叙述正确的是。

A)一个C程序必须由多个函数组成

B)一个C源程序必须包括宏命令

C)C源程序的宏命令以分号标明命令行的结束

D)C注释可以位于源程序的任意位置

二、判断题(正确用×错误用√标记)

【习题4-8】宏替换时先求出实参表达式的值,然后代入形参求值。

()

【习题4-9】.在C语言中,函数不可以嵌套定义,但宏可以嵌套定义。

()

【习题4-10】所有的递归问题都可以用非递归算法来实现。

()

【习题4-11】在C语言中,不同函数体内定义的变量可以同名。

()

【习题4-12】多个文件组成的C语言程序,其中各个文件中可以定义同名函数。

()

【习题4-13】在C语言中,一个函数只能被它所在文件的其它函数调用,称之为内部函数。

()

三、阅读程序写结果或填空

【习题4-14】下列程序执行后的输出结果是。

intfun(intk)

{staticints=0;while(k>0)s=s+k--;returns;

}

main()

{ints,t;s=fun(4);t=fun(5);

printf("s=%d,t=%d\n",s,t);

}

【习题4-15】下列程序执行后的输出结果是。

#include"stdio.h"

inta=0;main()

{inti;

for(i=1;i<=3;i=i+1)

{staticintb=0;intc=1;a++;b++;c++;

printf("%d:

resultis%d\n",i,a+b+c);

}

}

【习题4-16】下列程序执行后的输出结果是。

#include"stdio.h"

intfunc(intn)

{ints;if(n<=1)s=1;elses=2+func(n-1);

returns;

}

main()

{intk=1,s=0;while(k<=4){s=s+func(k);k++;}printf("s=%d\n",s);

}

【习题4-17】下列程序执行后的输出结果是。

#defineM(a,b)(a)>(b)?

(a):

(b)

main()

{inti=10,j=15;printf(“%d\n”,10*M(i,j));

}

【习题4-18】下列程序的输出结果是:

#include“stdio.h”#defineSQR(x)x*x

main()

{inta,k=3;a=SQR(k+1);

printf(“%d”,a);

}

【习题4-19】以下程序运行的结果是

longf(intn)

{longs;if(n==1||n==2)s=2;elses=n+f(n-1);return(s);

}

main()

{longx;x=f(4);

printf("x=%d\n",x);

}

【习题4-20】下列程序的输出结果是?

#defineTap(x)2*x+1

main()

{inta=6,k=2,m=1;a+=Tap(k+m);

printf(“%d”,a);

}

【习题4-21】在以下程序的下划线处填写适当的语句使程序执行的结果4,16,256。

test()

{intx=2;x=x*x;printf("%d,",x);

}

main()

{test();test();test();}

【习题4-22】下列程序的输出结果是#include

intf(intc)

{staticinta=10;intb=++a;return(a+b+c);}main()

{printf(“%d”,f(f(5)));}

【习题4-23】以下函数调用语句中实参的个数是?

Sub1((x1,x2),(x3,x4,x5),x6)

四、程序设计题

【习题4-24】编写一个递归函数计算1+X+2X2+3X3+?

?

?

+nXn

1n=0

F(n,x)=

F(n-1,x)+nXnn>0

【习题4-25】编写递归程序的输出如右所示的结果

*

【习题4-26】编写**递*归程序的输出杨辉三角形

【习题4-27】编写**程**序*计算:

S=直到N!

>106为止。

【习题4-28】编写程序计算1~100之间的素数,并按照由大到小的次序输出。

习题五

一、单项选择题

【习题5-1】在C语言中,数组名代表了。

A)数组的全部元素值B)数组中第一个元素的值C)数组中元素的个数D)数组中第一个元素的地址

【习题5-2】不能把字符串"china"赋予数组a的语句是。

A)chara[8]={'c','h','i','n','a'}B)chara[]="china"

C)chara[8];a="china";D)chara[8];strcpy(a,"china");

【习题5-3】设有如下定义语句:

inta[10]={1,2,3,4,5,6,7,8,9,10};

则下面是正确的数组元素的是。

A)a[a[2]+1]B)a(4)C)a[10]D)a[a[4]+5]

【习题5-4】设a,b是两个已定义的字符数组,则下面语句中正确的是。

A)gets(a,b);B)scanf("%s%s",a,b);C)scanf("%s%s",&a,&b);D)gets("a");gets("b");

【习题5-5】设有定义:

intj=2,a[]={1,2,3,4,5};

则数组a[j]的值为。

A)2B)3C)4D)5

【习题5-6】C语言中,一维数组下标的最小值是。

A)随便B)根据说明C)1D)0

【习题5-7】下面描述中不正确的是。

A)字符数组中可以存放字符串

B)可以对字符数组进行整体输入、输出C)可以对任何数组进行整体输入、输出

D)不能通过赋值运算符"=

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

当前位置:首页 > PPT模板 > 节日庆典

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

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