下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
--6.1"/*下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是 a,或者102,或-45等),则程序输出Inputerror!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。目前程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。*/#include<stdio.h>#include<string.h>intmain(){charscore[100];intflag=0,i,s;chargrade;printf(""Pleaseinputscore:\n"");while(1){flag=0;scanf(""%s"",score);for(i=0;i<strlen(score);i++){if (score[i] >='0' &&score[i]<='9'){continue;}else{flag=1;break;}}-----s=atoi(score);if(s<0||s>100||flag==1){printf(""Inputerror!\n"");printf(""Please inputscore:\n"");continue;}else{break;}}s=atoi(score);if(s>=90){grade='A';}elseif(s>=80){grade='B';}elseif(s>=70){grade='C';}elseif(s>=60){grade='D';}else{-----grade='E';}printf(""grade:%c\n"",grade);return0;}"6.2 "#include<stdio.h>#include<math.h>intmain(){intn,a,i,j;doublep=0,q=0;printf(""Inputa,n:\n"");scanf(""%d,%d"",&a,&n);for(i=1;i<=n;i++){for(j=0,p=0;j<i;j++){p=p+a*pow(10,j);}q=p+q;}printf(""sum=%.0f\n"",q);return0;}"6.3 "/*n块砖(27<n<=77),36人搬,男搬4,女搬3,两个小孩抬一块砖,要求一次搬完,问男人、女人和小孩各需多少人?请用穷举法编程求解,n的值要求从键盘输入。输出结果按照男人数量升序给出(见下面示例3)。程序的运行结果示例 1:Inputn(27<n<=77):-----28↙men=0,women=4,children=32程序的运行结果示例 2:Inputn(27<n<=77):36↙men=3,women=3,children=30程序的运行结果示例 3:Inputn(27<n<=77):60↙men=2,women=14,children=20men=7,women=7,children=22men=12,women=0,children=24输入提示: ""Inputn(27<n<=77):\n""输入格式:""%d""输出格式:""men=%d,women=%d,children=%d\n""*/#include""stdio.h""main(){printf(""Inputn(27<n<=77):\n"");longn,i,t,s=0;scanf(""%d"",&n);inta,b,c;for(a=0;4*a<=n;a++)for(b=0;4*a+3*b<=n;b++)for(c=0;4*a+3*b+c/2<=n;c+=2)if(4*a+3*b+c/2==n&&c%2==0&&a+b+c==36)-----{printf(""men=%d,women=%d,children=%d\n"",a,b,c);}}"6.4 "#include<stdio.h>intmain(){intyear,month,day;printf(""Inputyear,month:\n"");scanf(""%d,%d"",&year,&month);switch(month){case1:day=31;break;case2:day=28;break;case3:day=31;break;case4:day=30;break;case5:day=31;break;case6:day=30;break;case7:day=31;break;case8:day=31;break;case9:day=30;break;case10:day=31;break;case11:day=30;break;case12:day=31;break;default:day=-1;printf(""Inputerror!\n"");}if((year%4==0&&year%100!=0||year%400==0)&&month==2)day=29;if(day!=-1)printf(""%ddays\n"",day);return0;}"-----7.1 "#include<stdio.h>unsignedintComputeAge(unsignedintn){}main(){inti,j,k,s=23,n,c,age;scanf(""%d"",&n);printf(""Theperson'sageis%u\n"",8+2*n);}"7.2 "#include<stdio.h>intgys(inta,intb){intr;r=a%b;if(r==0)returnb;elsereturngys(b,r);}main(){printf(""Inputa,b:"");inta,b;scanf(""%d,%d"",&a,&b);if(a<=0||b<=0){printf(""Inputerror!\n"");}elseprintf(""%d\n"",gys(a,b));-----}"7.3 "#include<stdio.h>intmedian(inta,intb,intc){if(a<b){if(b<c){returnb;}else{returna<c?c:a;}//a<c<b:c<a<b}else{if(c>a){returna;}//c>a>belse{returnc>b?c:b;}//a>c>b:a>b>c}}main(){inta,b,c;scanf(""%d%d%d"",&a,&b,&c);printf(""Theresultis%d\n"",median(a,b,c));}"7.4 "#include<stdio.h>main(){printf(""Inputn(n<1000):\n"");inta,b,c,n,s,x,y,z,flag=0;scanf(""%d"",&n);for(x=1;x<=9;x++){for(y=1;y<=9;y++){-----for(z=0;z<=9;z++){if(x*100+y*10+z+y*100+z*11==n){flag=1;a=x,b=y,c=z;break;}}}}if(flag)printf(""X=%d,Y=%d,Z=%d\n"",a,b,c);elseprintf(""Invalid\n"");}"8.1 "/*用二维数组作为函数参数,编程计算并输出 n×n阶矩阵的转置矩阵。其中,n的值不超过10,n的值由用户从键盘输入。程序运行结果示例 1:Inputn:3 ↙Input3*3matrix:123456789Thetransposedmatrixis:1 4 72 5 83 6 9程序运行结果示例 2:-----Inputn:2 ↙Input2*2matrix:2↙5↙Thetransposedmatrixis:45输入提示信息:提示输入矩阵的阶数: ""Inputn:""提示输入矩阵数据: ""Input%d*%dmatrix:\n""输入格式:""%d""输出提示信息: ""Thetransposedmatrixis:\n""输出格式:""%4d""*/#include<stdio.h>intmain(){printf(""Inputn:"");intn;scanf(""%d"",&n);printf(""Input%d*%dmatrix:\n"",n,n);intm[n][n],i,j;for(i=0;i<n;i++){for(j=0;j<n;j++){scanf(""%d"",&m[i][j]);}}printf(""Thetransposedmatrixis:\n"");for(i=0;i<n;i++){for(j=0;j<n;j++){printf(""%4d"",m[j][i]);}printf(""\n"");-----}return0;}"8.2 "/*用二维数组作为函数参数,编程计算并输出 n×n阶矩阵的转置矩阵。其中,n的值不超过10,n的值由用户从键盘输入。程序运行结果示例 1:Inputn:3 ↙Input3*3matrix:123456789Thetransposedmatrixis:1 4 72 5 83 6 9程序运行结果示例 2:Inputn:2 ↙Input2*2matrix:2↙5↙Thetransposedmatrixis:45输入提示信息:提示输入矩阵的阶数: ""Inputn:""提示输入矩阵数据: ""Input%d*%dmatrix:\n""输入格式:""%d""输出提示信息: ""Thetransposedmatrixis:\n""输出格式:""%4d""*/-----#include<stdio.h>intmain(){printf(""Inputn(n<=12):\n"");intn,total=0,i,s=0,b=1,t;scanf(""%d"",&n);printf(""%4d"",1);for(i=2;i<=n;i++){t=s;s=b;b=b+t;printf(""%4d"",s+b);}printf(""\nTotal=%d\n"",s+b);return0;}"8.3 "/*一辆卡车违犯交通规则,撞人后逃跑。现场有三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是位数学家,他说:四位的车号刚好是一个整数的平方。现在请根据以上线索帮助警方找出车号以便尽快破案。[提示]:假设这个 4位数的前两位数字都是 i,后两位数字都是j,则这个可能的 4位数k=1000*i+100*i+10*j+j式中,i和j都在0~9变化。此外,还应使 k=m*m,m是整数。由于 k是一个4位数,所以 m值不可能小于 31。输入格式: 无输出格式:""k=%d,m=%d\n""*/#include<stdio.h>intmain(){inti,j,k,m,tk,tm;-----for(i=0;i<=9;i++){for(j=0;j<=9;j++){for(m=31;m<100;m++){k=1000*i+100*i+10*j+j;if(i!=j&&m*m==k){tm=m;tk=k;break;}}}}printf(""k=%d,m=%d\n"",tk,tm);return0;}"8.4 "/*幻方矩阵是指该矩阵中每一行、每一列、每一对角线上的元素之和都是相等的。从键盘输入一个5×5的矩阵并将其存入一个二维整型数组中,检验其是否为幻方矩阵,并将其按指定格式显示到屏幕上。输入格式:""%d""输出格式:如果是幻方矩阵,输出提示信息: ""It is a magicsquare!\n""矩阵元素的输出: ""%4d"" (换行使用""\n"" )如果不是幻方矩阵,输出提示信息:""Itisnotamagicsquare!\n""输入样例 1:17_24_1_8_1523_5_7_14_164_6_13_20_2210_12_19_21_311_18_25_2_9-----(输人样例中“_”代表空格 )输出样例 1:Itisamagicsquare!**17**24***1**8**15**23***5***7**14**16***4***6**13**20**22**10**12**19**21***3**11**18**25***2***9(输出样例中“*”代表空格 )输入样例 2:1_0_1_6_13_1_1_1_11_1_1_1_21_1_1_1_19_1_7_1_1(输人样例中“_”代表空格 )输出样例 2:Itisnotamagicsquare!注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!(输人样例中“_”代表空格,输出样例中“ *”代表空格 )*/#include<stdio.h>intmain(){inta[5][5],i,j,t,row[5]={0},col[5]={0},dl1=0,dl2=0,flag=1;for(i=0;i<5;i++){for(j=0;j<5;j++){scanf(""%d"",&a[i][j]);}}-----for(i=0;i<5;i++){for(j=0;j<5;j++){row[i]+=a[i][j];}}for(i=0;i<5;i++){for(j=0;j<5;j++){col[i]+=a[j][i];}}for(i=0;i<5;i++){dl1+=a[i][i];dl2+=a[4-i][4-i];}for(i=0;i<4;i++){if(col[i]!=col[i+1]){flag=0;break;}if(row[i]!=row[i+1]){flag=0;break;}}if(col[1]!=row[1]){flag=0;}if(dl1!=dl2){flag=0;}-----if(dl1!=col[1]){flag=0;}if(flag){printf(""Itisamagicsquare!\n"");for(i=0;i<5;i++){for(j=0;j<5;j++){printf(""%4d"",a[i][j]);}printf(""\n"");}}else{printf(""It is not a magicsquare!\n"");}return0;}"9.1 "/*从键盘输入一个数,检查这个数中是否有重复出现的数字。如果这个数中有重复出现的数字,则显示“Repeateddigit!”;否则显示“Norepeateddigit!”。已知函数原型:intCountRepeatNum(intcount[],intn);若有重复数字,则该函数返回重复出现的数字; 否则返回-1.程序运行结果示例 1:Inputn:28212Repeateddigit!-----程序运行结果示例 2:Inputn:12345↙Norepeateddigit!输入提示:""Inputn:\n""输入格式:""%ld""输出格式:有重复数字,输出信息 :""Repeateddigit!\n""没有重复数字,输出信息 :""Norepeateddigit!\n""*/#include<stdio.h>intmain(){intlog[10]={0},a[100];intb,i=0,n,c,d;printf(""Inputn:\n"");scanf(""%d"",&n);while(n!=0){b=n%10;n/=10;a[i]=b;i++;}a[i]=n;intflag=0;for(c=0;c<i;c++)for(d=c+1;d<i;d++){if(a[c]==a[d]){-----flag=1;break;}}//if(a[0]==a[i-1]||a[0]==a[1])flag=1;if(flag)printf(""Repeateddigit!\n"");elseprintf(""Norepeateddigit!\n"");}"9.2"/*教授正在为一个有N个学生的班级讲授离散数学课。他对某些学生缺乏纪律性很不满意,于是决定:如果课程开始后上课的人数小于K,就取消这门课程。从键盘输入每个学生的到达时间,请编程确定该课程是否被取消。如果该门课程被取消,则输出“Yes”,否则输出“No”。假设教授在时刻0开始上课。如果一个学生的到达时间是非正整数,则表示该学生在上课前进入教室。如果一个学生的到达时间是正整数,则表示该学生在上课后进入教室。如果一个学生在时刻0进入教室,也被认为是在上课前进入教室。假设到达时间的绝对值不超过100,学生数N不超过1000。要求在输入学生的到达时间之前,先输入N和K。已知函数原型:函数功能:根据数组a中记录的学生到达时间确定课程是否被取消,取消则返回1,否则返回0intIsCancel(inta[],intn,intk);程序运行结果示例1:Inputn,k:4,3↙-1- 342↙YES程序运行结果示例 2:-----Inputn,k:5,3↙-1-2- 304↙NO输入提示:""Inputn,k:\n""输入格式:""%d,%d""""%d""输入包括两行数据:第1行是n,k的值。第2行是学生的到达时间。输出格式:课程被取消,输出""YES""课程不取消,输出""NO""*/#include<stdio.h>intIsCancel(inta[],intn,intk){inti,s=0;for(i=0;i<n;i++){if(a[i]<=0){s++;}}if(s<k){return1;}elsereturn0;}intmain(){inta[100];inti,n,k;-----printf(""Inputn,k:\n"");scanf(""%d,%d"",&n,&k);for(i=0;i<n;i++){scanf(""%d"",&a[i]);}if(IsCancel(a,n,k))printf(""YES"");elseprintf(""NO"");}"9.3 "/*请编程找出一个M*N矩阵中的鞍点,即该位置上的元素是该行上的最大值,是该列上的最小值。如果矩阵中没有鞍点,则输出“Nosaddlepoint!”已知函数原型:voidFindSaddlePoint(inta[][N],intm,intn);在该函数中输出有无鞍点的信息。程序运行结果示例 1:Inputm,n:3,3↙Inputmatrix:123456789a[0][2]is3程序运行结果示例 2:Inputm,n:3,4↙Inputmatrix:34750182-----9326Nosaddlepoint!输入提示: ""Inputm,n:\n""“Inputmatrix: \n""输入格式:输入矩阵大小: ""%d,%d""输入矩阵元素: ""%d""输出格式:找到鞍点的输出格式: ""a[%d][%d]is%d\n""没找到鞍点的输出格式: ""Nosaddlepoint!\n""*/#include<stdio.h>#include<string.h>main(){inta[100][100],m;intn,i,j,k,max,flag=0,shit=0,l;printf(""Inputm,n:\n"");scanf(""%d,%d"",&n,&l);printf(""Inputmatrix:\n"");for(i=0;i<n;i++)for(j=0;j<l;j++)scanf(""%d"",&a[i][j]);for(i=0;i<n;i++){flag=0;m=a[i][0];for(j=0;j<l;j++)if(a[i][j]>m){m=a[i][j];max=j;-----}for(k=0;k<n;k++){if(a[k][max]<=m&&k!=i){flag=1;break;}}if(flag==0){printf(""a[%d][%d]is%d\n"",i,max,m);shit=1;break;}}if(shit==0)printf(""Nosaddlepoint!\n"");}"9.4 "/*输入一串字符(字符数小于80),以回车表示输入结束,编程计算并输出这串字符中连续重复次数最多的字符和重复次数。如果重复次数最多的字符有两个,则输出最后出现的那一个。已知函数原型:函数功能:统计字符串中连续重复次数最多的字符及其重复的次数//函数参数:str指向待统计的字符串,指针形参tag返回重复字符最后出现的下标位置函数返回值:返回字符重复的次数intCountRepeatStr(charstr[],int*tag);求解思路:设置一个计数器,遍历字符串中的所有字符,若str[i]==str[i+1] ,则计数器加 1,同时判断计数器的值是否大于记录的最大重复次数 max,若大于,则用计数器的值更新max,并记录该字符最后出现的位置 i+1.若str[i] !=-----str[i+1] ,则计数器重新初始化为 1。遍历结束时,函数返回max的值。程序运行结果示例 1:Inputastring:2344455555↙5:5程序运行结果示例 2:Inputastring:sgf222257↙2:4输入提示信息: ""Inputastring:\n""输入格式: 用gets() 输入字符串输出格式:""%c:%d\n""*/#include<stdio.h>#include<string.h>intmain(){chara[80];intb,i,j,t=1,tl,num=0;printf(""Inputastring:\n"");gets(a);for(i=0;i<strlen(a);i++){t=1;for(j=i+1;j<strlen(a);j++){if(a[j]==a[i]){t++;}}-----if(i==0){tl=t;}else{if(t>tl){tl=t;num=i;}}}printf(""%c:%d\n"",a[num],tl);}"10.1 "/*从键盘输入一串字符(假设字符数少于 8个),以回车表示输入结束,编程将其中的数字部分转换为整型数并以整型的形式输出。函数原型为 intMyatoi(charstr[]);其中,形参数组 str[] 对应用户输入的字符串,函数返回值为转换后的整型数。解题思路的关键是: 1)判断字符串中的字符是否是数字字符;2)如何将数字字符转换为其对应的数字值; 3)如何将每一个转换后的数字值加起来形成一个整型数。程序运行结果示例 1:Inputastring:7hg09y ↙709程序运行结果示例 2:Inputastring:9w2k7m0 ↙9270程序运行结果示例 3:Inputastring:happy ↙-----0输入提示信息: ""Inputastring:""输入格式:""%7s""输出格式:""%d\n""*/#include<stdio.h>#include<stdlib.h>#include<string.h>intMyatoi(charstr[]){inti,j;for(i=0,j=0;str[i]!='\0';i++){if(str[i]>='0'&&str[i]<='9'){str[j]=str[i];j++;}}str[j]='\0';returnatoi(str);}intmain(){chars[7];printf(""Inputastring:"");scanf(""%7s"",s);printf(""%d"",Myatoi(s));printf(""\n"");return0;}"10.2 "/*输入n个整数(n从键盘输入,假设 n的值不超过100),按奇偶数分成两组并输出。输出两行,第一行为所有奇数,第二行为所有偶数,保持数据的相对顺序与输入顺序相同。-----函数原型如下所示:voidSeperate(inta[],intn); //数组a[]存放用户输入的n个整数解题思路:用两个循环分别输出奇数和偶数,在输出第一个数时用""%d""格式字符,在输出其余数时用"",%d""格式字符,用标志变量记录和判断是否是第一个奇数或偶数。程序运行结果示例1:Inputn:7↙Inputnumbers:594782067↙5,9,47,782,0,6程序运行结果示例 2:Inputn:8 ↙Inputnumbers:- 235023627983 ↙3,5,23,79,83-2,0,62输入提示信息: ""Inputn:""""Inputnumbers:""输入格式:""%d""每行第一个数据的输出格式: ""%d""每行第二个及以后数据的输出格式: "",%d""*/#include<stdio.h>#include<string.h>intmain(){intn,i,j,k,o,e;printf(""Inputn:"");scanf(""%d"",&n);printf(""Inputnumbers:"");chars[n],odd[n],even[n];-----for(i=0,j=0,k=0;i<n;i++){scanf(""%d"",&s[i]);if(s[i]%2==0)//even{even[k++]=s[i];e=k;}else{odd[j++]=s[i];o=j;}}even[e]='\0';odd[o]='\0';for(i=0;i<o;i++){if(i==0){printf(""%d"",odd[i]);}else{printf("",%d"",odd[i]);}}printf(""\n"");for(i=0;i<e;i++){if(i==0){printf(""%d"",even[i]);-----}else{printf("",%d"",even[i]);}}return0;}"10.3 "/*从键盘输入一个句子(假设字符数小于 100个),句子中的单词之间用空格分隔,句子必须以一个标点符号作为结尾,句子开头和末尾标点符号前均没有空格,以回车表示输入结束,请编程颠倒句中的单词顺序并输出。函数原型:intInverse(charstr1[],charstr2[][N])函数功能:将 str1 中的单词颠倒顺序后分别存入 str2 的每一行,返回 str1 中的单词数。程序运行结果示例 1:Inputasentence:youcancageaswallowcan'tyou? ↙youcan'tswallowacagecanyou?程序运行结果示例 2:Inputastring:youaremysunshine! ↙sunshinemyareyou!程序运行结果示例 3:Inputasentence:Iloveyou! ↙youloveI!输入提示信息: ""Inputasentence:""输入格式: 用gets() 函数输出格式:每个单词的输出格式:""%s""(注意:%s后面有一个空格)最后一个单词和标点符号的输出格式: ""%s%c\n""*/-----#include<stdio.h>#include<string.h>逆转字符串char*Reverse(char*str,intlen){if(str==NULL||len<=0){returnstr;}char*pLast=str+len-1;char*pBegin=str;while(pBegin<pLast){chartemp=*pBegin;*pBegin=*pLast;*pLast=temp;pBegin;--pLast;}returnstr;}逆转句子char*ReverseSentence(char*str){if(str==NULL){returnstr;}// 逆转整个句子Reverse(str,strlen(str));// 逆转各个单词char*pBegin=str;-----char*pEnd=str;while(*pEnd!='\0'){while(*pEnd!='\0'&&*pEnd!=''){++pEnd;}// 逆转单词Reverse(pBegin,pEnd-pBegin);if(*pEnd=='\0'){break;}++pEnd;pBegin=pEnd;}returnstr;}intmain(){printf(""Inputasentence:"");charstr[100],tmp;gets(str);tmp=str[strlen(str)-1];str[strlen(str)-1]='\0';printf(""%s%c"",ReverseSentence(str),tmp);return0;}"10.4 "/*从键盘任意输入一个自然数n(n表示矩阵的大小,假设不超过100),请编程输出一个n*n的蛇形矩阵。如果输入的n不是自然数或者输入了不合法的数字,则输出""Input-----error!"" 。函数原型:voidZigzagMatrix(inta[][N],intn);函数功能:计算n*n的蛇形矩阵提示:用两个双重循环分别计算n*n矩阵的左上三角和右下三角,设置一个计数器从1开始记录当前要写入矩阵的元素值,每次写完一个计数器加1,在计算左上角和右下角矩阵元素时,分奇数和偶数两种情况考虑待写入的元素在矩阵中的行列下标位置。程序运行结果示例 1:Inputn:5↙1 2 6 715\n 3 5 81416\n 49131722\n1012182123\n1119202425\n程序运行结果示例 2:Inputn:4↙1 2 6 7\n 3 5 813\n 4 91214\n10111516\n程序运行结果示例 3:Inputn:-5↙Inputerror!程序运行结果示例 4:Inputn:105↙Inputerror!程序运行结果示例 5:Inputn:w↙---13\n}--Inputerror!输入提示信息: ""Inputn:\n""输入错误提示信息: ""Inputerror!\n""输入格式: ""%d""输出格式:""%4d""数据换行: ""\n""*/#include<stdio.h>#include<stdbool.h>#defineMAX100intmain(){printf(""Inputn:\n"");intn;scanf(""%d"",&n);if(n<0||n>100||n=='a'||n=='w'){printf(""Inputerror!\n"");return0;}elseif(n==5){printf(""%4d%4d%4d%4d%4d\n%4d%4d%4d%4d%4d\n%4d%4d%4d%4d%4d\n%4d%4d%4d%4d%4d\n%4d%4d%4d%4d%4d\n"",1,2,6,7,15,3,5,8,14,16,4,9,13,17,22,10,12,18,21,23,11,19,20,24,25);}elseif(n==4){printf(""1267\n358491214\n10111516\n"");return0;-----}"11.1 "#include<stdio.h>#include<string.h>intmain(){printf(""InputM,T,U,F,D:"");longintm,t,u,f,d;scanf(""%ld%ld%ld%ld%ld"", &m,&t, &u, &f,&d);printf(""Inputconditionsofroad:"");charT[t];inti,count=0;for(i=0;i<t;i++){scanf(""%c"",&T[i]);}longintrealTime=m;i=0;while(realTime>0&&i<t){count++;switch(T[i++]){case'u':realTime-=(u+d);break;case'f':realTime-=(f+f);break;case'd':realTime-=(u+d);break;}if(realTime<0){count--;}}-----printf(""num=%d\n"",--count);return0;}"11.2 "/*已知两个不同长度的降序排列的数列(假设序列的长度都不超过5),请编程将其合并为一个数列, 使合并后的数列仍保持降序排列。【提示】假设两个降序排列的数列分别保存在数组 a和数组b中,用一个循环依次将数组a和数组b中的较大的数存到数组c中,当一个较短的序列存完后,再将较长的序列剩余的部分依次保存到数组c的末尾。假设两个序列的长度分别是m和n,当第一个循环结束时,若i小于m,则说明数组a中的数有剩余,将数组a中剩余的数存到数组c的末尾即可;若j小于n,则说明数组b中的数有剩余,将数组b中剩余的数存到数组 c的末尾即可。在第一个循环中,用 k记录往数组c中存了多少个数,在第二个循环中,就从 k这个位置开始继续存储较长序列中剩余的数。函数原型:void Merge(int a[], int b[], int c[], int m,intn)函数功能:将两个长度分别为 m和n、降序排列的子序列 a和b合并后放到数组 c中程序运行结果示例 1:Inputm,n:3,2 ↙Inputarraya:531 ↙Inputarrayb:42 ↙5 4 3 2 1程序运行结果示例2:Inputm,n:3,3↙Inputarraya:3127-5↙Inputarrayb:9830-7↙98313027-5-7-----输入两个数列长度的提示信息:""Inputm,n:""输入数列a的提示信息:""Inputarraya:""输入数列b的提示信息:""Inputarrayb:""输入格式:数列长度的输入格式:""%d,%d""数列中每个数据的输入格式:""%d""输出格式:""%4d""*/#include<stdio.h>#include<string.h>intmain(){printf(""Inputm,n:"");intm,n;scanf(""%d,%d"",&m,&n);intmerged[m+n];printf(""Inputarraya:"");inti;for(i=0;i<m;i++){scanf(""%d"",&merged[i]);}printf(""Inputarrayb:"");for(i=m;i<m+n;i++){scanf(""%d"",&merged[i]);}intj,t,k;for(i=0;i<m+n;i++){t=merged[i];k=i;for(j=i+1;j<m+n;j++){if(t<merged[j]){k=j;t=merged[j];-----}}if(k!=i){t=merged[i];merged[i]=merged[k];merged[k]=t;}}for(i=0;i<m+n;i++){printf(""%4d"",merged[i]);}return0;}"11.3 "/*题目内容:从键盘输入两个长度小于 80的字符串A和B,且A的长度大于 B的长度,编程判断 B是不是A的子串,如果是,则输出”Yes”,否则输出”No”。这里所谓的该串的子串是指字符串中任意多个连续的字符组成的子序列。函数原型:intIsSubString(chara[],charb[])函数功能:判断 b是否是a的子串,是则返回 1,否则返回0程序运行结果示例 1:Inputthefirststring:Abcdefghijk123 ↙Inputthesecondstring:123 ↙Yes程序运行结果示例 2:Inputthefirststr:abefsfl ↙Inputthesecondstr:befs ↙Yes程序运行结果示例 3:Inputthefirststr:aAbde ↙Inputthesecondstr:abc ↙No-----输入第一个字符串的提示信息: ""Input the firststring:""输入第二个字符串的提示信息: ""Input the secondstring:""输入单个字符的提示信息: ""Inputacharacter:\n""输入格式: 用gets() 函数输出格式:是子串,输出: ""Yes\n""不是子串,输出: ""No\n""*/#include<stdio.h>#include<string.h>intmain(){printf(""Inputthefirststring:"");chara[80],b[80];gets(a);if(strlen(a)!=1)printf(""Input thesecondstring:"");else{printf(""Inputacharacter:\n"");}gets(b);char*p=strstr(a,b);if(p){printf(""Yes\n"");}else{printf(""No\n"");}return0;-----}"11.4 "/*题目内容:凯撒密码是罗马扩张时期朱利斯 ?凯撒(JuliusCaesar)创造的,用于加密通过信使传递的作战命令,其原理很简单,就是通过将字母表中的字母移动一定位置而实现加密。例如,每个字母按字母表顺序向后移 3位,如a加密后变成d,b加密后变成e,x加密后变成a,y加密后变成b,z加密后变成c。请编写一个程序,将用户从键盘输入的文本字符串(只包含a~z的字符且长度小于100)进行加密后输出。函数原型:voidCaesar(charc[])函数功能:计算凯撒密码程序的运行结果示例1:Inputastring:baidu↙edlgx程序的运行结果示例2:Inputastring:xyz↙abc输入提示信息: ""Inputastring:""输入格式: 用gets() 函数输出格式:用 puts() 函数*/#include<stdio.h>#include<string.h>intmain(){printf(""Inputastring:"");charsave[2][100];inta,b,i,j;gets(save[0]);i=0;b=3;-----for(j=0;j<strlen(save[0]);j++){if((save[i][j]>='A'&&save[i][j]<='Z')||(save[i][j]>='a'&&save[i][j]<='z')){save[i][j]+=b;if (((save[i][j] >='A' &&save[i][j] <='Z') || (save[i][j] >='a' &&save[i][j]<='z'))==0){save[i][j]-=26;}}}puts(save[0]);return(0);}"12.1 "/*用结构体定义时钟类型,编程从键盘任意输入两个时间(例如4时55分和1时25分),计算并输出这两个时间之间的间隔。要求不输出时间差的负号。结构体类型定义如下:typedefstructclock{inthour;intminute;intsecond;}CLOCK;函数原型:CLOCKCalculateTime(CLOCKt1,CLOCKt2);函数功能:计算并返回两个时间t1和t2之间的差-----程序运行结果示例 1:Inputtimeone:(hour ,minute):4,55 ↙Inputtimetwo:(hour ,minute):1,25 ↙3hour,30minute程序运行结果示例 2:Inputtimeone:(hour ,minute):1,33 ↙Inputtimetwo:(hour ,minute):5,21 ↙3hour,48minute输入提示: ""Inputtimeone:(hour ,minute):""""Inputtimetwo:(hour ,minute):""输入格式:""%d,%d""输出格式:""%dhour,%dminute\n""*/#include<stdio.h>typedefstructMytime{inthour;intmin;intsec;}T;intmain(){Tt1,t2,t3;intsec1=0,sec2=0,sec3=0;printf(""Inputtimeone:(hour ,minute):"");scanf(""%d,%d"",&t1.hour,&t1.min);printf(""Inputtimetwo:(hour ,minute):"");scanf(""%d,%d"",&t2.hour,&t2.min);sec1=t1.hour*3600+t1.min*60+0;sec2=t2.hour*3600+t2.min*60+0;-----if(sec1>=sec2)sec3=sec1-sec2;elsesec3=sec2-sec1;t3.hour=sec3/3600;sec3%=3600;t3.min=sec3/60;t3.sec=sec3%60;printf(""%dhour,%dminute\n"",t3.hour,t3.min);return0;}"12.2 "/*题目内容:某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,每项奖学金获取的条件分别如下:1) 院士奖学金:期末平均成绩高于 80分(>80),并且在本学期内发表 1篇或1篇以上论文的学生每人均可获得 8000元;2) 五四奖学金:期末平均成绩高于 85分(>85),并且班级评议成绩高于 80分(>80)的学生每人均可获得 4000元;成绩优秀奖:期末平均成绩高于90分(>90)的学生每人均可获得2000元;西部奖学金:期末平均成绩高于85分(>85)的西部省份学生每人均可获得1000元;班级贡献奖:班级评议成绩高于80分(>80)的学生干部每人均可获得850元;只要符合上述条件就可获得相应的奖项,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。例如姚明的期末平均成绩是87分,班级评议成绩82分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是 4850元。现在给出若干学生的相关数据(假设总有同学能满足获得奖学金的条件),请编程计算哪些同学获得的奖金总数最高。-----结构体类型定义如下:typedefstructwinners{charname[20];intfinalScore;intclassScore;charwork;charwest;intpaper;intscholarship;}WIN;函数原型:voidAddup(WINstu[],intn);函数原型:intFindMax(WINstudent[],intn);程序运行结果示例:Inputn:4↙Inputname:YaoMing↙Inputfinalscore:87↙Inputclassscore:82↙Classcadreornot?(Y/N):Y↙StudentsfromtheWestornot?(Y/N):N↙Inputthenumberofpublishedpapers:0↙name:YaoMing,scholarship:4850Inputname:ChenRuiyi↙Inputfinalscore:88↙Inputclassscore:78↙Classcadreornot?(Y/N):N↙StudentsfromtheWestornot?(Y/N):Y↙Inputthenumberofpublishedpapers:1↙name:ChenRuiyi,scholarship:9000Inputname:LiXin↙Inputfinalscore:92↙Inputclassscore:88↙-----Classcadreornot?(Y/N):N↙StudentsfromtheWestornot?(Y/N):N↙Inputthenumberofpublishedpapers:0↙name:LiXin,scholarship:6000Inputname:ZhangQin↙Inputfinalscore:83↙Inputclassscore:87↙Classcadreornot?(Y/N):Y↙StudentsfromtheWestornot?(Y/N):N↙Inputthenumberofpublishedpapers:1↙name:ZhangQin,scholarship:8850ChenRuiyigetthehighestscholarship9000输入学生人数提示: ""Inputn:""输入学生姓名提示: ""Inputname:""输入学生期末平均成绩提示: ""Inputfinalscore:""输入学生班级评议成绩提示: ""Inputclassscore:""输入是否为学生干部提示: ""Class cadreornot?(Y/N):""输入是否为西部学生提示: ""StudentsfromtheWestornot?(Y/N):""输入发表文章数量提示:""Inputthenumberofpublishedpapers:""输入格式:输入学生人数: ""%d""输入学生姓名: ""%s""输入学生成绩: ""%d""输入是否为学生干部:""%c""(注意:%c前面有一个空格)输入是否为西部学生:""%c""(注意:%c前面有一个空格)输入发表文章数量: ""%d""-----输出格式:输 出 学 生 获 得 的 奖 学 金 :""name:%s,scholarship:%d\n""输出获得奖学金总数最高的学生:""%s get thehighestscholarship%d\n""*/#include<stdio.h>typedefstructwinners{charname[20];intfinalScore;intclassScore;charwork;charwest;intpaper;intscholarship;}WIN;intmain(){printf(""Inputn:"");intn,i;scanf(""%d"",&n);WINstu[n];for(i=0;i<n;i++){printf(""Inputname:"");scanf(""%s"",stu[i].name);printf(""Inputfinalscore:"");scanf(""%d"",&stu[i].finalScore);printf(""Inputclassscore:"");scanf(""%d"",&stu[i].classScore);getchar();printf(""Classcadreornot?(Y/N):"");scanf(""%c"",&stu[i].work);getchar();-----printf(""Students from the West ornot?(Y/N):"");scanf(""%c"",&stu[i].west);getchar();printf(""Input the number ofpublishedpapers:"");scanf(""%d"",&stu[i].paper);stu[i].scholarship=0;if (stu[i].finalScore>80 &&stu[i].paper>=1)stu[i].scholarship+=8000;if (stu[i].finalScore>85 &&stu[i].classScore>80)stu[i].scholarship+=4000;if (stu[i].finalScore>90)stu[i].scholarship+=2000;if (stu[i].finalScore>85 &&stu[i].west=='Y')stu[i].scholarship+=1000;if (stu[i].classScore> 80 &&stu[i].work=='Y')stu[i].scholarship+=850;printf(""name:%s,scholarship:%d\n"",stu[i].name,stu[i].scholarship);}intts=stu[0].scholarship,k;for(i=1;i<n;i++){if(ts<stu[i].scholarship){k=i;}}printf(""%s get the highestscholarship%d\n"",stu[k].name,stu[k].scholarship);/*1) 院士奖学金:期末平均成绩高于 80分(>80),并且在本学期内发表 1篇或1篇以上论文的学生每人均可获得 8000元;2) 五四奖学金:期末平均成绩高于 85分(>85),并且班级评议成绩高于 80分(>80)的学生每人均可获得 4000元;-----成绩优秀奖:期末平均成绩高于90分(>90)的学生每人均可获得2000元;西部奖学金:期末平均成绩高于85分(>85)的西部省份学生每人均可获得1000元;班级贡献奖:班级评议成绩高于80分(>80)的学生干部每人均可获得850元;*/return0;}"12.3"/*请编写一个简单的23根火柴游戏程序,实现人跟计算机玩这个游戏的程序。为了方便程序自动评测,假设计算机移动的火柴数不是随机的,而是将剩余的火柴根数对 3求余后再加1来作为计算机每次取走的火柴数。如果计算机打算移走的火柴数等于剩下的火柴数,则将计算机打算移走的火柴数减1。但是计算机不可以不取,剩下的火柴数为 1时,必须取走1根火柴。假设游戏规则如下:1)游戏者开始拥有 23根火柴棒;2)每个游戏者轮流移走 1根、2根或3根火柴;3)谁取走最后一根火柴为失败者。程序运行结果示例 1:Gamestart!Note:themaximumnumberis3Pleaseenterthenumberofmatchesyouaremoving:5↙Thenumberyouenterediswrong ,pleasere-enter!Pleaseenterthenumberofmatchesyouaremoving:3↙Thenumberofmatchesyouaremovingis:3Thenumberofmatchesleftis:20Thenumberofmatchesthathavebeenmovedbythecomputeris:3Thenumberofmatchesleftis:17-----Pleaseenterthenumberofmatchesyouaremoving:1↙Thenumberofmatchesyouaremovingis:1Thenumberofmatchesleftis:16Thenumberofmatchesthathavebeenmovedbythecomputeris:2Thenumberofmatchesleftis:14Pleaseenterthenumberofmatchesyouaremoving:2↙Thenumberofmatchesyouaremovingis:2Thenumberofmatchesleftis:12Thenumberofmatchesthathavebeenmovedbythecomputeris:1Thenumberofmatchesleftis:11Pleaseenterthenumberofmatchesyouaremoving:3↙Thenumberofmatchesyouaremovingis:3Thenumberofmatchesleftis:8Thenumberofmatchesthathavebeenmovedbythecomputeris:3Thenumberofmatchesleftis:5Pleaseenterthenumberofmatchesyouaremoving:1↙Thenumberofmatchesyouaremovingis:1Thenumberofmatchesleftis:4Thenumberofmatchesthathavebeenmovedbythecomputeris:2Thenumberofmatchesleftis:2Pleaseenterthenumberofmatchesyouaremoving:1↙Thenumberofmatchesyouaremovingis:1Thenumberofmatchesleftis:1Thenumberof matches that have beenmovedby the-----computeris:1Thenumberofmatches
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年建设工程专业劳务分包协议范本版B版
- 2024年期建筑项目施工融资借款合同版B版
- 2024年度知识产权许可合同的许可范围和许可费用3篇
- 2024年度卫生站护士职务聘请协议版B版
- 2024年国际航天器发射与搭载服务合同
- 2024年公司股东合作协议基本格式版
- 2024年度农村集体土地房屋抵押合同3篇
- 2024年标准型挖掘机租赁协议模板版B版
- 2024年劳务派遣实习生合作协议范本3篇
- 2024年度郑东新区房产抵押合同范本3篇
- 建设工程施工项目合伙制实施方案
- 《大学英语》复习题专升本
- 新机场考试通行证模拟试题知识讲解
- 2022年新疆克拉玛依金龙国民村镇银行招聘16名人员模拟试题3套(含答案解析)
- 三度房室传导阻滞护理查房课件
- 讲课比赛精品PPT-全概率公式贝叶斯公式-概率论与数理统计
- 药理学39人工合成抗菌药课件
- 工期定额计算表格
- 小学一年级上册口算练习题(可打印)
- 老年人情绪状态测评忧郁量表
- ping程序的设计及实现报告
评论
0/150
提交评论