程序设计实验Ⅰ期末模拟 解题报告
来源:互联网 发布:2016中国人工智能大会 编辑:程序博客网 时间:2024/05/01 04:44
1001
【题目大意】搜索某个数字在一串数中第一次出现的位置,如果没有则输出-1
【解题思路】简单的搜索题,直接遍历整个数组,代码如下
#include<stdio.h> int main(){int n,p,i,num[11000];scanf("%d",&n);while(n--){p=-1;while(scanf("%d",&num[++p]))if(num[p]==-1) break;for(i=0;i<p-1;i++)if(num[i]==num[p-1])break;if(i!=p-1) printf("%d\n",i);else printf("-1\n");} }
【题目大意】把n个相同的球放进m个盒子,求方案数
【解题思路】动态规划,把b个球放进a个盒子的方案设为f(a,b),则f(a,b)=Σf(a-1,i),注意盒子是相同的,为了避免算重,可以规定第一个盒子中球数x1>第二个盒子中球数x2>x3>......>xa
#include<stdio.h> #define min(x,y) (x<y?x:y)int put(int a,int b,int m){int i,ans=0;if(a==0) return b==0?1:0;for(i=0;i<=min(b,m);i++)ans+=put(a-1,b-i,i);return ans;}int main(){int n,box,stone;scanf("%d",&n);while(n--){scanf("%d%d",&box,&stone);printf("%d\n",put(box,stone,stone));} }
1003
【题目大意】输出A到B间所有被3或被4整除的数
【解题思路】水题,直接附代码
#include<stdio.h> int main(){int i,a,b; scanf("%d%d",&a,&b);for(i=a;i<=b;i++)if(i%3==0||i%4==0)printf("%d\n",i);}
1004
【题目大意】检验字符串是否合法
【解题思路】逐位判断
#include<stdio.h> #include<string.h>int valid(char *s){int i;if(strlen(s)>8||s[0]<'a'||s[0]>'z') return 0;for(i=1;i<strlen(s);i++)if((s[i]<'a'||s[i]>'z')&&(s[i]<'0'||s[i]>'9'))return 0;return 1;}int main(){char s[21];scanf("%s",s);if(valid(s)) printf("Yes\n");else printf("No\n");}
1005
【题目大意】输出一个倒三角
【解题思路】注意输出格式就行
#include<stdio.h>#include<math.h>int main(){int n,i,j;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<i;j++) printf(" ");for(j=0;j<=n-i;j++) printf("%8.0lf",pow(2,j));for(j=n-i-1;j>=0;j--) printf("%8.0lf",pow(2,j));printf("\n");}}
1006
【题目大意】检索学生信息
【解题思路】简单搜索题
#include<stdio.h> int main(){int n,m,i,key,id[11000],score[11000];char name[11000][20];scanf("%d%d",&n,&m);for(i=0;i<n;i++)scanf("%d%s%d",&id[i],name[i],&score[i]);while(m--){scanf("%d",&key);for(i=0;i<n;i++)if(id[i]==key){printf("%s %d\n",name[i],score[i]);break;}if(i==n) printf("error\n");}}
1007
【题目大意】检测字符串Y是否在字符串X中出现过
【解题思路】善用库里的函数,有轮子用为什么要自己造
#include<stdio.h>#include<string.h>int main(){int n;char s1[100],s2[100];scanf("%d",&n);while(n--){scanf("%s%s",s1,s2);if(strstr(s1,s2)==NULL) printf("0\n");else printf("1\n");}}
1008
【题目大意】矩阵乘法
【解题思路】
#include<stdio.h> int main(){int i,j,k,ans,matrix1[3][3],matrix2[3][3];for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&matrix1[i][j]);for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&matrix2[i][j]);for(i=0;i<3;i++){for(j=0;j<3;j++){ans=0;for(k=0;k<3;k++)ans+=matrix1[i][k]*matrix2[k][j];printf("%d ",ans);}printf("\n");}}
1009
【题目大意】字符串处理
【解题思路】用按位异或可以改变flag状态
#include<stdio.h>#include<string.h>#include<ctype.h>int main(){char s[11000];int flag,i;scanf("%s",s);flag=1;for(i=0;i<strlen(s);i++){if(s[i]=='*') flag=flag^1;if(flag) printf("%c",toupper(s[i]));else printf("%c",tolower(s[i]));}}
1010
【题目大意】输出a+b,a-b,a*b,a/b,sqrt(a)
【解题思路】注意强制类型转化和输出格式就行了
#include<stdio.h>#include<math.h>int main(){int a,b;scanf("%d%d",&a,&b);printf("%d\n%d\n%d\n",a+b,a-b,a*b);if(b!=0) printf("%.2lf\n",(double)a/b);else printf("Error\n");printf("%.2lf\n",sqrt(a));}
总而言之,这次模拟考难度较低,基本上没有涉及到算法知识,只要平时认真完成作业AK是没有问题的
最后希望大家在期末考取得好成绩(^-^)
5 0
- 程序设计实验Ⅰ期末模拟 解题报告
- c++程序设计实验报告
- VB程序设计实验报告
- 期末上机赛解题报告及标程
- 第十六周往年期末考试题I解题报告
- 南海实验中学模拟赛1(学生出题)解题报告
- HDU3004解题报告【模拟题】
- Hdu 1049模拟解题报告
- C++程序设计实验报告(四)
- C++程序设计实验报告(五)
- C++程序设计实验报告(六)
- C++程序设计实验报告(七)
- C++程序设计实验报告(八)
- C++程序设计实验报告(九)
- C++程序设计实验报告(十)
- C++程序设计实验报告(十一)
- C++程序设计实验报告(十二)
- C++程序设计实验报告(十三)
- Chapter 10 Instruction Set: Charateristics and Functions
- 深入分析VMware虚拟机的三种组网模式
- Java简单枚举的实现
- 简单实现一个人脸检测器(HOG+SVM实现人脸检测)
- include和merge 布局使减少布局重用
- 程序设计实验Ⅰ期末模拟 解题报告
- 读取网络流获取文件大小
- 【数据库】数据库并发操作(二)数据库并发控制机制
- PHP---XML--simpleXML
- java 注解与反射
- Ubuntu64位编译32位程序
- Linux操作系统支持常用的文件系统有哪些?
- 【数据库】数据库并发操作(一)数据库并发操作带来的问题
- AndroidStudio2.2+环境下的JNI环境搭建