2021年河北省秦皇岛市全国计算机等级考试C语言程序设计测试卷一(含答案)_第1页
2021年河北省秦皇岛市全国计算机等级考试C语言程序设计测试卷一(含答案)_第2页
2021年河北省秦皇岛市全国计算机等级考试C语言程序设计测试卷一(含答案)_第3页
2021年河北省秦皇岛市全国计算机等级考试C语言程序设计测试卷一(含答案)_第4页
2021年河北省秦皇岛市全国计算机等级考试C语言程序设计测试卷一(含答案)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2021年河北省秦皇岛市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________

一、单选题(12题)1.下列判断正确的是()。

A.chara="ABCD":等价于char*a;*a="ABCD":

B.charstr[10]={"ABCD"}:等价于charstr[10];str[]={"ABCD"};

C.char*s="ABCD":等价于chars;*s="ABCD";

D.charc[5]="ABCD",d[5]="ABCD":等价于charc[5]-d[5]="ABCD";

2.下面合法的C语言字符常量是()。

A.'\t'B."A"C.65D.A

3.有下列程序:main{inty=10;do{y--;}while(--y);printf("%d\n",--y);)当执行程序时,输出的结果是()。A.-1B.1C.4D.0

4.设x、Y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是()。

A.xYB.x<=YC.x‖y+zy-zD.!((x

5.下列叙述中正确的是()。

A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上3种说法都不对

6.若在定义语句:inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是()。

A.scanf("%d",a,b,c);

B.scanf("%d%d%d",a,b,c):

C.scanf("%d",p);

D.scanf("%d",&p);

7.拥有PC机并以拨号方式接入网络的用户需要配置()

A.CD-ROMB.ModemC.电话机D.鼠标

8.下面算法的时间复杂度为()A.O(1)B.O(n)C.O(n*n)D.O(n!)

9.下列说法错误的是______。

A.关系中每一个属性对应一个值域

B.关系中不同的属性可对应同一值域

C.对应同一值域的属性为不同的属性

D.DOM(A)表示属性A的取值范围

10.以下不合法的用尸标识符是()。A.A.804zhangB._hhC.yy614D.If

11.

读取二进制文件的函数调用形式为:fread(buffersize,count,fp);,其中buffer代表的是()。

A.一个文件指针,指向待读取的文件

B.一个整型变量,代表待读取的数据的字节数

C.一个内存块的首地址,代表读人数据存放的地址

D.一个内存块的字节数

12.以下正确的字符串常量是()。

A."\\\"B.abcC.OlympicGamesD.""

二、2.填空题(12题)13.在关系模型中,二维表的行称为______。

14.算法的复杂度主要包括【】复杂度和空间复杂度。

15.下面程序的运行结果是【】。

main()

{inti=0,j=10,k=2,s=0;

for(;;)

{i+=k;

if(i>j)

{printf("%d\n",s);

break;}

s+=i;}}

16.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。

intmystden(char*str)

{inti;

fo,(i=0;【】!='\0';i++);

return(i);

17.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。

18.把数学表达式改写成C语言的表达式是【】。

19.设有以下定义和语句,则*(*(p+2)+1)的值为【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

20.下面程序执行后输出的结果是【】。

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

printf("%d\n",fun(a,b)/m);

}

21.以下程序中给指针p分配三个double型动态内存单元,请填空。

#include<stdio.h>

main()

{dOuble*p;

p=(double*)malloc();

p[0]=1.5;p[1]=2.5;p[2]=3.5

printf("%f%f%f\n",p[0],p[1],p[2]);

}

22.在最坏情况下,堆排序需要比较的次数为()。

23.函数调用语句:“fgets(buf,n,fp);”从中指向的文件中读入n个字符放到buf字符数组中,函数返回值为______。

24.以下程序运行后的输出结果是【】。

#include<stdio.h>

main()

{inta=1,b=3,c=5;

if(c=a+b)printf("yes\n");

elseprintf("no\n");

}

三、3.程序设计题(10题)25.请编写函数fun(),该函数的功能是:移动字符串中的内容,移动的规则是把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。

例如,字符串中原有的内容为ABCDEFGHIJK,m的值为3,移动后,字符串中的内容应该是DEFGHIJKABC。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include<stdio.h>

#include<string.h>

#defineN80

voidfun(char*w,intm)

{

}

main()

{

chara[N]="ABCDEFGHIJK";

intm;

printf("Theoriginastring:\n");

puts(a);

printf("\n\nEnterm:");

scanf("%d",&m);

fun(a,m);

printf("\nThestringaftermoving:\n");

puts(a);

printf("\n\n");

}

26.请编写函数fun(),它的功能是计算下列级数和,和值由函数值返回。

S=1-x+x2(上标)/2!-x3(上标)/3!+…+(-1*x)n(上标)/n!

例如,当n=15,x=0.5时,函数值为0.606531。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include<conio.h>

#include<stdio.h>

#include<math.h>

doublefun(doublex,intn)

{

}

main()

{

clrscr();

printf("%f",fun(0.5,15));

}

27.编写程序,实现矩阵(3行3列)的转置(即行列互换)。

例如,若输入下面的矩阵:

100200300

400500600

700800900

则程序输出:

100400700

200500800

300600900

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include<stdio.h>

#include<conio.h>

intfun(intarray[3][3])

{

}

main()

{

inti,j;

intarray[3][3]={{100,200,300},{400,

500,600},{700,800,900}};

clrscr();

for(i-0;i<3;i++)

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

printf("%7d",array[i][j]);

printf("\n");

}

fun(array);

printf("Convertedarray:\n");

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

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

printf("%7d",array[i][j]);

printf("\n");

}

}

28.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。

例如,输入的分数是60和69,则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。主函数中把60放在low中,把69放在heigh中。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include<stdio.h>

#defineN16

typedefstruct

{charnum[10];

ints;

}STREC;

intfun(STREC*a,STREC*b,int1,inth)

{

}

main()

{

STRECs[N]={{"GA005",85},{"GA003",76},

{"GA002",69},{"GA004",85},{"GA001",96},

{"GA007",72},{"GA008",64},{"GA006",87},

{"GA015",85},{"GA013",94},{"GA012",64},

{"GA014",91},{"GA011",90},{"GA017",64},

{"GA018",64},{"GA016",72}};

STRECh[N],tt;

FILE*out;

inti,j,n,low,heigh,t;

printf("Enter2integernumberlow&

heigh:");

scanf("%d%d",&low,&heigh);

if(heigh<low)

{t=heigh;heigh=low;low=t;}

n=fun(s,h,low,heigh);

printf("Thestudent'sdatabetween

%d--%d:\n",low,heigh);

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

printf("%s%4d\n",h[i].num,h[i].s);

/*输出指定分数范围内的学生记录*/

printf("\n");

ut=fopen("out74.dat","w")

fprintf(out,"%d\n",n)-

n=fun(s,h,80,98);

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

/*分数在80~98之间的学生记录按他数从低到高排序*/

for(j=i+l;j<n;j++)

if(h[i].s>h[j].s)

{tt=h[i];h[ii=h[j];h[j]=tt;}

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

fprintf(out,"%4d\n",h[i].s);

fprintf(out,"\n");

fclose(out);

}

29.请编写函数fun,其功能是:计算并输出给定10个数的方差:

例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,输出为s=11.730729。

注意:部分源程序在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

30.编写函数fun(),它的功能是求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。

例如:n为1000时,函数值应为s=96.979379。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include<conio.h>

#include<math.h>

#include

doublefun(intn)

{

}

main()

{

clrscr();

printf("s=%f\n",fun(1000));

}

31.下列程序定义了N×N的二维数组,并在主函数中自动赋值;请编写函数fun(inta[][N]),该函数的功能是:使数组左下半三角元素中的值全部置成0。例如a数组中的值为

a=197

238

456

则返回主程序后a数组中的值应为

097

008

000

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

#defineN5

intfun(inta[][N])

{

}

main()

{

inta[N][N],i,j;

clrscr();

printf("*****Thearray*****\n");

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

/*产生—个随机的5*5矩阵*/

{for(j=0;j<N;j++)

{a[i][j]=rand()%10;

printf("%4d",a[i][j]);

}

printf("\n");

}

fun(a);

printf("THERESULT\n");

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

{for(j=0;j<N;j++)

printf("%4d",a[i][j));

printf("\n");

}

}

32.N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun(),它的功能是:找出学生的最高分,由函数值返回。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include<stdio.h>

#include<stdlib.h>

#defineN8

structslist

{doubles;

structslist*next;

};

typedefstructslistSTREC;

doublefun(STREC*h)

{

}

STREC*creat(double*s)

{

STREC*h,*p,*q;

inti=0;

h=p=(STREC*)malloc(sizeof(STREC));

p->s=0;

while(i<N)

/*产生8个节点的链表,各分数存入链表中*/

{q=(STREC*)malloc(sizeof(STREC));

p->s=s[i];i++;p->next=q;p=q;

}

p->next=0;

returnh;/*返回链表的首地址*/

}

outlist(STREC*h)

{

STREC*p;

p=h->next;

printf("head");

do

{printf("->%2.0f",p->s);p=p->next;}

/*输出各分数*/

while(p!=0);

printf("\n\n");

}

main()

{

doubles[N]={85,76,69,85,91,72,64,87},

max;

STREC*h;

h=creat(s);

outlist(h);

max=fun(h);

printf("max=%6.1f\n",max);

}

33.已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun(),该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。己给出函数的首部,请完成该函数。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include<stdio.h>

#include<string.h>

#include<aonio.h>

#defineN10

typedefstructss

{charnum[10];

ihts;

}STU;

fun(STUail,STU*s)

{

}

main()

{

STUa[N]={{"A01",81},{"A02",89},

{"A03",66},{"A04",87},{"A05",77},

{"A06",90},{"A07",79},{"A08",61},

{"A09",80),{"Al0",71}},m;

inti;

clrscr0;

printf("*****Theoriginaldata*****");

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

printf("No=%sMark=%d\n",ail].num,

a[i].s);

fun(a,&m);

printf("*****THERESULT*****\n");

printf("Thelowest:%s,%d\n",m.num,

m.s);

}

34.N名学生的成绩己在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun(),它的功能是:求出平均分,由函数值返回。

例如,若学生的成绩是85,76,69,91,72,64,87,则平均分应当是78.625。

注童:部分源程序给出如下.

请勿改动主函数main和其他函数中的任何内容,仅在函数6m的花括号中填入所编写的若干语句。

试题程序:

#include<stdlib.h>

#include<stdio.h>

#defineN8

structslist

{doubles;

structslist*next;

};

typedefstructslistSTREC;

doublefun(STREC*h)

{

}

STREC*creat(double*s)/*创建链表*/

{

STREC*h,*p,*q;

inti=0;

h=p=(STREC*)malloc(sizeof(STREC));

p->s=0;

while(i<N)

{q=(STREC*)malloc(sizeof(STREC));

q->s=sIi];i++;p->next=q;p=q;

}

p->next=0;

returnh;

}

outlist(STREC*h)

{

STREC*p;

p=h->next;

printf("head");

do

{printf("->%4.if",p->s);

p=p->next;/*输出各成绩*/

}

while(p!=0)

}

main()

{

doubles[N]={85,76,69,85,91,72,64,

87},ave;

STREC*h;

h=creat(s);

outlist(h);

ave=fun(h);

printf("ave=%6.3f\n",ave);

}

四、单选题(0题)35.有定义语句:inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是A.if(c<a)x=1;elseif(b<a)x=2;elsex=3;

B.if(a<3)x=3;elseif(b<a)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<1)x=1;

D.if(a<b)x=b;if(b<c)x=c;if(c<a)x=a;

五、单选题(0题)36.下列叙述中正确的是A.为了建立一个关系,首先要构造数据的逻辑关系

B.表示关系的二维表中各元组的每一个分量还可以分成若干数据项

C.一个关系的属性名表称为关系模式

D.一个关系可以包括多个二维表

六、单选题(0题)37.C语言中的变量只能由字母、数字和下划线组成,且第一个字符()。

A.必须是字母B.必须是下划线C.必须是下划线和字母D.可以是字母.数字或下划线中任一一种

参考答案

1.Da=“ABCD”书写错误,因为“=”左边不能出现常量;数组名S是代表S数组首地址常量,而不是变量;字符串只有在定义时维数可以省略。

2.A

3.A本题考查do-while循环。当--y是0(即y是o)时结束循环,输出--y,先将y的值减1再输出Y的值。

4.D本题考查逻辑运算符的使用。当“”的两个运算对象都是逻辑l时,表达式返回值才是1;“‖”的两个运算对象至少有一个是逻辑1时,表达式返回值也是l,x<y为1,!z为0,10为1,0‖为1,因此,!l为0。

5.D程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。设计算法时要考虑到数据结构的设计,但是不仅仅是要考虑到数据结构的设计,还要考虑到其他的程序结构的问题。设计算法时不能只考虑结果的正确性和可靠性,还需要考虑到程序的时间冗余度等方面。所以答案选择D。

6.C

\n题中整型指针变量P存放的是变量C的地址。所以本题答案为C。

\n

7.B

8.B

9.C解析:关系中每一个属性都有一个取值范围,称为属性的值域。每—个属性对应一个值域,不同属性可对应同一个值域。对应同一值域的却不一定是不同的属性。属性的值域用DOM(A)表示,A表示属性的名称。

10.AC语言规定,标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或下划线。

11.Cfread函数中的参数buffer是内存块的首地址,输入的数据存入此内存块中。

12.D选项A中“\\\”为转义字符,故选项A错误,选项B和C显然不是字符串常量。选项D是一个字符串常量,称为空串。

13.元组元组解析:在关系型数据库中,用二维表来表示关系,二维表的表名即关系名,二维表的行称为关系的元组,二维表的列,称为关系的属性。

14.时间时间解析:算法的复杂度主要指时间复杂度和空间复杂度。所谓算法的时间复杂度,是指执行算法所需要的计算工作量;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。

15.3030解析:考查for循环的使用。题目中for(;;)表示:for循环的初始化表达式,条件表达式和修正表达式都省略了,表示进行for循环和for循环的终止都没有限制。

16.*(str+i)或str[i]*(str+i)或str[i]解析:str是指针变量,它指向字符型数据,在循环过程中,用*(str+i)或str[i]来访问字符串的第i个元素,判断是否是结束标志,如果不是,i=i+1,继续取下一个元素进行判断,直到*(str+i)的值为'\\0'为止。

17.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。

18.(cosx)*(cosx)*(m+n)/(m-n)

19.6060解析:程序中定义a是一个3行2列的二维数组,p是指向两个元素的一维数组指针,并让p指向二维数组a的首行。则代码*(*(p+2)+1)中的p+2指向二维数组a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。

20.22解析:本题变量m既是外部变量(值是13),又是fun函数的局部变量(值为3)。函数fun(x*y-m)的值为7*5-3=32,在main函数中,fun(a,b)/m中的m应取外部变量的值13,因此输出2。

21.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:本题考核的知识点是malloc()函数.该函数的调用格式是“malloc(n)”,作用是申请n个字符的存储单元,并返回该存储区的首地址,实际调用的时候可在前面加上“(类型说明符*)”,以转换成需要的类型的地址.所以在此空格处应该填写3*sizeof(double)或size(double)*3或其他等价的表达式。

22.O(nlog2n)

23.buf的首地址buf的首地址解析:考查fsets()函数的功能,f8ets()函数用来从文件中读入字符串。调用格式为:f8ets(buf,n,fp)。此处,fp是文件指针,buf是存放字符串的起始地址,n是一个int型变量。调用函数fsets()时,最多能读入n-1个字符,系统自动在最后加字符串结束标志,并以buf作为函数值返回。

24.yesyes解析:程序if语句中是赋值表达式,而不是相等“==”运算。因为c=a+b中a+b的值为4,赋给c,c=4,表达式为真,输出yes。

25.voidfun(char*wintm){intij;chart;for(i=1;i<=m;i++)/*进行m次的循环左移*/{t=w[0];for(j=1/w[j]!='\0';j++)/*从第2个字符开始以后的每个字符都依次前移一个字符*/w[j-1]=w[j];w[j-1]=t;/*将第1个字符放到最后一个字符中*/}}voidfun(char*w,intm)\r\n{\r\ninti,j;\r\nchart;\r\nfor(i=1;i<=m;i++)/*进行m次的循环左移*/\r\n{t=w[0];\r\nfor(j=1/w[j]!='\\0';j++)/*从第2个字符开始以后的每个字符都依次前移一个字符*/\r\nw[j-1]=w[j];\r\nw[j-1]=t;/*将第1个字符放到最后一个字符中*/\r\n}\r\n}解析:我们在学习C语言的时候,应该广泛地应用到循环的方法,本题应采用“循环左移”的算法。即从第2个字符开始以后的每个字符都依次前移一个字符,而原来的第1个字符放在串中的最后一个字符。当要平移m个字符时,则要进行m次的循环左移。内嵌的循环的作用是完成从第2个字符开始以后的每个字符都依次前移一个字符,w[j-1]=t的作用是将第1个字符放到最后一个字符中。

26.doublefun(doublexintn){intij=1;doubles=1.0s1=1.0;for(i=1;i<=n;i++){j=-1*j;s1=s1*i/*各项中的阶乘*/s=s+j*pow(xi)/s1;/*按公式求出*/}returns;}doublefun(doublex,intn)\r\n{\r\ninti,j=1;\r\ndoubles=1.0,s1=1.0;\r\nfor(i=1;i<=n;i++)\r\n{\r\nj=-1*j;\r\ns1=s1*i/*各项中的阶乘*/\r\ns=s+j*pow(x,i)/s1;/*按公式求出*/\r\n}\r\nreturns;\r\n}解析:本程序中用s1来表示每项的分母(即各项中的阶乘),要注意本程序中s和s1的初值都为1。注意到本题的公式中是加减相间的,这里要学会使用语句j=-1*j来实现。

27.intfun(intarray[3][3]){intijt;for(i=0;i<3;i++)/*将右上三角和左下三角对换实现行列互换*/for(j=i+1;j<3;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}}intfun(intarray[3][3])\r\n{\r\ninti,j,t;\r\nfor(i=0;i<3;i++)/*将右上三角和左下三角对换,实现行列互换*/\r\nfor(j=i+1;j<3;j++)\r\n{t=array[i][j];\r\narray[i][j]=array[j][i];\r\narray[j][i]=t;\r\n}\r\n}解析:注意对矩阵转置后仍然存回其本身时,只能循环矩阵中的一个角(本程序是右上半三角)。控制右上半三角的方法是在第2个循环中j从i+1或i开始,左下半三角的方法是在第2个循环中写成for(j=0;j<i;j++),若要控制所有元素在第2个循环要写成for(j=0;j<3;j++)。

28.intfun(STREC*aSTREC*bint1inth){intij=0;for(i=0;i<N;i++)if(a[i].s>-l&&a[i].s<=h)/*将分数高于1低于h的学生记录存在于结构体数组b中*/b[j++]=a[i];returnj;/*返回分数范围内的学生人数*/}intfun(STREC*a,STREC*b,int1,inth)\r\n{\r\ninti,j=0;\r\nfor(i=0;i<N;i++)\r\nif(a[i].s>-l&&a[i].s<=h)/*将分数高于1,低于h的学生记录存在于结构体数组b中*/\r\nb[j++]=a[i];\r\nreturnj;/*返回分数范围内的学生人数*/\r\n}解析:处理此类分段统计问题,可采用多分支选择语句或条件选择语句。此处采用条件选择语句解答,具体见参考答案。使用条件选择语句进行分段统计时应当注意分段范围。

29.

解析:该程序功能是计算并输出给定10个数的方差。解题思路是,根据题干中给出的方差公式首先计算出x’的值,然后计算根号里面的值,最后求其平方根。

30.doublefun(intn){doubles=0.0;inti;for(i=0;i<n;i++)/*从0~n中找到既能被5整除同时又能被11整除的数并将这些数求和*/if(i%5==0&&i%11==0)s=s+i;s=sqrt(s);/*对s求平方根*/returns;doublefun(intn)\r\n{doubles=0.0;\r\ninti;\r\nfor(i=0;i<n;i++)/*从0~n中找到既能被5整除同时又能被11整除的数,并将这些数求和*/\r\nif(i%5==0&&i%11==0)\r\ns=s+i;\r\ns=sqrt(s);/*对s求平方根*/\r\nreturns;解析:本题的解题思路是逐个取得从。0-n之间的所有数,对每次取得的数进行条件判断,条件是既能被5整除同时又能被11整除,注意:这两个条件要求同时成立,因此用到了“&&”运算符。满足条件,该数就被累加到s中去,求出所有符合条件的数后,用sqrt()函数(包含于头文件<math.h>中)对s求平方根。

31.intfun(inta[][N]){intij;for(i=0;i<N;i++)for(j=0;j<=i;j++)a[i][j]=0;/*将数组左下半三角元素中的值全部置成0*/}intfun(inta[][N])\r\n{\r\ninti,j;\r\nfor(i=0;i<N;i++)\r\nfor(j=0;j<=i;j++)\r\na[i][j]=0;/*将数组左下半三角元素中的值全部置成0*/\r\n}解析:本题旨在考查控制数组中左下半三角元素的算法,也就是两个千篇一律的循环语句,希望学习者能够掌握消化。

32.doublefun(STREC*h){doublemax=h->s;while(h!=NULL)/*通过循环找到最高分数*/{if(max<h->s)max=h->s;h=h->next;}returnmax;}doublefun(S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论