C语言期末复习试题

更新时间:2024-04-03 17:04:01 阅读量: 综合文库 文档下载

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

试卷编号:10767 所属语言:C语言

试卷方案:TC_150604083824 试卷总分:570分 共有题型:1种

一、程序设计 共57题 (共计570分)

第1题 (10.0分) 题号:374 难度:易 第2章 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:编写函数实现两个数据的交换,在主函数中输入任 意三个数据,调用函数对这三个数据从大到小排序。

------------------------------------------------*/

#include void wwjt();

void swap(int *a,int *b) {

/**********Program**********/

/********** End **********/ } main() {

int x,y,z;

scanf(\ if(x

void wwjt() {

FILE *IN,*OUT; int m,n; int i[2];

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(n=0;n<3;n++) {

for(m=0;m<2;m++) {

fscanf(IN,\ }

swap(&i[0],&i[1]); fprintf(OUT,\ fprintf(OUT,\ }

fclose(IN); fclose(OUT); }

答案:---------------------- int k; k=*a; *a=*b; *b=k;

----------------------

第2题 (10.0分) 题号:381 难度:易 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:求一批数中小于平均值的数的个数。

第2章 ------------------------------------------------*/

#include void wwjt();

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

/**********Program**********/

/********** End **********/ } main() {

int n,a[100],i,num; scanf(\ for(i=0;i

printf(\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int n; int i[10]; int o;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(n=0;n<5;n++) {

fscanf(IN,\ }

o=average_num(i,5); fprintf(OUT,\ fclose(IN); fclose(OUT); }

答案:---------------------- int i,sum=0,k=0; double average; for(i=0;ia[i]) k++; return(k);

----------------------

第3题 (10.0分) 题号:406 难度:易 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:编写函数fun求1000以内所有7的倍数之和。

------------------------------------------------*/

#define N 1000 #include void wwjt();

int fun(int m) {

/**********Program**********/

/********** End **********/

第2章 }

void main() {

int sum; sum=fun(7);

printf(\以内所有%d的倍数之和为:%d\\n\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int n; int i[10]; int o;

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

o = fun(6);

fprintf(OUT,\ fclose(IN); fclose(OUT); }

答案:---------------------- int s=0,i; for(i=1;i

----------------------

第4题 (10.0分) 题号:324 难度:易 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:能计算从1开始到n的自然数中偶数的平方的和,n由 键盘输入,并在main()函数中输出。(n是偶数)

第2章

------------------------------------------------*/

#include void wwjt();

int fun(int n) {

/**********Program**********/

/********** End **********/ }

main() { int m;

printf(\ scanf(\

printf(\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int t; int o; int c;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(c=1;c<=5;c++)

{

fscanf(IN,\ o=fun(t);

fprintf(OUT,\ }

fclose(IN); fclose(OUT); }

答案:---------------------- int sum,i; sum =0;

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

sum=sum+i*i;} return(sum);

----------------------

第5题 (10.0分) 题号:2 难度:中 第1章 /*------------------------------------------------------- 【程序设计】

---------------------------------------------------------

题目:写程序求1-3+5-7+…-99+101的值

要求:使用程序中定义的变量

-------------------------------------------------------*/ #include\void wwjt();

//函数功能:求1-3+5-7+…-+n的值 int fun(int n) {

int i,s=0,f=1;//i定义为循环变量,s为1-3+5-7+…-n的值 /**********Program**********/

/********** End **********/ return s; } main()

{

printf(\

wwjt(); }

void wwjt() {

FILE *IN,*OUT; int i,n;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(i=0;i<5;i++) {

fscanf(IN,\

fprintf(OUT,\ }

fclose(IN); fclose(OUT); }

答案: for (i=1;i<=n;i+=2)

第6题 (10.0分) 题号:357 难度:易 第2章 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

{ }

s=s+i*f; f=-f;

功能:根据整型形参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) {

/**********Program**********/

/********** End **********/ }

main() {

int n;

printf(\ scanf(\

printf(\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int i ; int t; double o;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\

}

for(i=0;i<5;i++) {

fscanf(IN,\ o=fun(t);

fprintf(OUT,\ }

fclose(IN); fclose(OUT); }

答案:---------------------- double y=0; int i;

for(i=0; i<=m; i++) {y+=1.0/(i+5); } return(y);

----------------------

第7题 (10.0分) 题号:392 难度:中 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

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

------------------------------------------------*/

#define N 30 #include \#include void wwjt();

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

/**********Program**********/

/********** End **********/

第2章

} main() {

int a[N],i,k; for(i=0;i

printf(\

if((i+1)%5==0) printf(\ }

k=max_min(a,N);

printf(\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int n; int i[10]; int o;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(n=0;n<10;n++) {

fscanf(IN,\ }

o=max_min(i,10); fprintf(OUT,\ fclose(IN); fclose(OUT); }

答案:----------------------

int i,max,min; max=min=a[0]; for(i=1;i

if(a[i]>max) max=a[i]; else if(a[i]

第8题 (10.0分) 题号:342 难度:中 第2章 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:在键盘上输入一个3行3列矩阵的各个元素的值(值 为整数),然后输出矩阵第一行与第三行元素之和, 并在fun()函数中输出。

------------------------------------------------*/

#include void wwjt();

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

/**********Program**********/

/********** End **********/ } 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(); }

void wwjt() {

FILE *IN,*OUT; int m; int n; int i[3][3]; int o;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(m=0;m<3;m++) {

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

fscanf(IN,\ }

o=fun(i); {

fprintf(OUT,\ getch(); }

fclose(IN); fclose(OUT); }

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

----------------------

第9题 (10.0分) 题号:364 难度:中 第2章 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

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

-----------------------------------------------*/

#include void wwjt();

int fun(int n) {

/**********Program**********/

/********** End **********/ } main() { int k; k=fun(1234); printf(\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int iIN,iOUT,i;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(i=0;i<5;i++) {

fscanf(IN,\ iOUT=fun(iIN);

fprintf(OUT,\ }

fclose(IN); fclose(OUT); }

答案:---------------------- int d,s=0; while (n>0) {d=n; s+=d*d*d; n/=10; }

return s;

----------------------

第10题 (10.0分) 题号:502 难度:中 第20章 #include

/*------------------------------------------------------- 【程序设计】

---------------------------------------------------------

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

-------------------------------------------------------*/ void wwjt();

int fun(int n) {

/**********Program**********/

/********** End **********/

}

void main() {

int sum = 0;

sum=fun(100);

printf (\

wwjt(); }

void wwjt() {

FILE *IN,*OUT; int i; int iIN,iOUT;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(i=0;i<5;i++) {

fscanf(IN,\ iOUT=fun(iIN);

fprintf(OUT,\ }

fclose(IN); fclose(OUT); }

答案: int i=1,sum=0; while(i<=n) {

sum=sum+i;

i++; }

return sum;

第11题 (10.0分) 题号:53 难度:中 第1章 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

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

------------------------------------------------*/

#include void wwjt();

int fun(int n) {

/**********Program**********/

/********** End **********/ } main() { int k; k=fun(1234); printf(\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int iIN,iOUT,i; IN=fopen(\ if(IN==NULL)

{

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(i=0;i<10;i++) {

fscanf(IN,\ iOUT=fun(iIN);

fprintf(OUT,\ }

fclose(IN); fclose(OUT); }

答案:---------------------- int d,k,s=0; while (n>0) {d=n; s+=d*d*d; n/=10; }

return s;

----------------------

第12题 (10.0分) 题号:409 难度:易 第20章 /*------------------------------------------------------- 【程序设计】

---------------------------------------------------------

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

-------------------------------------------------------*/ #include void wwjt();

double fun(double m) {

/**********Program**********/

/********** End **********/ }

void main() {

double c,f;

printf(\请输入一个华氏温度:\ scanf(\

c=fun(f);

printf(\摄氏温度为:%5.2f\\n\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int i;

double iIN,iOUT; IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(i=0;i<5;i++) {

fscanf(IN,\ iOUT=fun(iIN);

fprintf(OUT,\ }

fclose(IN); fclose(OUT);

}

答案: float n;

n=(5.0/9.0)*(m-32); return n;

第13题 (10.0分) 题号:345 难度:中 第2章 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:将两个两位数的正整数a、b合并形成一个整数放在c 中。合并的方式是:将a数的十位和个位数依次放在 c数的千位和十位上, b数的十位和个位数依次放在 c数的个位和百位上。

例如:当a=45,b=12。调用该函数后,c=4251。

------------------------------------------------*/

#include void wwjt();

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

/**********Program**********/

/********** End **********/ } main() {

int a,b; long c;

printf(\ scanf(\ fun(a, b, &c);

printf(\

wwjt(); }

void wwjt ( ) {

FILE *rf, *wf ; int i, a,b ; long c ;

rf = fopen(\ wf = fopen(\ for(i = 0 ; i < 10 ; i++) {

fscanf(rf, \ fun(a, b, &c) ;

fprintf(wf, \ }

fclose(rf) ; fclose(wf) ; }

答案:---------------------- *c=a/10*1000+a*10+b/10+b*100; ----------------------

第14题 (10.0分) 题号:335 难度:中 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:求一个n位自然数的各位数字的积。(n 是小于10的 自然数)

------------------------------------------------*/

#include #include\void wwjt();

long fun(long n) {

/**********Program**********/

第2章

/********** End **********/ }

main() {

long m;

printf(\ scanf(\

printf(\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int c ; long t; long o;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(c=1;c<=5;c++) {

fscanf(IN,\ o=fun(t);

fprintf(OUT,\ }

fclose(IN); fclose(OUT); }

答案:---------------------- long d,s=1; while (n>0) {d=n; s*=d; n/=10; }

return s;

----------------------

第15题 (10.0分) 题号: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) {

/**********Program**********/

/********** End **********/ }

main() {

int a,b; long c; printf(\ scanf(\ fun(a, b, &c);

第2章 printf(\ wwjt(); }

void wwjt ( ) {

FILE *rf, *wf ; int i, a,b ; long c ; rf = fopen(\ wf = fopen(\ for(i = 0 ; i < 10 ; i++) {

fscanf(rf, \ fun(a, b, &c) ;

fprintf(wf, \ }

fclose(rf) ; fclose(wf) ; }

答案:---------------------- *c=a/10*100+a+b/10*10+b*1000; ----------------------

第16题 (10.0分) 题号:325 难度:中 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:在键盘上输入一个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++)

第2章 scanf(\ }

s=fun(a);

printf(\ wwjt(); }

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

/**********Program**********/

/********** End **********/ }

void wwjt() {

FILE *IN,*OUT; int m; int n; int i[3][3]; int o;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(m=0;m<3;m++) {

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

fscanf(IN,\ }

o=fun(i); {

fprintf(OUT,\ getch(); }

fclose(IN); fclose(OUT); }

答案:---------------------- int sum; int i; sum=0;

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

sum=sum+a[i][i]*a[i][i]; return sum;

----------------------

第17题 (10.0分) 题号:352 难度:易 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:根据整型形参m,计算如下公式的值:y=1/2+1/4+ 1/6+...+1/2m 。

例如:若m=9,则应输出:1.414484

------------------------------------------------*/

#include void wwjt();

double fun(int m) {

/**********Program**********/

/********** End **********/ }

main() {

第2章 int n;

printf(\ scanf(\

printf(\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int i ; int t; double o;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(i=0;i<5;i++) {

fscanf(IN,\ o=fun(t);

fprintf(OUT,\ }

fclose(IN); fclose(OUT); }

答案:---------------------- double y=0; int i;

for(i=1; i<=m; i++) {y+=1.0/(2*i); } return(y); ----------------------

第18题 (10.0分) 题号:312 难度:中 /*------------------------------------------------

第2章 【程序设计】

--------------------------------------------------

功能:调用函数fun判断一个三位数是否\水仙花数\。 在main函数中从键盘输入一个三位数,并输 出判断结果。请编写fun函数。

说明:所谓\水仙花数\是指一3位数,其各位数字立方和 等于该数本身。

例如:153是一个水仙花数,因为153=1+125+27。

------------------------------------------------*/

#include void wwjt();

int fun(int n) {

/**********Program**********/

/********** End **********/ } main() {

int n,flag; scanf(\ flag=fun(n); if(flag)

printf(\是水仙花数\\n\ else

printf(\不是水仙花数\\n\ wwjt(); }

void wwjt() {

FILE *IN,*OUT;

int iIN,i; int iOUT;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(i=0;i<10;i++) {

fscanf(IN,\ iOUT=fun(iIN);

fprintf(OUT,\ }

fclose(IN); fclose(OUT); }

答案:---------------------- int bw,sw,gw;

bw=n/100;sw=(n-bw*100)/10;gw=n;

if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw) return 1; else return 0; ----------------------

第19题 (10.0分) 题号:29 难度:中 第4章 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:对任意输入的 x,用下式计算并输出 y 的值。 5 x<10 y= 0 x=10 -5 x>10

------------------------------------------------*/

#include void wwjt();

int fun(int n) {

/**********Program**********/

/********** End **********/ }

void main () {

int x,y;

printf(\ scanf(\ y=fun(x);

printf(\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int i; int iIN; long int iOUT;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(i=0;i<5;i++) {

fscanf(IN,\ iOUT=fun(iIN);

fprintf(OUT,\

}

fclose(IN); fclose(OUT); }

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

第20题 (10.0分) 题号:316 难度:易 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:统计出若干个学生的平均成绩,最高分以及得最高 分的人数。

例如:输入10名学生的成绩分别为92,87,68,56,92, 84,67,75,92,66,则输出平均成绩为77.9, 最高分为92,得最高分的人数为3人。

------------------------------------------------*/

#include void wwjt();

float Max=0; int J=0;

第2章

float fun(float array[],int n) {

/**********Program**********/

/********** End **********/ }

main( ) {

float a[10],ave; int i=0;

for(i=0;i<10;i++) scanf(\ ave=fun(a,10);

printf(\ printf(\ printf(\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; float iIN[10],iOUT; int iCOUNT;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(iCOUNT=0;iCOUNT<10;iCOUNT++)

fscanf(IN,\ iOUT=fun(iIN,10);

fprintf(OUT,\ fclose(IN); fclose(OUT); }

答案:---------------------- int i;float sum=0,ave; Max=array[0]; for(i=0;i

{ if(Max

----------------------

第21题 (10.0分) 题号:389 难度:易 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:编写函数求表达式的和(n的值由主函数输入)。 1-1/2+1/3-1/4+......+1/m

例如:当n=20时,表达式的值为0.668771。

------------------------------------------------*/

#include void wwjt();

double sum(int n) {

/**********Program**********/

/********** End **********/ }

第2章 main() { int n;

scanf(\

printf(\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int n; int i[10]; double o;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(n=0;n<5;n++)

fscanf(IN,\ for(n=0;n<5;n++) {

o = sum(i[n]);

fprintf(OUT,\ }

fclose(IN); fclose(OUT); }

答案:---------------------- float s=0; int i,k=1; for(i=1;i<=n;i++) { s=s+k*1.0/i; k=-k; } return(s);

----------------------

第22题 (10.0分) 题号:322 难度:中 第2章 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:判断一个整数w的各位数字平方之和能否被5整除, 可以被5整除则返回1,否则返回0。

------------------------------------------------*/

#include #include\void wwjt();

int fun(int w) {

/**********Program**********/

/********** End **********/ }

main() { int m;

printf(\ scanf(\

printf(\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int c ; int t; int o;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ } for(c=1;c<=5;c++) {

fscanf(IN,\ o=fun(t);

fprintf(OUT,\ }

fclose(IN); fclose(OUT); }

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

----------------------

第23题 (10.0分) 题号:22 难度:易 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:从键盘为一维整型数组输入10个整数,调用fun 函数找出其中最小的数,并在main函数中输出。 请编写fun函数。

-------------------------------------------------*/

#include \void wwjt();

第1章 int fun(int x[],int n) {

/**********Program**********/

/********** End **********/ } main() {

int a[10],i,min; for(i=0;i<10;i++) scanf(\ for(i=0;i<10;i++) printf(\ printf(\ min=fun(a,10); printf(\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int iIN[10],i; int iOUT,iCOUNT; IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(i=0;i<10;i++)

{

for(iCOUNT=0;iCOUNT<10;iCOUNT++) fscanf(IN,\ iOUT=fun(iIN,10);

fprintf(OUT,\ }

fclose(IN); fclose(OUT); }

答案:---------------------- int min,i; min=x[0]; for(i=1;i

{if(x[i]

----------------------

第24题 (10.0分) 题号:327 难度:易 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:能计算从1开始到n的自然数的和,n由键盘输入, 并在main()函数中输出。

------------------------------------------------*/

#include void wwjt();

int fun(int n) {

/**********Program**********/

/********** End **********/ }

第2章 main() { int m;

printf(\ scanf(\

printf(\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int t; int o; int c;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(c=1;c<=5;c++) {

fscanf(IN,\ o=fun(t);

fprintf(OUT,\ }

fclose(IN); fclose(OUT); }

答案:---------------------- int sum,i; sum =0;

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

----------------------

第25题 (10.0分) 题号:347 难度:易 第2章

/*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:把20个随机数存入一个数组,然后输出该数组中的 最小值。其中确定最小值的下标的操作在fun函数中 实现,请给出该函数的定义。

------------------------------------------------*/

#include #define VSIZE 20 void wwjt();

int vector[VSIZE] ;

int fun(int list[],int size) {

/**********Program**********/

/********** End **********/ }

main() { int i;

for (i=0;i

vector[i]=rand();

printf(\ }

i=fun(vector,VSIZE);

printf(\ wwjt(); }

void wwjt()

{ int i,t; FILE *fp ;

fp = fopen(\ for (i=0;i

fprintf(fp,\ }

t=fun(vector,VSIZE);

fprintf(fp,\ fclose(fp) ; }

答案:---------------------- int i,min=0; for(i=1; i list[i]) min=i; return min;

----------------------

第26题 (10.0分) 题号:360 难度:易 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:把20个随机数存入一个数组,然后输出该数组中的 最大值。

------------------------------------------------*/

#include #define VSIZE 20 void wwjt();

int vector[VSIZE] ;

int fun(int list[],int size) {

/**********Program**********/

第2章

/********** End **********/ } main() { int i;

for (i=0;i

vector[i]=rand();

printf(\ }

i=fun(vector,VSIZE);

printf(\ wwjt(); }

void wwjt() { int i,t; FILE *fp ;

fp = fopen(\ for (i=0;i

fprintf(fp,\ }

t=fun(vector,VSIZE);

fprintf(fp,\ fclose(fp) ; }

答案:---------------------- int i,max=0; for(i=1; i

----------------------

第27题 (10.0分) 题号:321 难度:中 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

第2章

功能:编写函数fun其功能是:根据整型形参m,计算如下 公式的值:y=1/2!+1/4!+…+1/m!(m是偶数)

------------------------------------------------*/

#include void wwjt();

double fun(int m) {

/**********Program**********/

/********** End **********/ }

main() {

int n;

printf(\ scanf(\

printf(\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int t; double o; int c;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(c=1;c<=5;c++) {

fscanf(IN,\ o=fun(t);

fprintf(OUT,\ }

fclose(IN); fclose(OUT); }

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

第28题 (10.0分) 题号:402 难度:易 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:编写函数fun生成一个对角线元素为1,其他元素都 为0的3*3的二维数组。

------------------------------------------------*/

#include void wwjt();

fun(int arr[][3]) { int i,j;

/**********Program**********/

第2章

/********** End **********/ } main() {

int a[3][3],i,j; fun(a);

for(i=0;i<3;i++) {

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

printf(\ printf(\ } wwjt(); }

void wwjt() {

FILE *IN,*OUT; int m,n; int i[3][3]; int o;

OUT=fopen(\ if(OUT==NULL)

printf(\} fun(i);

for (m=0;m<3 ;m++ ) {

for(n=0;n<3;n++) {

fprintf(OUT,\ }

fprintf(OUT,\}

fclose(IN); fclose(OUT); }

答案:---------------------- for(i=0;i<3;i++) for(j=0;j<3;j++) if(i==j) arr[i][j]=1; else

arr[i][j]=0; ----------------------

第29题 (10.0分) 题号:323 难度:易 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:求1到w之间的奇数之和。(w是大于等于100小于等 于1000的整数)

------------------------------------------------*/

#include #include\void wwjt();

long fun(int w) {

/**********Program**********/

/********** End **********/ }

main() { int m;

printf(\ scanf(\

printf(\ wwjt(); }

第2章

void wwjt() {

FILE *IN,*OUT; int c ; int t; long o;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(c=1;c<=5;c++) {

fscanf(IN,\ o=fun(t);

fprintf(OUT,\ }

fclose(IN); fclose(OUT); }

答案:---------------------- long y=0; int i;

for(i=1;i<=w;i++) if(i%2==1)y+=i; return y;

----------------------

第30题 (10.0分) 题号:501 难度:易 第20章 #include

/*------------------------------------------------------- 【程序设计】

---------------------------------------------------------

题目:从键盘输入一个大写字母,要求改用小写字母输出。

-------------------------------------------------------*/

#include void wwjt();

char fun(char c) {

/**********Program**********/

/********** End **********/ }

void main() {

char c1, c2;

printf(\ c1=getchar();

printf(\

c2=fun(c1);

printf(\ wwjt(); }

void wwjt() {

FILE *IN,*OUT; int i;

char iIN,iOUT;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(i=0;i<5;i++) {

fscanf(IN,\ iOUT=fun(iIN);

fprintf(OUT,\ }

fclose(IN); fclose(OUT); }

答案: c=c+32; return c;

第31题 (10.0分) 题号:373 难度:较易/*------------------------------------------------ 【程序设计】

--------------------------------------------------

功能:用函数求fibonacci数列前n项的和。

说明:fibonacci数列为数列的第一项值为1,第二项值也 为1,从第三项开始,每一项均为其前面相邻两项 的和。

例如:当n=28时,运行结果:832039

------------------------------------------------*/

#include void wwjt();

long sum(long f1,long f2) {

/**********Program**********/

/********** End **********/ } main() {

long int f1=1,f2=1;

printf(\ wwjt();

第2章 }

void wwjt() {

FILE *IN,*OUT; int n; int i[2]; long int o;

IN=fopen(\ if(IN==NULL) {

printf(\ }

OUT=fopen(\ if(OUT==NULL) {

printf(\ }

for(n=0;n<2;n++)

fscanf(IN,\ o = sum(i[0],i[1]); fprintf(OUT,\

fclose(IN); fclose(OUT); }

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

----------------------

第32题 (10.0分) 题号:367 难度:中 /*------------------------------------------------ 【程序设计】

--------------------------------------------------

第2章

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

Top