二级C语言程序设计题

合集下载

全国二级计算机C语言程序设计题库

全国二级计算机C语言程序设计题库

一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是。

A、C语言简洁、紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言移植性好2、以下不正确的C语言标识符是A、ABCB、abcC、a_bcD、ab.c3、一个C语言程序是由。

A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为A、intB、floatC、doubleD、不确定6、在C语言中,char型数据在内存中的存储形式是。

A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是。

#include<stdio.h>main(){int x;float y;scanf("%3d%f",&x,&y);}A、12345B、123C、45D、3458、若有以下定义int a,b; float x,则正确的赋值语句是。

A、a=1,b=2B、b++;C、a=b=5D、b=int(x);9、以下程序的执行结果是。

#include<stdio.h>{int i=10,j=10;printf("%d,%d\n",++i,j--);}A、11,10B、9,10C、11,9D、10,910、巳知字母A的ASCII码是65,以下程序的执行结果是。

#include<stdio.h>main(){char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高的是。

2023年计算机二级考试c语言(精选3篇)

2023年计算机二级考试c语言(精选3篇)

2023年计算机二级考试c语言(精选3篇)计算机二级考试c语言1选择题1).在软件设计中,不属于过程设计工具的是()A.PDL(过程设计语言)B.PAD图C.N-S图D.DFD图正确答案:D答案解析:DFD(数据流图Data-Flow-Diagram)是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示。

它直接支持系统功能建模。

在软件详细设计的过程阶段,要对每个模块规定的'功能以及算法的设计给出适当的算法描述。

常见的过程设计工具有:图形工具:程序流程图,N-S,PAD,HIPO;表格工具:判定表;语言工具:PDL(伪码)。

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

A.存储结构B.物理结构C.逻辑结构D.线性结构正确答案:C答案解析:数据的逻辑结构反映的是数据元素之间的逻辑关系,与使用的计算机无关。

3).设有定义:intx=2;以下表达式中,值不为6的是()A.2__x,x+=2B.x++,2__xC.x__=(1+x)D.x__=x+1正确答案:A答案解析:本题考查逗号表达式。

逗号表达式的求解过程是:先求解表达式1,再求解表达式2,整个逗号表达式的值是表达式2的值,因此,选项A中值为4;选项B中,值为6。

选项C中x__=x+1等价于x=x__(x+1),所以等于6;选项D与选项C等价,结果也为6。

4).在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为()A.63B.64C.6D.7正确答案:B答案解析:顺序查找又称顺序搜索。

顺序查找一般是指在线性表中查找指定的元素,其基本方法是:从线性表的第一元素开始,依次将线性表中的元素与被查找的元素进行比较,若相等则表示找到(即查找成功),若线性表中所有元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素(即查找失败)。

如果线性表中的第一个元素就是要查找的元素,则只需要做一次比较就查找成功;但如果要查找的元素是线性表中的最后一个元素,或者要查找元素不在线性表中,则需要与线性表中所有元素进行比较,这是顺序查找的最坏情况,比较次数为线性表的长度。

计算机二级C语言程序设计章节习题

计算机二级C语言程序设计章节习题

计算机二级C语言程序设计章节习题一简单回答下述问题C++语言中注释符的格式如何?注释信息的功能是什么?答:注释符格式有2种:格式一:/* <注释信息> */格式二:// <注释信息>注释信息是用来对程序进行提示和说明的。

使用const定义符号常量比使用#define定义符号常量有何优点?答:使用const定义符号常量时要指出数据类型,而用#define定义符号常量时不需提出类型,因此前者比后者对类型要求更严格,这样会更安全。

内部静态存储类变量有何特点?答:内部静态存储类变贯的特点是作用域较小,但寿命很长,这种变量作用域与寿命不一致,因此会出现不可见但又存在的情况。

在使用插入符(<<)输出若干个表达式值时,有的表达式中使用的运算符的优先级低于插入符优先级时应该如何处理?答:这时需将表达式用括号括起来,己改变其优先级。

5.由多种不同运算符组成的表达式,其类型如何确定?例如,int a, b, c;…a=b>c?b:c;这是一个条件表达式还是赋值表达式?答:表达式类型由优先级低的运算符组成的表达式来确定。

15这是一个赋值表达式,因为赋值运算符优先级低于三目运算符。

1.数组元素个数是由什么决定的?答:数组元素个数是由维数及其大小来决定的。

一维数组元素个数是该维的大小,二维数组的元素个数是两维大小之积等。

1.数组元素下标有何规定?答:C++语言中,数组元素下标从0开始。

1.初始值表中数据项的类型和个数有何规定?答:初始值表中数据项的类型应与该变是类型相同,个数应小于或等于被初始化的数组元素的个数。

1.字符数组和字符串有什么关系?答:字符数组中可存放字符串,而字符数组不都是存放字符串的。

如果字符数组中有字符串结束符,则说明该字符数存放的是字符串。

10.一个数组中的元素类型是否一定相同?何时定义的数组元素具有默认值?答:数组中元素类型必须相同。

存储类为外部和静态的数组其元素具有默认值二判断题√1.表达式和表达式语句是不同的。

计算机等级《二级C语言程序设计》模拟题

计算机等级《二级C语言程序设计》模拟题

计算机等级《二级C语言程序设计》模拟题计算机等级《二级C语言程序设计》模拟题1.【单选题】2分| 有定义:“inta=2,b=3,c=4;”,则下列选项中值为0的表达式是()。

A (!a==1)&&(!b==0)B (aC a&&bD a||(b+b)&&(c-a)2.【单选题】2分| 执行下面的程序后,a的值为()。

main(){inta,b;for(a=1,b=1;a=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A 7B 8C 9D 103.【单选题】2分| 若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是()。

A EOFB -lC 非零值D 04.【单选题】2分| 有以下程序:main(){inta=0,b=0;a=10;/*给a赋值b=20;给b赋值*/printf("a+b=%d\n",a+b);//输出计算机结果}程序运行后的输出结果是()。

A a+b=10B a+b=30C 30D 出错5.【单选题】2分| 以下程序的输出结果是()。

main(){inta=3:printf("%d\n",(a+a-=a*a));}A -6B 12C 0D -126.【单选题】2分| 执行下列程序中的输出语句后,a的值是()。

main(){inta;printf("%d\n",(a=2*3,a*5,a+7));}A 17B 37C 6D 137.【单选题】2分| 下列关于栈的描述中错误的是()。

A 栈是先进先出的线性表B 栈只能顺序存储C 栈具有记忆作用D 对栈的插入删除操作中,不需要改变栈底指针8.【单选题】2分| 函数调用strcat(strcpy(str1,str2),str3)的功能是()。

A 将字符串str1复制到字符串str2中后再连接到字符串str3之后B 将字符串str1连接到字符串str2之后再复制到字符串str3之后C 将字符串str2复制到字符串str1之后再将字符串str3连接到字符串str1之后D 将字符串str2连接到字符串str1之后再将字符串strl复制到字符串str3中9.【单选题】2分| 对两个数组a和b进行下列初始化:charm[]1="l234567":charn[]={'1','2','3','4','5','6','7');则下列叙述正确的是()。

全国计算机等级考试《二级C语言程序设计》模拟试卷二

全国计算机等级考试《二级C语言程序设计》模拟试卷二

全国计算机等级考试《二级C语言程序设计》模拟试卷二[单选题]1.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是((江南博哥))。

A.外模式B.内模式C.概念模式D.逻辑模式参考答案:B参考解析:数据库管理系统的三级模式包括:①外模式,也称子模式、用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图;②模式,也称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和;③内模式,也称存储模式、物理模式,是指数据在数据库系统内的存储介质上的表示,是对数据的物理结构和存取方式的描述。

答案选择B选项。

[单选题]4.下面不属于需求分析阶段任务的是()。

A.确定软件系统的功能需求B.确定软件系统的性能需求C.需求规格说明书评审D.制定软件集成测试计划参考答案:D参考解析:需求分析阶段的工作主要包括4个方面:①需求获取,其目的是确定对目标系统的各方面需求;②需求分析,对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型;③编写文档,编写需求规格说明书,编写初步用户使用手册;④确认测试计划,修改完善软件开发计划,需求评审。

制定软件集成测试计划属于概要设计阶段的任务。

答案选择D选项。

[单选题]5.结构化程序的三种基本控制结构是()。

A.顺序、选择和重复(循环)B.过程、子程序和分程序C.顺序、选择和调用D.调用、返回和转移参考答案:A参考解析:结构化程序设计中三种基本控制结构为顺序、选择和重复(循环)。

答案选择A选项。

[单选题]6.构成计算机软件的是()。

A.源代码B.程序和数据C.程序和文档D.程序、数据及相关文档参考答案:D参考解析:计算机软件的定义为:与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。

答案选择D选项。

[单选题]7.在黑盒测试方法中,设计测试用例的主要根据是()。

A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图参考答案:B参考解析:黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能规格说明。

计算机二级c语言程序设计题

计算机二级c语言程序设计题
计算机二级C语言程序设计题
一、选择题(请在【答题】菜单上选择【选择题】命令,启动选择题测试程序, 按照题目上的内容进行答题。作答选择题时键盘被封锁,使用键盘无效,考生须 使用鼠标答题。选择题部分只能进入一次,退出后不能再次进入。选择题部分不 单独计时。)
1、以下叙述中正确的是( )。
A. 分支结构是根据算术表达式的结果来判断流程走向的 B. 在C语言中,逻辑真值和假值分别对应1和0 C. 对于浮点变量x和y,表达式:x==y 是非法的,会出编译错误 D. 关系运算符两边的运算对象可以是C语言中任意合法的表达式
和提高模块内的内聚性,有利于提高模块的独立性。答案选择B选项。
8、有以下程序 #include <stdio.h> typedef struct {int b, p;} A; void f(A c) { int j; c.b+=1; c.p+=2; } void main() { int i; A a={1,2}; f(a); printf("%d,%d\n", a.b, a.p); }
2、设有定义: int x=0, *p;
紧接着的赋值语句正确的是( )。
A. *p=x; B. *p=NULL; C. p=x; D. p=NULL;
【答案】
D
【解析】
指针赋值的正确写法:①p=&x,表示p指向x的存储单元;②p=NULL,表示p是空指针。③*p=x,表示将p指向的内容赋值 为x,但前提是p已进行了初始化。答案选择D选项。
【答案】
D
【解析】
C语言中,运算符两侧的运算对象可以任意合法的表达式,选项D正确;非0和0分别对应逻辑真值和假值,选项B错;关系运 算符“==”两侧的运算对象只要为合法的表达式就可以编译通过,选项C错;分支结构是根据if或者else if后面的圆括号内的表 达式(不仅仅是算术表达式,还有赋值表达式、逗号表达式、关系表达式、逻辑表达式等)的值来判定流程走向的,选项A 错误;答案选择D选项。

二级C语言程序设计-2

二级C语言程序设计-2

二级C语言程序设计-2(总分:100.00,做题时间:90分钟)一、{{B}}选择题{{/B}}(总题数:20,分数:40.00)1.下列运算符中优先级最高的算符是∙ A.!∙ B.%∙ C.-=∙ D.&&(分数:2.00)A. √B.C.D.解析:2.下列运算符中优先级最低的算符是∙ A.‖∙ B.!=∙ C.<=∙ D.+(分数:2.00)A. √B.C.D.解析:3.为表示关系:x≥y≥z,应使用的C语言表达式是∙ A.(x>=y)&&(y>=z)∙ B.(x>=y)AND(y>=x)∙ C.(x>=y>=z)∙ D.(x>=y)&(y>=z)(分数:2.00)A. √B.C.D.解析:4.设a、b和c都是int型变量,且a=3,b=4,c=5,则以下的表达式中值为0的表达式是∙ A.a&&b∙ B.a<=b∙ C.a‖b+c&&b-c∙ D.!((a<b)&&!c‖1)(分数:2.00)A.B.C.D. √解析:5.有以下程序:#include<stdio.h>main(){int a=2, b=-1, c=2;if(a<b)if(b<0) c=0;else c+=1;printf("%d/n", c);}程序的输出结果是∙ A.0∙ B.1∙ C.2∙ D.3(分数:2.00)A.B.C. √D.解析:6.有以下程序:#include<stdio.h>main(){int w=4, x=3, y=2, z=1;printf("%d/n", (w<X? w:z<y? z:x)); }程序的输出结果是∙ A.1∙ B.2∙ C.3∙ D.4(分数:2.00)A. √B.C.D.解析:7.有以下程序:#include<stdio.h>main(){int a, b, s;scanf("%d%d", &a, &b);s=a;if(a<b) s=b;s*=s;printf("%d/n", s);}若执行以上程序时从键盘上输入3和4,则输出结果是∙ A.14∙ B.16∙ C.18∙ D.20(分数:2.00)A.B. √C.D.解析:8.有以下程序片段:y=-1; if(x!=0) if(x>0) y=1; else y=0; 其能正确表示的数学函数关系是A.B. C. D(分数:2.00)A.B.C. √D.解析:9.有以下程序:#include<stdio.h>main(){int k=-3;if(k<=0) printf("****/n")else printf("&&&&/n");}程序的输出结果是∙ A.输出####∙ B.输出&&&&∙ C.输出####&&&&∙ D.有语法错不能通过编译(分数:2.00)A.B.C.D. √解析:10.若a和b均是正整型变量,正确的switch语句是∙ A.switch(pow(a, 2)+pow(b, 2)) (注:调用求幂的数学函数) {case 1:case 3:y=a+b; break; case 0:case 5:y=a-b; }∙ B.switch(a*a+b*b); {case 3; case 1:y=a+b; break; case 0:y=b-a; break; }∙ C.switch a {default:x=a+b; case 10:y=a-b;break; case 11:x=a*d; break; }∙ D.switch(a+b) {case10:x=a+b; break; case11:y=a-b; break; }(分数:2.00)A. √B.C.D.解析:11.有以下程序段:int k, j, s;for(k=2; k<6; k++,k++){s=1;for(j=k; j<6; j++) s+=j;}printf("%d/n", s);程序段的输出结果是∙ A. 9∙ B.1∙ C.11∙ D.10(分数:2.00)A.B.C.D. √解析:12.有以下程序段:int i, j, m=0;for(i=1; i<=15; i+=4)for(j=3; j<=19; j+=4) m++; printf("%d/n", m);程序段的输出结果是∙ A.12∙ B.15∙ C.20∙ D.25(分数:2.00)A.B.C. √D.解析:13.有以下程序段:int n=10;while(n>7){n--;printf("%d/n", n);}程序段的输出结果是∙ A.10 9 8∙ B.9 8 7∙ C.10 9 8 7∙ D.9 8 7 6(分数:2.00)A.B. √C.D.解析:14.有以下程序段:int x=3;do{printf("%3d", x-=2);}while(!(--x));程序段的输出结果是∙ A.1∙ B.3 0∙ C.1 -2∙ D.死循环(分数:2.00)A.B.C. √D.解析:15.有以下程序:#include<stdio.h>main(){int i, sum;for(i=1; i<6; i++) sum+=sum; printf("%d/n", sum);}程序的输出结果是∙ A.15∙ B.14∙ C.不确定∙ D.0(分数:2.00)A.B.C. √D.解析:16.有以下程序:#include<stdio.h>main(){int y=10;for(; y>0; y--)if(y%3==0){printf("%d", --y); continue; }}程序的输出结果是∙ A.741∙ B.852∙ C.963∙ D.875421(分数:2.00)A.B. √C.D.解析:17.有以下程序段:int x;for(x=3; x<6; x++)printf((x%2)?("**%d"): ("##%d/n"), x); 程序段的输出结果是∙ A.**3 ##4 **5∙ B.##3 **4 ##5∙ C.##3 **4##5 .∙ D.**3##4 **5(分数:2.00)A.B.C.D. √解析:18.有以下程序:#include<stdio.h>main(){int i;for(i=1; i<=5; i++){if(i%2) printf("*");else continue;printf("#");}printf("$/n");}程序的输出结果是∙ A.*#*#*#$∙ B.#*#*#*$∙ C.*#*#$∙ D.#*#*$(分数:2.00)A. √B.C.D.解析:19.以下叙述中正确的是∙ A.do-while语句构成的循环不能用其他语句构成的循环来代替∙ B.do-while语句构成的循环只能用break语句退出∙ C.用do-while语句构成循环时,只有在while后的表达式为非零时结束循环∙ D.用do-while语句构成循环时,只有在while后的表达式为零时结束循环(分数:2.00)A.B.C.D. √解析:20.有以下程序:#include<stdio.h>main(){int x, i;for(i=1; i<=100; i++){x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf("%d", x);}printf("/n");}程序的输出结果是∙ A.28 70∙ B.42 84∙ C.26 68∙ D.39 81(分数:2.00)A. √B.C.D.解析:二、{{B}}填空题{{/B}}(总题数:16,分数:32.00)21.C语言中用______表示逻辑值“真”,用______表示逻辑值“假”。

国家二级C语言机试(程序设计基础、C语言概述)-试卷1

国家二级C语言机试(程序设计基础、C语言概述)-试卷1

国家二级C语言机试(程序设计基础、C语言概述)-试卷1(总分:68.00,做题时间:90分钟)一、选择题(总题数:34,分数:68.00)1.结构化程序设计的基本原则不包括()。

(分数:2.00)A.多态性√B.自顶向下C.模块化D.逐步求精解析:解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。

2.在面向对象方法中,不属于"对象"基本特点的是()。

(分数:2.00)A.一致性√B.分类性C.多态性D.标识唯一性解析:解析:对象有如下一些基本特点:标识唯一性、分类性、多态性、封装性、模块独立性好。

所以选择A)。

3.面向对象方法中,继承是指()。

(分数:2.00)A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制√解析:解析:继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。

广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。

4.结构化程序所要求的基本结构不包括()。

(分数:2.00)A.顺序结构B.GOTO跳转√C.选择(分支)结构D.重复(循环)结构解析:解析:1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。

5.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。

(分数:2.00)A.-369B.369 √C.0.369D.整数集合{1,2,3,4,5}解析:解析:只有B)选项369可以用无符号整数来表示和存储。

A)选项-369有负号,选项C)0.369是小数都不能用无符号整数类存储。

选项D)是一个整数集合得用数组来存储。

6.下列选项中不属于结构化程序设计原则的是()。

(分数:2.00)A.可封装√B.自顶向下C.模块化D.逐步求精解析:解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C 语言程序设计请编写函数fun ,其功能是:找出2×M 整型二维数组中最大元素的值,并将此值返回调用函数。

int fun (int a[][M]){int i,j,max=a[0][0];for(i=0;i<2;i++)for(j=0;j<M;j++)if(max<a[i][j])max=a[i][j];return max;}编写函数fun ,其功能是:根据以下公式求π的值(要求精度,即某项小于时停止迭代)。

()1121231234121233535735793521n n π⨯⨯⨯⨯⨯⨯⨯⨯⨯=++++++⨯⨯⨯⨯⨯⨯⨯⨯⨯+………… 程序运行后,若输入精度,则程序应输出为…。

double fun ( double eps){double s=,s1=;int n=1;while(s1>=eps) /*当某项大于精度要求时,继续求下一项*/{s1=s1*n/(2*n+1); /*求多项式的每一项*/s=s+s1; /*求和*/n++;}return 2*s;}编写函数fun ,其功能是:求出1~1000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a 所指的数组中,通过n 返回这些数的个数。

void fun (int *a, int *n){int i,j=0;for(i=1;i<=1000;i++) /*求1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数,并放入数组a 中*/if((i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;}规定输入的字符串中只包含字母和*号。

编写函数fun,其功能是:删除字符串中所有的*号。

编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为:****A*BC*DEF*G*******,删除后字符串中的内容应当是:ABCDEFG。

void fun( char *a ){int i,j=0;for(i=0;a[i]!='\0';i++)if(a[i]!='*')a[j++]=a[i]; /*若不是要删除的字符'*'则留下*/a[j]='\0';}规定输入的字符串中只包含字母和*号。

编写函数fun,其功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。

例如,字符串中的内容为:"*******A*BC*DEF*G****",删除后字符串中的内容应当是:"A*BC*DEF*G****"。

编写函数时,不得使用C语言提供的字符串函数。

void fun( char *a ){char *p=a;while(*p=='*') p++; /*指针p指向字符串第一个字母*/for(;*p!='\0';p++,a++)*a=*p; /*从第一个字母开始,其后的字符都放入指针a所指的字符串中*/*a='\0'; /*在字符串最后加上字符串结束标识*/}假定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:除了尾部的*号之外,将字符中的其它的*号全部删除。

形参p已指向字符串中最后的一个字母。

在编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容应当是ABCDEFG*******。

void fun( char *a, char *p ){char *t=a;for(;t<=p;t++)if(*t!='*')*(a++)=*t;for(;*t!='\0';t++)*(a++)=*t;*a='\0';/*在字符串最后加上字符串结束标识*/}规定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:只删除字符前导和尾部的*号,串中字母间的*号都不删除。

形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中尾部*号的个数。

在编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为:"****A*BC*DEF*G*******",删除后,字符串中的内容应当是:"A*BC*DEF*G"。

void fun( char *a, int n,int h,int e ){int i,j=0;for(i=h;i<n-e;i++) /*第一个字母和最后一个字母之间的字符全不删除*/a[j++]=a[i];a[j]='\0'; /*在字符串最后加上结束标识*/}规定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:除了字符串前导的*号之外,将串中其它*号全部删除。

在编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,字符串中的内容应当是:****ABCDEFG。

void fun( char *a ){int i=0;char *p=a;while(*p&&*p=='*'){a[i]=*p;i++;p++;}while(*p){if(*p!='*'){a[i]=*p;i++;}p++;}a[i]='\0';}规定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。

例如,字符串中的内容为:"****A*BC*DEF*G*******",删除后,字符串中的内容应当是:"****A*BC*DEF*G"。

在编写函数时,不得使用C语言提供的字符串函数。

void fun( char *a ){while(*a!='\0')a++;a--; /*指针a指向字符串的尾部*/while(*a=='*')a--; /*指针a指向最后一个字母*/*(a+1)='\0'; /*在字符串最后加上结束标志符*/}规定输入的字符串中只包含字母和*号。

请编写函数fun,其功能是:将字符串中的前导*号全部移到字符串的尾部。

例如,字符串中的内容为:"*******A*BC*DEF*G****",移动后,字符串中的内容应当是:"A*BC*DEF*G***********"。

在编写函数时,不得使用C语言提供的字符串函数。

void fun( char *a ){int i=0,n=0;char *p;p=a;while (*p=='*') /*判断*p是否是*号,并统计*号的个数*/{n++;p++;}while(*p) /*将前导*号后的字符传递给a*/{a[i]=*p;i++;p++;}while(n!=0){a[i]='*';i++;n--;}a[i]='\0';}编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串的后面。

例如,分别输入下面两个字符串:FirstString--SecondString程序输出:FirstString--SecondStringvoid fun(char p1[], char p2[]){int i,j;for(i=0;p1[i]!='\0';i++) ;for(j=0;p2[j]!='\0';j++)p1[i++]=p2[j];p1[i]='\0';}某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。

例如,学生的成绩是:,76,,85,91,72,,,则他的平均分应为。

void fun(STREC *a){int i;a->ave=;for(i=0;i<N;i++)a->ave=a->ave+a->s[i]; /*求各门成绩的总和*/a->ave/=N; /*求平均分*/}N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。

请编写函数fun,其功能是:求出平均分,并由函数值返回。

例如,若学生的成绩是:8576698591726487,则平均分应当是:。

double fun( STREC *h ){double ave=;STREC *p=h->next;while(p!=NULL){ ave=ave+p->s;p=p->next;}return ave/N;}编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。

例如,若输入17,则应输出:46891012141516。

void fun( int m, int *k, int xx[] ){int i,j,n=0;for(i=4;i<m;i++) /*找出大于1小于整数m的非素数*/{ for(j=2;j<i;j++)if(i%j==0) break;if(j<i) xx[n++]=i;}*k=n; /*返回非素数的个数*/}编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。

例如,若输入字符串2,输入字符为1,则输出3。

int fun(char *ss, char c){int i=0;for(;*ss!='\0';ss++)if(*ss==c)i++;/*求出ss所指字符串中指定字符的个数*/return i;}编写函数fun,其功能是:计算n门课程的平均分,结果作为函数值返回。

例如:若有5门课程的成绩是:,72,80,,55,则函数的值为:。

float fun ( float *a , int n ){int i;float av=;for(i=0; i<n;i++) /*求分数的总和*/av=av+a[i];return(av/n); /*返回平均值*/}学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。

注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。

int fun( STREC *a, STREC *b ){int i,j=0,max=a[0].s;/*找出最大值*/for(i=0;i<N;i++)if(max<a[i].s) max=a[i].s;for(i=0;i<N;i++)if(max==a[i].s)b[j++]=a[i]; /*找出成绩与max相等的学生的记录,存入结构体b中*/ return j; /*返回最高成绩的学生人数*/}编写函数void fun(char *tt,int pp[]),统计在tt所指的字符串中'a'到'z'26个小写字母各自出现的次数,并依次放在pp所指的数组中。

相关文档
最新文档