1.输入任意个字符串,将大写字母转换成小写字母,小写字母转换成大写字母,其他字符保持不变
这道题比较简单,忘记保存代码了,大概是这样
#include<stdio.h>
#include<stdlib.h>
int main(){
char*s=(char*)malloc(sizeof(char)*100);
while(gets(s)){
for(int i=0;s[i]!='\0';i++){
if(s[i]<='Z'&&s[i]>='A')s[i]=s[i]-'A'+'a';
else if(s[i]<='z'&&s[i]>='a')s[i]=s[i]-'a'+'A';
}
printf("%s",s);
}
return 0;
}
2.小偷进皇宫偷5个宝贝,每个宝贝的加之重量不一样,背包携带重量有限,如何使偷到的财富最大
输入:宝贝价值:6,3,5,4,6
宝贝重量:2,2,6,5,4
背包重量:10
输出:
偷到的宝贝总价值:15
这道题我以前做过,博客也写过,就直接用的二维数组+01背包问题
唯一要修改的就是先输入价值,再输入质量吗,并且有逗号(这个找了半天才发现)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <algorithm>
using namespace std;
#define EMPTY
#define INF -65536
int w[15],v[15];//物品个数,物品质量weight,物品价值value
int dp[1000][1000]={0};
const int n=5;//物品个数
int main(){
int C;//容量capability\
for(int i=1;i<=n;i++)scanf("%d,",&v[i]);
for(int i=1;i<=n;i++)scanf("%d,",&w[i]);
scanf("%d",&C);
#ifdef EMPTY//要求价值最大化,可以不满
for(int i=0;i<=n;i++)dp[i][0]=0;
for(int i=0;i<=C;i++)dp[0][i]=0;
#else//必须装满
dp[0][0]=0;
for(int i=1;i<=C;i++)dp[0][i]=INF;
for(int i=1;i<=n;i++)dp[i][0]=INF;
#endif
for(int i=1;i<=C;i++){
for(int j=1;j<=n;j++){
dp[i][j]=w[j]<=i?max(dp[i][j-1],dp[i-w[j]][j-1]+v[j]):dp[i][j-1];
}
}
cout<<dp[C][n]<<endl;
return 0;
}
3.本题考查各种typedef后,某个自定义类型的最终形态是啥,输入分为两部分,共两行,第一行是一堆typedef定义,标准C++语句,以分号结束,这里不用考虑struct/union这类,只需要考虑基本类型和指针,第二行是制定某个自定义type输出为该自定义type的最终形态,
如输入:typedef int INT; typedef INT** INTP;
INTP
则输出:int * *
注意如果有指针类型,则指针表达的*和前面的类型中间间隔一个空格,和编译器的输出保持一致;另外,如果第一行输入的语句是编译不过的,或者第二行选择的type在第一行中没有定义,则输出none
这道题我输入都整了半天,,没过,第三题300分,前两道总共300分,只拿了300分不知道笔试能不能过