2023年山东省烟台市全国计算机等级考试C语言程序设计预测试题(含答案)_第1页
2023年山东省烟台市全国计算机等级考试C语言程序设计预测试题(含答案)_第2页
2023年山东省烟台市全国计算机等级考试C语言程序设计预测试题(含答案)_第3页
2023年山东省烟台市全国计算机等级考试C语言程序设计预测试题(含答案)_第4页
2023年山东省烟台市全国计算机等级考试C语言程序设计预测试题(含答案)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

2023年山东省烟台市全国计算机等级考试C语言程序设计预测试题(含答案)学校:________班级:________姓名:________考号:________

一、2.填空题(10题)1.定义inta=5,b;,则执行表达式b=++a*--a之后,变量b的值为【】。

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

structs

{intx,y;}data[2]={10,100,20,200};

main()

{

structs*p=data;

printf("%d\n",++(p->x));

}

3.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。

4.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。

5.数据库保护分为:安全性控制、______、并发性控制和数据的恢复。

6.以下涵数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。

#defineN4

voidrotade(inta[][N],intb[][N])

{inti,j;

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

{b[i][N-1]=【】;【】=a[N-1][i];}}

7.常用的软件结构设计工具是结构图(SC),也称程序结构图。其中,用矩形表示______,用带空心圆的箭头表示传递的是数据。

8.在面向对象方法中,类之间共享属性和方法的机制称为______。

9.阅读下面语句,则程序的执行结果是【】。

#include"stdio.h"

main()

{inta=-1,b=1,k;

if((++a<0)&&!(b--<=0))

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

elseprintf("%d,%d\n",b,a);}

10.以下程序的输出结果是【】。

main()

{char*p[]={"BOOL","OPK","H","SP"};

inti;

for(i=3,i>=0;i--,i--)printf("%c",*p[i]);

printf("\n");

}

二、单选题(10题)11.在一个C源程序文件中所定义的全局变量,其作用域为()。A.由具体定义位置和extern说明来诀定范围B.所在程序的全部范围C.所在函数的全部范围D.所在文件的全部范围

12.在数据结构中,与所使用的计算机无关的是数据的()结构。

A.逻辑B.存储C.逻辑和存储D.物理

13.

有以下程序:

main

{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,

12,},{13,14,15,16}},i,j;

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

{for(j=0;j<i;j++)printf("%4c",);

for(j=________;J<4;j++)printf("%4d",num

[i][j]);

printf("\n");}}

若要按以下形式输出数组右上半三角

1234

678

1112

16

则在程序下划线处应填入的是()。

A.i-1B.iC.i+1D.4一i

14.

15.

16.函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是()。

A.文件开始B.文件末尾C.文件当前位置D.以上都不对

17.A[N][N]是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组T[N(N+1)/2]中,则对任一上三角元素a[i][j]对应T[k]的下标k是()。

A.i(i-1)/2+jB.j(j-1)/2+iC.i(j-i)/2+1D.j(i-1)/2+1

18.下述关于数据库系统的叙述中,正确的是()。

A.数据库系统减少了数据冗余

B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型一致

D.数据库系统比文件系统能管理更多的数据

19.

20.以下关于字符串的叙述中正确的是()。

A.C语言中有字符串类型的常量和变量

B.两个字符串中的字符个数相同时才能进行串符串大小的比较

C.可以用关系运算符对字符串的大小进行比较

D.空串一定比空格打头的字符串小

三、程序设计题(10题)21.

22.请编写函数proc(),该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N).按顺序合并组成一个新的字符串。例如,若字符串数组中的M个字符串为:ABCDBCDEFGCDEFGHI则合并后的字符串内容应该是:ABCDBCDEFGCDEFGH1。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

23.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是将a中的十位数和个位数依次放在c的个位和百位上,b中的十位数和个位数依次放在c的十位和千位上。例如,当a=45,b=12时,调用该函数后c=2514。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>voidfun(inta,intb,long*c){}main(){ inta,b; longc; printf(“Inputa,b:”); scanf(“%d%d”,&a,&b); fun(a,b,&c); printf(“Theresultis:%ld\n”,c);}

24.请编写函数proc(),该函数的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。

例如,若一维数组中的数据是:

1122234456666778

9910101010

删除后,数组中的内容应该是:

12345678910

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

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

试题程序:

25.假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参P已指向字符串中最后一个字母。在编写函数时,不得使用C语言的字符串函数。例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容应当是abcdefg****。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。试题程序:

26.假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容则应当是a*bc*def*g****。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

27.编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到

pl所指的字符串的后面。

例如,分别输入下面两个字符串:

程序输出:

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

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

28.请编写函数proc(),它的功能是:求出str所指字符串中指定字符的个数,并返回此值。例如,若输入字符串12341234123,输入字符4,则输出2。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

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

例如,m为100时,函数值应为s=7.416198。

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

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

试题程序:

30.编写函数proc(),它的功能是:根据公式求p的值,结果由函数值带回。m与n为两个正数且要求m>;n。p=m!/(n!(m-n)!),例如,m=20,n=10时,运行结果为184756.000000。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

四、2.程序修改题(10题)31.给定程序MODll.C中函数fun的功能是:根据整型形参m的值,计算如下公式的值。

例如,若m中的值为:5,则应输出:0.536389。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

32.给定程序MODll.C中函数fun的功能是:根据形参m的值(2≤m≤9),在m行m列的二维数组中存放如下所示规律的数据,由main函数输出。

例如,若输入2|若输入4

则输出:|则输出:

12|1234

24|2468

|36912

|481216

请改正程序函数中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

33.给定程序中,函数fun()的功能是:使数组中的元素的值增加10倍。

改正其中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.

试题程序:

#include<stdio.h>

#include<conio.h>

ihtm[10];

voidfun(void)

{

intj;

printf("Insubfuncaftercalling\n");

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

{

/************found**********************/

printf("%3d",m[j]*l0);

}

}

main()

{inti;

printf("Inmainbeforecalling\n");

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

{

m[i]=i;

printf("%3d",m[i]);

}

fun();

printf("\nInmainaftercalling\n");

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

printf("%3d",m[i]);

getch();

}

34.下列给定程序中,函数fun()的功能是:输出M行N列整数方阵,然后求两条对角线上的各元素之和,返回此和数。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.

试题程序:

#include<conio.h>

#include<stdio.h>

#defineM5

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

ihtfun(intn,intxx[][])

{inti,j,sum=0;

printf("\nThe%dx%dmatrix:\n",M,M);

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

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

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

printf("%4f",xx[i][j]);

printf("\n");

}

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

sum+=xx[i][i]+xx[i][n-i-1];

return(sum);

}

main()

{intaa[M][M]={{1,2,3,4,5},{4,3,2,1,0},

{6,7,8,9,0},{9,8,7,6,5},{3,4,5,6,7}};

clrscr();

printf("\nThesumofallelementson2

diagnalsis%d",fun(M,aa));

}

35.下列给定程序中函数fun()的功能是计算正整数num的各位上的数字之平方和。

例如:输入352,则输出应该是38;若输入328,则输出应该是77。

请改正程序中的错误,使它能得到正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include<stdio.h>

#include<conio.h>

longfun(longnum)

{

/*+**+*+*+*found************/

longk=1;

do

{

k+=(num%10)*(num%10);

num/=10;

/*********+found*+**+*+******/

}while(num)

return(k);

}

main()

{

longn;

clrscr();

printf("\Pleaseenteranumber:");

scanf("%ld",&n);

printf("\n%ld\n",fun(n));

}

36.下列给定程序中,函数fun()的功能是::求k!(k<13),所有阶乘的值作为函数值返回。例如:若k=10,则应输出3628800。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更

改程序的结构。

试题程序:

#include<conio.h>

#include<stdio.h>

longfun(intk)

{

/*************found**************/

ifk>0

return(k*fun(k-l));

/*************found**************/

elseif(k=0)

return1;

}

main()

{intk=10;

clrscr();

print,("%d!=%1d\n",k,fun(k));

}

37.下列给定函数中,函数fun()的功能是:统计字符串中各元音字母(即A,E,I,O,U)的个数。注意:字母不分大小写。例如,输入THIsisaboot,则应输出是10220。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include<conio.h>

#include<stdio.h>

/*************found**************/

fun(char*s,intnum[5])

{intk,i=5;

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

/*************found**************/

num[i]=0;

for{;*s;s++)

{i=-l;

/*************found**************/

switch(s)

{case'a':case'A':{i=0;break;}

case'e':case'E':{i=1;break;}

case'i':case'I':{i=2;break;}

case'o':case'O':{i=3;break;}

case'u':case'U':{i=4;break;}

}

if(i>=0)

num[i]++;

}

}

main()

{chars1[81];intnum1[5],i;

clrscr();

printf("\nPleaseenterastring:");

gets(s1);

fun{s1,num1);

for(i=0;i<5;i++)printf("%d",num1[i]);

printf("\n");

}

38.下列给定程序中函数fun()的功能是:计算n!。例如,给n输入5,则输出120.000000。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include<stdio.h>

#include<conio.h>

doublefun(intn)

{doubleresult=l.0;

/*************found**************/

ifn==0

return1.0;

while(n>l&&n<170)

/*************found**************/

result*=n--

returnresult;

}

main()

{intn;

printf("InputN:");

scanf("%d"&n);

printf("\n\n%d!=%lf\n\n",n,fun(n));

}

39.下列给定程序中fun()函数的功能是:将n个无序整数从小到大排序。

请改正程序中的错误,使它能得出正确的结果。

注意;不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

fun(intn,int*a)

{inti,j,p,t;

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

{P=j;

/***************found*******************/

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

if(a[p]>a[i])

/***************found*******************/

t=i;

if(p!=j)

{t=a[j];a[j]=a[p];a[p]=t;}

}

}

putarr(ihtn,int*z)

{inti;

for(i=l;i<=n;i++,z++)

{printf("%4d",*z);

if(!(i%10))printf("\n");

}printf("\n");

}

main()

{intaa[20]={9,3,0,4,1,2,5,6,8,10,7},n=11;

clrscr();

printf("\n\nBeforesorting%dnumbers:\n",n);putarr(n,aa);

fun(n,aa);

printf("\nAftersorting%dnumbers:\n",n);putarr(n,aa);

}

40.下列给定程序中,函数fun()的功能是:从n个学生的成绩中统计出高于平均分的学生人数,人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如输入8名学生的成绩:

8565.56995.5875562.575

则高于平均分的学生人数为4(平均分为74.312500)。

请改正程序中的错误,使它能得到正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include<stdio.h>

#include<conio.h>

#defineN20

intfun(float*S,intn,float*aver)

{

/*************found*************/

intave,t=0;

intcount=0,k,i;

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

t+=s[k];

ave=t/n;

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

/*************found***************/

if(s[i]<ave)

count++;

/*************found*************/

aver=ave;

returncount;

}

main()

{

floatS[30],aver;

intm,i;

clrscr();

printf("\nPleaseenterm:");

scanf("%d",&m);

printf("\nPleaseenter%dmark:\n",m);

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

scanf("%f",s+i);

printf("\nThenumberofstudents:%d\n",

fun(S,m,&aver));

printf(“AVe=%f\n”,aver);

}

五、程序改错题(2题)41.下列给定程序中,函数proc()的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。例如,当s中的数为l23456789时,t中的数为l3579。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

42.下列给定的程序中,函数proc()的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。

请修改函数proc()中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:

六、操作题(2题)43.有以下程序:

intfa(intx){returnx*x;}

intfb(intx){returnx*x*x;}

intf(int(*f1)(),int(*f2)(),(intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

程序运行后,输出结果是【】。

44.以下程序的输出结果是【】。

main()

{charc='z';

printf("%c",c-25);}

参考答案

1.2525解析:#NAME?

2.1111解析:程序中结构体数组data首地址(即&data[0])赋值给结构体指针变量p,++(P->x)表示先将p所指向的结构体变量的成员x值加1,然后将此x(即data[0].x)输出。

3.可重用性继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。

4.测试实例测试实例解析:进行软件测试时,应精心设计测试实例和选择测试数据,以对系统进行全面测试。

5.完整性控制完整性控制

6.a[0][i]b[i][o]a[0][i]\r\nb[i][o]解析:b[i][N-1]=a[0][i]实现把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b[i][0]=a[N-1][i]实现将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中。

7.模块模块解析:矩形表示的是模块,箭头表示的是模块间的调用关系。用带实心圆的箭头表示传递的是控制信息,用带空心圆的箭头表示传递的是数据。

8.继承继承解析:在面向对象的程序设计方法中,某些属性和方法是可以共享的,由于类从父类中继承而来,这样提高了软件的可重用性。

9.101,0解析:与运算两边的语句必须同时为真时,结果才为真,当执行完if((++a<0)&&!(b--<=0))时,a,b的值已经发生了变化。

10.SO

11.A[解析]全局变量的作用域是从声明处到文件的结束。所以选择A)

12.A

13.B

\n本题中要求输出右上半角的数,对角线上的数的下标相同,所以j=i。

\n

14.D

15.D

16.B解析:SEEK_END代表的是文件末尾,SEEK_SET代表的是文件的开始,SEEK_CUR代表的是文件当前位置。

17.B

18.A解析:数据库是一个通用化的、综合性的数据集合,它可以为各种用户所共享,具有最小的冗余度和较高的数据与程序的独立性,而且能并发地为多个应用服务,同时具有安全性和完整性。即数据库系统减少了数据冗余,但不能避免一切冗余。所以选项A正确,选项B错误。在数据库管理阶段中,数据是结构化的,面向系统,数据冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性。数据的不一致性,是指对数据的存取方式,选项C错误。数据库系统比文件系统能管理更多的数据,并非是数据库系统的特点,选项D错误。本题正确答案是A。

19.D

20.D解析:C语言中只有字符串常量而没有字符串变量,故选项A不正确:字符串比较大小是以第1个不相同字符的大小为标准的,跟长度没有关系,故选项B不正确:字符串比较大小除了使用库函数stremp()以外,就只能靠自己写代码来实现了,而不能通过关系运算符来比较大小,因为字符串在表达式中相当于coostchar*,即常字符指针,代表的是字符串的首地址,关系运算符会将两个字符串的首地址值比较大小,这是毫无意义的。所以选项C也不正确。空串的长度为0,而以空格打头的字符串的长度至少为1,故选项D正确,本题应该选择D。

21.

22.

【解析】字符串数组中每一行都是一个完整的字符串,其结束标志为ˊ\0ˊ。因此,通过字符串的结束标志来判断每一个字符串是否结束,将字符串数组中的所有字符串均赋值给新的一维数组b来完成字符串的合并。

23.voidfun(inta,intb,long*c){/*b%10获取b的个位数,a/10获取a的十位数,a%10获取a的个位数,b/10获取b的十位数*/ *c=a/10+(b/10)*10+(a%10)*100+(b%10)*1000;}本题主要考如何取出a和b的个位数和十位数,取出后如何将其表示成c中相应的位数。由于a和b都是只有两位的整数,因此分别对它们除以10可得到它们的十位数,分别用10对它们求余可得到它们的个位数。将得到的数对应乘以1000、100、10、1,即可得到c的千位数、百位数、十位数、个位数。注意使用c时要进行指针运算。

24.

【解析】题目中要求删去一维数组中所有相同的数,使之只剩一个。首先需要将字符串中的每一个字符与其后的一个字符相比较,相同则不做任何操作,不相同则将其放入新的字符串中。最后将新的字符串中的字符个数返回给主函数。

25.

题目中要求除了尾部的*号之外,将字符串中其他*号全部删除。首先将所有不是*的字符放在字符串str中,然后将尾部的*接在字符的后面,最后为字符串str加上结束符。

26.

【解析】题目中要求将字符串中的前导*号全部删除,首先将指针p移动到第一个不是*的字符,将指针p之后的字符放入原来的字符串中,并为新的字符串添加结束符。

27.

【考点分析】

【解题思路】

本题用两个循环完成操作,第1个循环的作用是求出第1个字符串的长度,即将i指到第1个字符串的末尾。第2个循环的作用是将第2个字符串的字符连到第1个字符串的末尾。

28.

【解析】求出str所指字符串中指定字符的个数,可以通过将str所指字符串中每一个字符与指定字符相比较,变量i中存放字符串中指定字符的个数,最后返回给主函数。

29.

【解析】按照题目中要求求m以内(不包括m)同时能被5与11整除的所有自然数之和的平方根s,需要判断m以内的所有整数是否能同时被5与11整除,首先求出同时能被5与

11整除的所有自然数之和,然后再求和的平方根,最后返回到主函数当中。

30.

【解析】由题目中所给公式,首先求出整数m的阶乘,然后求出m的阶乘除以n的阶乘,最后再求出整个表达式的值。将整个表达式的值返回到主函数当中。

31.(1)for(i=2;i<=m;i++)(2)y-=1.0/(i*i);(1)for(i=2;i<=m;i++)(2)y-=1.0/(i*i);解析:该程序功能是根据题目要求计算公式。从已给定源程序的main主函数开始入手,“printf("\nTheresultis%lfin",fun(n));”语句中的fun(n)将参数n传给函数doublefun(intm)中的m,实现公式的计算结果。

32.(1)voidfun(inta[][M]intm)(2)a[j][k]=(k+1)*(j+1);(1)voidfun(inta[][M],intm)(2)a[j][k]=(k+1)*(j+1);解析:本题中函数的功能是根据形参m的值(2≤m≤9),在m行m列的二维数组中存放有规律的数据,规律就是,i和j代表二维数组的行和列,则a啪[k]=(k+1)*(j+1)。

33.错误:printf("%3d"m[j]*10);正确:printf("%3d"m[j]=m[j]*10错误:printf('%3d'm[j]*10);正确:printf('%3d'm[j]=m[j]*10解析:本题考查全局变量相关知识。该题程序中的fun()没有参数输入,但数组m[10]为全局变量,故可在fun()函数中使用,fun()函数对数组m的操作可以反映到主函数的输出结果中。

34.(1)错误:intfun(ihtnintxx[][])正确:intltm(ihtmintr.x[][M])(2)错误:printf("%4ff'xx[i]fj]);正确:printf("%4d"xx[i][j]);(1)错误:intfun(ihtn,intxx[][])正确:intltm(ihtmintr.x[][M])\r\n(2)错误:printf('%4f,f\',xx[i]fj]);正确:printf('%4d',xx[i][j]);解析:该题错误比较隐蔽,一般的C语言上机考试很少涉及printf顺数中的错误,在这里,我们只要明白“d”和“f”的区别就OK了。格式字符d表示:以带符号的十进制形式输出整数(正整数不输出符号);格式字符f表示;以小数形式输出单、双精度,隐含输出6位小数。

35.(1)错误:longk=1;正确:longk=0;(2)错误:while(num)正确:while(num);(1)错误:longk=1;正确:longk=0;\r\n(2)错误:while(num)正确:while(num);解析:错误1:k用来存放各位数字的平方和,初值应为0。

错误2:do-while语句的语法,while()后加分号。

36.(1)错误:ifk>0正确:if(k>0)(2)错误:elseif(k=O)正确:elseif(k==O)(1)错误:ifk>0正确:if(k>0)\r\n(2)错误:elseif(k=O)正确:elseif(k==O)解析:由数学知识我们可以知道,0和1的阶乘都等于1,ifk>O中是一个简单的语法错误,if后面没有“()”说明,在elseif(k=0)中,程序想说明的是“如果k值为0,则函数返回1”,转换成c语言语句就是“elseif(k==0)return1”。

37.(1)错误:fun(char*sintnum[5])正确:voidfun(char*sinthum[5])(2)错误:num[i]=0;正确:num[k]=0;(3)错误:switch(s)正确:switch(*s)(1)错误:fun(char*s,intnum[5])正确:voidfun(char*s,inthum[5])\r\n(2)错误:num[i]=0;正确:num[k]=0;\r\n(3)错误:switch(s)正确:switch(*s)解析:switch语句说明:

(1)switch后的表达式,可以是整型或字符型,也可以是枚举类型的。在新的ANSIC标准中允许表达式的类型为任何类型。

(2)每个case后的常量表达式只能是常量组成的表达式,当switch后的表达式的值与某一个常量表达式的值一致时,程序就转到此case后的语句开始执行。如果没有一个常量表达式的值与swish后的值一致,就执行default后的语句。

(3)各个case后的常量表达式的值必须互不相同,不然的话程序就不知该跳到何处开始执行。

(4)各个case的次序不影响执行结果,一般情况下,

温馨提示

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

评论

0/150

提交评论