当前位置:首页 » 操作系统 » 算法正确的程序

算法正确的程序

发布时间: 2022-06-28 02:07:27

Ⅰ 为什么算法正确的程序可以是零输入,但不能是零输出

最基本的一个程序必须有输出 ,,可以没有输入 !!!程序的入门一般都是写的一个只有输出的简单程序 !!!

Ⅱ <<数据结构>> 一个算法是正确的是指什么意思

正确分为4个层次
1.程序没有语法错误
2.程序对于几组输入的数据能够得到满足规格说明要求的结果
3.程序对于精心选择的典型,苛刻而带有刁难性的几组输入数据也能产生满足规格说明要求的结果
4.程序对于一切合法的输入数据都能产生满足规格说明要求的结果
通常一个算法满足第3个层次就说它是正确的了

Ⅲ 请设计一个算法C语言C程序C编程(很难)

没看清题目,原来你还要求——每一次的交换必须是上一组两个同学之间的交换,其实用递归函数递归还是可以的呀!只需要增加一个数组n[4](如果是N个同学之间的交换就设n[N-1]).

deal(l)函数——它只负责找出l号位置该站哪位同学,这名同学只能从上次0~(l-1)位置上已经站好的同学中选择出,并与l位置的同学作交换,(deal(l)函数会把“具体”找l号以下位置应该站哪些同学的任务交由deal(l-1)来处理),直到deal(0)负责0位置该站谁(此时已经结束,0号位置以下已经没同学可与0位置同学作交换了)。
这种思想仍然是递归,也就是回答者: sujie325 所说的思想!

问题的关键是:
对于deal(l)函数,我们必须要保证每一次被交换到l号位置的同学都是不同的,用什么来保证呢?设置一个数组n[4]!
它的作用是:
记录l号位置的同学变动情况(l号位置的同学只能与l号位置以下的同学交换),然后利用以下语句,在0~(l-1)位置中寻找出在n[4]中没有的同学(这名同学的位置是k),然后把此同学交换到l号位置。另外也不要忘记把l号位置的同学记录到n[]数组中!!
============================================================================
for(k=0;k<l;k++)
{ flagy=1;
for(n_i=0;n_i<=n_p;n_i++)
{
if(b[ml][k]==n[n_i])
{flagy=0;break;}
}
if(flagy)
{break;}
}
n[++n_p]=b[ml][l];
b[m][l]=b[ml][k],b[m][k]=b[ml][l];/*第k号位置处的同学与第l号位置的同学交换位置*/
==================================================================================
整个程序在如下:
#include<stdio.h>
#define N 5
int b[120][N]={1,2,3,4,5};
int m=0;
int deal(int l)
{int i,j;
int ml;
int n[4]={0};
int n_p=-1,n_i,n_j;
int k=0;
int flagy;
if(l==0)
return ++m;

deal(l-1);
for(i=0;i<l;i++)
{ ml=m-1;
for(j=0;j<5;j++)
{
b[m][j]=b[ml][j];
}
for(k=0;k<l;k++)
{ flagy=1;
for(n_i=0;n_i<=n_p;n_i++)
{
if(b[ml][k]==n[n_i])
{flagy=0;break;}
}
if(flagy)
{break;}
}
n[++n_p]=b[ml][l];
b[m][l]=b[ml][k],b[m][k]=b[ml][l];/*第k号位置处的同学与第l号位置的同学交

换位置*/
deal(l-1);
}

}

void main()
{
int l=N-1;int i,j;unsigned char pause=0x80;
deal(l);
for(i=0;i<120;i++)
{if((pause=pause>>1)==0)
{getchar();pause=0x80;}
for(j=4;j>=0;j--)
printf("%d ",b[i][j]);
printf("\n");
}
printf("It has %d categorys in total!\n",m);

}

=====================================================================================
上次的程序(只找出120种组合情况)

#include<stdio.h>
int b[120][5]={1,2,3,4,5};
int m=0;
int deal(int l)
{int i,j;
int ml=m;
if(l==0)
return ++m;

deal(l-1);
for(i=0;i<l;i++)
{
for(j=0;j<5;j++)
{
b[m][j]=b[ml][j];
}
b[m][l]=b[ml][i],b[m][i]=b[ml][l];/*第i号同学与l号同学交换位置*/
deal(l-1);
}

}
void main()
{
int l=4;int i,j;char c=0x10;
deal(l);
for(i=0;i<120;i++)
{if((c=c>>1)==1)/*由于数据组合种类很多,这条if语句实现的是显示暂停(getchar())*/
{getchar();c=0x10;}
for(j=4;j>=0;j--)/*输出组合*/
printf("%d ",b[i][j]);
printf("\n");
}
printf("the m is %d\n",m);
}

Ⅳ 算法正确的程序对于相同的输入一定有相同的结果,为什么正确

该说法不正确,如果算法中包含了随机步骤,每次运行的结果不一定相同

Ⅳ 算法与程序的区别与联系

算法和程序的区别是:

(1) 两者定义不同。算法是对特定问题求解步骤的描述,它是有限序列指令。而程序是实现预期目的而进行操作的一系列语句和指令。

说通俗一些算法是解决一个问题的思路,程序,是解决这些问题所具体好写的代码。算法没有语言界限。他只是一个思路。为实现相同的一个算法,用不同语言编写的程序会不一样。

(2)两者的书写规定不同。程序必须用规定的程序设计语言来写,而算法很随意。算法是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。算法常常含有重复的步骤和一些逻辑判断。

简单算法举例 例:求 1*2*3*4*5

步骤 1 :先求 1*2 ,得到结果 2 。

步骤 2 :将步骤 1 得到的乘积 2 再乘以 3 ,得到结果 6 。

步骤 3 :将步骤 2 得到的乘积 6 再乘以 4 ,得到结果 24 。

步骤 4 :将步骤 3 得到的乘积 24 再乘以 5 ,得到最后结果 120 。

算法与程序的联系 :

算法和程序都是指令的有限序列 ,但是程序是算法,而算法不一定是 程序。程序 = 数据结构 + 算法。算法的主要目的在于为人们提供阅读了解所执行的工作流程与步骤。数据结构与算法要通过程序的实现,才能由计算机系统来执行。可以这样理解,数据结构和算法形成了可执行的程序。

(5)算法正确的程序扩展阅读

算法的要素:

一、数据对象的运算和操作:计算机可以执行的基本操作是以指令的形式描述的。一个计算机系统能执行的所有指令的集合,成为该计算机系统的指令系统。一个计算机的基本运算和操作有如下四类:

1、算术运算:加减乘除等运算。

2、逻辑运算:或、且、非等运算。

3、关系运算:大于、小于、等于、不等于等运算。

4、数据传输:输入、输出、赋值等运算。

二、算法的控制结构:一个算法的功能结构不仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。

Ⅵ 在算法实现中,算法的正确性如何保证

算法本身的正确性用逻辑推理来证明,和数学定理类似

实现算法的程序的正确性则是两码事
简单的程序也用逻辑推理来证明,稍复杂的可以用某些专门验证程序正确性的程序来验证,再复杂的就没什么好办法了,事实上很多复杂的程序在比较极端的输入下或多或少都会有点问题

Ⅶ 算法正确的程序可以没有输出吗

不是所有的程序都必须有输出的。所以你的问题的答案是“可以”

比如文件管理程序,它只要管理文件就可以了,但是一般为了友好性,都会输出一些适当的信息,目的是让人去知道他干了些什么。

这就是交互性。

Ⅷ 求二级C语言笔试题库

2006年4月二级C语言笔试试题

一选择题((1)-(10)每题2分,(11)-(50)每题1分,共60分)

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

1)下列选项中不属于结构化程序设计方法的是

A) 自顶向下

B)逐步求精

C)模块化

D)可复用

2)两个或两个以上模块之间关联的紧密程度称为

A)耦合度

B)内聚度

C)复杂度

D)数据传输特性

3)下列叙述中正确的是

A)软件测试应该由程序开发者来完成

B)程序经调试后一般不需要再测试

C)软件维护只包括对程序代码的维护

D)以上三种说法都不对

4)按照“后进先出”原则组织数据的数据结构是

A)队列

B)栈

C)双向链表

D)二叉树

5)下列叙述中正确的是

A)线性链表是线性表的链式存储结构

B)栈与队列是非线性结构

C)双向链表是非线性结构

D)只有根结点的二叉树是线性结构

6)对如下二叉树

进行后序遍历的结果为

A) ABCDEF

B) DBEAFC

C) ABDECF

D) DEBFCA

7)在深度为7的满二叉树中,叶子结点的个数为

A)32

B)31

C)64

D)63

8)“商品”与“顾客”两个实体集之间的联系一般是

A)一对一

B)一对多

C)多对一

D)多对多

9)在E-R图中,用来表示实体的图形是

A)矩形

B)椭圆形

C)菱形

D)三角形

10)数据库DB,数据库系统DBS,数据库管理系统DBMS之间的关系是

A)DB包含DBS和DBMS

B)DBMS包含DB和DBS

C)DBS包含DB和DBMS

D)没有任何关系

11)以下不合法的用户标识符是

A)j2_KEY

B)Double

C) 4d

D) _8_

12)以下不合法的数值常量是

A)011

B)lel

C) 8.0 E0.5

D) 0xabcd

13)以下不合法的字符常量是

A)'\018'

B '\”'

C) '\\'

D) ‘\xcc'

14)表达式3.6-5/2+1.2+5%2的值是

A)4.3

B) 4.8

C) 3.3

D) 3.8

15)以下能正确定义字符串的语句是

A)char str[]={‘\064'};

B) char str=”\x43”;

C) char str=”;

D) char str[]=”\0”;

16)以下数组定义中错误的是

A) int x[][3]={0};

B) int x[2][3]={{1,2},{3,4},{5,6}};

C) nt x[][3]={{1,2,3},{4,5,6}};

D)int x[2][3]={1,2,3,4,5,6};

17)若要求从键盘读入含有空格字符的字符串,应使用函数

A)getc()

B) gets()

C) getchar()

D) scanf()

18) 下四个程序中,完全正确的是

A)#include B)#include

main(); main()

{/*programming*/ {/*/programming/*/

printf(“programming!\n”); } printf(“programming!\n”);}

C) #include D) include

main() main()

{/*/*programming*/*/ {/*programming*/

printf(“programming!\n”);} printf(“programming!\n”);}

19)若有定义:float x=1.5; int a=1,b=3,c=2;则正确的switch语句是

A)switch(x) B) switch((int)x);

{case 1.0: printf(“*\n”); {case 1: printf(“*\n”);

Case 2.0: printf(“**\n”); } case 2: printf(“**\n”);}

C) switch(a+b) D) switch(a+b)

{ case 1: printf(“*\n”); {case 1: printf(*\n”);

case 2+1: printf(“**\n”);} case c: printf(“**\n”);}

20)若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是

A)main() B) float fun(int a,int b){……}

{……x=fun(2,10);……} main()

float fun(int a,int b){……} {……x=fun(i,j);……}

C)float fun(int,int); D) main()

main() { float fun(int i,int j);

{……x=fun(2,10);……} ……x=fun(i,j);……}

float fun(int a,int b){……} float fun(int a,int b){……}

21)在以下给出的表达式中,与while(E)中的(E)不等价的表达式是

A)(!E=0)

B) (E>0||E<0)

C) (E==0)

D) (E!=0)

22)要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是

A) while((ch=getchar())!='N') printf(“%c”,ch);

B) while(ch=getchar()!='N') printf(“%c”,ch);

C) while(ch=getchar()==N') printf(“%c”,ch);

D) while((ch=getchar())=='N') printf(“%c”,ch);

23)已定义以下函数

int fun(int *p)

{return *p;}

fun 函数返回值是

A)不确定的值

B)一个整数

C)形参p中存放的值

D)形参p的地址值

24)若有说明语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是

A)*p=&a; scanf(“%lf”,p);

B)*p=&a; scanf(“%f”,p);

C) p=&a; scanf(“%lf”,*p);

D)p=&a; scanf(“%lf”,p);

25)现有以下结构体说明和变量定义,如图所示,指针p,q,r分别指向一个链表中连续的三个结点。

struct node

{

char data;

struct node *next;

}*p,*q,*r;

现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是

A)q->next=r->next; p->next=r; r->next=q;

B) p->next=r; q->next=r->next; r-.next=q;

C) q->next=r->next; r->next=q; p->next=r;

D) r->next=q; p-next=r; q-next=r->next;

26)有以下程序段

struct st

{ int x; int *y;}*pt:

int a[]={1,2},b[]={3,4};

struct st c[2]={10,a,20,b};

pt=c;

以下选项中表达式的值为11的是

A) *pt->y

B) pt->x

C) ++pt->x

D) (pt++)->x

27)设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为

A)EOF

B)非0值

C) 0

D)NULL

28)设有以下语句

int a=1,b=2,c;

c=a^(b<<2);

执行后,c的值为

A)6

B) 7

C) 8

D) 9

29)有以下程序

#include

main()

{

char c1,c2,c3,c4,c5,c6;

scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4);

c5=getchar(); c6=getchar();

putchar(c1); putchar(c2);

printf(“%c%c\n”,c5,c6);

}

程序运行后,若从键盘输入(从第1列开始)

123<回车>

45678<回车>

则输出结果是

A)1267

B)1256

C) 1278

D)1245

30)若有以下程序

main()

{int y=10;

while(y- -); printf(“y=%d\n”y);

}

程序运行后的输出结果是

A)y=0

B)y=-1

C) y=1

D)while构成无限循环

31)有以下程序

main()

{

int a=0,b=0,c=0,d=0;

if(a=1) b=1;c=2;

else d=3;

printf(“%d,%d,%d,%d\n”,a,b,c,d);

}

程序输出

A)0,1,2,0

B) 0,0,0,3

C)1,1,2,0

D)编译有错

32)有以下程序

main()

{

int i,j,x=0;

for(i=0;i<2;i++)

{ x++;

for(j=0;j<=3;j++)

{

if(j%2) continue;

x++;

}

x++;

}

printf(“x=%d\n”,x);

}

程序执行后的输出结果是

A)x=4

B) x=8

C) x=6

D) x=12

33)有以下程序

int fun1(oble a){return a*=a;}

int fun2(dpuble x,double y)

{

double a=0,b=0;

a=fun1(x); b=fun1(y); return (int)(a+b);

}

main()

{double w; w=fun2(1.1,2.0);……}

程序执行后变量w中的值是

A)5.21

B) 5

C) 5.0

D) 0.0

34)有以下程序

main()

{

int i,t[][3]={9,8,7,6,5,4,3,2,1};

for(i=0;i<3;i++) printf(“%d”,t[2-i][i]);

}

程序的执行后的输出结果是

A)7 5 3

B) 3 5 7

C)3 6 9

D)7 5 1

35)有以下程序

fun(char p[][10])

{int n=0,i;

for(i=0;i<7;i++)

if(p[i][0]=='T') n++;

return n;

}

main()

{

char str[][10]={“Mon”, “Tue”, “Wed”, “Thu”,”Fri”,”Sat”,”Sun”};

printf(“%d\n”,fun(str));

}

程序执行后的输出结果是

A)1

B) 2

C)3

D) 0

36有以下程序

main()

{

int i,s=0,t[]={1,2,3,4,5,6,7,8,9};

for(i=0;i<9;i+=2) s+=*(t+i);

printf(“%d\n”,s);

}

程序执行后的输出结果是

A)45

B)20

C)25

D)36

37)有以下程序

void fun1(char *p)

{

char *q;

q=p;

while(*q!='\0')

{ (*q)++; q++; }

}

main()

{ char a[]={“Program”},*p;

p=&a[3]; fun1(p); printf(“%s\n”,a);

}

程序执行后的输出结果是

A)P rohsbn

B)Prphsbn

C)Progsbn

D)Program

38)有以下程序

void swap(char *x,char *y)

{

char t;

t=*x; *x=*y; *y=t;

}

main()

{

char *s1=”abc”,*s2=”123”;

swap(s1,s2); printf(“%s,%s\n”,s1,s2);

}

程序执行后的输出结果是

A)123,abc

B) abc,123

C)1bc,a23

D) 321,cba

39)有以下程序

int fun(int n)

{

if(n==1) return 1;

else

return (n+fun(n-1));

}

main()

{

int x;

scanf(“%d”,&x); x=fun(x); printf(“%d\n”,x);

}

程序执行时,给变量x输入10,程序的输出结果是

A)55

B) 54

C) 65

D) 45

40)有以下程序

int fun(int x[],int n)

{static int sum=0,i;

for(i=0;i sum+=x[i];

return sum;

}

main()

{int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0;

s=fun(a,5)+fun(b,4); printf(“%d\n”,s);

}

程序执行后的输出结果是

A)45

B)50

C)60

D)55

41)有以下程序

main()

{

union {

char ch[2];

int d;

}s;

s.d=0x4321;

printf(“%x,%x\n”,s.ch[0],s.ch[1]);

}

在16位编译系统上,程序执行后的输出结果是

A)21,43

B)43,21

C)43,00

D)21,00

42)有以下程序

main()

{

char *p[]={“3697”,”2584”};

int i,j; long num=0;

for(i=0;i<2;i++)

{j=0;

while(p[i][j]!='\0')

{ if((p[i][j]-‘0')%2)num=10*num+p[i][j]-‘0';

j+=2;

} }

printf(“%d\n”num);

}

程序执行后的输出结果是

A)35

B)37

C)39

D)3975

43)执行以下程序后,test.txt文件的内容是(若文件能正常打开)

#include

main()

{

FILE *fp;

char *s1=”Fortran”,*s2=”Basic”;

if((fp=fopen(“test.txt”,”wb”))==NULL)

{ printf(“Can't open test.txt file\n”); exit(1);}

fwrite(s1,7,1,fp); /*把从地址s1开始的7个字符写到fp所指文件中*/

fseek(fp,0L,SEEK_SET); /*文件位置指针移到文件开头*/

fwrite(s2,5,1,fp);

fclose(fp);

}

A)Basican

B)BasicFortran

C)Basic

D)FortranBasic

44)以下叙述中错误的是

A)C语言源程序经编译后生成后缀为.obj的目标程序

B)C语言经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件

C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中

D)C语言的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

45)以下叙述中错误的是

A)算法正确的程序最终一定会结束

B)算法正确的程序可以有零个输出

C)算法正确的程序可以有零个输入

D)算法正确的程序对于相同的输入一定有相同的结果

46)以下叙述中错误的是

A)C程序必须由一个或一个以上的函数组成

B)函数调用可以作为一个独立的语句存在

C)若函数有返回值,必须通过return语句返回

D)函数形参的值也可以传回对应的实参

47)设有以下定义和语句

char str[20]=”Program”,*p;

p=str;

则以下叙述中正确的是

A)*p与str[0]中的值相等

B)str与p的类型完全相同

C)str数组长度和p所指向的字符串长度相等

D)数组str中存放的内容和指针变量p中存放的内容相同

48)以下叙述中错误的是

A)C程序中的#include和#define行均不是C语句

B)除逗号运算符外,赋值运算符的优先级最低

C)C程序中,j++;是赋值语句

D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算

49)以下叙述中正确的是

A)预处理命令行必须位于C源程序的起始位置

B)在C语言中,预处理命令行都以“#”开头

C)每个C程序必须在开头包括预处理命令行:#include

D)C语言的预处理不能实现宏定义和条件编译的功能

50)以下叙述中错误的是

A)可以通过typedef增加新的类型

B)可以用typedef将已存在的类型用一个新的名字来代表

C)用typedef定义新的类型名后,原有类型名仍有效

D)用typedef可以为各种类型起别名,但不能为变量起别名

二:填空题(每空2分,共40分)

请将每一个空的正确答案写在答题卡[1]至[20]序号的横线上,答在试卷上不得分

1)对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为_______[1]________。

2)在面向对象方法中,_____[2]______描述的是具有相似属性与操作的一组对象。

3)在关系模型中,把数据看成是二维表,每一个二维表称为一个___[3]_____。

4)程序测试分为静态分析和动态测试,其中__[4]______是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。

5)数据独立性分为逻辑独立性与物理独立性,当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为_[5]______。

6)若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句__[6]____。

7)以下程序用于判断a,b,c能否构成三角形,若能输出YES,若不能输出NO。当a,b,c输入三角形三条边长时,确定a,b,c能构成三角形的条件是需要同时满足三条件:a+b>c,a+c>b,b+c>a。 请填空。

main()

{

float a,b,c;

scanf(“%f%f%f”,&a,&b,&c);

if(__[7]__)printf(“YES\n”);/*a,b,c能构成三角形*/

else printf(“NO\n”);/*a,b,c不能构成三角形*/

}

8)以下程序的输出结果是__[8]_____

main()

{ int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;

for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1];

printf(“%d\n”,s);

}

9)当运行以下程序时,输入abcd,程序的输出结果是:_[9]____。

insert(char str[])

{ int i;

i=strlen(str);

while(i>0)

{ str[2*i]=str[i]; str[2*i-1]='*';i--;}

printf(“%s\n”,str);

}

main()

{char str[40];

scanf(“%s”,str ); insert(str);

}

10)以下程序的运行结果是:__[10]____

fun(int t[],int n)

{ int i,m;

if(n==1) return t[0];

else

if(n>=2) {m=fun(t,n-1); return m;}

}

main()

{

int a[]={11,4,6,3,8,2,3,5,9,2};

printf(“%d\n”,fun(a,10));

}

11)现有两个C程序文件T18.c和myfun.c同时在TC系统目录(文件夹)下,其中T18.c文件如下:

#include

#include”myfun.c”

main()

{ fun(); printf(“\n”); }

myfun.c文件如下:

void fun()

{ char s[80],c; int n=0;

while((c=getchar())!='\n') s[n++]=c;

n--;

while(n>=0) printf(“%c”,s[n--]);

}

当编译连接通过后,运行程序T18时,输入Thank!则输出的结果是:___[11] 。

12)以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如:str所指字符串为Hello!, c中的字符为e,则函数返回字符串:ello!的首地址。若str所指字符串为空串或不包含c中的字符,则函数返回NULL。请填空。

char *fun(char *str,char c)

{ int n=0;char *p=str;

if(p!=NULL)

while(p[n]!=c&&p[n]!='\0') n++;

if(p[n]=='\0' return NULL;

return (_[12]_);

}

13)以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。

main()

{ int i,j;

for(i=0;__[13]__;i++)

{ j=i*10+6;

if(_[14]____) continue;

printf(“%d ”,j);

}

}

14)以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0,请填空

int isprime(int a)

{ int i;

for(i=2;i<=a/2;i++)

if(a%i==0) __[15]___;

__[16]___;

}

15)以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形,例如,输入整数5时(注意:n不得大于10),程序运行结果如下:

A B C D E

F G H I

J K L

M N

O

请填空完成该程序。

main()

{ int i,j,n; char ch='A';

scanf(“%d”,&n);

if(n<11)

{

for(i=1;i<=n;i++)

{ for(j=1;j<=n-i+1;j++)

{ printf(“%2c”,ch);

___[17]____;

}

【18】

}

}

else printf(“n is too large!\n”);

printf(“\n”);

}

16)以下程序中函数fun的功能是:构成一个如图所示的带头结点的单向链表,在结点数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单链表中所有结点中的字符串。请填空完成函数disp。

#include

typedef struct node /*链表结点结构*/

{ char sub[3];

Struct node *next;

}Node;

Node fun(char s) /*建立链表*/

{ …… }

void disp(Node *h)

{

Node *p;

p=h->next;

While(【19】)

{

printf(“%s\n”,p->sub); p=【20】;}

}

main()

{

Node *hd;

hd=fun(); disp(hd); printf(“\n”);
}

答案
一、选择题
1-10 : DADBA DCDAC
11-20:CCADD BBBCA
21-30:CABDD CBDDD
31-40:DBCBB CACAC
41-50:ACADB DADBA

二、填空题
1、45
2、类
3、关系
4、静态分析
5、物理独立性
6、printf("a=%d,b=%d",a,b)
7、(a+b>c)&&(a+c>b)&&(b+c>a)
8、30
9、a*b*c*d*
10、11
11、!knahT
12、p+n 或 str+n
13、i<=9 或 i<10
14、j%3!=0
15、return 0
16、return 1
17、ch=ch+1
18、printf("\n")
19、p!=NULL
20、p->next

Ⅸ 算法的正确性如何检验

我这学期也正在学数据结构,学的那个晕那,写的只是代码而已,也就是说是编程的思路。如果你要证明,那就得用具体的程序带入吧。我师傅说,数据结构是编程的重心,最重要了。所以好好学吧。

Ⅹ 算法正确的程序

用排除法,算法正确的程序,一定有输入,也一定有输出,而不会是零个输入输出,但不一定完全相同,所以,选A!

热点内容
linuxservice命令 发布:2024-05-22 01:07:56 浏览:371
clinux程序设计 发布:2024-05-22 01:04:47 浏览:511
armc编程 发布:2024-05-22 01:02:26 浏览:156
铣圆弧编程 发布:2024-05-22 00:41:54 浏览:26
php网站运行 发布:2024-05-22 00:38:02 浏览:653
扑狗源码 发布:2024-05-22 00:26:30 浏览:241
多节点cdn服务器搭建 发布:2024-05-22 00:25:44 浏览:184
基因工程常用药配置遵循哪些原则 发布:2024-05-22 00:08:38 浏览:271
es买哪个配置的最多 发布:2024-05-21 23:57:23 浏览:695
阿里云服务器国外 发布:2024-05-21 23:46:39 浏览:78