c语言程序设计题目及答案.doc

上传人:s****u 文档编号:12811966 上传时间:2020-05-26 格式:DOC 页数:24 大小:218KB
返回 下载 相关 举报
c语言程序设计题目及答案.doc_第1页
第1页 / 共24页
c语言程序设计题目及答案.doc_第2页
第2页 / 共24页
c语言程序设计题目及答案.doc_第3页
第3页 / 共24页
点击查看更多>>
资源描述
一、程序设计 共113题 第1题 题号:319#include stdio.hvoid wwjt(); int fun(int m)int i,k=1; if(m=1) k=0; for(i=2;im;i+) if(m%i=0) k=0;return k;第2题 题号:351-功能:请编一个函数void fun(int ttMN,int ppN), tt指向一个M行N列的二维数组,求出二维数组每列 中最大元素,并依次放入pp所指一维数组中。二维 数组中的数已在主函数中赋予。#include#include#define M 3#define N 4void wwjt(); void fun(int ttMN,int ppN) int i,j; for(j=0;jN;j+) ppj=tt0j; for(i=1;ippj) ppj=ttij;第3题 题号:375功能:从键盘上输入任意实数,求出其所对应的函数值。 z=e的x次幂(x10) z=log(x+3) (x-3) z=sin(x)/(cos(x)+4)#include #includevoid wwjt(); double y(float x)double z; if(x10) z=exp(x); else if(x-3) z=log(x+3); else z=sin(x)/(cos(x)+4); return(z);第4题 题号:334功能:求给定正整数n以内的素数之积。(n28)#include #includeconio.hvoid wwjt(); long fun(int n) long i,k;long s=1; for(i=2;i=n;i+) for(k=2;ki;k+) if(i%k=0)break; if(k=i)s=s*i; return s;第5题 题号:333功能:计算并输出给定整数的所有因子之积(包括自身)。 规定这个整数的值不大于50。#include #includeconio.hvoid wwjt(); long int fun(int n) long s=1,i; for(i=2;i=n;i+) if(n%i=0)s=s*i; return s;第6题 题号:50功能:求出菲波那契数列的前一项与后一项之比的极限的 近似值例如:当误差为0.0001时,函数值为0.618056。#include #include math.hvoid wwjt(); float fun() float f1=1,f2=1,f3; float r1=2,r2; do r2=r1; r1=f1/f2; f3=f1+f2; f1=f2; f2=f3; while(fabs(r1-r2)1e-4); return r1;第7题 题号:394功能:产生20个30,120上的随机整数放入二维数组 a54中, 求其中的最小值。#include stdlib.h#include void wwjt(); int amin(int a54)int i,j,s; s=a00; for(i=0;i5;i+) for(j=0;jaij)s=aij; return(s);第8题 题号:337功能:将两个两位数的正整数a、b合并形成一个整数放在 c中。合并的方式是:将a数的十位和个位数依次放 在c数的百位和个位上, b数的十位和个位数依次放 在c数的十位和千位上。 例如:当a45,b=12。调用该函数后,c=2415。 include void wwjt(); void fun(int a, int b, long *c) *c=a/10*100+a%10+b/10*10+b%10*1000;第9题 题号:388功能:编写函数判断一个整数能否同时被3和5整除,若能 则返回值为1,否则为0。调用该函数求出15300之 间能同时被3和5整除的数的个数。#include void wwjt(); int sum(int n)if(n%3=0&n%5=0) return(1); return(0);第10题 题号:16功能:编写函数fun求1!+2!+3!+ +n!的和,在main函 数中由键盘输入n值,并输出运算结果。请编写fun 函数。例如:若n值为5,则结果为153。#includevoid wwjt(); long int fun(int n)int i;float f=1,s=0;for(i=1;i=n;i+) f=f*i; s=s+f; return s;第11题 题号:329功能:对某一正数的值保留2位小数,并对第三位进行四舍 五入。#include #includeconio.hvoid wwjt(); double fun(float h)int i;i=(int)(h*1000)%10;if(i=5)return(int)(h*100+1)/100.0;elsereturn(int)(h*100)/100.0;第12题 题号:410功能:编写函数fun将一个数组中的值按逆序存放,并在 main()函数中输出。例如:原来存顺序为8,6,5,4,1。要求改为:1,4,5,6,8。#include #define N 5void wwjt(); int fun(int arr,int n)int i,t; for(i=0;in/2;i+) t=arri; arri=arrn-1-i; arrn-1-i=t; 第13题 题号:327功能:能计算从1开始到n的自然数的和,n由键盘输入, 并在main()函数中输出。#include void wwjt(); int fun(int n)int sum,i;sum =0;for(i=1;i=n;i+)sum=sum+i;return(sum);第14题 题号:507功能:编写函数fun求一个字符串的长度,在main函数中 输入字符串,并输出其长度。#include void wwjt(); int fun(char *p1)char *p;int n=0;p=p1;while(*p+) n+; return n;第15题 题号:44功能:求出二维数组周边元素之和,作为函数值返回。二 维数组的值在主函数中赋予。#define M 4#define N 5#include void wwjt(); int fun(int aMN)int s=0; int i,j; for(i=0;iM;i+) s=s+ai0+aiN-1; for(j=1;jN-1;j+) s=s+a0j+aM-1j; return s;第16题 题号:364功能:求一个四位数的各位数字的立方和。#include void wwjt(); int fun(int n)int d,s=0; while (n0) d=n%10; s+=d*d*d; n/=10; return s;第17题 题号:339功能:判断整数x是否是同构数。若是同构数,函数返回1; 否则返回0。x的值由主函数从键盘读入,要求不大 于100。说明:所谓“同构数”是指这样的数,这个数出现在它的 平方数的右边。例如:输入整数5,5的平方数是25,5是25中右侧的数,所 以5是同构数。#include void wwjt(); int fun(int x) int k; k=x*x; if(k%10=x)|(k%100=x) return 1; else return 0;第18题 题号:331功能:找出一个大于给定整数且紧随这个整数的素数,并 作为函数值返回。#include #includeconio.hvoid wwjt(); int fun(int n)int i,k;for(i=n+1;i+)for(k=2;ki;k+)if(i%k=0)break;if(k=i)return(i); 第19题 题号:317功能:求出NM整型数组的最大元素及其所在的行坐标及 列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。例如:输入的数组为: 1 2 3 4 15 6 12 18 9 10 11 2 求出的最大数为18,行坐标为2,列坐标为1。#define N 4#define M 3#include void wwjt(); int Row,Col;int fun(int arrayNM)int max,i,j;max=array 00;Row=0;Col=0;for(i=0;iN;i+) for(j=0;jM;j+) if(maxarray ij) max=array ij; Row=i;Col=j;return(max);第20题 题号:360【程序设计】功能:把20个随机数存入一个数组,然后输出该数组中的 最大值。 #include #define VSIZE 20 void wwjt(); int vectorVSIZE ; int fun(int list,int size) int i,max=0; for(i=1; i size; i+)if(listmaxlisti) max=i; return max;第21题 题号:355功能:对长度为8个字符的字符串,将8个字符按降序排列。例如:原来的字符串为CEAedcab,排序后输出为edcbaECA。#include#include#includevoid wwjt(); void fun(char *s,int num) int i,j; char t; for(i=0;inum;i+) for(j=i+1;jnum;j+) if(sisj) t=si;si=sj;sj=t;第22题 题号:405功能:编写函数fun计算下列分段函数的值: x2+x+6 x0且x-3 f(x)= x2-5x+6 0x10且x2及x3 x2-x-1 其它#include void wwjt(); float fun(float x) float y; if (x=0 & x10.0 & x!=2.0 & x!=3.0) y=x*x-5*x+6; else y=x*x-x-1;return y;第23题 题号:338功能:编写程序,实现矩阵(3行3列)的转置(即行列互换) 例如:输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 100 400 700 200 500 800 300 600 900 #include void wwjt(); int fun(int array33) int i,j,t; for(i=0; i 3; i+) for(j=0; j i; j+) t=arrayij; arrayij=arrayji; arrayji=t; 第24题 题号:392功能:求一批数中最大值和最小值的积。#define N 30#include stdlib.h#include void wwjt(); int max_min(int a,int n) int i,max,min; max=min=a0; for(i=1;imax) max=ai; else if(aimin) min=ai; return(max*min);第25题 题号:407功能:编写函数fun求sum=d+dd+ddd+dd.d(n个d), 其中d为1-9的数字。例如:3+33+333+3333+33333(此时d=3,n=5),d和n在主函 数中输入。#include void wwjt(); long int fun(int d,int n)long int s=0,t=0; int i; for(i=1;i=n;i+) t=t+d; s=s+t; d=d*10; return s;第26题 题号:395-功能:求n阶方阵主、副对角线上的元素之积。-*/#define N 4#include stdlib.h#include void wwjt(); float mul(int arrN)int i,j; float t=1; for(i=0;iN;i+) for(j=0;jN;j+) if(i=j|i+j=N-1) t=t*arrij; return(t);第27题 题号:42功能:从字符串s中删除指定的字符c。#include void wwjt();fun(char s,char c)int i,k=0; for(i=0;si!=0;i+) if(si!=c) sk+=si; sk=0;第28题 题号:311功能:计算n门课程的平均值,计算结果作为函数值返回。例如:若有5门课程的成绩是:92,76,69,58,88, 则函数的值为76.600000。#include void wwjt(); float fun(int a,int n)int i; float y=0; for(i=0;in;i+) y+=ai; y=y/n; return y;第29题 题号:348功能:从低位开始取出长整型变量s中偶数位上的数,依次 构成一个新数放在t中。 例如:当s中的数为:7654321时,t中的数为:642。 #include void wwjt(); long fun (long s,long t)long sl=10;s /= 10; t = s % 10;while(s 0) s = s/100; t = s%10*sl + t;sl = sl * 10;-功能:编写函数求3!+6!+9!+12!+15+18!+21!。#include void wwjt(); float sum(int n)int i,j; float t,s=0; for(i=3;i=n;i=i+3) t=1; for(j=1;j=i;j+) t=t*j; s=s+t; return(s);第31题 题号:397功能:编写函数fun(str,i,n),从字符串str中删除第i个 字符开始的连续n个字符(注意:str0代表字符串 的第一个字符)。#include void wwjt(); fun(char str,int i,int n)while(stri+n-1) stri-1=stri+n-1; i+; stri-1=0;第32题 题号:29功能:对任意输入的 x,用下式计算并输出 y 的值。 5 x10#includevoid wwjt();int fun(int n)答案: int m; if(n=10) if(n10) m=-5; else m=0; else m=5;return m;第33题 题号:323功能:求1到w之间的奇数之和。(w是大于等于100小于等 于1000的整数)#include #includeconio.hvoid wwjt(); long fun(int w)long y=0; int i; for(i=1;i=w;i+) if(i%2=1)y+=i; return y;第34题 题号:312功能:调用函数fun判断一个三位数是否水仙花数。 在main函数中从键盘输入一个三位数,并输 出判断结果。请编写fun函数。说明:所谓水仙花数是指一3位数,其各位数字立方和 等于该数本身。例如:153是一个水仙花数,因为153=1+125+27。#include void wwjt(); int fun(int n)int bw,sw,gw;bw=n/100;sw=(n-bw*100)/10;gw=n%10; if(n=bw*bw*bw+sw*sw*sw+gw*gw*gw) return 1; else return 0;第35题 题号:378功能:编写函数用冒泡排序法对数组中的数据进行从小到 大的排序。#include #includevoid wwjt(); void sort(int a,int n)int i,j,t; for(i=0;in-1;i+) for(j=0;jaj+1) t=aj; aj=aj+1; aj+1=t; 第36题 题号:504功能:编写程序打印如图1所示图形。 * * * * * *要求:要求使用abs()。#include #include math.h void wwjt(); void fun(int i)答案: for(m=-i;m=i;m+) for(n=0;nabs(m);n+) printf( ); for(n=0;n7-2*abs(m);n+) printf(*); printf(n); 第37题 题号:342功能:在键盘上输入一个3行3列矩阵的各个元素的值(值 为整数),然后输出矩阵第一行与第三行元素之和, 并在fun()函数中输出。#include void wwjt(); main() int i,j,s,a33; for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij); s=fun(a); printf(Sum=%dn,s); wwjt();int fun(int a33)int sum;int i,j;sum=0;for(i=0;i3;i+=2)for(j=0;j3;j+) sum=sum+aij; return sum;第38题 题号:382功能:给定n个数据, 求最小值出现的位置(如果最小值 出现多次,求出第一次出现的位置即可)。#include void wwjt(); int station(int s,int n)int i,k; k=0; for(i=1;in;i+) if(sisk) k=i; return(k);第39题 题号:62功能:求5行5列矩阵的主、副对角线上元素之和。注意, 两条对角线相交的元素只加一次。例如:主函数中给出的矩阵的两条对角线的和为45。#include #define M 5void wwjt(); int fun(int aMM)int s=0; int i,j; for(i=0;iM;i+) s=s+aii+aiM-1-i; s=s-a(M-1)/2(M-1)/2; return s;第40题 题号:503题目:分别统计字符串中字母、数字、空格和其他字符出现的 次数(字符长度小于80)。#include void wwjt(); /*-全局变量,a用于保存字母个数、num用于保存数字个数b用于保存空格个数、other用于保存其他字符字数*/int a=0,num=0,b=0,other=0;void count(char c)答案: int i; for(i=0;ci!=0;i+) if(ci=A&ci=a&ci=0&ci=9) num=num+1; else if (ci= ) b=b+1; else other=other+1;第41题 题号:387功能:求一批数中最大值和最小值的差。#define N 30#include stdlib.h#include void wwjt(); int max_min(int a,int n)int i,max,min; max=min=a0; for(i=1;imax) max=ai; else if(aimin) min=ai; return(max-min);第42题 题号:347功能:把20个随机数存入一个数组,然后输出该数组中的 最小值。其中确定最小值的下标的操作在fun函数中 实现,请给出该函数的定义。 #include #define VSIZE 20 void wwjt(); int vectorVSIZE ; int fun(int list,int size) int i,min=0; for(i=1; i listi) min=i; return min;第43题 题号:365功能:求1到100之间的偶数之积。#include void wwjt(); double fun(int m)double y=1; int i; for(i=1;i=m;i+) if(i%2=0)y*=i; return y;第44题 题号:366功能:求一组数中大于平均值的数的个数。例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函 数值为3。#include void wwjt(); int fun(int a,int n)int i,k=0; float s=0,ave; for(i=0;in;i+) s+=ai; ave=s/n; printf(%f ,ave); for(i=0;iave)k+; return k;第45题 题号:361例如:输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 200 400 600 800 1000 1200 1400 1600 1800 #include void wwjt(); int fun(int array33) int i,j; for(i=0; i 3; i+) for(j=0; j 3; j+) arrayij=arrayij*2; 第46题 题号:373功能:用函数求fibonacci数列前n项的和。说明:fibonacci数列为数列的第一项值为1,第二项值也 为1,从第三项开始,每一项均为其前面相邻两项 的和。例如:当n=28时,运行结果:832039include void wwjt(); long sum(long f1,long f2) long f,k=f1+f2; int i; for(i=3;i=28;i+) f=f1+f2; k=k+f; f1=f2; f2=f; return(k);第47题 题号:340功能:编写一个函数,该函数可以统计一个长度为2的字符 串在另一个字符串中出现的次数。例如:假定输入的字符串为:asdasasdfgasdaszx67asdmklo, 字符串为:as,则应输出6。#include#include#includevoid wwjt(); int fun(char *str,char *substr) int i,n=0; for(i=0;i=strlen(str)-2;i+) if(stri=substr0)&(stri+1=substr1) n+; return n;第48题 题号:322功能:判断一个整数w的各位数字平方之和能否被5整除, 可以被5整除则返回1,否则返回0。#include #includeconio.hvoid wwjt(); int fun(int w)int k,s=0; do s=s+(w%10)*(w%10); w=w/10; while(w!=0); if(s%5=0)k=1; else k=0; return(k);第50题 题号:411功能:对任意输入的 x,用下式计算并输出 y 的值。 -1 x0#includevoid wwjt(); int fun(int n)答案: int m; if(n=0) if(n0) m=1; else m=0; else m=-1;return m;第51题 题号:320功能:在键盘上输入一个3行3列矩阵的各个元素的值(值 为整数),然后输出主对角线元素的积,并在fun() 函数中输出。#include void wwjt(); main() int i,j,s,a33; for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij); s=fun(a); printf(Sum=%dn,s); wwjt();int fun(int a33)int sum;int i,j;sum=1;for(i=0;i3;i+) sum=sum*aii; return sum;第52题 题号:318/功能:输入一个字符串,过滤此串,只保留串中的字母字 符,并统计新生成串中包含的字母个数。例如:输入的字符串为ab234$df4,新生成的串为abdf 。#include #include #define N 80void wwjt(); fun(char *ptr) int i,j;for(i=0,j=0;*(ptr+i)!=0;i+)if(*(ptr+i)=a|*(ptr+i)=A)*(ptr+j)=*(ptr+i);j+;*(ptr+j)=0;return(j);第53题 题号:357功能:根据整型形参m,计算如下公式的值: y=1/5+1/61/71/81/9+1/10.1/(m+5)例如:若m=9,则应输出:1.168229#include void wwjt(); double fun(int m) double y=0; int i; for(i=0; i=m; i+) y+=1.0/(i+5); return(y);第54题 题号:367功能:找出一批正整数中的最大的偶数。#include void wwjt(); int fun(int a,int n)int i,amax=-1; for(i=0;iamax) amax=ai; return amax;第55题 题号:374功能:编写函数实现两个数据的交换,在主函数中输入任 意三个数据,调用函数对这三个数据从大到小排序。#includevoid wwjt(); void swap(int *a,int *b)int k; k=*a; *a=*b; *b=k;第56题 题号:353功能:对长度为7个字符的字符串,除首、尾字符外,将其 余5个字符按降序排列。例如:原来的字符串为CEAedca,排序后输出为CedcEAa。#include#include#includevoid wwjt(); void fun(char *s,int num) int i,j; char t; for(i=1;inum-1;i+) for(j=i+1;jnum-1;j+) if(sisj) t=si;si=sj;sj=t;第57题 题号:409题目:输入华氏温度求摄氏温度。转换公式为 c=5/9(f-32), 输出结果取两位小数。void wwjt(); double fun(double m)答案: float n; n=(5.0/9.0)*(m-32); return n; 第58题 题号:324功能:能计算从1开始到n的自然数中偶数的平方的和,n由 键盘输入,并在main()函数中输出。(n是偶数)#include void wwjt(); int fun(int n)int sum,i;sum =0;for(i=2;i=n;i=i+2)sum=sum+i*i;return(sum);第59题 题号:53功能:求一个四位数的各位数字的立方和include void wwjt(); int fun(int n)int d,k,s=0; while (n0) d=n%10; s+=d*d*d; n/=10; return s;第60题 题号:389功能:编写函数求表达式的和(n的值由主函数输入)。 1-1/2+1/3-1/4+.+1/m例如:当n=20时,表达式的值为0.668771。#include void wwjt(); double sum(int n)float s=0; int i,k=1; for(i=1;i=n;i+) s=s+k*1.0/i; k=-k; return(s);第61题 题号:350/功能:请编一个函数void fun(int ttMN,int ppN), tt指向一个M行N列的二维数组,求出二维数组每列 中最小元素,并依次放入pp所指一维数组中。二维 数组中的数已在主函数中赋予。#include#include#define M 3#define N 4void wwjt(); void fun(int ttMN,int ppN) int i,j; for(j=0;jN;j+) ppj=tt0j; for(i=1;iM;i+) if(ttijppj) ppj=ttij; 第62题 题号:356功能:求大于lim(lim小于100的整数)并且小于100的所 有素数并放在aa数组中,该函数返回所求出素数的 个数。#include#include#define MAX 100void wwjt(); int fun(int lim,int aaMAX) int n=0; int i,j; for(i=lim;i=100;i+) for(j=2;ji;j+) if(i%j=0) break; if(j=i) aan+=i; return n;第63题 题号:399功能:编写程序求无理数e的值并输出。计算公式为: e=1+1/1!+1/2!+1/3!+.+1/n! 当1/n!0.000001时e=2.718282。include void wwjt(); main() float fun(); printf(无理数e的值是:%fn,fun(); wwjt();float fun()long int j; int i,k; double e,jc; i=1; e=0.0; jc=1.0; while(jc=0.000001) e=e+jc; j=1; for(k=1;k=i;k+) j=j*k; jc=1.0/j; i+; return e;第64题 题号:346功能:将从键盘上输入的每个单词的第一个字母转换为 大写字母,输入时各单词必须用空格隔开,用. 结束输入。 #include #include string.hvoid wwjt(); int fun(char *c,int status) if (*c= ) return 1;else if(status & *c = a)*c += A - a;return 0;第65题 题号:359功能:实现两个整数的交换。例如:给a和b分别输入:60和65,输入为:a=65 b=60#include#includevoid wwjt(); void fun(int *a,int *b) int t; t=*a;*a=*b;*b=t;第66题 题号:386功能:用函数求N个10,60上的整数中能被5整除的最大 的数,如存在则返回这个最大值,如果不存在则 返回0。#define N 30#include stdlib.h#include void wwjt(); int find(int arr,int n) int i; for(i=0;im) m=arri;第67题 题号:502#include 题目:用while语句求1100的累计和。void wwjt(); int fun(int n)答案: int i=1,sum=0; while(i=n) sum=sum+i; i+; return sum;第68题 题号:336功能:从字符串中删除指定的字符。同一字母的大、小写 按不同字符处理。例如:若程序执行时输入字符串为:turbocandborlandc+ 从键盘上输入字符:n,则输出后变为:turbocadbo rladc+,如果输入的字符在字符串中不存在,则字 符串照原样输出。 #include void wwjt(); int fun(char s,int c) char *q=s; for(; *q; q+) if(*q != c) *(s+)=*q; *s=0;第69题 题号:376功能:从键盘上输入任意实数x,求出其所对应的函数值。 z=(x-4)的二次幂(x4) z=x的八次幂(x-4) z=z=4/(x*(x+1)(x-10) z=|x|+20(其他)#include #include void wwjt(); float y(float x)float z; if(x4) z=sqrt(x-4); else if(x-4) z=pow(x,8); else if(x-10) z=4/(x*(x+1); else z=fabs(x)+20; return(z);第70题 题号:341功能:删除所有值为y的元素。数组元素中的值和y的值由 主函数通过键盘输入。#include #include#in
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!