093js.docx

上传人:b****6 文档编号:8183876 上传时间:2023-01-29 格式:DOCX 页数:21 大小:23.14KB
下载 相关 举报
093js.docx_第1页
第1页 / 共21页
093js.docx_第2页
第2页 / 共21页
093js.docx_第3页
第3页 / 共21页
093js.docx_第4页
第4页 / 共21页
093js.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

093js.docx

《093js.docx》由会员分享,可在线阅读,更多相关《093js.docx(21页珍藏版)》请在冰豆网上搜索。

093js.docx

093js

(093)上海大学2009-2010年春季学期操作题(A)2010.6

课程名:

程序设计基础(C语言)课程号:

00863006学分:

5

上机操作题,4题,共70分

第1题(源程序文件E:

\answer\1-A-1.C)【16分】

上机要求:

下列程序包含4个错误(2个函数各2行有错误),请输入该程序的代码,找出并更正程序错误,在修改行代码后增加“/***/”注释,将修改后的源程序保存到E:

\answer\1-A-1.C中。

程序功能:

从键盘上输入一行字符串,选择其中的大写字母,并输出。

如输入:

Hello,ThisIsAnEnglishSentence.

则输出:

HTIAES

再如输入:

ABC,abc,DEF,123.

则输出:

ABCDEF

函数说明:

程序中函数str_select_up从字符串a中选择大写字母到字符串b中,同时返回字符串b。

函数中变量i用于遍历字符串a,变量k用于计数大写字母个数,同时用于b数组的下标。

主函数main从键盘上输入一行字符串,调用str_select_up函数取其中大写字母到字符串b,并输出字符串b。

2个函数各有2个错误,分布在不同代码行上。

带错误原程序:

#include

char*str_select_up(charb[],chara[])

{

inti,k=0;

for(i=0;a[i]!

=='\0';i++)

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

b[k++]=a[i];

b[k]='\0";

returnb;

}

main()

{

chara[100],b[100];

gets(a[100]);

str_select_up(b,a)

puts(b);

}

第2题(源程序文件E:

\answer\1-A-2.C)【18分】

上机要求:

按程序功能要求编写程序,并将程序代码保存到E:

\answer\1-A-2.C中。

程序功能:

编写程序,按示例实现以下功能:

(1)输出本题考试的学期号与题号,即“093,1-A-2”

(2)输出考生的基本信息,包括实际考试机房、机号、机号的单双(机号单输出Odd,机号双输出Even)、学号、姓名拼音。

(3)从键盘上输入3个整数。

(4)输出其中的最大值与最小值。

(5)输出其中大小居中的数值。

如输入:

705090

则输出:

093,1-A-2

D413-27(Odd),09123456,ZhangDaHai注:

本行请按考生实际情况输出

Max=90,Min=50

Midd=70

示例说明:

输出共4行,第1行为本考题基本信息,应为“093,1-A-2”;第2行为考生本次考试的基本信息,请按实际情况输出,示例表示D413机房的27号计算机,机号为单(输出Odd),学号为09123456,姓名拼音为ZhangDaHai(张大海);输入三数的最大值为90,最小值为50,中间值为70。

再如输入:

-90-50-70

则输出:

093,1-A-2

D413-27(Odd),09123456,ZhangDaHai注:

本行请按考生实际情况输出

Max=-50,Min=-90

Midd=-70

示例说明:

输入三数可以为负数,最大值为-50,最小值为-90,中间值为-70。

第3题(源程序文件E:

\answer\1-A-3.C)【16分】

上机要求:

按程序功能要求编写程序,并将程序代码保存到E:

\answer\1-A-3.C中。

程序功能:

从键盘上输入n和n个整数(设n与每个整数均取值1至5),按示例格式输出n行数字图形,每行的数字及数字个数与输入数相对应。

编写程序可以使用或参考所提供的函数。

如输入:

554321

则输出(□表示空格,↙表示回车):

1□2□3□4□5□↙

□□1□2□3□4□↙

□□□□1□2□3□↙

□□□□□□1□2□↙

□□□□□□□□1□↙

示例说明:

输入的第1个数为5,表示输出共5行,右对齐形状。

接着输入的第1个数为5,则输出的第1行有5个数(取值1至5),数字之间含有1个空格,数值1之前有2*(5-5)=0个空格;以此类推。

再如输入:

3232

则输出(□表示空格,↙表示回车):

□□□□□□1□2□↙

□□□□1□2□3□↙

□□□□□□1□2□↙

示例说明:

输入的第1个数为3,表示输出共3行。

接着输入的第1个数为2,则输出的第1行有2个数(取值1至2),数字之间含有1个空格,数值1之前有2*(5-2)=6个空格;以此类推。

函数说明:

下列代码提供2个函数,可供编写程序时调用或参考。

其中函数sca_0从键盘上输入n和n个整数至数组a,并返回整数n;函数prtline可以输出图案中的某一行,参数m表示输出该行的m个数(取值1至m)。

函数代码:

函数代码

说明

intsca_n(inta[])

{

intn,i;

scanf("%d",&n);

for(i=0;i

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

returnn;

}

voidprtline(intm)

{

inti;

for(i=1;i<=5-m;i++)

printf("");

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

printf("%d",i);

printf("\n");

}

函数:

输入n和n个整数至数组

先输入整数n

再输入n个整数至数组a中

返回输入的整数n

 

函数:

输出图案中的一行,m个数字

先输出2*(5-m)个空格

循环5-m次,每次输出2个空格

再输出m个数字,数字之后带有空格

最后输出换行

第4题(源程序文件E:

\answer\1-A-4.C)【20分】

上机要求:

按程序功能要求编写程序,并将程序代码保存到E:

\answer\1-A-4.C中。

程序功能:

输入10个整数(存贮在一维数组a中),按示例格式计算并输出以下结果。

(1)查找数值为100的元素并输出其下标(如果有多个100则输出第1个100的下标),如果没有找到,则输出NotFound;

(2)统计数值为0的元素个数并输出;

(3)从大到小排序,并按每行4个数的格式输出;

如输入:

1020304050100607080100

则输出:

a[5]=100

Count(0)=0

1001008070

60504030

2010

示例说明:

输入10个整数,第1个100出现在下标5位置,数值0没有出现,排序后分3行输出,第1行与第2行各有4个数。

如输入:

100-5005060708090199

则输出:

NotFound(100)

Count(0)=2

199908070

6050100

0-50

示例说明:

输入10个整数(可以有负数或超过100的数),其中100没有出现,0出现2次。

排序后分3行输出,第1行与第2行各有4个数。

 

(093)上海大学2009-2010年春季学期操作题(A)

参考答案

第1题(1-A-1.c)

更正程序

错误点

#include

char*str_select_up(charb[],chara[])

{

inti,k=0;

for(i=0;a[i]!

='\0';i++)/***/

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

b[k++]=a[i];

b[k]='\0';/***/

returnb;

}

main()

{

chara[100],b[100];

gets(a);/***/

str_select_up(b,a);/***/

puts(b);

}

 

!

后双等于改为1个等于

 

双引号改为单引号

 

去掉数组名后的中括号

缺分号

 

第2题(1-A-2.c)

#include

main()

{inta,b,c,max,min,mid;

printf("093,1-A-2\n");/*输出学期与题号*/

printf("D413-27(Odd),09123456,ZhangDaHai\n");/*输出本人信息*/

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

if(a>=b&&a>=c)max=a;/*求最大值*/

elseif(b>=a&&b>=c)max=b;

elsemax=c;

if(a<=b&&a<=c)min=a;/*求最小值*/

elseif(b<=a&&b<=c)min=b;

elsemin=c;

mid=a+b+c-max-min;/*求中间值*/

printf("Max=%d,Min=%d\n",max,min);

printf("Midd=%d\n",mid);

}

第3题(1-A-3.c)

/*方法1:

使用函数*/

#include

intsca_n(inta[])

{intn,i;

scanf("%d",&n);

for(i=0;i

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

returnn;

}

voidprtline(intm)

{inti;

for(i=1;i<=5-m;i++)

printf("");

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

printf("%d",i);

printf("\n");

}

main()

{intn,i,a[10];

n=sca_n(a);

for(i=0;i

prtline(a[i]);

}

/*方法2:

不使用函数*/

#include

main()

{intn,i,j,a[10];

scanf("%d",&n);

for(i=0;i

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

for(i=0;i

{for(j=1;j<=5-a[i];j++)

printf("");

for(j=1;j<=a[i];j++)

printf("%d",j);

printf("\n");

}

}

第4题(1-A-4.c)

/*方法1:

使用函数*/

#include

voidsca(inta[],intn)

{inti;

for(i=0;i

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

}

intfind(inta[],intn,intx)

{inti;

for(i=0;i

if(a[i]==x)

returni;

return-1;

}

intcount(inta[],intn,intx)

{intct=0,i;

for(i=0;i

if(a[i]==x)ct++;

returnct;

}

voidsort_b(inta[],intn)

{inti,j,t;

for(i=0;i

for(j=0;j

if(a[j]

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

}

voidprt_m(inta[],intn,intm)

{inti;

for(i=0;i

if(i%m==m-1||i==n-1)

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

else

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

}

main()

{inta[10],k,ct;

sca(a,10);

k=find(a,10,100);

if(k>0)

printf("a[%d]=100\n",k);

else

printf("NotFound(100)\n");

ct=count(a,10,0);

printf("Count(0)=%d\n",ct);

sort_b(a,10);

prt_m(a,10,4);

}

/*方法2:

不使用函数*/

#include

#defineN10

main()

{inta[N],i,j,t,ct;

for(i=0;i

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

for(i=0;i

if(a[i]==100)

break;

if(i

printf("a[%d]=100\n",i);

else

printf("NotFound(100)\n");

ct=0;

for(i=0;i

if(a[i]==0)

ct++;

printf("Count(0)=%d\n",ct);

for(i=0;i

for(j=0;j

if(a[j]

{t=a[j];a[j]=a[j+1];a[j+1]=t;}

for(i=0;i

{printf("%d\t",a[i]);

if(i%4==3||i==N-1)

printf("\n");

}

}

 

(093)上海大学2009-2010年春季学期操作题(B)2010.6

课程名:

程序设计基础(C语言)课程号:

00863006学分:

5

上机操作题,4题,共70分

第1题(源程序文件E:

\answer\1-B-1.C)【16分】

上机要求:

下列程序包含4个错误(2个函数各2行有错误),请输入该程序的代码,找出并更正程序错误,在修改行代码后增加“/***/”注释,将修改后的源程序保存到E:

\answer\1-B-1.C中。

程序功能:

从键盘上输入一行字符串,选择其中的小写字母,并输出。

如输入:

Hello,Everybody.

则输出:

elloverybody

再如输入:

ABC,abc,DEF,123.

则输出:

abc

函数说明:

程序中函数str_select_low从字符串a中选择小写字母到字符串b中,同时返回字符串b。

函数中变量i用于遍历字符串a,变量k用于计数小写字母个数,同时用于b数组的下标。

主函数main从键盘上输入一行字符串,调用str_select_low函数取其中小写字母到字符串b,并输出字符串b。

2个函数各有2个错误,分布在不同代码行上。

带错误原程序:

#include

char*str_select_low(charb[],chara[])

{

inti,k=0;

for(i=0;a[i]!

='\0',i++)

if(a[i]>='a'&&a[i]<='z')

b[k++]:

=a[i];

b[k]='\0';

returnb;

}

main()

{

chara[100];

gets(a[0]);

str_select_low(b,a);

puts(b);

}

第2题(源程序文件E:

\answer\1-B-2.C)【18分】

上机要求:

按程序功能要求编写程序,并将程序代码保存到E:

\answer\1-B-2.C中。

程序功能:

编写程序,实现以下功能:

(6)输出本题考试的学期号与题号,即“093,1-B-2”

(7)输出考生的基本信息,包括实际考试机房、机号、机号的单双(机号单输出Odd,机号双输出Even)、学号、姓名拼音。

(8)从键盘上输入3个整数。

(9)输出3个数的累加和与平均值。

(10)输出3个数中大于或等于60的个数。

如输入:

705091

则输出:

093,1-B-2

D413-28(Even),09123456,ZhangDaHai注:

本行请按考生实际情况输出

Sum=211,Ave=70.3

Pass=2

示例说明:

输出共4行,第1行为本考题基本信息,应为“093,1-A-2”;第2行为考生本次考试的基本信息,请按实际情况输出,示例表示D413机房的28号计算机,机号为双(输出Even),学号为09123456,姓名拼音为ZhangDaHai(张大海);输入三数的累加和为211,平均值为70.3(输出一位小数),大于或等于60的数值有2个。

再如输入:

-91-50-70

则输出:

093,1-B-2

D413-28(Even),09123456,ZhangDaHai注:

本行请按考生实际情况输出

Sum=-211,Ave=-70.3

Pass=0

示例说明:

输入三数的累加和为-211,平均值为-70.3(输出一位小数),大于或等于60的数值为0个。

第3题(源程序文件E:

\answer\1-B-3.C)【16分】

上机要求:

按程序功能要求编写程序,并将程序代码保存到E:

\answer\1-B-3.C中。

程序功能:

从键盘上连续输入整数直至输入0时终止(设输入的非0整数取值1至5),按示例格式输出数字图形,每行的数字及数字个数与输入数相对应。

编写程序可以使用或参考所提供的函数。

如输入:

543210

则输出(□表示空格,↙表示回车):

1□2□3□4□5□↙

□1□2□3□4□↙

□□1□2□3□↙

□□□1□2□↙

□□□□1□↙

示例说明:

输入5个数后输入0,表示输出共5行,居中对齐形状。

输入的第1个数为5,则输出的第1行有5个数(取值1至5),数字之间含有1个空格;以此类推。

再如输入:

2320

则输出(□表示空格,↙表示回车):

□□□1□2□↙

□□1□2□3□↙

□□□1□2□↙

示例说明:

输入3个数后输入0,表示输出共3行。

输入的第1个数为2,则输出的第1行有2个数(取值1至2),数字之间含有1个空格,第1个2之前有5-2=3个空格;以此类推。

函数说明:

下列代码提供2个函数,可供编写程序时调用或参考。

其中函数sca_0从键盘上连续输入整数直至输入0时终止,并返回整数n;函数prtline可以输出图案中的某一行,参数m表示输出该行的m个数(取值1至m)。

函数代码:

函数代码

说明

intsca_0(inta[])

{

intn;

for(n=0;1;n++)

{

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

if(a[n]==0)break;

}

returnn;

}

voidprtline(intm)

{

inti;

for(i=1;i<=5-m;i++)

printf("");

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

printf("%d",i);

printf("\n");

}

函数:

连续输入整数直至输入0

先循环并计数输入的整数个数

输入整数至数组a中

如果输入0则结束输入

返回输入的非0整数个数

 

函数:

输出图案中的一行,m个数字

先输出5-m个空格

 

再输出m个数字,数字之后带有空格

最后输出换行

第4题(源程序文件E:

\answer\1-B-4.C)【20分】

上机要求:

按程序功能要求编写程序,并将程序代码保存到E:

\answer\1-B-4.C中。

程序功能:

输入10个整数(存贮在一维数组a中),按示例格式计算并输出以下结果。

(4)查找数值为0的元素并输出其下标(如果有多个0则输出第1个0的下标),如果没有找到,则输出NotFound;

(5)统计数值为100的元素个数并输出;

(6)从小到大排序,并按每行5个数的格式输出;

如输入:

1020304050100607080100

则输出:

NotFound(0)

Count(100)=2

1020304050

607080100100

示例说明:

输入10个整数,0没有出现,100出现2次,排序后分2行输出,每行输出5个数。

如输入:

500-5005060708090199

则输出:

a[1]=0

Count(100)=0

-50005050

60708090199

示例说明:

输入10个整数(可以有负数或超过100的数),其中100没有出现,0出现2次,第1次出现在下标1位置。

排序后分2行输出,每行输出5个数。

 

(093)上海大学2009-2010年春季学期操作题(B)

参考答案

第1题(1-B-1.c)

更正程序

错误点

#include

char*str_select_low(charb[],chara[])

{

inti,k=0;

for(i=0;a[i]!

='\0';i++)/***/

if(a[i]>='a'&&a[i]<='z')

b[k++]=a[i];/***/

b[k]='\0';

returnb;

}

main()

{

chara[100],b[100];/***/

gets(a);/***/

str_select_low(b,a);

puts(b);

}

 

for中的第2个分号误为逗号

:

=改为=,去掉=前的:

 

charb[100];漏定义

gets传递数组名

 

第2题(1-B-2.c)

#include

main()

{inta,b,c,sum,pass;

floatave;

printf("093,1-B-2\n");/*输出学期与题号*/

printf("D413-28(Even),09123456,ZhangDaHai\n");/*输出本人信息*/

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

sum=a+b+c;/*计算累加和*/

ave=sum/3.0;/*计算平均值*/

printf("Sum=%d,Ave=%.1f\n",sum,ave);

pass=

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1