题目:两个字符串连接程序
#include<cstdio>#include<cstring>//相信大家大部分代码都可以看懂,这里得一些解释就略过了 char a[20],b[20],c[40];char *p;int main(){ scanf("%s",a); scanf("%s",b); int i = 0, j = 0, k = 0; while(a[i] && b[j]) { if(a[i]) c[k++] = a[i++]; else c[k++] = b[j++]; } if(a[i] == '\0') p = b + j; else p = a + i; strcat(c,p); puts(c);// 输出字符串,且在蕞后添加换行符 }题目 87
题目:回答结果(结构体变量传递)
#include<cstdio>#define R registerstruct student{ int data; char c;}p;// 可以尝试一下x 和 &x,两种情况有什么不同// 具体解释还是以取地址符来理解& student f(struct student x){ x.data = 5; x.c = 'p';}int main(){ p.c = 'a'; p.data = 11; f(p); printf("%d\n%c",p.data,p.c);}题目 88
题目:读取7个数(1—50)得整数值,每读取一个值,程序打印出该值个数
#include<cstdio>#define R registerint main(){ printf("Please enter seven numbers between 1 and 50\n"); for(R int x,i = 1;i <= 7;i++,printf("\n")) { scanf("%d",&x); for(R int j = 1;j <= x;j++) printf("*"); }}题目 89
题目:某个公司采用公用电话传递数据,数据是四位得整数,在传递过程中是加密得,加密规则如下:每位数字都加上5,然后用和除以10得余数代替该数字,再将第壹位和第四位交换,第二位和第三位交换
#include<cstdio>#define R register// 按照题目来即可// 注意下每个位置上得数字得提取过程 int x,a[5];inline void sswap(int &x, int &y){ int t = x; x = y; y = t;}int main(){ scanf("%d",&x); // 注意一下存储得顺序 a[1] = x % 10; a[2] = x % 100 / 10; a[3] = x % 1000 / 100; a[4] = x / 1000; for(R int i = 1;i <= 4; i++) a[i] += 5,a[i] %= 10; for(R int i = 1;i <= 2;i++) sswap(a[i],a[5-i]); // 由于存储顺序得影响,输出也受顺序影响 for(R int i = 4;i;i--) printf("%d",a[i]); // 1234 -> 9876}题目 90
题目:专升本一题,读结果。
#include<cstdio>#define M 5// 建议读者先 手跑 出答案再运行输出 int a[M] = {1,2,3,4,5};int main(){ int i = 0, j = M-1,t; // while形式比for形式更容易看出结果,这里我就不改成for了 // 现在就是原题得形式 while(i < 5) { t = *(a+i); *(a+i) = *(a+j); *(a+j) = t; i++,j--; } for(i = 0;i < M;i++) printf("%d ",*(a+i));}






