青海大学题库c语言程序设计_第1页
青海大学题库c语言程序设计_第2页
青海大学题库c语言程序设计_第3页
青海大学题库c语言程序设计_第4页
青海大学题库c语言程序设计_第5页
已阅读5页,还剩197页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、试卷编号:9478所属语言:C语言试卷总分:1260分共有题型:1种一、程序设计 共126题 (共计1260分)第1题 (10.0分) 题号:507 难度:易 第1章/*-【程序设计】-功能:编写函数fun求一个字符串的长度,在main函数中 输入字符串,并输出其长度。-*/#include <stdio.h>void wwjt(); int fun(char *p1) /*Program*/ /* End */ main() char *p,a20; int len; p=a; printf("please input a string:n"); gets(p

2、); len=fun(p); printf("The string's length is:%dn",len); wwjt();void wwjt() FILE *IN,*OUT; char *pIN,sin20; int iOUT,i; pIN=sin; IN=fopen("3.IN","r"); if(IN=NULL) printf("Please Verify The Currernt Dir.it May Be Changed"); OUT=fopen("3.out","

3、;w"); if(OUT=NULL) printf("Please Verify The Current Dir. it May Be Changed"); for(i=0;i<10;i+) fscanf(IN,"%s",pIN); iOUT=fun(pIN); fprintf(OUT,"%dn",iOUT); fclose(IN); fclose(OUT);答案:-char *p;int n=0;p=p1;while(*p+) n+; return n;-第2题 (10.0分) 题号:386 难度:中 第2章/*-【

4、程序设计】-功能:用函数求N个10,60上的整数中能被5整除的最大 的数,如存在则返回这个最大值,如果不存在则 返回0。-*/#define N 30#include "stdlib.h"#include <stdio.h>void wwjt(); int find(int arr,int n) int m=0; /*Program*/ /* End */ return(m);main() int aN,i,k; for(i=0;i<N;i+) ai=random(51)+10; for(i=0;i<N;i+) printf("%5d&qu

5、ot;,ai); if(i+1)%5=0) printf("n"); k=find(a,N); if(k=0) printf("NO FOUNDn"); else printf("the max is:%dn",k); wwjt();void wwjt() FILE *IN,*OUT; int n; int i5; int o; IN=fopen("in.dat","r"); if(IN=NULL) printf("Read FILE Error"); OUT=fopen(&

6、quot;out.dat","w"); if(OUT=NULL) printf("Write FILE Error"); for(n=0;n<5;n+) fscanf(IN,"%d",&in); o=find(i,5); fprintf(OUT,"%dn",o); fclose(IN); fclose(OUT);答案:-int i; for(i=0;i<n;i+) if(arri%5=0 && arri>m) m=arri;-第3题 (10.0分) 题号:321

7、难度:中 第2章/*-【程序设计】-功能:编写函数fun其功能是:根据整型形参m,计算如下 公式的值:y=1/2!+1/4!+1/m!(m是偶数)-*/#include <stdio.h>void wwjt();double fun(int m) /*Program*/ /* End */main() int n; printf("Enter n: "); scanf("%d", &n); printf("nThe result is %1fn", fun(n); wwjt(); void wwjt() FILE

8、*IN,*OUT; int t; double o; int c; IN=fopen("in.dat","r"); if(IN=NULL) printf("Read FILE Error"); OUT=fopen("out.dat","w"); if(OUT=NULL) printf("Write FILE Error"); for(c=1;c<=5;c+) fscanf(IN,"%d",&t); o=fun(t); fprintf(OUT,

9、"%fn",o); 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;第4题 (10.0分) 题号:54 难度:易 第1章/*-【程序设计】-功能:求1到100之间的偶数之积。-*/ #include <stdio.h> void wwjt(); double fun(int m) /*Program*/ /* End */ main() printf(&quo

10、t;ji=%fn",fun(100); wwjt();void wwjt() FILE *IN,*OUT; int iIN,i; double dOUT; IN=fopen("23.IN","r"); if(IN=NULL) printf("Please Verify The Currernt Dir.it May Be Changed"); OUT=fopen("23.out","w"); if(OUT=NULL) printf("Please Verify The Cur

11、rent Dir. it May Be Changed"); for(i=0;i<10;i+) fscanf(IN,"%d",&iIN); dOUT=fun(iIN); fprintf(OUT,"%fn",dOUT); fclose(IN); fclose(OUT);答案:-double y=1; int i; for(i=1;i<=m;i+) if(i%2=0)y*=i; return y;-第5题 (10.0分) 题号:62 难度:难 第2章/*-【程序设计】-功能:求5行5列矩阵的主、副对角线上元素之和。注意, 两条对

12、角线相交的元素只加一次。例如:主函数中给出的矩阵的两条对角线的和为45。-*/#include <stdio.h>#define M 5void wwjt(); int fun(int aMM) /*Program*/ /* End */ main() int aMM=1,3,5,7,9,2,4,6,8,10,2,3,4,5,6,4,5,6,7,8,1,3,4,5,6; int y; y=fun(a); printf("s=%dn",y); wwjt();void wwjt() FILE *IN,*OUT; int iINMM,iOUT; int i,j; IN

13、=fopen("in.dat","r"); if(IN=NULL) printf("Please Verify The Currernt Dir.it May Be Changed"); OUT=fopen("out.dat","w"); if(OUT=NULL) printf("Please Verify The Current Dir. it May Be Changed"); for(i=0;i<M;i+) for(j=0;j<M;j+) fscanf(IN

14、,"%d",&iINij); iOUT=fun(iIN); fprintf(OUT,"%dn",iOUT); fclose(IN); fclose(OUT);答案:-int s=0; int i,j; for(i=0;i<M;i+) s=s+aii+aiM-1-i; s=s-a(M-1)/2(M-1)/2; return s;-第6题 (10.0分) 题号:37 难度:较难 第6章/*-【程序设计】-功能:输入2个学生3门课的成绩,计算学生成绩平均分, 课程平均分和最高分. 例如:输入2名学生3门课的成绩分别为92,87,68,56, 92

15、,84 则 学生1平均分:82.33 学生2平均分:77.33 课程1平均分:74.00 课程2平均分:89.50 课程3平均分:76.00 最高分为:92-*/#include <stdio.h>void wwjt(); /*定义全局变量*/*学生成绩平均分*/float StuAgv2;/*课程平均分*/float CouAgv3;/*所有学生的所有课程最高分*/float Max=0;/*说明:需要在下面函数中把题干要求中的结果赋值到上面定义一变量中*/void fun(float score23) /*Program*/ /* End */ void main() int

16、i,j; float score23; printf("输入学生的成绩:"); for(i=0;i<2;i+) for(j=0;j<3;j+) scanf("%f",&scoreij); printf("n输出学生的成绩:"); for(i=0;i<2;i+) for(j=0;j<3;j+) printf("%.2f ",scoreij); printf("n"); fun (score); for(i=0;i<2;i+) printf("第%d个

17、学生的平均成绩是:%0.2fn",i+1,StuAgvi); for(j=0;j<3;j+) printf("第%d门课的平均成绩是:%0.2fn",j+1,CouAgvj); printf("所有分数中的最高分为:%.2fn",Max); wwjt();void wwjt() FILE *IN,*OUT; float iIN23; int i,j; IN=fopen("in.dat","r"); if(IN=NULL) printf("Please Verify The Currernt

18、 Dir.it May Be Changed"); OUT=fopen("out.dat","w"); if(OUT=NULL) printf("Please Verify The Current Dir. it May Be Changed"); for(i=0;i<2;i+) for(j=0;j<3;j+) fscanf(IN,"%f",&iINij); fun(iIN); for(i=0;i<2;i+) fprintf(OUT,"%.2fn",StuAg

19、vi); for(j=0;j<3;j+) fprintf(OUT,"%.2fn",CouAgvj); fprintf(OUT,"%.2fn",Max); fclose(IN); fclose(OUT); return ;答案:int i,j;float sum; for(i=0;i<2;i+) /*计算第i个学生平均分*/ sum=0; for(j=0;j<3;j+) sum=sum+scoreij; StuAgvi=sum/3; for(j=0;j<3;j+) /*计算第j门课的平均分*/ sum=0; for(i=0;i<

20、;2;i+) sum=sum+ score ij; CouAgvj=sum/2; Max=score00; for(i=0;i<2;i+) for(j=0;j<3;j+) if(Max<=scoreij) Max=scoreij; return ;第7题 (10.0分) 题号:322 难度:中 第2章/*-【程序设计】-功能:判断一个整数w的各位数字平方之和能否被5整除, 可以被5整除则返回1,否则返回0。-*/#include <stdio.h>#include"conio.h"void wwjt(); int fun(int w) /*Pr

21、ogram*/ /* End */ main() int m; printf("Enter m: "); scanf("%d", &m); printf("nThe result is %dn", fun(m); wwjt();void wwjt() FILE *IN,*OUT; int c ; int t; int o; IN=fopen("in.dat","r"); if(IN=NULL) printf("Read FILE Error"); OUT=fopen(

22、"out.dat","w"); if(OUT=NULL) printf("Write FILE Error"); for(c=1;c<=5;c+) fscanf(IN,"%d",&t); o=fun(t); fprintf(OUT,"%dn",o); fclose(IN); fclose(OUT);答案:-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);-

23、第8题 (10.0分) 题号:513 难度:中 第95章/*-【程序设计】-题目:编程序,输入两个字符串a,b(<40个字符),将两者连接后输出c(不能用strcat库函数)。-*/#include <stdio.h>#include <string.h> void main( ) /*Program*/* End */ 答案: char a40, b40, c80; int i, j; printf("分二行输入两个字符串: n"); gets(a); gets(b); for( i=0; ai!='0' i+) ci=ai;

24、 for( j=0; bj!='0' j+) ci+j=bj; ci+j='0' puts(c);第9题 (10.0分) 题号:594 难度:中 第1章/*-【程序设计】-请编一个函数void fun(int ttMN, int ppN), tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:-*/#include <conio.h>#include &

25、lt;stdio.h>#include <stdlib.h>#define M 3#define N 4void fun(int ttMN, int ppN) int i, j, max; /*Program*/ /* End */void main() FILE *wf; int tMN = 68, 32, 54, 12,14, 24, 88, 58,42, 22, 44, 56; int pN, i, j, k; system("CLS"); printf("The riginal data is:n"); for(i = 0; i

26、 < M; i+) for(j = 0; j < N; j+) printf("%6d", tij); printf("n"); fun(t, p); printf("nThe result is:n"); for(k = 0; k < N; k+) printf("%4d", pk); printf("n"); wf=fopen("out.txt", "w"); for(k=0; k < N; k+) fprintf(wf, &q

27、uot;%4d", pk); fclose(wf);答案: for(j = 0; j < N; j+) max = tt0j; for(i = 0; i < M; i+) if(ttij > max) max = ttij; ppj = max; 第10题 (10.0分) 题号:319 难度:中 第2章/*-【程序设计】-功能:判断m是否为素数。-*/#include "stdio.h"void wwjt(); int fun(int m) /*Program*/ /* End */ main() int m,k=0; for(m=100;m&l

28、t;200;m+) if(fun(m) printf("%4d",m); k+; if(k%5=0) printf("n"); printf("k=%dn",k); wwjt();void wwjt() FILE *IN,*OUT; int iIN,iOUT,i; IN=fopen("in.dat","r"); if(IN=NULL) printf("Please Verify The Currernt Dir.It May Be Changed"); OUT=fopen(&

29、quot;out.dat","w"); if(OUT=NULL) printf("Please Verify The Current Dir. It May Be Changed"); for(i=0;i<10;i+) fscanf(IN,"%d",&iIN); iOUT=fun(iIN); fprintf(OUT,"%dn",iOUT); fclose(IN); fclose(OUT); 答案:- int i,k=1; if(m<=1) k=0; for(i=2;i<m;i+)

30、 if(m%i=0) k=0; return k;-第11题 (10.0分) 题号:366 难度:易 第2章/*-【程序设计】-功能:求一组数中大于平均值的数的个数。例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函 数值为3。-*/ #include <stdio.h>void wwjt(); int fun(int a,int n) /*Program*/ /* End */ main() int a10=1,3,6,9,4,23,35,67,12,88; int y; y=fun(a,10); printf("y=%dn",y);

31、wwjt();void wwjt() FILE *IN,*OUT; int iIN10,iOUT,i,j; IN=fopen("in.dat","r"); if(IN=NULL) printf("Please Verify The Currernt Dir.it May Be Changed"); OUT=fopen("out.dat","w"); if(OUT=NULL) printf("Please Verify The Current Dir. it May Be Changed

32、"); for(j=0;j<10;j+) for(i=0;i<10;i+) fscanf(IN,"%d",&iINi); iOUT=fun(iIN,10); fprintf(OUT,"%dn",iOUT); fclose(IN); fclose(OUT);答案:-int i,k=0; float s=0,ave; for(i=0;i<n;i+) s+=ai; ave=s/n; printf("%f ",ave); for(i=0;i<n;i+) if(ai>ave)k+; return

33、k;-第12题 (10.0分) 题号:589 难度:中 第1章/*-【程序设计】-题目:请编写程序,输入一个华氏温度,要求输出摄氏温度。 公式为 C=5/9*(F-32) 要求:输入为整型,输出为实型,保留两位小数。-*/#include <stdio.h>void wwjt();double fun(int f) /*Program*/ /* End */void main() int f; scanf("%d",&f); printf("%.2f",fun(f); wwjt();void wwjt() FILE *IN,*OUT;

34、 int i; int iIN; double iOUT; IN=fopen("in.dat","r"); if(IN=NULL) printf("Please Verify The Currernt Dir.It May Be Changed"); OUT=fopen("out.dat","w"); if(OUT=NULL) printf("Please Verify The Current Dir. It May Be Changed"); for(i=0;i<5;

35、i+) fscanf(IN,"%d",&iIN); iOUT=fun(iIN); fprintf(OUT,"%.2fn",iOUT); fclose(IN); fclose(OUT);答案: double c; c = 5.0 / 9.0 * (f - 32); return c;第13题 (10.0分) 题号:586 难度:中 第1章/*-【程序设计】-题目:对从键盘输入的10个整数进行降序排序; 排序后输出第2大的数,请编fun函数。-*/#include "stdio.h"void wwjt();int fun(int

36、a) /*Program*/ /* End */void main() int a10,i,m; for(i=0;i<10;i+) scanf("%d",&ai); m=fun(a); printf("%d ",m); wwjt();void wwjt() FILE *IN,*OUT; int iIN10,i; int iOUT,iCOUNT; IN=fopen("in.dat","r"); if(IN=NULL) printf("Please Verify The Currernt Dir

37、.it May Be Changed"); OUT=fopen("out.dat","w"); if(OUT=NULL) printf("Please Verify The Current Dir. It May Be Changed"); for(i=0;i<5;i+) for(iCOUNT=0;iCOUNT<10;iCOUNT+) fscanf(IN,"%d",&iINiCOUNT); iOUT=fun(iIN); fprintf(OUT,"%dn",iOUT)

38、; fclose(IN); fclose(OUT);答案: int i,j,t; for(i=0;i<9;i+) for(j=0;j<9-i;j+) if (aj<aj+1 ) t=aj; aj=aj+1; aj+1=t; return a1;第14题 (10.0分) 题号:338 难度:中 第2章/*-【程序设计】-功能:编写程序,实现矩阵(3行3列)的转置(即行列互换) 例如:输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 100 400 700 200 500 800 300 600 900 -*/#include

39、<stdio.h>void wwjt(); int fun(int array33) /*Program*/ /* End */ main() int i,j; int array33=100,200,300, 400,500,600, 700,800,900; for (i=0; i < 3; i+) for (j=0; j < 3; j+) printf("%7d",arrayij); printf("n"); fun(array); printf("Converted array:n"); for (i=0; i < 3; i+) for (j=0; j < 3; j+) printf("%7d",arrayij); printf("n"); wwjt(); void wwjt() int i,j, array33; FILE *rf, *wf ; rf = fopen("in.dat", "r") ; wf = fop

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论