c语言重零开始习题集Word格式.docx
《c语言重零开始习题集Word格式.docx》由会员分享,可在线阅读,更多相关《c语言重零开始习题集Word格式.docx(97页珍藏版)》请在冰豆网上搜索。
(7)可以用/*…*/对程序的任何地方做注释。
3.编写和运行程序的主要步骤有哪些?
编写和运行程序主要有以下步骤:
(1)分析讨论问题并定义数据;
(2)进行算法的设计。
算法的设计过程就是对数据处理步骤的描述过程;
(3)写出可供计算机运行的程序,并交给计算机编译运行;
4.请描述用VC编写和运行程序的主要步骤和具体操作。
.
获得C程序的运行结果需要经过下面几个步骤:
(1)新建VC工程;
(2)编辑源文件;
(3)编译源文件;
(4)连接、执行程序;
(5)查看结果。
二、编程题
1.模仿例题编写一个简单程序能够输出下面的图形:
*
***
*******
解:
#include<
stdio.h>
main()
{printf("
*\n"
);
printf("
***\n"
********\n"
}
2.模仿例题编写简单程序,计算a+b+c的值,并输出。
{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用符号常量的形式表示。
intmain()
{
intdata[10];
inti;
floataverage=0;
for(i=0;
i<
10;
i++)
{
scanf("
%d"
&
data[i]);
average=average+data[i];
}
average=average/10;
%d"
data[i]);
\naverage=%f"
average);
#defineSIZE10
intdata[SIZE];
SIZE;
average=average/SIZE;
5.运行下面两段程序,观察运行结果有什么不同,找出原因。
(1)#include<
intx,y,temp;
x=10,y=1000;
printf("
x=%d,y=%d\n"
x,y);
temp=x;
x=y;
y=temp;
(2)#include<
intx,y;
x=10,y=1000;
printf("
x=y;
y=x;
(1)结果:
x=10,y=1000
x=1000,y=10
(2)结果:
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<
floatn;
floats;
scanf("
%f"
n);
s=1/n;
s=%f\n"
s);
intn;
(1)0.333333
(2)0
第二种情况为0,是因为操作数的类型为整型,导致除法的操作结果被取整为0。
第二种情况修改如下:
s=(float)1/n;
11.编写程序,输入一个3位整数,依次提取出百位、十位、各位上的信息,并输出。
如输入789,则输出7-8-9。
intmain(void)
intnum,a,b,c;
scanf("
num);
if(num<
100||num>
1000)
exit(0);
a=num%10;
b=num%100/10;
c=num/100;
%d-%d-%d"
c,b,a);
12.编写程序,任意输入一个字符,输出它的ASCII码。
charc;
c=getchar();
%chasASCIIcode%d"
c,c);
13.编写程序,任意输入一个字符,输出它在ASCII码表中的前一个字符和后一个字符。
为方便编程,假设输入的字符不是ASCII码表中的第一个字符和最后
charc;
c=getchar();
%c%c"
c-1,c+1);
习题三
一.写出下面各表达式的值。
设x=0,y=2,z=-2,a=3,b=4,c=5。
1.x+y<
z&
b==c
2.z||b+c&
y+z
3.!
x<
y&
c||1
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*/
y=-1;
if(x!
=0)
}结果为:
当输入0时:
x=0,y=-1;
x=-1,y=0
2、#include<
sdtio.h>
main()
{inti=0;
while(i<
=15)
if(++i%3!
=2)continue;
elseprintf("
i);
\n"
结果为:
2581114
3、#include<
main()
{inti,j,k=0;
for(j=11;
j<
=30;
j++)
{if(k%10==0)
for(i=2;
j;
if(!
(j%i))break;
if(i>
=j-1)
{printf("
%d\t"
j);
k++;
}