C++语言程序设计试卷A(软件)以及答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1页共6页华东交通大学2005—2006学年第一学期考试卷承诺:我将严格遵守考场纪律,知道考试违纪、作弊的严重性,还知道请他人代考或代他人考者将被开除学籍和因作弊受到记过及以上处分将不授予学士学位,愿承担由此引起的一切后果。专业班级学号学生签名:试卷编号:(A)卷C语言程序设计课程课程类别:必、限、任闭卷()、开卷(范围)():题号一二三四五六七八九十总分计分人签名题分100得分考生注意事项:1、本试卷共页,总分100分,考试时间120分钟。2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。一:选择题:(每题2分,共30分)1.合法的标识符是:A。(A)a_b(B)a$(C)a+b(D)2a2.下面程序段____D_____。for(t=1;t=100;t++){cinx;if(x0)continue;coutt;}(A)当x0时整个循环结束(B)当x=0时什么也不输出(C)printf函数永远也不执行(D)最多允许输出100个非负整数3.设a、b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是(D)。(A)‘a’&&’b’(B)a=b(C)c=b||b+c&&b-c(D)a=b+c&&c=a+b4.若有inta;则表达式语句a+=a-=a*a;等价于下列哪组表达式语句(D)。(A)+a;a*a;(B)a=a+a;a=a-a*a;(C)a=a+a-a*a;(D)a=a-a*a;a=a+a;5.判断char型变量c1是否为小写字母的正确表达式为______B___。(A)‘a’=c1=‘z’(B)(c1=a)&&(c1=z)(C)(‘a’=c1)||(‘z’=c1)(D)(c1=‘a’)||(c1=‘z’)6.若有以下的定义:chara;intb;floatc;doubled;则表达式a*b+d-c值的类型为:D(A)float(B)int(C)char(D)double得分评阅人第2页共6页7.C++源程序文件的缺省扩展名为_____A______。(A).cpp(B).exe(C).obj(D).lik8.在每个C++程序中都必须包含有这样一个函数,该函数的函数名__A____。(A)main(B)MAIN(C)name(D)function9.在下面的一维数组定义中,哪一个有语法错误___C_______(A)inta[]={1,2,3}(B)inta[10]={0}(C)inta[](D)inta[5]10.在下面的函数声明中,存在着语法错误的是____D______(A)voidBC(inta,int)(B)voidBD(int,int)(C)voidBE(int,int,intb)(D)voidBF(intx;inty)11.执行以下程序后的输出结果为(B)。viodfun(inta,intb,intc){a=4;b=5;c=6;a=b+c;b=c+a;c=a+b;}main(){intx=10,y=20,z=30;fun(x,y,z);coutx’,’y’,’zendl;}(A)30,20,10(B)10,20,30(C)11,17,28(D)4,5,612.下面的哪一个保留字不能作为函数的返回类型?C(A)void(B)int(C)new(D)long13.给出以下定义:charx[]=abcdefg;chary[]={'a','b','c','d','e','f','g'};则正确的叙述为(C)。(A)数组X和数组Y等价(B)数组X和数组Y的长度相同(C)数组X的长度大于数组Y的长度(D)数组X的长度小于数组Y的长度14.以下叙述中不正确的是(D)。(A)在不同的函数中可以使用相同名字的变量(B)函数中的形式参数是局部变量(C)在一个函数内定义的变量只在本函数范围内有效(D)在一个函数内的复合语句中定义的变量在本函数范围内有效15.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p指数据的地址大_____C___个字节。(A)1(B)2(C)4(D)8二:填空题(每空2分,共30分)1.执行“cout143‘+’18‘=’143+18endl;”语句后得到的输出结果为__143+18=161____。2.执行“coutchar(‘b’+2)endl;”语句后得到的输出结果为__d____。得分评阅人第3页共6页3.已知‘A’~‘Z’的ASCII码为65~90,当执行“charch=16*5+2;coutchendl;”语句序列后,得到的输出结果为__R____。4.定a=5,则条件表达式“a==0?10:20”的值为__20____5.算术表达式对应的C++表达式为:__(x*y*y)/(3*a)+4*b-1_________。6.请补充下列程序中的空白处,使其能输出下图所示的图形。#defineM10#includestdio.hmain(){○1inti,j,k;for(i=0;i6;i++){coutendl;for(j=0;j=M/2-i;j++)cout;for(k=0;k=○22*i;k++)cout*;}for(i=0;i=5;i++){○3coutendl;for(j=0;○4j=i;j++)cout;for(k=0;○5k=M-2*ik++)cout*;}}7.以下程序实现:输入三个整数,按从大到小的顺序进行输出。main(){intx,y,z,c;cinxyz;if(______○1_yz____){c=y;y=z;z=c;}if(_______○2_xz____){c=x;x=z;z=c;}if(_______○3xy______){c=x;x=y;y=c;}coutxyz;}8.若有定义:intb=7;floata=2.5,c=4.7;则下面表达式的值为___5.5___。a+(int)(b/3*(int)(a+c)/2)%49.表示一个数x在1和10之间,用C语言表达式是:x=1&&x=10或者x1&&x10************************************************************************第4页共6页三:给出下列程序运行后的输出结果(每小题5,共25分)1.#includeiostream.hvoidmain(){ints1=0,s2=0;for(inti=0;i15;i++){if(i%2)s1+=i;elses2+=i;}couts1””,”s2endl;}答案:49,562.#includeiostream.hvoidmain(){inta[10]={12,39,26,41,55,63,72,40,83,95};inti0=0,i1=0,i2=0;for(inti=0;i10;i++)switch(a[i]%3){case0:i0++;break;case1:i1++;break;case2:i2++;}couti0’’i1’’i2,endl;}答案:4243.#includeiostream.hvoidSB(charch){switch(ch){case‘A’:case‘a’:cout”well!”;break;case‘B’:case‘b’:cout”good!”;break;case‘C’:case‘c’:cout”pass!”;break;default:cout”bad!”;break;}}voidmain(){chara1=’b’,a2=’C’,a3=’f’;得分评阅人第5页共6页SB(a1);SB(a2);SB(a3);SB(‘A’);coutendl;}答案:good!pass!bad!well!4.#includeiostream.h.voidmain(){chara[]=”abcdabcabdaeaf’;intb[5]={0},i=5;while(a[i]){switch(a[i]){case’a’:b[0]++;break;case’b’:b[1]++;break;case’c’:b[2]++;break;case’d’:b[3]++;break;default:b[4]++;}i++;}for(i=0;i5;i++)coutb[i]’’;coutendl;}答案:321125.ncludeiostream.h#include“string.h”voidmain(){char*a[5]={”student”,”worker”,”cadre”,”soldier”,”peasant”};char*p1,*p2;p1=p2=a[0]for(inti=0;i5;i++){if(strcmp(a[i],p1)0)p1=a[i];if(strcmp(a[i],p2)0)p2=a[i];}coutp1’‘p2endl;}答案:workercadre第6页共6页四编程题(每题15分,共15分)(1)编写一个程序,要求:1)从键盘上输入10个整数放入数组a[10]中(用for循环实现);2)编写求和的函数sum和求最大值的函数max,主程序通过调用这两个函数,分别实现输出10个整数的和以及10个整数中的最大值,要求用数组名作为函数参数。答案:intsun(intx[])main(){intI,sum=0;{intI,j,sum1,max1,a[10];for(I=0;I10;I++)for(I=0;I10;I++)sum=sum+x[I];scanf(“%d”,&a[I]);return(sum);sum1=sum(a);}max1=max(a);intmax(intx[])printf(“sum1=%d,max1=%d”,{intI,max;}max=x[0];for(I=1;I10;I++)if(maxa[I])max=a[I];return(max);}得分评阅人

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功