c语言重零开始习题集.docx
- 文档编号:293627
- 上传时间:2022-10-08
- 格式:DOCX
- 页数:97
- 大小:121.74KB
c语言重零开始习题集.docx
《c语言重零开始习题集.docx》由会员分享,可在线阅读,更多相关《c语言重零开始习题集.docx(97页珍藏版)》请在冰豆网上搜索。
c语言重零开始习题集
习题一
一、概念题
1.C语言的特点是什么?
C语言由于它的下述特点,被广泛地应用于各个领域的程序设计中,具有很强的通用性。
(1)语言简洁:
C语言只有32个关键字,提供了很多语法供程序员尽量简化程序。
(2)运算符丰富:
共提供了34种运算符。
运算符多,运算对象的种类也多。
(3)数据类型丰富:
提供了整型、实型、字符型、枚举型、数组、结构体、共用体、指针、空等9种以上的数据类型。
(4)语法限制不太严格。
(5)允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
(6)生成目标代码质量高,程序执行效率高:
C的目标代码的效率仅比汇编语言低15%。
(7)可移植性好,基本不做修改就能用于各种计算机和各种操作系统。
2.请描述C语言的基本结构。
C语言的结构特点,归纳起来有下面几点。
(1)C程序是由一个或多个函数构成的,有且仅有一个主函数(main函数)。
(2)无论程序中有多少函数,程序的执行总是从main函数开始的,即main函数是整个程序的入口。
(3)函数由函数的首部和函数体两部分组成。
首部包含函数类型、函数名、函数形式参数名、形式参数定义;函数体部分包括说明部分和语句部分,是由最外层的大括弧括起的部分。
(4)C语言书写格式自由,一行内可以写几条语句,一条语句也可以分写在多行。
(5)C语言中使用大括号“{”“}”来表示程序的结构参次范围,左大括号和右大括号应该配对使用。
(6)每条语句和说明的后面必须有一个分号。
(7)可以用/*…*/对程序的任何地方做注释。
3.编写和运行程序的主要步骤有哪些?
编写和运行程序主要有以下步骤:
(1)分析讨论问题并定义数据;
(2)进行算法的设计。
算法的设计过程就是对数据处理步骤的描述过程;
(3)写出可供计算机运行的程序,并交给计算机编译运行;
4.请描述用VC编写和运行程序的主要步骤和具体操作。
.
获得C程序的运行结果需要经过下面几个步骤:
(1)新建VC工程;
(2)编辑源文件;
(3)编译源文件;
(4)连接、执行程序;
(5)查看结果。
二、编程题
1.模仿例题编写一个简单程序能够输出下面的图形:
*
***
*******
解:
#include
main()
{printf("*\n");
printf("***\n");
printf("********\n");
}
2.模仿例题编写简单程序,计算a+b+c的值,并输出。
解:
main()
{inta,b,c;
a=10;
b=20;
c=30;
printf(“a+b+c=%d”,a+b+c);
}
习题二
1.请在下列标识符中,挑选出可用作C语言用户标识符。
voiddefine3_b3_123IFFor-abcCase
beginwhile2aDoSizeof
答:
define_123IFForCasebeginDoSizeof
2.C语言中的整型数据(int)和数学上的整数完全一样吗,有什么区别,请举例说明。
答:
两者不完全相同。
C语言中整型数据(int)所能表示的范围受存储空间的限制,而数学上的整数无限制。
3.写出定义两个整型变量x、y,并分别赋初始值为10、1000的语句。
答:
intx=10;
longy=1000;
4.将下列程序中的整型常量10用符号常量的形式表示。
#include
intmain()
{
intdata[10];
inti;
floataverage=0;
for(i=0;i<10;i++)
{
scanf("%d",&data[i]);
average=average+data[i];
}
average=average/10;
for(i=0;i<10;i++)
printf("%d",data[i]);
printf("\naverage=%f",average);
}
答:
#include
#defineSIZE10
intmain()
{
intdata[SIZE];
inti;
floataverage=0;
for(i=0;i { scanf("%d",&data[i]); average=average+data[i]; } average=average/SIZE; for(i=0;i printf("%d",data[i]); printf("\naverage=%f",average); } 5.运行下面两段程序,观察运行结果有什么不同,找出原因。 (1)#include intmain() { intx,y,temp; x=10,y=1000; printf("x=%d,y=%d\n",x,y); temp=x; x=y; y=temp; printf("x=%d,y=%d\n",x,y); } (2)#include intmain() { intx,y; x=10,y=1000; printf("x=%d,y=%d\n",x,y); x=y; y=x; printf("x=%d,y=%d\n",x,y); } 答: (1)结果: x=10,y=1000 x=1000,y=10 (2)结果: x=10,y=1000 x=1000,y=1000 原因: (2)没有提供暂存变量。 交换时避免变量原值被覆盖。 6.将下列数学式子写成C语言表达式。 答: (1)1/2(x/y+(1.5+x)/(4*a)) (2)1-2*x*x-4*y*y*y 7.假设用变量x、y、z分别表示三条边长,写出判断能否构成三角形的表达式。 答: a+b>c&&a+c>b&&b+c>a 8.假设用变量x、y、z分别表示三角形的三条边,写出判断三角形是否为等边三角形的表达式。 答: x==y&&y==z 9.假设x,y为两个整型变量,并已赋值,如何判断x能否被y整除。 答: (x%y)==0 10.运行下面两段程序,输入相同的数据,观察运行结果有什么不同,找出原因。 并使用强制类型转换运算实现第二段程序的功能。 (1)#include intmain() { floatn; floats; scanf("%f",&n); s=1/n; printf("s=%f\n",s); } (2)#include intmain() { intn; floats; scanf("%d",&n); s=1/n; printf("s=%f\n",s); } 答: (1)0.333333 (2)0 第二种情况为0,是因为操作数的类型为整型,导致除法的操作结果被取整为0。 第二种情况修改如下: #include intmain() { intn; floats; scanf("%d",&n); s=(float)1/n; printf("s=%f\n",s); } 11.编写程序,输入一个3位整数,依次提取出百位、十位、各位上的信息,并输出。 如输入789,则输出7-8-9。 答: #include intmain(void) { intnum,a,b,c; scanf("%d",&num); if(num<100||num>1000) exit(0); a=num%10; b=num%100/10; c=num/100; printf("%d-%d-%d",c,b,a); } 12.编写程序,任意输入一个字符,输出它的ASCII码。 答: intmain(void) { charc; c=getchar(); printf("%chasASCIIcode%d",c,c); } 13.编写程序,任意输入一个字符,输出它在ASCII码表中的前一个字符和后一个字符。 为方便编程,假设输入的字符不是ASCII码表中的第一个字符和最后 答: intmain(void) { charc; c=getchar(); printf("%c%c",c-1,c+1); } 习题三 一.写出下面各表达式的值。 设x=0,y=2,z=-2,a=3,b=4,c=5。 1.x+y 2.z||b+c&&y+z 3.! x 4.(x=b)&&(y=0)&&1 5.! (y+z)+c–10&&y–b/2 解: 1、02、13、14、05、0 二.阅读程序,写出执行结果。 1、请写出当输入x分别为0、1、-1时下面两个程序的执行结果。 (1)main()/*程序1*/ {intx,y; scanf("%d",&x); if(x>=0) if(x>0)y=1; elsey=0; elsey=-1; printf("x=%d,y=%d\n",x,y); }结果为: 当输入0时: x=0,y=0; 当输入1时: x=1,y=1; 当输入-1时: x=-1,y=-1 (2) main()/*程序2*/ {intx,y; scanf("%d",&x); y=-1; if(x! =0) if(x>0)y=1; elsey=0; printf("x=%d,y=%d\n",x,y); }结果为: 当输入0时: x=0,y=-1; 当输入1时: x=1,y=1; 当输入-1时: x=-1,y=0 2、#include main() {inti=0; while(i<=15) if(++i%3! =2)continue; elseprintf("%d",i); printf("\n"); } 结果为: 2581114 3、#include main() {inti,j,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++;} } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 开始 习题集