二级(C语言程序设计)考试大纲_第1页
二级(C语言程序设计)考试大纲_第2页
二级(C语言程序设计)考试大纲_第3页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

C语言全国计算机等级(二级)考试指导第一章二级)考试大纲公共基础知识基本要求掌握算法的基本概念。掌握基本数据结构及其操作。掌握基本排序和查找算法。掌握逐步求精的结构化程序设计方法。掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。考试内容一.基本数据结构与算法算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度。线性结构的概念。线性表的定义;线性表的顺序存储结构及其插入与删除运算。栈和队列的定义;栈和队列的顺序存储结构及其基本运算。线性单链表、双向链表与循环链表的结构及其基本运算。树的基本概念;二叉树的定义及其存储结构;叉树的前序、中序和后序遍历。(二、程序设计基础程序设计方法与风格。结构化程序设计。三、软件工程基础软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。结构化分析方法,数据字典,软件需求规格说明书。结构化设计方法,总体设计与详细设计。集成测试和系统测试。四、数据库设计基础数据库的基本概念:数据库,数据库管理系统,数据库系统。E-RE-R关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。考试方法公共基础知识的考试方法为笔试,与C(C++语言程序设计、Java程序设计、VisualBasic语言程序设计、VisualFoxPro数据库程序设计或Access数据库程序设计)的笔试部分合为一张试卷。公共基础知识部分占全卷的30分。105C语言程序设计基本要求TURBOC集成环境。熟练掌握结构化程序设计的方法,具有良好的程序设计风格。掌握程序设计中简单的数据结构和算法。TURBOC的集成环境下,能够编写简单的C力。考试内容一、C语言的结构序的构成,MAIN头文件,数据说明,函数的开始和结束标志。源程序的书写格式。4.C语言的风格。二、数据类型及其运算1.C的数据类型(基本类型,指针类型,空类型)及其定义方法。2.C运算的种类、运算优先级和结合性。3.不同类型数据间的转换与运算。4.C表达式类型(赋值表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则。三、基本语句表达式语句,空语句,复合语句。数据的输入与输出,输入输出函数的调用。复合语句。Goto四、选择结构程序设计ifswitch选择结构的嵌套1.For2.Whiledowhile3.Continuebreak4.循环的嵌套。六、数组的定义和引用一维数组合多维数组的定义、初始化和引用。七、函数库函数的正确调用。函数的定义方法。函数的类型和返回值。形式参数与实在参数,参数值得传递。函数的正确调用,嵌套调用,递归调用。局部变量和全局变量。变量的存储类别(自动,静态,寄存器,外部,变量的作用域和生存期。八、编译预处理宏定义:不带参数的宏定义;带参数的宏定义。“文件包含”处理九、指针指针与指针变量的概念,指针与地址预算符。构体的指针变量。通过指针引用以上各类型数据。用指针作函数参数。返回指针值得指针函数。指针数组,指向指针的指针,main函数的命令行参数。十、结构体()与孔用体()结构体和公用体类型数据的定义方法和引用方法。十一、位运算位运算符的含义及使用。十二、文件操作只要求缓冲文件系统(即高级磁盘I/O系统,对非标准缓冲文件系统(即低级磁盘I/O系统)不要求。文件类型指针(FILE。文件的打开与关闭(FOPEN,FCLOSE。文件的读写(FPRTC,FGETC,FPUTS,FGETS,FREAD,FWRITE,FPRINTF,FSCANF。文件的定位(REWIND,FSEEK。考试方式笔试:12010030上机:60100第二章全国计算机等级考试(二级)C语言应试方略C很多人对学习C语言感到无从下手,经常问我同一个问题:究竟怎样学习C语言?CCCCC第一:C语言语法结构很简洁精妙,写出的程序也很高效,便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。第二:CC有的windows,Unix,Linux,Mac,os/2,没有一个例外,如果你不懂C这些操作系统当中去呢?更不要说你去写它们的内核程序了。第三:很多新型的语言都是衍生自C语言,C++,Java,C#,J#,perl...哪个不是呢?掌握了C语言,可以说你就掌握了很多门语言,经过简单的学习,你就可以用这些新型的语言去开发了,由此可见C语言是程序设计的重要基础。多说一点:即使现在招聘程序员,考试都是考C语言,你想加入IT行业,那么就一定要掌握好C语言。那么究竟怎样学习C语言呢?工欲善其事,必先利其器这里介绍几个学习C语言必备的东东:turboC2.0DOS时代开发程序的大半个江ft。windows时代,用turboC没有函数变量自动感应功能,查询参考资料也不方便。建议使用Visual一本学习教程,现在C语言教材多如牛毛,但推荐大家使用《C语言程序设计》谭浩强主编清华大学出版社,此书编写的很适合初学者,并且内容也很精到。除此以外,还可以借助于辅助学习的软件,毕竟现在是Window时代了,学习软件多如牛毛,不象我们当初学习,只有读书做题这么老套。葵花宝典学习计算机语言最好的方法是什么?答曰:读程序。没错,读程序是学习C语言入门最快,也是最好的方法。如同我,现在学习新的J#,C#等其他语言,不再是抱着书本逐行啃,而是学习它们的例程。当然,对于没有学过任何计算机语言的初学者,最好还是先阅读教程,学习完每一章,都要认真体会这一章的所有概念,然后不放过这一章中提到的所有例程,然后仔细研读程序,直到每一行都理解了,然后找几个编程题目,最好是和例程类似的或一样的,自己试图写出这段已经读懂的程序,不要以为例程你已经读懂了,你就可以写出和它一样的程序,绝对不一定,不相信你就试一试吧,如果写不出来,也不要着急,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到你手到擒来为止,祝贺你,你快入门了。登峰造极写程序的最高境界其实就是掌握各种解决问题的手段(数据结构)和解决问题的方法(算法)。存器及其组合,然后写值读值,仅此而已。这不过是熟悉一些IO函数罢了。那么怎样才算精通程序设计呢?举个例子:你面前有10个人,找出一个叫“张三”的人,你该怎么办?10个人问2数据结构,穷举查找和折半查找。所以掌握好数据结构和一些常用算法,是登峰造极的必然之路。最后给大家推荐严尉敏的《数据结构》清华大学出版社,希望每一个想成为程序设计高手的人研读此书。如何应对新大纲二级考试的公共基础知识30分。二级基础知识考核内容的大变令相当多的考生措手不及,事实上这次改革将基础知识的内容由计算机常识(一级难度)(三级难度054基础四部分,下面分别说一下学习重点和方法:数据结构与算法时这也是数据结构与算法的难点,考核形式主要为二叉树的遍历问题(给前序、中序遍历求后序遍历等、二叉树的结点问题(如给出一些条件然后求叶子结点个数;还有排序和查找考试中也经常会涉及到,排序主要以计算时间复杂度的形式考核,查找主要以计算最佳/最坏比较次数的方式考核。其余的知识点主要以概念的形式考察,考生需要仔细看书并理解。程序设计基础与软件工程基础即SA及S,约占50%(约占20%可以得到深刻理解。数据库设计基础外,其余的都是以概念题的形式考核,考生需要仔细的阅读。以上为复习二级公共基础的方法,顺便提及一点02年版及其以前的公共基础考试用书已不再适用,因此考生在选购教材的时候应当特别注意,应当购买04年版的二级公共基础知识教程(指定教材由高等教育出版社出版,还有考生在备考时,除了应完成教材中的习054语言笔试应试技巧二级C别是历年真题,从中找出规律性的东西以及解题技巧。选择题排除法等多种方法。但是这类题目考的知识点往往都比较多且细,容易出错,考生在做这类2003949有以下程序main(){inta[3][3], p=&&a[0][0];for(i=0;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}程序运行后的输出结果是(A)3(B)6(C)9(D)2此题主要考的知识点有:(1)数组与指针的关系;(2)数组的初始化和数组元素的引用。Cp0a[0][0p中存放了数组元素a[0][0]的地址,由于数组元素在内存中是连续存储的,因此,我们就可以通过指针变量pfor(i=0;i<9;i++)1a[3][3]={1,2,3,4,5,6,7,8,9a[1][2]=6C0a[1][2]=3。填空题2040分,有的考生能得35~4010200398main(){inta=1,b=3,c=5;if(c=a+b)printf("yes\n");elseprintf("no");}yes。因为“if(c=a+b)printf("yes\n");”a+b=1+3=4,所以条件为真。而许多考生却把赋值语句“c=a+b”理解为关系表达式“c==a+b5=1+3no。12main(){inti,n[]={0,0,0,0,0};for(i=1;i<=4;i++){n[i]=n[i-1]*2+1;printf("%d",n[i]);}}问程序运行后的输出结果是 。答案是“13715”许多考生虽然写对了但却在每个数字后加了标点而不得分如“1,3,7,15”或“5又如第19题:s中的数字字符放入dd如,输入字符串:abc123edf456gh,执行后输出:123456。请填空:main(){chars[80],d[80];inti,gets(s);for(i=j=0;s[i]!='\0';i++))d[j]='\0';puts(d);}答案应是s[i]<='9'&&s[i]>='0'或s[i]<=48&&s[i]>=57将答案张冠李戴,位置写错,白白丢了分。总之,只要考生能准确理解基本知识点,善于动手动脑多练习,举一反三,触类旁通,就能从中找出规律性的东西,轻松通过笔试。上机考试技巧上机改错题的特点和注意事项上机改错的试题中通常包含两个(或三个)错误需要修改。试题中用"/******found******/"来提示在下一行(或下面第二行)有错。自己另编程序。上机改错测试时,建议按以下步骤进行改错后程序运行的结果是否正确。TURBOC"/******found******/题义理解程序所采用的基本算法,做到心里有数。先按F9CTRL+F9当程序存在逻辑错误时,首先应当理解题意、读懂程序的算法,必要时可按步检0开始而不是1开始的。修改程序中的逻辑错时,要求考生认真读懂程序代码。修改完成,得到正确结果后,一定不要忘记把修改后的程序存盘。上机编程题的特点和说明C通过实际上机操作积累经验,才能掌握基本的编程能力。进行编程测试时,建议按以下步骤进行完成指定的函数后程序运行的结果是否正确。TURBOC函数时的实参内容,以便明确在函数中需要处理的数据对象。return语句返回函数值;若主函数中仅用语句形式调用函数,则需要通过形参间接地返回所得结果。选择适当的算法进行编程,输入程序语句。不要忘记及时存盘!编译程序,直到没有语法错误。用例示的输出数据检验输出结果,直到结果相同。常见问题分析书写标识符时,忽略了大小写字母的区别。main(){inta=5;printf("%d",A);}编译程序把a和A认为是两个不同的变量名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。忽略了变量的类型,进行了不合法的运算。main(){floata,b;printf("%d",a%b);}%是求余运算,得到a/b的整余数。整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。将字符常量与字符串常量混淆。charc;c="a";在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。C规定以“\”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a'和‘\',而把它赋给一个字符变量是不行的。忽略了“=”与“==”的区别。在许多高级语言中,用“=”符号作为关系运算符“等于”。如在BASIC程序中可以写if(a=3)then„但C语言中,“=”是赋值运算符,“==”是关系运算符。如:if(a==3)a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1b=2一下上一行是否漏掉了分号。{z=x+y;t=z/100;printf("%f",t);}对于复合语句来说,最后一个语句中最后的分号不能忽略不写。多加分号对于一个复合语句,如:{z=x+y;t=z/100;printf("%f",t);};复合语句的花括号后不应再加分号,否则将会画蛇添足。又如:if(a%3==0);i++;3i1if(a%3==0ifi++3是否整除a,i1。再如:for(i=0;i<5;i++);{scanf("%d",&x);printf("%d",x);}本意是先后输入5个数,每输入一个数后再将它输出。由于for()后多加了一个分号,使循环体变为空语句,此时只能输入一个数并输出它。输入变量时忘记加地址运算符“&”inta,b;scanf("%d%d",a,b);这是不合法的。scanf函数的作用是:按照a、b在内存的地址将a、b的值存进去。“&a”指a在内存中的地址。输入数据的方式与要求不符①scanf("%d%d",&a,&b);输入时,不能用逗号作两个数据间的分隔符,如下面输入不合法:3,4输入数据时,在两个数据之间以一个或多个空格间隔,也可用回车键,跳格键tab。②scanf("%d,%d",&a,&b);C规定:如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。下面输入是合法的:3,4此时不用逗号而用空格或其它字符是不对的。34 3:4又如:scanf("a=%d,b=%d",&a,&b);输入应如以下形式:a=3,b=4输入字符的格式与要求不一致在用“%c”格式输入字符时,“空格字符”和“转义字符”都作为有效字符输入。scanf("%c%c%c",&c1,&c2,&c3);如输入abc字符“ac1,字符“”送给c2,字符“b”c3,因为%c符,后面不需要用空格作为两个字符的间隔。例如,aba=3;b=4.5;printf("%f%d\n",a,b);编译时不给出出错信息,但运行结果将与原意不符。这种错误尤其需要注意。输入数据时,企图规定精度scanf("%7.2f",&a);这样做是不合法的,输入数据时不能规定精度。switchbreak例如:根据考试成绩的等级打印出百分制数段switch(grade){case'A':printf("85~100\n");case'B':printf("70~84\n");case'C':printf("60~69\n");case'D':printf("<60\n");default:printf("error\n");break,casegradeAprintfcase'A':printf("85~100\n");break;在定义数组时,将定义的“元素个数”误认为是可使的最大下标值main(){staticinta[10]={1,2,3,4,5,6,7,8,9,10};printf("%d",a[10]);}C语言规定:定义时用a[10],表示a数组有10个元素。其下标值由0开始,所以数组元素a[10]是不存在的。在不应加地址运算符&的位置加了地址运算符scanf("%s",&str);C语言编译系统对数组名的处理是:数组名代表该数组的起始地址,且scanf函数中的输入项是字符数组名,不必要再加地址符&。应改为:scanf("%s",str);辅之以有效的学习方法,就一定会有所成就。第三章200520054(二级)C一、选择题1)~(10)每小题2(11)~(50)每小题1分,共60分)下列各题A、、C、)在答题卡相应位置上,答在试卷上不得分。数据的存储结构是指 。A)存储在外存中的数据 B)数据所占的存储空间量C)数据在计算机中的顺序存储方式 D)数据的逻辑结构在计算机中的表下列关于栈的描述中错误的是 。栈是先进后出的线性表栈只能顺序存储栈具有记忆作用对栈的插入与删除操作中,不需要改变栈底指针n 。A)冒泡排序为n/2 B)冒泡排序为nC)快速排序为n D)快速排序为n(n-1)/2对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为 。A)log2n B)n/2 C)n D)n+1下列对于线性链表的描述中正确的是 。存储空间不一定是连续,且各元素的存储顺序是任意的C)存储空间必须连续,且前件元素一定存储在后件元素的前面D)存储空间必须连续,且各元素的存储顺序是任意的下列对于软件测试的描述中正确的是 。软件测试的目的是证明程序是否正确软件测试的目的是使程序运行结果正确软件测试的目的是尽可能多地发现程序中的错误软件测试的目的是使程序符合结构化原则为了使模块尽可能独立,要求 。A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强下列描述中正确的是 。A)程序就是软件B)软件开发不受计算机系统的限制C)软件既是逻辑实体,又是物理实体D)软件是程序、数据与相关文档的集数据独立性是数据库技术的重要特点之一,所谓数据独立性是指 。A)数据与程序独立存放B)不同的数据被存放在不同的文件中C)D)以上三种说法都不对用树形结构表示实体之间联系的模型是 。A)关系模型 B)网状模型 C)层次模型 D)以上三个都是算法具有五个特性,以下选项中不属于算法特性的是 。A)有穷性 B)简洁性 C)可行性 D)确定性以下选项中可作为C语言合法常量的是 。A)-80. B)-080 C)-8e1.0 D)-80.0e以下叙述中正确的是 。A)用C程序实现的算法必须要有输入和输出操作B)CC)用CD)用C以下不能定义为用户标识符的是 。A)MainB)_0 C)_int D)sizeof以下选项中不能作为合法常量的是 。A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e00ASCII48,main(){chara=′1′,b=′2′;printf("%c,",b++);printf("%d\n",b-a);}程序运行后的输出结果是 。A)3,2B)50,2 C)2,2 D)2,50有以下程序main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序运行后的输出结果是 。A)12353514B)12353513C)12343514 D)12343513有定义语句:intb;charc[10];,则正确的输入语句是 A)scanf("%d%s",&b,&c); B)scanf("%d%s",&b,c);C)scanf("%d%s",b,c);D)scanf("%d%s",b,&c);有以下程序main(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是 。A)m=123n=456p=789 B)m=123n=456C)m=123,n=456,p=789 D)123456789有以下程序main(){inta,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b);}程序运行后的输出结果是 。A)6,1 B)2,1 C)6,0 D)2,0有以下程序main(){inti=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d%d%d\n",i,j,k);}程序运行后的输出结果是 A)123 B)234 C)223 D)233a、b、c、d1、4、3、2。则条件表达式a<B?A:C<D?C:D的值是 。A)1 B)2 C)3 D)4有以下程序main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}程序运行后的输出结果是 。A)42 B)45 C)56 D)60有以下程序main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序运行后的输出结果是 。A)22B)76 C)72 D)62以下能正确定义一维数组的选项是 。A)inta[5]={0,1,2,3,4,5}; B)chara[]={0,1,2,3,4,5};C)chara={′A′,′B′,′C′};D)inta[5]="0123";有以下程序intf1(intx,inty){returnx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c+d-e-f;printf("%d,%d,%d\n",e,f,g);程序运行后的输出结果是 。A)4,3,7 B)3,4,7 C)5,2,7 D)2,5,7chara[]="xyz",b[]={x′,′y′,′z′};,以下叙述中正确的是 。A)数组a和b的长度相同B)a数组长度小于b数组长度C)a数组长度大于b数组长度D)上述说法都不对有以下程序voidf(int*x,int*y){intt;t=*x;*x=*y;*y=t;main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p<q){if(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序运行后的输出结果是 。A)8,2,3,4,5,6,7,1, C)1,2,3,4,5,6,7,8, D)8,7,6,5,4,3,2,1,有以下程序main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",a[1][i]);程序运行后的输出结果是 。A)012B)123 C)234 D)345以下叙述中错误的是 。A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B)数组名代表的是数组所占存储区的首地址,其值不可改变C)的出错信息D)可以通过赋初值的方式确定数组元素的个数有以下程序#defineN20fun(inta[],intn,intm){inti,j;for(i=m;i>=n;i--)a[i+1]=a[i];}main(){inti,a[N]={1,2,3,4,5,6,7,8,9,10};fun(a,2,9);for(i=0;i<5;i++)printf("%d",a[i]);}程序运行后的输出结果是 。A)10234 B)12344 C)12334 D)12234有以下程序main(){inta[3][2]={0},(*ptr)[2],i,j;for(i=0;i<2;i++){ptr=a+i;scanf("%d",ptr);ptr++;}for(i=0;i<3;i++){for(j=0;j<2;j++)printf("%2d",a[i][j]);printf("\n");}}若运行时输入:123<回车>,则输出结果是 。产生错误信息 B)10 C)12 D)10有以下程序prt(int*m,intn){inti;for(i=0;i<n;i++)m[i]++;}main(){inta[]={1,2,3,4,5},i;prt(a,5);for(i=0;i<5;i++)printf("%d,",a[i]);}程序运行后的输出结果是 。A)1,2,3,4,5, B)2,3,4,5,6, C)3,4,5,6,7, D)2,3,4,5,1,有以下程序main(){inta[]={1,2,3,4,5,6,7,8,9,0},*p;for(p=a;p<a+10;p++)printf("%d,",*p);}程序运行后的输出结果是 。A)1,2,3,4,5,6,7,8,9,0,B)2,3,4,5,6,7,8,9,10,1,C)0,1,2,3,4,5,6,7,8,9, D)1,1,1,1,1,1,1,1,1,1,有以下程序#defineP3voidF(intx){return(P*x*x);}main(){printf("%d\n",F(3+5));}程序运行后的输出结果是 。A)192B)29 C)25 D)编译出错有以下程序main(){intc=35;printf("%d\n",c&c);}程序运行后的输出结果是 。A)0 B)70 C)35 D)1以下叙述中正确的是 。A)预处理命令行必须位于源文件的开头B)在源文件的一行上可以有多条预处理命C)宏名必须用大写字母表示D)宏替换不占用程序的运行时间若有以下说明和定义uniondt{inta;charb;doublec;}data;以下叙述中错误的是 。A)data的每个成员起始地址都相变量data所占的内存字节数与成员c所占字节数相等C)程序段:data.a=5;printf("%f\n",data.c);输出结果为D)data以下语句或语句组中,能正确进行字符串赋值的是 。A)char*sp;*sp="right!"; B)chars[10];s="right!";C)chars[10];*s="right!"; D)char*sp="right!";设有如下说明typedefstructST{longa;intb;charc[2];}NEW;则下面叙述中正确的是 。A)以上的说明形式非法 B)ST是一个结构体类型C)NEW是一个结构体类型D)NEW是一个结构体变有以下程序main(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",b);}程序运行后的输出结果是 。A)3 B)4 C)5 D)6有以下程序main(){chars[]="159",*p;p=s;printf("%c",*p++);printf("%c",*p++);}程序运行后的输出结果是 。A)15 B)16 C)12 D)59有以下函数fun(char*a,char*b){while((*a!=′\0′)&&(*b!=′\0′)&&(*a==*b)){a++;b++;}return(*a-*b);}该函数的功能是 。a和bb所指字符串连接到ab所指字符串连接到aD)a和b有以下程序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");}}若要按以下形式输出数组右上半三角1234678111216则在程序下划线处应填入的是 。A)i-1B)i C)i+1 D)4-i有以下程序point(char*p){p+=3;}main(){charb[4]={′a′,′b′,′c′,′d′},*p=b;point(p);printf("%c\n",*p);}程序运行后的输出结果是 。A)a B)b C)c D)d程序中若有如下说明和定义语句charfun(char*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;......}以下选项中对函数fun的正确调用语句是 。A)(*f1)(a); B)*f1(*s);C)fun(&a);D)ch=*f1(s);有以下结构体说明和变量定义,如图所示:structnode{intdata;structnode*next;}*p,*q,*r;现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能完成指定操作的句是 。A)P->next=q->next; B)p->next=p->next->next;C)p->next=r; D)p=q->next;以下对结构体类型变量td的定义中,错误的是 。A)typedefstructaa B)structaa{intn; {intn;floatm; floatm;}AA; }td;AAtd; structaatd;C)struct D)struct{intn; {intn;floatm; floatm;}aa; }td;structaatd;以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是 。A)feof(fp) B)ftell(fp) C)fgetc(fp) 有以下程序#includevoidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序运行后,文件t1.dat中的内容是 。A)start B)endC)startend D)endrt二、填空题(每空2分,共40分)请将每空的正确答案写在【1】至【20】序号的横线上,答在试卷上不得分。2181】个叶子结点。【2】。诊断和改正程序中错误的工作通常称为【3】。在关系数据库中,把数据表示成二维表,每一个二维表称为【4】。问题处理方案的正确而完整的描述称为【5】。以下程序运行时,若从键盘输入:102030【6】。main(){inti=0,j=0,k=0;scanf("%d%*d%d",&i,&j,&k);printf("%d%d%d\n",i,j,k);}【7】。#defineS(x)4*x*x+1main(){inti=6,j=8;printf("%d\n",S(i+j));}【8】。main(){inta=3,b=4,c=5,t=99;if(b<a&&a<c) if(a<c&&b<c) printf("%d%d%d\n",a,b,c);}【9】。main(){inta,b,c;a=10;b=20;c=(a%b<1)||(a/b>1);printf("%d%d%d\n",a,b,c);}以下程序运行后的输出结果是【10】。main(){charc1,c2;for(c1=′0′,c2=′9′;c1<c2;c1++,c2--)printf("%c%c",c1,c2);printf("\n");}AASCII65,以下程序运行时若从键盘输入:B33则输出结果是【11】。main(){chara,b;a=getchar();scanf("%d",&b);a=a-′A′+′0′;b=b*2;printf("%c%c\n",a,b);}以下程序中,fun34空。voidfun(int,int,int(*)[4],int*);main(){inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;fun(3,4,a,b);for(i=0;i<3;i++)printf("%4d",b[i]);printf("\n");}voidfun(intm,intn,intar[][4],int*br){inti,j,x;for(i=0;i<M;{x=ar[i][0];for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j]; 【12】=x;}}以下程序运行后的输出结果是【13】。voidswap(intx,inty){intt;t=x;x=y;y=t;printf("%d %d main(){inta=3,b=4;swap(a,b);printf("%d%d\n",a,b);}以下程序运行后的输出结果是【14】。#include"string.h"voidfun(char*s,intp,intk){inti;for(i=p;i<k-1;i++)s[i]=s[i+2];}main(){chars[]="abcdefg";fun(s,3,strlen(s));puts(s);}以下程序运行后的输出结果是【15】。#include"string.h"main(){charch[]="abc",x[3][4];inti;for(i=0;i<3;i++) strcpy(x[i],ch);for(i=0;i<3;i++) printf("\n");}以下程序运行后的输出结果是【16】。fun(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}main(){inti,a=5;for(i=0;i<3;i++)printf("%d%d",i,fun(a));printf("\n");}以下程序运行后的输出结果是【17】。structNODE{intk;structNODE*link;};main(){structNODEm[5],*p=m,*q=m+4;inti=0;while(p!=q){p->k=++i; p++;q->k=i++; q--;}q->k=i;for(i=0;i<5;i++)printf("%d",m[i].k);printf("\n");}以下程序中函数huiwen时,函数返回字符串:yes!,no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。char*huiwen(char*str){char*p1,*p2;inti,t=0;p1=str;p2=【18】;for(i=0;i<=strlen(str)/2;i++)if(*p1++!=*p2--){t=1;break;}if(【19】)return("yes!");elsereturn("no!");}main(){charstr[50];printf("Input:");scanf("%s",str);printf("%s\n",【20】);}20059(二级一、选择题1)—(10)每题2(11)—(50)每题1分,共60分)下列各题、、C、D)在答题卡相应位置上,答在试卷上不得分。下列叙述中正确的是A)程序设计就是编制程序 B)程序的测试必须由程序员自己去完成C)程序经调试改错后还应进行再测试 D)程序经调试改错后不必进行再测下列数据结构中,能用二分法进行查找的是A)顺序存储的有序线性表 B)线性链C)二叉链表 D)有序线性链表下列关于栈的描述正确的是A)在栈中只能插入元素而不能删除元素B)在栈中只能删除元素而不能插入元素C)栈是特殊的线性表,只能在一端插入或删除元素D)下列叙述中正确的是A)一个逻辑数据结构只能有一种存储结构B)数据的逻辑结构属于线性结构,存储结构属于非线性结构C)D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率下列描述中正确的是A)软件工程只是解决软件项目的管理问题B)C)D)软件工程只是解决软件开发中的技术问题在软件设计中,不属于过程设计工具的是A)PDL(过程设计语言) B)PAD图 C)N-S图 D)DFD图下列叙述中正确的是软件交付使用后还需要进行维护C)软件交付使用后其生命周期就结束D)数据库设计的根本目标是要解决A)数据共享问题 B)数据安全问C)大量数据存储问题 D)简化数据维设有如下关系表:R S TA1A123BBC1122231C233A)T=R∩S B)T=R∪SC)T=R×SD)T=R/S数据库系统的核心是A)数据模型 B)数据库管理系统C)数据库 D)数据库管理员以下叙述中错误的是A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)以下叙述中错误的是A)C语句必须以分号结束B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句以下叙述中正确的是printfputcharstdio.hA3B1A3B1C3getcharASCII码以下关于函数的叙述中正确的是A)每个函数都可以被其它函数调用(mainB)每个函数都可以被单独编译C)每个函数都可以单独运行D)在一个函数内部可以定义另一个函数若有语句:char*line[5];,以下叙述中正确的是A)linecharline5C)line*号称为间址运算符D)定义line是一个指向字符型函数的指针有以下程序段typedefstructNODE{intnum;structNODE*next;}OLD;以下叙述中正确的是A)以上的说明形式非法 B)NODE是一个结构体类型C)OLD是一个结构体类型 D)OLD是一个结构体变量以下叙述中错误的是A)C语言中对二进制文件的访问速度比文本文件快B)C语言中,随机文件以二进制代码形式存储数据C)语句FILEfp;定义了一个名为fp的文件指针D)C语言中的文本文件以ASCII码形式存储数据当把以下四个表达式用作if不同,这个选项是A)k%2B)k%2==1C)(k%2)!=0D)!k%2==1以下不能正确计算代数式值的C语言表达式是A)1/3*sin(1/2)*sin(1/2) B)sin(0.5)*sin(0.5)/3C)pow(sin(0.5),2)/3 以下能正确定义且赋初值的语句是A)intn1=n2=10; B)charc=32;C)floatf=f+1.1; D)doublex=12.3E2.5;rrs。程序在编译时出错。main()/*Beginning*/{intr;floatscanf("%d",&r);s=*p*r*r;printf("s=%f\n",s);}出错的原因是A)注释语句书写位置错误 B)存放圆半径的变量r不应该定义为整型C)输出语句中格式描述符非法 D)计算圆面积的赋值语句中使用了非法变量设有定义:intk=1,m=2;floatf=7;,则以下选项中错误的表达式A)k=k>=k B)-k++C)k%int(f)D)k>=f>=m设有定义:inta=2,b=3,c=40A)(!a==1)&&(!b==0) B)(a<B)&&C)a&&b D)a||(b+b)&&(c-a)有以下程序段intk=0,a=1,b=2,c=3;k=ac?c:k;执行该程序段后,k的值是A)3B)2C)1D)0a、b、c、d和yifif(a<B)if(c==d)y=0;elsey=1;该语句所表示的含义是0a<b且c=d0a<b且c=dA)y=1a≥bB)y=1a≥b且c≠d0a<b且c=d0 a<bc=dC)y=1a<b且c≠dD)y=1 c≠d有以下程序段intn,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是A)任意正奇数B)任意负偶数 C)任意正偶数 D)任意负奇数设变量已正确定义,则以下能正确计算f=n!的程序段A)f=0; B)f=1;for(i=1;i<=n;i++)f*=i; C)f=1; D)f=1;for(i=n;i>1;i++)f*=i; for(i=n;i>=2;i--)f*=i;设有定义:intn1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的A)*p=*q; B)p=q; C)*p=&n1;D)p=*q;若有定义:intx=0,*p=&x;,则语句printf("%d\n",*p);的输出结果A)随机值 B)0 C)x的地址D)p的地址funvoidfun(charch,floatx){„}funA)fun("abc",3.0); B)t=fun('D',16.5);C)fun('65',2.8); D)fun(32,32);有以下程序main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf("%d\n",*p+*q);}程序运行后的输出结果是A)16 B)10 C)8 D)6有以下程序main(){charp[]={'a','b','c'},q[]="abc";printf("%d%d\n",sizeof(p),sizeof(q));};程序运行后的输出结果是A)44 B)33 C)34 D)43有以下程序#definef(x)(x*x)main(){inti1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%d\n",i1,i2);}程序运行后的输出结果是A)64,28 B)4,4 C)4,3 D)64,64有以下程序main(){chara1='M',a2='m';printf("%c\n",(a1,a2));}以下叙述中正确的是A)程序输出大写字母M B)程序输出小写字母mC)格式说明符不足,编译出错 D)程序运行时产生出错信有以下程序#includemain(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}当运行时输入:a<回车>后,以下叙述正确的是A)c1a,c2B)2C)c1a,c2D)c1a,c2有以下程序main(){intk=5,n=0;while(k>0){ switch(k){ default:case1:n+=k;case2:case3:n+=k;}k--;}printf("%d\n",n);}程序运行后的输出结果是A)0 B)4 C)6 D)7有以下程序main(){inta[]={2,4,6,8,10},y=0,x,*p;p=&a[1];for(x=1;x<3;x++)y+=printf("%d\n",y);}程序运行后的输出结果是A)10 B)11 C)14 D)15有以下程序voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa+2,5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序运行后的输出结果是A)1,2,3,4,5,6,7,8,9,10, B)1,2,7,6,3,4,5,8,9,10,C)1,2,7,6,5,4,3,8,9,10, D)1,2,9,8,7,6,5,4,3,10,有以下程序voidsum(inta[]){ a[0]=a[-1]+a[1];}main(){inta[10]={1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d\n",程序运行后的输出结果是A)6 B)7 C)5 D)8有以下程序voidswap1(intc0[],intc1[]){intt;t=c0[0];c0[0]=c1[0];c1[0]=t;}voidswap2(int*c0,int*c1){intt;t=*c0;*c0=*c1;*c1=t;}main(){inta[2]={3,5},b[2]={3,5};swap1(a,a+1); swap2(&b[0],&b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);程序运行后的输出结果是A)3553 B)5335C)3535D)5353有以下程序#include<string.h>main(){charp[]={'a','b','c'},q[10]={'a','b','c'};printf("%d%d\n",strlen(p),strlen(q)); }以下叙述中正确的是A)p和qB)pq3C)qp3D)p和qf#include<string.h>voidf(char*p[],intn){char*t; inti,j;for(i=0;i<n-i;for(j=i+1;j<n;j++)if(strcmp(p[i],p[j])>0){t=p[i];p[i]=p[j];p[j]=t;}}main(){char*p[5]={"abc","aabdfg","abbd","dcdbe","cd"};f(p,5);printf("%d\n",strlen(p[1]));}程序运行后的输出结果是A)2 B)3 C)6 D)4有以下程序#include<string.h>voidf(char*s,char*t){chark;k=*s;*s=*t;s++; t--;if(*s)f(s,t);}main(){charstr[10]="abcdefg",*p;p=str+strlen(str)/2+1;f(p,p-2);printf("%s\n",str);}程序运行后的输出结果是A)abcdefg B)gfedcbaC)gbcdefaD)abedcfg有以下程序floatf1(floatn){returnn*n;}floatf2(float{return2*n;}main(){float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;p1=f1;p2=f2;y1=p2(p1(2.0)t=p1;p1=p2;p2=y2=p2(p1(2.0));printf("%3.0f,%3.0f\n",y1,y2);}程序运行后的输出结果是A)8,16 B)8,8 C)16,16 D)4,8有以下程序inta=2;intf(intn){staticinta=3;intt=0;if(n%2){staticinta=4;t+=a++;}else{staticinta=5;t+=a++;}returnt+a++;}main(){ints=a,i;for(i=0;i<3;i++)s+=f(i);printf("%d\n",s);}程序运行后的输出结果是A)26B)28 C)29 D)24有以下程序#include<string.h>structSTU{intnum;floatTotalScore;};voidf(structSTUp){structSTUs[2]={{20044,550},{20045,537}};p.num=s[1].num;p.TotalScore=s[1].TotalScore;}main(){structSTUs[2]={{20041,703},{20042,580}};f(s[0]);printf("%d%3.0f\n",s[0].num,s[0].TotalScore);}程序运行后的输出结果是A)20045537 B)20044550 C)20042580 D)20041703有以下程序#include<string.h>structSTU{charname[10];intnum;};voidf(char*name,intnum){structSTUs[2]={{"SunDan",20044},{"Penghua",20045}};num=s[0].num;strcpy(name,s[0].name);}main(){structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;p=&s[1];f(p->name,p->num);printf("%s%d\n",p->name,p->num);}程序运行后的输出结果是A)SunDan20042 B)SunDan20044C)LiSiGuo20042 D)YangSan20041有以下程序structSTU{charname[10];intnum;floatTotalScore;};voidf(structSTU*p){structSTUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}};*q=s;++p;++q;*p=*q;}main(){structSTUs[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore);}程序运行后的输出结果是A)SunDan20044550 B)Penghua20045537C)LiSiGuo20042580 D)SunDan20041703以下程序的功能是进行位运算main(){unsignedchara,b;a=7^3;b=~4&3;printf("%d%d\n",a,b);程序运行后的输出结果是A)43B)73 C)70 D)40有以下程序#include<stdio.h>main(){FILE*fp;inti,k,n;fp=fopen("data.dat","w+");for(i=1;i<6;i++){fprintf(fp,"%d",i);if(i%3==0)fprintf(fp,"\n");}rewind(fp);fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}程序运行后的输出结果是A)00 B)12345 C)14 D)12二、填空题(每空2分,共40分)请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分。【1】。【2】复杂度。在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块。其中【3生的结果。一棵二叉树第六层(根结点为第一层)的结点数最多为【4】个。【5】结构。【6】。main(){intx=0210;printf("%X\n",x);}【7】。main(){inta=1,b=2,c=3;if(c=a)printf("%d\n",c);elseprintf("%d\n",b);}已有定义:double*pmalloc函数使p【8】。【9】。main(){charc;intn=100;floatf=10;doublex;x=f*=n/=(c=50);printf("%d(10)以下程序的功能是计算:s=1+12+123+1234+12345。请填空。main(){intt=0,s=0,i;for(i=1;i<=5;i++){t=i+【10】;s=s+t;}printf("s=%d\n",s);}AASCII65【11】。main(){chara,b;a='A'+'5'-'3';b=a+'6'-'2';printf("%d%c\n",a,b);}有以下程序intsub(intn){return(n/10+n%10);}main(){intx,y;scanf("%d",&x);y=sub(sub(sub(x)));printf("%d\n",y);}若运行时输入:1234<回车>,程序的输出结果是【12】。sstrcat()的功能是实现字符串的连接,即将t所指字符串复制到sefgh,函数调用后sabcdefgh。请填空。#include<string.h>voidsstrcat(char*s,char*t){intn;n=strlen(s);while(*(s+n)=【13】){s++;t++;};}【14】。#include<string.h>char*ss(char*s){char*p,t;p=s+1;t=*s;while(*p){*(p-1)=*p;p++;}*(p-1)=t;returns;}main(){char*p,str[10]="abcdefgh";p=ss(str);printf("%s\n",p);}【15】。intf(inta[],intn){if(n>=1)returnf(a,n-1)+a[n-1];elsereturn0;}main(){intaa[5]={1,2,3,4,5},s;s=f(aa,5);printf("%d\n",s);}【16】。structNODE{intnum;structNODE*next;};main(){structNODEs[3]={{1,'\0'},{2,'\0'},{3,'\0'}};*p,*q,*r;intsum=0;s[0].next=s+1;s[1].next=s+2;s[2].next=s;p=s;q=p->next;r=q->next;sum+=q->next->num;sum+=r->next->next->num;printf("%d\n",sum);}以下程序的功能是输出如下形式的方阵:1314151691011125 6 7 81 2 3 4请填空。main(){inti,j,x;for(j=4;j【17】;j--){for(i=1;i<=4;i++){x=(j-1)*4+【18】;printf("%4d",x);}printf("\n");}}rotateaN行Nb0a0b所指二维数组中其他数据不变。#defineN4voidrotate(inta[][N],intb[][N]){inti,j;for(i=0;i<N;i++){b[i][N-1]=【19】;【20】=a[N-1][i];}}第四章模拟试题全国计算机等级考试(二级)C语言模拟题一公共基础知识一、选择题下列关于栈的叙述正确的 栈是非线性结构 栈是一种树状结构C)栈具有先进先出的特征 D)栈具有后进先出的特征结构化程序设计所规定的三种基本控制结构 输入、处理、输出 树形、网形、环形C)顺序、选择、循环 D)主程序、子程序、函数结构化程序设计的一种基本方法是筛选法 递归法 C)归纳法 D)逐步求精法如果对一个关系实施了一种关系运算后得到了一个新的关系,而且新的关系中属性数少于原来关系中属性个数,这说明所实施的运算关系是: 选择 投影 C)连接 D)二、填空题N个数进行快速排序算法的平均时间复杂度是【1】在面向对象方法学中,直接反映了用户对目标系统的要求的模型是【2】软件测试方法中,黑盒测试个白盒测试法是常用的方法,其中黑盒测试法主要是用于测试【3】关系型数据库管理系统中存储与管理数据的基本形式是【4】C语言程序设计一、选择题下程序的输出结果是 main(){intn[3][3],i,j;for(i=0;i<3;i++)for(j=0;j<3;j++) for(i=0;i<2;i++)for(j=0;j<2;j++) n[i+1][j+1]+=n[i][j];printf("%d\n",n[i][j]);}14 B)0 C)6 D)值不确定指针s所指字符串的长 char*s="NameAddress";说法不合法 B)19 C)18 D)15(3)C语言中最简单的数据类型包括整型、实型、逻辑型 整型、实型、字符型C)整型、字符型、逻辑型 D)整型、实型、逻辑型、字符型为表示关系x大于等于y大于等于应使用C语言表达 A)(x>=Y)&&(Y>=z)B)(x>=Y)AND(y>=z)C)(x>=Y>=z)D)(x>=Y)&(Y>=z)下列对C语言字符数组的描述中错误的 字符数组可以存放字符串 字符数组中的字符串可以整体输入、输出C)可以在赋值语句中通过赋值运算符字符数组整体赋值D)不可以用关系运算对字符数组中的字符串进行比较以下说法中正确的 C语言程序总是从第一个定义的函数开始执行C函数中定义D)C语言程序中的main()函数必须放在程序的开始部分以下程序段的输出结果是 intx=3;do{printf("%3d",x-=2);}while(!(--x));A)1 B)30 C)1-2 D)死循环设有如下定义:char*aa[2]={"abcd","ABCD"};则以下说法中正确的 aa数组元素的值分别是和"ABCD"aa是指针变量,它指向含有两个数组元素的字符型一维数组aa4个字符的一维字符数组的首地址aa数组的两个元素中各自存放了字符'a'和'A'的地址设有以下定义:inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*prt)[3]=a,*p=a[0];则下列能够正确表示数组元素a[1][2]的表达式是 A)*(*prt+1)[2]) B)*(*(p+5))C)(*prt+1)+2 D)*(*(a+1)+2)以下程序的输出结果是 fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*P;p=(int*)malloc(sizeof(int));fut(&p,a);print("%",*p);}A)1 B)7 C)9 D)11二、填空题xint类型,请以最简单的形式写出与逻辑表达式!xc达式【1】下列程序的输出结果是【2】#include<stdio.h>#include<string.h>main(){charb[]="ABCDEFG";char*chp=&b[7];while(--chp>&b[0])putchar(*chp);putchar(′′);}下列程序的输出结果是【3】intast(intx,inty,int*cp,int*dp){*cp=x+y;*dp=x-y;}main(){inta,b,c,d;a=4;b=3;ast(a,b,&c,&d);print("%d%dn",c,d);}阅读程序:{charstr1[]="howdoyoudo",str2[10];char*p1=str1,*p2=str2;scanf("%s",p2);printf("%s",p2);printf("%s",p1);}运行上面的程序,输入字符串HOWDOYOUDO则程序的输出结果是【4】件中,用#作为结束输入的标志。请填空。#include<stdio.h>#include<string.h>main(){FILE*fp;charch,fname[10];printf("Inputthenameoffilegets(fname);gets(fname);if((fp=【5】)==NULL){printf("Cannotopen");exit(0);}printf("Enterdata");while((ch=getchar())!='#')fputc(【6】,fp);fclose(fp);}三、上机操作题改错题下列程序中,函数fun的功能是:先将字符串s中的字符按正序存放到t串中,然后将s中的字符按逆序连接到t串的后面。例如,当s中的字符串为ABCDE时,则t中的字符串应为ABCDEEDCBA。请改正一下程序中的错误,是它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。#include<stdio.h>#include<con

温馨提示

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

评论

0/150

提交评论