第2部分C语言程序设计练习四.docx

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

第2部分C语言程序设计练习四.docx

《第2部分C语言程序设计练习四.docx》由会员分享,可在线阅读,更多相关《第2部分C语言程序设计练习四.docx(27页珍藏版)》请在冰点文库上搜索。

第2部分C语言程序设计练习四.docx

第2部分C语言程序设计练习四

《C语言程序设计》练习四

程序填充题:

根据题目描述的程序功能,在给出程序的横线处缺少的部分补上相应内容,使其能正确运行。

 

1.使用二维数组形成并按下列形式输出数据

     

#include

voidmain()

{inti,j,___________;/*第一空*/

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

for(j=0;j<5;j++)

a[i][j]=_________;/*第二空*/

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

{for(j=0;j<5;j++)

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

__________;/*第三空*/

}

}

2.对含有10个元素的数组a先按元素的存储次序倒序输入,再按其正序输出。

#include

#define_________/*第一空*/

voidmain()

{inti,a[N];

for(i=N-1;________;i--)/*第二空*/

scanf("%d",_________);/*第三空*/

for(i=0;i

printf("\n");

}

 

3.分别统计并输出17、18、19和20岁各年龄的学生人数。

#include

voidmain()

{inti,n,age,a[30];

for(i=0;i<30;i++)a[i]=0;

scanf("%d",&n);/*输入人数<30*/

for(i=0;i

{scanf("%d",&age);/*输入年龄*/

if(age<17||age>20)____________;/*第一空*/

else

switch(________)/*第二空*/

{case17

case18:

case19:

case20:

a[age-17]++;

}

}

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

printf("age=%dnumber=%d\n",i+17,________);/*第三空*/

}

4.将从键盘输入的字符串逆序显示。

#include

#include

voidmain()

{intn;

charstr[80],*p;

printf("Inputastring:

\n");

gets(str);/*输入字符串*/

n=strlen(_______);/*第一空*/

p=str+______-1;/*第二空*/

while(p>=str)

{printf("%c",*p);

_________;/*第三空*/

}

printf("\n");

}

 

5..输入100名学生的出生月份,统计并输出每个月份过生日的学生人数。

#include

#defineN10

voidmain()

{

inti,month;

intbirth[13]={0};/*birth[1]~birth[12]分别保存1~12月过生日的学生数*/

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

{

scanf("%d",________);/*第一空*/

if(month>=1&&month<=12)birth[month]++;

}

for(i=1;__________;i++)/*第二空*/

printf("%dmonth__________\n",i,birth[i]);/*第三空*/

6.输入n(n≥1),计算1+(1+2)+(1+2+3)+…….+(1+2+……+n)的值。

#include

voidmain()

{

inti,n;

longsum=0;longcal(int);

scanf("%d",&n);

for(i=1;i<=n;i++)sum=sum+cal(________);/*第一空*/

printf("1+(1+2)+…+(1+2+…+n)=%ld\n",sum);

}

longcal(________)/*第二空*/

{

staticlongs=0;

s=s+m;

______________;/*第三空*/

}

 

7.从键盘输入10个整数,用“冒泡排序法”由小到大进行排序。

#include

#defineN10

voidmain()

{inti,j,t,a[N];

for(i=0;i

for(i=0;i

for(j=N-1;j>=i+1;________)/*第一空*/

if(a[j]

{t=a[j];_________;a[j-1]=t;}/*第二空*/

for(i=0;i

printf("\n");

}

 

8.为二维数组各元素输入数据,计算并输出全部元素之和。

#include

#defineN5

voidmain()

{

inti,j,a[N][N],sum=0;/*第一空*/

for(i=0;i

for(j=0;j

{

scanf("%d",&a[i][j]);

sum+=a[i][j];/*第二空*/

}

printf("sum=%d\n",sum);/*第三空*/

}

 

9.键入数据至二维数组,求出其中的最大值、最小值及所有元素之和。

#include

voidmain()

{

inti,j;

inta[3][4],max,min,sum=0;

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

for(j=0;j<4;j++)scanf("%d",____________);/*第一空*/

max=min=a[0][0];

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

for(j=0;j<4;j++)

{

___________;/*第二空*/

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

if(a[i][j]

}

printf("max=%d,min=%d,sum=%d\n",_______________);/*第三空*/

}

 

10.根据迭代公式

,求a的平方根(精度要求

<10-6)。

#include

#defineEPS1E-6

#include__________/*第一空*/

voidmain()

{

floata,x0,x1=1.0;

scanf("%f",&a);

do

{

x0=x1;

x1=___________;/*第二空*/

}while(fabs(x1-x0)>=________);/*第三空*/

printf("sqrt=%.6f\n",x1);

}

 

11.将数组a中元素按下图循环左移一位并输出。

a[0]a[1]a[2]a[3]a[4]

执行前

1

2

3

4

5

执行后

2

3

4

5

1

#include

voidmain()

{intj,k,a[5]={1,2,3,4,5};

k=a[0];

for(j=0;j<5;j++)

a[j]=________;/*第一空*/

a[4]=_________;/*第二空*/

for(j=0;j<5;j++)

printf("%5d",_________);/*第三空*/

printf("\n");

}

 

12.求数组a的所有元素之和。

#defineN3

voidmain()

{

inti,j,sum=0;

inta[N][N]={2,4,6,8,10,12,14,16,18};

for(i=0;i

for(j=0;________;j++)/*第二空*/

sum=sum+___________;/*第三空*/

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

}

 

13.键入一个字符串(不超过80个字符)存至字符数组s中并对各元素升序排序。

#include

voidmain()

{inti,j,len;

chars[81],t;

gets(s);

puts(s);

len=strlen(s);

for(i=0;i

for(j=i+1;j

if(___________)/*第二空*/

{t=s[i];

s[i]=s[j];

___________;/*第三空*/

}

puts(s);

}

 

14.从键盘输入一个星期几(0~6),转换为对应的英文输出(Sunday,Monday,…),当输入小于0或大于6的数字时程序结束。

#include

voidmain()

{intweek;

staticchar*weekname[]={"Sunday","Monday","Tuesday","Wednesday",

"Thrusday","Friday","Saturday"};

while

(1)

{printf("Inputweekday:

");

scanf("%d",_______);/*第一空*/

if(__________)break;/*第二空*/

printf("weekday:

%d→%s\n",week,___________);/*第三空*/

}

}

 

15.函数fun用于计算数组各元素值的平方,主函数调用fun并输出各元素的值。

#include

voidfun(intnum,inta[])

{inti;

for(i=0;i<_________;i++)a[i]=a[i]*a[i];/*第一空*/

}

voidmain()

{

inti,b[5]={1,2,3,4,5};

fun(5,_______);/*第二空*/

for(i=0;i<5;i++)printf("%5d",_________);/*第三空*/

printf("\n");

}

 

16.用递归方法写出计算n的阶乘的函数,调用该函数计算并输出n=0,1,2,……,10时各阶乘的值。

计算公式:

 n!

#include

longfac(intn)

{

if(________)return

(1);/*第一空*/

elsereturn________;/*第二空/

voidmain()

{

intm;longintfa;

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

{

________;/*第三空*/

printf(″%d!

=%1d\n″,m,fa);

}

}

 

17.用递归方法计算学生年龄,已知第一位学生年龄为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。

递归公式如下:

age(n)=

#include

intage(intn)

{

if(n==1)return(______);/*第一空*/

elsereturn(________);/*第二空*/

}

voidmain()

{

printf("%d\n",_______);/*第三空*/

}

 

18.计算并输出1!

+2!

+3!

+4!

+5!

的值。

#include

intf(inta)

{staticintc=1;

c=c*a;

return_________;/*第一空*/

}

voidmain()

{inti,k;

k=_______;/*第二空*/

for(i=2;i<=5;i++)k+=f(_________);/*第三空*/

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

}

 

19.键入10个整数,统计其中正数(neg)、负数(pos)和零(zero)的个数并将三者输出。

#include

intneg=0,pos=0,zero=0;

voidsele(intnum)

{

if(num>0)neg++;

elseif(num<0)pos++;

else______________;/*第一空*/

}

voidmain()

{

inti,a[10];

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

{

scanf("%d",&a[i]);

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

sele(_________________);/*第二空*/

}

printf("\nneg=%d,pos=%d,zero=%d\n",_______________);/*第三空*/

}

 

20.从键盘输入10个学生的姓名、性别和成绩,计算并输出这些学生的平均成绩。

#include

#defineN10

structstudent

{

charname[20];

charsex;

intscore;

}stu[N];

voidmain()

{

inti;

floataver,sum=0;

for(i=0;i

{scanf("%d%c%s",_______________);/*第一空*/

sum=sum+__________;/*第二空*/

}

aver=_________;/*第三空*/

printf("aver=%6.2f\n",aver);

}

 

21.设有30名学生,由键盘分别输入每个学生的姓名和两门课成绩,计算每个学生的总分,并输出总分最高者的姓名和总分。

#include

#defineN5

structst

{charname[20];

floats1,s2,total;

};

voidmain()

{structsts[N];

inti,k;

floatmax;

for(i=0;i

{scanf("%s%f%f",s[i].name,&s[i].s1,&s[i].s2);

s[i].total=_____________;/*第一空*/

}

max=___________;/*第二空*/

for(i=1,k=-0;i

if(s[i].total>max)

{max=s[i].total;_______;}/*第三空*/

printf("%s,%f\n",s[k].name,max);

}

 

22.键入一串字符(换行作为结束标志),统计字符的个数,将该串字符及字符个数显示到屏幕上并写入文件str.dat中。

#include

voidmain()

{charch;intsumch=0;

FILE*fp;

fp=fopen("str.dat","w");

while((ch=getchar())!

=__________)/*第一空*/

{sumch++;

putchar(ch);

fputc(___________,fp);/*第二空*/

}

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

fprintf(____________,"sumch=%d\n",sumch);/*第三空*/

fclose(fp);

}

 

23.统计文本文件file.dat的行数(提示:

以’\n’作为每行的结束)。

#include

#include

voidmain()

{intlines=_______;/*第一空*/

charch;

FILE*fp;

fp=fopen("file.dat","r");

while(________)/*第二空*/

{ch=fgetc(fp);

if(ch_______'\n')lines++;/*第三空*/

}

printf("Lines=%d\n",lines);

fclose(fp);

}

 

24.从键盘输入一串字符(以“?

”作为结束标志),保存到文本文件text.txt中。

#include

#include

voidmain()

{

FILE________;/*第一空*/

charch;

if((fp=fopen("text.txt",______))==NULL)exit(0);/*第二空*/

while((ch=getchar())!

='?

')fputc(ch,________);/*第三空*/

fclose(fp);

}

 

25.将26个小写英文字母中的元音字母(a,e,i,o,u)写入到文件vo.txt中。

#include

voidmain()

{

Char___________;/*第一空*/

FILE*fp;

fp=fopen("vo.txt","w");

for(ch='a';ch<='z';ch++)

if(_______________)fputc(ch,fp);/*第二空*/

______________;/*第三空*/

}

 

26.将文本文件fin.dat中的数字字符找出并写入文本文件fnum.dat中。

#include

voidmain()

{

charch;FILE*fin,*fnum;

fin=fopen("fin.dat",_________);/*第一空*/

fnum=fopen("fnum.dat","w");

while(!

feof(_________))/*第二空*/

{

ch=fgetc(fin);

if(____________)fputc(ch,fnum);/*第三空*/

}

fclose(fin);

fclose(fnum);

}

 

27.分别统计文本文件fs.txt中小写英文元音字母(a,e,i,o,u)的个数并输出。

#include

voidmain()

{inta=0,e=0,i=0,o=0,u=0;

charch;

________;/*第一空*/

sen=fopen("fs.txt","r");

while(!

feof(sen))

{ch=fgetc(sen);

switch(________)/*第二空*/

{case'a':

a++;break;

case'e':

e++;break;

case'i':

i++;break;

case'o':

o++;break;

case'u':

u++;

}

}

printf("%d,%d,%d,%d,%d\n",a,e,i,o,u);

fclose(_______);/*第三空*/

}

 

28.从键盘输入5个字符串,将其写到文本文件fs.txt中。

#include

#include

voidmain()

{FILE*fp;

charstr[5][10];

inti;

for(i=0;i<5;i++)gets(str[i]);/*输入字符串*/

if((fp=fopen("fs.txt",__________))==NULL)/*第一空*/

{printf("Can'topenfile!

\n");exit(0);}

for(i=0;i<5;i++)/*写入文件*/

{fputs(_________,fp);/*第二空*/

fputs("\n",fp);

}

fclose(_________);/*第三空*/

}

 

《C语言程序设计》练习四(参考答案)

1.使用二维数组形成并按下列形式输出数据

     

答案:

第一空:

a[5][5]

第二空:

i+j

第三空:

printf("\n")

2.对含有10个元素的数组a先按元素的存储次序倒序输入,再按其正序输出。

答案:

第一空:

N10

第二空:

i>=0

第三空:

&a[i]

3.分别统计并输出17、18、19和20岁各年龄的学生人数。

答案:

第一空:

printf("输入年龄有\n")

第二空:

age

第三空:

a[i]

4.将从键盘输入的字符串逆序显示。

答案:

第一空:

str

第二空:

n

第三空:

p--

 

5.输入100名学生的出生月份,统计并输出每个月份过生日的学生人数。

答案:

第一空:

&month

第二空:

i<=12

第三空:

%d

6.输入n(n≥1),计算1+(1+2)+(1+2+3)+…….+(1+2+……+n)的值。

答案:

第一空:

i

第二空:

intm

第三空:

returns

7.从键盘输入10个整数,用“冒泡排序法”由小到大进行排序。

答案:

第一空:

j--

第二空:

a[j]=a[j-1]

第三空:

a[i]

8.为二维数组各元素输入数据,计算并输出全部元素之和。

答案:

第一空:

0

第二空:

a[i][j]

第三空:

sum

9.键入数据至二维数组,求出其中的最大值、最小值及所有元素之和。

答案:

第一空:

&a[i][j]

第二空:

sum+=a[i][j]

第三空:

max,min,sum

10.根据迭代公式

,求a的平方根(精度要求

<10-6)。

答案:

第一空:

第二空:

(x0+a/x0)/2

第三空:

EPS

 

11.将数组a中元素按下图循环左移一位并输出。

a[0]a[1]a[2]a[3]a[4]

执行前

1

2

3

4

5

执行后

2

3

4

5

1

答案:

第一空:

a[j+1]

第二空:

k

第三空:

a[j]

12.

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

当前位置:首页 > 法律文书 > 调解书

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

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