程序设计基础C作业.docx

上传人:b****0 文档编号:9448330 上传时间:2023-05-19 格式:DOCX 页数:52 大小:44.19KB
下载 相关 举报
程序设计基础C作业.docx_第1页
第1页 / 共52页
程序设计基础C作业.docx_第2页
第2页 / 共52页
程序设计基础C作业.docx_第3页
第3页 / 共52页
程序设计基础C作业.docx_第4页
第4页 / 共52页
程序设计基础C作业.docx_第5页
第5页 / 共52页
程序设计基础C作业.docx_第6页
第6页 / 共52页
程序设计基础C作业.docx_第7页
第7页 / 共52页
程序设计基础C作业.docx_第8页
第8页 / 共52页
程序设计基础C作业.docx_第9页
第9页 / 共52页
程序设计基础C作业.docx_第10页
第10页 / 共52页
程序设计基础C作业.docx_第11页
第11页 / 共52页
程序设计基础C作业.docx_第12页
第12页 / 共52页
程序设计基础C作业.docx_第13页
第13页 / 共52页
程序设计基础C作业.docx_第14页
第14页 / 共52页
程序设计基础C作业.docx_第15页
第15页 / 共52页
程序设计基础C作业.docx_第16页
第16页 / 共52页
程序设计基础C作业.docx_第17页
第17页 / 共52页
程序设计基础C作业.docx_第18页
第18页 / 共52页
程序设计基础C作业.docx_第19页
第19页 / 共52页
程序设计基础C作业.docx_第20页
第20页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

程序设计基础C作业.docx

《程序设计基础C作业.docx》由会员分享,可在线阅读,更多相关《程序设计基础C作业.docx(52页珍藏版)》请在冰点文库上搜索。

程序设计基础C作业.docx

程序设计基础C作业

《程序设计基础(C)》作业

第1章C语言的基本构成

程序调试题

1.编辑、调试以下程序

步骤1:

在VisualC++环境下新建文件可用[开始]→[程序]→[MicrosoftVisualC++6.0]→[MicrosoftVisualC++6.0]→[文件]→[新建]→[文件]→[C++SourseFile],输入文件名ex1-1.c,程序代码如下:

#include/*文件预处理,包含标准输入输出库,程序可调用输入、输出函数*/

intadd(intx,inty)

{

intz;

z=x+y;

returnz;

}

intmain()

{

intadd(int,int);/*函数的说明,告诉系统在主函数中要调用add函数*/

inta,b,c;/*变量的定义*/

scanf("%d%d\n",&a,&b);

c=add(a,b);/*函数调用*/

printf("%d+%d=%d\n",a,b,c);

/*调用系统输出函数printf,%d为格式控制符,依次用后面的变量值填充,以整数形式输出*/

}

请思考文件ex1-1.c由几个函数构成?

调用了那几个系统函数?

此程序中用到了哪几个保留字?

哪几个用户自定义标识符?

步骤3:

编译并运行程序,程序运行时输入两个整数,2040,观察程序运行的结果。

2.编辑、调试以下程序

步骤1:

在VisualC++环境下新建文件可用[开始]→[程序]→[MicrosoftVisualC++6.0]→[MicrosoftVisualC++6.0]→[文件]→[新建]→[文件]→[C++SourseFile],输入文件名ex1-2.c

步骤2:

在文本编辑器中输入以下C程序

#include/*文件预处理,包含标准输入输出库,程序可调用输入、输出函数*/

#include

intmain()

{

intand(int,int);/*函数的说明,告诉系统在主函数中要调用and函数*/

intor(int,int);/*函数的说明,告诉系统在主函数中要调用and函数*/

inta,b,c;/*变量的定义*/

scanf("%d%d",&a,&b);

c=and(a,b);/*函数调用*/

printf("%d&&%d=%d\n",a,b,c);

/*调用系统输出函数printf,%d为格式控制符,依次用后面的变量值填充,以整数形式输出*/

c=or(a,b);/*函数调用*/

printf("%d||%d=%d\n",a,b,c);

}

步骤3:

[文件]→[新建]→[文件]→[C++SourseFile],输入文件名ex1-2-2.c,源程序代码为:

intand(inta,intb)

{

intc;

c=a&&b;

returnc;

}

步骤4:

[文件]→[新建]→[文件]→[C++SourseFile],输入文件名ex1-2-3.c,源程序代码为:

intor(inta,intb)

{

intc;

c=a||b;

returnc;

}

步骤5:

点击编译图标

,编译程序1-2.c

步骤4:

点击执行图标

,执行程序1-2.c,当程序运行时,键盘输入2040,按回车。

2040

20&&40=1

20||40=1

您可以输入其它的整数,观察程序的执行结果。

第2章 输入输出程序设计

1.用printf输出一个中空的五角星。

2.

3.仿照例子2.2,定义一个字符数组,从键盘输入一字符串,然后输出的程序。

#include

intmain()

{

charstring[80];

printf("您是一个学生吗:

\n");

scanf("%s",string);

printf("%s\n",string);

retu

4.从键盘输入十六进制整数,转化为八进制数输出。

5.只定义两个整型数据并赋值,实现两个整型数的互换。

#include

voidchange(int*a,int*b)

{

*a^=*b;

*b^=*a;

*a^=*b;

}

intmain()

{

inta=3,b=4;

change(&a,&b);

printf("a=%db=%d\n",a,b);

return0;

}

6.从键盘上输入一个整数,分别输出8、16进制数的程序。

#include

voidmain()

{

chars[20];

inti;

intflag;

printf("pleaseinputanumber\n");

while

(1)

{

flag=0;

scanf("%s",s);

if(s[0]!

='-'&&(s[0]<'0'||s[0]>'9'))

{

printf("inputerror!

\npleaseinputagain\n");

continue;

}

for(i=1;i!

=strlen(s);++i)

{

if((s[i]<='0'||s[i]>='9'))

{

printf("inputerror!

\npleaseinputagain\n");

flag=1;

break;

}

}

if(flag==0)

{

break;

}

}

printf("八进制:

%o\n十六进制:

%x\n",atoi(s),atoi(s));

}

7.从键盘上输入一个整数,分别输出它的个位数,十位数,百位数。

main()

{inta,b;

scanf("d%",&a);

b=a%10;

printf("个位数是:

d%\n",b);

b=a%100/10;

printf("十位数是:

%d\n",b);

b=a%1000/100;

printf("百位数是:

d%\n",d)

}

8.以下程序输出结果是(89)。

#include

voidmain()

{

inti=010,j=10;

printf("%d,%d\n",++i,j--);

}

8.运行程序,屏幕提示“您是一个学生吗”,您输入’y’或’n’进行回答,屏幕输出您的选项。

9.从键盘输入一个角度x,求10*sin(x)的值。

第3章 循环程序设计

4.以下for语句的循环次数是多少?

inti,j=3;

for(;i=j;i--,j--)printf("%d",i);

5.下面的语句显示输出6行6列的整数数组h的主对角线上的所有元素,请补充完整:

for(inti=0;i<6;i++)

printf("%d",h[i][i])

6.写出以下程序运行的结果,此程序实现了什么功能?

#include

voidmain()

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

inti,count=0;

for(i=0;i<10;i++)

if(a[i]==0)count++;

elsecontinue;

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

}

7.写出以下程序的功能。

#include

voidmain()

{

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;

}

}

8.写出以下程序运行后的输出结果。

#include

voidmain()

{

inti,j;

for(i=0;i<6;i++)

{

for(j=0;j

printf("");

for(j=0;j<2*(5-i)-1;j++)

printf("*");

printf("\n");

}

}

9.请改正下列程序的错误,改正后的程序写在右边的空白处,并上机调试检验。

(1)

#include

voidmain()

{

inti,s;

i=1;s=0;

while(i<=100);

s=s+i;

i++;

printf(“1+2+3+….+99+100=%d\n”,s);

}

#include

voidmain()

{

inti,s;

i=1;s=0;

while(i<=100);

{

s=s+i;

i++;

}

printf(“1+2+3+….+99+100=%d\n”,s);

}

(2)

#include

voidmain()

{

inti,s;

i=1;

s=0;

while(i<=100)

s=s+i;

i++;

printf(“1+2+3+….+99+100=%d\n”,s);

}

#include

voidmain()

{

inti,s;

i=1;

s=0;

while(i<=100)

{

s=s+i;i++;

}

printf(“1+2+3+….+99+100=%d\n”,s);

}

(3)

#include

voidmain()

{

inti=1,s;

while(i<=100);

{

s=s+i;

i++;

}

printf(“1+2+3+….+99+100=%d\n”,s);

}

#include

voidmain()

{

inti=1,s=0;

while(i<=100);

{

s=s+i;

i++;

}

printf(“1+2+3+….+99+100=%d\n”,s);

}

10.输入一个基数,例如输入9,输出为:

求1*3*……*9的值。

输出为:

1*3*5*7*9=945

#include

intmain()

{

inti,n,sum;

sum=1;

printf("inputn=");

scanf("%d",&n);

for(i=1;i<=n;i+=2)

sum*=i;

printf("结果:

%d\n",sum);return0;

}

11.输入一个5~10之间的整数n,求1!

+2!

+3!

+…+n!

例如输入5,输出为:

1!

+2!

+3!

+…+5!

=153

#include"stdio.h"

main()

{

inti;

ngterm=1,sum=0;

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

{

term*=i;sum+=term;

}

printf("1!

+2!

+^+10!

=%ld\d\n",sum);

}

12.在屏幕上输出以下内容

1

12

123

1234

12345

123456

1234567

12345678

123456789

#include

main()

{

printf("1\n");

printf("12\n");

printf("123\n");

printf("1234\n");

printf("12345\n");

printf("123456\n");

printf("1234567\n");

printf("12345678\n");

printf("123456789\n");

}

12.求2+4+6+……+98+100的和,用多种for表达式来完成。

#include"stdio.h"

main()

{

inti,sum=0;

for(i=2;i<=100;i+=2

)sum+=i;

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

}

14. 输入一行字符,统计它有多少个字母?

#include

intmain()

{

intn=0;

charch;

printf("请输入一串字符:

\n");

for(;(ch=getchar())!

='\n';)

{

if('a'<=ch&&ch<='z'||'A'<=ch&&ch<='Z')

n++;

}

printf("字母个数%d\n",n);return0;

}

第4章 分支程序设计

1.输入若干整数给x,使用if语句输出x的绝对值,当输入0时结束。

#include

#include

intmain()

{

intx=0;

while

(1)

{

printf("请输入x值:

");

scanf("%d",&x);

if(x==0)

{

break;

}

printf("x绝对值为:

%d",fabs(x));

}

}

3.输入一批数,输出比相邻数大的数,当输入0时结束。

#include

intmain()

{

intx=0,last=0;

while

(1)

{

printf("请输入x值:

");

scanf("%d",&x);

if(x==0)

{

break;

}

if(x>last)

{

printf("x比相邻数大:

%d",fabs(x));

}

last=x;

}

}

4.将输入字符的大写字符转换成小写字符输出,小写字符原样输出。

#include

intmain()

{

char*str;

intlen0;

inti=0;

printf("请输入字符:

");

scanf("%s",str);

len=strlen(str);

for(i=0;i

{

if('A'<=str[i]&&str[i]<='Z')

{

str[i]+=32;

}

}

printf("转换后字符:

%s",str);

}

5.输入一批字符,按回车时结束,统计小写字符、大写字符、数字字符、或其它字符的个数。

#include

intmain()

{

char*str;

intlen0;

inti=0;

intupchar=0,lowchar=0,number=0,other=0;

printf("请输入字符:

");

scanf("%s",str);

len=strlen(str);

for(i=0;i

{

if('A'<=str[i]&&str[i]<='Z')

{

upchar++;

}

elseif('a'<=str[i]&&str[i]<='z')

{lowchar++;}elseif('0'<=str[i]&&str[i]<='9'){

number++;

}

else

{

other++;

}

}

printf("大写字符:

%d小写字符:

%d数字字符:

%d其他字符:

%d",upchar,lowchar,number,other);

}

5.编写程序,计算分段函数:

6.根据输入的百分制按五分制的成绩输出。

百分制与五分制之间的关系见下表。

百分制

五分制

90~100

5

80~89

4

70~79

3

60~69

2

<60

1

#include

intmain()

{

intscore=0;

intlevel=0;/*5分制表示的成绩12345*/

inti=0;printf("输入分数(输入-1表示结束)");

while

(1)

}

printf("请输入分数:

");

scanf("%d",&score);

if(score==-1)

{

break;

}

elseif(90<=score&&score<=100)

{

level=5;

}

elseif(80<=score&&score<=89)

{

level=5;

}

elseif(70<=score&&score<=79)

{

level=5;

}

elseif(60<=score&&score<=69)

{

level=5;

}

elseif(0<=score&&score<=59)

{

level=5;

}

printf("\n5分制成绩为:

%d",lever);

}

}

 

7、用switch完成:

读入一个实数x,再输入一整数,若输入是1,则计算sin(x),若输入2,则计算cos(x),若输入3,则计算tan(x),若输入其他值,则显示错误信息。

#include

#include

intmain()

{

floatx=0;

inty=0;

printf("请输入一个实数:

");

scanf("%f",&x);

printf("请输入一个整数:

");

scanf("%d",&y);switch(y)

{

case1:

printf("%f",sin(x));

break;

case2:

printf("%f",cos(x));

break;

case3:

printf("%f",tan(x));

break;

default:

printf("你输入了错误的整数!

");

}

8、用switch完成:

输入星期1到星期5,输出它们对应的颜色

星期1:

blue

星期2:

red

星期3:

white

星期4:

yellow

星期5:

green

#include

intmain()

{

inty=0;

printf("请输入一个星期(12345):

");

scanf("%d",&y);

switch(y)

{

case1:

printf("星期1:

blue");

break;

case2:

printf("星期2:

red");

break;

case3:

printf("星期3:

white");

break;

case4:

printf("星期4:

yellow");

break;

case5:

printf("星期5:

green");

break;

default:

printf("你输入了错误的星期数(不属于1~5)!

");

break;

}

}

9、用switch完成:

从键盘输入A、B、C、D四个等级中的一个,转化输出

等级

输出

A

优秀

B

良好

C

中等

D

及格

E

不及格

#include

intmain()

{

chary=0;printf("请输入等级(ABCD):

");

scanf("%c",&y);

switch(y)

{

case'A':

printf("优秀");

break;

case'B':

printf("良好");

break;

case'C':

printf("中等");

break;

case'D':

printf("及格");

break;case'E':

printf("不及格");

break;

default:

printf("你输入了错误的等级");

break;

}

}

第5章 数组及其应用

1.从键盘输入12个数,分别为:

900,2,3,58,34,76,87,72,90,20,78,30,找出最大和最小数。

#include

intmain()

{

intmax=-9999,min=9999,a[12];

inti;

for(i=0;i<12;i++)scanf("%d",&a[i]);

for(i=0;i<12;i++)

{

if(a[i]>max)max=a[i];

if(a[i]

}

printf("Maxnumberis:

%d\n",max);

printf("Minnumberis:

%d\n",min);

return0;

}

2.采用遍历查找,在数组a[SIZE]={2,3,20,58,72,76,78,87,90,900}中,找出偶数。

#include

intmain()

{

inta[]={2,3,20,58,72,76,78,87,90,900};

inti;

for(i=0;i<=9;i++)if(a[i]%2==0)printf("%d\n",a[i]);

return0;

}

3.采用折半查找,在数组a[SIZE]={2,3,20,58,72,76,78,87,90,900}中,找到87,然后进行删除。

#include

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

}

retu

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2