青海大学mooc测验与作业.docx

上传人:b****5 文档编号:30605365 上传时间:2023-08-18 格式:DOCX 页数:38 大小:33.49KB
下载 相关 举报
青海大学mooc测验与作业.docx_第1页
第1页 / 共38页
青海大学mooc测验与作业.docx_第2页
第2页 / 共38页
青海大学mooc测验与作业.docx_第3页
第3页 / 共38页
青海大学mooc测验与作业.docx_第4页
第4页 / 共38页
青海大学mooc测验与作业.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

青海大学mooc测验与作业.docx

《青海大学mooc测验与作业.docx》由会员分享,可在线阅读,更多相关《青海大学mooc测验与作业.docx(38页珍藏版)》请在冰豆网上搜索。

青海大学mooc测验与作业.docx

青海大学mooc测验与作业

第二周

1单选(2分)已知:

chara;intb;floatc;doubled;执行语句c=a+b+c+d;后,变量c的数据类型是____。

得分/总分

A.double

 /

C.int

D.char

2单选(2分)已知inti=5;执行语句i+=++i;i的值是____。

得分/总分

A.其他答案都不对

 /

3单选(2分)已知intx=5,y=5,z=5;执行语句x%=y+z;后,x的值是____。

得分/总分

 /

4单选(2分)下列可以正确表示字符型常数的是____。

得分/总分

A."a"

B."\n"

C.297

D.'\t’ /

5单选(2分)字符串"\\\065a,\n"的长度是____。

得分/总分

A.7

 /

6单选(2分)把算术表达式

  表示为一个C语言表达式,正确的写法是____。

得分/总分

A.–*a*8+7*12

B.–*a*8+7)*12 /

C.–*8+1/7)*12

D.–*+*12

7单选(2分)温度华氏和摄氏的关系是:

C=5(F-32)/9。

已知:

floatC,F;由华氏求摄氏的正确的赋值表达式是____。

得分/总分

=5/9(F-32)

B.三个表达式都正确

=5*(F-32)/9 /

=5/9*(F-32)

8单选(2分)已知inti=10;表达式“20-0<=i<=9”的值是____。

得分/总分

 /

9单选(2分)已知:

intx,y;doublez;则以下语句中错误的函数调用是____。

得分/总分

("%d,%lx,%le",&x,&y,&z)

("%2d*%d%lf",&x,&y,&z)

("%x%*d%o",&x,&y)

("%x%o%",&x,&y,&z) /

10单选(2分)已知”inta=5,b=5,c;”,则执行表达式”c=a=a>b”后变量a的值为____。

得分/总分

 /

第三周

1让我们学习用C语言向世界问好。

“HelloWorld”示例程序最早出现于1972年,由贝尔实验室成员BrianKernighan撰写的内部技术文件《IntroductiontotheLanguageB》之中。

不久同作者于1974年所撰写的《ProgramminginC:

ATutorial》,也延用这个示例。

一般来说,这是每一种计算机编程语言中最基本、最简单的程序,亦通常是初学者所编写的第一个程序。

它还可以用来确定该语言的编译器、程序开发环境,以及运行环境是否已经安装妥当。

将“HelloWorld”作为第一个示范程序,已经成为编程语言学习的传统。

我们在这里继续传统,这也是一种向前辈们致敬的方式之一吧!

最早的程序基本是这个样子的:

#includeintmain(){printf("Helloworld.\n");return0;}请模仿上面的程序,看看是否可以通过编译如果你能通过这个简单的程序,那就让我们继续完成后面的习题吧。

(2分)

源程序:

#include<>

intmain()

{

printf("Helloworld.\n");

return0;

}

2学学scanf和printf的用法吧(5分)

题目内容:

该如何处理double型的数据:

如何定义变量类型如何使用scanf函数

如果已知圆柱的底面半径r,以及高h,则可计算出圆柱的侧面积

体积 

其中

输入格式:

第一行输入圆柱的底面半径r

第二行输入圆柱的高h

输出格式:

s=<圆柱的侧面积>,v=<圆柱的体积>

要求

1.所有变量都定义为双精度类型

2.结果精确到小数点后两位。

作为练习题目:

我们已经给您编写好了大部分的代码,请您自己修改几个地方,完成程序的剩余部分。

**********************************************分隔线************

#include<>

#definePAI 

intmain()

{

   intr,h;

   doubles,v;

   scanf("%d%d",                 );

   s=2*PAI*r*h;

   v=PAI*r*r*h;

   printf("s=%.2f,v=       \n",s,  );

   return0;

}

输入样例:

2

8

输出样例:

s=,v=

源程序:

#include<>

#definePAI

intmain()

{

doubler,h;

doubles,v;

scanf("%lf%lf",&r,&h);

s=2*PAI*r*h;

v=PAI*r*r*h;

printf("s=%.2lf,v=%.2lf\n",s,v);

return0;

}

3输出字符的ASCII码(10分)

题目内容:

我们在计算机基础中已经学过:

字母在计算机中采用ASCII码进行存储。

下面要从键盘上输入任意一个字符,然后输出该字符对应的ASCII码。

输入格式:

一个字符

输出格式:

该字符对应的ASCII码

输入样例:

A

输出样例:

TheASCIIofcharacter'A'is65.

源程序:

#include<>

intmain()

{

charch;

ch=getchar();

printf("TheASCIIofcharacter'%c'is%d.\n",ch,ch);

return0;

}

4一年级的算术题(10分)

题目内容:

小明上小学一年级了,老师已经教会了他们进行整数的+、-、*、/、%计算,下面老师开始出题,给出一个简单的算术表达式,请小明给出计算结果。

输入格式:

接受两个整数,每个整数之间使用空格分隔。

例如输入格式为:

123 444

输出格式:

分别输出按照整型数据进行+、-、*、/、*之后的运行结果。

输入样例:

103

输出样例:

10+3=13

10-3=7

10*3=30

10/3=3

10%3=1

源程序:

#include<>

intmain()

{

inta,b;

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

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

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

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

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

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

return0;

}

5判断三角形的形状(10分)

题目内容:

输入三角型的三条边,判断三角形的形状。

假设输入的三边边长均>0。

输入格式:

三角型的3条边的长度(int型)。

输出格式:

等边三角形:

equilateraltriangle

等腰三角形:

isocelestriangle

不构成三角形:

non-triangle

一般三角形:

triangle

输入样例:

222

输出样例:

equilateraltriangle.

源程序:

#include<>

intmain()

{

inta,b,c;

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

if(a+b>c&&a+c>b&&b+c>a)

if(a==b&&b==c&&a==c)printf("equilateraltriangle.\n");

elseif(a==b||b==c||a==c)printf("isocelestriangle.\n");

elseprintf("triangle.\n");

elseprintf("non-triangle.\n");

return0;

}

第四周作业

本次得分为:

本次测试的提交时间为:

2016-04-23,如果你认为本次测试成绩不理想,你可以选择再做一次。

1单选(2分)

下面程序的输出是

#include<>

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:

a++;break;

case1:

b++;break;

}

case2:

a++;b++;

break;

}

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

}

得分/总分

A.a=1,b=1

B.a=2,b=2

C.a=1,b=0

D.a=2,b=1

/

2单选(2分)

以下程序的输出结果是

main()

{floatx=2,y;

if(x<0)y=0;

elseif(x<5&&!

x)y=1/(x+2);

elseif(x<10)y=1/x;

elsey=10;

printf(”%f\n”,y);

}

得分/总分

A.

B.

C.

/

D.

3填空(2分)

若下列程序执行后t的值为4,则执行时输入a,b的值范围是

#include””

main()

{inta,b,s=1,t=1;

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

if(a>0)s+=1;

if(a>b)t+=s;

elseif(a==b)t=5;

elset=2*s;

printf(”s=%d,t=%d\n”,s,t);

}

得分/总分

0

4填空(2分)

下列程序段当a的值为014和0x14时的执行结果分别是

if(a=0xA|a>12)

if(011&10==a)printf(”%d!

\n”,a);

elseprintf(”Right!

%d\n”,a);

elseprintf(”Wrong!

%d\n”,a);

得分/总分

10!

Right!

11

第四周

1计算时钟的夹角(10分)

题目内容:

钟面上的时针和分针之间的夹角总是在0~180之间(包括0 和180 )。

举例来说,在十二点的时候两针之间的夹角为0 ,而在六点的时候夹角为180 ,在三点的时候为90 。

本题要解决的是计算12:

00到11:

59之间任意一个时间的夹角。

输入格式:

每组测试数据包含两个数字:

第一个数字代表小时(大于0小于等于12),第二个数字代表分(在区间[0,59]上)。

输出格式:

对应每组测试数据,用常用格式显示时间以及这个时候时针和分针间的最小夹角,精确到小数点后一位。

输出格式如下所示。

再看一看,想一想:

是否可以不用if语句,只使用printf函数来简化你的程序

输入样例:

120

输出样例:

At12:

00theangleisdegrees.

源程序:

#include<>

#include<>

intmain()

{intm,n,h;

doublex,y,degree;

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

y=*m;

h=n;

if(n==12)h=0;

x=(h+m/*30;

degree=fabs(y-x);

printf("At%d:

%02dtheangleis%.1lfdegrees.\n",n,m,degree);

return0;

}

2确定母亲节(10分)

题目内容:

母亲节是每年的五月第二个星期天,针对输入的年份,计算该年的哪一天是母亲节。

输入格式:

年份

输出格式:

日期(5月的哪一天)

输入样例:

2014

输出样例:

11

源程序:

#include<>

intmain()

{intw,c,y,m=5,d=1;

scanf("%d",&y);

c=y/100;

y=y%100;

w=c/4-2*c+y+(y/4)+13*(m+1)/5+d-1;

w=w%7;

if(w<0)w=(w+14)%7;

if(w==0)d=w+8;

elseif(w>0)d=15-w;

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

return0;

}

3计算星期(10分)

题目内容:

给出任意一个年月日(年>1900),现在我们不能只是直接计算,要先判断给出的日期是否合法,对于非法的日期要给出错误提示信息,合法的日期要再计算是星期几。

输入格式:

年月日

输出格式:

0~6。

   星期日用0表示,星期一用1表示,星期二用2表示......星期六用6表示。

假设年份大于1900。

先想一想:

我们现在只会使用if语句,该如何建立数学模型

输入样例:

2013311

输出样例:

1

输入样例:

20131315

输出样例:

monthiserror.

输入样例:

2013332

输出样例:

dayiserror.

源程序:

#include<>

intmain()

{

inty,m,d,c,w;

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

if(y<1900)printf("yeariserror.\n");

elseif(m<1||m>12)printf("monthiserror.\n");

elseif(d>31||d<1)printf("dayiserror.\n");

else

{c=y/100;

y=y%100;

if(m==1)m=13;

if(m==2)m=14;

w=c/4-2*c+y+y/4+13*(m+1)/5+d-1;

w=w%7;

if(w<0)w=(w+14)%7;

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

}

return0;

}

4求最后3位数值(10分)

题目内容:

小明在中学会求一个数的n次方了,但计算机还不会,请你来编写一个程序吧。

由于计算机比较“笨”,所以我们编写程序的功能不用太强,只要能算出a的n次方的最后3位数就可以了。

输入格式:

a和n的值。

假设a<=150。

输出格式:

求a的n次方的最后3位数。

提示:

再想一想,你的方法对吗你用的是什么数据类型

输入样例:

100

输出样例:

Thelast3numbersis1.

源程序:

#include<>

intmain()

{inta,n,i,x;

intp=1;

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

if(n!

=0&&a<=150)

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

p=p%1000*a;

x=p%1000;

printf("Thelast3numbersis%03d.\n",x);

}

elseprintf("Thelast3numbersis1.\n");

return0;

}

第五周编程作业

1锻炼身体吧(10分)

题目内容:

沫沫,灰灰和渣渣去锻炼身体,如果对他们跑步的距离分别只计整数a、b、c,由于他们身高的差距,造成了a<=b<=c,并且渣渣跑了N米之后就再也跑不动了。

但是,按照他们事先的约定:

只有当c*c==a*a+b*b时,他们的锻炼才有效果。

现在他们三个人想知道,如果渣渣的极限N已知,那么有多少种有锻炼效果的跑步方案(即a,b,c有多少种可能的取值)。

输入格式:

一个整数N,表示渣渣的体力极限,N<=5000。

输出格式:

一个整数,代表他们跑步方案的个数。

Hint:

对于输入N=5,有方案a=3,b=4,c=5,共一种。

输入样例:

5

输出样例:

1

源程序:

#include<>

intmain()

{

intn,a,b,c,m;

scanf("%d",&n);

m=0;

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

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

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

if(c*c==a*a+b*b&&a<=b)m++;

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

return0;

}

2寻找特殊偶数(10分)

题目内容:

有一种特殊偶数,它每一位上的数字都两两不相同。

我们现在需要找出四位数中某一区间内的这类偶数。

输入格式:

所要寻找的四位偶数的范围。

每组输入有两个数字:

第一个数字是最小范围;第二个数字是最大范围。

如果输入遇到0,输入结束。

输出格式:

列出此范围内的所有特殊偶数,并且列出此范围内特殊偶数的个数。

输入样例:

30003020

60406090

00

输出样例:

3012 3014 3016 3018 

counter=4

6042 6048 6052 6054 6058 6072 6074 6078 6082 6084 

counter=10

输入样例:

9101

87-1

00

输出样例:

Error

Error

源程序:

#include<>

intmain()

{

intm,n,i,counter;

inta,b,c,d;

do{

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

if(m!

=0&&n!

=0&&(m>=1000&&m<10000)&&(n>=1000&&n<10000)&&m

{counter=0;

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

if(i%2==0)

{a=i/1000;b=i%1000/100;c=i%100/10;d=i%10;

if(a!

=b&&a!

=c&&a!

=d&&b!

=c&&b!

=d&&c!

=d)

{counter++;printf("%d",i);}

}

printf("\ncounter=%d\n",counter);

}

elseif(m==0&&n==0)return0;

else

printf("Error\n");

}while

(1);

return0;

}

3求最小m值(10分)

题目内容:

求满足下列不等式的最小m。

   1+2+3+4+......+m≥n

例如:

n=100,当m=14时,满足:

1+2+3+4+...+13=91<100,而1+2+3+4+......+14=105>100。

输入格式:

n

输出格式:

m

输入样例:

100

输出样例:

14

源程序:

#include<>

intmain()

{

intn,m,s=0;

scanf("%d",&n);

for(m=1;s

s=s+m;

printf("%d\n",m-1);

return0;

}

第六周作业

1单选(2分)求取满足式

的n,正确的语句是

A.for(i=1,s=0;(s=s+i*i++)<=1000;n=i)

B.for(i=1,s=0;(s=s+i*++i)<=1000;n=i)

C.for(i=1,s=0;(s=s+i*i)<=1000;n=++i)

D.for(i=1,s=0;(s=s+i*i)<=1000;n=i++)

2单选(2分)下面的for语句          

1.for(x=0,y=10;(y>0)&&(x<4);x++,y-- )

A.循环执行3次

B.循环执行4次

C.是无限循环

D.循环次数不定

3单选(2分)已知inti=1;执行语句while(i++<4);后,变量i的值为        

A.5

B.3

C.4

D.6

4单选(2分)下面程序的输出结果是____

1.          main()

2.          {  int i,j,x=0;

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

4.             {  x++;

5.                for(j=0;j<-3;j++)

6.                {  if(j%2)

7.                      continue;

8.                   x++;

9.                }

10.                x++;

11.             }

12.             printf(”x=%d\n”,x);

13.          }

A.x=12

B.x=6

C.x=8

D.x=4 

5单选(2分)假定从键盘上输入“,<回车>”,下面程序的输出是____

1.         #include <>

2.         main()

3.         {  float x,y,z;

4.            scanf(”%f,%f”,&x,&y);

5.            z=x/y;

6.            while

(1)

7.            {  if(fabs(z)>

8.               {  x=y;

9.                  y=z;

10.                  z=x/y;

11.               }

12.               else   break;

13.             }

14.             printf(”%f\n”,y);

15.          }

注:

fabs()是浮点数绝对值函数。

A.

B.

C.

D. 

6填空(2分)下面程序的功能是输出1到100之间每位数的乘积大于每位数的和的数。

例如数字26,数位上数字的乘积12大于数字之和8。

(答案以① ② ③ 的形式提交,如①a ②b ③c)

1.       main()

2.

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

当前位置:首页 > 工程科技 > 交通运输

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

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