浙江大学城市学院程序设计II上机答案.docx

上传人:b****4 文档编号:3768551 上传时间:2022-11-25 格式:DOCX 页数:22 大小:18.97KB
下载 相关 举报
浙江大学城市学院程序设计II上机答案.docx_第1页
第1页 / 共22页
浙江大学城市学院程序设计II上机答案.docx_第2页
第2页 / 共22页
浙江大学城市学院程序设计II上机答案.docx_第3页
第3页 / 共22页
浙江大学城市学院程序设计II上机答案.docx_第4页
第4页 / 共22页
浙江大学城市学院程序设计II上机答案.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

浙江大学城市学院程序设计II上机答案.docx

《浙江大学城市学院程序设计II上机答案.docx》由会员分享,可在线阅读,更多相关《浙江大学城市学院程序设计II上机答案.docx(22页珍藏版)》请在冰豆网上搜索。

浙江大学城市学院程序设计II上机答案.docx

浙江大学城市学院程序设计II上机答案

浙江大学城市学院程序设计II上机答案

7.1

/*程序填空,不要改变与输入输出有关的语句。

输入2个正整数m和n(1<=m<=6,1<=n<=6),

然后输入矩阵a(m行n列)中的元素,分别求出各行元素之和,并输出。

输出使用语句:

printf("sumofrow%dis%d\n",i,sum);

输入输出示例:

括号内为说明

输入:

32(m=3,n=2)

63

1-8

312

输出:

sumofrow0is9

sumofrow1is-7

sumofrow2is15

*/

#include<stdio.h>

intmain(void)

{

inti,j,m,n,sum;

inta[6][6];

scanf("%d%d",&m,&n);

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

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

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

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

sum=0;

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

sum=sum+a[i][j];

printf("sumofrow%dis%d\n",i,sum);

}

/*---------*/

return0;

}

/*程序填空,不要改变与输入输出有关的语句。

输入两个正整数m和n(m≥1,n≤6),

然后输入该m行n列二维数组a中的元素,

将该二维数组a中的每个元素向右移一列,

最后一列换到第一列,移动后的数组存到另一二维数组b中,按矩阵形式输出b。

输入输出示例:

括号内为说明

输入:

23(m=2,n=3)

456

123

输出:

Newarray:

645

312

*/

#include<stdio.h>

intmain(void)

{

inta[6][6],b[6][6],i,j,m,n;

scanf("%d%d",&m,&n);

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

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

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

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

b[i][0]=a[i][n-1];

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

for(j=0;j<n-1;j++)

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

/*---------*/

printf("Newarray:

\n");

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

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

printf("%4d",b[i][j]);

printf("\n");

}

return0;

}

/*程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

读入1个正整数n(1≤n≤6),再读入n阶方阵a,

计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。

副对角线为从矩阵的右上角至左下角的连线。

输入输出示例:

括号内为说明

输入:

1(repeat=1)

4(n=4)

2341

5611

7181

1111

输出:

sum=35(2+3+4+5+6+7+8=35)

*/

#include<stdio.h>

intmain(void)

{

inti,j,n,sum;

intrepeat,ri;

inta[6][6];

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d",&n);

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

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

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

sum=0;

for(i=0;i<n-1;i++)

for(j=0;j<n-1;j++)

if(i+j!

=n-1)

sum=sum+a[i][j];

/*---------*/

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

}

return0;

}

/*程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入一个正整数n(0<n<10),输出九九乘法表的前n×n项。

提示:

将乘数、被乘数和乘积放入一个二维数组中,再输出该数组。

输入输出示例:

括号内为说明

输入:

1(repeat=1)

3(n=3)

输出:

*123

11

224

3369

*/

#include<stdio.h>

intmain(void)

{

inti,j,n;

inta[10][10];

intrepeat,ri;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d",&n);

/*---------*/

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

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

a[i][j]=i*j;

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

a[i][0]=i;

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

a[0][j]=j;

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

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

if(i==0&&j==0)printf("%-4c",'*');

elseif(i==0||j<=i)printf("%-4d",a[i][j]);

printf("\n");

}

}

return0;

}

/*

程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入1个正整数n(1≤n≤6)和n阶方阵a中的元素,

如果a是上三角矩阵,输出"YES",否则,输出"NO"。

上三角矩阵指主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。

输入输出示例:

括号内为说明

输入:

2(repeat=2)

3(n=3)

123

045

006

2(n=2)

10

-82

输出:

YES

NO

*/

#include<stdio.h>

intmain(void)

{

intflag,i,j,n;

inta[6][6];

intrepeat,ri;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d",&n);

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

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

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

/*---------*/

flag=1;

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

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

if(a[i][j]!

=0)

flag=0;

if(flag!

=0)printf("YES\n");

elseprintf("NO\n");

}

return0;

}

/*

程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入日期(年、月、日),输出它是该年的第几天。

要求定义与调用函数day_of_year(year,month,day),计算并返回year(年)、month(月)和day(日)对应的是该年的第几天,函数形参year、month和day的类型是int,函数类型也是int。

输入输出示例:

括号内为说明

输入:

2(repeat=2)

198131(1981年3月1日)

200031(2000年3月1日)

输出:

Daysofyear:

60(1981年3月1日是该年的第60天)

Daysofyear:

61(2000年3月1日是该年的第61天)

*/

#include<stdio.h>

intmain(void)

{

intday,day_year,month,year;

intrepeat,ri;

intday_of_year(intyear,intmonth,intday);

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d%d%d",&year,&month,&day);

/*---------*/day_year=day_of_year(year,month,day);

printf("Daysofyear:

%d\n",day_year);

}

return0;

}

intday_of_year(intyear,intmonth,intday)

{

inti,days=0;

intmon[12]={31,28,31,30,31,30,31,31,30,31,30,31};

if(year%400==0||year%4==0&&year%100!

=0)

days++;

for(i=0;i<month-1;i++)

days=days+mon[i];

days=days+day;

returndays;

}

/*程序填空,不要改变与输入输出有关的语句。

下面是一个特殊的5阶方阵。

输入1个正整数n(n≤6),输出如此形式的n阶的方阵(顺时针方向旋进)。

12345

160006

150007

140008

131211109

输入输出示例:

括号内为说明

输入:

5(n=5)

输出:

12345

160006

150007

140008

131211109

*/

#include<stdio.h>

intmain(void)

{

inta[10][10],i,j,n,k=0;

scanf("%d",&n);

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

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

a[i][j]=0;

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

{

k++;

a[0][j]=k;

}

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

{

k++;

a[i][n-1]=k;

}

for(j=n-2;j>=0;j--)

{

k++;

a[n-1][j]=k;

}

for(i=n-2;i>0;i--)

{

k++;

a[i][0]=k;

}

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

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

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

printf("\n");

}

return0;

}

/*程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入1个正整数n(1≤n≤6)和n阶方阵a中的元素,

假设方阵a最多有1个鞍点,如果找到a的鞍点,

就输出其下标,否则,输出"NO"。

鞍点的元素值在该行上最大,在该列上最小。

输入输出示例:

括号内为说明

输入:

2(repeat=2)

4(n=4)

1741

4836

1612

0789

2(n=2)

17

41

输出:

a[2][1]=6

NO

*/

#include"stdio.h"

intmain(void)

{

intflag,i,j,k,row,col,n;

inta[6][6];

intrepeat,ri;

scanf("%d",&repeat);

for(ri=1;ri<=repeat;ri++){

scanf("%d",&n);

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

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

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

row=col=0;

for(row=0;row<n;row++){

for(col=0;col<n;col++){

flag=1;

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

if(a[row][j]>a[row][col]){

flag=0;

break;

}

}

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

if(a[i][col]<a[row][col]){

flag=0;

break;

}

}

if(flag==1)

{

break;

}

}

if(flag==1){

break;

}

}

/*---------*/

if(flag!

=0)

printf("a[%d][%d]=%d\n",row,col,a[row][col]);

else

printf("NO\n");

}

return0;

}

7.3

/*程序填空,不要改变与输入输出有关的语句。

输入一个以回车结束的字符串(少于80个字符),将它的内容逆序输出。

如"ABCD"的逆序为"DCBA"。

输入输出示例:

括号内为说明

输入:

Welcometoyou!

输出:

!

uoyotemocleW

*/

#include<stdio.h>

intmain(void)

{

inti,k,temp;

charstr[80];

i=0;

while((str[i]=getchar())!

='\n')

i++;

str[i]=0;

k=i-1;

i=0;

while(i<k)

{

temp=str[i];

str[i]=str[k];

str[k]=temp;

k--;

i++;

}

/*---------*/

for(i=0;str[i]!

=0;i++)

putchar(str[i]);

return0;

}

/*程序填空,不要改变与输入输出有关的语句。

输入一个以回车结束的字符串(少于80个字符),把字符串中的所有数字字符('0'~'9')转换为整数,去掉其他字符。

例如,字符串“3a56bc”转换为整数后是356。

输入输出示例:

括号内为说明

输入:

free82jeep5

输出:

825

*/

#include<stdio.h>

intmain(void)

{

inti,s;

charstr[80];

i=0;

while((str[i]=getchar())!

='\n')

i++;

str[i]='\0';

s=0;

for(i=0;str[i]!

='\0';i++)

if(str[i]<='9'&&str[i]>='0')

s=s*10+(str[i]-'0');

/*---------*/

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

return0;

}

/*程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入一个字符,再输入一个以回车结束的字符串(少于80个字符),

在字符串中查找该字符,如果找到,

输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"NotFound"。

输入输出示例:

括号内为说明

输入:

2(repeat=2)

m(字符'm')

programming(字符串"programming")

a(字符'a')

1234(字符串"1234")

输出:

index=7('m'在"programming"中对应的最大下标是7)NotFound("1234"中没有'a')

*/

#include<stdio.h>

#defineMAXLEN80

intmain(void)

{

charcc,ch;

charstr[MAXLEN];

intcount,flag,i,index;

intrepeat,ri;

scanf("%d",&repeat);

getchar();

for(ri=1;ri<=repeat;ri++){

cc=getchar();

getchar();

i=0;

while((ch=getchar())!

='\n'){

str[i++]=ch;

}

str[i]=0;

flag=0;

i=0;

while(str[i]!

=0)

{

if(cc==str[i])

{

flag=1;

index=i;

}

i++;

}

/*---------*/

if(flag!

=0)

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

else

printf("NotFound\n");

}

return0;

}

/*程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入一个以回车结束的字符串(少于80个字符),

统计并输出其中大写辅音字母的个数。

大写辅音字母:

除'A','E','I','O','U'以外的大写字母。

输入输出示例:

括号内为说明

输入:

2(repeat=2)

HELLO

group

输出:

count=3("HELLO"中有3个大写辅音字母)

count=0("group"中没有大写辅音字母)

*/

#include<stdio.h>

#defineMAXLEN80

intmain(void)

{

charch;

charstr[MAXLEN];

intcount,i;

intrepeat,ri;

scanf("%d",&repeat);

getchar();

for(ri=1;ri<=repeat;ri++){

i=0;

while((ch=getchar())!

='\n'){

str[i++]=ch;

}

str[i]=0;

count=0;

i=0;

while(str[i]!

=0)

{

if(str[i]!

='A'&&str[i]!

='E'&&str[i]!

='I'&&str[i]!

='O'&&str[i]!

='U'&&str[i]>='A'&&str[i]<='Z')

count++;

i++;

}

/*---------*/

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

}

return0;

}

/*程序填空,不要改变与输入输出有关的语句。

输入一个正整数repeat(0<repeat<10),做repeat次下列运算:

输入一个以回车结束的字符串(少于80个字符),将其中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串。

原字母对应字母

AZ

BY

CX

DW

……

XC

YB

ZA

输入输出示例:

括号内为说明

输入:

2(repeat=2)

AflagofUSA

1+2=3

输出:

Afterreplaced:

ZflagofFHZ

Afterreplaced:

1+2=3

*/

#include<stdio.h>

#include<string.h>

#defineMAXLEN80

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

当前位置:首页 > 求职职场 > 简历

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

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