青海大学mooc测验和作业_第1页
青海大学mooc测验和作业_第2页
青海大学mooc测验和作业_第3页
青海大学mooc测验和作业_第4页
青海大学mooc测验和作业_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

青海大学mooc测验和作业青海大学mooc测验和作业青海大学mooc测验和作业青海大学mooc测验和作业编制仅供参考审核批准生效日期地址:电话:传真:邮编:第二周1单选(2分)已知:chara;intb;floatc;doubled;执行语句c=a+b+c+d;后,变量c的数据类型是____。得分/总分A.double

/C.intD.char2单选(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.297D.'\t’

/5单选(2分)字符串"\\\065a,\n"的长度是____。得分/总分A.7

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

表示为一个C语言表达式,正确的写法是____。得分/总分A.–*a*8+7*12B.–*a*8+7)*12

/C.–*8+1/7)*12D.–*+*127单选(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;}输入样例:28输出样例:s=,v=源程序:#include<>#definePAIintmain(){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=1310-3=710*3=3010/3=310%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=1B.a=2,b=2C.a=1,b=0D.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<a<b4填空(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,输入结束。输出格式:列出此范围内的所有特殊偶数,并且列出此范围内特殊偶数的个数。输入样例:300030206040609000输出样例:3012

3014

3016

3018

counter=4

6042

6048

6052

6054

6058

6072

6074

6078

6082

6084

counter=10

输入样例:910187-100输出样例:ErrorError源程序:#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<n) {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<n;m++) 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语句

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.5B.3C.4D.64单选(2分)下面程序的输出结果是____

main()

{

int

i,j,x=0;

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

{

x++;

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

{

if(j%2)

continue;

x++;

}

x++;

}

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

}A.x=12B.x=6C.x=8D.x=4

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

#include

<>

main()

{

float

x,y,z;

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

z=x/y;

while(1)

{

if(fabs(z)>

{

x=y;

y=z;

z=x/y;

}

else

break;

}

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

}注:fabs()是浮点数绝对值函数。A.B.C.D.

6填空(2分)下面程序的功能是输出1到100之间每位数的乘积大于每位数的和的数。例如数字26,数位上数字的乘积12大于数字之和8。(答案以①

的形式提交,如①a

②b

③c)

main()

{

int

n,k=1,s=0,m;

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

{

k=1;

s=0;

while(

)

{

k*=m%10;

s+=m%10;

}

if(k>s)

printf(”%d”,n);

}

}①m=n②m>0③m=m/10第六周编程1数字正方型(10分)题目内容:这是双重循环的入门题目,大家来看看,你会做吗?输入n的值,输出如下例(n=4)所示的由数字组成的正方型。

1

2

3

4

5

6

7

8

9101112

13141516输入格式:n输出格式:数字组成的正方型输入样例:1输出样例:1源程序:#include<>intmain(){ intn,i,j,s=0; scanf("%d",&n); for(i=1;i<=n;i++) {for(j=1;j<=n;j++) printf("%3d",++s); printf("\n"); } return0;}2空心字符菱形(10分)题目内容:根据菱型起始字母和菱形的高度,打印空心的由字符组成的菱形。输入格式:菱型起始字母和菱形的高度。输出格式:参照样例,打印空心的由字符组成的菱形。输入样例:C4输出样例:CDDEEFFEEDDC源程序:#include<>intmain(){ charch; intn,i,j,k;scanf("%c%d",&ch,&n); for(i=1;i<=n;i++) {for(k=1;k<=n-i;k++) printf(""); for(j=1;j<=2*i-1;j++) if(j==1||j==2*i-1)printf("%c",ch); else printf(""); printf("\n"); ch++; } ch=ch-2; for(i=n-1;i>=1;i--) {for(k=1;k<=n-i;k++) printf(""); for(j=1;j<=2*i-1;j++)if(j==1||j==2*i-1)printf("%c",ch); elseprintf(""); printf("\n"); ch--; } return0;}3邮票组合(10分)题目内容:我们寄信都要贴邮票,在邮局有一些小面值的邮票,通过这些小面值邮票中的一张或几张的组合,可以满足不同邮件的不同的邮资。现在,邮局有4种不同面值的邮票。在每个信封上最多能贴5张邮票,面值可相同,可不同。输入格式:四种邮票的面值。输出格式:用这四种面值组成的邮资最大的从1开始的一个连续的区间。说明:如结果为10,则表明使用4张邮票可组合出1、2、3、4、5、6、7、8、9、10这些邮资。名词解释:

邮资:就是你寄东西需要花多少钱。邮票面额:是由国家发行的具有固定价格的花纸片,被称为邮票。如果你寄东西,邮局称了重量,告诉你要240分。这样你就要贴邮票了。如果现在邮局的邮票有面值为80分、50分、20分和10分的四种,你就可以采用不同的组合得到240的邮资,例如:采用3张80分的可以凑出240分;或者24张10分的凑起来240分也可以。显然不同邮票的组合都可以得到同样一种邮资。输入样例:141221输出样例:Themaxis71.源程序:#include<>intmain(){ inta,b,c,d,i,j,k,m,t=0,s=0,n=1,x=0; scanf("%d%d%d%d",&a,&b,&c,&d); n",n-2); n"); return0;}3洗牌(10分)题目内容:假设我们有2n张牌,它们以1,2,...,n,n+1,...,2n编号并在开始时保持着这种顺序。一次洗牌就是将牌原来的次序变为n+1,1,n+2,2,...,2n,n,也就是将原来的前n张牌放到位置2,4,...,2n,并且将余下的n张牌按照他们原来的次序放到奇数位置1,3,...,2n-1。已经证明对于任何一个自然数n,这2n张牌经过一定次数的洗牌就回到原来的次序。但我们不知道对于一个特定的n,需要几次洗牌才能将牌洗回原来的次序。输入格式:牌张数的一半n,即初始情况下一共有2n张牌,n为int型整数输出格式:将牌洗回原来的次序所需要的洗牌次数输入样例:10输出样例:6[回车]源程序:#include<>#defineN80000intmain(){ inta[N]={0},b[N]={0},c[N],i,n,s=0; scanf("%d",&n);for(i=0;i<2*n;i++) {a[i]=i+1;c[i]=a[i];} do { for(i=0;i<n;i++) b[i]=a[i+n]; for(i=n-1;i>=0;i--) a[2*i+1]=a[i];for(i=0;i<n;i++)a[2*i]=b[i]; .,16,先对前17位数字的权求和

Ai:表示第i位置上的身份证号码数字值

Wi:表示第i位置上的加权因子

Wi:7910584216379105842(2)计算模Y=mod(S,11)(3)通过模得到对应的校验码Y:012345678910

校验码:10X98765432四、举例如下:北京市朝阳区:1002X

广东省汕头市:44052415位的身份证号升级办法:15位的身份证号:ddddddyymmddxxp18位的身份证号:ddddddyyyymmddxxpy其中dddddd为地址码(省地县三级)yyyymmddyymmdd为出生年月日xx顺号类编码p性别15位的yy年升为18位后,变成19yy年,但对于百岁以上老人,则为18yy年,此时,他们的最后三位顺序码为996,997,998或999来标记。输入格式:输入n组身份证号码,第一行为个数,以后每行为身份证号码。输出格式:如果输入的身份证号码为15位,则将其升级为18位后显示输出;否则判断其是否为合法身份证号,并逐行输出。输入样例:43506221002X0296[回车]输出样例:Invalid[回车]Valid[回车]1002X[回车]19965[回车]源程序:#include<>#include<>#include<>#defineN50intmain(){chars[N][19],t[4],last,a[19];intw[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};intn,i,j,sum,y,f=0;scanf("%d",&n); getchar();for(i=0;i<n;i++) gets(s[i]);for(i=0;i<n;i++){if(strlen(s[i])==15) {strcpy(a,s[i]); for(j=16;j>7;j--) s[i][j]=s[i][j-2]; t[0]=a[12];t[1]=a[13]; t[2]=a[14];t[3]='\0'; if(strcmp(t,"996")==0||strcmp(t,"997")==0||strcmp(t,"998")==0||strcmp(t,"999")==0) s[i][7]='8'; elses[i][7]='9'; s[i][6]='1'; sum=0; for(j=0;j<17;j++) sum=sum+w[j]*(int)(s[i][j]-48); y=sum%11; switch(y) {case0:s[i][17]='1';break; case1:s[i][17]='0';break; case2:s[i][17]='X';break; case3:s[i][17]='9';break; case4:s[i][17]='8';break; case5:s[i][17]='7';break; case6:s[i][17]='6';break; case7:s[i][17]='5';break; case8:s[i][17]='4';break; case9:s[i][17]='3';break; case10:s[i][17]='2';break; } s[i][18]='\0'; puts(s[i]); } elseif(strlen(s[i])==18){ sum=0; for(j=0;j<17;j++) sum=sum+w[j]*(int)(s[i][j]-48); y=sum%11;switch(y) {case0:last='1';break; case1:last='0';break; case2:last='X';break; case3:last='9';break; case4:last='8';break; case5:last='7';break; case6:last='6';break; case7:last='5';break; cas

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论