2022年河南省洛阳市全国计算机等级考试C语言程序设计真题(含答案)_第1页
2022年河南省洛阳市全国计算机等级考试C语言程序设计真题(含答案)_第2页
2022年河南省洛阳市全国计算机等级考试C语言程序设计真题(含答案)_第3页
2022年河南省洛阳市全国计算机等级考试C语言程序设计真题(含答案)_第4页
2022年河南省洛阳市全国计算机等级考试C语言程序设计真题(含答案)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

2022年河南省洛阳市全国计算机等级考试C语言程序设计真题(含答案)学校:________班级:________姓名:________考号:________

一、2.填空题(10题)1.若有如下程序:

#include"stdio.h"

main()

{chars[30];

strcpy(&s[0],"abc");strcpy(&s[1],"de");strcpy(&s[2],"f");

printf("%s\n",s);}

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

2.在宏定义#defineP13.14159中,用宏名PI代替一个______。

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

intisprime(inta)

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

if(a%i==0)[8];

[9];

4.十进制数111用八位二进制数表示为【】。

5.以下程序运行后的输出结果是______。

main()

{inta=3,b=4,c=5,t=99;

i[(b<a&&a<C)t=a;a=c;c=t;

if(a<c&&b<C)t=b;b=a;a=t;

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

}

6.深度为5的满二叉树有()个叶子节点。

7.若有如下定义,doublea[100];,则a数组元素的下标上限是【】。

8.若a是int型变量,则表达式(a=2*3,a*2),a+6的值为______。

9.程序如下:

main()

{inti=4;

printf("%d",-++i);

}

该程序执行后的输出结果以及i的值分别是______、_______。

10.数据结构分为逻辑结构和存储结构,循环队列属于______结构。

二、单选题(10题)11.下面不正确的字符赋值或赋初值的方式为()。

A.chars[10]=”hello!”

B.chars[10]={‘h’,‘e’,‘l’,‘l’,‘o’,‘!’}

C.chars[10];s=”hello”

D.char[]=”hello!”

12.下面程序的运行结果是

#include<stdio.h>

main()

{inta=28,b;

chars[10],*p;

p=s;

do{b=a%16;

if(b<10)*p=b+48;

else*p=b+55;

p++;a=a/5;}while(a>0);

*p=′\0′;puts(s);}

A.10B.C2C.C51D.\0

13.

14.若整型变量a、b、c、d中的值依次为2、2、3、4,则条件表达式a<b?a:c<d?c:d的值是()。A.1B.2C.3D.4

15.若有定义“intx=10;”,则表达式“x-=x+x”的值为()。

A.0B.-20C.-10D.10

16.以下叙述中错误的是

A.在函数外部定义的变量在所有函数中都有效

B.在函数内部定义的变量只能在本函数范围内使用

C.函数中的形参属于局部变量

D.在不同的函数中可以使用相同名字的变量

17.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a;for(b=1;b<=c;b++)s=s+1;则与上述程序段功能等价的赋值语句是()。

A.s=a+b;B.s=a+c;C.s=s+c;D.s=b+c;

18.如果最常用的操作是取第i个结点及其前驱,则采用()存储方式最节省时间。A.单链表B.双链表C.单循环链表D.顺序表

19.为了使模块尽可能独立,要求_____。A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强

B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱

C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱

D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强

20.数据库是()的集合,它具有统一的结构格式并存放于统一的存储介质,可被各个应用程序所共享

A.视图B.消息C.数据D.关系

三、程序设计题(10题)21.请编写函数proc(),它的功能是计算:s=(1n(1)4-1n(2)+In(3)4-…+1n(m))0.5在C语言中可调用log(n)函数求1n(n)。例如,若n1的值为30,则proc()函数值为8.640500。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

22.请编写—个函数,用来删除字符串中的所有空格。例如,输入asdafaaz67,则输出为asdafaaz67。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:

23.规定输入的字符串中只包含字母和。号。请编写函数fun,其功能是:将字符串尾部的。号全部删除,前面和中间的*号不动。

24.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),它的功能是求出能整除x且不是偶数的整数,并将这些整数按从小到大的顺序放在PP所指的数组中,总个数通过形参n返回。如x中的值为30,则有4个数符合要求,它们是1、3、5、15。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:25.请编写函数proc(),其功能是:将str所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。

例如,当str所指字符串中的内容为abcdefg,则在t所指数组中的内容应是bdf。

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

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

试题程序:

26.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,学生的记录由学号和成绩组成,N名学生的记录已在主函数中放入结构体数组s中,请编写函数fun(),其功能是把低于平均分的学生记录放入b所指的数组中,低于平均分的学生人数通过形参n返回,平均分通过函数值返回。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#defineN8typedefstruct{ charnum[10]; doubles;}STREC;doublefun(STREC*a,STREC*b,int*n){}voidmain(){ STRECs[N]={{“GA05”,85},{“GA03”,76},{“GA02”,69},{“GA04”,85},{“GA01”,91},{“GA07”,72},{“GA08”,64},{“GA06”,87}}; STRECh[N]; inti,n; doubleave; ave=fun(s,h,&n); printf(“The%dstudentdatawhichislowerthan%7.3f:\n”,n,ave); for(i=0;i<n;i++)<p=""></n;i++)<> /*输出成绩低于平均分的学生记录*/ printf(“%s%4.1f\n”,h[i].num,h[i].s); printf(“\n”);}

27.三个整数a、b、c,由键盘输入,输出其中最大的一个数。

28.请编写函数proc(),其功能是:将str所指字符串中除了下标为奇数、同时ASCⅡ值为偶数的字符外,其余的全部删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若str所指字符串中的内容为edB2A4Dsdg,其中字符A的ASCⅡ码值为奇数,因此应当删除;其中字符B的ASCⅡ码值为偶数,但在数组中的下标为偶数,因此也应当删除;而字符2的ASCⅡ码值为偶数,所在数组中的下标为奇数,因此不应当删除。依此类推,最后t所指的数组中的内容应是d24。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

29.编写函数fun,其功能是:将s所指字符串中除了下标为奇数,同时ASCH码值也为奇数自q字符之外。其余所有字符全部删除,串中剩余字符所形成的一个新串放在所指的数组中。例如,若s所指字符串的内容为“ABCDEFGl2345”,其中字符A的ASCIl码值为奇数,但所在元素的下标为偶数,因此需要删除;而字符l的ASCIl码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后t所指数组中的内容应为“135”。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:

30.M名学生的成绩已在主函数中放入一个带头结点的链表结构中,h指向链表的带头结点。请编写函数proc(),它的功能是:找出学生的最高分,由函数值返回。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

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

例如,若n=10,则应输出:0.617977。

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

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

32.下列给定程序中,函数fun()的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码降序排序后输出。

例如:输入dafhc,则应输出hfdca。

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

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

试题程序:

#include<conio.h>

#include<stdio.h>

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

intfun(chart[])

{

charc;

inti,j;

for(i=0;i<strlen(t)-1;i++)

for(j=i+1;i<strlen(t);j++)

if(t[i]<t[j])

{

c=t[j];

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

t[i]=t[i++];

t[i]=c;

}

}

main()

{

chars[81];

clrscr();

printf("\nPleaseenteracharacter

string:");

gets(s);

printf("\n\nBeforesorting:\n%S",s);

fun(s);

printf("\nAftersortingdecendingly:\n

%s",s);

}

33.下列给定程序中,函数fun()的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。

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

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

试题程序:

#include<conio.h>

#include<stdio.h>

intfun(intm)

{inti,k;

for(i=m+1;;i++)

{for(k=2;k<i;k++)

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

if(i%k!=0)

break;

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

if(k<i)

return(i);

}

}

main()

{intn;

clrscr();

printf("\nPleaseentern:");

scanf("%d",&n);

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

}

34.下列给定程序中函数fun()的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在冲。高位仍在高位,低位仍在低位。例如当s中的数为87653142时,t中的数为7531。

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

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

试题程序:

#include<stdio.h>

#include<conlo.h>

voidfun(longs,long*t)

{intd;

longs1=1;

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

t=0;

while(s>0)

{d=s%10;

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

if(d%2==0)

{*t=d*s1+*t;

s1*=10;

}

s/=10;

}

}

main()

{longs,t;

clrscr();

printf("\nPleaseenters:");scanf("%ld",&s);

fun(s,&t);

printf("Theresultis:%ld\n",t);

}

35.下列给定的程序中,函数fun()的功能是:判断字符ch是否与str所指字符串中的某个字符相同;若相同,则什么也不做,若相同,则将其插在申的最后。

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

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

试题程序:

#include<conio.h>

#include<stdio.h>

#include<string.h>

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

voidfun(charstr,charch)

{while(*str&&*str!=ch)str++;

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

if(*str==ch)

{str[0]=ch;

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

str[1]='0';

}

}

main()

{chars[81],c;

clrscr();

printf("\nPleaseenterastrzng:");

gets(s);

printf("\nPleaseenterthecharacterto

search:");

c=getchar();

fun(s,c);

printf("\nTheresultis%s\n",s);

}

36.给定程序MODll.C中函数fun的功能是:将十进制正整数m转换成k(2≤k≤9)进制数,并按高位到低位顺序输出。

例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。

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

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

37.下列给定程序中,函数fun()的功能是:删除字符串s中所有空白字符(包括Tab字符、回车符及换行符)。输入字符串时用’#’结束输入。

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

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

试题程序:

#include<string.h>

#include<stdio.h>

#include<ctype.h>

fun(char*p)

{int!i,t;charc[80];

for(i=0,t=0;p[i];i++)

if(!isspace(*(p+i)))c[t++]=p[i];

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

c[t]='\0';

strcpy(p,c);

}

main()

{charc,s[80];

inti=0;

printf("Inputastring:");

c=getchar();

while(c!='#')

(s[i]=c;i++;c=getchar();}

s[i]="\0";

fun(s);

puts(s);

}

38.给定程序中函数fun的功能是:从低位开始取出长整型变量S中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。

例如,当s中的数为7654321时,t中的数为642。

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

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

[试题源程序]

#include<stdio.h>

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

voidfun(longs,longt)

{

longs1=10;

s/=10;

*t=s%10;

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

while(s<0)

{

s=s/100;

*t=s%10*s1+*t;

s1=s1*10;

}

}

msin()

{

longs,t;

printf("\nPleaseenters:");

scanf("%ld",&s);

fun(s,&t);

printf("Theresultis:%ld\n",t);

}

39.下列给定程序中函数fun()的功能是:将长整型数中每一位上为偶数的数依次逆向取出,构成一个新数放在t中。高位在低位,低位在高位。例如当s中的数为25846513时,t中的数为6482。请改正函数fun()中的错误,使它能得出正确的结果。

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

试题程序:

#include<stdio.h>

#include<conio.h>

voidfun(longS,long*t)

{

intd;

longsl=l,i=1;

*t=0;

while(s/i>0)

i=i*10;

i=i/10;

while(s>0)

{

d=s/i

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

if(d%2!=0)

{

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

t=d*sl+t;

sl*=l0;

}

S=S%i;

i=i/10;

}

}

main()

{

longS,t;

clrscr();

printf("\nPleaseenterS:");

scanf("%ld",&s);

fun(S,&t);

printf("Theresultis:%ld\n",t);

}

40.下列给定程序中,函数fun()的功能是:依次取出字符串中所有的数字字符,形成新的字符串,并取代原字符串。

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

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

试题程序:

#include<stdio.h>

#include<conio.h>

voidfun(char*s)

{inti,j;

for(i=0,j=0;s[i]!='\0';i++)

if(s[i]>='0'&&s[i]<='9')

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

s[j]=s[i];

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

s[j]="\0";

}

main()

{charitem[80];

clrscr();

printf("\nEnterastring:");gets(item);

printf("\n\nThestringis:\%s\n",item);

fun(item);

printf("\n\nThestringofchangingis:

\%s\n",item);

}

五、程序改错题(2题)41.下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。

例如,当s中的数为87653142时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构!

42.下列给定程序中,函数fun()的功能是:将P所指字符串中的所有字符复制到b中,要求在每复制3个字符之后插入1个空格。

例如,若给a输入字符串:“ABCDEFGHIJK”,调用函数后,字符数组b中的内容为:“ABCDEFGHIJK”。

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

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

试题程序:

六、操作题(2题)43.以下程序的输出结果是【】。

#include<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{inti=3,j=5,*p=&i,*q=&j;

swap(p,q);printf("%d%d\N,*p,*q))

}

44.以下函数用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。请填空。

#include<conio.h>

#include<stdio.h>

intfun(int*s,intt,int*k)

{inti;

*k=0;

【】

if(s[*k]<s[i])*k=i;

return【】;}

main()

{inta[10]={876,675,896,101,301,401,980,431,451,777},k;

fun(a,10,&k);

printf("%d,%d\n",k,a[k]);}

参考答案

1.adf

2.本题考查字符替换格式:#define标识符字符串。

3.如果a能被i整除,则a是素数,返回值为0。如果a不能被i整除,则a不是素数,返回值为1。

4.11011111101111解析:本题通过除2取余法即可求出十进制数111所对应的二进制数1101111。

5.45994599解析:本题是一个陷阱题,以书写格式来考查考生对if语句的理解.if语句只对紧跟其后的一条语句或语句块产生作用。因此,题目中两条if语句只有t=a;和t=b是if的子句。第1条if语句中b<a为假,所以跳过语句t=a;,执行a=c;c=t;后,a=5、b=4、c=99。第2条if语句的判断条件a<c&&b<c为真,所以后面三条语句都被执行,这三条语句构成一次a和b的内容交换。所以最后输出的结果是:4599。

6.1616解析:在满二叉树中,每一层上的节点数都达到最大值,在第k层上有2[k-1]个节点,且深度为m的满二叉树有2[m]-1个节点,深度为5的满二叉树叶子节点数为2[5-1]=16。

7.9999解析:数组的下标是从0开始存放数据的,而不是1,当数组大小为n时,其下标从0开始,到n-1,所以本题的答案为99。

8.1212解析:本题考查逗号表达式的运算规则。逗号表达式的基本格式为:“表达式1,表达式2,…”,其整个表达式的结果取最后一个子表达式的值。本题中首先计算逗号表达式中的第1个表达式a=2*3=6,然后计算第2个表达式a*2,这时整个表达式的值为12,但要注意,因为第2个表达式并没有给a赋值,因此a的值不变;接下来执行最后一个表达式a+6=12,所以整个表达式最后的值为12。

9.-55。

10.存储或物理或存储结构或物理结构存储或物理或存储结构或物理结构解析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间。供队列循环使用。可知,循环队列应当是物理结构。

11.C

12.C解析:考查用字符指针处理字符串的方法。语句'p=s;'是使指针p指向字符数组s。*p则引用了p所指位置的数组元素。通过指针来引用一维数组元素。

13.D

14.C本题考查三目运算符a<b?a:c<d?c:d也可写成a<b?a:(c<d?c:d),所以根据优先级,先算括号内的,c小于d为真取C的值,再看a小于b为假,所以取C的值。

15.C算术运算符“+”的优先级高于,且“-=”的结合方向为自右向左。所以表达式“x-=x+x”可以表示成“x=x-(x+x)=10-(10+10)=-10”。故本题答案为C选项。

16.A全局变量有效范围是从定义的位置开始到所在源文件的结束,在这区域内的函数才可以调用,如果在定义函数之后,定义的变量,该变量不能被之前的函数访问所以A选项说法错误,答案为A选项。

17.B解析:本题考核的知识点是for循环次数的计算.本程序中for循环的次数为c-1+1共循环了c次,而每循环一次s的值加1,所以s的值为s+c.而最开始s的值为a,故4个选项中选项B符合题意.

18.D

19.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。

20.C解析:数据库是数据的集合,其中的数据是按数据所提供的数据模式存放的,它能构造复杂的数据结构,以建立数据之间的内在联系与复杂的关系。

21.

【解析】由题目中所给表达式可知,表达式的值为m项表达式的和然后开平方。可以首先通过m次循环求得m项表达式的和,然后将其和开平方并返回到主函数当中。

22.[答案][解析]题目要求删除空格,也就是重新保存空格以外的其他字符。通过循环删除字符串中的每一个空格,将非空格字符进行重新保存。23.

voidfun(char*a){

while(*a!=’、0。)

a++:

a一一;/*指针a指向字符串的尾部*/while(}a==’*。)

a一一;/·指针a指向最后一个字母*/

*(a+1)=’、0’;/*在字符串最后加上结束标志符·/

【考点分析】

本题考查:删除字符串尾部*号;删除的主要思想是把不删除的字符保留起来。

【解题思路】

对于一个字符串要删除其尾部的*号,只需要在最后一个不是*号的字符后面加上结束符号‘、0’。具体操作为:首先找到字符串的结尾,然后从最后一个字符开始往前逐个判断是否为*号,直到找到非·号字符为止。最后在该字符后面加上结束符号’\0。24.1voidfun(intx,intpp[],int*n)2{3inti,j=0;4for(i=l;i<=x;i=i+2)/*i的初值为1,步长为2,确保i为奇数*/5if(x%i==0)/*将能整除x的数存入数组pp中*/6pp[j++]=i;7*n=j;/*传回满足条件的数的个数*/8}本题考查:偶数的判定方法;整除的实现。本题题干信息:能整除X且不是偶数的所有整数。循环语句中变量i从1开始且每次递增2,所以i始终是奇数。将能整除x的i值存放到数组PP中,整除采用求余运算符“%”,即“x%i==0”。最后将数据元素个数j保存到n中。

25.

【解析】题目要求将下标为偶数的字符删除,其余字符放在新的字符数组t中。首先取出字符串str中下标为奇数的字符,将其赋值给新的字符串t,最后用ˊ\0ˊ作为字符串结束的标志。

26.doublefun(STREC*a,STREC*b,int*n){ inti,j=0; doubleav=0.0; for(i=0;i<=""p=""> av=av+a[i].s; av=av/N; /*求平均分*/ for(i=0;i<=""p=""> if(a[i].s<av)<p=""></av)<> b[j++]=a[i];/*将低于平均分的学生记录存入结构体数组b中*/ *n=j;/*传回低于平均分的学生人数*/ returnav;/*返回平均分*/}本题使用循环语句和条件判断语句来实现题目要求。第1个循环语句的作用是求出总分,然后求出平均分av。第2个循环语句的作用是将分数低于平均分的学生记录存入结构体数组b中。27.\n\tmain

\n{inta,b,c;

\nprintf(“请输入三个整数:”);

\nscanf(“%d,%d,%d”,&a,&b,&c);

\nif(aif(belseprintf(“max=%d\\n”,b);

\nelseif(aelseprintf(“max=%d\\n”,a);}

\n

28.

【解析】题目中要求将字符串str中下标为奇数,同时ASCⅡ码值为偶数的字符放在数组t中,首先,需要检查字符串str中下标为奇数的字符的ASCⅡ码值是否为偶数,将符合要求的字符放在数组t中。最后,为新的字符串数组添加结束符。

29.用循环遍历字符串,通过if语句将下标和ASCIl码都为奇数的字符保存到数组中,在字符串末尾加上结束标识符。

30.

【解析】要得到学生的最高分,需要将每一个学生的成绩进行比较。学生的成绩存储在链表中,其结束标志为最后一个结点的next指针即NULL。比较每一个学生的成绩,将最高分返回给主函数。

31.(1)floatfun(intn)(2)for(i=2;i<=n;i++)(1)floatfun(intn)(2)for(i=2;i<=n;i++)解析:本题中函数的功能是计算公式的值。其中,每一项的分母是前一项的值加1。

32.(1)错误:intfun(chart[])正确:voidfun(chart[])(2)错误:t[j]=t[i++];正确:t[j]=t[i];(1)错误:intfun(chart[])正确:voidfun(chart[])\r\n(2)错误:t[j]=t[i++];正确:t[j]=t[i];解析:错误1:该函数只是对一个字符串中的元素进行比较大小的操作,并没有具体的返回值,因此,函数的返回值类型应为void。错误2:本题的思路是利用选择法对数组元素进行比较。所谓选择法,是依次用当前取得的元素和它后面的元素进行比较,在第一个元素和它后面的元素顺次比较时,可以借助中间变量来对两数进行交换,要保证这第一个元素始终存放数组中的最大数,以后依次挑出次大数,这样最终的数组就是有序的。解答本题,只要理解了选择法的思想,找到并改正错误就容易了。

33.(1)错误:if(i%k!=0)正确:if(i%k=0)(2)错误:if(k<i)正确:if(k>=i)(1)错误:if(i%k!=0)正确:if(i%k=0)\r\n(2)错误:if(k<i)正确:if(k>=i)解析:也许刚接触C语言的学习者对素数的概念不清楚,在这里说明一下,素数就是质数,本题的任务是随便输入一个整数m,然后在m的后面寻找紧跟m的一个质数,作为函数值返回。

for(i=m+1;;i++){

是从m后面的一位开始循环,将m后面一位的值赋予i。然后;我们依次判断m后面的一位是否为素数。

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

if(i%k==0)

是一个简单的数学判断问题,判断i被赋予的值与k的余数是否为零。

34.(1)错误:t=0;正确:*t=0;(2)错误:if(d%2==0)正确:if(d%2!=0)(1)错误:t=0;正确:*t=0;\r\n(2)错误:if(d%2==0)正确:if(d%2!=0)解析:其实,本题的重点在考查两个问题:第1个错误中出现了一个t=0,那么请看一下,t是从哪儿来的,第1次出现t的地方在哪儿?对,就这么简单。那我们再来思考一下用C语言表达一个奇数的话应该怎么表达?用数学的方法呢?偶数是能被2整除的,奇数刚好相反,那么if(d%2==0)是想表示奇数呢还是偶数,看题目就明白了!

35.(1)错误;voidfun(charstrcharch)正确:voidfun(char*strcharch)(2)错误:if(*str==ch)正确:if(*str=='\0')(3)错误;str[1]='0';正确:str[1]='\0';(1)错误;voidfun(charstr,charch)正确:voidfun(char*str,charch)\r\n(2)错误:if(*str==ch)正确:if(*str=='\\0')\r\n(3)错误;str[1]='0';正确:str[1]='\\0';解析:该题的重点就是在while的循环嵌套语句中,由题干信息“若相同,则什么也不做”很容易就能看出if(*str==ch)后面的执行语句是错误的。另外,void指针具有一般性,它们可以指向任何类型的数据。但目前绝大多数C编译所提供的这类函数都返回char指针,再由题目中的定义得出voidfun(charstr,charch)的错误信息;str[1]='0';是一个简单的语法错误。

36.(1)aa[i]=m%k;(2)printf("%d"aa[i-1]);(1)aa[i]=m%k;\r\n(2)printf("%d",aa[i-1]);解析:本题中函数的功能是将十进制正整

温馨提示

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

评论

0/150

提交评论