程序设计基础离线作业答案浙江大学远程教育学院.docx

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

程序设计基础离线作业答案浙江大学远程教育学院.docx

《程序设计基础离线作业答案浙江大学远程教育学院.docx》由会员分享,可在线阅读,更多相关《程序设计基础离线作业答案浙江大学远程教育学院.docx(50页珍藏版)》请在冰点文库上搜索。

程序设计基础离线作业答案浙江大学远程教育学院.docx

程序设计基础离线作业答案浙江大学远程教育学院

浙江大学远程教育学院

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

姓名:

袁洋

学号:

7

年级:

2017春

学习中心:

紫金港校区

—————————————————————————————

第1章C语言的基本构成

由add、main、scanf、printf函数组成,

调用了scanf、printf两个系统函数。

保留字:

int、return。

自定义标识符:

add、a、b、c、x、y、z。

第2章 输入输出程序设计

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

#include<>

voidmain()

{

printf("*\n");

printf("**\n");

printf("**\n");

printf("**\n");

printf("********\n");printf("**\n");

printf("**\n");

printf("**\n");

printf("***\n");

printf("****\n");

printf("****\n");

printf("****\n");

}

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

#include<>

voidmain()

{

charcharshuz[20];

puts(gets(charshuz));

}

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

#include<>

voidmain(){

intshiliu;

scanf("%x",&shiliu);

printf("%o\n",shiliu);

}

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

#include<>

voidmain()

{

inta,b,swap;

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

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

swap=a;

a=b;

b=swap;

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

}

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

#include<>

voidmain()

{

inta;

scanf("%d",&a);

printf("%o%x\n",a,a);

}

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

#include<>

voidmain()

{

intinteger;

do

{

printf("请输入一个三个数:

");

scanf("%d",&integer);

if(integer<100||integer>=1000)

printf("请重新输入,\n");

}while(integer<100||integer>=1000);

printf("输入的整数为:

%d,百位为:

%d,十位为:

%d,个位为:

%d。

\n",integer,integer/100,integer%100/10,integer%100%10);

}

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

#include<>

voidmain()

{

inti=010,j=10;

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

}

程序输出结果为9,10

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

#include<>

voidmain()

{

charq;

printf("Areyouastudent?

y/n\n");

scanf("%c",&q);

if(q=='y'||q=='Y')

printf("Goodgoodstudy!

\n");

elseif(q=='n'||q=='N')

printf("Workhard!

\n");

}

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

#include<>

#include<>

intmain()

{

floatx;

scanf("%f",&x);

printf("sumis%f\n",10*sin(x));

}

第3章 循环程序设计

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

inti,j=3;

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

for语句的循环次数为3次

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

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

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

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

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

}

统计数组a中元素为0的元素个数。

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

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

}

}

把数组a里的元素位置倒置,第一个放在最后一个,第二个放在倒数第二个位置。

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

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

}

}

*********

*******

*****

***

*

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

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

}

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

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

输出为:

1*3*5*7*9=945

#include<>

intmain()

{

intjishu,sum=1,i;

do{

printf("请输入一个奇数:

");

scanf("%d",&jishu);

}while(jishu%2==0);

for(i=1;i<=jishu;i=i+2){

sum=sum*i;

}

printf("\n1*3*5*...*%d=%d\n",jishu,sum);

}

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

+2!

+3!

+…+n!

例如输入5,输出为:

1!

+2!

+3!

+…+5!

=153

#include<>

intmain()

{

inti,j,num,sum=0,jiec=1;.+%d!

=%d",num,sum);

}

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

1

12

123

1234

12345

123456

1234567

9

#include<>intmain(){

chari,j;

for(i=0;i<9;i++){

for(j=1;j<=i+1;j++){

printf("%d",j);

}

putchar('\n');

}

return0;

}

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

#include<> void main () {  

int i,sum=0; 

for(i=2;i<101;i=i+2)   

sum=sum+i; 

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

}

或者

#include<> 

void main (){

int i,sum=0;  

for(i=2;i<101;i++){

  if(i%2==0)    

sum=sum+i;

}

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

}

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

#include<> 

void main() {  

char ccc;  int num=0; 

while((ccc=getchar())!

='\n')  {   

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

num++; 

 } 

 printf("num is %d\n",num); 

}

第4章 分支程序设计

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

#include<> 

void main () {  

int x;  

do  {   

scanf("%d",&x);   

if(x>0)    

printf("%d 的绝对值为:

%d\n",x,x);   

else 

   if(x<0)  

printf("%d 的绝对值为:

%d\n",x,-x); 

}while(x!

=0); 

}

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

#include<> 

void main() { 

int x =0,last=0;  

while

(1)  {

printf("请输入x值:

");     

scanf("%d", &x);

if(x==0){ 

break;

    if ( x>last)       { 

         printf("x比相邻数大:

%d",x);       

    last = x;  

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

#include<> 

void main() {  

char s; 

while((s=getchar())!

='\n')  {   

if(s>='A' && s<='Z')    

s+=32;   

putchar(s); 

}

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

#include<> 

void main() {  

char s; 

int xiaoxie_char=0,daxie_char=0,shuz_char=0,others=0;  

while((s=getchar())!

='\n')  {   

if(s>='A' && s<='Z')    

daxie_char++;   

else if(s>='a' && s<='z')    

xiaoxie_char++;  

else if(s>='0' && s<='9')    

shuz_char++;   

else 

others++; 

}

printf("这些字符中小写字符为%d,大写字符为%d,数字字符为%d,其他字符为%d\n",xiaoxie_char,daxie_char,shuz_char,others); 

}

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

#include<> 

void main() {

int x,y;  

scanf("%d",&x);     

if(x<=1) 

  y=x+5;  

else if(x>1 && x<10)   

y=2*x;  

else if(x>10) 

y=3/(x-10); 

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

}

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

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

百分制

五分制

90~100

5

80~89

4

70~79

3

60~69

2

<60

1

#include<> 

void main() { 

int baifen,wufen; 

printf("请输入百分制成绩:

"); 

scanf("%d",&baifen); 

wufen=baifen/10; 

switch(wufen) { 

    case 10:

 

    case 9:

printf("相对应的5分制:

5\n");

break;  

case 8:

printf("相对应的5分制:

4\n");

break;  

case 7:

printf("相对应的5分制:

3\n");

break;  

case 6:

printf("相对应的5分制:

2\n");

break;     

default:

 

  printf("相对应的5分制:

1\n"); 

}

7、用switch完成:

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

#include<> 

#include<> 

void main() {  

float x;  

int z; 

printf("please input a real number:

 ");  

scanf("%f",&x); 

printf("please input a integer:

 ");  

scanf("%d",&z);  

switch(z)  { 

case 1:

printf("%5f\n",sin(x));

break;  

case 2:

printf("%5f\n",cos(x));

break;  

case 3:

printf("%5f\n",tan(x));

break;  

default:

printf("date error!

\n"); 

}

8、用switch完成:

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

星期1:

blue

星期2:

red

星期3:

white

星期4:

yellow

星期5:

green

#include <> 

void main() {    

int i; 

printf("Please input a date:

\n"); 

scanf("%d",&i); 

switch(i) { 

case 1:

printf("星期一:

blue\n");

break; 

case 2:

printf("星期二:

red\n");

break; 

case 3:

printf("星期三:

white\n");

break; 

case 4:

printf("星期四:

yellow\n");

break; 

case 5:

printf("星期五:

green\n");

break; 

default:

printf("\n"); 

}

9、用switch完成:

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

等级

输出

A

优秀

B

良好

C

中等

D

及格

E

不及格

#include <> 

void main() {    

char i; 

printf("Please input a char:

\n"); 

scanf("%c",&i); 

switch(i) { 

case 'A':

printf("优秀\n");

break; 

case 'B':

printf("良好\n");

break; 

case 'C':

printf("中等\n");

break; 

case 'D':

printf("及格\n");

break; 

case 'E':

printf("不及格\n");

break; 

default:

printf("dete error"); 

}

第5章 数组及其应用

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

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

#include<> 

void main() {  

int shuzu[12]={900,2,3,58,34,76,87,72,90,20,78,30},i,max=shuzu[0],min=shuzu[0];  

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

   if(shuzu[i]>max)    

max=shuzu[i];   

else if(shuzu[i] < min) 

   min=shuzu[i];  

printf("max is %d, min is %d\n",max,min); 

}

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

#include<> 

void main() {  

int i,a[10]={2,3,20,58,72,76,78,87,90,900};  

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

if(a[i]%2==0)    

printf("%3d ",a[i]); 

}

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

#include<> 

#define SIZE 10 

void main() {  

int a[SIZE]={2,3,20,58,72,76,78,87,90,900},i,j,low=0,high=SIZE-1;  

i=(low+high)/2;  

while(high>=low){

if(a[i]<87)   {    

low=i; 

i=(low+high)/2; 

else if(a[i]>87)   {    

high=i; 

   i=(low+high)/2;   

}else     

break;

}

for(j=i;j

a[j]=a[j+1];

}

第6章 函数及其应用

练习与实践

一、阅读程序,写出程序运行的结果。

1.写出以下程序的执行结果。

#include<>

floataver(inta[])

{

intk,sum=0;

floatave;

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

sum+=*(a+k);

ave=(float)sum/10;

return(ave);

}

intmain()

{

floatave;

staticb[]={78,89,98,76,78,45,88,81,92,85};

ave=aver(b);

printf("ave=%f\n",ave);

}

提示:

数组b的首地址传递给形参a,*(a+k)就是数组元素b[k].

运行的结果为:

 ave=

2.阅读程序,写出程序的执行结果。

#include<>

voidabc(charstr[])

{inta,b;

for(a=b=0;str[a]!

='\0';a++)

if(str[a]!

='c’)

str[b++]=str[a];

str[b]='\0';

}

intmain()

{

charstr[]="abcdef";

abc(str);

printf("str[]=%s",str);

return0;

}

提示:

数组str的首地址传递给形参str,str[a]就是实参中的数组元素str[a],当数组元素不为’c’时进行复制。

程序运行的结果为:

 str[ ]=abdef

3.写出以下程序的执行结果。

#include<>

intsort(intb[],intn,intx)

{

intk;

for(k=n-1;k>=0;k--)

if(b[k]

b[k+1]=b[k];

else

break;

b[k+1]=x;

return0;

}

intmain()

{

inti,j;

staticinta[5]={8,5,4,1,6};

intb[8

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

当前位置:首页 > 经管营销 > 经济市场

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

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