搜档网
当前位置:搜档网 › 单纯形法C语言程序

单纯形法C语言程序

单纯形法C语言程序
单纯形法C语言程序

实验:编制《线性规划》计算程序

一、实验目的:

(1)使学生在程序设计方面得到进一步的训练,掌握Matlab (C 或VB)语言进行程序设计中一些常用方法。

(2)使学生对线性规划的单纯形法有更深的理解.

二、实验用仪器设备、器材或软件环境

计算机, Matlab R2009a

三、算法步骤、计算框图、计算程序等

本实验主要编写如下线性规划问题的计算程序:

???≥≥≤0

,0..min b x b Ax t s cx

其中初始可行基为松弛变量对应的列组成.

对于一般标准线性规划问题:

???≥≥=0

,0..min b x b Ax t s cx

1.求解上述一般标准线性规划的单纯形算法(修正)步骤如下:

对于一般的标准形式线性规划问题(求极小问题),首先给定一个初始基本可行解。设初始基为B,然后执行如下步骤:

(1).解B Bx b =,求得

1B x B b -=,0,N B B x f c x ==令计算目标函数值 1(1,2,...,)i m B b i -=i 以b 记的第个分量

(2).计算单纯形乘子w, B wB C =,得到1B w C B -=,对于非基变量,计算判别数1i i i B i i z c c B p c σ-=-=-,可直接计算

σ=1B A c c B --令 max{}k i R σσ∈=,R 为非基变量集合

若判别数

0k σ≤ ,则得到一个最优基本可行解,运算结束;否则,转到下一

(3).解k k By p =,得到1k k y B p -=;若0k y ≤,即k y 的每个分量均非正数, 则停止计算,问题不存在有限最优解,否则,进行步骤(4).确定下标r,使 {}:0min ,0t r

rk tk tk b b tk y y t y y >=>且r B x 为离基变量,

,r k B x p k 为进基变量,用p 替换得到新的基矩阵B,还回步骤(1);

2、计算框图为:

最优解

3.计算程序(Matlab):

A=input('A=');

b=input('b=');

c=input('c=');

format rat%可以让结果用分数输出

[m,n]=size(A);

E=1:m;E=E';

F=n-m+1:n;F=F';

D=[E,F]; %创建一个一一映射,为了结果能够标准输出

X=zeros(1,n); %初始化X

if(n

fprintf('不符合要求需引入松弛变量')

flag=0;

else

flag=1;

B=A(:,n-m+1:n); %找基矩阵

cB=c(n-m+1:n); %基矩阵对应目标值的c

while flag

w=cB/B; %计算单纯形乘子,cB/B=cB*inv(B),用cB/B的目的是,为了提高运行速度。。

panbieshu=w*A-c %计算判别数,后面没有加分号,就是为了计算后能够显示出来。。

[z,k]=max(panbieshu); % k作为进基变量下标。。

fprintf('b''./(B\\A(:,%d))为',k);

b'./(B\A(:,k))

if(z<0.000000001)

flag=0; %所有判别数都小于0时达到最优解。。

fprintf(' 已找到最优解!\n');

xB=(B\b')';

f=cB*xB';

for i=1:n

mark=0;

for j=1:m

if (D(j,2)==i)

mark=1;

X(i)=xB(D(j,1)); %利用D找出xB与X之间的关系。。

end

end

if mark==0

X(i)=0; %如果D中没有X(i),则X(i)为非基变量,所以X(i)=0。。

end

end

fprintf('基向量为:'); X

fprintf('目标函数值为:') ; f

else

if (B\A(:,k)<=0) % 如果B\A(;,k)中的每一个分量都小于零。。

flag=0;

fprintf(' \n 此问题不存在最优解!\n'); %若B\A(:,k)的第k 列均不大于0,则该问题不存在最优解。。

else

b1=B\b';

temp=inf;

for i=1:m

if ((A(i,k)>0) && (b1(i)/(A(i,k)+eps))

r=i;

end

end

fprintf('x(%d)进基,x(%d)退基\n',k,D(r,2)); %显示进基变量和退基变量

B(:,r)=A(:,k);

cB(r)=c(k); %确定进基退基变量后,相应的基矩阵及新基对应的目标值的c 也相应改变

D(r,2)=k; %改变D 中的映射关系

end

end

end

end

程序保存为 danchunxin.m 文件

四、数值实验及其结果:

1) m in 124x x --

..s t 12324x x x -++≤

1242312x x x ++≤

1253x x x -+≤

.5,...,1,0=≥j x j

窗口输入:

run danchunxin

A=[-1 2 1 0 0;2 3 0 1 0;1 -1 0 0 1]

b=[4 12 3]

c=[-4 -1 0 0 0]

运行后的结果为:

panbieshu =

4 1 0 0 0

b'./(B\A(:,2))为;

ans =

-4

6

3

x(1)进基,x(5)退基

panbieshu =

0 5 0 0 -4

b'./(B\A(:,2))为;

ans =

4

12/5

-3

x(2)进基,x(4)退基

panbieshu =

0 0 0 -1 -2

b'./(B\A(:,2))为;

ans =

1/0

1/0

3

已找到最优解!

基向量为:

X =

21/5 6/5 29/5 0 0

目标函数值为:

f =

-18

2) 213min x x +

S.t 632321=++x x x

1421=++-x x x

.

4,...,1,0=≥j x j

窗口输入:

run danchunxin

A=[2 3 1 0;-1 1 0 1]

b=[6 1]

c=[-1 -3 0 0]

运行后的结果为:

panbieshu =

1 3 0 0

b'./(B\A(:,2))为;

ans =

2

1

x(2)进基,x(4)退基

panbieshu =

4 0 0 -3

b'./(B\A(:,2))为;

ans =

6/5

-1

x(1)进基,x(3)退基

panbieshu =

0 0 -4/5 -3/5

b'./(B\A(:,2))为;

ans =

6

1/0

已找到最优解!

基向量为:

X =

3/5 8/5 0 0

目标函数值为:

f =

-27/5

3) min 213x x --

S.t 3033321=++x x x

1644421=+-x x x

12221≤-x x

.4,...,1,0=≥j x j

窗口输入

>> run danchunxin

A=[3 3 1 0 0;4 -4 0 1 0;2 -1 0 0 1]

b=[30 16 12]

c=[-3 -1 0 0 0]

运行后的结果为:

panbieshu =

3 1 0 0 0

b'./(B\A(:,2))为;

ans =

10

4

6

x(1)进基,x(4)退基

panbieshu =

0 4 0 -3/4 0

b'./(B\A(:,2))为;

ans =

5

-16

12

x(2)进基,x(3)退基

panbieshu =

0 0 -2/3 -1/4 0

b'./(B\A(:,2))为;

ans =

-1/0

16

1/0

已找到最优解!

基向量为:

X =

7 3 0 0 1

目标函数值为:

f =

-24

4) min 1232x x x -+

..s t 1234210x x x x +-+=

123248x x x -+≤

123244x x x -+-≤

0,1,...,4j x j ≥=

窗口输入:

>> run danchunxin

A=[1 -1 1 1 0;-2 1 -2 0 1]

b=[5 10]

c=[-3 1 0 0 0]

运行后的结果为:

panbieshu =

3 -1 0 0 0

b'./(B\A(:,2))为;

ans =

5

-5

x(1)进基,x(4)退基

panbieshu =

0 2 -3 -3 0

b'./(B\A(:,2))为;

ans =

-5

-10

此问题不存在最优解!

五:心得体会:

通过本次实验对单纯形了解更深刻,此次实验中inf表示为一个无穷大的数。

本次做的只是最简单的线性规划问题,面对以后更大的、更复杂的问题,虽然起不了什么非常大的作用,但这是基础,所以我非常认真对待这次实验,做完本次实验,使我对单纯形方法,更加熟练,对matlab程序设计也更加熟悉。

单纯形法完全c语言程序,能运行

#include "math.h"

#include "stdio.h"

#define N 2

void paixu(p,n)

int n;

double p[];

{ int m,k,j,i;

double d;

k=0; m=n-1;

while (k

{ j=m-1; m=0;

for (i=k; i<=j; i++)

if (p>p[i+1])

{ d=p; p=p[i+1]; p[i+1]=d; m=i;}

j=k+1; k=0;

for (i=m; i>=j; i--)

if (p[i-1]>p)

{ d=p; p=p[i-1]; p[i-1]=d; k=i;}

}

return;

}

double mubiao(double *x)

{ double y;

y=x[1]-x[0]*x[0]; y=100.0*y*y;

y=y+(1.0-x[0])*(1.0-x[0]);

return(y);

}

main()

{ int i,j,k,l,m=0;

double c,xx[N+1][N],f0[N+1],f[N+1],x0[N]={1.2,1},x1[N],s=0.0; double a,b;

double xa[N],xb[N],xc[N],xe[N],xw[N],xr[N],xo[N];

double fr,fe,fw,fc,fo;

double aef=1.0,r=1.0,eps1=1.0e-30,eps2=1.0e-30,bt=0.5,rou=0.5; c=1.0;

b=(c/(N*sqrt(2)))*(sqrt(N+1)-1);

a=b+c/sqrt(2);

//printf("a=%13.7e b=%13.7e ",a,b);

//printf("\n");

//给xx[N][N+1]赋值,每一行构成单纯形的一个定点

//***********************

for(i=0;i

xx[0]=x0;

for(i=1;i

for(j=0;j

{if(j==i-1)

xx[j]=x0[j]+a;

else

xx[j]=x0[j]+b;

}

for (i=0;i

{for (j=0;j

printf("xx[%d][%d]%13.7e ",i,j,xx[j]);

printf("\n");

}

loop1:

//求单纯形的每个定点的函数值f0,f和x1是过渡数组

printf("\n");

printf("\n");

for(i=0;i

{for(j=0;j

x1[j]=xx[j];

f0=mubiao(x1);

f=mubiao(x1);

printf("f0[%d]=%13.7e f[%d]=%13.7e\n",i,f0,i,f);

}

printf("\n");

//比较f的大小,f[0]是最小值,f[N]是最大值

paixu(f,N+1);

for(i=N;i>=0;i--)

printf("f[%d]=%13.7e \n",i,f);

//找最好点和最坏点分别是哪一个点,即xx[][]的行数

for(i=0;i

{if(f0==f[0])

k=i;

if(f0==f[N])

l=i;

}

printf("最好点k=%d\n",k);

printf("最坏点l=%d\n",l);

//终止判断条件

printf("f[N]-f[0]=%13.7e \n",f[N]-f[0]);

if((f[N]-f[0])

{printf("迭代次数m=%d\n",m);

for(j=0;j

printf("optx[%d]=%13.7e\n",j,xx[k][j]);

printf("fmin=%13.7e\n",f[0]);

}

else

{

m=m+1;

//把xx[][]中最好点移到第一行,最坏点移到最后一行

for(j=0;j

{xb[j]=xx[k][j];

xx[k][j]=xx[0][j];

xx[0][j]=xb[j];

//

xw[j]=xx[l][j];

xx[l][j]=xx[N][j];

xx[N][j]=xw[j];

}

for (i=0;i

{for (j=0;j

printf("xx[%d][%d]=%13.7e ",i,j,xx[j]);

printf("\n");

}

//求除最坏点f[N]外其余点的中点xc[]

for(i=0;i

xa=0;

for(j=0;j

{{for(i=0;i

xa[j]=xa[j]+xx[j];}

xa[j]=xa[j]/N;

}

for(i=0;i

printf("xa[%d]=%13.7e xb[%d]=%13.7e xw[%d]=%13.7e \n",i,xa,i,xb,i,xw);

//求xw[N]的反射点xr[N];

for(i=0;i

{xr=xa+aef*(xa-xw);

printf("xr[%d]=%13.7e ",i,xr);

}

printf("\n");

//求xr[N]的函数值fr

fr=mubiao(xr);

printf("fr=%13.7e \n",fr);

//判断xr与xb的好坏

if(fr<=f[0])

{for(i=0;i

{xe=xr+r*(xr-xa);

//printf("xe[%d]=%13.7e ",i,xe);

}

printf("\n");

fe=mubiao(xe);

if(fe<=f[0])

for(j=0;j

xx[N][j]=xe[j];

else

for(j=0;j

xx[N][j]=xr[j];

goto loop1;

}

else

{

fw=f[N];

if(fr>=fw)

{for(i=0;i

xc=xa-bt*(xa-xw);

fc=mubiao(xc);

if(fc>=fw)

{for(i=1;i

for(j=0;j

xx[j]=xx[0][j]-rou*(xx[j]-xx[0][j]); goto loop1;

}

else

{for(j=0;j

xx[N][j]=xc[j];

goto loop1;

}

}

else

{if(fr>=fe)

{

for(i=0;i

xo=xa+bt*(xa-xw);

fo=mubiao(xo);

if(fo>=fr)

{for(i=1;i

for(j=0;j

xx[j]=xx[0][j]-rou*(xx[j]-xx[0][j]); goto loop1;

}

else

{for(j=0;j

xx[N][j]=xo[j];

goto loop1;

}

}

else

{for(j=0;j

xx[N][j]=xr[j];

goto loop1;

}

}

}

}

}

C语言程序设计形考任务1答案

一、选择题(共40分,每小题2分) 题目1 在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。选择一项: A. main B. MAIN C. name D. function 正确答案是:main 题目2 C语言源程序文件的缺省扩展名为()。 选择一项: A. cpp B. exe C. obj D. c 正确答案是:c 题目3 由C语言目标文件连接而成的可执行文件的缺省扩展名为()。 选择一项: A. cpp B. exe C. obj

正确答案是:exe 题目4 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为()。 选择一项: A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 正确答案是:空格或回车 题目5 每个C语言程序文件的编译错误被分为()。 选择一项: A. 1类 B. 2类 C. 3类 D. 4类 正确答案是:2类 题目6 不符合C语言规定的复合语句是()。 选择一项: A. {}

C. {x=0;} D. {y=10} 正确答案是:{y=10} 题目7 C语言程序中的基本功能模块为()。 选择一项: A. 表达式 B. 标识符 C. 语句 D. 函数 正确答案是:函数 题目8 在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。选择一项: A. 表达式 B. 语句 C. 参数表 D. 函数体 正确答案是:参数表 题目9 在一个程序文件中,若要使用#include命令包含一个用户定义的头文件,则此头文件所使用的起止定界符为一对()。

选择一项: A. 尖括号 B. 双引号 C. 单引号 D. 花括号 正确答案是:双引号 题目10 在C语言程序中,多行注释语句使用的开始标记符为()。 选择一项: A. // B. /* C. */ D. ** 正确答案是:/* 题目11 在printf()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为()。 选择一项: A. char B. int C. float D. double 正确答案是:char

C语言程序设计形考任务3

一、选择题(共30分,每小题2分) 题目1 在下面的函数声明语句中,存在着语法错误的是()。 选择一项: a. AA(int a, int b) b. AA(int, int) c. AA(int a; int b) d. AA(int a, int) 正确答案是:AA(int a; int b) 题目2 在下面的保留字中,不能作为函数的返回值类型的是()。 选择一项: a. void b. int c. enum d. long 正确答案是:enum 题目3 假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为( )。 选择一项: a. 1 b. 2

c. 4 d. 8 正确答案是:4 题目4 假定a为一个数组名,在下面的表达式中,存在语法错误的是( )。 选择一项: a. a[i] b. *a++ c. *a d. *(a+1) 正确答案是:*a++ 题目5 用calloc函数创建具有10个整型元素的一维数组的正确语句是()。选择一项: a. int *p=calloc(10,2); b. int *p=calloc(10); c. int *p=calloc(10,4); d. int *p=malloc(10) 正确答案是:int *p=calloc(10,4); 题目6 假定变量m定义为“int m=7;”,则下面正确的语句为()。 选择一项: a. int p=&m;

b. int *p=&m; c. int &p=*m; d. int *p=m; 正确答案是:int *p=&m; 题目7 假定k是一个double类型的变量,则定义变量p的正确语句为()。 选择一项: a. double p=&k; b. int *p=&k; c. double &p=*k; d. char *p="Thank you!"; 正确答案是:char *p="Thank you!"; 题目8 若有语句为“int a[10], x, *pa=a;”,要把数组a中下标为3的元素值赋给x,则不正确的语句为()。 选择一项: a. x=pa[3]; b. x=*(a+3); c. x=a[3]; d. x=*pa+3; 正确答案是:x=*pa+3; 题目9 假定有语句为“int b[10]; int *pb;”,则下面不正确的赋值语句为()。

c语言程序设计形考任务二标准答案

c语言程序设计形考任务二答案

————————————————————————————————作者:————————————————————————————————日期:

一、选择题(共20分,每小题2分) 当处理特定问题时的循环次数已知时,通常采用的语句是()。 a. for b. while c. do-while d. switch 题目2 在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是()。 a. for b. if c. do d. while 题目3 for语句能够被改写成的语句是()。 a. 复合 b. if c. switch

d. while 题目4 下面循环语句执行结束后输出的i值为()。 for(int i=0; in/2) {cout<

int i=0; do i++; while(i*i<10); a. 4 b. 3 c. 5 d. 2 题目7 在下面的一维数组定义中,有语法错误的选项是()。 a. int a[]={1,2,3}; b. int a[10]={0}; c. int a[]; d. int a[5]; 题目8 在下面的二维数组定义中,语法正确的选项是()。 a. int a[5][]; b. int a[][5]; c. int a[][3]={{1,3,5},{2}}; d. int a[](10);

国家开放大学电大《C语言程序设计》网络课形考任务3作业及答案

国家开放大学电大《C语言程序设计》网络课形考任务3作业及答案 形考任务3 一、选择题(共30分,每小题2分) 题目1 在下面的函数声明语句中,存在着语法错误的是()。 选择一项: a. AA(int a, int b) b. AA(int, int) c. AA(int a; int b) d. AA(int a, int) 题目2 在下面的保留字中,不能作为函数的返回值类型的是()。 选择一项: a. void b. int c. enum d. long 题目3 假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为( )。选择一项: a. 1 b. 2 c. 4 d. 8 题目4 假定a为一个数组名,在下面的表达式中,存在语法错误的是( )。 选择一项: a. a[i] b. *a++ c. *a d. *(a+1)

选择一项: a. int *p=calloc(10,2); b. int *p=calloc(10); c. int *p=calloc(10,4); d. int *p=malloc(10) 题目6 假定变量m定义为“int m=7;”,则下面正确的语句为()。 选择一项: a. int p=&m; b. int *p=&m; c. int &p=*m; d. int *p=m; 题目7 假定k是一个double类型的变量,则定义变量p的正确语句为()。 选择一项: a. double p=&k; b. int *p=&k; c. double &p=*k; d. char *p="Thank you!"; 题目8 若有语句为“int a[10], x, *pa=a;”,要把数组a中下标为3的元素值赋给x,则不正确的语句为()。选择一项: a. x=pa[3]; b. x=*(a+3); c. x=a[3]; d. x=*pa+3; 题目9 假定有语句为“int b[10]; int *pb;”,则下面不正确的赋值语句为()。 选择一项: a. pb=b; b. pb=&b[0];

C语言程序设计形考任务4

一、选择题(共30分,每小题2分) 题目1 假定有“ struct BOOK{chartitle[40]; float price;}; struct 则不正确的语句为( )。 选择一项: a. struct BOOK *x=malloc(book); b. struct BOOK x={"C++ Programmi ng",27.0}; c. struct BOOK *x=malloc(sizeof(struct BOOK)); d. struct BOOK *x=&book; 正确答案是:struct BOOK *x=malloc(book); 题目2 假定有“ struct BOOK{char title[40]; float price;} book; 句为( )。 选择一项: a. struct BOOK x= & book; b. struct BOOK *x=&book; c. struct BOOK x=calloc(BOOK); d. struct BOOK *x=BOOK; 正确答案是:struct BOOK *x=&book; 题目3 在结构类型的定义中,不同数据成员的定义项之间采用的分隔符是 选择一项: a. 句点 b. 冒号 c. 分号 d. 逗号 正确答案是:分号 题目4 假定一个结构类型的定义为“ struct A{i nt a,b; double c;}; 长度为( )。BOOKbook; ”,,贝M确的语,则该类型的

选择一项: a. 8 b. 10 c. 12 d. 16 正确答案是:16 题目5 假定一个结构类型的定义为“ struct D{i nt a; D* n ext;}; ”,则该类型的长度为()。 选择一项: a. 4 b. 8 c. 12 刁d. 16 正确答案是:8 题目6 假定要访问一个结构指针变量x中的数据成员a,则表示方法为()。 选择一项: a. x.a b. x->a c. x(a) d. x{a} 正确答案是:x->a 题目7 与结构成员访问表达式https://www.sodocs.net/doc/5017800949.html,等价的表达式为()。 选择一项: a. x->n ame b. &x->n ame c. (&x)->n ame d. (*x)->n ame 正确答案是:(&x)-> name

C语言程序设计--形考任务2017全部答案

C语言程序设计形考任务1 题目1 在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。选择一项: A. main B. MAIN C. name D. function 题目2 C语言源程序文件的缺省扩展名为()。 选择一项: A. cpp B. exe C. obj D. c 题目3 由C语言目标文件连接而成的可执行文件的缺省扩展名为()。 选择一项: A. cpp B. exe C. obj D. c

题目4 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为()。选择一项: A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 题目5 每个C语言程序文件的编译错误被分为()。 选择一项: A. 1类 B. 2类 C. 3类 D. 4类 题目6 在·()。 选择一项: A. {} B. {;} C. {x=0;} D. {y=10} 题目7

C语言程序中的基本功能模块为()。 选择一项: A. 表达式 B. 标识符 C. 语句 D. 函数 题目8 在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。 选择一项: A. 表达式 B. 语句 C. 参数表 D. 函数体 题目9 在一个程序文件中,若要使用#include命令包含一个用户定义的头文件,则此头文件所使用的起止定界符为一对()。 选择一项: A. 尖括号 B. 双引号 C. 单引号 D. 花括号 题目10

在C语言程序中,多行注释语句使用的开始标记符为()。 选择一项: A. // B. /* C. */ D. ** 题目11 在printf()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为()。 选择一项: A. char B. int C. float D. double 题目12 在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为()。 选择一项: A. 5 B. 4 C. 3 D. 6

C语言程序设计形考任务

C语言程序设计形考任务Prepared on 21 November 2021

C语言程序设计形考任务1 题目1 在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为 ()。 选择一项: A. main B. MAIN C. name D. function 题目2 C语言源程序文件的缺省扩展名为()。 选择一项: A. cpp B. exe C. obj D. c 题目3 由C语言目标文件连接而成的可执行文件的缺省扩展名为()。 选择一项: A. cpp B. exe C. obj D. c 题目4 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为()。 选择一项: A. 空格或逗号 B. 逗号或回车

C. 逗号或分号 D. 空格或回车 题目5 每个C语言程序文件的编译错误被分为()。 选择一项: A. 1类 B. 2类 C. 3类 D. 4类 题目6 不符合C语言规定的复合语句是()。 选择一项: A. {} B. {;} C. {x=0;} D. {y=10} 题目7 C语言程序中的基本功能模块为()。 选择一项: A. 表达式 B. 标识符 C. 语句 D. 函数 题目8 在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和()。 选择一项: A. 表达式 B. 语句

C. 参数表 D. 函数体 题目9 在一个程序文件中,若要使用#include命令包含一个用户定义的头文件,则此头文件所使用的起止定界符为一对()。 选择一项: A. 尖括号 B. 双引号 C. 单引号 D. 花括号 题目10 在C语言程序中,多行注释语句使用的开始标记符为()。 选择一项: A. /* C. */ D. ** 题目11 在printf()函数调用的格式字符串中,若使用格式符为“%c”,则对应输出的数据类型为()。 选择一项: A. char B. int C. float D. double 题目12 在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为()。 选择一项: A. 5 B. 4

C语言程序设计形考任务2

一、选择题(共20分,每小题2分) 题目1 当处理特定问题时的循环次数已知时,通常采用语句是()。 选择一项: a. for b. while c. do-while d. switch 正确答案是:for 题目2 在switch语句的每个case块中,假定都是以break语句结束的,则此switch 语句容易被改写成的语句是()。 选择一项: a. for b. if c. do d. while 正确答案是:if 题目3 for语句能够被改写成的语句是()。 选择一项: a. 复合 b. if

c. switch d. while 正确答案是:while 题目4 下面循环语句执行结束后输出的i值为()。 for(int i=0; in/2) {cout<

在下面的do循环语句中,其循环体被执行次数为()。int i=0; do i++; while(i*i<10); 选择一项: a. 4 b. 3 c. 5 d. 2 正确答案是:4 题目7 在下面的一维数组定义中,有语法错误的选项是()。选择一项: a. int a[]={1,2,3}; b. int a[10]={0}; c. int a[]; d. int a[5]; 正确答案是:int a[]; 题目8 在下面的二维数组定义中,语法正确的选项是()。 选择一项: a. int a[5][]; b. int a[][5]; c. int a[][3]={{1,3,5},{2}}; d. int a[](10);

C语言程序设计形考任务3

C语言程序设计形考任务3 一、选择题(共30分,每小题2分)题目1在下面的函数声明语句中,存在着语法错误的是()。选择一项:a、 AA(int a, int b) b、 AA(int, int) c、 AA(int a; int b) d、 AA(int a, int) 正确答案是:AA(int a; int b)题目2在下面的保留字中,不能作为函数的返回值类型的是()。选择一项:a、void b、 int c、 enum d、 long 正确答案是:enum题目3假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为( )。选择一项:a、1 b、2 c、4 d、8 正确答案是:4题目4假定a为一个数组名,在下面的表达式中,存在语法错误的是( )。选择一项:a、 a[i] b、 *a++ c、 *a d、 *(a+1) 正确答案是:*a++题目5用calloc函数创建具有10个整型元素的一维数组的正确语句是()。选择一项:a、 int *p=calloc(10,2); b、 int *p=calloc(10); c、 int *p=calloc(10,4); d、 int *p=malloc(10) 正确答案是:int *p=calloc(10,4);题目6假定变量m定义为“int m=7;”,则下面正确的语句为()。选择一项:

a、 int p=&m; b、 int *p=&m; c、 int &p=*m; d、 int *p=m; 正确答案是:int *p=&m;题目7假定k是一个double类型的变量,则定义变量p的正确语句为()。选择一项:a、double p=&k; b、 int *p=&k; c、 double &p=*k; d、 char *p="Thank you!"; 正确答案是:char *p="Thank you!";题目8 若有语句为“int a[10], x, *pa=a;”,要把数组a中下标为3 的元素值赋给x,则不正确的语句为()。选择一项:a、x=pa[3]; b、 x=*(a+3); c、 x=a[3]; d、 x=*pa+3; 正确答案是:x=*pa+3;题目9假定有语句为“int b[10]; int *pb;”,则下面不正确的赋值语句为()。选择一项:a、 pb=b; b、 pb=&b[0]; c、 pb=b+2; d、 pb=b[5]; 正确答案是: pb=b[5];题目10已知“int *p=malloc(100);”,要释放p所指 向的动态内存,正确的语句为()。选择一项:a、 free(p); b、 free p; c、 free(*p); d、 free[p]; 正确答案是:free(p);题目11在程序的一个文件中定义的函数,若要在另一个文件中调用,则必须在这另一个文件中给出该函数的 ()。选择一项:a、原型语句 b、参数表 c、函数名d、返回类型正确答案是:原型语句题目12假定一个函数定义 为“static int f1(int x,int y){return x+y;}”,该函数名称为()。选择一项:a、 static b、 int c、 f1 d、return 正确答案是:f1题目13假定一个函数的原型语句为“int

(精华版)国家开放大学电大《教育学》《C语言程序设计》网络课形考网考作业(合集)答案

(精华版)国家开放大学电大《教育学》《C语言程序设计》网络课形考网考作业(合集)答案 《教育学》网络课答案 形考任务1 一、单选题 题目1 在中国,最早把“教”与“育”连起来使用的是_____________。 选择一项: A. 孟子的《孟子:尽心上》恭喜你,答对啦 题目2 提出“教育是生活的过程,而不是将来生活的预备。教育是经验的改造或改组”的教育家是____________。 选择一项: E. 杜威恭喜你,答对啦 题目3 教育史上第一个设想出全面完整教育学的人,教育学的真正奠基人是_______________。 选择一项: C. 夸美纽斯恭喜你,答对啦 题目4 被认为是世界上第一部具有科学体系的教育学著作是____________。 选择一项: B. 《普通教育学》恭喜你,答对啦 题目5 关于教育对象,我国最早提出了有教无类主张的是______________。 选择一项: E. 孔子恭喜你,答对啦 题目6 在教育史上,第一个把教育学建立在心理学和哲学的基础之上进行研究,从而被誉为“科学教育学的奠基人”的教育家是____________。 选择一项: C. 赫尔巴特恭喜你,答对啦 题目7 教育现代化的核心是()。 选择一项: C. 教育观念的现代化 题目8

一个国家或地区教育经费投入的多少最终是由()。 选择一项: D. 生产力发展水平 题目9 决定教育性质的根本因素是()。 选择一项: D. 社会生产力 题目10 从作用对象上看,教育可以分为哪两种功能()。 选择一项: C. 教育的个体功能和社会功能 题目11 一个地区的人们平均文化程度越高,人口出生率就越低,这体现了教育的()。 选择一项: A. 人口功能 题目12 以下对于文化传统与教育关系的述说不正确的是()。 选择一项: E. 文化传统直接决定着教育的性质 题目13 青少年儿童的大脑发展最迅速的时期是出生后第5个月到第11个月之间,这说明人的身心发展具有()。 选择一项: C. 不均衡性 题目14 人的发展总是受到社会的制约,这意味着()。 选择一项: C. 教育要充分考虑社会发展的需要 题目15 人类身心的成熟需要通过教育进行,通过教育人才能成长为人。这是因为人与其他哺乳动物不同,人在生理上有一个特性是()。 选择一项: D. 有漫长的不成熟期 题目16

国家开放大学C语言程序设计A第二次形考任务及答案

一、选择题(共20分,每小题2分) 当处理特定问题时的循环次数已知时,通常采用的语句是()。 a. for b. while c. do-while d. switch 题目2 在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是()。 a. for b. if c. do d. while 题目3 for语句能够被改写成的语句是()。 a. 复合 b. if c. switch d. while 题目4 下面循环语句执行结束后输出的i值为()。 for(int i=0; in/2) {cout<

d. n-1 题目5 在下面循环语句中,内层循环体S语句的执行总次数为()。for(int i=0; i

(完整word版)c语言程序设计形考任务4答案.doc

一、选择题(共30 分,每小题 2 分) 题目 1 正确 获得 2.00 分中的 2.00 分 标记题目 题干 假定有“struct BOOK{char title[40]; float price;}; struct BOOK book;,则不正” 确的语句为()。 选择一项: a. struct BOOK *x=malloc(book); 回答正确 b. struct BOOK x={"C++ Programming",27.0}; c. struct BOOK *x=malloc(sizeof(struct BOOK)); d. struct BOOK *x=&book; 反馈 Your answer is correct. 题目 2 正确 获得 2.00 分中的 2.00 分 标记题目 题干 假定有“struct BOOK{char title[40]; float price;} book;,则正确的”语句为()。

选择一项:

a. struct BOOK x= &book; b. struct BOOK *x=&book; 回答正确 c. struct BOOK x=calloc(BOOK); d. struct BOOK *x=BOOK; 反馈 Your answer is correct. 题目 3 正确 获得 2.00 分中的 2.00 分 标记题目 题干 在结构类型的定义中,不同数据成员的定义项之间采用的分隔符是()。选择一项: a.句点 b.冒号 c.分号 回答正确 d.逗号 反馈 Your answer is correct. 题目 4 正确 获得 2.00 分中的 2.00 分

C语言程序设计形考任务

一、选择题(共20分,每小题2分)题目1 当处理特定问题时的循环次数已知时,通常采用的语句是()。 选择一项: a. for b. while c. do-while d. switch 正确答案是:for 题目2 在switch语句的每个case块中,假定都是以break语句结束的,则此switch 语句容易被改写成的语句是()。 选择一项: a. for b. if c. do d. while 正确答案是:if 题目3 for语句能够被改写成的语句是()。 选择一项: a. 复合 b. if

c. switch d. while 正确答案是:while 题目4 下面循环语句执行结束后输出的i值为()。 for(int i=0; in/2) {cout<

在下面的do循环语句中,其循环体被执行的次数为()。int i=0; do i++; while(i*i<10); 选择一项: a. 4 b. 3 c. 5 d. 2 正确答案是:4 题目7 在下面的一维数组定义中,有语法错误的选项是()。 选择一项: a. int a[]={1,2,3}; b. int a[10]={0}; c. int a[]; d. int a[5]; 正确答案是:int a[]; 题目8 在下面的二维数组定义中,语法正确的选项是()。 选择一项: a. int a[5][]; b. int a[][5]; c. int a[][3]={{1,3,5},{2}}; d. int a[](10);

国家开放大学C语言程序设计A第一次形考任务及答案

)2分小0题择(共4分,每题选一、1 题目在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。 A. main B. MAIN C. name D. function 2 题目 C语言源程序文件的缺省扩展名为(。) A. cpp B. exe C. obj D. c 3 题目)。 C由语言目标文件连接而成的可执行文件的缺省扩展名为( A. cpp B. exe C. obj D. c 4 题目)。程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用的分隔符为( 空格或逗号A. B. 逗号或回车逗号或分号 C. D. 空格或回车5 题目 每个C语言程序文件的编译错误被分为()。 A. 1类类B. 2类C. 3 D. 4类6 题目 C不符合语言规定的复合语句是()。 A. {} B. {;} C. {x=0;} D. {y=10} 7 题目。 C语言程序中的基本功能模块为() A. 表达式 B. 标识符 语句C. 函数D. 8 题目。个部分依次为函数类型、函数名和(在一个函数定义中,函数头包括的 3 )表达式A. B. 语句 C. 参数表 D. 函数体9 题目则此头文件所使命令包含一个用户定义的头文件,在一个程序文件中,若要使用#include 。)用的起止定界符为一对( 尖括号A. B. 双引号 C. 单引号花括号 D.

10 题目。)C在语言程序中,多行注释语句使用的开始标记符为( A. // B. /* C. */ D. ** 11 题目则对应输出的数据类型为函数调用的格式字符串中,若使用格式符为“%c”,在printf() ()。 A. char B. int C. float D. double 12 题目函数调用的格式字符串中,若使用格式符为“]”,则规定对应输出的数据printf()在)。占用的字符位置个数为( A. 5 B. 4 C. 3 D. 6 13 题目)。 '\\'转义字符表示的字符是(单引号A. 双引号B. C. 反斜线 D. 问号14 题目)。枚举类型中的每个枚举常量的值都是一个( A. 整数浮点 数B. 字符C. 逻辑值D. 15 题目。)?运算符优先级最高的是( A. = B. *= C. && D. != 16 题目为真的条件是()。yx设和均为逻辑值,则x && y A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假17 题目。 a设有语句“int a=12; a+=a*a;”,则执行结束后,的值为() A. 12 B. 144 C. 156 D. 288 18 题目 x>0 && x<=10的相反表达式为()。 A. x<=0 || x>10

相关主题