c语言程序设计经典考地的题目Word文档下载推荐.docx
- 文档编号:19131296
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:13
- 大小:25.03KB
c语言程序设计经典考地的题目Word文档下载推荐.docx
《c语言程序设计经典考地的题目Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言程序设计经典考地的题目Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
=0)
a[j++]=i;
*n=j;
4.求出字符串中只有字母的字符
voidfun(char*a)
inti,j=0;
a[i]!
='
\0'
;
if(a[i]!
*'
)
a[j++]=a[i];
/*若不是要删除的字符'
则留下*/
a[j]='
5.实现两个字符串的连接
voidfun(charp1[],charp2[])
{inti,j;
p1[i]!
i++);
p2[j]!
p1[i++]=p2[j];
p1[i]='
6.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:
求出该学生的平均分,并放入记录的ave成员中。
voidfun(STREC*a)
{doubleave=0.0;
inti;
N;
a->
ave=a->
ave+a->
s[i];
ave/=N;
7.N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。
请编写函数fun,其功能是:
求出平均分,并由函数值返回。
例如,若学生的成绩是:
85 76 69 85 91 72 64 87,则平均分应当是:
78.625。
doublefun(STREC*h)
doubleave=0.0;
STREC*p=h->
next;
while(p!
=NULL)
{ave=ave+p->
s;
p=p->
returnave/N;
8.编写函数fun,其功能是:
将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。
例如,若输入17,则应输出:
4 6 8 9 10 12 14 15 16。
voidfun(intm,int*k,intxx[])
/*inti,j;
intt=0;
for(i=2;
m;
{j=2;
while(j<
i)
{if(i%j==0)
{xx[t]=i;
t++;
break;
j++;
*k=t;
}*/
9.编写函数fun,其功能是:
求ss所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串123412132,输入字符为1,则输出3。
intfun(char*ss,charc)
inti=0;
for(;
*ss!
ss++)
if(*ss==c)
i++;
/*求出ss所指字符串中指定字符的个数*/
returni;
10.其功能是计算n门课程的平均分,结果作为函数值返回。
floatfun(float*a,intn)
inti;
floatav=0.0;
for(i=0;
i<
n;
av=av+a[i];
return(av/n);
11.学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:
把分数最高的学生数据放在b所指的数组中。
注意:
分数最高的学生可能不止一个,函数返回分数最高的学生的人数。
intfun(STREC*a,STREC*b)
inti,j=0,max=a[0].s;
/*找出最大值*/
a[i].s)max=a[i].s;
if(max==a[i].s)
b[j++]=a[i];
/*找出成绩与max相等的学生的记录,存入结构体b中*/
returnj;
/*返回最高成绩的学生人数*/
12.规定输入的字符串中只包含字母和*号。
除了字符串前导的*号之外,将串中其它*号全部删除。
在编写函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为:
****A*BC*DEF*G*******,删除后,字符串中的内容应当是:
****ABCDEFG。
inti=0;
char*p=a;
while(*p&
*p=='
)
{
a[i]=*p;
p++;
while(*p)
if(*p!
{a[i]=*p;
i++;
a[i]='
13.下列给定程序中,函数fun的功能是:
把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:
字符串的长度大于等于2)。
例如,形参s所指字符串为"
abcdefgh"
,执行结果为"
ahcbedgf"
。
voidfun(char*tt,intpp[])
{inti;
26;
pp[i]=0;
/*初始化pp数组各元素为0*/
*tt!
tt++)
if(*tt>
a'
*tt<
z'
pp[*tt-'
]++;
14.下列给定程序中,函数fun的功能是:
在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(即下标值),若未找到则返回-1。
ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。
{while(*a!
a++;
a--;
/*指针a指向字符串的尾部*/
while(*a=='
/*指针a指向最后一个字母*/
*(a+1)='
/*在字符串最后加上结束标志符*/
15.下列给定程序中已建立了一个带头结点的单向链表,在main函数中将多次调用fun函数,每调用一次,输出链表尾部结点中的数据,并释放该结点,使链表缩短。
char*fun(char*s,char*t)
s[i]!
='
i++);
/*求字符串的长度*/
t[j]!
j++);
if(i<
=j)/*比较两个字符串的长度*/
returnt;
/*函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串*/
else
returns;
16.学生的记录由学号成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:
函数返回该学号的学生数据,指定的学号在主函数中输入。
若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。
(用于字符串比较的函数是strcmp)。
STRECfun(STREC*a,char*b)
STRECstr={"
\0"
-1};
/*若没找到指定的学号,在结构体变量中给学号置空串,给成绩置-1*/
if(strcmp(a[i].num,b)==0)/*找到指定学号的学生数据*/
str=a[i];
returnstr;
/*返回学生记录*/
【考点分析】
本题考查:
结构体类型;
字符串比较函数strcmp()的应用。
【解题思路】
本程序一开始先使结构体变量str中的学号为空串,成绩为-1。
循环体的功能是搜索所有学生的学号,并判断是否有学号与b所指字符串相同(即找到),若找到则给str重新赋值(str=a[i]),若没找到则str成员的值还是原有值(即未找到时学号返回空串,成绩返回-1)。
【解题宝典】
常见的字符串处理函数总结如下:
调用形式
作 用
说 明
puts
(字符数组)
将一个字符串(以′\0′结束)输出到终端设备
用该函数输出的字符串中可以包含转义字符
gets
从终端输入一个字符串到字符数组中,并且得到一个函数值
puts()和gets()函数一次只能输入或输出一个字符串,不能写成puts(字符数组1,字符数组2)或gets(字符数组1,字符数组2)
strcpy(字符数组1,字符数组2)
把字符数组2所指字符串的内容复制到字符数组1所指存储空间中。
函数返回字符数组1的值,即目的串的首地址
为保证复制的合法性,字符数组1必须指向一个足够容纳字符数组2的存储空间
strcat(字符数组1,字符数组2)
该函数将字符数组2所指字符串的内容连接到字符数组1所指的字符串后面,并自动覆盖字符数组1串末尾的′\0′,该函数返回字符数组1的地址值
字符数组1所指定字符串应有足够的空间容纳两串合并后的内容
strlen(字符数组)
此函数计算出以字符数组为起始地址的字符串的长度,并作为函数值返回
这一长度不包括串尾的结束标志′\0′
strcmp(字符数组1,字符数组2)
该函数用来比较字符数组1和字符数组2所指字符串的大小。
若字符数组1>
字符数组2,函数值大于0(正数);
若字符数组1=字符数组2,函数值等于0;
若字符数组1<
字符数组2,函数值小于0(负数)
根据字符的ASCII码值依次对字符数组1和字符数组2所指字符串对应位置上的字符两两进行比较,当出现第一对不同的字符时,即由这两个字符决定所在串的大小
17.函数fun的功能是:
将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符外,其余的全部删除;
字符串中剩余字符所形成的新串放在t所指的数组中。
例如,若s所指字符串中的内容为"
ABCDEFG123456"
其中字符A的ASCII码值为奇数,因此应当删除;
字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;
字符2的ASCII码值为偶数,在数组中的下标也为偶数,因此不应当删除,其他依此类推。
最后t所指的数组中的内容应是"
246"
【参考答案】
voidfun(char*s,chart[])
if(i%2==0&
s[i]%2==0)/*将s所指字符串中下标和ASCII码值都为偶数的字符放入数组t中*/
t[j++]=s[i];
t[j]='
/*在字符串最后加上结束标识*/
循环判断结构;
字符串的操作;
逻辑运算符的使用。
本题要求删除除了下标为偶数同时ASCII码值也为偶数的字符,即保留下标为偶数同时ASCII码值也为偶数的字符。
循环语句用于遍历字符串,条件语句用于判断当前字符是否符合要求。
注意判断条件是下标为偶数,同时ASCII码值也为偶数,所以应使用逻辑与"
"
运算符。
18编写函数fun,其功能是:
利用下面的简单迭代方法求方程cos(x)-x=0的一个实根。
迭代步骤如下:
(1)取x1初值为0.0;
(2)x0=x1,将x1的值赋给x0;
(3)x1=cos(x0),求出一个新的x1;
(4)若x0-x1的绝对值小于0.000001,执行步聚(5),否则执行步聚
(2);
(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。
程序将输出结果Root=0.739086。
doublefun()
doublex0,x1;
x1=0.0;
do
x0=x1;
x1=cos(x0);
}while(fabs(x0-x1)>
=1e-6);
returnx1;
19.规定输入的字符串中只包含字母和*号。
将字符串中的前导*号全部移到字符串的尾部。
*******A*BC*DEF*G****"
,移动后,字符串中的内容应当是:
A*BC*DEF*G***********"
inti=0,n=0;
char*p;
p=a;
while(*p=='
n++;
p++;
while(*p)
a[i]=*p;
while(n!
=0)
a[i]='
n--;
20.学生记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组中,请编写函数fun,其功能是:
把分数最低的学生数据放入b所指的数组中,注意:
分数最低的学生可能不止一个,函数返回分数最低的学生人数。
inti,j=0,min=a[0].s;
if(min>
a[i].s)
min=a[i].s;
/*找出最小值*/
if(min==a[i].s)
/*找出成绩与min相等的学生的记录,存入结构体b中*/
查找结构体数组中的最小数据,需要通过for循环语句和if条件语句来完成。
本题中第一个循环语句的作用是遍历数组求出最低分数,第二个循环语句的作用是将数组中的元素与最低分比较,查找是否存在与最低分相等的成绩。
21.编写函数fun,其功能是计算:
s作为函数值返回。
在C语言中可调用log(n)函数求ln(n)。
log函数的引用说明为:
doublelog(doublex)。
doublefun(intm)
doubles=0.0;
=m;
s=s+log(i);
/*计算s=ln
(1)+ln
(2)+ln(3)+…+ln(m)*/
returnsqrt(s);
/*对s求平方根并返回*/
计算表达式的值运用for循环语句通过累加操作求和;
平方根函数sqrt()的使用。
【解题思路】
首先计算从1到m的对数的和,因此循环变量的范围是1~m,每次循环都进行一次累加求和。
该题需要注意的是,log()函数的形式参数应当为double型变量,而用于循环的基数变量为整数,需要进行强制转换。
在返回的时候求出平方根。
22.规定输入的字符串中只包含字母和*号。
只删除字符前导和尾部的*号,串中字母间的*号都不删除。
形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中尾部*号的个数。
****A*BC*DEF*G*******"
,删除后,字符串中的内容应当是:
A*BC*DEF*G"
voidfun(char*a,intn,inth,inte)
for(i=h;
n-e;
i++)
voidfun(char*s,chart[])
inti,j=0,k=strlen(s);
/*k为字符串的长度*/
k;
i=i+2)/*将s所指字符串中下标为奇数的字符存入t所指字符串中*/
删除字符串中指定字符,采用保留非指定字符的方法操作。
本题使用了一种i永远是奇数的循环方法,即for(i=1;
k;
i=i+2),因为开始时i的值为1,当i+2循环时,值永远是奇数。
循环结束后在新串的尾部加上结束符'
21.适用于数字.
intfun(char*str)
{inti,n=0,fg=1;
char*p=str;
while(*p)/*将指针p置位到字符串末尾,并统计字符数*/
{n++;
n/2;
i++)/*循环比较字符*/
if(str[i]==str[n-1-i]);
/*相同,什么都不作*/
else/*不同,直接跳出循环*/
{fg=0;
break;
returnfg;
22适用于字符串.
intfun(char*s)
{char*lp,*rp;
/**********found**********/
lp=s;
rp=s+strlen(s)-1;
while((toupper(*lp)==toupper(*rp))&
(lp<
rp)){
lp++;
rp--;
if(lp<
rp)return0;
elsereturn1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 经典 题目