您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > C语言计算机编程考试题及参考答案(太原科技大学大一期末考试题)
试卷7一、选择题(1-20每小题2分,共40分)(1)以下选项中属于C语言的数据类型是A)复数型B)逻辑型C)双精度型D)集合型(2)在C语言中,不正确的int类型的常数是A)32768B)0C)037D)0xAF(3)语句:printf(%d,(a=2)&&(b=-2);的输出结果是A)无输出B)结果不确定C)-1D)1(4)下列描述中不正确的是A)字符型数组中可以存放字符串B)可以对字符型数组进行整体输入、输出C)可以对整型数组进行整体输入、输出D)不能在赋值语句中通过赋值运算符=对字符型数组进行整体赋值(5)设有如下定义:intx=l,y=-1;,则语句:printf(%d\n,(x--&++y));的输出结果是A)1B)0C)-1D)2(6)当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是A)c=b=a;B)(a=c)‖(b=c);C)(a=c)&&(b=c);C)a=c=b;(7)以下程序的输出结果是A)10192B)9876C)10990D)101091main(){intx=10,y=10,i;for(i=0;x8;y=++i)printf(%d,%d,x--,y);}(8)以下程序的输出结果是A)52B)51C)53D)97main(){inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];for(i=0;i4;i+=2)printf(%d,p[i]);}(9)以下程序的输出结果是A)6B)6789C)'6'D)789main(){chara[10]={'1','2','3','4','5','6','7','8','9',0},*p;inti;i=8;p=a+I;printf(%s\n,p-3);}(10)以下程序的运行结果是A)运行后报错B)66C)612D)55#includestdio.hmain(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12,};int*p=a+5,*q=NULL;*q=*(p+5);printf(%d%d\n,*p,*q);}(11)以下说法中正确的是A)#define和printf都是C语句B)#define是C语句,而printf不是C)printf是C语句,但#define不是D)#define和printf都不是C语句(12)语句:printf(%d\n,12&012);的输出结果是A)12B)8C)6D)012(13)能正确表示a和b同时为正或同时为负的逻辑表达式是A)(a=0‖b=0)&&(a0‖b0)B)(a=0&&b=0)&&(a0&&b0)C)(a+b0)&&(a+b=0)D)a*b0(14)以下程序的输出结果是A)20B)31C)321D)210main(){intn=4;while(n--)printf(%d,--n);}(15)若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是A)p+1B)a+1C)a++D)++p(16)以下程序的输出结果是A)17,021,0x11B)17,17,17B)17,0x11,021D)17,21,11main(){intk=17;printf(%d,%o,%x\n,k,k,k);}(17)以下程序的输出结果是A)-11B)01C)10D)00main(){inta=-1,b=1,k;if((++a0)&&!(b--=0))printf(%d%d\n,a,b);elseprintf(%d%d\n,b,a);}(18)若有说明:long*p,a;则不能通过scanf语句正确给输入项读入数据的程序段是A)*p=&a;scanf(%ld,p);B)p=(long*)malloc(8);scanf(%ld,p);C)scanf(%ld,p=&a);D)scanf(%ld,&a);(19)若有以下定义和语句:doubler=99,*p=&r;*p=r;则以下正确的叙述是A)以下两处的*p含义相同,都说明给指针变量p赋值B)在doubler=99,*p=&r;中,把r的地址赋值给了p所指的存储单元C)语句*p=r;把变量r的值赋给指针变量pD)语句*p=r;取变量r的值放回r中(20)以下程序的输出结果是A)编译不通过,无输出B)acegC)acegiD)abcdefghimain(){inti;for(i='A';i'I';i++,i++)printf(%c,i+32);printf(\n);}二、填空题(每空4分,共28分)(1)以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。main(){floatx[1000],sum=0.0,ave,a;intn=0,i;printf(Entermark:\n);scanf(%f,&a);while(a=0.0&&n1000){sum+___(1)___;x[n]=_____(2)_____;n++;scanf(%f,&a);}ave=____(3)____;printf(Output:\n);printf(ave=%f\n,ave);for(I=0;In;I++)if(_____(4)_____)printf(%f\n,x[I]);}(2)以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。请填空。#defineN3#defineM4voidLineMax(intx[N][M]){inti,j,p;for(i=0;iN;i++){p=0;for(j=1;jM;j++)if(x[i][p]x[i][j])____(5)____;printf(Themaxvalueinline%dis%d\n,i,_____(6)_____);}}main(){intx[N][M]={1,5,7,4,2,6,4,3,8,2,3,1};______(7)______;}三、阅读程序题(每题5分共20分)(1)下列程序的输出结果是__________。#includestdio.h#includestring.hmain(){charb[30],*chp;strcpy(&b[0],CH);strcpy(&b[1],DEF);strcpy(&b[2],ABC);printf(%s\n,b);}(2)下列程序的输出结果是___________。intt(intx,inty,intcp,intdp){cp=x*x+y*y;dp=x*x-y*y;}main(){inta=4,b=3,c=5,d=6;t(a,b,c,d);printf(%d%d\n,c,d);}(3)下列程序中字符串中各单词之间有一个空格,则程序的输出结果是______________。#includestring.h#includestdio.hmain(){charstrl[]=Howdoyoudo,*p1=strl;strcpy(strl+strlen(strl)/2,esshe);printf(%s\n,pl);}(4)以下程序的运行结果是__________#includestdio.hmain(){intk=4,m=1,p;p=func(k,m);printf(%d,,p);p=func(k,m);printf(%d\n,p);}func(inta,intb){staticintm=0,i=2;i+=m+1;m=i+a+b;returnm;}四、程序题(10分)1.编写一程序,将字符串中的第m个字符开始的全部字符复制成另一个字符串.要求在主函数中输入字符串及m的值并输出复制结果,在被调用函数中完成复制.试编程。答案一、1—5CADCB6—10CDCBB11—15ABAAC16—17DCACB二、(1)①a②a③sum/n④x[i]<ave(2)⑤p=j⑥a[i][p]⑦lineMax(x)三、(1)CDABC(2)56(3)Hello(4)817四、代码如下#includestdio.h#includestring.hvoidReplace(char*original,char*r,intstart){if(original==NULL||r==NULL||start0)return;inti=0;while(original[i+start]!='\0'&&r[i]!='\0'){original[start+i]=r[i];i++;}original[start+i]='\0';}intmain(){charstr[1024]={0};//待复制的字符串charreplace[1024]={0};//要替换成什么intm=0;//第几个字符printf(请输入源字符串:);scanf(%s,str);printf(请输入要替换成什么字符串:);scanf(%s,replace);printf(请输入从第几位开始替换:);scanf(%d,&m);printf(开始替换......\n);Replace(str,replace,m);printf(替换完成,结果为:%s\n,str);return0;}======================
本文标题:C语言计算机编程考试题及参考答案(太原科技大学大一期末考试题)
链接地址:https://www.777doc.com/doc-2083846 .html