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

下载本文档

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

文档简介

/试卷编号:9478所属语言:C语言试卷总分:1260分共有题型:1种一、程序设计共126题〔共计1260分第1题〔10.0分题号:507难度:易第1章/*[程序设计]功能:编写函数fun求一个字符串的长度,在main函数中输入字符串,并输出其长度。*/#include<stdio.h>voidwwjt<>;intfun<char*p1>{/**********Program**********//**********End**********/}main<>{char*p,a[20];intlen;p=a;printf<"pleaseinputastring:\n">;gets<p>;len=fun<p>;printf<"Thestring'slengthis:%d\n",len>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;char*pIN,sin[20];intiOUT,i;pIN=sin;IN=fopen<"3.IN","r">;if<IN==NULL>{printf<"PleaseVerifyTheCurrerntDir..itMayBeChanged">;}OUT=fopen<"3.out","w">;if<OUT==NULL>{printf<"PleaseVerifyTheCurrentDir..itMayBeChanged">;}for<i=0;i<10;i++>{fscanf<IN,"%s",pIN>;iOUT=fun<pIN>;fprintf<OUT,"%d\n",iOUT>;}fclose<IN>;fclose<OUT>;}答案:char*p;intn=0;p=p1;while<*p++>n++;returnn;第2题〔10.0分题号:386难度:中第2章/*[程序设计]功能:用函数求N个[10,60]上的整数中能被5整除的最大的数,如存在则返回这个最大值,如果不存在则返回0。*/#defineN30#include"stdlib.h"#include<stdio.h>voidwwjt<>;intfind<intarr[],intn>{intm=0;/**********Program**********//**********End**********/return<m>;}main<>{inta[N],i,k;for<i=0;i<N;i++>a[i]=random<51>+10;for<i=0;i<N;i++>{printf<"%5d",a[i]>;if<<i+1>%5==0>printf<"\n">;}k=find<a,N>;if<k==0>printf<"NOFOUND\n">;elseprintf<"themaxis:%d\n",k>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;intn;inti[5];into;IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"ReadFILEError">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"WriteFILEError">;}for<n=0;n<5;n++>{fscanf<IN,"%d",&i[n]>;}o=find<i,5>;fprintf<OUT,"%d\n",o>;fclose<IN>;fclose<OUT>;}答案:inti;for<i=0;i<n;i++>if<arr[i]%5==0&&arr[i]>m>m=arr[i];第3题〔10.0分题号:321难度:中第2章/*[程序设计]功能:编写函数fun其功能是:根据整型形参m,计算如下公式的值:y=1/2!+1/4!+…+1/m!〔m是偶数*/#include<stdio.h>voidwwjt<>;doublefun<intm>{/**********Program**********//**********End**********/}main<>{intn;printf<"Entern:">;scanf<"%d",&n>;printf<"\nTheresultis%1f\n",fun<n>>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;intt;doubleo;intc;IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"ReadFILEError">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"WriteFILEError">;}for<c=1;c<=5;c++>{fscanf<IN,"%d",&t>;o=fun<t>;fprintf<OUT,"%f\n",o>;}fclose<IN>;fclose<OUT>;}答案:doubley=0.0;inti,j;doubles=1;for<i=2;i<=m;i+=2>{for<j=i-1;j<=i;j++>s=s*j;y=y+1.0/s;}returny;第4题〔10.0分题号:54难度:易第1章/*[程序设计]功能:求1到100之间的偶数之积。*/#include<stdio.h>voidwwjt<>;doublefun<intm>{/**********Program**********//**********End**********/}main<>{printf<"ji=%f\n",fun<100>>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;intiIN,i;doubledOUT;IN=fopen<"23.IN","r">;if<IN==NULL>{printf<"PleaseVerifyTheCurrerntDir..itMayBeChanged">;}OUT=fopen<"23.out","w">;if<OUT==NULL>{printf<"PleaseVerifyTheCurrentDir..itMayBeChanged">;}for<i=0;i<10;i++>{fscanf<IN,"%d",&iIN>;dOUT=fun<iIN>;fprintf<OUT,"%f\n",dOUT>;}fclose<IN>;fclose<OUT>;}答案:doubley=1;inti;for<i=1;i<=m;i++>if<i%2==0>y*=i;returny;第5题〔10.0分题号:62难度:难第2章/*[程序设计]功能:求5行5列矩阵的主、副对角线上元素之和。注意,两条对角线相交的元素只加一次。例如:主函数中给出的矩阵的两条对角线的和为45。*/#include<stdio.h>#defineM5voidwwjt<>;intfun<inta[M][M]>{/**********Program**********//**********End**********/}main<>{inta[M][M]={{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}};inty;y=fun<a>;printf<"s=%d\n",y>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;intiIN[M][M],iOUT;inti,j;IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"PleaseVerifyTheCurrerntDir..itMayBeChanged">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"PleaseVerifyTheCurrentDir..itMayBeChanged">;}{for<i=0;i<M;i++>for<j=0;j<M;j++>fscanf<IN,"%d",&iIN[i][j]>;iOUT=fun<iIN>;fprintf<OUT,"%d\n",iOUT>;}fclose<IN>;fclose<OUT>;}答案:ints=0;inti,j;for<i=0;i<M;i++>s=s+a[i][i]+a[i][M-1-i];s=s-a[<M-1>/2][<M-1>/2];returns;第6题〔10.0分题号:37难度:较难第6章/*[程序设计]功能:输入2个学生3门课的成绩,计算学生成绩平均分,课程平均分和最高分.例如:输入2名学生3门课的成绩分别为92,87,68,56,92,84则学生1平均分:82.33学生2平均分:77.33课程1平均分:74.00课程2平均分:89.50课程3平均分:76.00最高分为:92*/#include<stdio.h>voidwwjt<>;/*定义全局变量*//*学生成绩平均分*/floatStuAgv[2];/*课程平均分*/floatCouAgv[3];/*所有学生的所有课程最高分*/floatMax=0;/*说明:需要在下面函数中把题干要求中的结果赋值到上面定义一变量中*/voidfun<floatscore[2][3]>{/**********Program**********//**********End**********/}voidmain<>{inti,j;floatscore[2][3];printf<"输入学生的成绩:">;for<i=0;i<2;i++>for<j=0;j<3;j++>scanf<"%f",&score[i][j]>;printf<"\n输出学生的成绩:">;for<i=0;i<2;i++>{for<j=0;j<3;j++>printf<"%.2f",score[i][j]>;printf<"\n">;}fun<score>;for<i=0;i<2;i++>printf<"第%d个学生的平均成绩是:%0.2f\n",i+1,StuAgv[i]>;for<j=0;j<3;j++>printf<"第%d门课的平均成绩是:%0.2f\n",j+1,CouAgv[j]>;printf<"所有分数中的最高分为:%.2f\n",Max>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;floatiIN[2][3];inti,j;IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"PleaseVerifyTheCurrerntDir..itMayBeChanged">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"PleaseVerifyTheCurrentDir..itMayBeChanged">;}for<i=0;i<2;i++>for<j=0;j<3;j++>fscanf<IN,"%f",&iIN[i][j]>;fun<iIN>;for<i=0;i<2;i++>fprintf<OUT,"%.2f\n",StuAgv[i]>;for<j=0;j<3;j++>fprintf<OUT,"%.2f\n",CouAgv[j]>;fprintf<OUT,"%.2f\n",Max>;fclose<IN>;fclose<OUT>;return;}答案: inti,j; floatsum;for<i=0;i<2;i++>/*计算第i个学生平均分*/ { sum=0;for<j=0;j<3;j++>sum=sum+score[i][j];StuAgv[i]=sum/3; }for<j=0;j<3;j++>/*计算第j门课的平均分*/ { sum=0;for<i=0;i<2;i++>sum=sum+score[i][j];CouAgv[j]=sum/2; }Max=score[0][0];for<i=0;i<2;i++>for<j=0;j<3;j++>if<Max<=score[i][j]> { Max=score[i][j];}return;第7题〔10.0分题号:322难度:中第2章/*[程序设计]功能:判断一个整数w的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。*/#include<stdio.h>#include"conio.h"voidwwjt<>;intfun<intw>{/**********Program**********//**********End**********/}main<>{intm;printf<"Enterm:">;scanf<"%d",&m>;printf<"\nTheresultis%d\n",fun<m>>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;intc;intt;into;IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"ReadFILEError">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"WriteFILEError">;}for<c=1;c<=5;c++>{fscanf<IN,"%d",&t>;o=fun<t>;fprintf<OUT,"%d\n",o>;}fclose<IN>;fclose<OUT>;}答案:intk,s=0;do{s=s+<w%10>*<w%10>;w=w/10;}while<w!=0>;if<s%5==0>k=1;elsek=0;return<k>;第8题〔10.0分题号:513难度:中第95章/*[程序设计]题目:编程序,输入两个字符串a,b〔<40个字符,将两者连接后输出c〔不能用strcat库函数。*/#include<stdio.h>#include<string.h>voidmain<>{/**********Program**********//**********End**********/}答案:chara[40],b[40],c[80];inti,j;printf<"分二行输入两个字符串:\n">;gets<a>;gets<b>;for<i=0;a[i]!='\0';i++>c[i]=a[i];for<j=0;b[j]!='\0';j++>c[i+j]=b[j]; c[i+j]='\0';puts<c>;第9题〔10.0分题号:594难度:中第1章/*[程序设计]请编一个函数voidfun<inttt[M][N],intpp[N]>,tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include<conio.h>#include<stdio.h>#include<stdlib.h>#defineM3#defineN4voidfun<inttt[M][N],intpp[N]>{inti,j,max;/**********Program**********//**********End**********/}voidmain<>{FILE*wf;intt[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}};intp[N],i,j,k;system<"CLS">;printf<"Theriginaldatais:\n">;for<i=0;i<M;i++>{for<j=0;j<N;j++>printf<"%6d",t[i][j]>;printf<"\n">;}fun<t,p>;printf<"\nTheresultis:\n">;for<k=0;k<N;k++>printf<"%4d",p[k]>;printf<"\n">;wf=fopen<"out.txt","w">;for<k=0;k<N;k++>fprintf<wf,"%4d",p[k]>;fclose<wf>;}答案:for<j=0;j<N;j++>{max=tt[0][j];for<i=0;i<M;i++>if<tt[i][j]>max> max=tt[i][j];pp[j]=max;}第10题〔10.0分题号:319难度:中第2章/*[程序设计]功能:判断m是否为素数。*/#include"stdio.h"voidwwjt<>;intfun<intm>{/**********Program**********//**********End**********/}main<>{intm,k=0;for<m=100;m<200;m++>if<fun<m>>{printf<"%4d",m>;k++;if<k%5==0>printf<"\n">;}printf<"k=%d\n",k>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"PleaseVerifyTheCurrerntDir..ItMayBeChanged">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"PleaseVerifyTheCurrentDir..ItMayBeChanged">;}for<i=0;i<10;i++>{fscanf<IN,"%d",&iIN>;iOUT=fun<iIN>;fprintf<OUT,"%d\n",iOUT>;}fclose<IN>;fclose<OUT>;}答案:inti,k=1;if<m<=1>k=0;for<i=2;i<m;i++>if<m%i==0>k=0;returnk;第11题〔10.0分题号:366难度:易第2章/*[程序设计]功能:求一组数中大于平均值的数的个数。例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函数值为3。*/#include<stdio.h>voidwwjt<>;intfun<inta[],intn>{/**********Program**********//**********End**********/}main<>{inta[10]={1,3,6,9,4,23,35,67,12,88};inty;y=fun<a,10>;printf<"y=%d\n",y>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;intiIN[10],iOUT,i,j;IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"PleaseVerifyTheCurrerntDir..itMayBeChanged">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"PleaseVerifyTheCurrentDir..itMayBeChanged">;}for<j=0;j<10;j++>{for<i=0;i<10;i++>fscanf<IN,"%d",&iIN[i]>;iOUT=fun<iIN,10>;}fprintf<OUT,"%d\n",iOUT>;fclose<IN>;fclose<OUT>;}答案:inti,k=0;floats=0,ave;for<i=0;i<n;i++>s+=a[i];ave=s/n;printf<"%f",ave>;for<i=0;i<n;i++>if<a[i]>ave>k++;returnk;第12题〔10.0分题号:589难度:中第1章/*[程序设计]题目:请编写程序,输入一个华氏温度,要求输出摄氏温度。公式为C=5/9*<F-32>要求:输入为整型,输出为实型,保留两位小数。*/#include<stdio.h>voidwwjt<>;doublefun<intf>{/**********Program**********//**********End**********/}voidmain<>{intf;scanf<"%d",&f>;printf<"%.2f",fun<f>>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;inti;intiIN;doubleiOUT;IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"PleaseVerifyTheCurrerntDir..ItMayBeChanged">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"PleaseVerifyTheCurrentDir..ItMayBeChanged">;}for<i=0;i<5;i++>{fscanf<IN,"%d",&iIN>;iOUT=fun<iIN>;fprintf<OUT,"%.2f\n",iOUT>;}fclose<IN>;fclose<OUT>;}答案:doublec;c=5.0/9.0*<f-32>;returnc;第13题〔10.0分题号:586难度:中第1章/*[程序设计]题目:对从键盘输入的10个整数进行降序排序;排序后输出第2大的数,请编fun函数。*/#include"stdio.h"voidwwjt<>;intfun<inta[]>{/**********Program**********//**********End**********/}voidmain<>{inta[10],i,m;for<i=0;i<10;i++>scanf<"%d",&a[i]>;m=fun<a>;printf<"%d",m>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;intiIN[10],i;intiOUT,iCOUNT;IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"PleaseVerifyTheCurrerntDir..itMayBeChanged">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"PleaseVerifyTheCurrentDir..ItMayBeChanged">;}for<i=0;i<5;i++>{for<iCOUNT=0;iCOUNT<10;iCOUNT++>fscanf<IN,"%d",&iIN[iCOUNT]>;iOUT=fun<iIN>;fprintf<OUT,"%d\n",iOUT>;}fclose<IN>;fclose<OUT>;}答案:inti,j,t;for<i=0;i<9;i++>for<j=0;j<9-i;j++>if<a[j]<a[j+1]>{t=a[j];a[j]=a[j+1];a[j+1]=t;}returna[1];第14题〔10.0分题号:338难度:中第2章/*[程序设计]功能:编写程序,实现矩阵〔3行3列的转置〔即行列互换例如:输入下面的矩阵:100200300400500600700800900程序输出:100400700200500800300600900*/#include<stdio.h>voidwwjt<>;intfun<intarray[3][3]>{/**********Program**********//**********End**********/}main<>{inti,j;intarray[3][3]={{100,200,300},{400,500,600},{700,800,900}};for<i=0;i<3;i++>{for<j=0;j<3;j++>printf<"%7d",array[i][j]>;printf<"\n">;}fun<array>;printf<"Convertedarray:\n">;for<i=0;i<3;i++>{for<j=0;j<3;j++>printf<"%7d",array[i][j]>;printf<"\n">;}wwjt<>;}voidwwjt<>{inti,j,array[3][3];FILE*rf,*wf;rf=fopen<"in.dat","r">;wf=fopen<"out.dat","w">;for<i=0;i<3;i++>for<j=0;j<3;j++>fscanf<rf,"%d",&array[i][j]>;fun<array>;for<i=0;i<3;i++>{for<j=0;j<3;j++>fprintf<wf,"%7d",array[i][j]>;fprintf<wf,"\n">;}fclose<rf>;fclose<wf>;}答案:inti,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;}第15题〔10.0分题号:53难度:中第1章/*[程序设计]功能:求一个四位数的各位数字的立方和*/#include<stdio.h>voidwwjt<>;intfun<intn>{/**********Program**********//**********End**********/}main<>{intk;k=fun<1234>;printf<"k=%d\n",k>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;intiIN,iOUT,i;IN=fopen<"22.IN","r">;if<IN==NULL>{printf<"PleaseVerifyTheCurrerntDir..itMayBeChanged">;}OUT=fopen<"22.out","w">;if<OUT==NULL>{printf<"PleaseVerifyTheCurrentDir..itMayBeChanged">;}for<i=0;i<10;i++>{fscanf<IN,"%d",&iIN>;iOUT=fun<iIN>;fprintf<OUT,"%d\n",iOUT>;}fclose<IN>;fclose<OUT>;}答案:intd,k,s=0;while<n>0>{d=n%10;s+=d*d*d;n/=10;}returns;第16题〔10.0分题号:318难度:中第2章/*[程序设计]功能:输入一个字符串,过滤此串,只保留串中的字母字符,并统计新生成串中包含的字母个数。例如:输入的字符串为ab234$df4,新生成的串为abdf。*/#include<stdio.h>#include<conio.h>#defineN80voidwwjt<>;fun<char*ptr>{/**********Program**********//**********End**********/}main<>{charstr[N];ints;printf<"inputastring:">;gets<str>;printf<"TheorigINalstringis:">;puts<str>;s=fun<str>;printf<"Thenewstringis:">;puts<str>;printf<"Thereare%dcharINthenewstring.",s>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;charsin[N];intiOUT;IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"PleaseVerifyTheCurrerntDir..itMayBeChanged">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"PleaseVerifyTheCurrentDir..itMayBeChanged">;}fscanf<IN,"%s",sin>;iOUT=fun<sin>;fprintf<OUT,"%d%s\n",iOUT,sin>;fclose<IN>;fclose<OUT>;}答案:inti,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>;第17题〔10.0分题号:587难度:中第1章/*[程序设计]题目:假设m是一个三位数,编写程序输出由m的个位、十位、百位反序而成的三位数〔例如:123反序为321。请编fun函数。*/#include"stdio.h"voidwwjt<>;intfun<inta>{/**********Program**********//**********End**********/}voidmain<>{inta,k;scanf<"%d",&a>;k=fun<a>;printf<"k=%d",k>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;intiIN,i;intdOUT;IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"PleaseVerifyTheCurrerntDir..itMayBeChanged">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"PleaseVerifyTheCurrentDir..itMayBeChanged">;}for<i=0;i<5;i++>{fscanf<IN,"%d",&iIN>;dOUT=fun<iIN>;fprintf<OUT,"%d\n",dOUT>;}fclose<IN>;fclose<OUT>;}答案:intm,k,n,b;m=a/100;n=<a-m*100>/10;b=a%10;k=b*100+n*10+m;returnk;第18题〔10.0分题号:365难度:易第2章/*[程序设计]功能:求1到100之间的偶数之积。*/#include<stdio.h>voidwwjt<>;doublefun<intm>{/**********Program**********//**********End**********/}main<>{printf<"ji=%f\n",fun<100>>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;intiIN,i;doubledOUT;IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"PleaseVerifyTheCurrerntDir..itMayBeChanged">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"PleaseVerifyTheCurrentDir..itMayBeChanged">;}for<i=0;i<5;i++>{fscanf<IN,"%d",&iIN>;dOUT=fun<iIN>;fprintf<OUT,"%f\n",dOUT>;}fclose<IN>;fclose<OUT>;}答案:doubley=1;inti;for<i=1;i<=m;i++>if<i%2==0>y*=i;returny;第19题〔10.0分题号:593难度:中第1章/*[程序设计]编写函数fun<>,它的功能是求n以内<不包括n>同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。例如:n为1000时,函数值应为s=96.979379。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include<conio.h>#include<math.h>#include<stdio.h>#include<stdlib.h>doublefun<intn>{doubles=0.0;inti;/**********Program**********//**********End**********/}voidmain<>{FILE*wf;system<"CLS">;printf<"s=%f\n",fun<1000>>;wf=fopen<"out.txt","w">;fprintf<wf,"%f",fun<1000>>;fclose<wf>;}答案:for<i=0;i<n;i++>if<i%5==0&&i%11==0>s=s+i;s=sqrt<s>;returns;第20题〔10.0分题号:391难度:易第2章/*[程序设计]功能:将字符串中的小写字母转换为对应的大写字母,其它字符不变。*/#include"string.h"#include<stdio.h>voidwwjt<>;voidchange<charstr[]>{/**********Program**********//**********End**********/}main<>{voidchange<>;charstr[40];gets<str>;change<str>;puts<str>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;chari[200];IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"ReadFILEError">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"WriteFILEError">;}fscanf<IN,"%s",i>;change<i>;fprintf<OUT,"%s\n",i>;fclose<IN>;fclose<OUT>;}答案:inti;for<i=0;str[i]!='\0';i++>if<str[i]>='a'&&str[i]<='z'>str[i]=str[i]-32;第21题〔10.0分题号:384难度:易第2章/*[程序设计]功能:产生20个[30,120]上的随机整数放入二维数组a[5][4]中,求每行元素的和。*/#include"stdlib.h"#include<stdio.h>voidwwjt<>;voidrow_sum<inta[5][4],intb[5]>{/**********Program**********//**********End**********/}main<>{voidrow_sum<>;inta[5][4],b[5],i,j;for<i=0;i<5;i++>for<j=0;j<4;j++>a[i][j]=random<120-30+1>+30;for<i=0;i<5;i++>{for<j=0;j<4;j++>printf<"%5d",a[i][j]>;printf<"\n">;}row_sum<a,b>;for<i=0;i<5;i++>printf<"%6d",b[i]>;printf<"\n">;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;intm,n;inti[5][4];into[5];IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"ReadFILEError">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"WriteFILEError">;}for<m=0;m<5;m++>for<n=0;n<4;n++>fscanf<IN,"%d",&i[m][n]>;row_sum<i,o>;for<n=0;n<5;n++>fprintf<OUT,"%d\n",o[n]>;fclose<IN>;fclose<OUT>;}答案:inti,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分题号:329难度:中第2章/*[程序设计]功能:对某一正数的值保留2位小数,并对第三位进行四舍五入。*/#include<stdio.h>#include"conio.h"voidwwjt<>;doublefun<floath>{/**********Program**********//**********End**********/}main<>{floatm;printf<"Enterm:">;scanf<"%f",&m>;printf<"\nTheresultis%8.2f\n",fun<m>>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;ints;floatt;doubleo;IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"ReadFILEError">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"WriteFILEError">;}for<s=1;s<=5;s++>{fscanf<IN,"%f",&t>;o=fun<t>;fprintf<OUT,"%8.2f\n",o>;}fclose<IN>;fclose<OUT>;}答案:inti;i=<int><h*1000>%10;if<i>=5>return<int><h*100+1>/100.0;elsereturn<int><h*100>/100.0;第23题〔10.0分题号:591难度:中第1章/*[程序设计]题目:从键盘上输入一个字符串,放在数组中,要求将字符串中的大写字母转换成小写字母,小写字母转换成大写字母,非字母字符不变,并输出*/#include<stdio.h>#include<string.h>#include<conio.h>#defineN80voidwwjt<>;charfun<chara[]>{/**********Program**********//**********End**********/}voidmain<>{chara[80];chars;gets<a>;s=fun<a>;puts<a>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;charsin[N];chariOUT;IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"PleaseVerifyTheCurrerntDir..itMayBeChanged">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"PleaseVerifyTheCurrentDir..itMayBeChanged">;}fscanf<IN,"%s",sin>;iOUT=fun<sin>;fprintf<OUT,"%s\n",sin>;fclose<IN>;fclose<OUT>;}答案:inti;for<i=0;i<<strlen<a>>;i++>if<a[i]>='A'&&a[i]<='Z'>a[i]=a[i]+32;elseif<a[i]>='a'&&a[i]<='z'>a[i]=a[i]-32;returna[i];第24题〔10.0分题号:353难度:中第2章/*[程序设计]功能:对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。例如:原来的字符串为CEAedca,排序后输出为CedcEAa。*/#include<stdio.h>#include<ctype.h>#include<conio.h>voidwwjt<>;voidfun<char*s,intnum>{/**********Program**********//**********End**********/}main<>{chars[10];printf<"输入7个字符的字符串:">;gets<s>;fun<s,7>;printf<"\n%s",s>;wwjt<>;}voidwwjt<>{inti;chara[100];FILE*rf,*wf;rf=fopen<"in.dat","r">;wf=fopen<"out.dat","w">;for<i=0;i<3;i++>{fscanf<rf,"%s",&a>;fun<a,7>;fprintf<wf,"%s",a>;fprintf<wf,"\n">;}fclose<rf>;fclose<wf>;}答案:inti,j;chart;for<i=1;i<num-1;i++>for<j=i+1;j<num-1;j++>if<s[i]<s[j]>{t=s[i];s[i]=s[j];s[j]=t;}第25题〔10.0分题号:328难度:中第2章/*[程序设计]功能:求k!〔k〈13,所求阶乘的值作为函数值返回。〔要求使用递归*/#include<stdio.h>#include"conio.h"voidwwjt<>;longfun<intk>{/**********Program**********//**********End**********/}main<>{intm;printf<"Enterm:">;scanf<"%d",&m>;printf<"\nTheresultis%ld\n",fun<m>>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;ints;intt;longo;IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"ReadFILEError">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"WriteFILEError">;}for<s=1;s<=5;s++>{fscanf<IN,"%d",&t>;o=fun<t>;fprintf<OUT,"%ld\n",o>;}fclose<IN>;fclose<OUT>;}答案:if<k>0>return<k*fun<k-1>>;elseif<k==0>return1L;第26题〔10.0分题号:596难度:中第1章/*[程序设计]编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。例如,当a=16,b=35,调用该函数后,c=5361。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/#include<stdio.h>#include<stdlib.h>voidfun<inta,intb,long*c>{/**********Program**********//**********End**********/}voidmain<>{FILE*wf;inta,b;longc;system<"CLS">;printf<"Inputa,b;">;scanf<"%d%d",&a,&b>;fun<a,b,&c>;printf<"Theresultis:%ld\n",c>;wf=fopen<"out.txt","w">;fun<16,35,&c>;fprintf<wf,"%ld",c>;fclose<wf>;}答案:*c=<b%10*1000+<b/10>*100+<a%10>*10+a/10>;第27题〔10.0分题号:342难度:中第2章/*[程序设计]功能:在键盘上输入一个3行3列矩阵的各个元素的值〔值为整数,然后输出矩阵第一行与第三行元素之和,并在fun<>函数中输出。*/#include<stdio.h>voidwwjt<>;voidfun<inta[3][3]>{/**********Program**********//**********End**********/}main<>{inti,j,s,a[3][3];for<i=0;i<3;i++>{for<j=0;j<3;j++>scanf<"%d",&a[i][j]>;}s=fun<a>;printf<"Sum=%d\n",s>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;intm;intn;inti[3][3];into;IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"ReadFILEError">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"WriteFILEError">;}for<m=0;m<3;m++>{for<n=0;n<3;n++>fscanf<IN,"%d",&i[m][n]>;}o=fun<i>;{fprintf<OUT,"%d\n",o>;getch<>;}fclose<IN>;fclose<OUT>;}答案:intsum;inti,j;sum=0;for<i=0;i<3;i+=2>for<j=0;j<3;j++>sum=sum+a[i][j];returnsum;第28题〔10.0分题号:374难度:易第2章/*[程序设计]功能:编写函数实现两个数据的交换,在主函数中输入任意三个数据,调用函数对这三个数据从大到小排序。*/#include<stdio.h>voidwwjt<>;voidswap<int*a,int*b>{/**********Program**********//**********End**********/}main<>{intx,y,z;scanf<"%d%d%d",&x,&y,&z>;if<x<y>swap<&x,&y>;if<x<z>swap<&x,&z>;if<y<z>swap<&y,&z>;printf<"%3d%3d%3d",x,y,z>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;intm,n;inti[2];IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"ReadFILEError">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"WriteFILEError">;}for<n=0;n<3;n++>{for<m=0;m<2;m++>{fscanf<IN,"%d",&i[m]>;}swap<&i[0],&i[1]>;fprintf<OUT,"%d\n",i[0]>;fprintf<OUT,"%d\n",i[1]>;}fclose<IN>;fclose<OUT>;}答案:intk;k=*a;*a=*b;*b=k;第29题〔10.0分题号:323难度:易第2章/*[程序设计]功能:求1到w之间的奇数之和。〔w是大于等于100小于等于1000的整数*/#include<stdio.h>#include"conio.h"voidwwjt<>;longfun<intw>{/**********Program**********//**********End**********/}main<>{intm;printf<"Enterm:">;scanf<"%d",&m>;printf<"\nTheresultis%ld\n",fun<m>>;wwjt<>;}voidwwjt<>{FILE*IN,*OUT;intc;intt;longo;IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"ReadFILEError">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"WriteFILEError">;}for<c=1;c<=5;c++>{fscanf<IN,"%d",&t>;o=fun<t>;fprintf<OUT,"%ld\n",o>;}fclose<IN>;fclose<OUT>;}答案:longy=0;inti;for<i=1;i<=w;i++>if<i%2==1>y+=i;returny;第30题〔10.0分题号:320难度:中第2章/*[程序设计]功能:在键盘上输入一个3行3列矩阵的各个元素的值〔值为整数,然后输出主对角线元素的积,并在fun<>函数中输出。*/#include<stdio.h>voidwwjt<>;main<>{inti,j,s,a[3][3];;for<i=0;i<3;i++>{for<j=0;j<3;j++>scanf<"%d",&a[i][j]>;}s=fun<a>;printf<"Sum=%d\n",s>;wwjt<>;}intfun<inta[3][3]>{/**********Program**********//**********End**********/}voidwwjt<>{FILE*IN,*OUT;intm;intn;inti[3][3];into;IN=fopen<"in.dat","r">;if<IN==NULL>{printf<"ReadFILEError">;}OUT=fopen<"out.dat","w">;if<OUT==NULL>{printf<"WriteFILEError">;}for<m=0;m<3;m++>{for<n=0;n<3;n++>fscanf<IN,"%d",&i[m][n]>;}o=fun<i>;{fprintf<OUT,"%d\n",o>;getch<>;}fclose<IN>;fclose<OUT>;}答案:intsum;inti,j;sum=1;for<i=0;i<3;i++>sum=sum*a[i][i];returnsum;第31题〔10.0分题号:511难度:中第94章/*[程序设计]题目:一个3×5的整数矩阵,输出其中最大值max、最小值min和它们各自的下标。*/#include<stdio.h>voidwwjt<>;intmin,minl,minh,max,maxl,maxh;voidfun<inta[3][5]>{inti,j;/**********Program**********//**********End**********/}voidmain<>{inta[3][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14},i,j;for<i=0;i<3;i++>for<j=0;j<5;j+

温馨提示

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

评论

0/150

提交评论