收藏 分销(赏)

万维考试系统-C语言题库-程序设计题导出-113道.doc

上传人:xrp****65 文档编号:5917208 上传时间:2024-11-23 格式:DOC 页数:186 大小:421KB 下载积分:10 金币
下载 相关 举报
万维考试系统-C语言题库-程序设计题导出-113道.doc_第1页
第1页 / 共186页
万维考试系统-C语言题库-程序设计题导出-113道.doc_第2页
第2页 / 共186页


点击查看更多>>
资源描述
一、程序设计 共113题 (共计1130分) 第1题 (10.0分) 题号:390 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:编写函数求1~100中奇数的平方和。 结果为166650.000000。 ------------------------------------------------*/ #include <stdio.h> void wwjt(); float sum(int n) { /**********Program**********/ /********** End **********/ } 答案:---------------------- float s=0; int i; for(i=1;i<=n;i=i+2) s=s+i*i; return(s); ---------------------- 第2题 (10.0分) 题号:320 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:在键盘上输入一个3行3列矩阵的各个元素的值(值 为整数),然后输出主对角线元素的积,并在fun() 函数中输出。 ------------------------------------------------*/ #include <stdio.h> void wwjt(); main() { int i,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(); } 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("in.dat","r"); if(IN==NULL) { printf("Read FILE Error"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Write FILE Error"); } 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); } 答案:---------------------- int sum; int i,j; sum=1; for(i=0;i<3;i++) sum=sum*a[i][i]; return sum; ---------------------- 第3题 (10.0分) 题号:324 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:能计算从1开始到n的自然数中偶数的平方的和,n由 键盘输入,并在main()函数中输出。(n是偶数) ------------------------------------------------*/ #include <stdio.h> void wwjt(); int fun(int n) { /**********Program**********/ /********** End **********/ } main() { int m; printf("Enter m: "); scanf("%d", &m); printf("\nThe result is %d\n", fun(m)); wwjt(); } void wwjt() { FILE *IN,*OUT; int t; int 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,"%d\n",o); } fclose(IN); fclose(OUT); } 答案:---------------------- int sum,i; sum =0; for(i=2;i<=n;i=i+2) { sum=sum+i*i;} return(sum); ---------------------- 第4题 (10.0分) 题号:345 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:将两个两位数的正整数a、b合并形成一个整数放在c 中。合并的方式是:将a数的十位和个位数依次放在 c数的千位和十位上, b数的十位和个位数依次放在 c数的个位和百位上。 例如:当a=45,b=12。调用该函数后,c=4251。 ------------------------------------------------*/ #include <stdio.h> void wwjt(); void fun(int a, int b, long *c) { /**********Program**********/ /********** End **********/ } main() { int a,b; long c; printf("input a, b:"); scanf("%d%d", &a, &b); fun(a, b, &c); printf("The result is: %ld\n", c); wwjt(); } void wwjt ( ) { FILE *rf, *wf ; int i, a,b ; long c ; rf = fopen("in.dat", "r") ; wf = fopen("out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fscanf(rf, "%d,%d", &a, &b) ; fun(a, b, &c) ; fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c) ; } fclose(rf) ; fclose(wf) ; } 答案:---------------------- *c=a/10*1000+a%10*10+b/10+b%10*100; ---------------------- 第5题 (10.0分) 题号:366 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:求一组数中大于平均值的数的个数。 例如:给定的一组数为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 a[10]={1,3,6,9,4,23,35,67,12,88}; int y; y=fun(a,10); printf("y=%d\n",y); wwjt(); } void wwjt() { FILE *IN,*OUT; int iIN[10],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"); } 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); } 答案:---------------------- int i,k=0; float s=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++; return k; ---------------------- 第6题 (10.0分) 题号:355 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:对长度为8个字符的字符串,将8个字符按降序排列。 例如:原来的字符串为CEAedcab,排序后输出为edcbaECA。 ------------------------------------------------*/ Firefox 答案:---------------------- int i,j; char t; for(i=0;i<num;i++) for(j=i+1;j<num;j++) if(s[i]<s[j]) { t=s[i];s[i]=s[j];s[j]=t;} ---------------------- 第7题 (10.0分) 题号:44 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:求出二维数组周边元素之和,作为函数值返回。二 维数组的值在主函数中赋予。 -------------------------------------------------*/ #define M 4 #define N 5 #include <stdio.h> void wwjt(); int fun(int a[M][N]) { /**********Program**********/ /********** End **********/ } main() { int a[M][N]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8}}; int y; y=fun(a); printf("s=%d\n",y); wwjt(); } void wwjt() { FILE *IN,*OUT; int iIN[M][N],iOUT; int i,j,k; IN=fopen("14.IN","r"); if(IN==NULL) {printf("Please Verify The Currernt Dir..it May Be Changed"); } OUT=fopen("14.out","w"); if(OUT==NULL) {printf("Please Verify The Current Dir.. it May Be Changed"); } for(k=0;k<10;k++) { for(i=0;i<M;i++) for(j=0;j<N;j++) fscanf(IN,"%d",&iIN[i][j]); iOUT=fun(iIN); fprintf(OUT,"%d\n",iOUT); } fclose(IN); fclose(OUT); } 答案:---------------------- int s=0; int i,j; for(i=0;i<M;i++) s=s+a[i][0]+a[i][N-1]; for(j=1;j<N-1;j++) s=s+a[0][j]+a[M-1][j]; return s; ---------------------- 第8题 (10.0分) 题号:339 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:判断整数x是否是同构数。若是同构数,函数返回1; 否则返回0。x的值由主函数从键盘读入,要求不大 于100。 说明:所谓“同构数”是指这样的数,这个数出现在它的 平方数的右边。 例如:输入整数5,5的平方数是25,5是25中右侧的数,所 以5是同构数。 ------------------------------------------------*/ #include <stdio.h> void wwjt(); int fun(int x) { /**********Program**********/ /********** End **********/ } main() { int x,y; printf("\nPlease enter a integer numbers:"); scanf("%d",&x); if(x>100) { printf("data error!\n"); exit(0); } y=fun(x); if(y) printf("%d YES\n",x); else printf("%d NO\n",x); wwjt(); } void wwjt() { FILE *IN,*OUT; int n,t; int o; 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(t = 0 ; t < 5 ; t++) { fscanf(IN, "%d", &n) ; o=fun(n); fprintf(OUT, "%d\n",o ) ; } fclose(IN); fclose(OUT); } 答案:---------------------- int k; k=x*x; if((k%10==x)||(k%100==x)) return 1; else return 0; ---------------------- 第9题 (10.0分) 题号:383 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:用函数实现字符串的复制, 不允许用strcpy()函数。 ------------------------------------------------*/ #include <stdio.h> void wwjt(); void copy(char str1[],char str2[]) { /**********Program**********/ /********** End **********/ } main() { void copy(); char c1[40],c2[40]; gets(c1); copy(c1,c2); puts(c2); wwjt(); } void wwjt() { FILE *IN,*OUT; char i[100]; char o[100]; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Read FILE Error"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Write FILE Error"); } fscanf(IN,"%s",i); copy(i,o); fprintf(OUT,"%s\n",o); fclose(IN); fclose(OUT); } 答案:---------------------- 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时,应输出704。 ------------------------------------------------*/ #include <stdio.h> void wwjt(); int fun(int n) { /**********Program**********/ /********** End **********/ } main() { printf("s=%d\n",fun(855)); 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("out.dat","w"); if(OUT==NULL) { printf("Please Verify The Current Dir.. it May Be Changed"); } for(i=0;i<5;i++) { fscanf(IN,"%d",&iIN); iOUT=fun(iIN); fprintf(OUT,"%d\n",iOUT); } fclose(IN); fclose(OUT); } 答案:---------------------- int s=0,i; for(i=2;i<n;i++) if(n%i==0)s=s+i; return s; ---------------------- 第11题 (10.0分) 题号:354 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:求小于lim的所有素数并放在aa数组中,该函数返回 所求出素数的个数。 ------------------------------------------------*/ #include<stdio.h> #include<conio.h> #define MAX 100 void wwjt(); int fun(int lim,int aa[MAX]) { /**********Program**********/ /********** End **********/ } main() { int limit,i,sum; int aa[MAX]; printf("Please input ainteger:"); scanf("%d",&limit); sum=fun(limit,aa); for(i=0;i<sum;i++){ if(i%10==0&&i!=0) printf("\n"); printf("%5d",aa[i]); } wwjt(); } void wwjt() { int i,j,array[100],sum,lim; FILE *rf, *wf ; rf = fopen("in.dat", "r") ; wf = fopen("out.dat", "w") ; for (j=0; j <= 5; j++) { fscanf(rf, "%d", &lim); sum=fun(lim,array); for(i=0;i<sum;i++) fprintf(wf, "%7d", array[i]); fprintf(wf, "\n"); } fclose(rf); fclose(wf); } 答案:---------------------- int n=0; int i,j; for(i=2;i<=lim;i++) {for(j=2;j<i;j++) if(i%j==0) break; if(j==i) aa[n++]=i; } return n; ---------------------- 第12题 (10.0分) 题号:341 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:删除所有值为y的元素。数组元素中的值和y的值由 主函数通过键盘输入。 ------------------------------------------------*/ #include <stdio.h> #include<conio.h> #include<stdio.h> #define M 20 void wwjt(); void fun(int bb[],int *n,int y) { /**********Program**********/ /********** End **********/ } main() { int aa[M],n,y,k; printf("\nPlease enter n:");scanf("%d",&n); printf("\nEnter %d positive number:\n",n); for(k=0;k<n;k++) scanf("%d",&aa[k]); printf("The original data is:\n"); for(k=0;k<n;k++) printf("%5d",aa[k]); printf("\nEnter a number to deletede:");scanf("%d",&y); fun(aa,&n,y); printf("The data after deleted %d:\n",y); for(k=0;k<n;k++) printf("%4d",aa[k]); printf("\n"); wwjt(); } void wwjt() { FILE *IN,*OUT; int n; int i[10]; int o; 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(n=0;n<10;n++) { fscanf(IN,"%d",&i[n]); } fun(i,&n,3); for(o=0;o<n;o++) { fprintf(OUT,"%d\n",i[o]); } fclose(IN); fclose(OUT); } 答案:---------------------- 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,列坐标为1。 ------------------------------------------------*/ #define N 4 #define M 3 #include <stdio.h> void wwjt(); int Row,Col; int fun(int array[N][M]) { /**********Program**********/ /********** End **********/ } main() { int a[N][M],i,j,max; printf("input a array:"); for(i=0;i<N;i++) for(j=0;j<M;j++) scanf("%d",&a[i][j]); for(i=0;i<N;i++) { for(j=0;j<M;j++) printf("%d",a[i][j]); printf("\n"); } max=fun(a); printf("max=%d,row=%d,col=%d",max,Row,Col); wwjt(); } void wwjt() { FILE *IN,*OUT; int iIN[N][M],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"); } for(i=0;i<N;i++) for(j=0;j<M;j++) fscanf(IN,"%d",&iIN[i][j]); iOUT=fun(iIN); fprintf(OUT,"%d %d %d\n",iOUT,Row,Col); fclose(IN); fclose(OUT); } 答案:---------------------- int max,i,j; max=array [0][0]; Row=0; Col=0; for(i=0;i<N;i++) {for(j=0;j<M;j++) if(max<array [i][j]) {max=array [i][j]; Row=i; Col=j;} } return(max); ---------------------- 第14题 (10.0分) 题号:392 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:求一批数中最大值和最小值的积。 ------------------------------------------------*/ #define N 30 #include "stdlib.h" #include <stdio.h> void wwjt(); int max_min(int a[],int n) { /**********Program**********/ /********** E
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服