2020 C语言程序设计(青岛科技大学)1461897444 最新满分章节测试答案
- 【作业】第 3 章 运算符、表达式及语句 第 3 章 运算符、表达式及语句作业
- 【作业】第 2 章 数据类型 第二章 单元作业
- 【作业】第 1 章 C语言基础 C语言基础作业
- 【作业】第 10 章 文件 第 10 章 单元作业
- 【作业】第 9 章 指针 第 9章 单元作业
- 【作业】第 8 章 自定义类型 第 8 章 单元作业
- 【作业】第 7 章 函数 第7章 单元作业
- 【作业】第 6 章 数组 第6章 单元作业
- 【作业】第 5 章 循环结构 第5章 单元作业
- 【作业】第 4 章 选择结构 第四章 单元作业
- 第 2 章 数据类型 第2章数据类型测验
- 第 1 章 C语言基础 第1章 C语言基础 测验
- 第 6 章 数组 第6章 数组 测验
- 第 3 章 运算符、表达式及语句 第 3 章 运算符、表达式及语句 测验
- 第 5 章 循环结构 第 5 章 循环结构 测验
- 第 4 章 选择结构 第 4 章 选择结构测验
- 第 7 章 函数 第 7 章 函数 测验
- 第 10 章 文件 第 10 章 文件 测验
- 第 9 章 指针 第 9 章 指针 测验
- 第 8 章 自定义类型 第 8 章 自定义类型 测验
本答案对应课程为:点我自动跳转查看
本课程起止时间为:2020-10-20到2021-04-30
本篇答案更新状态:已完结
【作业】第 3 章 运算符、表达式及语句 第 3 章 运算符、表达式及语句作业
1、 问题:从键盘输入两个整数分别给变量a和b,分别写出不借助于其他变量和借助于其他变量的条件下,将变量a和b的值实现交换。(提示:利用“+”、“-”运算)
评分规则: 【 借助其他变量c实现a,b值的交换:c=a;a=b;b=c;
不借助其他变量实现a,b值的交换:a=a+b;b=a-b;a=a-b;
】
2、 问题:2.从键盘上输入一个浮点数,然后分别输出该数的整数部分和小数部分。
评分规则: 【 若输入的浮点数存入fd变量,则可用强制类型转换运算符,将输入的该数的整数部分取出:zhs=(int)fd;
小数部分=浮点数-整数部分
】
【作业】第 2 章 数据类型 第二章 单元作业
1、 问题:设变量a是整型,f是实型,i是双精度型,则表达式10+’a’+i*f值的数据类型为( )。
评分规则: 【 双精度型
】
2、 问题:int x=2;double y; 经过y=(float)x赋值后,变量x的数据类型是( )。
评分规则: 【 int或基本整形
】
3、 问题:scanf函数的地址表列中给出各变量的地址,地址由( )后跟变量名组成。
评分规则: 【 地址符&
】
4、 问题:C语言使字符型数据和整型数据在一定范围内之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出。()
评分规则: 【 正确
】
5、 问题:使用printf函数时,格式控制字符和各输出项应一一对应。()
评分规则: 【 正确
】
【作业】第 1 章 C语言基础 C语言基础作业
1、 问题:01170031:用流程图描述求M年X(1≤X≤6)月Y日是M年第W天的过程。
评分规则: 【 (1)流程图整体处理过程正确
(2) 基本图形元素使用准确
】
2、 问题:01170041:服装产品工艺流程:首先对布料进行选择,看是否符合服装用料的要求,接着把符合用料的布匹按设计图纸加以裁剪,做成服装的“各个零部件”。接着又把需要做图案装饰的零部件印上绣花。接着就把服装的各个部件接边缝制成件。再把成件的衣服用熨斗。接着把策划跟你拼交给质检部门检验质量是否合格。最后把检验合格的产品进行包装。
评分规则: 【 ()流程处理过程描述正确
(2)基本图形符号使用准确
】
3、 问题:关键字与标识符的区别
评分规则: 【 主要考察学生对C语言关键字和标识符的理解,不能照搬定义。关键字是C语言预先定义的有特殊含义的标识符,C语言中有32个关键字;标识符是由下划线或字符开头,字母、下划线和数字的组合形式,不能与关键字同名,一般长度不超过8位,在C语言中用于标识常量、变量、自定义数据类型、函数等的名称。
】
4、 问题:数学数与机器数的区别
评分规则: 【 主要考察学生对数学数和机器数的理解。数学中的数用“+”、“-”表示符号,大小用十进制表示,重大小、轻类型;计算机中的数将“+”、“-”符号化为1和0,用二进制表示,重类型、轻大小,同一种类型的数在计算中的存储方式、存储长度相同,表示范围有限。
】
【作业】第 10 章 文件 第 10 章 单元作业
1、 问题:文件软件191.txt用于存储学生信息,在下列情况下如何利用fseek()、ftell()函数判断文软件191.txt中存储的的学生数?#include<stdio.h>#include<stdlib.h>#include<string.h>struct student{ char name[10]; char num[11]; char sex[3]; int grade[6]; int total;}s[50];char claname[15];int main(){ FILE *fp; int n,i,j; char ch; printf("请输入班级名称:"); scanf("%s",claname); strcat(claname, ".txt"); //为班级软件191创建一个txt文件 fp=fopen(claname,"w+"); if (fp == NULL) { printf("File open error!"); exit(0); } printf("请输入学生数 "); scanf("%d",&n); printf("请按以下格式并使用空格输入学生信息:姓 名 学 号 性别 大英 高数 C程 导论 体育 近代史"); for(i=0;i<n;i++) { scanf("%s",s[i].name); scanf("%s",s[i].num); scanf("%s",s[i].sex); scanf("%d",&s[i].grade[0]); scanf("%d",&s[i].grade[1]); scanf("%d",&s[i].grade[2]); scanf("%d",&s[i].grade[3]); scanf("%d",&s[i].grade[4]); scanf("%d",&s[i].grade[5]); fwrite(&s[i],sizeof(struct student),1,fp); //将学生信息从内存变量写入文件 fputc(”,fp); //用换行符分割学生信息,每个学生信息占一行 } fclose(fp); fp=fopen("软件191.txt","r"); if (fp == NULL) { printf("File open error!"); exit(0); } printf("学 号 姓 名 性别 总成绩 "); for (i=0;i<n;i++) //从软件191.txt文件中读学生信息 { fread(&s[i],sizeof(struct student),1,fp); ch=fgetc(fp); s[i].total=0; for(j=0;j<6;j++) s[i].total+=s[i].grade[j]; printf("%s %s %s %d", s[i].num, s[i].name, s[i].sex,s[i].total); } fclose(fp); return 0;}
评分规则: 【 fseek(fp,0,SEEK_END); b=ftell(fp); fseek(fp,0,SEEK_SET); a=ftell(fp); c=sizeof(struct student); printf("%d=",(b-a)/(c+2));
】
【作业】第 9 章 指针 第 9章 单元作业
1、 问题:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。1.以下程序通过指针实现求a数组中各元素的和,请在__填写正确内容。#include <stdio.h>int main(){int a[6]={2,4,6,8,10,12}; int s, i,*p ;s=0;p=a;for (i=0;i<6;i++)_①______//求各元素的和。printf(“s=%d”,s);return 0;}
评分规则: 【 s=s+*p++
】
2、 问题:编写一个程序,实现将任意输入的两个字符串,连接成一个字符串,在子函数中实现连接,形参用字符指针变量,在______填写正确内容。#include <stdio.h>void mystrcat(char pa,char pb){ while(pa!=’\0′) pa++;//pa指向第一个字符串的尾部 while(pb!=’\0′) { ① ; }//把pb指向单元的内容连接在pa之后,可用一句或多句实现 pa=’\0′;}int main(){ char a[90],b[30]; gets(a); gets(b); ② ; //调用函数,实现两个字符串的连接。 printf("链接后的字符串是:%s",a); return 0;}
评分规则: 【 pa++=pb++;或者 pa=*pb;pa++;pb++
mystrcat(a,b)
】
3、 问题:一个数组中的15个值已经按升序排列存放,输入一个数,编程查找是否有该数?有就显示其所在的位置,没有,显示“No Found”,通过指针实现。
评分规则: 【 #include <stdio.h>int main(){ int p,m,num[15]={1,-25,-10,-5,0,3,7,9,15,25,36,63,78,98,100}; printf("输入要查找的数:"); scanf("%d",&m); p=num; while(p!=m && p<num+15) p++; if(p<num+15) printf("%d是第%d的元素",m,p-num+1); else printf("No Found"); return 0;}
】
4、 问题:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。1.长度为10的一维整型数组a中依次存储0、1、2、3、4、5、6、7、8、9,现根据需要将这些数字轮转存放,轮转的次数n通过键盘读入。#include<stdio.h>int main( ){ int a[10]={0,1,2,3,4,5,6,7,8,9}; int i,n,temp,p; printf("输入轮转的次数:"); scanf("%d", ① ); for(i=1;i<=n;i++) { temp=(a+9); for(p=a+9; p>a; p–) ② ; a=temp; } for(i=0;i<10;i++) printf("%3d", (a+i)); printf(""); return 0;}
评分规则: 【 &n
p=(p-1)
】
5、 问题:输入一个字符串,将其中连续的数字作为一个整数,依次存放到数组a中。例如:字符串为 ab123&gh6741kpen589,则将123存在a[0]中,6741存在a[1]中,589存在a[2]中。
评分规则: 【 #include<stdio.h>int main(){ char str[80],p; int num,a[20],i,total; printf("请输入字符串:"); gets(str); total=0; p=str; while(p!=’\0′) { if(p>=’0’&& p<=’9′) { num=0; do { num=num10+(p-‘0’); p++; }while(p>=’0′ && p<=’9′); a[total]=num; total++; } else p++; } printf("字符串中总计出现%d个数,分别是:",total); for(i=0;i<total;i++) printf(" %d",a[i]); printf(""); return 0;}
】
【作业】第 8 章 自定义类型 第 8 章 单元作业
1、 问题:依据题目要求,分析已给出的语句,填写空白。但是不要增行或删行,改动程序的结构。候选人得票统计程序。设有3个候选人,最终只能有1人当选为领导。今有10个人参加投票,从键盘先后输入这10个人所投的候选人的名字,要求最后输出这3个候选人的得票结果。#include <stdio.h>#include <string.h>struct person{ char name[20]; int count;};int main( ){ struct person leader[3]={"li",0,"zhang",0,"fun",0}; int i,j; char leader_name[20]; for(i=0;i<10;i++) { scanf("%s",leader_name); for(j=0;j<3;j++)//将票上姓名与3个候选人的姓名比较 if( ① ) leader[j].count++; } for(i=0;i<3;i++)//输出3个候选人的姓名与最后得票数 printf("%s,%d",leader[i].name,leader[i].count++); return 0;}
评分规则: 【 strcmp(leader_name,leader[j].name)==0
】
2、 问题:编写程序1.有10个学生,每个学生的信息包括学号、姓名、3门课的成绩,从键盘输入10个学生信息,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。要求用input函数输入10个学生数据;用average函数求总平均分;用max函数找出最高分的学生数据;总平均分和最高分学生的数据都在主函数中输出。
评分规则: 【 void input(struct student s[],int n){ int i,j; for(i=0;i<n;i++) { printf("学号:"); gets(s[i].no); printf("姓名:"); gets(s[i].name); printf("成绩:"); for(j=0;j<3;j++) scanf("%f",&s[i].score[j]); fflush(stdin); }}
void average(struct student s[],int n){ int i,j; for(i=0;i<n;i++) { s[i].average=0; for(j=0;j<3;j++) s[i].average+=s[i].score[j]; s[i].average/=3; } }}
int max(struct student s[],int n){ float m; int i,j; m=s[0].average; i=0; for(j=1;j<n;j++) if(m<s[j].average) { m=s[j].average; i=j; } return i;}
#include <stdio.h>#include <stdlib.h>#define N 10struct student { char no[12]; char name[10]; float score[3]; float average; }stu[N];int main(){ int i; input(stu,N); average(stu,N); printf("| 学 号 | 姓 名 |成绩1|成绩2|成绩3|均 分|"); for(i=0;i<N;i++) printf("|%11s|%9s| %4.1f| %4.1f| %4.1f| %4.1f|",stu[i].no,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].average); i=max(stu,N); printf("The highest score is:"); printf("%11s %9s %4.1f %4.1f %4.1f %4.1f",stu[i].no,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].average); return 0;}
】
3、 问题:阅读下列程序,分析程序结果。#include <stdio.h>int main(){ enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun } day; scanf("%d", &day); switch(day){ case Mon: puts("Monday"); break; case Tues: puts("Tuesday"); break; case Wed: puts("Wednesday"); break; case Thurs: puts("Thursday"); break; case Fri: puts("Friday"); break; case Sat: puts("Saturday"); break; case Sun: puts("Sunday"); break; default: puts("Error!"); } return 0;}输入:4↙
评分规则: 【 Thursday
】
【作业】第 7 章 函数 第7章 单元作业
1、 问题:编写一个函数,选出能被3整除且至少一位是5的两位数,用主函数调用这个函数,并输出所有这样的两位数。
评分规则: 【 #include <stdio.h>int fuhe(int n){ int gewei,shiwei; gewei=n%10; shiwei=n/10; if(n%3==0&&(gewei==5||shiwei==5)) return 1; else return 0;}int main() { int i; for(i=10;i<100;i++) if(fuhe(i)) printf("%d ",i); printf(""); return 0;}
】
2、 问题:编写函数判断某数是否为素数,如果是素数,则返回1,否则返回0,在main函数中调用该函数,根据返回值判断是否为素数。
评分规则: 【 #include <stdio.h>#include <math.h>int sushu(int n){ int i; for(i=2;i<=sqrt(n);i++) if(n%i==0) break; if(i>sqrt(n)) return 1; else return 0;}int main() { int m; printf("输入任意一个整数:"); scanf("%d",&m); if(sushu(m)) printf("%d是素数",m); else printf("%d不是素数!",m); return 0;}
】
3、 问题:兔子生兔子问题。说有一对刚出生的小兔子,一个月后长成大兔子,再过一个月以后,每个月又要生一对小兔子。在没有死亡的情况下,问第n个月后总共有多少对兔子。可以把兔子刚出生的时候看成1月,当时只有一对兔子;过一个月后,也就是2月,小兔子长成大兔子了,目前还是一对兔子;再过一个月,也就是3月,大兔子就生了一对小兔子,现在就是两对兔子了,而且会一直生下去……于是每过一个月就会增加一对兔子。当然还得考虑到生出来的小兔子也会长大,也会再生小兔子,于是就还要加上后出生的小兔子数……如此推下去,即可得出是个Fibonacci数列。(斐波那契数列,又称黄金分割数列,指的是1、1、2、3、5、8、13、21、34、…。这些数字从第三个开始,每一个数字都等于前面两个数字的和。同时后一个数字与前一个数字的比值,无限接近于黄金分割0.618。在数学上,斐波纳契数列以如下方法定义:F(0)=1、F(1)=1,F(2)=2,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。
评分规则: 【 #include<stdio.h>int tuzi(int n){ int num; if(n==1||n==2) num=1; else num=tuzi(n-2)+tuzi(n-1); return num ;}int main(){ int i,n,sum=0; printf("输入整数n值:"); scanf("%d",&n); printf("第 %d 个月后总共有 %d 对兔子。",n,tuzi(n)); return 0;}
】
4、 问题:见面分一半:一只小猴子跑到果园里摘桃子,不一会儿就摘到了好多,它很高兴,背起来就往家走。可是没走几步,就被山神拦住了,山神说这片果园是它的,见面要分一半。小猴子无奈,只好把桃分了一半给山神。分完以后,山神看见小猴子的包里有一个特别大的桃,又拿走了那个桃。小猴子很生气,背着桃悻悻地走了。没走多远,又被风爷爷拦住了,同样风爷爷也从小猴子的包里拿走了一半外加一个桃子。之后,小猴子又被雨神、雷神、电神用同样的办法拿了桃。等小猴子到家的时候,包里只剩下一个桃了。小猴子委屈地向妈妈诉说自己的遭遇。妈妈问它原来有多少个桃,小猴子说它也不知道。但妈妈算了一下,很快就知道小猴子原来有多少个桃了。你知道有多少个吗?
评分规则: 【 假设小猴子最初有x颗桃子,被山神拿走x/2+1,剩余x/2-1;有y=x/2-1颗桃子时被风神拿走y/2+1,剩余y/2-1;有z=y/2-1颗桃子时被雨神拿走 z/2+1,剩余z/2-1;有w=z/2-1颗桃子时被雷神拿走w/2+1,剩余w/2-1;有u=w/2-1颗桃子时被电神拿走 u/2+1,剩余u/2-1;v=1。经过山、风、雨、雷、电神以相同方式“抢夺”之后,小猴子最终剩余桃子1颗。 x=2y+1,y=2z+1,z=2w+1,w=2u+1,u=2v+1可将上述递推公式归结为数学学模型peaches(n)= 1 n=0 2(peaches(n-1)+1)n>0这里n=5,可用函数递归来处理,结果为94#include<stdio.h>int peaches(int n ){ int number; if(n==0) number=1; //猴子最后剩余的桃子数 else number=(peaches(n-1)+1)*2; return number;}int main(){ printf("peaches=%d",peaches(5)); return 0;}
】
5、 问题:如果有一个正整数从左、右来读都是一样的,则称该数为回文式数(简称回数);例如101,32123,999都是回数。数学中有名的“回数猜想”之谜,至今未解决。回数猜想:任取一个数,再把它倒过来,并把这两个数相加,然后把这个数再倒过来,与原数相加,重复此过程,一定能获得一个回数。例:68 倒过来是8668+86=154154+541=605605+506=1111(回数)编程,输入任意整数,按上述方法产生一个回数,为简便起见,最多计算7步,看能否得到一个回数。要求:主函数中接收键盘数据,必须用scanf(“%d”,&变量名)接收整型数据,显示该数与其倒数的和,输出每一步计算步骤。子函数1计算该数的倒数。子函数2验证和是否为回数,是则主函数打印“经过n次计算,得到回数”,超过7次未能得到回数,显示“经过n次计算,未能得到回数”。
评分规则: 【 #include<stdio.h>int daoshu(int n){ int dsh=0,i; while(n>0) { i=n%10; dsh=dsh*10+i; n=n/10; } return dsh;}int huiwen(int n){ if(n==daoshu(n)) return 1; else return 0;}int main(){ int x,y,num=7; printf("intput a integer data:"); scanf("%d",&x); while(num>0) { y=daoshu(x); if(huiwen(x+y)) { num–; break; } else x+=y; num–; } if(num>0) printf("经过%d次计算,得到回数%d",7-num,x+y); else printf("经过7次计算,未能得到回数"); return 0;}
】
【作业】第 6 章 数组 第6章 单元作业
1、 问题:.将一个长度为N的一维数组中的元素按颠倒的顺序重新存放,注意在操作时,只能借助一个临时存储单元而不得另外开辟数组。
评分规则: 【 #include<stdio.h>#define N 10int main(){ int a[N],i,j,temp; for(i=0;i<N;i++) scanf("%d",&a[i]); for(i=0,j=N-1;i<=j;i++,j–) { temp=a[i]; a[i]=a[j]; a[j]=temp; } for(i=0;i<N;i++) printf("%d ",a[i]); printf(""); return 0;}
】
2、 问题:输入一行文字,最多有80个字符。要求分别统计其中英文大写字母、小写字母、数字、空格以及其他字符的个数。
评分规则: 【 #include <stdio.h>#include <string.h>int main(){ char str[80]; int sum1=0,sum2=0,sum3=0,sum4=0,sum5=0,i=0; printf("输入一系列字符:"); gets(str); while(str[i]!=’\0′) { if(str[i]>=’a’&& str[i]<=’z’) sum1++; else if(str[i]>=’A’ && str[i]<=’Z’) sum2++; else if(str[i]>=’0’&& str[i]<=’9′) sum3++; else if(str[i]==’ ‘) sum4++; else sum5++; i++; } printf("长度为%d的字符串%s:",i,str); printf("含小写字母:%d, 大写字母:%d, 数字:%d 空格:%d, 其他字符:%d",sum1,sum2,sum3,sum4,sum5); return 0;}
】
3、 问题:编写一个将一个字符串逆转的程序,如将a [ ] =“apple”改为a [ ] =“elppa”。
评分规则: 【 #include<stdio.h>#include <string.h>int main(){ char str[80],ch; int len,i=0; printf("输入一个字符:"); gets(str); puts(str); len=strlen(str); for(i=0;i<len/2;i++) { ch=str[i]; str[i]=str[len-1-i]; str[len-1-i]=ch; } puts(str); return 0;}
】
4、 问题:有N个人围成一个圈子,从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号。
评分规则: 【 #include<stdio.h>#define N 10int main(){ int a[N],i,j=1,m; m=N; i=0; a[i]=j; do { i=(i+1)%N; j=(j+1)%3; while(a[i]==0) i=(i+1)%N; //圈子里下一个人所在位置 a[i]=j; //记数 if(a[i]==0) //若记数是3,则将其移出圈子,继续从1开始记数 { m–; j=0; } }while(m>1); for(i=0;i<N;i++) if(a[i]!=0) printf("last %d",i+1); return 0;}
】
5、 问题:已知数组b中存放N个人的年龄,编写程序,统计各年龄段的人数并存入数组d。要求把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,其余依此类推,把100岁(含100)以上年龄的人数都放在d[10]中。
评分规则: 【 #include<stdio.h>#define N 10int main(){ int a[11]={0},b[N],i; for(i=0;i<N;i++) scanf("%d",&b[i]); for(i=0;i<N;i++) if(b[i]>=100) a[10]++; else a[b[i]/10]++; printf("| 0-9 |10-19|20-29|30-39|40-49|50-59|60-69|70-79|80-89|90-99|100-|"); for(i=0;i<=10;i++) printf(" %3d ",a[i]); printf(""); return 0;}
】
【作业】第 5 章 循环结构 第5章 单元作业
1、 问题:妈妈给小明买了若干块巧克力,小明第一天吃了一半,还不过瘾,又多吃了一块,第二天又将剩下的巧克力吃掉一半,又多吃一块,以后每天都吃了前一天剩下的一半零一块。到第10天再想吃时,只剩下一块了。编程计算妈妈总共给小明买了多少块巧克力?
评分规则: 【 #include <stdio.h>int main(){ int chocolates=1,day=10;//第1天的巧克力数量是1 while( day>1 ) { chocolates=(chocolates+1)*2+1;//由当天的巧克力数计算前一天的数 day–; } printf("妈妈总共给小明买了%d块巧克力。",chocolates);return 0;}
】
2、 问题:一位百万富翁遇到一个陌生人,陌生人找他谈一个换钱的计划,该计划如下:我每天给你十万元,而你第一天只需给我一分钱,第二天我仍给你十万元,你给我二分钱,第三天我仍给你十万元,你给我四分钱,…,你每天给我的钱是前一天的两倍,直到满一月(30天),百万富翁很高兴,欣然接受了这个契约。请编写一个程序计算这一个月中陌生人给了百万富翁多少钱?百万富翁给陌生人多少钱?
评分规则: 【 #include <stdio.h>int main(){ double millionaire_stranger=1;//第1天百万富翁给陌生人1分钱 int day=1; while( day<30 ) { day++; millionaire_stranger=3millionaire_stranger;//从第1天开始截至第day天百万富翁给陌生人的钱 } printf("百万富翁30天应给陌生人 %.0f万元",millionaire_stranger/10000000); printf("陌生人30天应给百万富翁 %d万元",1030);return 0;}
】
3、 问题:日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想,猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘以3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1,请编程验证。
评分规则: 【 #include<stdio.h>int main(){ int ziranshu,n=0,i; printf("请随意输入一个自然数:"); scanf("%d",&ziranshu); i=ziranshu; do { if(i%2==0) i=i/2; else i=3*i+1; n++; } while(i!=n); printf("经过%d次运算%d变为1",n,ziranshu); return 0;}
】
4、 问题:马克思手稿里有一道有趣的数学问题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭共花了50先令:每个男人花3先令,每个女人花2先令,每个小孩花1先令,问男人、女人和小孩各有几人?
评分规则: 【 #include<stdio.h>int main(){ int man,women; for(man=1;man<17;man++) for(women=1;women<24;women++) if(3man+2women+(30-man-women)==50) //(30-man-women)小孩数 printf("男人:%2d 女人:%2d 小孩:%2d",man,women,30-man-women); return 0;}
】
5、 问题:有一对兔子,从出生后第三个月起每个月都生一对小兔子,小兔子长到第三个月后每月又生一对小兔子,假如兔子都不死,问20个月内每个月的兔子总数为多少?
评分规则: 【 该题的数学模型等效于斐波拉契数列天数 day1 day2 day3 day4 day5 能生产的兔子数(对) 0 0 1 1 2 总兔子数(对) 1 1 2 3 5 第n天的兔子数等于第n-1天的兔子数+第n天的能生产的兔子数(即第n-2天的兔子数)#include<stdio.h>int main(){ int rabbit=1,rabbits=1,day; printf("第 1 天的兔子数(对):%d",rabbit); printf("第 2 天的兔子数(对):%d",rabbits); for(day=3;day<=20;day++) { rabbits=rabbit+rabbits; rabbit=rabbits-rabbit; printf("第 %d 天的兔子数(对):%d",day,rabbits); } return 0;}
】
【作业】第 4 章 选择结构 第四章 单元作业
1、 问题:输入一个三位的正整数,判断该数是否为水仙花数。(水仙花数的是指一个三位数,其各位数字的立方和等于该数本身。例如:153是一个水仙花数,因为153=1^3+5^3+3^3)
评分规则: 【 #include <stdio.h>int main(){ int int1,g,sh,b; printf("输入一个三位数:"); scanf("%d",&int1); g=int1%10; sh=int1/10%10; b=int1/100; if(ggg+shshsh+bbb==int1) printf("%d 是水仙花数",int1); else printf("%d 不是水仙花数",int1); return 0;}
】
2、 问题:以下4种水果([1]苹果[2]梨[3]桔子[4]芒果)单价分别是2.0元/公斤,2.5元/公斤,3.0元/公斤,4.5元/公斤,请输入水果编号、重量,计算应付款。
评分规则: 【 #include <stdio.h>int main(){ int num; float total_price,weight; printf("输入水果编号[1]苹果[2]梨[3]桔子[4]芒果和重量"); scanf("%d",&num); scanf("%f",&weight); switch(num) { case 1: total_price=(float)(weight2.0); printf("%.1f千克苹果,应付%.1f元",weight,total_price); break; case 2: total_price=(float)(weight2.5); printf("%.1f千克梨,应付%.1f元",weight,total_price); break; case 3: total_price=(float)(weight3.0); printf("%.1f千克桔子,应付%.1f元",weight,total_price); break; case 4: total_price=(float)(weight4.5); printf("%.1f千克芒果,应付%.1f元",weight,total_price); break; default: printf("data error"); } return 0;}
】
3、 问题:从键盘输入1-7,显示输出该日期对应的英文日期(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday)名称。
评分规则: 【 #include <stdio.h>int main(){ int weekday; printf("输入日期序号(1-7)"); scanf("%d",&weekday); switch(weekday) { case 1: printf("Monday"); break; case 2: printf("Tuesday"); break; case 3: printf("Wednesday"); break; case 4: printf("Thursday"); break; case 5: printf("Friday"); break; case 6: printf("Saturday"); break; case 7: printf("Sunday"); break; default: printf("data error"); } return 0;}
】
4、 问题:输入某学生的成绩(成绩为100分制,可以为89.5,如果输入的成绩不在0-100之间,请给出出错提示。),经处理后给出学生的等级,等级分类如下: 90分以上(包括90): A 80至90分(包括80):B 70至80分(包括70):C 60至70分(包括60):D 60分以下: E
评分规则: 【 #include <stdio.h>int main(){ float score; scanf("%f",&score); if(score>=0 && score<=100) if(score>=90) printf("%.1f is A",score); else if(score>=80) printf("%.1f is B",score); else if(score>=70) printf("%.1f is C",score); else if(score>=60) printf("%.1f is D",score); else printf("%.1f is E",score); else printf("成绩非法!"); return 0;}
】
本文章不含期末不含主观题!!
本文章不含期末不含主观题!!
支付后可长期查看
有疑问请添加客服QQ 2356025045反馈
如遇卡顿看不了请换个浏览器即可打开
请看清楚了再购买哦,电子资源购买后不支持退款哦