2021年山东省日照市全国计算机等级考试C语言程序设计模拟考试(含答案)_第1页
2021年山东省日照市全国计算机等级考试C语言程序设计模拟考试(含答案)_第2页
2021年山东省日照市全国计算机等级考试C语言程序设计模拟考试(含答案)_第3页
2021年山东省日照市全国计算机等级考试C语言程序设计模拟考试(含答案)_第4页
2021年山东省日照市全国计算机等级考试C语言程序设计模拟考试(含答案)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

2021年山东省日照市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、2.填空题(10题)1.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块,其中______的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。

2.设有定义:

struct{inta;floatb;charc;}abc;*p_abc=&abc;

则对结构体成员a的引用方法可以是abc.a和p_abc【】a。

3.与结构化需求分析方法相对应的是【】方法。

4.下面程序的功能是将一个字符串str的内容倒序,请填空。

#inelude<stdio.h>

#include<strins.h>

main()

{inti,j,【】;

charstr[]={"1234567"};

for(i=0,j=strlen(str)【】;i<j;i++,j--)

{k=str[i];str[i]=str[j];str[j]=k;}

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

}

5.一棵二叉树第6层(根结点为第一层)的结点最多为______个。

6.x和y都是double型变量,x的初值为4.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为______。

7.在树形结构中,树根结点没有______。

8.数据库管理系统常见的数据模型有层次模型、网状模型和【】3种。

9.有以下程序

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getchar(

n1=ch1-'0';n2-n1*10+(ch2-'0');

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

}

程序运行时输入:12<回车>,执行后输出结果是______。

10.软件测试中路径覆盖测试是整个测试的基础,它是对软件【】进行测试。

二、单选题(10题)11.

12.不带头结点的单链表head为空的判定条件是()。A.head=NULLB.head→next=NULLC.head→next=headD.head!=NULL

13.有以下程序:#include<stdio.h>main(){FILE*pf;char*s1=“China”,*s2=“Beijing”;pf=fopen(“abc.dat”,“wb+”);fwrite(s2,7,1,pf);rewind(pf);/*文件位置指针回到文件开头*/fwrite(s1,5,1,pf);fclose(pf);}程序执行后,abc.dat文件的内容是()。

A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina

14.一个有n个顶点的连通无向图至少有()条边。

A.n-1B.nC.n+1D.n+2

15.下列叙述中错误的是()。

A.线性表是由n个元素组成的一个有限序列

B.线性表是一种线性结构

C.线性表的所有结点有且仅有一个前件和后件

D.线性表可以是空表

16.向一个栈顶指针为H的链栈中插入一个s所指向的结点时,需执行()。

A.H->link=s

B.s->link=H->link;H->link=s;

C.s->link=H;H=s;

D.s->link=H;H=H->link;

17.下列定义数组的语句中,正确的是()。A.#defineN10;intx[N];

B.intN=10;intx[N];

C.int:x[0.10];

D.intx[];.

18.最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()。

A.(rear+1)MODn=front

B.rear=front

C.rear+1=front

D.(rear-l)MODn=front

19.以下程序的输出结果是().A.A.2222B.2468C.222D.246

20.如果只想得到1024个元素组成的序列中第5个最小元素之前的部分排序的序列,用()方法最快

A.冒泡排序B.快速排序C.简单选择排序D.堆排序

三、程序设计题(10题)21.编写函数fun,其功能是:求出1~1000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。

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

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

22.请编写函数proc(),函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。

则函数值为59。

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

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

试题程序:

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

24.假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:使字符串中前部的*号不得多余m个;若多余m个,则删除多余的*号;若少于或等于m个,则什么也不做,字符串中间和尾部的*号不删除。例如,字符串中的内容为****A*BC*DEF*G****,若m的值为2,删除后,字符串中的内容则应当是**A*BC*DEF*G****;若m的值为4,则字符串中的内容仍为****A*BC*DEF*G****。n的值在主函数中输入。在编写函数时,不得使用c语言提供的字符串函数。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

25.请编一个函数intfun(inta),它的功能是:判断a是否是素数,若a是素数,返回1;若不是素数,返回0。A的值由主函数从键盘读入。

26.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),其功能是将s所指字符串中ASCII值为奇数的字符删除,将剩余字符形成的新字符串放在t所指数组中。例如,若s所指字符串中的内容为“ABCDEFG12345”,其中字符A的ASCII值为奇数,字符1的ASCII值也为奇数,都应当删除,其他依此类推。最后t所指的数组中的内容应是“BDF24”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,chart[]){}main(){ chars[100],t[100],Msg[]=“Pleaseenterstrings:”; printf(Msg); scanf(“%s”,s); fun(s,t); printf(“\nTheresuitis:%s\n”,t);}

27.请编一个函数fun(char*str),该函数的功能是把字符串中的内容逆置。例如,字符串中原有的字符串为asdfg,则调用该函数后,串中的内容为gfdsa。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

28.请编写一个函数proc(),它的功能是将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转为整数的函数)。

例如,若输入字符串“1234”,则函数把它转换为整数值1234。

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

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

试题程序:

29.编写函数proc,它的功能是:计算和输出下列级数的和。S=1/(12)+1/(23)+…+1/(n(n+1))例如,当n=20时,函数值为0.952381。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:

30.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,规定输入的字符串中只包含字母和*号。编写函数fun(),其功能是删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为“****A*BC*DEF*G*******”,删除后,字符串中的内容应当是“ABCDEFG”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>voidfun(char*a){}voidmain(){ chars[81]; printf(“Enterastring:\n”); gets(s); fun(s); printf(“Thestringafterdeleted:\n”); puts(s);}

四、2.程序修改题(10题)31.下列给定程序中,函数fun()的功能是:从s所指字符串中,找出t所指字符串的个数作为函数值返回。例如,当s所指字符串中的内容为abcdabfab,t所指字符串的内容为ab,则函数返回整数3。

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

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

试题程序:

#include<conio.h>

#include<stdio.h>

#include<string.h>

intfun(char*s,char*t)

{intn;char*p,*r;

n=0;

while(*s)

{p=s;

r=t;

while(*r)

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

if(*r==*p){r++;p++}

elsebreak;

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

if(r=='\0')

n++;

s++;

}

returnn;

}

main()

{chars[100],t[100];intm;

clrscr();

printf("\nPleaseenterstrings:");

scanf("%s",s);

printf("\nPleaseentersubstringt:");

scanf("%s",t);

m=fun(s,t);

printf("\nTheresultis:m=%d\n",m);

}

32.给定程序MODll.C中函数fun的功能是:根据整型形参m,计算如下公式的值。

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

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

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

33.下列给定程序中函数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);

}

34.给定程序MODll.C中函数fun的功能是:从n(形参)个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。

例如,若输入8名学生的成绩:80.5607290.59851.58864则低于平均分的学生人数为:4(平均分为:75.5625)。

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

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

35.下列给定程序中,函数fun()的功能是:根据以下公式求n的值,并作为函数值返回。例如,给指定精度的变量eps输入0.0005时,应当输出Pi=3.140578。

n/2=1+1/3+1/3*2/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9……

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

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

试题程序:

#include<conio.h>

#include<stdio.h>

#include<math.h>

doublefun(doubleeps)

{doubles,t;intn=t;

s=0.0;

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

t=1;

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

while(t>eps)

{s+=t;

t=t*n/(2*n+1);

n++;

}

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

return(s);

}

main()

{doublex;

printf("\nPleaseenteraprecision:");

scanf("%1f",&x);

printf("\nPi=%1f\n",fun(x));

}

36.下列给定程序中,函数fun()的功能是:将m(1≤m≤10)个字符串连接起来,组成一个新串,放入pt所指字符串中,例如:把3个串abc,CD,EF串联起来,结果是abcCDEF。

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

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

试题程序:

#include<conio.h>

#include<string.h>

#include<stdio.h>

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

intfun(charstr[][10],intm,char*pt)

{intk,q,i,j=0;

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

{q=strlen(str[k]);

j+=q;

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

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

pt[i]=str[k,i];

pt+=q;

pt[0]=0;

}

pt-=j;

}

main()

{intm,h;

chars[10][10],p[120];

clrscr();

printf("\nPleaseenterm:");

scanf("%d",&m);gets(s[0]);

printf("\nPleaseenter%dstring:In",m);

for(h=0;h<m;h++)gets(s[h]);

fun(s,m,p);

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

}

37.给定程序MODll.C中函数fun的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但z转换为A,z转换为a),其他字符不变。

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

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

38.下列给定程序中,函数fun()的功能是:将s所指字符串中的字母转换为按字母序列后续字母(但Z转换为A,z转换为a),其他字符不变。

请改正程序指定部位的错误,使它能得到正确结果。

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

[试题源程序]

#include<stdio.h>

#include<ctype.h>

voidfun(char*s)

{

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

while(*s!='@')

{

if(*s>='A'&&*s<='Z'||*s>='a'&&'s<='z')

{

if(*s=='Z')

*s='A';

else

if(*s=='z')

*s='a';

else

*s+=1;

}

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

(*s)++;

}

}

voidmain()

{

chars[80];

printf("\nEnterastringwithlength<80.:\n\n");gets(s);

printf("\nThestring:\n\nt");

puts(s);

fun(s);

printf("\n\nTheCords:\n\n");puts(s);

}

39.给定程序MODll.C中函数fun的功能是:应用递归算法求形参a的平方根。求平方根的迭代公式如下:

例如,a为2时,平方根值为:1.414214。

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

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

40.给定程序MODll.C中函数fun的功能是:找出100至n(不大于1000)之间三位数字相等的所有整数,把这些整数放在s所指数组中,个数作为函数值返回。

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

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

五、程序改错题(2题)41.下列给定程序中,函数fun()的功能是:将tt所指字符串中的小写字母全部改为对应的大写字母,其他字符不变。例如,若输入“Ab,cD”,则输出“AB,CD”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:

42.写出下列程序的运行结果。

fun(inta,intb)

{if(a>b)return(a);

Elsereturn(b);}

main

{intx=3,y=8,z=6,r;

r=fun(fun(x,y),2*z);printf(“%d\n”,r);}

六、操作题(2题)43.有以下程序,请在

处填写正确语句。使程序可正常编译运行。

#include

mairl();

{doublex,y,(*p)():

scanf(“%If%If”,&x,&y);

P=avg;

printf(“%f\n”,(*p)(x,y));

}

doubleavg(doublea,doublcb)

{return((a十b/2):

44.给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1,s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,为非0。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANKl.C中。

不得增行或删行,也不得更改程序的结构!

参考答案

1.驱动模块驱动模块解析:由于模块通常不是独立的程序,自己不能运行,而需要其他模块调用或驱动,同时被测试模块还要去调用其他模块,前者称为驱动模块,后者称为承接模块。其中驱动模块的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果;承接模块的作用是代替被测模块,调用其他模块。

2.->->解析:结构变量abc有成员a,并有指针pabc指向结构变量abc,则引用变量abc成员a的形式有abc.a和p_abc->a。

3.结构化设计结构化设计解析:与结构化需求分析方法相对应的是结构化设计方法。结构化设计就是采用最佳的可能方法设计系统的各个组成部分以及各个成分之间的内部联系的技术。

4.k-1k-1解析:第一处应该是定义的某个变量,读程序可知,变量k没有定义,所以此处应填入k。字符串的倒序,就是将首尾对应的字符(数组元素)两两交换。可用两个游标变量i和j分别代表前端元素的下标和后端元素的下标,交换以这两个变量值为下标的元素str[i]和str[j]。开始时,i的值为0,j的值为字符串末元素的下标(字符串长度减1)。每次交换后,i增1,j减1。继续交换的条件是str[i]仍然位于str[j]的前面,即i<j。字符串末元素的下标是它的长度减1,所以在第二处应填入-1。

5.3232解析:二叉树第k层上,最多有2k-1(k≥1)个结点。第6层的结点数最多是26-1=32。注意区别“二叉树的结点最多数”和“某一层的结点最多数”。前者的计算是深度为m的二叉树最多有2m-1个结点。

6.1616解析:函数运算不改变数据类型,所以结果也是double型,fabs(x)是对x取绝对值,pow(y,fabs(x))是y的labs(x)次幂,即2.04。0=16.000000(注意;结果为double型)。

7.前件前件

8.关系模型关系模型解析:数据库管理系统是位于用户与操作系统之间的一层系统管理软件,是一种系统软件,是用户与数据库之间的一个标准接口。其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型。

9.1212解析:本题考核的知识点是字符类型数据的表示方法和存储形式。字符类型的数据在内存中以相应的ASCII码存放,在C语言中,字符数据可以等价为与其相应的ASCII码的整数,还可以作为整数参加运算。在本题中,n1=ch1-'0'='1'-'0'=49-48=1n2=n1*10+(ch2-'0')=1*10+('2'-'0')=10+2=12,所以,最后输出为12。

10.结构结构解析:路径测试是白盒测试方法中的—种,它要求对程序中的每条路径最少检查一次,目的是对软件的结构进行测试。

11.A

12.A解析:在不带头结点的单链表head中,head指向第一个元素结点,head=NULL表示该链表为空,所以答案为A。

13.B题目中先是将s2字符串写入adc.dat中,然后执行rewind函数将写指针放置于文件开头,写入s1字符串。s1字符串将前5个字符覆盖,所以最终结果为Chinang。故本题答案为B选项。

14.A

15.CC.【解析】线性表是一种线性结构,由n(n≥0)个元素组成,所以线性表可以是空表。但是在线性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以选项C.是错误的。

16.C

17.A[解析]数组说明的一般形式为:类型说明符数组名[常量表达式]。B)中N是变量,不能用变量定义数组长度。C)选项中数组长度是非法的一串数字。定义数组时必须为其指明长度,D)选项中数组长度为空,所以非法。\u3000\u3000

18.B

19.D

20.D解析:从平均时间性能而言,快速排序最佳,其所需时间最少,但快速排序在最坏情况下的时间性能不如堆排序和归并排序。当序列中的记录基本有序或元素个数较少时,冒泡排序和简单选择排序为最佳排序方法,故本题答案应该为选项D。

21.

【考点分析】

本题考查:if语句,用来判断能被7整除或者能被11整除,但是又不能同时被7和11整除的数,在这里充分理解”逻辑与”和”逻辑或”的区别;for循环语句的循环变量用来控制取值范围。

【解题思路】

该题需要运用循环判断结构来实现,其中循环语句比较容易,只要确定循环变量的范围即可,下面来看判断语句,题目要求找出能被7或11整除,但不能同时被7和11整除的所有整数。能同时被7和ll整除的整数一定能被77整除,且不能被

77整除的数不一定就是能被7或11整除的数,所以可得出程序中的if语句。注意:(i%7==0||i%11==0)两边必须要有小括号。

22.

【解析】要求二维数组周边元素之和,首先应该判断数组中的每一个元素是否是周边元素。找出所有的周边元素后求和,返回给主函数。周边元素的下标特点为行或列的下标为。或N—1。根据此特点,找出所有的周边元素然后求和。

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

24.

【解析】题目中要求字符串前部的*不得多于m,首先要计算出字符串前部的*号的个数,与变量m进行比较。当字符串前部的*多于m个时,删除多余的*。规定不能用字符串函数处理,可以通过移动字符串的首指针来实现。

25.\n#include”stdio.h”

\nintfun(inta)

\n{intI;

\nif(a==2)return1;I=2;

\nwhile((a%I)!=0I<=sqrt((float)a))

\nI++;

\nif(a%I==0)

\n{printf(“%disnotaprime!”,a);

\nreturn0;}

\nprintf(“%disaprime!”,a);

\nreturn1;}

\nmain

\n{intx;

\nprintf(“\\npleaseenteranumber:”);

\nscanf(“%d”,&x);

\nprintf(“%d\\n”,fun(x));}

\n26.voidfun(char*s,chart[]){ inti,j=0,n; n=strlen(s);/*遍历整个数组*/ for(i=0;i<=""p="">/*如果元素的ASCII值为偶数*/ if(s[i]%2==0) {/*将元素保存到t中*/ t[j]=s[i]; j++; } t[j]=-‘\0’;}要删除ASCII值为奇数的字符,也就是要保留ASCII值为偶数的字符,将ASCII值为偶数的字符保存到新字符串。所以本题的算法是对原字符串从头到尾进行扫描,找出ASCII值为偶数的字符并依次存入数组。

27.

【解析】在fun()函数中,首先求行字符串的长度,然后通过循环进行字符交换。要注意的是,如果字符串长度是奇数,则最中间的元素在逆置前后的位置是没有改变的。

28.

【解析】要将数字字符串转换为一个整数,首先判断该字符串的正负号。然后将数字字符转换为相应的数字,将各个数字合并为整数。最后将得到的整数乘以字符串中的符号。将最后的结果返回到主函数中。

29.

【解析】首先定义一个变量来表示其和s,通过n次循环求出n项的和,最后将所得到各项的和值返回给主函数。

30.voidfun(char*a){ inti,j=0; for(i=0;a[i]!=‘\0’;i++) if(a[i]!=‘\*’) a[j++]=a[i];/*若不是要删除的字符‘*’则保留*/ a[j]=‘\0’;/*最后加上字符串结束标志‘\0’*/}该题考核的是删除字符串中所有*,需用循环语句遍历字符串,用判断语句判断字符是否为*,由此可以决定该程序应使用循环判断结构。用循环操作从字符串开始向后逐个进行比较,若不是要删除的字符(用if(a[i]!=‘*’)来控制)则保留。变量i和j用来表示原字符串的下标和删除*后新字符串的下标。注意,下标变量j要从0开始,最后还要加上字符串结束标志‘\\0’。

31.(1)错误:if(*r==*p){r++;p++}正确:if(*r==*p){r++;p++;}(2)错误;if(r=='\0')正确:if(*r=='\0')(1)错误:if(*r==*p){r++;p++}正确:if(*r==*p){r++;p++;}\r\n(2)错误;if(r=='\\0')正确:if(*r=='\\0')解析:从字符串s中找出于串t的方法是:从第一个字符开始,对字符串进行遍历;若s串的当前字符等于t串的第1个字符,两字符串的指针自动加1,继续比较下一个字符;若比较至字符串t的结尾,则跳出循环;若s串的字符和t串的字符不对应相同,则继续对下一个字符进行处理。

32.(1)for(i=2;i<=m;i++)(2)y+=1.O/(i*i);(1)for(i=2;i<=m;i++)(2)y+=1.O/(i*i);解析:该题中函数功能是计算公式的值。其中,公式中涉及在循环中对各项的计算及累加求和。从已给定源程序的main主函数开始入手,“printf(〝\\nTheresultis%1f\\n〞,fun(n));”语句中调用fun函数,计算公式的值。

33.(1)错误:if(d%2!=0)正确:if(d%2==0)(2)错误:t=d*s1+t;正确:*t=d*s1+*t;(1)错误:if(d%2!=0)正确:if(d%2==0)\r\n(2)错误:t=d*s1+t;正确:*t=d*s1+*t;解析:错误1:偶数是能被2整除,而奇数是不能被2整除,题目要求找出偶数。错误2:t为指针类型,所以进行运算时要加‘*’号。

34.(1)t+=s[k];(2)*aver=ave;(1)t+=s[k];(2)*aver=ave;解析:该程序功能是统计出低于平均分的学生人数,首先求得平均分,然后再求得低于平均分的人数。从已给定源程序的main.主函数开始入手,printf语句中的fun(s,m,&aver)l调用函数实现题目中的要求。

35.(1)错误:t=0;正确:t=1.0;(2)错误:while(t>eps)正确:while(t>=eps)(3)错误:return(s);正确:return(s*2);(1)错误:t=0;正确:t=1.0;\r\n(2)错误:while(t>eps)正确:while(t>=eps)\r\n(3)错误:return(s);正确:return(s*2);解析:该题中,我们首先看函数fun()中while语句的含义,当新的一项大于给定参数时,循环累加。根据题意我们可以看出,最后一项应该小于给定参数,因此,循环条件应当为while(t>=eps)。至于return(s);错误,是一个数学常识,应该是return(s*2);。

36.(1)错误:intfun(charstr[][10]intmchar*pt)正确:voidfun(charstr[][10intmchar*pt)(2)错误:pt[i]=str[ki];正确:pt[i]=str[k][i];(1)错误:intfun(charstr[][10],intm,char*pt)正确:voidfun(charstr[][10,intm,char*pt)\r\n(2)错误:pt[i]=str[k,i];正确:pt[i]=str[k][i];解析:本题中的两例错误我们已经在前面的讲解中详细阐述了,一般这样的字符串连接函数在C语言的考试中肯定不让使用strcat函数,但是,直接用if和while的循坪嵌套也很容易解决问题的。

37.(1)while(*s)或while(*s!=ˋ\0ˊ)或while(*s!=0)(2)s++;(1)while(*s)或while(*s!=

温馨提示

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

评论

0/150

提交评论