C语言计算机编程考经典试题及参考答案.docx
- 文档编号:2875967
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:9
- 大小:17.75KB
C语言计算机编程考经典试题及参考答案.docx
《C语言计算机编程考经典试题及参考答案.docx》由会员分享,可在线阅读,更多相关《C语言计算机编程考经典试题及参考答案.docx(9页珍藏版)》请在冰豆网上搜索。
C语言计算机编程考经典试题及参考答案
试卷7
一、选择题(1-20每小题2分,共40分)
(1)以下选项中属于C语言的数据类型是C
A)复数型B)逻辑型C)双精度型D)集合型
(2)在C语言中,不正确的int类型的常数是A
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的是C
A)c=b=a;B)(a=c)‖(b=c);
C)(a=c)&&(b=c);C)a=c=b;
(7)以下程序的输出结果是A
A)10192B)9876C)10990D)101091
main()
{
intx=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d,%d",x--,y);
}
(8)以下程序的输出结果是
A)52B)51C)53D)97
main()
{
inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];
for(i=0;i<4;i+=2)
printf("%d",p[i]);
}
(9)以下程序的输出结果是
A)6B)6789C)'6'D)789
main()
{
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
#include"stdio.h"
main()
{
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)&&(a<0‖b<0)
B)(a>=0&&b>=0)&&(a<0&&b<0)
C)(a+b>0)&&(a+b<=0)
D)a*b>0
(14)以下程序的输出结果是
A)20B)31C)321D)210
main()
{
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,11
main()
{
intk=17;
printf("%d,%o,%x\n",k,k,k);
}
(17)以下程序的输出结果是
A)-11B)01C)10D)00
main()
{inta=-1,b=1,k;
if((++a<0)&&!
(b--<=0))
printf("%d%d\n",a,b);
else
printf("%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的值赋给指针变量p
D)语句"*p=r;"取变量r的值放回r中
(20)以下程序的输出结果是
A)编译不通过,无输出B)acegC)acegiD)abcdefghi
main()
{
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&&n<1000)
{
sum+___
(1)___;
x[n]=_____
(2)_____;
n++;
scanf("%f",&a);
}
ave=____(3)____;
printf("Output:
\n");
printf("ave=%f\n",ave);
for(I=0;I if(_____(4)_____) printf("%f\n",x[I]); } (2)以下程序中,主函数调用了LineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值。 请填空。 #defineN3 #defineM4 voidLineMax(intx[N][M]) { inti,j,p; for(i=0;i { p=0; for(j=1;j if(x[i][p] 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)下列程序的输出结果是__________。 #include"stdio.h" #include"string.h" main() { 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)下列程序中字符串中各单词之间有一个空格,则程序的输出结果是______________。 #include"string.h" #include"stdio.h" main() { charstrl[]="Howdoyoudo",*p1=strl; strcpy(strl+strlen(strl)/2,"esshe"); printf("%s\n",pl); } (4)以下程序的运行结果是__________ #include main() { 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—5CADCB 6—10CDCBB 11—15ABAAC 16—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 四、代码如下 #include #include voidReplace(char*original,char*r,intstart) { if(original==NULL||r==NULL||start<0)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; } ====================
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 计算机 编程 经典 试题 参考答案