Word版可编辑-程序设计精心整理.docx_第1页
Word版可编辑-程序设计精心整理.docx_第2页
Word版可编辑-程序设计精心整理.docx_第3页
Word版可编辑-程序设计精心整理.docx_第4页
Word版可编辑-程序设计精心整理.docx_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

输入一行以空格分隔的数,把它们存入数组,用逗号分隔的方式输出,并统计数的个数。输入 输入一行以空格分隔的数。已知至少输入一个数,至多输入二十个数,且最后一个数后紧跟回车输入。输出 输出两行。 第一行输出这些数,相邻两数之间用一个逗号隔开。 第二行输出数的个数。输入示例 20 37.5 43 5 87.0输出示例 20,37.5,43,5,87.0 5数据范围 输入输出均为float范围的浮点数#include #include #define N 400void main() char aN; /定义数组 int i,j=1; gets(a); /将输入的数存入数组 for(i=0;ai!=0;i+) /执行循环到输入的数字末尾结束 if(ai= ) ai=,; printf(%c,ai); /将空格用逗号替换后输出 j+; /记录替换次数 else printf(%c,ai); printf(n); printf(%d,j); /替换次数加一即是所求数的个数按照“学号【空格】姓名【空格】性别【空格】年龄【回车】”的格式输入若干学生信息,将他们存储在结构体数组中(即每一个学生的信息存储在一个结构体中),输入以“#”结束。统计学生人数,并按行输出每条学生信息。输入 输入若干行。每行均依照“学号【空格】姓名【空格】性别【空格】年龄【回车】”的格式输入,输入以“#”结束。 已知最多输入20个学生信息,学号长度最大为12,姓名长度最大为10,性别为“Male”或“Female”,年龄为整数。输出 输出若干行。第一行输出学生人数。从第二行开始,每行为一个学生信息,相邻两项之间用一个逗号隔开。输入示例 郭凤山 Male 19 车润泽 Male 18 孟超 Female 19 #输出示例 3 郭凤山,Male,19 车润泽,Male,18 孟超,Female,19数据范围 输入为整数和字符串#include#includetypedef struct stu /定义结构体 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.sex,stui.age); return 0;输入一行以制表符分隔的整数,把它们存入数组。统计数的个数,并用逗号分隔的方式输出。输入 输入一行以制表符分隔的整数。已知至少输入一个数,至多输入二十个数,且最后一个数后紧跟回车输入。输出 输出两行。第一行输出整数个数。第二行输出这些整数,相邻两数之间用一个逗号隔开。输入示例 2【Tab】3【Tab】4【Tab】5【Tab】6【回车】输出示例 5 2,3,4,5,6数据范围 输入为int范围的整数#include#include#define N 400int main() int i,j=1; char numN; /定义数组 gets(num); /将输入的数存入数组 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+) /接着输入*号 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; 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,8,3289,943,495,34134,343,209,47,2,7293,29,2732,843,392,24输出示例 100 21 3950 7 8 3289 943 495 34134 343 209 47 2 7293 29 2732 843 392 24数据范围 输入为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) /每行输出五个整数后换行 printf(%-5dn, numm); /以每个整数占6位且左对齐的方式输出 else printf(%-5d , numm); return 0;输入一行以逗号分隔的整数,以回车结尾。以每行5个,适当数量的空格分隔,右对齐的方式输出它们。已知输入的整数最多不超过5位。 提示:可以在输出时使用格式控制参数控制每个整数占6位且右对齐。输入 输入一行以逗号分隔的整数。已知至少输入一个数,至多输入二十个数,且最后一个数后紧跟回车输入。输出 输出若干行。每行最多输出5个整数,每个整数之前放置若干个空格,使得这些数右对齐。输入示例 100,21,3950,7,8,3289,943,495,34134,343,209,47,2,7293,29,2732,843,392,24输出示例 100 21 3950 7 8 3289 943 495 34134 343 209 47 2 7293 29 2732 843 392 24数据范围 输入为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);return 0;输入一行以空格分隔的英文单词,以回车结尾。以每行5个,适当数量的空格分隔,左对齐的方式输出它们。已知输入的单词长度最多不超过9位。 提示:可以在输出时使用格式控制参数控制每个单词占10位且左对齐。输入 输入一行以空格分隔的英文单词。已知至少输入一个英文单词,至多输入二十个英文单词,且最后一个英文单词后紧跟回车输入。输出 输出若干行。每行最多输出5个英文单词,相邻两项之间用若干个空格隔开,使得这些英文单词左对齐。输入示例 Machine learning is the term that refers to learning patterns in the data In other words输出示例 Machine learning is the term that refers to learning patterns in the data In other words数据范围 输入为字符串#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; /将字母存入数组b j+; if (ai = ) /如果输入的是空格 for (k=j;k10;k+) /调整数组b的格式使其一共占10个字节 bk = ; b10 = 0; printf(%s,b); j = 0; len+; if (len%5 = 0) /每五个一换行 printf(n); return 0;输入一行以空格分隔的英文单词,以回车结尾。以每行5个,适当数量的空格分隔,居中对齐的方式输出它们。已知输入的单词长度最多不超过9位,输出时每个单词占10位。输入 输入一行以空格分隔的英文单词。已知至少输入一个英文单词,至多输入二十个英文单词,且最后一个英文单词后紧跟回车输入。输出 输出若干行。每行最多输出5个英文单词,每个英文单词之前放置若干个空格,使得这些英文单词居中对齐。输入示例 Machine learning is the term that refers to learning patterns in the data In other words输出示例 Machine learning is the term that refers to learning patterns in the data In other words 数据范围 输入为字符串#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 = 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、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 2 1 2 4 5 7 8输出示例 1 4 7 2 5 8数据范围 输入输出均为int范围的整数#include #include #define N 10int 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 zhihuan (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) int p; p = *a; *a = *b; *b = p;输入一行英文,从中找出最长的英文单词(若最长的英文单词有多个,则输出第一个)。英文单词只包含大写字母和小写字母,单词由空格隔开。要求用字符指针实现,且不能调用字符串库函数。输入 输入一行英文,英文单词由空格隔开。已知至少输入一个英文单词,且最后一个英文单词后紧跟回车输入。输出 输出最长的英文单词。若最长的英文单词有多个,则输出第一个。输入示例 I am a student输出示例 student数据范围 对于100%的数据,输入字符串的长度 = 1000#include #include #include #define M 30#define 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 = 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 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,函数负责找出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的元素,相邻两项之间用一个空格隔开。第m + 1行是二维矩阵C中最小元素的值。输入示例 2 3 1 2 1 1 1 1 2 4 0 1 2 2输出示例 3 6 1 2 3 3 1数据范围 输入输出均为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(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(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字符串截取时的截取范围。调用上面的cut函数将字符串str1和str2的截取结果放在字符串str3和str4中。再调用connect函数连接str3和str4,最后输入连接结果str3。 注意:不要改变函数名称,注意大小写敏感;注意不允许使用全局变量;注意不可以使用strlen、strcat函数。输入 输入包含三行: 第一行是字符串str1,1 = 字符串长度 = 20。 第一行是字符串str2,1 = 字符串长度 = 20。 第三行有4个整数,分别代表str1的截取起始位置、结束位置和str2的截取起始位置、结束位置,相邻两项之间用一个空格隔开。位置均从1开始,且位置值为有效的数值。输出 输出对字符串str1和str2分别进行截取后再拼接的结果。输入示例 An apple a day doctor away 4 9 1 6输出示例 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 %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函数输入班级学生数和每个学生信息(学号、数学成绩、英语成绩、计算机成绩),将每个学生信息存储在一个结构体中,结构体包括学号、数学成绩、英语成绩、计算机成绩、平均成绩五部分。调用下面ave函数计算每个学生的平均成绩,find函数查找平均成绩最高的学生,然后调用print函数输出该学生信息。 2)ave函数计算并返回某个学生的平均成绩。要求将结构体作为函数参数。 3)find函数查找并返回平均成绩最高的学生在结构体数组中的位置下标。假定平均成绩最高的同学只有一个。要求将结构体数组和学生数量作为函数参数。 4)print函数按表格的形式输出某个学生的全部信息,内容全部左对齐,表头为“No. Math. Eng. Comp. Ave. ”,输出要求每项占8位。 注意:不要改变函数名称,注意大小写敏感;注意不允许使用全局变量。输入 输入包含n + 1行: 第一行是整数n,代表学生数量,8 = n = 20。 第二行到第n + 1行,每行均依照“学号【空格】数学成绩【空格】英语成绩【空格】计算机成绩【回车】”的格式输入。已知学号长度最大为7,成绩为0到100之间的整数。输出 依题意输出平均成绩最高的学生的信息。输出要求每项占8位,平均成绩要求小数点后必须保留2位有效数字(四舍五入),不足补零。输入示例 8 S131313 64 72 73 S131315 82 84 86 S131316 84 61 71 S131314 73 82 68 S121209 45 60 50 S131317 84 81 80 S131318 85 88 83 S131319 85 88 81输出示例 No. Math. Eng. Comp. Ave. S131318 85 88 83 85.33 数据范围 输入int范围的整数和字符串#include #include typedef struct stu char studentID20; int scoreMath; int scoreEnglish; int scoreComputer; float average; STUDENT;float ave(STUDENT stu,int m);int find(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.av

温馨提示

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

评论

0/150

提交评论