浙江省二级C语言程序设计题2

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C程序设计题2一、要求说明:1.在考生文件夹的Paper/CD2子文件夹中,已有CD2.c文件2.该程序中标有部分为考试需要程序设计部分的标志。考生需根据程序的功能设计编写程序,并调试运行程序;3.单击“回答”按钮后进行程序设计;二、注意事项:1.在设计时,不得删除设计部分标志;2.不得对设计部分标志以外的程序内容进行加行、减行、加句、减句。三、程序功能:11.将数组a的每1行均除以该行上的主对角元素;2.说明:第1行都除以a[0][0];第2行都除以a[1][1],...#includestdio.h#includemath.hvoidmain(){FILE*fp;doublec;inti,j;doublea[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}};/****考生在以下空白处写入执行语句******//****考生在以上空白处写入执行语句******/for(i=0;i3;i++){for(j=0;j3;j++)printf(%7.3f,a[i][j]);putchar('\n');}fp=fopen(CD2.dat,wb);fwrite(*a+8,8,1,fp);fclose(fp);}2x,y为取值在区间[0,10]的整数,计算并显示函数f(x,y)在区间内取值最小点x1、y1。#includestdio.hlongf(longx,longy){yyyxxxyxf)7()6()5(3),(return3*(x-5)*x+x*(y-6)+(y-7)*y;}voidmain(){FILE*fp;longmin,x1,y1,x,y;/****考生在以下空白处写入执行语句******//****考生在以上空白处写入执行语句******/printf(%d(%d,%d)\n,min,x1,y1);fp=fopen(CD2.dat,wb);fwrite(&min,4,1,fp);fwrite(&x1,4,1,fp);fwrite(&y1,4,1,fp);fclose(fp);}}31.计算字符串s中每个字符的权重值并依次写入到数组a。2.权重值是字符的位置值与该字符ASCII码值的乘积。首字符位置值为1,最后一个字符的位置值为strlen(s)#includestdio.h#includestdlib.h#includestring.hvoidmain(){FILE*fp;longi,n,*a;chars[]=ABCabc$%^,.+-*/;n=strlen(s);a=(long*)malloc(n*sizeof(long));/****考生在以下空白处写入执行语句******//****考生在以上空白处写入执行语句******/fp=fopen(CD2.dat,wb);fwrite(a,4,n,fp);fclose(fp);}4将字符串s中的所有字符按ASCII值从小到大重新排序,然后再显示该字符串。#includestdio.h#includestring.hvoidmain(){FILE*fp;inti,j,k,n;chars[]=WindowsOffice,c;n=strlen(s);/****考生在以下空白处写入执行语句******//****考生在以上空白处写入执行语句******/puts(s);fp=fopen(CD2.dat,wb);fwrite(s,1,n,fp);fclose(fp);}5x与函数值都取double类型,对x=1,1.5,2,2.5,...,9.5,10求函数f(x)的最大值。#includestdio.h#includemath.h/****考生在以下空白处声明函数f******//****考生在以上空白处声明函数f******/voidmain(){FILE*fp;doublex,max;/****考生在以下空白处写入执行语句******//****考生在以上空白处写入执行语句******/printf(%f\n,max);fp=fopen(CD2.dat,wb);fwrite(&max,8,1,fp);fclose(fp);}6若x、y取值为区间[1,6]的整数,显示使函数f(x,y)取最小值的x1、y1。函数f的原型为doublef(int,int)#includestdio.h/****考生在以下空白处声明函数f******//****考生在以上空白处声明函数f******/voidmain(){FILE*fp;doublemin;inti,j,x1,y1;/****考生在以下空白处写入执行语句******//****考生在以上空白处写入执行语句******/printf(%f%d%d\n,min,x1,y1);fp=fopen(CD2.dat,wb);fwrite(&min,8,1,fp);fclose(fp);}7函数f将二维数组每1行均除以该行上绝对值最大的元素。函数main调用f处理数组a后按行显示,测试函数f正确与否。#includestdio.h#includemath.hdoublef(double**x,intm,intn){doublemax;inti,j;for(i=0;im;i++){max=x[i][0];for(j=1;jn;j++)if(fabs(x[i][j])fabs(max))max=x[i][j];for(j=0;jn;j++)x[i][j]/=max;}}voidmain(){FILE*fp;doublea[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}};double*c[3]={a[0],a[1],a[2]};inti,j;/****考生在以下空白处写入执行语句******//****考生在以上空白处写入执行语句******/fp=fopen(CD2.dat,wb);fwrite(*a+8,8,1,fp);fclose(fp);}8编制函数f计算下列表达式的值,函数main提供了一个测试用例。函数原型为doublef(double*,double,int)#includestdio.h#includemath.h/*****考生在以下空白处编写函数f******//****考生在以上空白处编写函数f******/voidmain(){FILE*fp;inti;doubley;doublea[10]={1.2,-1.4,-4.0,1.1,2.1,-1.1,3.0,-5.3,6.5,-0.9};y=f(a,2.345,10);printf(%f\n,y);fp=fopen(CD2.dat,wb);fwrite(&y,8,1,fp);fclose(fp);}9数组元素x[i]、y[i]表示平面上某点坐标,计算并显示10个点中,所有各点间的最短距离。#includestdio.h#includemath.h#definelen(x1,y1,x2,y2)sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))voidmain(){FILE*fp;inti,j;doublemin,d;doublex[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};doubley[10]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33};min=len(x[0],y[0],x[1],y[1]);/****考生在以下空白处写入执行语句******//****考生在以上空白处写入执行语句******/printf(%f\n,min);fp=fopen(CD2.dat,wb);fwrite(&min,8,1,fp);fclose(fp);}10编制函数f,函数原型为doublef(double*,double,int),用于计算下列代数表达式的值。函数main提供了一个测试用例,计算在x=1.5时一元九次代数多项式的值。#includestdio.h#includemath.h/****考生在以下空白处编写函数f******//****考生在以上空白处写入语句******/voidmain(){FILE*fp;doubley;doubleb[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};y=f(b,1.5,10);printf(%f\n,y);fp=fopen(CD2.dat,wb);fwrite(&y,8,1,fp);fclose(fp);}11编制函数f,用于在m行n列的二维数组中查找值最大的元素之行下标与列下标。函数main提供了一个测试用例。#includestdio.hvoidf(int**a,intm,intn,int*mm,int*nn){inti,j,max=a[0][0];/****考生在以下空白处写入语句******//****考生在以上空白处写入语句******/}voidmain(){FILE*fp;intii,jj;intb[3][3]={{1,3,4},{2,9,5},{3,7,6}};int*c[3]={b[0],b[1],b[2]};/****考生在以下空白处写入调用语句******//****考生在以上空白处写入调用语句******/printf(最大值为%d,行号%d,列号%d\n,b[ii][jj],ii,jj);fp=fopen(CD2.dat,wb);fwrite(&ii,4,1,fp);fwrite(&jj,4,1,fp);fclose(fp);}12累加a字符串中所有非大写英文字母字符的ASCII码,将累加和存入变量x并显示。#includestdio.hvoidmain(){FILE*fp;longx;inti;chara[]=WindowsOffice2010;/****考生在以下空白处写入执行语句******//****考生在以上空白处写入执行语句******/printf(%d\n,x);fp=fopen(CD2.dat,wb);fwrite(&x,4,1,fp);fclose(fp);}13在数组x的10个数中求平均值v,找出与v相差最小的数组元素存入变量y并显示v、y。#includestdio.h#includemath.hvoidmain(){FILE*fp;inti;doubled,v,y;doublex[10]={1.2,-1.4,-4.0,1.1,2.1,-1.1,3.0,-5.3,6.5,-0.9};/*****考生在以下空白处写入执行语句******//****考生在以上空白处写入执行语句******/printf(%f%f\n,v,y);fp=fopen(CD2.dat,wb);fwrite(&y,8,1,fp);fclose(fp);}141.编写函数f判断与形参相应的实参是否回文数,是则返回1否则返回0。2.显示11至999之间的所有回文数(各位数字左右对称),并显示总个数。3.提示:先判断n是2位数还是3位数,再判断n是否回文数。#includestdio.h/*****考生在以下空白处编写函数f******//*****考生在以上空白处编写函数f******/#includemath.hvoidmain(){FILE*fp;inti;longk=0;for(i=11;i1000;i++)if(f(i)){printf(%5d,i);k++;if(k%10==0)putchar('\n');}putchar('\n');printf(%d\n,k);fp=fopen(CD2.dat,wb);fwrite(&k,4,1,fp);fclose(fp);}15统计并显示500至800之间所有素数的

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功