万维考试系统-C语言题库-含题目-程序设计题导出-113道.pdf
万维考试系统万维考试系统-C-C 语言题库语言题库-含题含题目目-程序设计题导出程序设计题导出-113-113 道道一、程序设计一、程序设计共共 113113 题题(共计(共计 11301130 分)分)第第 1 1 题题(10.010.0 分)分)题号题号:390:390/*-/*-【程序设计】【程序设计】-功能:编写函数求功能:编写函数求 11001100 中奇数的平方和。中奇数的平方和。结果为结果为 166650.000000166650.000000。-*/-*/#include#include void wwjt();void wwjt();float sum(int n)float sum(int n)/*Program*/*Program*/*End */*End */答案:答案:-float s=0;float s=0;int i;int i;for(i=1;i=n;i=i+2)for(i=1;i=n;i=i+2)s=s+i*i;s=s+i*i;return(s);return(s);-第第 2 2 题题(10.010.0 分)分)题号题号:320:320/*-/*-【程序设计】【程序设计】-功能:在键盘上输入一个功能:在键盘上输入一个 3 3 行行 3 3 列矩阵的各个元素的值(值列矩阵的各个元素的值(值为整数)为整数),然后输出主对角线元素的积,然后输出主对角线元素的积,并在并在 fun()fun()函数中输出。函数中输出。-*/-*/#include#include void wwjt();void wwjt();main()main()int i,j,s,a33;int i,j,s,a33;for(i=0;i3;i+)for(i=0;i3;i+)for(j=0;j3;j+)for(j=0;j3;j+)scanf(%d,&aij);scanf(%d,&aij);int m;int m;printf(Enter m:);printf(Enter m:);scanf(%d,&m);scanf(%d,&m);printf(nThe result is%dn,fun(m);printf(nThe result is%dn,fun(m);wwjt();wwjt();答案:答案:-int sum,i;int sum,i;sum=0;sum=0;for(i=2;i=n;i=i+2)for(i=2;i=n;i=i+2)sum=sum+i*i;sum=sum+i*i;return(sum);return(sum);-第第 4 4 题题(10.010.0 分)分)题号题号:345:345/*-/*-【程序设计】【程序设计】-功能:将两个两位数的正整数功能:将两个两位数的正整数 a a、b b 合并形成一个整数放在合并形成一个整数放在 c c中。合并的方式是:将中。合并的方式是:将 a a 数的十位和个位数依次放在数的十位和个位数依次放在 c c 数的千位和十位上,数的千位和十位上,b b 数的十位和个位数依次放在数的十位和个位数依次放在 c c 数的个位和百位上。数的个位和百位上。例如:当例如:当 a a4545,b=12b=12。调用该函数后,。调用该函数后,c=4251c=4251。-*/-*/#include#include void wwjt();void wwjt();void fun(int a,int b,long*c)void fun(int a,int b,long*c)/*Program*/*Program*/*End */*End */main()main()int a,b;int a,b;long c;long c;printf(input a,b:);printf(input a,b:);scanf(%d%d,&a,&b);scanf(%d%d,&a,&b);fun(a,b,&c);fun(a,b,&c);printf(The result is:%ldn,c);printf(The result is:%ldn,c);wwjt();wwjt();答案:答案:-*c=a/10*1000+a%10*10+b/10+b%10*100;*c=a/10*1000+a%10*10+b/10+b%10*100;-第第 5 5 题题(10.010.0 分)分)题号题号:366:366/*-/*-【程序设计】【程序设计】功能:求一组数中大于平均值的数的个数。功能:求一组数中大于平均值的数的个数。例如:给定的一组数为例如:给定的一组数为 1,3,6,9,4,23,35,67,12,881,3,6,9,4,23,35,67,12,88 时,函时,函数值为数值为 3 3。-*/-*/#include#include void wwjt();void wwjt();int fun(int a,int n)int fun(int a,int n)/*Program*/*Program*/*End */*End */main()main()int a10=1,3,6,9,4,23,35,67,12,88;int a10=1,3,6,9,4,23,35,67,12,88;int y;int y;y=fun(a,10);y=fun(a,10);printf(y=%dn,y);printf(y=%dn,y);wwjt();wwjt();答案:答案:-int i,k=0;int i,k=0;float s=0,ave;float s=0,ave;for(i=0;in;i+)for(i=0;in;i+)s+=ai;s+=ai;ave=s/n;ave=s/n;printf(%f ,ave);printf(%f ,ave);for(i=0;in;i+)for(i=0;iave)k+;if(aiave)k+;return k;return k;-第第 6 6 题题(10.010.0 分)分)题号题号:355:355/*-/*-【程序设计】【程序设计】-功能:对长度为功能:对长度为 8 8 个字符的字符串,将个字符的字符串,将 8 8 个字符按降序排列。个字符按降序排列。例如:原来的字符串为例如:原来的字符串为 CEAedcab,CEAedcab,排序后输出为排序后输出为 edcbaECAedcbaECA。-*/-*/#include#include#include#include#include#includevoid wwjt();void wwjt();void fun(char*s,int num)void fun(char*s,int num)/*Program*/*Program*/*End */*End */main()main()char s10;char s10;printf(printf(输入输入 8 8 个字符的字符串个字符的字符串:);:);gets(s);gets(s);fun(s,8);fun(s,8);printf(n%s,s);printf(n%s,s);wwjt();wwjt();答案:答案:-int i,j;int i,j;char t;char t;for(i=0;inum;i+)for(i=0;inum;i+)for(j=i+1;jnum;j+)for(j=i+1;jnum;j+)if(sisj)if(sisj)t=si;si=sj;sj=t;t=si;si=sj;sj=t;-第第 7 7 题题(10.010.0 分)分)题号题号:44:44/*-/*-【程序设计】【程序设计】-功能:求出二维数组周边元素之和,作为函数值返回。二功能:求出二维数组周边元素之和,作为函数值返回。二维数组的值在主函数中赋予。维数组的值在主函数中赋予。-*/-*/#define M 4#define M 4#define N 5#define N 5#include#include void wwjt();void wwjt();int fun(int aMN)int fun(int aMN)/*Program*/*Program*/*End */*End */main()main()int aMN=1,3,5,7,9,2,4,6,8,10,2,3,4,5,6,4,5,6,7,8;int aMN=1,3,5,7,9,2,4,6,8,10,2,3,4,5,6,4,5,6,7,8;int y;int y;y=fun(a);y=fun(a);printf(s=%dn,y);printf(s=%dn,y);wwjt();wwjt();答案:答案:-int s=0;int s=0;int i,j;int i,j;for(i=0;iM;i+)for(i=0;iM;i+)s=s+ai0+aiN-1;s=s+ai0+aiN-1;for(j=1;jN-1;j+)for(j=1;jN-1;j+)s=s+a0j+aM-1j;s=s+a0j+aM-1j;return s;return s;-第第 8 8 题题(10.010.0 分)分)题号题号:339:339/*-/*-【程序设计】【程序设计】-功能:判断整数功能:判断整数 x x 是否是同构数。若是同构数,函数返回是否是同构数。若是同构数,函数返回 1 1;否则返回否则返回 0 0。x x 的值由主函数从键盘读入,要求不大的值由主函数从键盘读入,要求不大于于 100100。说明:所谓“同构数”是指这样的数,这个数出现在它的说明:所谓“同构数”是指这样的数,这个数出现在它的平方数的右边。平方数的右边。例如:输入整数例如:输入整数 5 5,5 5 的平方数是的平方数是 2525,5 5 是是 2525 中右侧的数,所中右侧的数,所以以 5 5 是同构数。是同构数。-*/-*/#include#include void wwjt();void wwjt();int fun(int x)int fun(int x)/*Program*/*Program*/*End */*End */main()main()int x,y;int x,y;printf(nPlease enter a integer numbers:);printf(nPlease enter a integer numbers:);scanf(%d,&x);scanf(%d,&x);if(x100)if(x100)printf(data error!n);printf(data error!n);exit(0);exit(0);y=fun(x);y=fun(x);if(y)if(y)printf(%d YESn,x);printf(%d YESn,x);else else printf(%d NOn,x);printf(%d NOn,x);wwjt();wwjt();答案:答案:-int k;int k;k=x*x;k=x*x;if(k%10=x)|(k%100=x)if(k%10=x)|(k%100=x)return 1;return 1;else else return 0;return 0;-第第 9 9 题题(10.010.0 分)分)题号题号:383:383/*-/*-【程序设计】【程序设计】-功能:用函数实现字符串的复制功能:用函数实现字符串的复制,不允许用不允许用 strcpy()strcpy()函数。函数。-*/-*/#include#include void wwjt();void wwjt();void copy(char str1,char str2)void copy(char str1,char str2)/*Program*/*Program*/*End */*End */main()main()void copy();void copy();char c140,c240;char c140,c240;gets(c1);gets(c1);copy(c1,c2);copy(c1,c2);puts(c2);puts(c2);wwjt();wwjt();答案:答案:-int i;int i;for(i=0;str1i!=0;i+)for(i=0;str1i!=0;i+)str2i=str1i;str2i=str1i;str2i=0;str2i=0;-第第 1010 题题(10.010.0 分)分)题号题号:310:310/*-/*-【程序设计】【程序设计】-功能:计算并输出给定整数功能:计算并输出给定整数 n n 的所有因子之和(不包括的所有因子之和(不包括 1 1 与与自身)自身)。注意:注意:n n 的值不大于的值不大于 10001000。例如:例如:n n 的值为的值为 855855 时,应输出时,应输出 704704。-*/-*/#include#include void wwjt();void wwjt();int fun(int n)int fun(int n)/*Program*/*Program*/*End */*End */main()main()printf(s=%dn,fun(855);printf(s=%dn,fun(855);wwjt();wwjt();答案:答案:-int s=0,i;int s=0,i;for(i=2;in;i+)for(i=2;in;i+)if(n%i=0)s=s+i;if(n%i=0)s=s+i;return s;return s;-第第 1111 题题(10.010.0 分)分)题号题号:354:354/*-/*-【程序设计】【程序设计】-功能:求小于功能:求小于 limlim 的所有素数并放在的所有素数并放在 aaaa 数组中,该函数返回数组中,该函数返回所求出素数的个数。所求出素数的个数。-*/-*/#include#include#include#include#define MAX 100#define MAX 100void wwjt();void wwjt();int fun(int lim,int aaMAX)int fun(int lim,int aaMAX)/*Program*/*Program*/*End */*End */main()main()int limit,i,sum;int limit,i,sum;int aaMAX;int aaMAX;printf(Please input ainteger:);printf(Please input ainteger:);scanf(%d,&limit);scanf(%d,&limit);sum=fun(limit,aa);sum=fun(limit,aa);for(i=0;isum;i+)for(i=0;isum;i+)if(i%10=0&i!=0)printf(n);if(i%10=0&i!=0)printf(n);printf(%5d,aai);printf(%5d,aai);wwjt();wwjt();答案:答案:-int n=0;int n=0;int i,j;int i,j;for(i=2;i=lim;i+)for(i=2;i=lim;i+)for(j=2;ji;j+)for(j=2;ji;j+)if(i%j=0)break;if(i%j=0)break;if(j=i)aan+=i;if(j=i)aan+=i;return n;return n;-第第 1212 题题(10.010.0 分)分)题号题号:341:341/*-/*-【程序设计】【程序设计】-功能:删除所有值为功能:删除所有值为 y y 的元素。数组元素中的值和的元素。数组元素中的值和 y y 的值由的值由主函数通过键盘输入。主函数通过键盘输入。-*/-*/#include#include#include#include#include#include#define M 20#define M 20void wwjt();void wwjt();void fun(int bb,int*n,int y)void fun(int bb,int*n,int y)/*Program*/*Program*/*End */*End */main()main()int aaM,n,y,k;int aaM,n,y,k;printf(nPlease enter n:);scanf(%d,&n);printf(nPlease enter n:);scanf(%d,&n);printf(nEnter%d positive number:n,n);printf(nEnter%d positive number:n,n);for(k=0;kn;k+)scanf(%d,&aak);for(k=0;kn;k+)scanf(%d,&aak);printf(The original data is:n);printf(The original data is:n);for(k=0;kn;k+)printf(%5d,aak);for(k=0;kn;k+)printf(%5d,aak);printf(nEnter a number to deletede:);scanf(%d,&y);printf(nEnter a number to deletede:);scanf(%d,&y);fun(aa,&n,y);fun(aa,&n,y);printf(The data after deleted%d:n,y);printf(The data after deleted%d:n,y);for(k=0;kn;k+)printf(%4d,aak);for(k=0;kn;k+)printf(%4d,aak);printf(n);printf(n);wwjt();wwjt();答案:答案:-int i,j;int i,j;for(i=0;i*n;)for(i=0;i*n;)if(bbi=y)if(bbi=y)for(j=i;j*n;j+)for(j=i;j*n;j+)bbj=bbj+1;bbj=bbj+1;*n=*n-1;*n=*n-1;else else i+;i+;-第第 1313 题题(10.010.0 分)分)题号题号:317:317/*-/*-【程序设计】【程序设计】-功能:求出功能:求出 NMNM 整型数组的最大元素及其所在的行坐标及整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面列坐标(如果最大元素不唯一,选择位置在最前面的一个)的一个)。例如:输入的数组为例如:输入的数组为:1 2 3 1 2 3 4 15 6 4 15 6 12 18 9 12 18 9 10 11 2 10 11 2求出的最大数为求出的最大数为 18,18,行坐标为行坐标为 2 2,列坐标为,列坐标为 1 1。-*/-*/#define N 4#define N 4#define M 3#define M 3#include#include void wwjt();void wwjt();int Row,Col;int Row,Col;int fun(int arrayNM)int fun(int arrayNM)/*Program*/*Program*/*End */*End */main()main()int aNM,i,j,max;int aNM,i,j,max;printf(input a array:);printf(input a array:);for(i=0;iN;i+)for(i=0;iN;i+)for(j=0;jM;j+)for(j=0;jM;j+)scanf(%d,&aij);scanf(%d,&aij);for(i=0;iN;i+)for(i=0;iN;i+)for(j=0;jM;j+)for(j=0;jM;j+)printf(%d,aij);printf(%d,aij);printf(n);printf(n);max=fun(a);max=fun(a);printf(max=%d,row=%d,col=%d,max,Row,Col);printf(max=%d,row=%d,col=%d,max,Row,Col);wwjt();wwjt();答案:答案:-int max,i,j;int max,i,j;max=array 00;max=array 00;Row=0;Row=0;Col=0;Col=0;for(i=0;iN;i+)for(i=0;iN;i+)for(j=0;jM;j+)for(j=0;jM;j+)if(maxarray ij)if(maxarray ij)max=array ij;max=array ij;Row=i;Row=i;Col=j;Col=j;return(max);return(max);-第第 1414 题题(10.010.0 分)分)题号题号:392:392/*-/*-【程序设计】【程序设计】-功能:求一批数中最大值和最小值的积。功能:求一批数中最大值和最小值的积。-*/-*/#define N 30#define N 30#include stdlib.h#include stdlib.h#include#include void wwjt();void wwjt();int max_min(int a,int n)int max_min(int a,int n)/*Program*/*Program*/*End */*End */main()main()int aN,i,k;int aN,i,k;for(i=0;iN;i+)for(i=0;iN;i+)ai=random(51)+10;ai=random(51)+10;for(i=0;iN;i+)for(i=0;iN;i+)printf(%5d,ai);printf(%5d,ai);if(i+1)%5=0)printf(n);if(i+1)%5=0)printf(n);k=max_min(a,N);k=max_min(a,N);printf(the result is:%dn,k);printf(the result is:%dn,k);wwjt();wwjt();答案:答案:-int i,max,min;int i,max,min;max=min=a0;max=min=a0;for(i=1;in;i+)for(i=1;imax)max=ai;if(aimax)max=ai;else if(aimin)min=ai;else if(aimin)min=ai;return(max*min);return(max*min);-第第 1515 题题(10.010.0 分)分)题号题号:501:501#include#include/*-/*-【程序设计】【程序设计】-题目:从键盘输入一个大写字母,要求改用小写字母输出。题目:从键盘输入一个大写字母,要求改用小写字母输出。-*/-*/#include#include void wwjt();void wwjt();char fun(char c)char fun(char c)/*Program*/*Program*/*End */*End */void main()void main()char c1,c2;char c1,c2;printf(Please input a char:);printf(Please input a char:);c1=getchar();c1=getchar();printf(%c,%dn,c1,c1);printf(%c,%dn,c1,c1);c2=fun(c1);c2=fun(c1);printf(%c,%dn,c2,c2);printf(%c,%dn,c2,c2);wwjt();wwjt();fclose(IN);fclose(IN);fclose(OUT);fclose(OUT);答案:答案:c=c+32;c=c+32;return c;return c;第第 1616 题题(10.010.0 分)分)题号题号:502:502题目:用题目:用 whilewhile 语句求语句求 1 1100100 的累计和。的累计和。#include#include/*-/*-void wwjt();void wwjt();int fun(int n)int fun(int n)/*Program*/*Program*/*End */*End */void main()void main()int sum=0;int sum=0;sum=fun(100);sum=fun(100);printf(sum=%dn,sum);printf(sum=%dn,sum);wwjt();wwjt();答案:答案:int i=1,sum=0;int i=1,sum=0;while(i=n)while(i=n)sum=sum+i;sum=sum+i;i+;i+;return sum;return sum;第第 1717 题题(10.010.0 分)分)题号题号:409:409/*-/*-【程序设计】【程序设计】-题目:输入华氏温度求摄氏温度。转换公式为题目:输入华氏温度求摄氏温度。转换公式为 c=5/9 c=5/9(f-32f-32),输出结果取两位小数。输出结果取两位小数。-*/-*/#include#include void wwjt();void wwjt();double fun(double m)double fun(double m)/*Program*/*Program*/*End */*End */void main()void main()double c,f;double c,f;printf(printf(请输入一个华氏温度请输入一个华氏温度:);:);scanf(%f,&f);scanf(%f,&f);c=fun(f);c=fun(f);printf(printf(摄氏温度为摄氏温度为:%5.2fn,c);:%5.2fn,c);wwjt();wwjt();答案:答案:float n;float n;n=(5.0/9.0)*(m-32);n=(5.0/9.0)*(m-32);return n;return n;第第 1818 题题(10.010.0 分)分)题号题号:29:29/*-/*-【程序设计】【程序设计】-功能:对任意输入的功能:对任意输入的 x x,用下式计算并输出,用下式计算并输出 y y 的值。的值。5 x10 5 x10 -5 x10-*/-*/#include#includevoid wwjt();void wwjt();int fun(int n)int fun(int n)/*Program*/*Program*/*End */*End */void main()void main()int x,y;int x,y;printf(enter x:);printf(enter x:);scanf(%d,&x);scanf(%d,&x);y=fun(x);y=fun(x);printf(x=%d,y=%dn,x,y);printf(x=%d,y=%dn,x,y);wwjt();wwjt();答案:答案:int m;int m;if(n10)if(n=10)if(n=10)if(n10)if(n10)m=-5;m=-5;else m=0;else m=0;else m=5;else m=5;return m;return m;第第 1919 题题(10.010.0 分)分)题号题号:382:382/*-/*-【程序设计】【程序设计】-功能:给定功能:给定 n n 个数据个数据,求最小值出现的位置(如果最小值求最小值出现的位置(如果最小值出现多次出现多次,求出第一次出现的位置即可)求出第一次出现的位置即可)。-*/-*/#include#include void wwjt();void wwjt();int station(int s,int n)int station(int s,int n)/*Program*/*Program*/*End */*End */main()main()int a100,n,i,t;int a100,n,i,t;scanf(%d,&n);scanf(%d,&n);for(i=0;in;i+)for(i=0;in;i+)scanf(%d,&ai);scanf(%d,&ai);t=station(a,n);t=station(a,n);printf(the min_value position is:%dn,t);printf(the min_value position is:%dn,t);wwjt();wwjt();答案:答案:-int i,k;int i,k;k=0;k=0;for(i=1;in;i+)for(i=1;in;i+)if(sisk)k=i;if(sisk)k=i;return(k);return(k);-第第 2020 题题(10.010.0 分)分)题号题号:367:367/*-/*-【程序设计】【程序设计】-功能:找出一批正整数中的最大的偶数。功能:找出一批正整数中的最大的偶数。-*/-*/#include#include void wwjt();void wwjt();int fun(int a,int n)int fun(int a,int n)/*Program*/*Program*/*End */*End */main()main()int a=1,2,9,24,35,18,k;int a=1,2,9,24,35,18,k;k=fun(a,6);k=fun(a,6);printf(max=%dn,k);printf(max=%dn,k);wwjt();wwjt();答案:答案:-int i,amax=-1;int i,amax=-1;for(i=0;in;i+)for(i=0;iamax)amax=ai;if(aiamax)amax=ai;return amax;return amax;-第第 2121 题题(10.010.0 分)分)题号题号:384:384/*-/*-【程序设计】【程序设计】-功能:产生功能:产生 2020 个个30,12030,120上的随机整数放入二维数组上的随机整数放入二维数组 a54a54中,求每行元素的和。中,求每行元素的和。-*/-*/#include stdlib.h#include stdlib.h#include#include void wwjt();void wwjt();void row_sum(int a54,int b5)void row_sum(int a54,int b5)/*Program*/*Program*/*End */*End */main()main()void row_sum();void row_sum();int a54,b5,i,j;int a54,b5,i,j;for(i=0;i5;i+)for(i=0;i5;i+)for(j=0;j4;j+)for(j=0;j4;j+)aij=random(120-30+1)+30;aij=random(120-30+1)+30;for(i=0;i5;i+)for(i=0;i5;i+)for(j=0;j4;j+)for(j=0;j4;j+)printf(%5d,aij);printf(%5d,aij);printf(n);printf(n);row_sum(a,b);row_sum(a,b);for(i=0;i5;i+)for(i=0;i5;i+)printf(%6d,bi);printf(%6d,bi);printf(n);printf(n);wwjt();wwjt();答案:答案:-int i,j;int i,j;for(i=0;i5;i+)for(i=0;i5;i+)bi=0;bi=0;for(j=0;j4;j+)for(j=0;j4;j+)bi=bi+aij;bi=bi+aij;-第第 2222 题题(10.010.0 分)分)题号题号:334:334/*-/*-【程序设计】【程序设计】-功能:求给定正整数功能:求给定正整数 n n 以内的素数之积。以内的素数之积。(n28n28)-*/-*/#include#include#includeconio.h#includeconio.hvoid wwjt();void wwjt();long fun(int n)long fun(int n)/*Program*/*Program*/*End */*End */main()main()int m;int m;printf(Enter m:);printf(Enter m:);scanf(%d,&m);scanf(%d,&m);printf(nThe result is%ldn,fun(m);printf(nThe result is%ldn,fun(m);wwjt();wwjt();答案:答案:-long i,k;long i,k;long s=1;long s=1;for(i=2;i=n;i+)for(i=2;i=n;i+)for(k=2;ki;k+)for(k=2;ki;k+)if(i%k=0)break;if(i%k=0)break;if(k=i)s=s*i;if(k=i)s=s*i;return s;return s;第第 2323 题题(10.010.0 分)分)题号题号:363:363/*-/*-【程序设计】【程序设计】-功能:求一个给定字符串中的字母的个数。功能:求一个给定字符串中的字母的个数。-*/-*/#include#include void wwjt();void wwjt();int fun(char s)int fun(char s)/*Program*/*Program*/*End */*End */main()main()char str=Best wishes for you!;char str=Best wishes for you!;int k;int k;k=fun(str);k=fun(str);printf(k=%dn,k);printf(k=%dn,k);wwjt();wwjt();答案:答案:-int i,k=0;int i,k=0;for(i=0;si!=0;i+)for(i=0;si!=0;i+)if(si=a&si=A&si=a&si=A&si=Z)k+;k+;return k;return k;-第第 2424 题题(10.010.0 分)分)题号题号:361:361/*-/*-【程序设计】【程序设计】-功能:编写程序功能:编写程序,求矩阵(求矩阵(3 3 行行 3 3 列)与列)与 2 2 的乘积的乘积例如:输入下面的矩阵例如:输入下面的矩阵:100 200 300 100 200 300 400 500 600 400 500 600 700 800 900 700 800 900程序输出程序输出:200 400 600 200 400 600 800 1000 1200 800 1000 1200 1400 1600 1800 1400 1600 1800-*/-*/#include#include void wwjt();void wwjt();void fun(int array33)void fun(int array33)/*Program*/*Program*/*End */*End */main()main()int i,j;int i,j;int array33=100,200,300,int array33=100,200,300,400,500,600,400,500,600,700,800,900;700,800,900;for(i=0;i 3;i+)for(i=0;i 3;i+)for(j=0;j 3;