作业要求【https://edu.cnblogs.com/campus/nenu/2018fall/homework/2476】
文案+美工:
剧情设计+题目设计+美工:
第21关:
剧情:
计算机学习的第一门语言是c语言,一切从我第一本c语言的书开始。
题目:
#include<stidio.h>
int main(){
int i=;
printf("%d",i++);
printf("%d",++i);
}
问输出结果是什么?
提示:
i++实现执行完再使i=i+1,++i是先让i=i+1再执行。
美工:
第22关:
剧情:
Hello world!”,这是我所编写的第一行程序,应该是所有初学者的第一个程序。
题目:
#include<stdio.h>
int main(){
char str[]="Hello world!";
printf("%s",str);
}
问输出结果是什么?
提示:
字符处输入输出用%s。
美工:
第23关:
剧情:
大一的新生在老师推荐下,参加了ACM的培训,很多人都对此有着期待。
题目:
#include<stdio.h>
int max(int a,int b){
return (a>b)?a:b;
}
int main(){
int num[]={,,,,,,,,,};
int ans=-;
for(int i=;i<;i++)
ans=max(ans,num[i]);
printf("%d",ans);
return ;
}
问输出结果是什么?
提示:
x?y:z表示当表达式x为真的时候这条语句结果为y,否则结果为z。
美工:
第24关:
剧情:
我第一次编写出快速排序,这是我当时认为很难的一个程序,我对程序更加有了兴趣。
题目:
#include<stdio.h>
int n=;
int num[]={,,,,,};
int main(int argc,char*argv[]){
quick_sort(,n-);
for(int i=;i<n;i++)
printf("%d",num[i]);
return ;
}
quick_sort为排序算法,问输出结果是多少?
提示:
快速排序是复杂度为o(n*logn)的排序算法。本次排序是使用从小到大的排序。
美工:
第25关:
剧情:
在课余的时间里一直编写着程序,室友游戏的声音却进不了我的脑海。
题目:
#include<stdio.h>
#include<string.h>
int main(){
char str1[]="study";
char str2[]="and";
char str[];
int len1=strlen(str1);
int len2=strlen(str2);
strcpy(str,str1);
strcat(str,str2);
strcat(str,str1);
return ;
}
提示:
strlen函数是获取字符串长度;strcpy(a,b)是将字符串a复制成b的函数;strcat(a,b)是将字符串b拼接到a后面的函数。
美工:
第26关:
剧情:
在一段时间的学习之后,对数据结构和算法有了很大的进步。
题目:
程序=数据结构+?
提示:
数据结构就是计算机存储、组织数据的方式;算法可以理解为用程序解决实际问题的方法;两者结合就是程序。
美工:
第27关:
剧情:
每日促使我起床是爱学习的心。
题目:
#include<stdio.h>
int wakeup(int time){
if(time!=) time+=;
return time;
}
int main(){
int time=;
for(int t=;;t++){
if(t==time){
time=wakeup(time);
if(t==time){
printf("%d",time);
break;
}
}
}
return ;
}
美工:
第28关:
剧情:
在android课程上的学习上,完成了自己的第一个手机程序,一个象棋游戏。
题目:
struct horse{
int x,y;
}h;
int main(){
h.x=;
h.y=;
h.x=h.x+;
h.y=h.y+;
printf("%d%d",h.x,h.y);
}
问输出结果是什么?
提示:
结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构。
美工:
第29关:
剧情:
在一次比赛之后获得了两个队友,准备参加ACM竞赛。
题目:
#include<stdio.h>
int f(int i,int n,int t){
if(i==n) return t;
else return f(i+,n,t*(i+);
}
int main(){
int n=;
printf("%d",f(,,));
return ;
}
问输出结果是多少?
提示:
一个含直接或间接调用本函数语句的函数被称之为递归函数,在上面的例子中能够看出,它必须满足以下两个条件:
1)在每一次调用自己时,必须是(在某种意义上)更接近于解;
2)必须有一个终止处理或计算的准则。
美工:
第30关:
剧情:
在学习的过程中,英语成了一个障碍,还是努力学习克服一下吧。
题目:
#include<stdio.h>
int main(){
char x='C';
switch(x){
case'A': printf("Physics");
case'B': printf("Chinese");
case'C': printf("English");
}
return ;
}
提示:
switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择;当case后面的值和switch中得到的值相同的时候执行该种情况下语句。
美工:
第31关:
剧情:
临近比赛的日子,我们一起练习一起努力。
题目:
#include<stdio.h>
struct person{
int one;
int two;
int three;
};
int main(){
printf("%d",sizeof(person));
return ;
}
提示:
int型size大小是4bit;double型长度是16bit;char型长度是1bit,但是当不足4时需要补齐。
美工:
第32关:
剧情:
第一次参加的算法竞赛上获得不错的成绩,这是好的开始,会更加努力下去。
题目:
#include<stdio.h>
#include<algorithm>
using namespace std;
struct team{
int time,question,id;
}t[];
int main(){
t[].time=,t[].question=,t[].id=;
t[].time=,t[].question=,t[].id=;
t[].time>t[].time?printf("%d",t[].id:printf("%d",t[].id);
return ;
}
提示:
结构体内数据比较。
美工:
第33关:
剧情:
学习与玩之中过去了3年,又到了一次抉择。
题目:
#include<stdio.h>
#include<stdlib.h>
int main(){
int r=rand()%;
if(r==) printf("work");
else printf("study");
}
提示:
rand函数是随机函数,rand()%a随机范围是0—a-1;如果结果不对,可以用不对seed多随机几次。
美工:
第34关:
剧情:
在工作和考研上进行犹豫,最后还是选择了去当一名研究生。
题目:
#include<stdio>
void graduate(char *str){
char s[]="master";
int i=;
while(s[i]!='\0') *str++=s[i++];
*str='\0';
return;
}
int main(){
char i[];
graduate(i);
printf("%s\n",i);
return ;
}
提示:
字符串以\0截止。
美工:
第35关:
剧情:
考试结束,这应该是我大学时期最后的一次考试,感觉很多东西都结束了。
题目:
#include<stdio.h>
#include<math.h>
struct point{
int x,y;
}p1,p2;
float dis(point a,point b){
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
int main(){
p1.x=,p1.y=;
p2.x=,p2.y=;
printf("%.2f\n",dis(p1,p2));
return ;
}
提示:
输出中%.xf表示保留x位小数;sqrt为取根号函数。
美工:
第36关:
剧情:
大学最后的阶段选择自己的研究方向,我选择了比较热门的人工智能方面,感觉是前景最好的方向。
题目:
#include<stdio.h>
int Strlen(const char *str){
int len=;
while(*str!='\0') len++,str++;
return len;
}
int main(){
char Str[]="Artificial Intelligence";
printf("%d",Strlen(str));
return ;
}
提示:
strlen为求字符串长度函数;字符串以\0结尾。
美工:
第37关:
剧情:
伴随着毕业论文的答辩结束,大学的时光过去了,各自分开。
题目:
#include<stdio.h>
int main(){
int f1=;
int f2=;
for(int i=;i<=;i++){
f2=f1+f2;
f1=f2-f1;
}
printf("%d",f2);
}
提示:
此处是一种斐波那契数的写法,求得的是第5个斐波那契数。
美工:
第38关:
剧情:
一份又一份的论文,要学习的东西好多。
题目:
#include<stdio.h>
#inclued<string.h>
#include<algorithm>
using namespace std;
void translate(char *str){
int len=strlen(str);
for(int i=;i<len/;i++){
swap(str[i],sre[len-i-]);
}
}
int main(){
char str[]="siseht";
translate(str);
printf("%s",str);
}
提示:swap(a,b)函数用来交换a,b两个变量里面的数据。
美工:
第39关:
剧情:
软件工程这门课目吸引了我,让我对工程有了更多的了解。
题目:
#include<stdio.h>
char *solve(char str[]){
static char res[];
int j=;
for(int i=;str[i]!='\0';i++){
if(str[i]>='a'&&str[i]<='z')
res[j++]=str[i];
else if(str[i]>='A'&&str[i]<='Z')
res[j++]=str[i]-'A'+'a';
}
res[j]='\0';
return res;
}
int main(){
char str[]="So@Ftw9are EnGin-e&er1ing";
printf("%s",solve(str));
}
提示:
运用ASCII来使字符串变化,主要是去掉除了字母以外的符号,并且将大写字母转换为小写字母。
美工:
第40关:
剧情:
我每天都在一点一点的进步。
题目:
#include<stdio.h>
int qpow(int a,int n){
int res=;
while(n){
if(n&) res *=a;
a=a*a;
n=n>>;
}
return res;
} int main(){
printf("%d",qpow(,)); }
提示:
&字符当位运算符,&是将两个二进制数逐位相与,结果是相与之后的结果;>>是位运算符,就是把要移动的数转换成2进制,右移几位就去掉右边的几位数;>>1相当于/2.
美工:
第41关:
剧情:
临近毕业找到一个不错的工作,每天都在持续着自己的工作。
题目:
#includestdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct person{
int degree,id;
operate<(const person & temp) const{
return degree>temp.degree;
}
}p[];
int num[]={,,,,};
int main(){
bool check=false;
for(int i=;i<;i++) p[i].degree=num[i];
for(int i=;i<;i++) p[i].id=i+;
sort(p,p+);
for(int i=;i<;i++) if(p[i].id==&&i<) check=true;
check?printf("pass"):printf("false");
}
提示:
operate<是对<进行重载,重新定义>的方式;sort是排序函数,根据<规则进行排序。
美工:
第42关:
剧情:
每天早上都坐着地铁来上班,列车上只有码农一种人。
题目:
#include<stdio.h>
#include<stack>
using namespace std;
stack <int>subway;
int main(){
subway.push();
subway.push();
subway.push();
subway.pop();
printf("%d",subway.top());
}
提示:
stack 是数据结构栈,为先进后出的一种数据结构;push操作是将数推入栈,pop操作是将顶层数据推出栈。
美工:
第43关:
剧情:
来到公司,打开我最熟悉的IDE,开始新的一天的工作。
题目:
在Linux操作系统下输入g++ test.cpp-std=c++-O3-o test,可以将test.cpp文件编译为可执行文件,请问这个文件名是什么?
提示:
g++编译cpp文件,其中可以加入很多参数,-o后面接着的是编译成的可执行文件的文件名。
美工:
第44关:
剧情:
食堂里与同事吃饭,讨论着那个语言是世界上最好的语言。
题目:
c与java哪一种是面向对象编程?哪一种有指针?(两个答案中间用空格分开。)
提示:
其中,c有指针而java没有,c语言是面向过程的语言,执行效率高;java是面向对象的语言,执行效率比c语言低。
美工:
第45关:
剧情:
下班的时间已经过了,但所有人都没有放下手头的工作。
题目:
#include<stdio.h>
int main(){
int time=;
bool check=false;
if(time>=&&check)printf("Go home");
else printf("Work");
}
提示:
&&是逻辑运算符,有“与”的意思。a&&b只有当a和b都为真时才返回真,否则为假。
美工:
第46关:
剧情:
项目又一次修改,今天可能回不了家了。
题目:
#include<stdio.h>
#include<queue>
using namespace std;
queue <int>need;
int main(){
need.push();
need.pop();
need.push();
need.pop();
need.push();
need.pop();
need.push();
need.push();
need.push();
printf("%d",need.size());
}
提示:
queue为数据结构中的队列,是一种先进先出的数据结构。push操作是将数据推入队列中;pop操作是将数据推出队列。
美工:
第47关:
剧情:
日复一日,那个有梦想的年轻人,依旧坐在这里敲着自己的代码。
题目:
树的前序遍历:ABCDEFGHI
树的中序遍历:CBEDAFHIG
求数的后序遍历。
提示:
树的前序遍历是先输出中间,再输出左儿子,最后输出右儿子;中序遍历是先输出左儿子,再输出中间,最后输出右儿子;后序遍历是先输出左儿子,再输出右儿子,最后输出中间。
美工:
第48关:
剧情:
重复干着相似的工作,虽然是当初的选择,但总感觉不是我想要的。
题目:
#include<stdio.h>
#include<vector>
using namespace std;
vector <int> work;
void getwork(){
work.push_back();
retuen ; } void solvework(){
work.pop_back();
return ;
}
int main(){
int n=;
while(n--){
getwork();
solvework();
}
printf("%d",work.size());
}
提示:
vector它能像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。push_back操作是将数据推入vector后面;pop_back操作是将最后一位数据推出来。size操作是求得vector内数据的个数。
美工:
第49关:
剧情:
某日他辞去了这里的工作,理由上写着世界这么大,我想去看看。
题目:
#include<stdio.h>
struct person{
int age,money,health;
}p;
int main(){
p.age=,p.money=,p.healthy=;
for(int i=;;i++){
p.age++,p.money+=;p.healthy-=-;
if(p.money>&&p.healthy<=){
printf("%d",p.age);
break;
}
}
return ;
}
美工:
第50关:
剧情:
骑上他的单车,在前方的分叉路上,他又对01的选择陷入了思考。
题目:
+=?
提示:世界上有10种人,一种是会二进制的,一种是不会二进制的。
美工: