你好,请问单片机编程代码大全多个条件控制一个输出的程序可以像这样if((a>10&&b>10)||(a<20&&b<20))这样组合吗?

2019年10月19日CSP非专业级别第一轮能力认证结束,全国31个省市共计106,344人参加!参赛的小伙伴们,考试结束了,分数评估了吗?趁着现在记忆仍在,赶紧对着答案来看看吧!童程童美NOI教研部门第一时间为广大学员整理了2019CSP-J 试题解析,以供参考。----------2019CCF非专业级别软件能力认证第一轮(CSP-J)入门级C++语言试题A卷(B卷与A卷仅顺序不同)认证时间:2019年10月19日考生注意事项:1、试题纸共有9页,答题纸共有1页,满分100分。请在答题纸上作答,写在试题纸上的一律无效2、不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项)1.中国的国家顶级域名是()A. .cn B. .ch C. .chn D. .China答案:A试题分析:常识,详情见普及组课程105课时。2.二进制数11 1011 1001 0111和01 0110 1110 1011进行逻辑与运算的结果是()A.01 0010 1000 1011 B.01 0010 1001 0011C.0l 0010 1000 0001 D.01 0010 1000 0011答案:D试题分析:逻辑与,当且仅当2个数对应位都为1的,答案才为1,详情见普及组课程63课时。3.一个32位整型变量占用()个字节。A. 32 B.128 C. 4 D.8答案:C试题分析:1Byte(字节) = 8 bit(位) 32/8=4 详情见普及组课程103课时。4.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=afor(b= 1: b< c: b++)s=s-1则与上述程序段功能等价的赋值语句是()A.s=a-c; B.s=a-b; C.s=s-c; D.s=b-c;答案:A试题分析:s初始化为a; for循环执行c次,每次s减1,共减c,所以s=a-c考察for循环的应用,详情见普及组课程16课时。5.设有100个已排好序的数据元素,采用折半查找时,最大比较次数为()A.7 B.10 C.6 D.8答案:A试题分析:折半查找,首先将待查记录所在范围缩小一半,然后再缩小一半,即对100个元素进行折半查找,第一次比较范围缩小到50,第二次缩小到25,第三次缩小到17,第四次缩小到7,第五次缩小到4,第六次缩小到2,最多七次就可以查找到所要元素。详情见普及组课程第106课时。6.链表不具有的特点是()A.插入删除不需要移动元素 B.不必事先估计存储空间C.所需空间与线性表长度成正比 D.可随机访问任一元素答案:D试题分析:链表没有下标,不可随机访问详情见普及组第108课时。7.把8个同样的球放在5个同样的袋子里,允许有的袋子空着不放,问共有多少种不同的分法?()提示:如果8个球都放在一个袋子里,无论是哪个袋子,都只算同一种分法。A.22 B.24 C.18 D.20答案:C试题分析:把整数8拆分成5个数字之和,允许有0,我们可以按照非零数字个数进行枚举,1个:1种,2个:4种,3个:5种,4个:5种,5个:3种,累加起来一共18种。详情见普及组课 程109课时。8.一棵二叉树如右图所示,若采用顺序存储结构,即用一维数组元素存储该二叉树中的结点(根结点的下标为1,若某结点的下标为i,则其左孩子位于下标2i处、右孩子位于下标2i+1处),则该数组的最大下标至少为()A.6 B.10 C.15 D.12答案:C试题分析:根据题目描述直接计算就可以了,((1*2+1)*2+1)*2+1=15详情见普及 组课程99课时。9.100以内最大的素数是()。A.89 B.97 C.91 D.93答案:B试题分析:97最大且为素数,详情见普及组课程123课时。10.319和377的最大公约数是()。A.27 B.33 C.29 D.31答案:C试题分析:使用辗转相除法计算(319,377)=(319,58)=(58,29) = 29详 情见普及组课程第121课时。11.新学期开学了,小胖想减肥,健身教练给小胖制定了两个训练方案。方案一:每次连续跑3公里可以消耗300千卡(耗时半小时):方案二:每次连续跑5公里可以消耗600千卡(耗时1小时)。小胖每周周一到周四能抽出半小时跑步,周五到周日能抽出一小时跑步。另外,教练建议小胖每周最多跑21公里,否则会损伤膝盖。请问如果小胖想严格执行教练的训练方案,并且不想损伤膝盖,每周最多通过跑步消耗多少千卡?()A.3000 B.2500 C.2400 D.2520答案:C试题分析:设方案1,2各i,j天,由题意,3*i+5*j<=21,i+j<=7,i<=3.求300*i+600*j的最大值。枚举所有情况当i=2,j=3时,最大值2400。12.一副纸牌除掉大小王有52张牌,四种花色,每种花色13张。假设从这52张牌中随机抽取13张纸牌,则至少()张牌的花色一致A.4 B.2 C.3 D.5答案:A试题分析:抽屉原理,13张牌最坏情况就是4种花色分别为3,3,3,4张,也就是至少4张一样花色。13.一些数字可以颠倒过来看,例如0、1、8颠倒过来还是本身,6颠倒过来是9,9颠倒过来看还是6,其他数字颠倒过来都不构成数字。类似的,一些多位数也可以颠倒过来看,比如106颠倒过来是901。假设某个城市的车牌只由5位数字组成,每一位都可以取0到9。请问这个城市最多有多少个车牌倒过来恰好还是原来的车牌?()A.60 B.125 C.75 D.100答案:C试题分析:考察乘法原理,第1,2位有5种选法(0,1,6,8,9),第三位有三种0,1,8,第4,5位由前两位决定,所以答案位5*5*3=75。14.假设一棵二叉树的后序遍历序列为 DGJHEBIFCA,中序遍历序列为 DBGEHJACIF,则其前序遍历序列为( )。A. ABCDEFGHIJ B. ABDEGHJCFIC. ABDEGJHCFI D. ABDEGHJFIC答案:B试题分析:考察二叉树的遍历,后序遍历决定根是A,中序遍历中看A的左边DBGEH是左子树,右边CIF是右子树,依次类推可画出完整的树,再求先序遍历,详情见普及组课程100课时。15.以下哪个奖项是计算机科学领域的最高奖?()A.图灵奖 B.鲁班奖 C.诺贝尔奖D.普利策奖答案:A试题分析:考察常识问题,并且是一道原题。详情见普及组课程102课时。二、阅读程序(程序输入不超过数组或字符串定义的范围:判断题正确填√,错误填×:除特殊说明外,判断题1.5分,选择题3分,共计40分)1.#include <cstdio>#include <cstring>using namespace std;char st[100];int main() {scanf("%s", st);int n = strlen(st);for (int i = 1; i <= n; ++i) {if (n % i == 0) {char c = st[i - 1];if (c >= 'a')st[i - 1] = c - 'a' + 'A';}}printf("%s", st);return 0;}判断题1)输入的字符串只能由小写字母或大写字母组成。()答案:×试题分析:题目没说,可以输入包含其他字符的字符串。2)若将第8行的“i=1”改为“i=0”,程序运行时会发生错误()答案:√试题分析:不能对0取余操作,错误。3)若将第8行的“i<=n”改为“i*i<=n”,程序运行结果不会改变()答案:×试题分析:求约数不是判断质数,i*i<=n只能取到n的前半部分约数。4)若输入的字符串全部由大写字母组成,那么输出的字符串就跟输入的字符串一样。()答案:√试题分析:按题意说明即可判断。选择题5)若输入的字符串长度为18,那么输入的字符串跟输出的字符串相比至多有()个字符不同。A.18 B.6 C.10 D.1答案:B试题分析:约数个数定理求约数个数。18的约数是:1,2,3,6,9,18。所以最多判定6次。6)若输入的字符串长度为(),那么输入的字符串跟输出的字符申相比,至多有36个字符不同。A.36 B.100000 C.1 D.128答案:B试题分析:和上题同理。枚举4个选项。36有9个约数,1有1个约数,128有8个约数。选B。100000有36个约数。2.#include<cstdio>using namespace std;int n, m;int a[100], b[100];int main() {scanf("%d%d", &n, &m);for (int i = 1; i <= n; ++i)a[i] = b[i] = 0;for (int i = 1; i <= m; ++i) {int x, y;scanf("%d%d", &x, &y);if (a[x] < y && b[y] < x) {if (a[x] > 0)b[a[x]] = 0;if (b[y] > 0)a[b[y]] = 0;a[x] = y;b[y] = x;}}int ans = 0;for (int i = 1; i <= n; ++i) {if (a[i] == 0)++ans;if (b[i] == 0)++ans;}printf("%d", ans);return 0;}假设输入的n和m都是正整数,x和y都是在[1,n]的范围内的整数,完成下面的判断题和单选题判断题1)当m>0时,输出的值一定小于2n。()答案:√试题分析:按照题意,a数组和b数组赋值为0,a[x] < y && b[y] < x成立,累计计算求和,最终结果肯定小于2n。2)执行完第27行的“++ans”时,ans一定是偶数。()答案:×试题分析:不一定,可以举例求出ans不是偶数的情况。3) a[i]和b[i]不可能同时大于0。()答案:×试题分析:举例即可找到反例。4)若程序执行到第13行时,x总是小于y,那么第15行不会被执行。()答案:×试题分析:同样举例可以实现。选择题5)若m个x两两不同,且m个y两两不同,则输出的值为()A. 2n-2m B.2n+2 C.2n-2 D.2n答案:A试题分析:根据题意,m次循环中会有2m个位置的值会变化,ans=2n-2m。6)若m个x两两不同,且m个y都相等,则输出的值为()A.2n-2 B.2n C.2m D.2n-2m答案:A试题分析:如果m个x各不相同,循环里面的if都不会执行。对数组a,b赋值,只修改了2个位置。也可举例3 33 32 31 3答案是4。3.#include <iostream>using namespace std;const int maxn = 10000;int n;int a[maxn];int b[maxn];int f(int l, int r, int depth) {if (l > r)return 0;int min = maxn, mink;for (int i = l; i <= r; ++i) {if (min > a[i]) {min = a[i];mink = i;}}int lres = f(l, mink - 1, depth + 1);int rres = f(mink + 1, r, depth + 1);return lres + rres + depth * b[mink];}int main() {cin >> n;for (int i = 0; i < n; ++i)cin >> a[i];for (int i = 0; i < n; ++i)cin >> b[i];cout << f(0, n - 1, 1) << endl;return 0;}分析:分治算法。左右两边找答案,然后求运算。判断题1)如果a数组有重复的数字,则程序运行时会发生错误。()答案:×试题分析:分析代码,有重复的数字不会导致程序运行出错。2)如果b数组全为0,则输出为0.()答案:√试题分析:如果b数组是0,递归推出条件l>r返回0,根据return lres + rres + depth * b[mink];返回结果总是0。选择题3)当n=100时,最坏情况下,与第12行的比较运算执行的次数最接近的是()A.5000 B.6000 C.6 D.100答案:A试题分析:最坏情况下a有序,总是求mink和min最小值,需要判断100+99+98+...+2+1 =5050,选A。4)当n=100时,最好情况下,与第12行的比较运算执行的次数最接近的是()A.100 B.6 C.5000 D.600答案:D试题分析:最好情况每次都二分,总次数为100,层数为 6<log2100<7,总次数约为[6*100,7*100],选D。5)当n=10时,若b数组满足,对任意0≤i<n,都有b[i]=i+1,那么输出最大为()A.386 B.383 C.384 D.385答案:D试题分析:n=10,深度最大是10,根据代码:1*b[0]+2*b[1]+...+10*b[9]=1*1+2*2+3*3+...+10*10=385。6)(4分)当n=100时,若b数组满足,对任意0≤i<n,都有b[i]=1, 那么输出最小为()A.582 B.580 C.579 D.581答案:B试题分析:b[i]=1,即求一个100节点的完全二叉树,节点深度之和最小为多少。画图后,计算为1*1+2*2+4*3+8*4+16*5+32*6+37*7=580三、完善程序(单选题,每小题3分,共计30分)1.#include <cstdio>using namespace std;int n;const int max_size = 1 << 10;int res[max_size][max_size];void recursive(int x, int y, int n, int t) {if (n == 0) {res[x][y] = ①;return;}int step = 1 << (n - 1);recursive(②, n - 1, t);recursive(x, y + step, n - 1, t);recursive(x + step, y, n - 1, t);recursive(③, n - 1, !t);}int main() {scanf("%d", &n);recursive(0, 0, ④);int size = ⑤;for (int i = 0; i < size; i++) {for (int j = 0; j < size; j++)printf("%d", res[i][j]);puts("");}return 0;}① 处应填( )A.n%2 B.0 C.t D.1答案:C试题分析:(猜的话,变量t没有用过。)递归退出判断,参数t的赋值能发现是经常做取反操作。赋值和n没有必然联系,错误。选C。② 处应填( )A.x-step,y-step B.x,y-stepC.x-step,y D.x,y答案:D试题分析:四个方向,x,y是当前坐标。根据下面参数,参数分别是x,y;x,y+step;x+step,y;x+step,y+step。③ 处应填( )A. x-step,y-step B. x+step,y+stepC. x-step,y D. x,y-step答案:B④ 处应填( )A.n-1,n%2 B.n,0 C.n,n%2 D.n-1,0答案:B试题分析:第一次调用recursive函数,n是矩阵规模,初始为n,t是取反次数,所以t初始为0或者1。1)⑤ 处应填( )A.i<<(n+1) B.1<<n C.n+1 D.1<<(n-1)答案:B试题分析:size是输出矩阵的边长,2^n,位运算是1<<n。2. (计数排序)计数排序是一个广泛使用的排序方法。下面的程序使用双关键字计数排序,对 n 对 10000 以内的整数,从小达到排序。例如有三对整数(3,4)、(2,4)、(3,3),那么排序之后应该是(2,4)、(3,3)、(3,4)。输入第一行为 n,接下来 n 行,第 i 行有两个数 a[i] 和 b[i],分别表示第 i 对整数的第一关键字和第二关关键字。从小到大排序后输出。提示:应先对第二关键字排序,再对第一关键字排序。数组 ord[]存储第二关键字排序的结果,数组 res[]存储双关键字排序的结果。试补全程序#include <cstdio>#include <cstring>using namespace std;const int maxn = ;const int maxs = 10000;int n;unsigned a[maxn], b[maxn],res[maxn], ord[maxn];unsigned cnt[maxs + 1];int main() {scanf("%d", &n);for (int i = 0; i < n; ++i)scanf("%d%d", &a[i], &b[i]);memset(cnt, 0, sizeof(cnt));for (int i = 0; i < maxs; ++i)①; // 利用 cnt 数组统计数量for (int i = 0; i < n; ++i)cnt[i + 1] += cnt[i];for (int i = 0; i < n; ++i)②; // 记录初步排序结果memset(cnt, 0, sizeof(cnt));for (int i = 0; i < n; ++i)③; // 利用 cnt 数组统计数量for (int i = 0; i < maxs; ++i)cnt[i + 1] += cnt[i];for (int i = n - 1; i >= 0; --i)④ // 记录最终排序结果for (int i = 0; i < n; i++)printf("%d %d", ⑤);return 0;}1)①处应填()A. ++cnt[1]B. ++cnt[b[1]]C, ++cnt[a[i]*maxs+b[i]]D, ++cnt[a[i]]答案:B试题分析:提示:应先对第二关键字排序,再对第一关键字排序。排序的题做了很多,认真读题,不是特别难的事。先对第二关键字进行排序,选B。2)②处应填()A. ord[--cnt[a[i]]]=iB, ord[--cnt[b[i]]]=a[i]C. ord[--cnt[a[i]]]=b[i]D. ord[--cnt[b[i]]]=i答案:D试题分析:cnt[b[i]]表示第i个数按第二关键字排的位。ord[i]表示第i个数在原位置。3)③处应填()A. ++cnt[b[i]]B. ++cnt[a[i]*maxs+ b[i]]C, ++cnt[a[il]D. ++cnt[i]答案:C试题分析:对第一关键字进行计数。4)④处应填()A. res[--cnt[a[ord[i]]]]=ord[i]B. res[--cnt[b[ord[i]]]]=ord[i]C. res[--cnt[b[i]]]=ord[i]D. res[--cnt[a[i]]]=ord[i]答案:A试题分析:对应填空②,此处res[i]记录第一关键字第i的数的原位置。5) ⑤处应填()A. a[i],b[i]B. a[res[i]], b[res[i]]C. a[ord[res[i]]], b[ord[res[i]]]D. a[res[ord[i]]], b[res[ord[i]]]答案:B试题分析:res[i]记录第i个数的原位置。CSP-J/S是CCF创办的CSP(软件能力认证)中面向非专业级的软件能力认证,也就是我们熟知的信息学奥赛,不仅含金量高,而且对孩子升学有很大的帮助。童程童美信息学奥赛课程是由专业教研团队与北京知名学府联合研发,课程内容循序渐进,指导学员围绕每个考试阶段的重点知识进行学习;教研团队强大专业,授课老师经验充足,确保准确把握竞赛方向和特点,保证学员学习进度和质量,助力学员在考试中取得优异成绩!}

#include<reg52.h>#include<absacc.h>sbitLED_BIT=p1^6;voidmain(void){unsignedcharx='a',...
#include <reg52.h> #include <absacc.h> sbit LED_BIT = p1^6; void main(void) { unsigned char x = 'a',y='A'; LED_BIT = 1; if(x > y) p0=x; else p0 =y; while(1); }
展开选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP
}

【程序80】题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?1.程序分析:2.程序源代码:main(){int i,m,j,k,count;for(i=4;i<10000;i+=4){ count=0;m=i;for(k=0;k<5;k++){ j=i/4*5+1; i=j; if(j%4==0)  count++; else  break;} i=m; if(count==4) {printf("%d\n",count);  break;}}}【程序81】题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。1.程序分析:2.程序源代码:output(long b,long i){ printf("\n%ld/%ld=809*%ld+%ld",b,i,i,b%i);}main(){long int a,b,i;a=809;for(i=10;i<100;i++){b=i*a+1;if(b>=1000&&b<=10000&&8*i<100&&9*i>=100)output(b,i); }}==============================================================【程序82】题目:八进制转换为十进制1.程序分析:           2.程序源代码:main(){ char *p,s[6];int n;p=s;gets(p);n=0;while(*(p)!='\0'){n=n*8+*p-'0';p++;}printf("%d",n);}==============================================================【程序83】题目:求0—7所能组成的奇数个数。1.程序分析:2.程序源代码:main(){long sum=4,s=4;int j;for(j=2;j<=8;j++)/*j is place of number*/ { printf("\n%ld",sum);if(j<=2)s*=7;elses*=8;sum+=s;}printf("\nsum=%ld",sum);}==============================================================【程序84】题目:一个偶数总能表示为两个素数之和。1.程序分析:2.程序源代码:#i nclude "stdio.h"#i nclude "math.h"main(){ int a,b,c,d;scanf("%d",&a);for(b=3;b<=a/2;b+=2){ for(c=2;c<=sqrt(b);c++)if(b%c==0) break;if(c>sqrt(b))d=a-b;elsebreak;for(c=2;c<=sqrt(d);c++)if(d%c==0) break;if(c>sqrt(d))printf("%d=%d+%d\n",a,b,d);}}==============================================================【程序85】题目:判断一个素数能被几个9整除1.程序分析:2.程序源代码:main(){ long int m9=9,sum=9;int zi,n1=1,c9=1;scanf("%d",&zi);while(n1!=0){ if(!(sum%zi))n1=0;else{m9=m9*10;sum=sum+m9;c9++;}}printf("%ld,can be divided by %d \"9\"",sum,c9);}==============================================================【程序86】题目:两个字符串连接程序1.程序分析:2.程序源代码:#i nclude "stdio.h"main(){char a[]="acegikm";char b[]="bdfhjlnpq";char c[80],*p;int i=0,j=0,k=0;while(a[i]!='\0'&&b[j]!='\0'){if (a[i] { c[k]=a[i];i++;}elsec[k]=b[j++];k++;}c[k]='\0';if(a[i]=='\0')p=b+j;elsep=a+i;strcat(c,p);puts(c);}==============================================================【程序87】题目:回答结果(结构体变量传递)1.程序分析:     2.程序源代码:#i nclude "stdio.h"struct student{ int x;char c;} a;main(){a.x=3;a.c='a';f(a);printf("%d,%c",a.x,a.c);}f(struct student b){b.x=20;b.c='y';}==============================================================【程序88】题目:读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。1.程序分析:2.程序源代码:main(){int i,a,n=1;while(n<=7){ do {   scanf("%d",&a);   }while(a<1
a>50);for(i=1;i<=a;i++) printf("*");printf("\n");n++;}getch();}==============================================================【程序89】题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。1.程序分析:2.程序源代码:main(){int a,i,aa[4],t;scanf("%d",&a);aa[0]=a%10;aa[1]=a%100/10;aa[2]=a%1000/100;aa[3]=a/1000;for(i=0;i<=3;i++) {aa[i]+=5; aa[i]%=10; }for(i=0;i<=3/2;i++) {t=aa[i]; aa[i]=aa[3-i]; aa[3-i]=t; }for(i=3;i>=0;i--)printf("%d",aa[i]);}============================================================== 【程序90】题目:专升本一题,读结果。1.程序分析:2.程序源代码:#i nclude "stdio.h"#define M 5main(){int a[M]={1,2,3,4,5};int i,j,t;i=0;j=M-1;while(i {t=*(a+i);*(a+i)=*(a+j);*(a+j)=t;i++;j--;}for(i=0;i printf("%d",*(a+i));}【程序91】题目:时间函数举例11.程序分析:2.程序源代码:#i nclude "stdio.h"#i nclude "time.h"void main(){ time_t lt; /*define a longint time varible*/ lt=time(NULL);/*system time and date*/ printf(ctime(<)); /*english format output*/ printf(asctime(localtime(<)));/*tranfer to tm*/ printf(asctime(gmtime(<))); /*tranfer to Greenwich time*/ }==============================================================【程序92】题目:时间函数举例21.程序分析:           2.程序源代码:/*calculate time*/ #i nclude "time.h"#i nclude "stdio.h"main(){ time_t start,end;int i;start=time(NULL);for(i=0;i<3000;i++){ printf("\1\1\1\1\1\1\1\1\1\1\n");}end=time(NULL);printf("\1: The different is %6.3f\n",difftime(end,start));}==============================================================【程序93】题目:时间函数举例31.程序分析:2.程序源代码:/*calculate time*/ #i nclude "time.h"#i nclude "stdio.h"main(){ clock_t start,end;int i;double var;start=clock();for(i=0;i<10000;i++){ printf("\1\1\1\1\1\1\1\1\1\1\n");}end=clock();printf("\1: The different is %6.3f\n",(double)(end-start));}==============================================================【程序94】题目:时间函数举例4,一个猜数游戏,判断一个人反应快慢。1.程序分析:2.程序源代码:#i nclude "time.h"#i nclude "stdlib.h"#i nclude "stdio.h"main(){char c;clock_t start,end;time_t a,b;double var;int i,guess;srand(time(NULL));printf("do you want to play it.('y' or 'n') \n");loop:while((c=getchar())=='y'){i=rand()%100;printf("\nplease input number you guess:\n");start=clock();a=time(NULL);scanf("%d",&guess);while(guess!=i){if(guess>i){printf("please input a little smaller.\n");scanf("%d",&guess);}else{printf("please input a little bigger.\n");scanf("%d",&guess);}}end=clock();b=time(NULL);printf("\1: It took you %6.3f seconds\n",var=(double)(end-start)/18.2);printf("\1: it took you %6.3f seconds\n\n",difftime(b,a));if(var<15)printf("\1\1 You are very clever! \1\1\n\n");else if(var<25)printf("\1\1 you are normal! \1\1\n\n");elseprintf("\1\1 you are stupid! \1\1\n\n");printf("\1\1 Congradulations \1\1\n\n");printf("The number you guess is %d",i);}printf("\ndo you want to try it again?(\"yy\".or.\"n\")\n");if((c=getch())=='y')goto loop;}==============================================================【程序95】题目:家庭财务管理小程序1.程序分析:2.程序源代码:/*money management system*/ #i nclude "stdio.h"#i nclude "dos.h"main(){FILE *fp;struct date d;float sum,chm=0.0;int len,i,j=0;int c;char ch[4]="",ch1[16]="",chtime[12]="",chshop[16],chmoney[8];pp: clrscr();sum=0.0;gotoxy(1,1);printf("|---------------------------------------------------------------------------|");gotoxy(1,2);printf("
money management system(C1.0) 2000.03
");gotoxy(1,3);printf("|---------------------------------------------------------------------------|");gotoxy(1,4);printf("
-- money records --
-- today cost list --
");gotoxy(1,5);printf("
------------------------
-------------------------------------|");gotoxy(1,6);printf("
date: --------------
");gotoxy(1,7);printf("
");gotoxy(1,8);printf("
--------------
");gotoxy(1,9);printf("
thgs: ------------------
");gotoxy(1,10);printf("
");gotoxy(1,11);printf("
------------------
");gotoxy(1,12);printf("
cost: ----------
");gotoxy(1,13);printf("
");gotoxy(1,14);printf("
----------
");gotoxy(1,15);printf("
");gotoxy(1,16);printf("
");gotoxy(1,17);printf("
");gotoxy(1,18);printf("
");gotoxy(1,19);printf("
");gotoxy(1,20);printf("
");gotoxy(1,21);printf("
");gotoxy(1,22);printf("
");gotoxy(1,23);printf("|---------------------------------------------------------------------------|");i=0;getdate(&d);sprintf(chtime,"%4d.%02d.%02d",d.da_year,d.da_mon,d.da_day);for(;;){ gotoxy(3,24);printf(" Tab __browse cost list Esc __quit");gotoxy(13,10);printf(" ");gotoxy(13,13);printf(" ");gotoxy(13,7);printf("%s",chtime);j=18;ch[0]=getch();if(ch[0]==27)break;strcpy(chshop,"");strcpy(chmoney,"");if(ch[0]==9){mm:i=0;fp=fopen("home.dat","r+");gotoxy(3,24);printf(" ");gotoxy(6,4);printf(" list records ");gotoxy(1,5);printf("|-------------------------------------|");gotoxy(41,4);printf(" ");gotoxy(41,5);printf("
");while(fscanf(fp,"%10s%14s%f\n",chtime,chshop,&chm)!=EOF){ if(i==36){ getch();i=0;}if ((i%36)<17){ gotoxy(4,6+i);printf(" ");gotoxy(4,6+i);}elseif((i%36)>16){ gotoxy(41,4+i-17);printf(" ");gotoxy(42,4+i-17);}i++;sum=sum+chm;printf("%10s %-14s %6.1f\n",chtime,chshop,chm);}gotoxy(1,23);printf("|---------------------------------------------------------------------------|");gotoxy(1,24);printf("
");gotoxy(1,25);printf("|---------------------------------------------------------------------------|");gotoxy(10,24);printf("total is %8.1f$",sum);fclose(fp);gotoxy(49,24);printf("press any key to.....");getch();goto pp;}else{while(ch[0]!='\r'){ if(j<10){ strncat(chtime,ch,1);j++;}if(ch[0]==8){len=strlen(chtime)-1;if(j>15){ len=len+1; j=11;}strcpy(ch1,"");j=j-2;strncat(ch1,chtime,len);strcpy(chtime,"");strncat(chtime,ch1,len-1);gotoxy(13,7);printf(" ");}gotoxy(13,7);printf("%s",chtime);ch[0]=getch();if(ch[0]==9)goto mm;if(ch[0]==27)exit(1);}gotoxy(3,24);printf(" ");gotoxy(13,10);j=0;ch[0]=getch();while(ch[0]!='\r'){ if (j<14){ strncat(chshop,ch,1);j++;}if(ch[0]==8){ len=strlen(chshop)-1;strcpy(ch1,"");j=j-2;strncat(ch1,chshop,len);strcpy(chshop,"");strncat(chshop,ch1,len-1);gotoxy(13,10);printf(" ");}gotoxy(13,10);printf("%s",chshop);ch[0]=getch();}gotoxy(13,13);j=0;ch[0]=getch();while(ch[0]!='\r'){ if (j<6){ strncat(chmoney,ch,1);j++;}if(ch[0]==8){ len=strlen(chmoney)-1;strcpy(ch1,"");j=j-2;strncat(ch1,chmoney,len);strcpy(chmoney,"");strncat(chmoney,ch1,len-1);gotoxy(13,13);printf(" ");}gotoxy(13,13);printf("%s",chmoney);ch[0]=getch();}if((strlen(chshop)==0)
(strlen(chmoney)==0))continue;if((fp=fopen("home.dat","a+"))!=NULL);fprintf(fp,"%10s%14s%6s",chtime,chshop,chmoney);fputc('\n',fp);fclose(fp);i++;gotoxy(41,5+i);printf("%10s %-14s %-6s",chtime,chshop,chmoney);}}} ==============================================================【程序96】题目:计算字符串中子串出现的次数1.程序分析:2.程序源代码:#i nclude "string.h"#i nclude "stdio.h"main(){ char str1[20],str2[20],*p1,*p2;int sum=0;printf("please input two strings\n");scanf("%s%s",str1,str2);p1=str1;p2=str2;while(*p1!='\0'){if(*p1==*p2){while(*p1==*p2&&*p2!='\0'){p1++;p2++;}}elsep1++;if(*p2=='\0')sum++;p2=str2;}printf("%d",sum);getch();} ==============================================================【程序97】题目:从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。1.程序分析:     2.程序源代码:#i nclude "stdio.h"main(){ FILE *fp;char ch,filename[10];scanf("%s",filename);if((fp=fopen(filename,"w"))==NULL){printf("cannot open file\n");exit(0);}ch=getchar();ch=getchar();while(ch!='#'){fputc(ch,fp);putchar(ch);ch=getchar();}fclose(fp);}==============================================================【程序98】题目:从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以!结束。 1.程序分析:2.程序源代码:#i nclude "stdio.h"main(){FILE *fp;char str[100],filename[10];int i=0;if((fp=fopen("test","w"))==NULL){ printf("cannot open the file\n");exit(0);}printf("please input a string:\n");gets(str);while(str[i]!='!'){ if(str[i]>='a'&&str[i]<='z')str[i]=str[i]-32;fputc(str[i],fp);i++;}fclose(fp);fp=fopen("test","r");fgets(str,strlen(str)+1,fp);printf("%s\n",str);fclose(fp);}============================================================== 【程序99】题目:有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。1.程序分析:2.程序源代码:#i nclude "stdio.h"main(){ FILE *fp;int i,j,n,ni;char c[160],t,ch;if((fp=fopen("A","r"))==NULL){printf("file A cannot be opened\n");exit(0);}printf("\n A contents are :\n");for(i=0;(ch=fgetc(fp))!=EOF;i++){c[i]=ch;putchar(c[i]);}fclose(fp);ni=i;if((fp=fopen("B","r"))==NULL){printf("file B cannot be opened\n");exit(0);}printf("\n B contents are :\n");for(i=0;(ch=fgetc(fp))!=EOF;i++){c[i]=ch;putchar(c[i]);}fclose(fp);n=i;for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(c[i]>c[j]){t=c[i];c[i]=c[j];c[j]=t;}printf("\n C file is:\n");fp=fopen("C","w");for(i=0;i<n;i++){ putc(c[i],fp);putchar(c[i]);}fclose(fp);}==============================================================【程序100】题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件"stud"中。1.程序分析:2.程序源代码:#i nclude "stdio.h"struct student{ char num[6];char name[8];int score[3];float avr;} stu[5];main(){int i,j,sum
PLC培训可以去程控自动化PLC培训请认准程控自动化!专业化,标准化,系统化培训,帮助您60天变成PLC专家! 程控自动化,是一家承接电气自动化程序设计,电气与非标机械设计,设备改造,PLC培训的自动化公司。PLC培训实行一对一的随到随学培...
点击进入详情页本回答由闵行程控工程师培训提供发给我一份源代码特别是综合部分的}

我要回帖

更多关于 单片机编程代码大全 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信