青岛科技大学c语言期末考试题.docx
- 文档编号:29814675
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:12
- 大小:17.35KB
青岛科技大学c语言期末考试题.docx
《青岛科技大学c语言期末考试题.docx》由会员分享,可在线阅读,更多相关《青岛科技大学c语言期末考试题.docx(12页珍藏版)》请在冰豆网上搜索。
青岛科技大学c语言期末考试题
第四套试题
一、选择题(20个小题,每小题2分,共40分):
1、以下不正确的C语言标识符是____。
A.ABCB.abcC.a_bcD.ab.c
2、设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是____。
A.‘a’&&‘b’B.a<=bC.a||b+c&&b-cD.!
((a
c||1)
3、若有以下定义和语句:
charc1=‘b’,c2=‘e’;
printf(“%d,%c\n”,c2-c1,c2-‘a’+‘A’);则输出结果是____。
A.2,MB.3,E
C.2,eD.输入项与对应的格式控制不一致,输出结果不确定
main()
{inta;floatb,c;
scanf(“%2d%3f%4f”,&a,&b,&c);
printf(“\na=%d,b=%f,c=%f\n”,a,b,c);
}
A.a=98,b=765,c=4321B.a=10,b=432,c=8765
C.a=98,b=765.000000,c=4321.000000D.a=98,b=765.0,c=4321.0
5、设有如下函数定义:
intf(char*s)
{char*p=s;
while(*p!
=‘\0’)p++;
return(p-s);
}
如果在主程序中用下面的语句调用上述函数,则输出结果为____。
printf(“%d\n”,f(“goodbye!
”));
A.3B.6C.8D.0
6、以下程序的输出结果是____。
main()
{intw=4,x=3,y=2,z=1;
printf(“%d\n”,(w z x)); } A.1B.2C.3D.4 7、以下程序段的输出结果是____。 intk,j,s; for(k=2;k<6;k++,k++) {s=1; for(j=k;j<6;j++)s+=j; } printf(“%d\n”,s); A.9B.1C.11D.10 8、以下叙述正确的是____。 A.do_while语句构成的循环不能用其它语句构成的循环来代替 B.do_while语句构成的循环只能用break语句退出 C.用do_while语句构成循环时,只有在while后的表达式为非零时结束循环 D.用do_while语句构成循环时,只有在while后的表达式为零时结束循环 9、以下函数调用语句中,含有的实参个数是____。 func((exp1,exp2),(exp3,exp4,exp5)); A.1B.2C.4D.5 10、以下程序的输出结果是____。 doublef(intn) {inti; doubles=1.0; for(i=1;i<=n;i++)s+=1.0/i; returns; } main() {inti,m=3; floata=0.0; for(i=0;i printf(“%f\n”,a); } A.5.500000B.3.000000C.4.000000D.8.25 11、以下程序段的输出结果是____。 inti,j,m=0; for(i=1;i<=15;i+=4) for(j=3;j<=19;j+=4)m++; printf(“%d\n”,m); A.12B.15C.20D.25 12、以下程序中若第一个printf语句输出的是194,则第二个printf语句输出结果是____。 main() {inta[]={1,2,3,4,5,6,7,8,9,10},*p; p=a; printf(“%x\n”,p); printf(“%x\n”,p+9); } A.212B.204C.1a4D.1a6 13、若有定义: inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素的引用不正确的是____。 A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i)) 14、以下程序的输出结果是____。 main() {intaa[3][3]={{2},{4},{6}},i,*p=&aa[0][0]; for(i=0;i<2;i++) {if(i==0)aa[i][i+1]=*p+1; else++p; printf(“%d”,*p); } printf(“\n”); } A.23B.26C.33D.36 15、执行下列程序后,y的值是____。 main() {inta[]={2,4,6,8,10}; inty=1,*p,x; p=&a[1]; for(x=0;x<3;x++) y+=*(p+x); printf(“%d\n”,y); } A.17B.18C.19D.20 16、以下程序的输出结果是____。 voidsub(floatx,float*y,float*z) {*y=*y-1.0; *z=*z+x; } main() {floata=2.5,b=9.0,*pa,*pb; pa=&a;pb=&b; sub(b-a,pa,pa); printf(“%f\n”,a); } A.9.000000B.1.500000C.8.000000D.10.500000 17、下面程序的输出结果是____。 #include“stdio.h” main() {staticcharb[]=“Goodbye”; char*chp=&b[7]; while(--chp>=&b[0])putchar(*chp); putchar(‘\n’); } A.GoodbyeB.gOODBYEC.无任何输出D.eybdooG 18、若有如下说明,则____的叙述是正确的。 structst {inta; intb[2]; }a; A.结构体变量a与结构体成员a同名,定义是非法的 B.程序只有在执行到该定义时才为结构体st分配存储单元 C.程序运行时为结构体变量a分配6个字节存储单元 D.不能将结构体类型说明与变量定义紧凑写在一起 19、设有如下定义: structstd {inta; floatb; }data,*p; 若有p=&data;则对data中的成员变量a的正确引用是____。 A.(*p).data.aB.(*p).aC.p->data.aD.p.data.a 20、以下程序的输出结果是____。 main() {charx=040; printf(“%d\n”,x=x<<1); } A.100B.160C.120D.64 二、填空题(10个小题,每小题2分,共20分): 1、若a是int型变量,则执行表达式a=25/3%3后,a的值为____。 2、C语言中用____表示逻辑值“真”。 3、用在循环结构中,可以结束本次循环的语句是____。 4、用数组名作为函数参数是地址传递方式。 地址传递是____(单向/双向)传递。 5、在二维数组初始化时,可以省略数组的____(行下标/列下标),系统会根据初值的个数,算出该下标的大小。 6、若输入字符‘A’,在以下while语句执行后ch的值为____。 while(ch=getchar()==‘A’); 7、所谓“指针”,就是____。 8、设有宏定义: #defineMUL(z)(z)*(z),则执行以下语句后,输出结果为____。 printf(“%d\n”,MUL(1+2)+3); 9、若有定义和语句: charstr[]=“ABCD”,*p=str; printf(“%d\n”,*(p+4));则输出结果是____。 10、能够实现局部翻转(0变1,1变0)的位运算是____。 三、读下面程序,写出执行结果(4个小题,每小题5分,共20分): 1、若运行以下程序时,从第一列开始输入数据: 2473 #include“stdio.h” main() {charc; while((c=getchar())! =‘\n’) switch(c-‘2’) {case0: case1: putchar(c+4); case2: putchar(c+4);break; case3: putchar(c+3); default: putchar(c+2);break; } printf(“\n”); } 2、main() {intx=2,y=3,z=0; try(x,y,z); printf(“ (2)x=%d,y=%d,z=%d\n”,x,y,z); } try(intx,inty,intz) {z=x+y;x=x*x;y=y*y; printf(“ (1)x=%d,y=%d,z=%d\n”,x,y,z); } 3、#include“stdio.h” #include“string.h” main() {char*p1=“abc”,*p2=“ABC”,str[50]=“xyz”; strcpy(str+2,strcat(p1,p2)); printf(“%s\n”,str); } 4、#include“stdio.h” #defineNUM8 voidinvert(int*a,intn); main() {inta[NUM]={10,20,30,40,50,60,70,80},i; invert(a,NUM); for(i=0;i printf(“%4d”,a[i]); printf(“\n”); } voidinvert(int*a,intn) {inti,j,t; i=0;j=n-1; while(i {t=a[i];a[i]=a[j];a[j]=t; i++;j--; } } 四、编程题(2个小题,每小题10分,共20分): 1、编写程序,计算如下公式的值: t=1-1/(2*2)-1/(3*3)-…-1/(m*m)。 例如,若m=5,则应输出0.536389。 要求: 利用scanf函数输入m的值。 利用子函数形式,m充当参数,不能只利用main函数形式实现。 2、编写程序,从输入的10个字符串中通过比较,找出最小和最大的字符串进行输出。 要求: 利用二维字符数组。 利用gets函数进行输入,puts函数进行输出。 第四套试题 一、选择题(20个小题,每小题2分,共40分): 1、D2、D3、B4、C5、C6、A7、D8、D9、B10、A 11、C12、D13、D14、A15、C16、B17、D18、C19、B20、D 二、填空题(10个小题,每小题2分,共20分): 1、22、非零值3、continue4、双向5、行下标 6、17、地址8、129、010、^(异或) 三、读下面程序,写出执行结果(4个小题,每小题5分,共20分): 1、668977 2、 (1)x=4,y=9,z=5 (2)x=2,y=3,z=0 3、xyabcABC 4、8070605040302010 四、编程题(2个小题,每小题10分,共20分): 1、main() {floatfun(intm),t; intm; scanf(“%d”,&m); t=fun(m); printf(“t=%f\n”,t); } floatfun(intm) {floatt=1,s; inti; for(i=2;i<=m;i++) {s=1.0/(i*i); t=t-s; } returnt; } 2、#include“stdio.h” #include“string.h” main() {charstr[10][20],s[20]; inti; for(i=0;i<10;i++) gets(str[i]); for(i=1;i<10;i++) if(strcmp(str[0],str[i])>0) {strcpy(s,str[0]); strcpy(str[0],str[i]); strcpy(str[i],s); } for(i=0;i<9;i++) if(strcmp(str[i],str[9])>0) {strcpy(s,str[i]); strcpy(str[i],str[9]); strcpy(str[9],s); } puts(str[0]); puts(str[9]); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 青岛 科技大学 语言 期末 考试题