全国计算机等级考试二级C语言机试真题2008年9月

合集下载

2008年春浙江省计算机等级考试二级C笔试真题

2008年春浙江省计算机等级考试二级C笔试真题

2008年春浙江省高等学校计算机等级考试试卷(二级C)说明:(1) 考生应将所有试题的答案填写在答卷上。

其中试题1到试题6请在答卷上各小题正确选项的对应位置处填“√”;(2) 请将你的准考证号的后五位填写在答卷右下角的指定位置内;(3) 考试时间为90分钟。

试题1(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

【程序说明】输入1个正整数n(n>=2),输出菲波那契(Fibonacci)序列的前n项,每行输出6个数。

菲波那契(Fibonacci)序列:1,1,2,3,5,8,13,……,数列的前两个数都是1,从第三个数开始,每个数是前两个数之和。

运行示例:Enter n:101 123 5 813 21 34 55【程序】#include <stdio.h>main( ){int count, i, n, x1, x2, x;printf(”Enter n:”);scanf(”%d”,&n);x1 = x2 = 1;printf(”%6d%6d”,x1, x2);(1) ;for(i = 1; i <= n-2; i++){(2) ;printf(”%6d”, x);count++;if( (3) )printf(”\n”);x1 = x2;(4) ;}}【供选择的答案】(1) A、count = 2 B、count = 0C、count = 1D、count = -1(2) A、x = x1 – x2 B、x = x1 + x2C、x = x1D、x = 2(3) A、count / 6 == 0 B、count % 6 != 0C、count % 6 == 0D、count / 6 != 0(4) A、x = x1 +x2 B、x2 = x1C、x = x2D、x2 = x试题2(每小题3分,共12分)阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。

全国计算机等级考试 历年真题2008年9月计算机二级考试Access笔试试题

全国计算机等级考试 历年真题2008年9月计算机二级考试Access笔试试题

全国计算机等级考试历年真题2008年9月计算机二级考试Access笔试试题一、选择题(每题2分,共计70分)1.一个栈的初始状态为空。

现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是A)12345ABCDE B)EDCBA54321C)ABCDE12345D)54321EDCBAA B C D2.下列叙述中正确的是A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D)循环队列中元素的个数是由队头指针和队尾指针共同决定A B C D3.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是A)O(n)B)O(n2)C)O(log2n)D)O(nlog2n)A B C D4.下列叙述中正确的是A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C)顺序存储结构能存储有续表,链式存储结构不能存储有序表D)链式存储结构比顺序存储结构节省存储空间A B C D5.数据流图中带有箭头的线段表示的是A)控制流B)事件驱动C)模块调用D)数据流A B C D6.在软件开发中,需求分析阶段可以使用的同居是A)N-S图B)DFD图C)PAD图D)程序流程图A B C D7.在面向对象方法中,不属于“对象”基本特点的是A)一致性B)分类性C)多态性D)标识唯一性A B C D8.一间宿舍可以住多个学生,则实体宿舍和学生之间的联系是A)一对一B)一对多C)多对一D)多对多A B C D9.在数据管理技术发展的三个阶段中,数据共享最好的是A)人工管理阶段B)文件系统阶段C)数据库系统阶段D)三个阶段相同A B C D10.有三个关系R、S、和T如下:由关系R和S通过运算得到关系T,则所使用的运算为A)笛卡尔积B)交C)并D)自然连接A B C D11.Access数据库中,表的组成是A)字段和记录B)查询和字段C)记录和窗体D)报表和字段A B C D12.若设置字段的输入掩码为“####-######”,该字段正确的输入数据是A)0755-B)0755-abcdef C)abcd-D)####-######A B C D13.对数据表进行筛选操作,结果是A)只显示满足条件的记录,将不满足条件的记录从表中删除B)显示满足条件的记录,并将这些记录保存在一个新标中C)只显示满足条件的记录,不满足条件的记录被隐藏D)将满足条件的记录和不满足条件的记录氛围两个表进行显示A B C D14.在显示查询结果时,如果要将数据表的“籍贯”字段名,显示为“出生地”,可在查询设计视图中改动A)排序B)字段C)条件D)显示A B C D15.在Access的数据表中删除一条记录,被删除的记录A)可以恢复到原来位置B)被恢复为最后一条记录C)被恢复为第一条记录D)不能恢复A B C D16.在Access中,参照完整性规则不包括A)更新规则B)查询规则C)删除规则D)插入规则A B C D17.在数据库中,建立索引的主要作用是A)节省存储空间B)提高查询速度C)便于管理D)防止数据丢失A B C D18.假设有一组数据:工资为800元,职称为“讲师”,性别为“男”,在下列逻辑表达式中结果为“假”的是A)工资>800AND职称=“助教”OR职称=“讲师”B)性别=“女”OR NOT职称=“助教”C)工资=800AND(职称=“讲师”OR性别=“女”)D)工资>800AND(职称=“讲师”OR性别=“男”)A B C D19.在建立查询是,若要筛选出图书编号是“T01”或“T02”的记录,可以在查询设计视图准则行中输入A)“T01”or“T02”B)“T01”and“T02”C)in(“T01”and“T02”)D)not in(“T01”and“T02”)A B C D20.在Access数据库中使用向导创建查询,其数据可以来自A)多个表B)一个表C)一个表的一部分D)表或查询A B C D21.创建参数查询时,在查询设计视图准则行中应将参数提示文本放置在A){}中B)()中C)[]中D)<>中A B C D22.在下列查询语句中,与SELECT TAB1.*FROM TAB1WHERE InStr([简历],"篮球")<>0功能想通的语句是A)SELECT TAB1.*FROM TAB1WHERE TAB1.建立Like"篮球"B)SELECT TAB1.*FROM TAB1WHERE TAB1.建立Like"*篮球"C)SELECT TAB1.*FROM TAB1WHERE TAB1.建立Like"*篮球*"D)SELECT TAB1.*FROM TAB1WHERE TAB1.建立Like"篮球*"A B C D23.在Access数据库中创建一个新标,应该使用的SQL语句是A)Create Table B)Create IndexC)Alter Table D)Create DatabaseA B C D24.在窗体设计工具箱中,代表组合框的图标是A)B)C)D)A B C D25.要改变窗体上文本框空间的输出内容,应设置的属性是A)标题B)查询条件C)控件来源D)记录源A B C D26.在下图所示的窗体上,有一个标有“显示”字样的命令按钮(名称为Command1)和一个文本框(名称为text1)。

2008年秋江苏省二级考试C语言真题

2008年秋江苏省二级考试C语言真题

2008年 秋江苏省高等学校非计算机专业学生计算机基础知识和应用能力等级考试第二部分 C 语言程序设计一、选择题(10分)21.以下叙述中正确的是__D ________。

A .在编译时可以发现注释中的拼写错误B .C 语言程序的每一行只能写一条语句C .main(){}必须位于程序的开始D .C 语言程序可以由一个或多个函数组成22.以下选项中不能用作变量名的是_B_______。

A ._floatB . switchC . sumD . _12323.已知sizeof(int)的值为2,为将10!的值存储到变量f 中(10!=3628800),变量f 的类型应声明为A______。

A .long intB . intC . short intD . unsigned int24.若有声明“double x=3, c, *a=&x, *b=&c;”,则下列语句中错误的是____A ______。

A .a=b=0;B .a=&c, b=a;C . &a=&b;D .*b=*a;25.数学式b a2在C 程序中正确的表示形式为___D_______。

A .sqtr(a)/2*bB . sqtr(a)/2/bC . sqtr(a)/2bD . sqtr a /(2*b)26.已知有程序段“char str[][10]={“Aoyun ”,”Beijing ”},*p=&str[0][0];printf(“%s\n ”,p+10);”, 则执行printf 语句后输出为_____D_____。

A .BeijingB . AoyunC . ingD . ng27.以下声明中错误的是___C_______。

A .int a[2];B . int a[]={0,1};C .int a[3]=0;D . int a[3][4]={0};28.已知有结构定义和变量声明如下:struct student{char name[20];int score;struct student *h;}stu, *p; int *q;以下选项中错误的是__A________。

2008版南开100题二级C语言上机考试习题集答案(编程题)

2008版南开100题二级C语言上机考试习题集答案(编程题)
while((fabs(s))>=eps)
{
pi+=s;
t=n/(2*n+1);
s*=t;
n++;
}
pi=pi*2;
return pi;
}
第27题答案
void fun(int m,int*a,int*n)
{
int i,j=0; *n=0;
for(i=1; i<=m; i++)
if(i%7==0||i%11==0)
void fun(char*a,int n)
{
int i=0,k=0;
char*p,*t;
p=t=a;
while(*t)
t++;
t--;
while(*t=='*')
{
k++;
t--;
}
t++;
if(k>n)
{
while(*p&&p<t+n)
{
a[i]=*p;
i++;
p++;
}
a[i]='\0';
}
}
}
for(i=1; i<=M-2; i++)
{
s+=a[i][0];
s+=a[i][N-1];
}
return s;
}
第15题答案
unsigned fun(unsigned w)
{
unsigned t,s=0,s1=1,p=0;
t=w;
while(t>10)
{

全国计算机等级考试二级C语言笔试试题及答案解析

全国计算机等级考试二级C语言笔试试题及答案解析

全国计算机等级考试二级C语言笔试试题及答案解析试题一:选择题1. 下列关于C语言的说法,错误的是()A. C语言是一种高级语言B. C语言具有跨平台性C. C语言编译器可以直接生成机器码D. C语言是一种解释型语言答案:D解析:C语言是一种高级语言,具有跨平台性。

编译器将C语言源程序编译成目标代码,然后通过链接器生成可执行文件,这个过程生成的机器码可以被计算机直接执行,因此C语言不是解释型语言。

2. 以下哪个选项不是C语言的基本数据类型?()A. intB. charC. floatD. string答案:D解析:C语言的基本数据类型包括整型(int)、字符型(char)、浮点型(float)和双精度浮点型(double)。

string不是C语言的基本数据类型,而是由字符数组构成的一种自定义类型。

试题二:填空题1. 在C语言中,每个语句的结尾必须使用()符号。

答案:分号(;)解析:在C语言中,每个语句的结尾必须使用分号(;)作为结束符,表示一个语句的结束。

2. 以下程序的输出结果是()。

```c#include <stdio.h>int main() {int a = 5;int b = 3;printf("%d\n", a % b);return 0;}```答案:2解析:在C语言中,取模运算符(%)用于计算两个整数相除的余数。

在本题中,5除以3的余数为2,因此输出结果为2。

试题三:编程题1. 编写一个C程序,实现以下功能:从键盘输入10个整数,计算并输出这些整数的平均值。

```c#include <stdio.h>int main() {int i, num;float sum = 0.0, average;for (i = 0; i < 10; i++) {printf("请输入第%d个整数:", i + 1);scanf("%d", &num);sum += num;}average = sum / 10;printf("这10个整数的平均值为:%.2f\n", average);return 0;}```解析:本题考查了循环语句、输入输出函数等基本知识。

2008年上海计算机二级c试题含答案

2008年上海计算机二级c试题含答案
Void getResult(float a,float b)
{ float c;
c=a>b?a+b:a-b;
return c;
}
7.假定建立了如下图所示的链表结构,指针p指向一个新结点,写出将新结点插入到链表成为头结点的C语句(插入后指针head仍然指向链表头结点)
7
7
7
9
试题二(12分,每小题6分)
}
voidmain()
{
intp[ ]={-2,-23,-9,4,21,-1,-7,3,8,-1,-7,4,5,0};
第6页共7页
int s[100],n,i;
FILE*fp;
n=ptos((4));
fp=fopen(“C0.8TXT”,(5)); /*以写方式打开文件*/
for(i=0;i<n;i++)
for(i=2;i<=n-2;i++)
if(isprime(i)&&isprime((4))) /*n分解为两素数之和*/
printf(“%d=%d+%d\n”,n,i-n);
}
第5页共7页
试题六(15分,每个空格3分)
阅读下列问题描述和相应的程序,把应填入(n)处的内容写在答卷纸的对应栏内。
【问题描述】下面的函数ptos()用来复原压缩过的数据(解压缩),数组p存放压缩后的数据,数组s存放复原后的数据,函数返回复原后的数据个数。主函数main()调用函数ptos()进行数据复原,然后显示复原后的数据,同时以文本形式写入文件C08.TXT中。
【程序3.1】本程序中输入三个数,输出这三个数的和。
#1 void main()

2008年9月计算机二级真题及答案

全国计算机等级考试2008年9月计算机二级VB语言真题一、选择题(每题2分,共计70分)1.一个栈的初始状态为空。

现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是A)12345ABCDE B)EDCBA54321C)ABCDE12345D)54321EDCBA2.下列叙述中正确的是A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D)循环队列中元素的个数是由队头指针和队尾指针共同决定3.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是A)O(n)B)O(n2)C)O(log2n)D)O(nlog2n)4.下列叙述中正确的是A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C)顺序存储结构能存储有续表,链式存储结构不能存储有序表D)链式存储结构比顺序存储结构节省存储空间5.数据流图中带有箭头的线段表示的是A)控制流B)事件驱动C)模块调用D)数据流6.在软件开发中,需求分析阶段可以使用的同居是A)N-S图B)DFD图C)PAD图D)程序流程图7.在面向对象方法中,不属于“对象”基本特点的是A)一致性B)分类性C)多态性D)标识唯一性8.一间宿舍可以住多个学生,则实体宿舍和学生之间的联系是A)一对一B)一对多C)多对一D)多对多9.在数据管理技术发展的三个阶段中,数据共享最好的是A)人工管理阶段B)文件系统阶段C)数据库系统阶段D)三个阶段相同10.有三个关系R、S、和T如下:由关系R和S通过运算得到关系T,则所使用的运算为A)笛卡尔积B)交C)并D)自然连接11.在设计窗体时双击窗体的任何地方,可以打开的窗口是A)代码窗口B)属性窗口C)工程资源管理器窗口D)工具箱窗口12.若变量a未实现定义而直接使用(例如:a=0),则变量a的类型是A)Integer B)String C)Boolean D)Variant13.把圆周率的近似值3.14159存放在变量pi中,应该把变量pi定义为A)Dim pi As Integer B)Dim pi(7) As IntegerC)Dim pi As Single D)Dim pi As Long14.表达式2*3^2-4*2/2+3^2的值是A)30B)31C)49D)4815.以下不能输出“Program”的语句是A)Print mid("VBProgram"3,7)B)Print Right("VBProgram",7)C)Print Mid("VBProgram",3)D)Print Left("VBProgram",7)16.窗体上有一个名称为Frame1的框架(如图),若要把框架上显示的"Frame1"改为汉字“框架”,下面正确的语句是A)="框架"B)Frame1.Caption="框架"C)Frame1.Text="框架"D)Frame1.Value="框架"17.以下叙述中错误的是A)在通用过程中,多个形式参数之间可以用逗号作为分隔符B)在Print方法中,多个输出项之间可以用逗号作为分隔符C)在Dim语句中,所定义的多个变量可以用逗号作为分隔符D)当一行中有多个语句时,可以用逗号作为分隔符18.设窗体上有一个列表框控件List1,含有若干列表项。

(完整word版)全国计算机二级考试C语言(最全复习资料)

二级公共基础知识作为必考内容出现,出题形式为选择题前10道,占考试总分的10%。

考试其它比重:1、C语言程序的结构占总分1%2、数据类型及其运算占总分4%3、选择结构程序设计占比分的3%4、循环结构占比分的5%5、数组的定义和引用占比分的5%6、函数占比分的5%7、编译预处理占比分1%8、指针占比分的5%9、结构体占比分的3%10、位运算占比分的2%11、文件操作占比分的2%考试方式上机考试,时长120分钟单选题40分(含公共基础10分),操作题60分(包括程序填空题、程序修改题、程序设计题)第一部分 C语言知识复习资料第一章 C语言基本知识(90分)【考点1】C程序用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”。

源程序经编译后生成后缀名为“.obj”的目标文件,再把目标文件与各种库函数连接起来,生成“.exe”可执行文件。

C语言有三种基本结构:顺序结构、选择结构、循环结构。

【考点2】main函数又称主函数,是C程序的入口.main后面跟一对小括号和一对花括号,花括号括起来的部分称为main函数的函数体.一个C程序从main函数开始执行,到main函数体执行完结束,而不论main函数在整个程序中的位置如何。

每一个程序有且仅有一个main函数,其他函数都是为main函数服务的。

【考点3】存储形式计算机在电脑中保存数据是采用二进制形式,由0或1构成的二进制称为位(bit),八个位构成一个字节(Byte),1个Byte=8个bit。

二进制、八进制、十六进制转化为十进制采用乘法,十进制转化为二进制、八进制、十六进制采用除法.数据的存放位置就是它的地址。

【考点4】注释是对程序的说明,可出现在程序中任意合适的地方,注释从“/*"开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,注释不可以嵌套。

【考点5】书写格式每条语句的后面必须有一个分号,分号是语句的一部分。

一行内可写多条语句,一个语句可写在多行上。

2008年秋浙江省高等学校二级C考试试卷(1)

C、else if(mark>0)D、else if(mark<=60)
(4)A、scanf("%d",mark);B、scanf("%d",&mark);
C、;D、mark=getchar();
试题2(第小题3分,共12分)
【程序说明】
求1~999之间所有满足各位数字的立方之和等于它本身的数。例如153的秋位数字的立方和是13+53+33=153
main()
{ int j,k,s1,s2;
s1=s2=0;
for(j=0;j<=5;j++){
s1++;
for(k=1;k<=j;k++)
s2++;
}
printf("%d %d",s1,s2);
}
程序2
#include <stdio.h>
main()
{ int j,k,s1,s2;
s1=0;
for(j=1;j<=5;j++){
A、015B、50
C、55D、515
(14)程序2运行时。输出(14)。A、015B、50
C、55D、515
(15)程序3运行时。输出(15)。A、015B、50
C、55D、515
(16)程序4运行时。输出(16)。
A、015B、50
C、55D、515
试题5(第小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。
【程序】
程序1
#include <stdio.h>

2008至2012年计算机二级C真题详解

200809二级c真题一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)一个栈的初始状态为空。

现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后依次出栈,则元素出栈的顺序是________。

A)12345ABCDEB)EDCBA54321C)ABCDE12345D)54321EDCBA(2)下列叙述中正确的是________。

A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D)循环队列中元素的个数是由队头指针和队尾指针共同决定的(3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是________。

A)O(n)B)O(n2)C)O(logn)2n)D)O(nlog2(4)下列叙述中正确的是________。

A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C)顺序存储结构能存储有序表,链式存储结构不能存储有序表D)链式存储结构比顺序存储结构节省存储空间(5)数据流图中带有箭头的线段表示的是________。

A)控制流 B)事件驱动C)模块调用 D)数据流(6)在软件开发中,需求分析阶段可以使用的工具是________。

A)N-S图 B)DFD图C)PAD图 D)程序流程图(7)在面向对象方法中,不属于"对象"基本特点的是________。

A)一致性 B)分类性C)多态性 D)标识唯一性(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是________。

A)一对一 B)一对多C)多对一 D)多对多(9)在数据管理技术发展的三个阶段中,数据共享最好的是________。

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

全国计算机等级考试二级C语言机试真题2008年9月
(总分:100.00,做题时间:90分钟)
一、程序填空题(总题数:1,分数:30.00)
1.N个有序整数数列已放在一维数组中,给定的下列程序中,函数fun()的功能是:利用折半查找法查找整数m在数组中的位置。

若找到,则返回其下标值;反之,则返回“Not be found!”。

折半查找法的基本算法是:每次查找前先确定数组中待确定的范围:low和high(low<high),然后把m与中间位置(mid)中元素的值进行比较。

如果m的值大于中间位置元素中的值,则下一次的查找范围放在中间位置之后的元素中;反之,下次查找范围落在中间位置之前的元素中,直到low>high,查找结束。

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

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

[试题源程序]
#include <stdio.h>
#define N 10
int fun(int a[],int m)
int low=0, high=N-1, mid;
while(low<=high)
mid= (1) ;
if(m<a[mid])
high= (2) ;
eise
if(m>a[mid])
low=mid+1;
else
return(mid);
(3) (-1);
main()
int i, a[N]=(-3, 4, 7, 9, 13, 24, 67, 89, 100, 180), k, m;
printf("a数组中的数据如下: ");
for(i=0; i<N; i++);
printf("%d", a[i]);
printf("Enter m: ");
scanf("%d", &m);
k=fun(a, m);
if(k>=0)
printf("m=%d, index=%d/n", m, k));
else
printf("Not be found/n");
(分数:30.00)
填空项1:__________________ (正确答案:[1] (low+high)/2
[2] mid-1
[3] return)
解析:[解析] 填空1:根据题目的意思,这里应该是确定折半查找的中间位置,所以很明显应该填(low+high)/2。

注意,这个式子返回的是整型数据,即如果分子为7,则结果为3。

填空2:根据题目的意思,中间的元素值大时应该选择前半段进行下次查找,所以应该把mid前一位的下标赋值给high。

填空3:由算法可以看出,这里应该是所有转换完毕仍然没有找到满足条件的地方,即应该返回-1,所以使用关键字“remm”。

二、程序修改(总题数:1,分数:30.00)
2.下列给定程序中,是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。

函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。

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

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

[试题源程序]
#include<stdio.h>
#include<stdlib.h>
typedef struct aa
int data;
struct aa *next;
NODE;
fun(NODE *h)
int max=-1;
NODE *p;
/***********found************/
p=h;
while(p)
if(p->data>max)
max=p->data;
/************found************/
p=h->next;
return max;
outresult(int s, FILE *Pf)
fprintf(pf, "/nThe max in link: %d/n", s);
NODE *creatlink(int n, int m)
NODE *h, *p, *s, *q;
int i, x;
h=p=(NODE *)malloc(sizeof(NODE));
h->data=9999;
for(i=1; i<=n; i++)
s=(NODE *)malloc(sizeof(NODE));
s->data=rand()%m; s->next=p->next;
p->next=s; p=p->next;
p->next=NULL;
return h;
outlink(NODE *h, FILE *pf)
NODE *p;
p=h->next;
fprintf(Pf, "/nTHE LIST:/n/n HEAD");
while(P)
fprintf(pf, "->%d", P->datA); p=p->next;
fprintf(pf, "/n");
main()
NODE *head; int m;
head=cteatlink(12,100);
outlink(head, stdout);
m=fun(head);
printf("/nTHE RESULT"/n");
outresult(m, stdout);
(分数:30.00)
__________________________________________________________________________________________ 正确答案:((1)错误:p=h;
正确:p:h->next;
(2)错误:p=h->next;
正确:p=p->next;)
解析:[解析] 程序中使用while循环语句并结合结构指针p来找到数据域中的最大值。

错误1:P指向形参结构指针h的next指针,所以应改为:p=h->next;
错误2:p指向自己的下一个结点,所以应改为:p=p->next
三、程序设计(总题数:1,分数:40.00)
3.请编写函数fun(),它的功能是:判断字符串是否是回文?若是,函数返回1,主函数中输出:YES,否则返回0,主函数输出NO。

回文是指顺读和倒读都一样的字符串。

例如,字符串LEVEL是回文,而字符串12312就不是回文。

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

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

[试题源程序]
#include<stdio.h>
#define N 80
int fun(char *str)
main()
char s[N];
printf("Enter a string:")" gets(s);
printf("/n/n"); puts(s);
if(fun(s))
printf(" YES/n");
else
printf(" NO/n");
NONO();
NONO()
/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。

*/
FILE *rf, *wf;
int i ; char s[N];
rf=fopen("K://k06//24010001//in.dat", "r");
wf=fopen("K://k06//24010001//out.dat", "w");
for(i=0; i<10; i++)
fscanf(rf, "%s", s);
if(fun(S))
fprintf(wf, "%s YES/n", s);
else
fprintf(wf, "%s NO/n", s);
fclose(rf);
fclose(wf);
(分数:40.00)
__________________________________________________________________________________________ 正确答案:(int fun(char *str)
{
int i, n=0, fg=1;
char *p=str;
while(*p)
{
n++;
P++;
}
for(i=0; i<n/2; i++)
if(str[i]==str[n-1-i]);
else
{
fg=0;
break;
}
return fg;
})
解析:[解析] 本题的设计思路是:(1)定义一个int型变量flag用做返回值,定义一个字符指针代替原串遍历,求字符串的长度;(2)利用循环及if条件语句判断字符串首尾对应字符是否相等;(3)如果为回文数,修改flag的值;(4)返回flag。

相关文档
最新文档