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

更新时间:2024-05-01 01:20:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、程序设计 共113题 第1题 题号:319 #include \void wwjt();

int fun(int m) {

int i,k=1;

if(m<=1) k=0; for(i=2;i

return k; }

第2题 题号:351 -----------

功能:请编一个函数void fun(int tt[M][N],int pp[N]),

tt指向一个M行N列的二维数组,求出二维数组每列

中最大元素,并依次放入pp所指一维数组中。二维

数组中的数已在主函数中赋予。

#include #include #define M 3 #define N 4 void wwjt();

void fun(int tt[M][N],int pp[N]) {

int i,j;

for(j=0;j

pp[j]=tt[0][j]; for(i=1;ipp[j]) pp[j]=tt[i][j]; }

第3题 题号:375

功能:从键盘上输入任意实数,求出其所对应的函数值。

z=e的x次幂(x>10) z=log(x+3) (x>-3) z=sin(x)/((cos(x)+4) #include #include void wwjt();

double y(float x) {

double z;

if(x>10) z=exp(x);

else if(x>-3) z=log(x+3); else z=sin(x)/(cos(x)+4); return(z); }

第4题 题号:334

功能:求给定正整数n以内的素数之积。(n<28)

#include #include\void wwjt();

long fun(int n) {

long i,k; long s=1;

for(i=2;i<=n;i++) {for(k=2;k

第5题 题号:333

功能:计算并输出给定整数的所有因子之积(包括自身)。

规定这个整数的值不大于50。

#include #include\void wwjt();

long int fun(int n) {

1

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 \void 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]上的随机整数放入二维数组

a[5][4]中, 求其中的最小值。#include \#include void wwjt();

int amin(int 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);

}

第8题 题号:337

功能:将两个两位数的正整数a、b合并形成一个整数放在

c中。合并的方式是:将a数的十位和个位数依次放

在c数的百位和个位上, b数的十位和个位数依次放

在c数的十位和千位上。 例如:当a=45,b=12。调用该函数后,c=2415。

include void wwjt();

void fun(int a, int b, long *c) {

*c=a/10*100+a+b/10*10+b*1000; }

第9题 题号:388

功能:编写函数判断一个整数能否同时被3和5整除,若能

则返回值为1,否则为0。调用该函数求出15~300之

间能同时被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。 #include void wwjt();

long int fun(int n) {

int i;

2

float f=1,s=0; for(i=1;i<=n;i++) {f=f*i; s=s+f;} return s;

第11题 题号:329

功能:对某一正数的值保留2位小数,int fun(int n) {

int sum,i; sum =0;

for(i=1;i<=n;i++) {sum=sum+i;} return(sum);

并对第三位进行四舍 五入。

#include #include\void wwjt();

double fun(float h) {

int i;

i=(int)(h*1000); if(i>=5)

return(int)(h*100+1)/100.0; else

return(int)(h*100)/100.0; 第12题 题号:410

功能:编写函数fun将一个数组中的值按逆序存放,并在

main()函数中输出。

例如:原来存顺序为8,6,5,4,1。要求改为:1,4,5,6,8。 #include #define N 5 void wwjt();

int fun(int arr[],int n) {

int i,t;

for(i=0;i

arr[i]=arr[n-1-i]; arr[n-1-i]=t; }

第13题 题号:327

功能:能计算从1开始到n的自然数的和,n由键盘输入,

并在main()函数中输出。 #include void wwjt();

第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 a[M][N]) {

int s=0; int i,j;

for(i=0;i

s=s+a[i][0]+a[i][N-1]; for(j=1;j

s=s+a[0][j]+a[M-1][j]; return s;

第16题 题号:364

功能:求一个四位数的各位数字的立方和。

#include

3

void wwjt(); int fun(int n) {

int d,s=0;

while (n>0) {d=n; 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==x)||(k0==x)) return 1; else

return 0;

第18题 题号:331

功能:找出一个大于给定整数且紧随这个整数的素数,并 作为函数值返回。 #include #include\void wwjt();

int fun(int n) {

int i,k;

for(i=n+1;;i++){ for(k=2;k

第19题 题号:317

功能:求出N×M整型数组的最大元素及其所在的行坐标及

列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。 例如:输入的数组为:

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 array[N][M]) {

int max,i,j;

max=array [0][0]; Row=0; Col=0;

for(i=0;ireturn(max);

第20题 题号:360 【程序设计】

4

功能:把20个随机数存入一个数组,然后输出该数组中的 最大值。 #include #define VSIZE 20 void wwjt();

int vector[VSIZE] ;

int fun(int list[],int size) void wwjt();

float fun(float x) {

float y;

if (x<0 && x!=-3.0) y=x*x+x+6;

else if(x>=0 && x<10.0 && x!=2.0 && x!=3.0)

{

int i,max=0;

for(i=1; i

第21题 题号:355

功能:对长度为8个字符的字符串,将8个字符按降序排列。 例如:原来的字符串为CEAedcab,排序后输出为edcbaECA。 #include #include #include void wwjt();

void fun(char *s,int num) {

int i,j; char t;

for(i=0;i

for(j=i+1;j

{ t=s[i];s[i]=s[j];s[j]=t;} 第22题 题号:405

功能:编写函数fun计算下列分段函数的值:

x^2+x+6 x<0且x≠-3

f(x)= x^2-5x+6 0≤x<10且x≠2及x≠3

x^2-x-1 其它 #include

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 array[3][3]) {

int i,j,t;

for(i=0; i < 3; i++) for(j=0; j < i; j++) { t=array[i][j];

array[i][j]=array[j][i]; array[j][i]=t; } 第24题 题号:392

功能:求一批数中最大值和最小值的积。

#define N 30

#include \#include void wwjt();

int max_min(int a[],int n) {

5

{

int i,n=0;

for(i=0;i<=strlen(str)-2;i++)

if((str[i]==substr[0])&&(str[i+1]==substr[1])) n++; return n;

第48题 题号:322

功能:判断一个整数w的各位数字平方之和能否被5整除,

可以被5整除则返回1,否则返回0。

#include #include\void wwjt(); int fun(int w) {

int k,s=0; do

{s=s+(w)*(w); w=w/10;

}while(w!=0); if(s%5==0)k=1; else k=0; return(k);

第50题 题号:411

功能:对任意输入的 x,用下式计算并输出 y 的值。

-1 x<0 y= 0 x=0 1 x>0 #include void wwjt(); int fun(int n) {

答案: 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;

第51题 题号:320

功能:在键盘上输入一个3行3列矩阵的各个元素的值(值

为整数),然后输出主对角线元素的积,并在fun() 函数中输出。 #include void wwjt();

main() {

int i,j,s,a[3][3];; for(i=0;i<3;i++) {

for(j=0;j<3;j++)

scanf(\ }

s=fun(a);

printf(\ wwjt(); }

int fun(int a[3][3]) {

int sum; int i,j; sum=1;

for(i=0;i<3;i++) sum=sum*a[i][i]; return sum;

第52题 题号:318

/功能:输入一个字符串,过滤此串,只保留串中的字母字

符,并统计新生成串中包含的

11

字母个数。

例如:输入的字符串为ab234$df4,新生成的串为abdf 。 #include #include #define N 80 void wwjt();

fun(char *ptr) {

int i,j;

for(i=0,j=0;*(ptr+i)!='\\0';i++) if(*(ptr+i)<='z'&&

*(ptr+i)>='a'||*(ptr+i)<='Z' && *(ptr+i)>='A')

{*(ptr+j)=*(ptr+i); j++;}

*(ptr+j)='\\0'; return(j);

第53题 题号:357

功能:根据整型形参m,计算如下公式的值:

y=1/5+1/6+1/7+1/8+1/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;i

if(a[i]%2==0)

if (a[i]>amax) amax=a[i]; return amax; 第55题 题号:374

功能:编写函数实现两个数据的交换,在主函数中输入任

意三个数据,调用函数对这三个数据从大到小排序。

#include void wwjt();

void swap(int *a,int *b) {int k; k=*a; *a=*b; *b=k;

第56题 题号:353

功能:对长度为7个字符的字符串,除首、尾字符外,将其

余5个字符按降序排列。 例如:原来的字符串为CEAedca,排序后输出为CedcEAa。 #include #include #include void wwjt();

void fun(char *s,int num) {

int i,j; char t;

for(i=1;i

for(j=i+1;j

{ t=s[i];s[i]=s[j];s[j]=t;} 第57题 题号:409

题目:输入华氏温度求摄氏温度。转换公式为 c=5/9(f-32), 输出结果取两位小数。 void wwjt();

double fun(double m) {

答案: float n;

12

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 (n>0) {d=n; 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 tt[M][N],int pp[N]),

tt指向一个M行N列的二维数组,求出二维数组每列

中最小元素,并依次放入pp所指一维数组中。二维

数组中的数已在主函数中赋予。

#include #include #define M 3 #define N 4 void wwjt();

void fun(int tt[M][N],int pp[N]) {

int i,j;

for(j=0;j

pp[j]=tt[0][j]; for(i=1;i

}

第62题 题号:356

功能:求大于lim(lim小于100的整数)并且小于100的所

有素数并放在aa数组中,该函数返回所求出素数的 个数。

#include #include #define MAX 100 void wwjt();

int fun(int lim,int aa[MAX])

13

{

int n=0; int i,j;

for(i=lim;i<=100;i++) {for(j=2;j

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的值是:%f\\n\ 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 \void wwjt();

int fun(char *c,int status) {

if (*c== ' ') return 1; else { if(status && *c <= 'z' && *c >= 'a') *c += 'A' - 'a'; return 0; }

第65题 题号:359

功能:实现两个整数的交换。

例如:给a和b分别输入:60和65,输入为:a=65 b=60 #include #include void 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 \#include void wwjt();

int find(int arr[],int n) {

14

int i;

for(i=0;i

if(arr[i]%5==0 && arr[i]>m) m=arr[i]; 第67题 题号:502 #include

题目:用while语句求1~100的累计和。

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)的二次幂(x>4) 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(x>4) 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 #include #define M 20 void wwjt();

void fun(int bb[],int *n,int 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++; }

第71题 题号:56

功能:找出一批正整数中的最大的偶数。

include void wwjt();

int fun(int a[],int n) {

int i,amax=-1;

for(i=0;i

15

本文来源:https://www.bwwdw.com/article/2glg.html

Top