高级语言程序设计C(2012级B卷)答案

合集下载

高级语句程序设计(C)经典试题及答案讲解

高级语句程序设计(C)经典试题及答案讲解

高级语句程序设计(C++)经典试题一、单项选择题1、在一个C++程序中,main函数的位置()。

①必须在程序的开头②必须在程序的后面③可以在程序的任何地方④必须在其它函数中间2、一个C++程序的执行是从()。

A、本程序的main函数开始,到main函数结束B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序main函数结束3、在计算机语言中,以下描述正确的是:A、高级语言较低级语言更远离对硬件的直接操作。

B、高级语言较低级语言更接近对硬件的直接操作。

C、C++是世界上第一种计算机高级语言。

D、C语言是由美国的微软公司研制成功的。

4、C++源程序的实现一般要经过三个步骤,其中不包括:A、编辑B、维护C、编译D、运行5、设i=1,j=2,则表达式i++ +j的值为()。

① 1 ② 2 ③ 3 ④6、设i=1,j=2,则表达式++i+j的值为()。

① 1 ② 2 ③ 3 ④7、执行下列语句后,x的值是()。

int x,y;x=y=1; ++x||++y;①不确定② 0 ③ 1 ④ 28、已知x=5,则执行语句x+=x-=x×x; 后,x的值为()。

① 25 ② 40 ③ -40 ④ 209、常量是在程序中:A、经常被使用的量。

B、最高级的量。

C、按固定周期使用的量。

D、按固定值使用的量。

10、有如下程序段:int a=14,b=15,x;char c=’A’;x=(a&&b)&&(c<’B’);执行该程序段后,x的值为()。

① ture ② false ③ 0 ④ 111、下面程序的输出结果是()。

#include <iostream>using namespace std;int main( ){ int a=6,b=6;if(a>5)a-=1;b+=1;elsea+=1;b-=1;cout<<”a=”<<a<<endl;cout<<”b”<<b<<endl;return 0; }① 5 7 ② a=5 b=7 ③ a=5 b=6 ④编译时出错12、下面程序的输出结果是()#include <iostream>using namespace std;int main( ){ int a=6,b=6;if(a>5){a-=1;b+=1;}else{a+=1;b-=1;}cout<<”a=”<<a<<endl;cout<<”b=”<<b<<endl;return 0; }① 5 7 ② a=5 b=7 ③ a=5 b=6 ④ a=6 b=513、下面程序的输出结果是()#include <iostream>using namespace std;int main( ){ int x=6,y=8;if(x++<6)cout<<++y<<endl;if(x>6)cout<< --y<<endl;elsecout<<y++<<endl;return 0;}① 8 ② 7 ③ 9 ④编译时出错14、下面程序的输出结果是()#include <iostream>using namespace std;int main( ){ int x=6,y=8;if(++x<6)cout<<++y<<endl;elsecout<<y++<<endl;if(x>6)cout<< --y<<endl;return 0; }① 8 8 ② 9 7 ③ 7 8 ④编译时出错15、下面程序的输出结果是()#include <iostream>using namespace std;f(int a){ int b=0;static int c=3;b++;c++;return (a+b+c);}int main( ){ int a=2,i;for(i=0;i<3;i++)cout<<f(a)<<endl;return 0;}① 7 8 9 ② 7 7 7 ③ 7 10 13 ④ 7 9 1116、下面程序的输出结果是()#include <iostream>using namespace std;void fun(int x,int y,int z){ z=x×x+y×y; }int main( ){ int z=68;fun(5,2,z);cout<<z;return 0; }① 0 ② 29 ③ 68 ④无定值17、下面程序的输出结果是()#include <iostream>using namespace std;int fun(int a,int b){ return (++a×b++); }int main( ){ int x=3,y=4,z=5,r;r=fun(fun(x,y),z);cout<<r<<x<<y<<endl;}① 85 3 4 ② 60 3 4 ③ 126 4 5 ④ 85 4 518、下面的程序中,当输入4、2时,其输出结果是()#include <iostream>using namespace std;long fib(int n){ if(n>2) return (fib(n-1)+fib(n-2));else return (n); }int main( ){ int i;cout<<”请输入一个整数:”;cin>>i; cout<<endl;cout<<fib(i)<<endl;return 0; }① 5 1 ② 4 2 ③ 5 2 ④ 6 219、下面程序的输出结果为()#include <iostream>using namespace std;unsigned func(unsigned num){ unsigned d=1,k;do {k=num%10;num/=10;}while(num);return (k); }int main( ){ unsigned n=26;cout<<func (n);return 0; }① 2 ② 4 ③ 6 ④ 520、下面程序的输出结果为()#include <iostream>using namespace std;func (int a,int b){ int c;c=a×b;return (c );}int main( ){int x=6,y=7,z=8,r;r=func((x--,y,x×y),z--);cout<<r;return 0; }① 294 ② 245 ③ 280 ④ 41621、执行语句int i=10,*p=&i;后,下面描述错误的是()。

2012秋C程序设计试卷+答案

2012秋C程序设计试卷+答案
voidmain()
{ int t,d;
float p;
scanf("%d,%f",&t,&p);
switch(04)){
case 0: d=0;break;
case 1: d=2;break;
case 2:
case 3:d=5;break;
case 4:
case 5:
case 6: d=8;break;
C)有逻辑类型,但没有构造类型D)没有逻辑类型也没有构造类型9;\"'B)'\031' C)'\b' D)'\0xa5'
24、已知梯形的上底为a,下底为b,高为h,用C语言写的正确的面积公式是()。
A)1/2*(a+b)*h B)1.0/2*(a+b)*h C)1.0/2.0(a+b)h D)1.0\2*a+b*h
B)main函数可以在任何地方出现。一个C程序必须有且仅有一个main函数
C)main函数必须出现在所有函数之后。一个C程序只能有一个main函数
D)main函数出现在固定位置。一个C程序可以有多个main函数
22、C语言中,下列叙述正确的是()。
A)没有逻辑类型,但有构造类型B)既有逻辑类型也有构造类型
34、若有int s[4]={1,2,3,4};,则s[s[0]+2*s[2]-s[3]]的值是()
A)1 B)2 C)3 D)4
35、C语言程序的三种基本结构是()
A)嵌套结构、递归结构、循环结构B)递归结构、循环机构、转移结构
C)顺序结构、选择结构、循环结构D)循环结构、转移结构、顺序结构
36、若函数的调用形式如下:

C语言程序设计2012 (含答案)(1)

C语言程序设计2012 (含答案)(1)

12年的试题比13年的难很多,笔者费了一早上加一中午才全部做完。

如果对答案有疑问或者觉得哪里有问题请联系我qq553915228 李添锐一、写出下列程序段的运行结果(40分)1、(4分)char a='D'-'A',b='\010',c,d;c = ++a || b++;d = a-- && b--;printf("%d,%d,%d,%d",a,b,c,d);输出:3,7,1,12、(4分)char a=0x123FFF;printf("%d,",a);a=127;printf("%d",++a);输出:-1,-1283、(4分)int a=5,y=0;int main(){while(a=5){a+=5;y+=a;printf("%d,%d,", a, y);if (y>18) break;}return 0;}输出:10,10,10,204、(4分)int i=1, j=2, k=4;printf("%f,", i-(float)j/k);printf("%d,", j>1<k);k+=5/10*i ;printf("%d,",k);printf("%d", (j=1)?2:0);输出:0.500000,1,4,25、(4分)int a[][2]={(1,2),(3,4)};printf("%d",a[0][1]);输出:46、(4分)int ave(int x, int y){return (x+y)/2;}int main(){int a=1, b=2, c=3;printf("%d\n",ave(ave(a,b), ave(b,c)));return 0;}输出:1(\n)7、(4分)void exc(int x, int *y){int t;t=x; x=*y; *y=t;}int main(){int a=5,b=8;exc(a,&b);printf("a=%d,b=%d",a,b); return 0;}输出:a=5,b=58、(4分)char str[10]="believe";char *p=str;*(str+5)=0;puts(2+p);输出:lie9、(4分)struct pt{int x; int y;} p[2]={1,3,5,7}; printf("%.3f",p[1].y/(float)p[0].y+ p[1].x/p[0].x);输出:7.33310、(4分)FILE *fp;char c=49;int d=50, e;fp=fopen("a.tmp","w"); fprintf(fp,"%c%d", c, d); fclose(fp);fp=fopen("a.tmp","r"); fscanf(fp,"%d",&e); printf("%d\n",e);输出:150(\n)二、改错题(20分)以下程序实现:从键盘输入若干个学生的成绩数据,将这些数据存到磁盘文件上,并求这些学生的最高成绩。

2012年3月全国计算机等级考试《二级VisualBasic语言程序设计》真题及答案

2012年3月全国计算机等级考试《二级VisualBasic语言程序设计》真题及答案

2012年3月全国计算机等级考试《二级VisualBasic语言程序设计》真题及答案2012年3月全国计算机等级考试二级笔试试卷Visual Basic 语言程序设计(考试时间90分钟,满分100分)一、选择题(每小题2分,共70分)下列各题A )、B )、C )、D )四个选项中,只有一个选项是正确的。

请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

(1)下列叙述中正确的是A )循环队列是队列的一种链式存储结构B )循环队列是队列的一种顺序存储结构C )循环队列是非线性结构D )循环队列是一种逻辑结构(2)下列叙述中正确的是A )栈是一种先进先出的线性表B )队列是一种后进先出的线性表C )栈与队列都是非线性结构D )以上三种说法都不对(3)一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为A )16B )10C )6D )4(4)在下列模式中,能够给出数据库物理存储结构与物理存取方法的是A )外模式B )内模式C )概念模式D )逻辑模式(5)在满足实体完整性约束的条件下A )一个关系中应该有一个或多个候选关键字B )一个关系中只能有一个候选关键字C )一个关系中必须有多个候选关键字D )一个关系中可以没有候选关键字(6)有三个关系R 、S 和T 如下:R ST 则由关系R 和S 得到关系T 的操作是A )自然连接B )并C )交D )差(7)软件生命周期中的活动不包括A )市场调研B )需求分析C )软件测试D )软件维护(8)下面不属于需求分析阶段任务的是A )确定软件系统的功能需求B )确定软件系统的性能需求C )需求规格说明书评审 A B Ca 1 2b 2 1c 3 1 A B C a 1 2d 2 1 A B C b 2 1 c 3 1整理:陈远跃D)制定软件集成测试计划(9)在黑盒测试方法中,设计测试用例的主要根据是A)程序内部逻辑B)程序外部功能C)程序数据结构D)程序流程图(10)在软件设计中不适用的工具是A)系统结构图B)PAD图C)数据流图(DFD图)D)程序流程图(11)以下合法的VB变量名是D)x*y A)case B)name10 C)t-name(12)设x是小于10的非负数。

高级语言程序设计习题(最新版带答案)

高级语言程序设计习题(最新版带答案)

第1章C语言概述习题1.单项选择题(1)C语言是在B语言的基础上产生的。

A.AB.BC.DD.E(2)在C语言中,每个语句必须以D结束。

A.回车符B.冒号C.逗号D.分号(3)标识符和关键字间,要用C隔开。

A.回车符B.冒号C.空格D.分号(4)用C语言编写的源文件经过编译,若没有产生编译错误,则系统将(B)。

A.生成可执行目标文件B.生成目标文件C.输出运行结果D.自动保存源文件(5)下列说法中正确的是(B)。

A.由于C源程序是高级语言程序,因此一定要在TC软件中输入B.由C源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入C.由于C程序是高级语言程序,因此输入后即可执行D.由于C程序是高级语言程序,因此它由命令组成(6)下列说法中正确的是(A)。

A.C语言程序由主函数和0个或多个函数组成B.C语言程序由主程序和子程序组成C.C语言程序由子程序组成D.C语言程序由过程组成(7)下列说法中错误的是(D)。

A.主函数可以分为两个部分:主函数说明部分和主函数体B.主函数可以调用任何非主函数的其他函数C.任何非主函数可以调用其他任何非主函数D.程序可以从任何非主函数开始执行2.填空题(1)C语言只有32个关键字和9种控制语句。

(2)C语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。

(3)每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。

(4)在C语言程序中允许出现的字符集是ASCII码字符集。

(5)C语言的程序中有特殊含义的英语单词称为保留字。

(6)C语言标识符的长度是前8位有效。

(7)C语言中,标识符的定义规则是以字母或下划线为开头。

(8)C语言程序的注释可以出现在程序中的任何地方,它总是以/*符号作为开始标记,以*/符号作为结束标记。

第2章数据类型运算符和表达式习题1.单项选择题(1)以下选项中,正确的C语言整型常量是D。

高级语言程序设计习题及答案

高级语言程序设计习题及答案

习题一1-1 Pascal语言的程序结构由哪几部分组成?试述各部分的构成形式和作用。

1-2 Pascal基本字符集有哪些成分构成?Pascal的保留字是什么?1-3 Pascal语言中标识符是怎样构成的?下列字符串哪些是正确的Pascal标识符?哪些是错误的?为什么?A5B,5H4,PEL,1,A31,x﹡y,AB,A + B,$500,G1(x),xyz,E-10,VAR1-4 下列数据哪些是整数?哪些是实数?哪些是非法的(假设计算机字长为32位)?256 2.54 25E+6 3.75E6 0.15E-61.2E70 1E-15 -673 E8 4,7345.7E-6.6 0 58989 -73451 E-31-5 下列哪些常量定义是正确的?CONSThvalue=200;lvalue=0 OR 1 OR 2;firstchar=’a’;t=true;b=true OR false;1-6 假定已作了下述说明:CONSTgap=’’;VARm,n:integer;a,b:real;p,q:boolean;c1,c2:char;指出下列每一语句是否有效,并说明理由:⑴m:=trunk(b)+a⑵p:=m+n⑶read(c1,c2,’’)⑷c1:=gap⑸p:=q AND (ord(c1)<>’a’)⑹m:=n MOD a⑺‘c1’ :=’c2’⑻c2:=chr(‘a’)⑼m:=m-ord(‘0’)⑽writeln(a,p,m,n,q,q,b)⑾ n:=a-trunc(a)⑿b:=2.99*109⒀a:=m/n⒁b:ord(c1)+ord (c2)1-7 已知变量有下面指定的值:a=7,b=-6,c=30,d=10.8600,e=1E3,f=’*’,g=true求下面表达式的值:a+b DIV trunc(d)+3①d-0.75/(e+140.0)*70.0②sqrt(abs(b-a)+succ(ord(f))③chr(10* a MOD sqr(b))④NOT ((a>=b) AND g)⑤(ord(b) OR (sqr(b)>e)) AND (g AND NOT(abs(b)<>6))1-8 已知有如下说明VARp,q,r,s:Boolean;k:integer;试写出下列每一表达式的类型,如能确定,请写出它们的值。

《高级语言程序设计(C)》期末考试试题

《高级语言程序设计(C)》期末考试试题

《高级语言程序设计(C)》期末考试试题一、选择题(本题共20道小题,共40分。

)1. 设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是A)把x和y按从大到小排列 B)把x和y按从小到大排列C)无确定结果 D)交换x和y中的值2. 下面程序的输出是void prtv(int *x){ printf("%d\n", ++(*x));}main(){ int a=25;prtv(&a);}A) 23 B) 24C) 25 D) 263. int x=10, y=20, z=30;if(x>y) z=x; x=y; y=z;以上语句执行后x, y, z的值是A) x=10,y=20,z=30B) x=20,y=30,z=30C) x=20,y=30,z=10D) x=20,y=30,z=204. 设有以下宏定义:#define N 3#define Y(n) ((N+1)*n)则执行语句:z=2 *(N+Y(5+1))后,z的值为A)出错 B)42 C)48 D)545. 逻辑运算符两侧运算对象的数据类型是()。

A) 只能是0或1B) 只能是0或非0正数C) 只能是整型或字符型数据D) 可以是任何类型的数据6. 当执行以下程序段时x=-1;do { x=x*x;}while(!x);A)循环体将执行一次 B)循环体将执行两次C)循环体将执行无限次 D)系统将提示有语法错误7. int x=3;do{ printf("%3d",x-=2);}while(!(--x));以上程序段的输出结果是A) 1 B) 3 0 C) 1-2 D) 死循环8. main(){int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); }以上程序段的输出结果是A)k=11,k=12,k=11 B)k=11,k=13,k=13C)k=11,k=013,k=0xb D)k=11,k=13,k=b9.以下程序的输出结果是()。

高级语言程序设计C(2012级A卷)答案

高级语言程序设计C(2012级A卷)答案

程序设计基础1(2012级计科A卷)答案一、简答题(单选,每题5分,共15分)1、什么是内存泄漏?如何防止?(5分)答:所谓内存泄漏是指:应用程序在必要时使用malloc或calloc函数向操作系统申请了内存空间,但在使用完毕后没有使用free函数及时归还给操作系统。

该现象称之为内存泄漏。

防止内存泄漏的方法就是:需要时申请内存,不需要时及时free.2、带参数的宏与函数有什么区别?(5分)答:(1)、函数调用要计算实参表达式的值;而宏替换不计算;(2)、函数调用是在程序运行时完成,而宏替换是在编译之前完成。

(3)、函数定义中的实参与形参均有类型说明;而宏替换没有;(4)、函数调用使程序运行时间加长,而宏替换使源代码加长。

3、文本文件与二进制文件有何区别?为什么说文件使用完后要及时关闭?(5分)答:文本文件是ASCII码文件,而二进制文件是内存印象文件。

C语言使用的是带缓冲的文件系统,如果文件使用后不及时关闭,会造成滞留在缓冲区的内容由于意外事故(比如系统掉电)而丢失。

从而造成不可预料的后果。

二、按要求完成下列各题(共40分)1~10:CDBCD AACBD11~20:DADDC DCBAD三、程序填空题(每空2分,共20分)【1】8 4【2】fun(a,4)+fun(b,4)-fun(a+b,3);【3】j<=i【4】a[i][j]=a[j][i]【5】*t++【6】efgh【7】6【8】3*sizeof(double)【9】2002Shangxian【10】a=1.0;b=1.0;s=1.0;四、下列程序已标上行号,请指出并改正程序中的错误。

(共6分)注:不得增加或删除程序行,也不能更改程序结构。

10个学生5门课,下面的程序从文件f1.dat读入所有学生的各课成绩,计算出每个学生的总分,并按总分降序的次序将每个学生名次、各课得分及总分输出到文件f2.dat。

提示: 为了避免排序时可能要交换s[k]和s[j][k],程序另引进数组ord[],改上述交换为ord和ord[j]的交换。

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

程序设计基础1(2012级计科B卷)答案一、简答题(单选,每题5分,共15分)1、简述一个有效的算法应该具备哪些特点?(5分)答:有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性。

2、何谓全局变量?何谓局部变量?当它们同名时编译器如何处理?分析使用全局变量的优劣。

(5分)答:所谓全局变量:函数外面定义的变量称之为全局变量。

函数内部定义的变量称之为局部变量。

当它们同名时对局部变量的访问屏蔽了对同名的全局变量的访问。

全局变量的使用,虽然丰富了函数与函数之间传递信息的手段,但是也违背了模块之间强内聚、弱耦合的程序设计原则。

所以,建议程序员尽量避免在程序设计中使用全局变量。

3、何谓函数原型? 简述函数调用的最基本的条件?何谓外部函数?何谓内部函数?(5分)答:函数原型即为对函数的说明。

函数调用最基本的条件是:函数要有定义,同时必须满足先定义后应用的原则,如果是系统库函数还必须包含其相应的头文件。

外部函数是:不仅能被本函数所在源程序文件中的函数所调用的,同时,还能被同一程序的别的源程序文件中的函数所调用。

内部函数:只能被本函数所在源程序文件中的函数所调用的函数,在定义时使用”static”关键字。

二、选择题(每题2分,共20分)1.已知int x=1,y=2,z=3;则z+=x>y?++x:++y的值是(D)A,2 B,4 C,3 D,62.已知int a[]={10,9,8,7,6},*p=a;则*(p+1)*(p+2)[2]的值是(C)A,72 B,80 C,54 D,有语法错误3.已知int i,j;表达式(j=i=5,i=j<=5+i>=3<=5)的值是(A)A,1 B,5 C,3 D,04.从计算机所用资源(时间和空间)角度分析,宏与函数的主要区别是(B)A,宏的使用节省了存储空间,函数消耗了时间;B,宏的使用耗费了存储空间,函数消耗了时间;C,宏的使用耗费了存储空间,函数节省了时间;D,宏的使用节省了存储空间,函数节省了时间;5.一维指针数组名作为实参,若有以下说明:int *p[5];....sub(p);则sub函数中对应的形参可以是(D)A. sub(int *p[5]);B. sub(int *p[]);C. sub(int **p);D. 以上答案都正确。

6.C语言函数中的形参和在函数中定义的变量,都是在调用该函数时系统会给他们分配存储空间,在函数调用结束时就释放他们所占的空间,该说法(A)A、错误B、正确union{int n[3];char ch ;float f;} a;如果a.n[0]的地址为:158,则a.ch和a.f的地址分别为(A)A、158,158B、164,165C、159,160D、170,1718.程序的3种基本控制结构是(C)A、顺序,转移,选择;B、选择,I/O, 递归;C、重复,选择,顺序;D、重复,递归,子程序。

9.程序段:int a, b;scanf(“%d%d”,&a,&b);c=5*a+b;if(c= =0)a=1;elsea=1/c+1/b;保证该程序段运行不出错的必要条件是(C)A、b>0B、a>0&&b>0C、b!=0D、c!=0&&b!=010.在进行文件操作时,写文件的一般含义是(B)A、将磁盘中的信息存入计算机CPU;B、将计算机内存中的信息存入磁盘;C、将计算机CPU中的信息存入磁盘;D、将磁盘中的信息存入计算机内存。

三、阅读程序,写出输出结果(共50分)1.写出下列程序的输出结果(5分)int a=1;main(){int a;for(a=1;a<10;a++){sub(a++);}sub(int a){a=a*a;return;}答案:2 4 6 8 102.写出下列程序的输出结果(5分) f(int x ,int y){int r;if(y= =1) r=x;else r=f(x,y-1)+x;return r;}main(){int a=6,b=5;printf(“%d”,f(a,b));}答案:303.写出下列程序的输出结果(5分) func(int *s,int *y){static int t=3;*y=s[t];t--;}main(){int a[]={10,20,30,40},i,x=0;for(i=0;i<4;i++){func(a,&x);printf(“%d”,x);}printf(“\n”);}答案:40 30 20 104.写出下列程序的输出结果(5分) int sum1(int n){int p=0,s=0,i;for(i=1;i<n;i++){if(i%2) continue;s+=p+=i;}return s;}main(){printf(“%d\n”,sum1(10));}答案:405.写出下列程序的输出结果(6分)double x,y,z;double f(),g(),t();main(){x=5.0;y=t(x,f);z=t(x,g);printf(“y=%f z=%f\n”,y,z);}double t(double a,double (*f)()){return (*f)(a+a);}double f(double x){return 3.0*x;}double g(double x){return 3.0+x;}答案:y=30.00000 z=13.000006.写出下列程序的输出结果(8分)void f(int i,char *cp){for (;i;i--)printf(“%c”,*cp++);}main(){char a[][3]={“ABC”,“DEF”,“GH”};char *p;p=a[0];f(1,p++);f(1,p++);f(1,p++);prin tf(“\n”);p=a[1];f(3,p++);f(2,p++);f(1,p);printf(“\n”); printf(“%s\n”,a[0]);}答案:ABCDEFEFFABCDEFGH7.写出下列程序的输出结果(8分)#include “stdio.h”main(){char *f,*a;int i,j;f= “%11.2s”;a= “******”;printf(“\n”);for(i=0;i<6;i++){*(f+2)=…6‟- i ;printf(f,a);if(i= =0) printf (“*\n”);else if (i= =5) printf(“***********”);else {for(j=0;j<2*i-1;j++) printf(“ ”);printf(“**\n”);}}}答案: ***** **** **** **** ***************8.写出下列程序的输出结果(8分)sub(int s,int m,int n,char st[]){int p,q,t;t=st[s];p=s;while(1){q=(p+m)%n;if(q= =s) break;st[p]=st[q];p=q;}st[p]=t;}char b[]= “0123456789”;main(){sub(1,2,10,b);puts(b);}答案:0 3 2 5 4 7 6 9 8 1四、下列程序已标上行号,请指出并改正程序中的错误。

(共5分)注:不得增加或删除程序行,也不能更改程序结构。

10个学生5门课,下面的程序从文件f1.dat读入所有学生的各课成绩,计算出每个学生的总分,并按总分降序的次序将每个学生名次、各课得分及总分输出到文件f2.dat。

提示: 为了避免排序时可能要交换s[k]和s[j][k],程序另引进数组ord[],改上述交换为ord和ord[j]的交换。

1. # include “stdio.h”2. int s[10][7];3. main()4. {int i,j,sum,ord[10],t;5. FILE *fp;6. if((fp=fopen(“wb”, “f1.dat”))= =NULL) 改为if((fp=fopen(“f1.dat”, “rb”))= =NULL)7. {printf(“can‟t open file %s \n”, “f1.dat”);8. exit(1);}9. for(i=0;i<10;i++)10.{fread(fp,2,6,s); 改为fread(s,2,6,fp]);11.sum=0;12.for(j=1;j<=5;j++)13.sum=sum+s[j];14.s[6]=sum;15.ord=i;16.} 改为fclose(fp);}17.for(i=0;i<9;i++)18.for(j=i+1;j<10;j++)19.if(s[6]<s[j][6])20.{t=ord; ord=ord[j];ord[j]=t;}21.fp=fopen(“rb”, “f2.dat”);改为.fp=fopen(“f2.dat”, “wb”);22.for(i=0;i<10;i++)23.{s[0]=i+1; 改为s[0]=ord;24.fwrite(fp,2,7,s); }改为fwrite(s,2,7,fp);}25.fclose(fp);26.}五、编程题(共10分)说明:按各题要求编程,否则不给分。

1、编程序实现函数sort,完成对数组进行排序。

其函数原型声明如下:Sort(int *p_array, int length);注:p_array为传递给函数的数组首元素的指针,length为数组中的元素个数。

2、编程序实现函数copy,完成把源字符串复制到目标字符串。

其函数原型声明如下:copy(char *p_target, char *p_source);注:p_target,为目标字符串的指针;p_source为源字符串的指针。

答案:1、程序如下:Void Sort(int *p_array, int length){int i, j, k, temp;for(i=0;i<length-1;i++){K=i;For(j=i+1;j<length;j++)if( p_array[j]< p_array[k] )k=j;}if(i!=k){temp= p_array[i];p_array[i]= p_array[k];p_array[k]=temp;}}2、程序如下:Sort(char *p_target, char *p_source){While( * p_target++=*p_source++);}。

相关文档
最新文档