文档详情

C语言题库113道(简缩)

痛***
实名认证
店铺
DOC
195KB
约7页
文档ID:160065477
C语言题库113道(简缩)_第1页
1/7

C语言 113道题第1题 :编写函数求1~100中奇数的平方和 结果为166650.000000float s=0; int i; for(i=1;i<=n;i=i+2) s=s+i*i; return(s);第2题:在键盘上输入一个3行3列矩阵的各个元素的值(值 为整数),然后输出主对角线元素的积,并在fun() 函数中输出int sum;int i,j;sum=1;for(i=0;i<3;i++) sum=sum*a[i][i]; return sum;第3题:能计算从1开始到n的自然数中偶数的平方的和,n由 键盘输入,并在main()函数中输出n是偶数)int sum,i;sum =0;for(i=2;i<=n;i=i+2){sum=sum+i*i;}return(sum);第4题:将两个两位数的正整数a、b合并形成一个整数放在c 中合并的方式是:将a数的十位和个位数依次放在 c数的千位和十位上, b数的十位和个位数依次放在 c数的个位和百位上 例如:当a=45,b=12调用该函数后,c=4251。

*c=a/10*1000+a%10*10+b/10+b%10*100;第5题:求一组数中大于平均值的数的个数例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函 数值为3int i,k=0; float s=0,ave; for(i=0;iave)k++; return k;第6题:对长度为8个字符的字符串,将8个字符按降序排列例如:原来的字符串为CEAedcab,排序后输出为edcbaECAint i,j; char t; for(i=0;i

若是同构数,函数返回1; 否则返回0x的值由主函数从键盘读入,要求不大 于100说明:所谓“同构数”是指这样的数,这个数出现在它的 平方数的右边例如:输入整数5,5的平方数是25,5是25中右侧的数,所 以5是同构数 int k; k=x*x; if((k%10==x)||(k%100==x)) return 1; else return 0;int i; for(i=0;str1[i]!='\0';i++) str2[i]=str1[i]; str2[i]='\0';第10题 (10.0分) 题号:310功能:计算并输出给定整数n的所有因子之和(不包括1与 自身)注意:n的值不大于1000例如:n的值为855时,应输出704int s=0,i; for(i=2;i

数组元素中的值和y的值由 主函数通过键盘输入int i,j; for(i=0;i<*n;) { if(bb[i]==y) {for(j=i;j<*n;j++) bb[j]=bb[j+1]; *n=*n-1; } else i++; }第13题 (10.0分) 题号:317功能:求出N×M整型数组的最大元素及其所在的行坐标及 列坐标(如果最大元素不唯一,选择位置在最前面 的一个)例如:输入的数组为: 1 2 3 4 15 6 12 18 9 10 11 2 求出的最大数为18,行坐标为2,列坐标为1int max,i,j;max=array [0][0];Row=0;Col=0;for(i=0;i

int i,max,min; max=min=a[0]; for(i=1;imax) max=a[i]; else if(a[i]10答案: int m; if(n<10) m=5; else if(n==10) m=0; else m=-5;return m;或 int m; if(n>=10) if(n>10) m=-5; else m=0; else m=5;return m;第19题 (10.0分) 题号:382功能:给定n个数据, 求最小值出现的位置(如果最小值 出现多次,求出第一次出现的位置即可)。

int i,k; k=0; for(i=1;iamax) amax=a[i]; return amax;第21题 (10.0分) 题号:384功能:产生20个[30,120]上的随机整数放入二维数组a[5][4] 中,求每行元素的和int i,j; for(i=0;i<5;i++) { b[i]=0; for(j=0;j<4;j++) b[i]=b[i]+a[i][j]; }第22题 (10.0分) 题号:334功能:求给定正整数n以内的素数之积n<28)long i,k;long s=1; for(i=2;i<=n;i++) {for(k=2;k

int i,k=0; for(i=0;s[i]!='\0';i++) if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z') k++; return k;第24题 (10.0分) 题号:361功能:编写程序, 求矩阵(3行3列)与2的乘积 例如:输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 200 400 600 800 1000 1200 1400 1600 1800 int i,j; for(i=0; i < 3; i++) for(j=0; j < 3; j++) array[i][j]=array[i][j]*2; 第25题 (10.0分) 题号:400功能:编写main程序调用函数fact求解从m个元素选n个元 素的组合数的个数计算公式是: 组合数=m!/(n!.(m-n)!)要求:m不能小于n,否则 应有容错处理。

说明:函数fact(x)的功能是求x!while(m0答案: int m; if(n<0) m=-1; else if(n==0) m=0; else m=1;return m;或 int m; if(n>=0) if(n>0) m=1; else m=0; else m=-1;return m;第27题 (10.0分) 题号:509功能:编写函数fun其功能是:根据整型形参m,计算如下 公式的值:y=1+1/3+1/5+1/7+…+1/(2m+1)例如:若m=9,则应输出:2.133256 double y=1; int i; for(i=1; i<=m; i++) {y+=1.0/(2*i+1); } return(y);第28题 (10.0分) 题号:394功能:产生20个[30,120]上的随机整数放入二维数组 a[5][4]中, 求其中的最小值。

int i,j,s; s=a[0][0]; for(i=0;i<5;i++) for(j=0;j<4;j++) if(s>a[i][j])s=a[i][j]; return(s);第29题 (10.0分) 题号:330功能:计算出k以内最大的10个能被13或17整除的自然数之 和k〈3000)int a=0,b=0;while((k>=2)&&(b<10)){if((k%13==0)||(k%17==0)) {a=a+k;b++;} k--; } return a;第30题 (10.0分) 题号:364功能:求一个四位数的各位数字的立方和int d,s=0; while (n>0) {d=n%10; s+=d*d*d; n/=10; } return s;第31题 (10.0分) 题号:348功能:从低位开始取出长整型变量s中偶数位上的数,依次 构成一个新数放在t中 例如:当s中的数为:7654321时,t中的数为:642答案:----------------------long sl=10;s /= 10; t = s % 10;while(s > 0) { s = s/100; t = s%10*sl + t;sl = sl * 10;}----------------------第32题 (10.0分) 题号:313功能:从键盘为一维整型数组输入10个整数,调用fun函数 找出其中最小的数,并在main函数中输出。

答案:---------------------- int min,i;min=x[0];for(i=1;i='a' && str[i]<='z') str[i]=str[i]-32;----------------------第34题 (10.0分) 题号:397功能:编写函数fun(str,i,n),从字符串str中删除第i个 字符开始的连续n个字符(注意:str[0]代表字符串 的第一个字符)答案:----------------------while(str[i+n-1]) { str[i-1]=str[i+n-1]; i++; } str[i-1]='\0';----------------------第35题 (10.0分) 题号:325功能:在键盘上输入一个3行3列矩阵的各个元素的值(值 为整数),然后输出主对角线元素的平方和,并在 fun()函数中输出。

答案:----------------------int sum;int i;sum=0;for(i=0;i<3;i++) sum=sum+a[i][i]*a[i][i]; return sum;----------------------第36题 (10.0分) 题号:388功能:编写函数判断一个整数能否同时被3和5整除,若能 则返回值为1,否则为0调用该函数求出15~300之 间能同时被3和5整除的数的个数答案:----------------------if(n%3==0&&n%5==0) return(1); return(0);----------------------第37题 (10.0分) 题号:399功能:编写程序求无理数e的值并输出计算公式为: e=1+1/1!+1/2!+1/3!+......+1/n! 当1/n!<0.000001时e=2.718282答案:----------------------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;----------------------第38题 (10.0分) 题号:312功能:调用函数fun判断一个三位数是否"水仙花数"。

在main函数中从键盘输入一个三位数,并输 出判断结果请编写fun函数说明:所谓"水仙花数"是指一3位数,其各位数字立方和 等于该数本身例如:153是一个水仙花数,因为153=1+125+27答案:----------------------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;----------------------第39题 (10.0分) 题号:335功能:求一个n位自然数的各位数字的积n 是小于10的 自然数)答案:----------------------long d,s=1; while (n>0) {d=n%10; s*=d; n/=10; } return s;----------------------第40题 (10.0分) 题号:379功能:给定n个数据, 求最大值出现的位置(如果最大值出 现多次,求出第一次出现的位置即可)。

答案:----------------------int i,k; k=0; for(i=1;i<=n;i++) if(s[i]>s[k]) k=i; return(k+1);----------------------第41题 (10.0分) 题号:22功能:从键盘为一维整型数组输入10个整数,调用fun 函数找出其中最小的数,并在main函数中输出 请编写fun函数答案:----------------------int min,i;min=x[0];for(i=1;ia[i]) k++;return(k);----------------------第43题 (10.0分) 题号:352功能:根据整型形参m,计算如下公式的值:y=1/2+1/4+ 1/6+...+1/2m 。

例如:若m=9,则应输出:1.414484答案:---------------------- double y=0; int i; for(i=1; i<=m; i++) {y+=1.0/(2*i); } return(y);----------------------第44题 (10.0分) 题号:33功能:用do-while语句求1~100的累计和答案: int i =1, sum =0; do { sum = sum + i; i++; } while ( i <= n ); return sum;第45题 (10.0分) 题号:347功能:把20个随机数存入一个数组,然后输出该数组中的 最小值其中确定最小值的下标的操作在fun函数中 实现,请给出该函数的定义答案:----------------------int i,min=0; for(i=1; i list[i]) min=i; return min;----------------------第46题 (10.0分) 题号:343功能:将两个两位数的正整数a、b合并形成一个整数放在c 中。

合并的方式是: 将a数的十位和个位数依次放 在c数的个位和百位上, b数的十位和个位数依次放 在c数的十位和千位上 例如: 当a=45,b=12, 调用该函数后, c=2514答案:----------------------*c=a/10+a%10*100+b/10*10+b%10*1000; 第47题 (10.0分) 题号:504功能:编写程序打印如图1所示图形 * *** ************ ***** *** *要求:要求使用abs()答案: for(m=-i;m<=i;m++) { for(n=0;n

例如:原来存顺序为8,6,5,4,1要求改为:1,4,5,6,8答案:----------------------int i,t; for(i=0;ia[j+1]) {t=a[j]; a[j]=a[j+1]; a[j+1]=t; }----------------------第52题 (10.0分) 题号:323功能:求1到w之间的奇数之和。

w是大于等于100小于等 于1000的整数)答案:----------------------long y=0; int i; for(i=1;i<=w;i++) if(i%2==1)y+=i; return y;----------------------第53题 (10.0分) 题号:380功能:用辗转相除法求两个整数的最大公约数答案:----------------------int r,t; if(n='A'&&c[i]<='Z')||(c[i]>='a'&&c[i]<='z')) a=a+1; else if (c[i]>='0'&&c[i]<='9') num=num+1; else if (c[i]==' ') b=b+1; else other=other+1;第55题 (10.0分) 题号:395功能:求n阶方阵主、副对角线上的元素之积。

答案:----------------------int i,j; float t=1; for(i=0;i='a'||*(ptr+i)<='Z' && *(ptr+i)>='A'){*(ptr+j)=*(ptr+i);j++;}*(ptr+j)='\0';return(j);----------------------第57题 (10.0分) 题号:311功能:计算n门课程的平均值,计算结果作为函数值返回。

例如:若有5门课程的成绩是:92,76,69,58,88, 则函数的值为76.600000答案:----------------------int i; float y=0; for(i=0;i

例如:当s中的数为:7654321时,t中的数为:7531答案:----------------------long sl=10; t = s % 10;while(s > 0) { s = s/100; t = s%10*sl + t;sl = sl * 10;}----------------------第61题 (10.0分) 题号:332功能:根据整型参数n,计算如图公式的值答案:----------------------double a=1;int i;for(i=1;i

二维 数组中的数已在主函数中赋予答案:---------------------- int i,j; for(j=0;jpp[j]) pp[j]=tt[i][j]; }----------------------第64题 (10.0分) 题号:389功能:编写函数求表达式的和(n的值由主函数输入) 1-1/2+1/3-1/4+......+1/m例如:当n=20时,表达式的值为0.668771答案:----------------------float s=0; int i,k=1; for(i=1;i<=n;i++) { s=s+k*1.0/i; k=-k; } return(s);----------------------第65题 (10.0分) 题号:54功能:求1到100之间的偶数之积答案:----------------------double y=1; int i; for(i=1;i<=m;i++) if(i%2==0)y*=i; return y;----------------------第66题 (10.0分) 题号:353功能:对长度为7个字符的字符串,除首、尾字符外,将其 余5个字符按降序排列。

例如:原来的字符串为CEAedca,排序后输出为CedcEAa答案:---------------------- int i,j; char t; for(i=1;i0)return(k*fun(k-1));else if(k==0)return 1L;----------------------第68题 (10.0分) 题号:346功能:将从键盘上输入的每个单词的第一个字母转换为 大写字母,输入时各单词必须用空格隔开,用’.’ 结束输入 答案:----------------------if (*c== ' ') return 1;else{ if(status && *c <= 'z' && *c >= 'a')*c += 'A' - 'a';return 0;}----------------------第69题 (10.0分) 题号:403答案:----------------------long int x=1; int i; for(i=1;i<=n;i++) x=x*m; return x;----------------------第70题 (10.0分) 题号:387功能:求一批数中最大值和最小值的差。

答案:----------------------int i,max,min; max=min=a[0]; for(i=1;imax) max=a[i]; else if(a[i]

答案:----------------------int i,k=0; for(i=0;s[i]!='\0';i++) if(s[i]!=c) s[k++]=s[i]; s[k]='\0';----------------------第74题 (10.0分) 题号:342功能:在键盘上输入一个3行3列矩阵的各个元素的值(值 为整数),然后输出矩阵第一行与第三行元素之和, 并在fun()函数中输出答案:----------------------int sum;int i,j;sum=0;for(i=0;i<3;i+=2)for(j=0;j<3;j++) sum=sum+a[i][j]; return sum;----------------------第75题 (10.0分) 题号:359功能:实现两个整数的交换例如:给a和b分别输入:60和65,输入为:a=65 b=60答案:---------------------- int t; t=*a;*a=*b;*b=t;----------------------第76题 (10.0分) 题号:374功能:编写函数实现两个数据的交换,在主函数中输入任 意三个数据,调用函数对这三个数据从大到小排序。

答案:----------------------int k; k=*a; *a=*b; *b=k;----------------------第77题 (10.0分) 题号:356功能:求大于lim(lim小于100的整数)并且小于100的所 有素数并放在aa数组中,该函数返回所求出素数的 个数答案:---------------------- int n=0; int i,j; for(i=lim;i<=100;i++) {for(j=2;j0) {d=n%10; s+=d*d*d; n/=10; } return s;----------------------第79题 (10.0分) 题号:322功能:判断一个整数w的各位数字平方之和能否被5整除, 可以被5整除则返回1,否则返回0。

答案:----------------------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);----------------------第80题 (10.0分) 题号:326功能:求一个大于10的n位整数的后n-1位的数,并作为函 数值返回答案:----------------------int n=0;int i=1;while(w>10){n=n+i*(w%10);w/=10;i*=10;}return n;----------------------第81题 (10.0分) 题号:321功能:编写函数fun其功能是:根据整型形参m,计算如下 公式的值:y=1/2!+1/4!+…+1/m!(m是偶数)答案:double y=0.0;int i,j;double s=1;for (i=2;i<=m;i+=2){for(j=i-1;j<=i;j++)s=s*j;y=y+1.0/s;}return y;第82题 (10.0分) 题号:337功能:将两个两位数的正整数a、b合并形成一个整数放在 c中。

合并的方式是:将a数的十位和个位数依次放 在c数的百位和个位上, b数的十位和个位数依次放 在c数的十位和千位上 例如:当a=45,b=12调用该函数后,c=2415 答案:----------------------*c=a/10*100+a%10+b/10*10+b%10*1000;----------------------第83题 (10.0分) 题号:396功能:编写函数fun对主程序中用户输入的具有10 个数据的数组a按由大到小排序,并在主程序中输出 排序结果答案:----------------------int k,j,t; for (k=0;k

例如:3+33+333+3333+33333(此时d=3,n=5),d和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;----------------------第85题 (10.0分) 题号:50功能:求出菲波那契数列的前一项与后一项之比的极限的 近似值例如:当误差为0.0001时,函数值为0.618056答案:---------------------- 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;----------------------第86题 (10.0分) 题号:372题目:用函数求一个N阶方阵右下三角元素的和(包括副 对角线上的元素)。

答案:----------------------int i,j,k=0; for(i=0;i

下载提示
相关文档
正为您匹配相似的精品文档