5132程序设计方案_第1页
5132程序设计方案_第2页
5132程序设计方案_第3页
5132程序设计方案_第4页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、输入一行以空格分隔的数,把它们存入数组,用逗号分隔的方式输出,并统计数的个数。输入输入一行以空格分隔的数。已知至少输入一个数,至多输入二十个数,且最后一个数后紧跟回车输入。输出输出两行。第一行输出这些数,相邻两数之间用一个逗号隔开。第二行输出数的个数。输入示例20 37.5 43 5 87.0输出示例20,37.5,43,5,87.05数据范围输入输出均为float 范围的浮点数#include #include #define N 400void main()char aN;/ 定义数组int i,j=1;gets(a);/ 将输入的数存入数组for(i=0;ai!=0;i+)/ 执行循环到

2、输入的数字末尾结束if(ai= )ai=,;printf(%c,ai); /j+;将空格用逗号替换后输出/ 记录替换次数elseprintf(%c,ai);printf(n);printf(%d,j);/ 替换次数加一即是所求数的个数按照“学号【空格】姓名【空格】性别【空格】年龄【回车】”的格式输入若干学生信息,将他们存储在结构体数组中(即每一个学生的信息存储在一个结构体中) ,输入以“ #”结束。统计学生人数,并按行输出每条学生信息。输入输入若干行。每行均依照“学号【空格】姓名【空格】性别【空格】年龄【回车】 ”的格式输入,输入以“ #”结束。已知最多输入 20 个学生信息, 学号长度最大为

3、 12,姓名长度最大为 10,性别为“ Male ” 或“ Female”,年龄为整数。输出输出若干行。第一行输出学生人数。从第二行开始,每行为一个学生信息,相邻两项之间用一个逗号隔开。输入示例郭凤山Male 19车润泽Male 18孟超Female 19#输出示例3郭凤山 ,Male,19车润泽 ,Male,18孟超 ,Female,19数据范围输入为整数和字符串#include#includetypedef struct stu/ 定义

4、结构体char num12;char name12;char sex12;int age; STUDENT;int main()STUDENT stu20;int i,n=0;for(i=0; ; i+)scanf(%s,stui.num);if(strcmp(stui.num,#)=0)/ 实现以 #结尾break;scanf(%s%s%d,,stui.sex,&stui.age);n+;/ 记录学生人数printf(%dn,n);for(i=0; in; i+)/ 按格式输出学生信息printf(%s,%s,%s,%dn,stui.num,,stui.s

5、ex,stui.age);return 0;输入一行以制表符分隔的整数,把它们存入数组。 统计数的个数, 并用逗号分隔的方式输出。输入输入一行以制表符分隔的整数。已知至少输入一个数,至多输入二十个数,且最后一个数后紧跟回车输入。输出输出两行。 第一行输出整数个数。第二行输出这些整数,相邻两数之间用一个逗号隔开。输入示例2【 Tab】 3【 Tab】 4【 Tab】 5【 Tab】 6【回车】输出示例52,3,4,5,6数据范围输入为 int 范围的整数#include#include#define N 400int main()int i,j=1;char numN;/ 定义数组gets(nu

6、m);/ 将输入的数存入数组for(i=0;numi!=0;i+)if(numi=t)numi=,;/ 将制表符替换成逗号j+;printf(%dn,j);/ 输出计数结果puts(num);return 0;*输入输入正整数n。输出依据题意输出图形。输入示例4输出示例*数据范围输入为 int 范围的整数#include int main()int n,i,j;scanf(%d,&n);/ 输入层数for(i = 1; i = n; i+)/ 循环控制行数for(j = 1; j =2*(n-i); j+) / 输入空格printf( );for(j = 1; j = 2*i-1; j+)/

7、接着输入* 号printf(*);printf(n);return 0;/ 输完一列后换行从键盘输入一个正整数n(代表层数),打印如下图形。注意中间一行左侧不留空白。*输入输入正整数n。输出依据题意输出图形。输入示例4输出示例*数据范围输入为 int 范围的整数#include #include int main()int n, i, j, m;scanf(%d,&n);/ 输入层数for(i=1; i=n; i+)/ 先打印上面的三角形for(j=i; jn; j+)printf( );for(j=0; j2*i-1; j+)printf(*);printf(n);for(i=1; in;

8、i+)/ 打印下面的三角形for(j=1; j=i; j+)printf( );for(j=1; j=2*n-1-2*i; j+)printf(*);printf(n);return 0;输入一行以逗号分隔的整数,以回车结尾。以每行5 个,适当数量的空格分隔,左对齐的方式输出它们。已知输入的整数最多不超过5 位。提示:可以在输出时使用格式控制参数控制每个整数占6 位且左对齐。输入输入一行以逗号分隔的整数。已知至少输入一个数,至多输入二十个数,且最后一个数后紧跟回车输入。输出输出若干行。每行最多输出 5 个整数,相邻两数之间用若干个空格隔开,使得这些数左对齐。输入示例100,21,3950,7,

9、8,3289,943,495,34134,343,209,47,2,7293,29,2732,843,392,24输出示例10021395078328994349534134 343209472729329273284339224数据范围输入为 int 范围的整数#include #include int main()int num20 = 0;/ 定义数组并初始化int m, n = 0;while (scanf(%d,&numn) != , & getchar() != n)n+;/ 记录整数的个数for(m= 0; m 0 & (m+1) % 5 = 0)/ 每行输出五个整数后换行pri

10、ntf(%-5dn, numm);/ 以每个整数占6 位且左对齐的方式输出elseprintf(%-5d , numm);return 0;输入一行以逗号分隔的整数,以回车结尾。以每行5 个,适当数量的空格分隔,右对齐的方式输出它们。已知输入的整数最多不超过5 位。提示:可以在输出时使用格式控制参数控制每个整数占6 位且右对齐。输入输入一行以逗号分隔的整数。已知至少输入一个数,至多输入二十个数,且最后一个数后紧跟回车输入。输出输出若干行。每行最多输出 5 个整数,每个整数之前放置若干个空格,使得这些数右对齐。输入示例100,21,3950,7,8,3289,943,495,34134,343,

11、209,47,2,7293,29,2732,843,392,24输出示例100213950783289943495 34134343209472729329273284339224数据范围输入为int范围的整数#include#includeint main()int num20;int i=-1,j=0;doi+;/ 统计输入整数的个数scanf(%d,&numi);/ 将输入的整数存入数组while(getchar()!=n&i20);for(j=0;ji+1;j+)printf(%6d,numj);if(j+1)%5=0)printf(n);/ 实现每个整数占六位且右对齐/ 实现一行输出

12、五个整数return 0;输入一行以空格分隔的英文单词,以回车结尾。以每行5 个,适当数量的空格分隔,左对齐的方式输出它们。已知输入的单词长度最多不超过9 位。提示:可以在输出时使用格式控制参数控制每个单词占10 位且左对齐。输入输入一行以空格分隔的英文单词。已知至少输入一个英文单词,至多输入二十个英文单词,且最后一个英文单词后紧跟回车输入。输出输出若干行。每行最多输出 5 个英文单词,相邻两项之间用若干个空格隔开,使得这些英文单词左对齐。输入示例Machine learning is the term that refers to learning patterns in the data

13、In other words输出示例Machinethatinlearning refers theistodatathelearningIntermpatternsotherwords数据范围输入为字符串#include #include #define N 10000int main()char aN,bN;int i,len = 0,j = 0,k;gets(a);for (i=0;ai != n;i+)/ 一直查到输入行末尾if (ai != )/ 如果输入的不是空格bj = ai;/ 将字母存入数组bj+;if (ai = )/ 如果输入的是空格for (k=j;k10;k+)/ 调

14、整数组b 的格式使其一共占10 个字节bk = ;b10 = 0;printf(%s,b);j = 0;len+;if (len%5 = 0)/ 每五个一换行printf(n);return 0;输入一行以空格分隔的英文单词,以回车结尾。以每行5 个,适当数量的空格分隔,居中对齐的方式输出它们。已知输入的单词长度最多不超过9 位,输出时每个单词占10 位。输入输入一行以空格分隔的英文单词。已知至少输入一个英文单词,至多输入二十个英文单词,且最后一个英文单词后紧跟回车输入。输出输出若干行。每行最多输出 5 个英文单词,每个英文单词之前放置若干个空格,使得这些英文单词居中对齐。输入示例Machin

15、e learning is the term that refers to learning patterns in the data In other words输出示例MachinelearningisthetermthatreferstolearningpatternsinthedataInotherwords数据范围输入为字符串#include #include #include #define N 10000int main()char aN,bN;int i,len = 0,j = 0,l,k;gets(a);for (i=0; ai != 0; i+)if (ai != )bj

16、= ai;j+;if (ai = )len+;bj = 0;for (k=0; k(10-j)/2; k+)printf( );printf(%s,b);for (k=0; k(10-j-(10-j)/2); k+)printf( );j = 0;if (len%5 = 0)printf(n);bj = 0;for (k=0; k(10-j)/2; k+)printf( );printf(%s,b);for (k=0; k(10-j-(10-j)/2); k+)printf( );if (len%5 = 0)printf(n);return 0;输入 m 行 n 列的二维数组A。其中, m、

17、n 和矩阵元素均由用户从键盘输入。已知m 和n 的值都不超过10。请定义n 行 m 列的另一个数组B,使用指针操作实现将二维数组A 转置为 B,并输出转置后的二维数组B。输入输入包含m + 1 行:第一行是整数m 和 n,两项之间用一个空格隔开(1 = m, n = 10)。第二行到第m + 1 行每行均有n 个整数,相邻两项之间用一个空格隔开。输出输出包含 n 行,是转置后的二维数组 B。每行均有 m 个整数,相邻两项之间用一个空格隔开。输入示例3 21 24 57 8输出示例1 4 72 5 8数据范围输入输出均为int 范围的整数#include #include #define N 1

18、0int main()int m,n,i,j;int *aNN,*bNN;scanf(%d%d,&m,&n);for(i = 0; i m; i+)for(j = 0; j n; j+)scanf(%d,&aij);/ 将矩阵存入数组for(i = 0; i m; i+)for(j = 0; j n; j+)bji=aij;/ 将矩阵转置for(i= 0; i n; i+)for(j = 0; j m; j+)printf(%d ,bij); /输出转置后的矩阵printf(n);return 0;#include #include #include #define N 10void zhih

19、uan (int *a, int *b);int main()int m,n;int i,j;int aNN;scanf( %d %d,&m,&n);memset(a,0,sizeof(a);for (i=0; im; i+)for (j=0; jn; j+)scanf( %d,&aij);for (i=0; in; i+)for (j=i; jm; j+)zhihuan (&aij,&aji);for (i=0; in; i+)for (j=0; jm; j+)printf(%d ,aij);printf(n);return 0;void zhihuan (int *a, int *b)in

20、t p;p = *a;*a = *b;*b = p;输入一行英文,从中找出最长的英文单词(若最长的英文单词有多个,则输出第一个) 。英文单词只包含大写字母和小写字母, 单词由空格隔开。 要求用字符指针实现, 且不能调用字符串库函数。输入输入一行英文,英文单词由空格隔开。已知至少输入一个英文单词,且最后一个英文单词后紧跟回车输入。输出输出最长的英文单词。若最长的英文单词有多个,则输出第一个。输入示例I am a student输出示例student数据范围对于 100%的数据,输入字符串的长度= 1000#include #include #include #define M 30#define

21、 N 10000int changdu (char *m);void main(void)char aN,bNM,*p = &a0;int i,k = 0,j=0,max,len;gets(a);for (; *p!=0; p+)if (*p != )bkj = *p;j+;if (*p = )if (*p != *(p-1)bkj = 0;k+;j = 0;if (*(p-1) != )bkj = 0;k+;max = 0;len = k;for (i=0; ichangdu(bmax)max = i;printf(%sn,bmax);int changdu (char *m)int len

22、 = 1;int i;for (i=0; mi!=0;i+)len +;return len;3.3 整数筛选求和试题描述输入一行字符串,将其中连续的阿拉伯数字视为整数,计算并输出它们的和。要求用字符指针实现,且不能调用字符串库函数。输入输入一行字符串。输出将字符串中连续的阿拉伯数字视为整数,输出整数之和。输入示例whde12fkvf834ddei5sdlm3790wo输出示例4641数据范围对于 100%的数据,输入字符串的长度= 1000#include #include #include #define M 30#define N 10000int shuzi(char *a);void

23、 main(void)char aN,bNM,*p = &a0;int i,k = 0,j=0,sum = 0;gets(a);for (; *p!=0; p+)if (*p = 0 & *p = 0 & *(p-1)= 0 & *(p-1)= 9)bkj = 0;k+;for (i=0;i=0;i-)p = (*(a+i)-0)*t;sum = sum + p;t = t*10;return sum;输入 m n 阶矩阵 A 和 B。编写函数add,完成 A + B 的运算,结果放在二维矩阵C 中。要求把二维矩阵A、 B 和 C以及 m 和 n 作为函数参数。编写函数selectmin ,函

24、数负责找出C 中值最小的元素。要求把二维矩阵C、 m 和 n 作为函数参数。编程实现上述函数,最终要求输出C 和 C 中最小元素的值。注意:不要改变函数名称,注意大小写敏感;注意不允许使用全局变量。输入输入包含2 * m + 1 行:第一行是整数m 和 n( 1 = m, n = 10),两项之间用一个空格隔开。第二行到第m + 1 行每行均有n 个整数,相邻两项之间用一个空格隔开,为二维矩阵的各个项。A第 m + 2 行到第 2 * m + 1 行每行均有 n 个整数,相邻两项之间用一个空格隔开,为二维矩阵 B 的各个项。输出输出 m +1行。前 m 行是二维矩阵C 的元素,相邻两项之间用一

25、个空格隔开。第m + 1行是二维矩阵C 中最小元素的值。输入示例2 31 2 11 1 12 4 01 2 2输出示例3 6 12 3 31数据范围输入输出均为int 范围的整数#include #define N 10int add(int AN,int BN,int m,int n,int CN);int selectmin(int XN,int m,int n);int main()int ANN,BNN,CNN;int i,j,m,n;scanf(%d%d,&m,&n);for(i=0;im;i+)for(j=0;jn;j+)scanf(%d,&Aij);/ 将矩阵 A 存入数组for

26、(i=0;im;i+)for(j=0;jn;j+)scanf(%d,&Bij);/ 将矩阵 B 存入数组add(A,B,m,n,C);printf(%d,selectmin(C,m,n);return 0;int add(int AN,int BN,int m,int n,int CN)int i,j;for(i=0;im;i+)for(j=0;jn;j+)Cij=Aij+Bij;printf(%d ,Cij);printf(n);return 0;int selectmin(int XN,int m,int n)int aN*N,i,j,k=0,min;for(i=0; im; i+)for

27、(j=0; jn; j+)ak=Xij;k+;for(i=0;ik-1;i+)for(j=i;jaj)min=aj;aj=ai;ai=min;return a0;试题描述1)编写 cut 函数,函数负责从传入的字符串中截取指定范围 (例如:从第 2 个字符开始,到第 5 个字符结束的部分)的内容。 要求将源字符串、截取结果字符串、截取范围作为函数参数。2)编写 connect 函数连接两个字符串,连接的结果存入第一个字符串。要求将两个字符串作为函数参数。3)在 main 函数中输入两行字符串给str1 和 str2 ,然后输入4 个整数,分别代表对str1和 str2 字符串截取时的截取范围。

28、 调用上面的 cut 函数将字符串 str1 和 str2 的截取结果放在字符串 str3 和 str4 中。再调用 connect 函数连接 str3 和 str4 ,最后输入连接结果 str3。注意:不要改变函数名称,注意大小写敏感;注意不允许使用全局变量;注意不可以使用 strlen 、 strcat 函数。输入输入包含三行:第一行是字符串str1, 1 = 字符串长度= 20。第一行是字符串str2, 1 = 字符串长度= 20。第三行有4 个整数,分别代表str1 的截取起始位置、结束位置和str2 的截取起始位置、结束位置,相邻两项之间用一个空格隔开。位置均从1 开始,且位置值为有

29、效的数值。输出输出对字符串str1 和 str2 分别进行截取后再拼接的结果。输入示例An apple a daydoctor away4916输出示例apple doctor数据范围输入 int 范围的整数和字符串#include #include #include #define N 60void cut (char *a,char *b,int m,int n);void connect (char *a,char *b);int main()char str1N,str2N,str3N,str4N;int a,b,m,n;gets(str1);gets(str2);scanf( %d

30、%d %d %d,&a,&b,&m,&n);cut (str1,str3,a,b);cut (str2,str4,m,n);connect(str3,str4);printf(%s,str3);return 0;void cut (char *a,char *b,int m,int n)int i;for (i=m-1;in;i+)*b = *(a + i);b+;*b = 0;void connect (char *a,char *b)for (;*a != 0;a+);for (;*b != 0;b+)*a = *b;a+;*a = 0;试题描述1)在 main 函数输入班级学生数和每个学

31、生信息(学号、数学成绩、英语成绩、计算机成绩),将每个学生信息存储在一个结构体中,结构体包括学号、数学成绩、英语成绩、计算机成绩、平均成绩五部分。调用下面ave 函数计算每个学生的平均成绩,find 函数查找平均成绩最高的学生,然后调用print 函数输出该学生信息。2) ave 函数计算并返回某个学生的平均成绩。要求将结构体作为函数参数。3)find 函数查找并返回平均成绩最高的学生在结构体数组中的位置下标。假定平均成绩最高的同学只有一个。要求将结构体数组和学生数量作为函数参数。4) print函数按表格的形式输出某个学生的全部信息,内容全部左对齐,表头为“Math.Eng.Comp.Ave

32、.”,输出要求每项占8 位。No.注意:不要改变函数名称,注意大小写敏感;注意不允许使用全局变量。输入输入包含n + 1 行:第一行是整数n,代表学生数量,8 = n = 20。第二行到第n + 1 行,每行均依照“学号【空格】数学成绩【空格】英语成绩【空格】计算机成绩【回车】 ”的格式输入。已知学号长度最大为7,成绩为0 到 100 之间的整数。输出依题意输出平均成绩最高的学生的信息。输出要求每项占必须保留 2 位有效数字(四舍五入) ,不足补零。8 位,平均成绩要求小数点后输入示例8S131313 64 72 73S131315 82 84 86S131316 84 61 71S13131

33、4 73 82 68S121209 45 60 50S131317 84 81 80S131318 85 88 83S131319 85 88 81输出示例No.Math.S131318 85Eng.88Comp.83Ave.85.33数据范围输入 int 范围的整数和字符串#include #include typedef struct stuchar studentID20;int scoreMath;int scoreEnglish;int scoreComputer;float average; STUDENT;float ave(STUDENT stu,int m);int find

34、(STUDENT stu,int n);void print(STUDENT stu,int k);int main()STUDENT stu20;int n,m,k;scanf(%d,&n);for(m=0; mn; m+)scanf(%s,stum.studentID);scanf(%d,&stum.scoreMath);scanf(%d,&stum.scoreEnglish);scanf(%d,&stum.scoreComputer);stum.average=ave(stu, m);k= find(stu,n);print(stu,k);return 0;float ave(STUDE

35、NT stu,int m)float AveScore;int sum;sum=stum.scoreMath+stum.scoreEnglish+stum.scoreComputer;AveScore=sum/3.0;return AveScore;int find(STUDENT stu,int n)int i,j,h=0;for(i=0; ih)h=stui.average;j=i;return j;void print(STUDENT stu,int k)printf(No.Math.Eng.Comp.Ave.n);printf(%-8s%-8d%-8d%-8d%-.2f,stuk.studentID,stuk.scoreMath,stuk.scoreEnglish,stuk.sco reComputer,stuk.average

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论