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

更新时间:2024-06-19 00:12:01 阅读量: 综合文库 文档下载

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

C 程序设计题 2

一、要求说明:

1. 在考生文件夹的 Paper/CD2 子文件夹中,已有 CD2.c 文件 2. 该程序中标有

部分为考试需要程序设计部分的标志。

考生需根据程序的功能设计编写程序,并调试运行程序; 3. 单击“回答”按钮后进行程序设计; 二、注意事项:

1. 在设计时,不得删除设计部分标志;

2. 不得对设计部分标志以外的程序内容进行加行、减行、加句、减句。 三、程序功能:

1 1. 将数组a的每1行均除以该行上的主对角元素;

2. 说明:第1行都除以a[0][0];第2行都除以a[1][1],... #include #include void main()

{ FILE *fp; double c; int i,j;

double a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}}; /****考生在以下空白处写入执行语句******/

/****考生在以上空白处写入执行语句******/ for(i=0;i<3;i++) {

for(j=0;j<3;j++) printf(\ putchar('\\n'); }

fp=fopen(\ fwrite(*a+8,8,1,fp); fclose(fp); }

2 x,y为取值在区间[0,10]的整数,计算并显示函数f(x,y) 在区间内取值最小点x1、y1。

f(x,y)?3?(x?5)?x?x?(y?6)?(y?7)?y

#include

long f(long x,long y) {

return 3*(x-5)*x+x*(y-6)+(y-7)*y; }

void main()

{ FILE *fp; long min,x1,y1,x,y;

/****考生在以下空白处写入执行语句******/

/****考生在以上空白处写入执行语句******/ printf(\ fp=fopen(\

fwrite(&min,4,1,fp);fwrite(&x1,4,1,fp); fwrite(&y1,4,1,fp); fclose(fp); }}

3 1. 计算字符串s中每个字符的权重值并依次写入到数组a。

2. 权重值是字符的位置值与该字符ASCII码值的乘积。首字符位置值为1,最后一个字符的位置值为strlen(s) #include #include #include void main()

{ FILE *fp; long i,n,*a;

char s[]=\ n=strlen(s);

a=(long*)malloc(n*sizeof(long));

/****考生在以下空白处写入执行语句******/

/****考生在以上空白处写入执行语句******/ fp=fopen(\ fwrite(a,4,n,fp); fclose(fp); }

4 将字符串s中的所有字符按ASCII值从小到大重新排序,然后再显示该字符串。 #include #include void main()

{ FILE *fp; int i,j,k,n;

char s[]=\ n=strlen(s);

/****考生在以下空白处写入执行语句******/

/****考生在以上空白处写入执行语句******/ puts(s);

fp=fopen(\ fwrite(s,1,n,fp); fclose(fp); }

5 x与函数值都取double类型,对x=1,1.5,2,2.5,...,9.5,10 求函数f(x)的最大值。 #include #include

/****考生在以下空白处声明函数f ******/

/****考生在以上空白处声明函数f ******/ void main()

{ FILE *fp; double x,max;

/****考生在以下空白处写入执行语句******/

/****考生在以上空白处写入执行语句******/ printf(\

fp=fopen(\ fwrite(&max,8,1,fp); fclose(fp); }

6 若x、y取值为区间[1,6]的整数,显示使函数f(x,y)取最小值的x1、y1。 函数f的原型为double f(int,int)

#include

/****考生在以下空白处声明函数f ******/

/****考生在以上空白处声明函数f ******/ void main()

{ FILE *fp; double min; int i,j,x1,y1;

/****考生在以下空白处写入执行语句******/

/****考生在以上空白处写入执行语句******/

printf(\ fp=fopen(\ fwrite(&min,8,1,fp); fclose(fp); }

7 函数f将二维数组每1行均除以该行上绝对值最大的元素。 函数main调用f处理数组a后按行显示,测试函数f正确与否。 #include #include

double f(double **x,int m,int n) { double max; int i,j; for(i=0;i

for(j=1;j

if(fabs(x[i][j])>fabs(max)) max=x[i][j]; for(j=0;j

void main() { FILE *fp;

double a[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]}; int i,j; /****考生在以下空白处写入执行语句******/

/****考生在以上空白处写入执行语句******/ fp=fopen(\ fwrite(*a+8,8,1,fp); fclose(fp); }

8 编制函数f计算下列表达式的值,函数main提供了一个测试用例。 函数原型为double f(double *,double,int)

#include #include

/*****考生在以下空白处编写函数f ******/

/****考生在以上空白处编写函数f ******/ void main()

{ FILE *fp; int i; double y;

double a[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(\

fp=fopen(\ fwrite(&y,8,1,fp); fclose(fp); }

9 数组元素x[i]、y[i]表示平面上某点坐标,计算并显示10个点中,所有各点间的最短距离。

#include #include

#define len(x1,y1,x2,y2) sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)) void main()

{ FILE *fp; int i,j; double min,d;

double x[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65}; double y[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(\

fp=fopen(\ fwrite(&min,8,1,fp); fclose(fp); }

10 编制函数f,函数原型为double f(double*,double,int), 用于计算下列代数表达式的值。

函数main提供了一个测试用例,计算在x=1.5 时一元九次代数多项式的值。 #include #include

/****考生在以下空白处编写函数f******/

/****考生在以上空白处写入语句 ******/ void main()

{ FILE *fp; double y;

double b[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(\

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

Top