程序设计基础C离线作业文档格式.docx
《程序设计基础C离线作业文档格式.docx》由会员分享,可在线阅读,更多相关《程序设计基础C离线作业文档格式.docx(41页珍藏版)》请在冰豆网上搜索。
编译并运行程序,程序运行时输入两个整数,2040,观察程序运行的结果。
2.编辑、调试以下程序
在VisualC++环境下新建文件可用[开始]→[程序]→[MicrosoftVisualC++6.0]→[MicrosoftVisualC++6.0]→[文件]→[新建]→[文件]→[C++SourseFile],输入文件名ex1-2.c
步骤2:
在文本编辑器中输入以下C程序
#include<
ex1-2-2.c>
intand(int,int);
/*函数的说明,告诉系统在主函数中要调用and函数*/
intor(int,int);
%d%d"
c=and(a,b);
%d&
&
%d=%d\n"
/*调用系统输出函数printf,%d为格式控制符,依次用后面的变量值填充,以整数形式输出*/
c=or(a,b);
%d||%d=%d\n"
[文件]→[新建]→[文件]→[C++SourseFile],输入文件名ex1-2-2.c,源程序代码为:
intand(inta,intb)
{
intc;
c=a&
b;
returnc;
步骤4:
[文件]→[新建]→[文件]→[C++SourseFile],输入文件名ex1-2-3.c,源程序代码为:
intor(inta,intb)
c=a||b;
步骤5:
点击编译图标
,编译程序1-2.c
点击执行图标
,执行程序1-2.c,当程序运行时,键盘输入2040,按回车。
2040
20&
40=1
20||40=1
您可以输入其它的整数,观察程序的执行结果。
第2章 输入输出程序设计
1.用printf输出一个中空的五角星。
#include<
intmain()
printf("
*\n"
);
**\n"
************\n"
***\n"
****\n"
2.仿照例子2.2,定义一个字符数组,从键盘输入一字符串,然后输出的程序。
/#include<
charstring[20];
scanf("
%s"
string);
%s\n"
3.从键盘输入十六进制整数,转化为八进制数输出。
//inta;
%x"
a);
%o"
a);
4.只定义两个整型数据并赋值,实现两个整型数的互换。
//inta=1,b=2;
a^=b;
b^=a;
a^=b;
%d_%d"
b,a);
5.从键盘上输入一个整数,分别输出8、16进制数的程序。
//inta;
%x\n"
%o\n"
6.从键盘上输入一个整数,分别输出它的个位数,十位数,百位数。
%d"
%d\n"
a%10);
a%100/10);
a%1000/100);
7.以下程序输出结果是(9,10)。
voidmain()
inti=010,j=10;
%d,%d\n"
++i,j--);
}
8.运行程序,屏幕提示“您是一个学生吗”,您输入’y’或’n’进行回答,屏幕输出您的选项。
//charstr;
您是一个学生吗?
\n"
输入’y’或’n’进行回答\n"
str=getchar();
if(str=='
y'
||str=='
Y'
)
printf("
Yes.\n"
elseif(str=='
n'
N'
)
No.\n"
else
你的回答不明确!
9.从键盘输入一个角度x,求10*sin(x)的值。
//#include<
Math.h>
#definePI3.14
inti;
floatj;
请输入角度:
i);
j=10*sin((float)i/180*PI);
结果为:
%f\n"
j);
system("
pause"
第3章 循环程序设计
1.以下for语句的循环次数是多少?
3次
inti,j=3;
for(;
i=j;
i--,j--)printf("
i);
2.下面的语句显示输出6行6列的整数数组h的主对角线上的所有元素,请补充完整:
for(inti=0;
i<
6;
i++)
h[i][i])
3.写出以下程序运行的结果,此程序实现了什么功能?
输出1,查找数值0存在的个数
{inta[10]={2,4,0,-5,10,6,-8,9,6,7};
inti,count=0;
for(i=0;
10;
i++)
if(a[i]==0)count++;
elsecontinue;
%d\n"
count);
4.写出以下程序的功能。
数组颠倒
inta[10]={2,4,0,-5,10,6,-8,9,6,7},tmp,k;
for(k=0;
k<
10/2;
k++)
tmp=a[k];
a[k]=a[10-k-1];
a[10-k-1]=tmp;
5.写出以下程序运行后的输出结果。
用星画出的倒三角图形
inti,j;
6;
{
for(j=0;
j<
i;
j++)
"
for(j=0;
2*(5-i)-1;
*"
6.请改正下列程序的错误,改正后的程序写在右边的空白处,并上机调试检验。
(1)
voidmain()
inti,s;
i=1;
s=0;
while(i<
=100){
s=s+i;
i++;
printf(“1+2+3+….+99+100=%d\n”,s);
(2)
s=0;
(3)
inti=1,s;
=100)
8.输入一个基数,例如输入9,输出为:
求1*3*……*9的值。
输出为:
1*3*5*7*9=945
//inta=9,b=1,i=1;
for(;
=a;
if(i%2)continue;
b+=b*i;
9.输入一个5~10之间的整数n,求1!
+2!
+3!
+…+n!
。
例如输入5,输出为:
1!
+…+5!
=153
//ints=0,p=1,i,n,j;
n);
if(n<
5||n>
10)
return0;
for(i=1;
=n;
p=1;
for(j=1;
=i;
p*=j;
s+=p;
s);
9.在屏幕上输出以下内容
1
12
123
1234
12345
123456
1234567
12345678
123456789
//inti=1;
for(i=1;
=9;
intd=1;
charst[10]={0};
for(d=1;
d<
d++)
{
charstr[10]={0};
itoa(d,str,10);
strcat(st,str);
}
st);
10.求2+4+6+……+98+100的和,用多种for表达式来完成。
//inti=0,st=0;
for(i=0;
=100;
i+=2)
st+=i;
11.输入一行字符,统计它有多少个字母?
chars[100]={0};
%s,%d"
s,strlen(s));
第4章 分支程序设计
1.输入若干整数给x,使用if语句输出x的绝对值,当输入0时结束。
ints=0;
s);
if(abs(s)==0)return0;
2.输入一批数,输出比相邻数大的数,当输入0时结束。
intx=0,last=0;
while
(1){
请输入x值:
"
scanf("
&
x);
if(x==0)
{
break;
}
if(x>
last)
x比相邻数大:
fabs(x));
last=x;
3.将输入字符的大写字符转换成小写字符输出,小写字符原样输出。
charstr[100]={0};
intlen=0;
inti=0;
请输入字符:
str);
len=strlen(str);
for(i=0;
i<
len;
i++)
if('
A'
<
=str[i]&
str[i]<
='
Z'
str[i]+=32;
}
转换后字符:
4.输入一批字符,按回车时结束,统计小写字符、大写字符、数字字符、或其它字符的个数。
intupchar=0,lowchar=0,number=0,other=0;
str);
i++){
{
upchar++;
elseif('
a'
z'
lowchar++;
elseif('
0'
9'
number++;
else
other++;
大写字符:
%d小写字符:
%d数字字符:
%d其他字符:
upchar,lowchar,number,other);
5.编写程序,计算分段函数:
if(x<
=1)
y=x+5;
else
10)
y=2x;
y=3/(x-10);
6.根据输入的百分制按五分制的成绩输出。
百分制与五分制之间的关系见下表。
百分制
五分制
90~100
5
80~89
4
70~79
3
60~69
2
60
1
intsum=0,let=0;
sum);
if(sum>
=90&
sum<
=100)
let=5;
}elseif(sum>
=80&
=89)
let=4;
=70&
=79)
let=3;
=60&
=69)
let=2;
}else{
let=1;
let);
7、用switch完成:
读入一个实数x,再输入一整数,若输入是1,则计算sin(x),若输入2,则计算cos(x),若输入3,则计算tan(x),若输入其他值,则显示错误信息。
floatx=0;
inty=0;
请输入一个实数:
%f"
请输入一个整数:
y);
switch(y){
case1:
printf("
sin(x));
break;
case2:
cos(x));
case3:
tan(x));
default:
你输入了错误的整数!
8、用switch完成:
输入星期1到星期5,输出它们对应的颜色
星期1:
blue
星期2:
red
星期3:
white
星期4:
yellow
星期5:
green
inty=0;
请输入一个星期(12345):
switch(y)
blue"
red"
white"
case4:
yellow"
case5:
green"
你输入了错误的星期数(不属于1~5)!
break;
9、用switch完成:
从键盘输入A、B、C、D四个等级中的一个,转化输出
等级
输出
A
优秀
B
良好
C
中等
D
及格
E
不及格
chary=0;
%c"
case'
:
优秀"
B'
良好"
C'
中等"
D'
及格"
E'
不及格"
第5章 数组及其应用
1.从键盘输入12个数,分别为:
900,2,3,58,34,76,87,72,90,20,78,30,找出最大和最小数。
inta[12]={900,2,3,58,34,76,87,72,90,20,78,30},d=0,t=0,s=0;
for(d=0;
sizeof(a)/sizeof(a[0]);
if(d==0){
s=t=a[d];
if(t>
a[d])
t=a[d];
if(s<
s=a[d];
t,s);
2.采用遍历查找,在数组a[SIZE]={2,3,20,58,72,76,78,87,90,900}中,找出偶数。
inta[12]={900,2,3,58,34,76,87,72,90,20,78,30};
if(a[d]%2==0)
printf("
a[d]);
3.采用折半查找,在数组a[SIZE]={2,3,20,58,72,76,78,87,90,900}中,找到87,然后进行删除。
inta[]={2,3,20,58,72,76,78,87,90,900};
voidfind(inti,intj){
if(j-i<
=1)return;
intmid=(i+j)/2;
if(a[mid]==87)a[mid]=EOF;
else{
find(i,mid);
find(mid+1,j);
return;
intmain(){
find(0,9);
第6章 函数及其应用
练习与实践
一、阅读程序,写出程序运行的结果。
1.写出以下程序的执行结果。
81.000000
floataver(inta[])
intk,sum=0;
floatave;
for(k=0;
k++)
sum+=*(a+k);
ave=(float)sum/10;
return(ave);
staticb[]={78,89,98,76,78,45,88,81,92,85};
ave=aver(b);
ave=%f\n"
ave);
提示:
数组b的首地址传递给形参a,*(a+k)就是数组元素b[k].
2.阅读程序,写出程序的执行结果。
str[]=abdef
voidabc(charstr[])
{inta,b;
for(a=b=0;
str[a]!
='
\0'
;
a++)
if(str[a]!
c’)
str[b++]=str[a];
str[b]='
charstr[]="
abcdef"
;
abc(str);
str[]=%s"
str);
return0;
数组str的首地址传递给形参str,str[a]就是实参中的数组元