c语言期末复习试题附答案.docx
- 文档编号:28135731
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:20
- 大小:33.47KB
c语言期末复习试题附答案.docx
《c语言期末复习试题附答案.docx》由会员分享,可在线阅读,更多相关《c语言期末复习试题附答案.docx(20页珍藏版)》请在冰豆网上搜索。
c语言期末复习试题附答案
试卷编号:
11201
所属语言:
C语言
试卷方案:
C语言期末考试
试卷总分:
100分
共有题型:
4种
一、单项选择共30题(共计60分)
第1题(2.0分)
设有定义:
intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A).
A:
k++
B:
k+=1
C:
++k
D:
k+1
第2题(2.0分)
已知inti=5,执行语句i+=++i后,i的值是(C).
A:
10
B:
11
C:
12
D:
A、B、C都不对
第3题(2.0分)
以下程序的功能是:
给r输入数据后,计算半径为r的圆面积s.程序在编译时岀错.
#include
voidmain()
/*Beginning*/
{intr;floats;
scanf("%d",&r);
s=p*r*r;printf("s=%f\n",s);
岀错的原因是(D).
A:
注释语句书写位置错误
B:
存放圆半径的变量r不应该定义为整型
C:
输岀语句中格式描述符非法
D:
计算圆面积的赋值语句中使用了非法变量第4题(2.0分)
"ABC""的长度是(B).
A:
11
B:
7
C:
5
D:
3
第5题(2.0分)
已知intj,i=1;,执行语句j=-i++;后,j的值是(C).
A:
1
B:
2
C:
-1
D:
-2
第6题(2.0分)
有以下程序:
#include
voidmain()
{ints=0,a=1,n;
scanf("%d",&n);
do{
s+=1;a=a-2;
}while(a!
=n);
printf("%d\n",s);
}
若要使程序的输岀值为2,则应该从键盘输入给n的值是(B).
A:
-1
B:
-3
).
-)printf("%d\n",i);
C:
-5
D:
0
第7题(2.0分)
执行以下程序后,输岀的结果是(D
#include
voidmain()
{inty=10;
do{
y--;
}while(--y);
printf("%d\n",y--);
}
A:
-1
B:
1
C:
8
D:
0
第8题(2.0分)
以下循环体的执行次数是(C).
#include
voidmain()
{inti,j;
for(i=0,j=1;i<=j+1;i+=2,j-
}
A:
3
B:
2
C:
1
D:
0
第9题(2.0分)
有以下程序段:
intk=0;
while(k=1)k++;
while循环执行的次数是(A).
A:
无限次
B:
有语法错误,不能执行
C:
1次也不执行
D:
执行1次
有以下程序
#include
voidmain()
{intm,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
printf("%d%d%d\n",m,n,p);
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是
(A).
A:
m=123n=456p=789
B:
m=123n=456p=789
C:
m=123,n=456,p=789
D:
123456789
第11题(2.0分)
设变量已正确定义,以下能正确计算f=n!
的程序段是(D)
A:
f=0;
for(i=1;i<=n;i++)f*=i;
B:
f=1;
for(i=1;i C: f=1; for(i=n;i>1;i++)f*=i; D: f=1; for(i=n;i>=2;i——)f*=i; 第12题(2.0分) 在下列程序中,没有构成死循环的程序段是(B). A: inti=100; while (1) {i=i%100+1; if(i>100)break;} B: intk=1000; do{++k;}while(k>=10000); C: for(;;); D: ints=36;while(s);--s; 第13题(2.0分) 有如下程序: #include voidmain() {intn=9; while(n>6) {n--;printf("%d",n);} } 该程序段的输岀结果是( A: 987 B: 876 B). C: 8765 D: 9876 第14题(2.0分) 以下程序的输岀结果是( #include voidmain() {intx=10,y=10,i; for(i=0;x>8;y=++i) printf("%d%d",x- } A: 10192 B: 9876 C: 10990 D: 101091 D). -,y); 有如下程序: #include voidmain() {intn[5]={0,0,0},i,k=2; for(i=0;i {printf("%d\n",n[k]);} } 该程序的输岀结果是(D). A: 不确定的值 B: 2 C: 1 D: 0 第16题(2.0分) 下列程序执行后的输岀结果是(A) #include voidmain() {chararr[2][4]; strcpy(arr,"you");strcpy(arr[1],"me"); arr[0][3]='&'; printf("%s\n",arr); } A: you&me B: you C: me D: err 第17题(2.0分) 以下程序的输岀结果是(C). #include voidmain() {inti,x[3][3]={1,2,3,4,5,6,7,8,9}; -i]); for(i=0;i<3;i++)printf("%d,",x[i][2 } C: 3,5,7, D: 3,6,9, 第18题(2.0分) 以下数组定义中不正确的是(D). A: inta[2][3]; B: intb[][3]={0,1,2,3}; C: intc[100][100]={0}; D: intd[3][]={{1,2},{1,2,3},{1,2,3,4}}; 第19题(2.0分) 以下能正确定义数组并正确赋初值的语句是(D). A: intN=5,b[N][N]; B: inta[1][2]={{1},{3}}; C: intc[2][]={{1,2},{3,4}}; D: intd[3][2]={{1,2},{3,4}}; 第20题(2.0分) 有以下程序: inta=4; intf(intn) { intt=0;staticinta=5; if(n%2){inta=6;t+=a++;} else{inta=7;t+=a++;} returnt+a++; } main() { ints=a,i=0; for(;i<2;i++)s+=f(i); printf("d\n",s); } 程序运行后的输岀结果是(B) A: 24 B: 28 C: 32 D: 36 第21题(2.0分) 以下正确的函数定义形式为(A) A: doublefun(intx,inty) B: doublefun(intx;y) C: doublefun(intx;inty) D: doublefun(intx,y) 第22题(2.0分) C语言规定,函数返回值的类型是由(D A: return语句中的表达式类型所决定的 B: 调用该函数时的主调函数类型所决定的 C: 调用该函数时系统临时决定的 D: 在定义该函数时所指定的函数类型所决定的 5353) 第23题(2.0分) 有以下程序: 输岀结果是()(注: voidswap1(intc0[],intc1[]) {intt; t=c0[0];c0[0]=c1[0];c1[0]=t; } voidswap2(int*c0,int*c1) {intt; t=*cO;*c0=*c1;*c1=t; } main() {inta[2]={3,5},b[2]={3,5}; swap1(a,a+1);swap2(&b[0],&b[1]); printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]); } A: 3553 B: 5335 C: 3535 第24题(2.0分) 以下程序的输岀结果是(A). amovep(int*p,int(*a)[3],intn) {inti,j; for(i=0;i for(j=0;j {*P=a[i][j]; P++;} } main() {int*p,a[3][3]={{1,3,5},{2,4,6}}; p=(int*)malloc(100); amovep(p,a,3); printf("%d%d\n",p[2],p[5]);free(p); } A) 5 6 B) 2 5 C) 3 4 D) 程序错误 第25题(2.0分) 有以下函数: fun(char*a,char*b) {while((*a! ='\0')&&(*b匸'\0')&&(*a==*b)) {a++;b++;} return(*a—*b);} 该函数的功能是(D). A: 计算a和b所指字符串的长度之差 B: 将b所指字符串复制到a所指字符串中 C: 将b所指字符串连接到a所指字符串后面 D: 比较a和b所指字符串的大小 有以下程序: fun(charp[][10]) {intn=0,i; for(i=0;i<7;i++) if(P[i][O]=='T')n++; returnn; } main() {charstr[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};printf("%d\n",fun(str)); } 程序执行后的输岀结果是(B). A: 1 B: 2 C: 3 D: 0 第27题(2.0分) 有以下程序: main() {charstr[][10]={"China","Beijing"},*p=str; printf("%s\n",p+10); } 程序运行后的输岀结果是(B). A: China B: Beijing C: ng D: ing 第28题(2.0分) 有以下程序: #definef(x)(x*x) main() {inti1,i2; i1=f(8)/f(4)i2=f(4+4)/f(2+2) printf("%d,%d\n",i1,i2); } 程序运行后的输岀结果是(C). A: 64,28 B: 4,4 C: 4,3 D: 64,64 第29题(2.0分) 有以下程序: 结果是(A) voidchange(intk[]){k[0]=k[5];}main() {intx[10]={1,2,3,4,5,6,7,8,9,10},n=0;while(n<=4){change(&x[n]);n++;}for(n=0;n<5;n++)printf("%d",x[n]);printf("\n"); } A)678910 B)13579 C)12345 D)62345 A: 678910 B: 13579 C: 12345 D: 62345 第30题(2.0分) p指向一个合法的整型单 在以下程序中,能够通过调用函数fun(),使main()函数中的指针变量 元的是(C). A: main() int*p; fun(p);,} intfun(int*p) {ints; P=&s;} B: main() {int*p; fun(&p);,} intfun(int**p) {ints; *p=&s;} C: #include main() {int*p; fun(&p);,} intfun(int**p) {*p=(int*)malloc (2);}, D: #include {int*p; fun(p);,} intfun(int*p) {p=(int*)malloc(sizeof(int));} 二、程序填空共1题(共计10分) 第1题(10.0分) /* 【程序填空】 功能: 计算平均成绩并统计90分以上人数。 */main() intn,m;floatgrade,average; /***********Sp^^CE***********/ average=n=m=【? 】; //此处为: 0 while (1) /***********Sp^^CE***********/ if(grade<0)break; n++; average+=grade; /***********Sp^^CE***********/ if(grade<90) 【? 】; //此处为: break m++; } if(n)printf("%.2f%d\n",average/n,m); } 三、程序改错共1题(共计10分) 第1题(10.0分) /* 【程序改错】 功能: 首先把b所指字符串中的字符按逆序存放,然后将a所指字 符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所指数组的尾部 例如: 当a所指字符串中的内容为"abcdefg”,b所指字符串中的 内容为"1234"时,c所指数组中的内容应该为"a4b3c2d1efg”;而当a所指字符串中的内容为“1234”,b所指字符串中的内容为"abcdefg"时,c所指数组中的内容应该为 “1g2f3e4dcba”。 */ #includevconio.h> #include #include inti,j; charch; i=0; j=strlen(b)-1; /**********found**********/ ch=b[i]; b[i]=b[j]; b[j]=ch; i++;j--; /**********found**********/ if(*a) *c=*a; c++; /**********found**********/ a+; //此处a++ if(*b) *c=*b; c++; b++; } } *c=0; } main() { chars1[100],s2[100],t[200]; clrscr(); printf("\nEntersistring: "); scanf("%s",s1); printf("\nEnters2string: "); scanf("%s",s2); fun(s1,s2,t); printf("\nTheresultis: %s\n",t); } 四、程序设计共1题(共计20分) 第1题(20.0分) /* 【程序设计】 5整除, 功能: 判断一个整数w的各位数字平方之和能否被可以被5整除则返回1,否则返回0。 */ #include"stdio.h" #include"conio.h"intfun(intw) ********Program******** ints=0,m=w; while(m){s+=(m%10)*(m%10);m/=10;}if(s%5==0)return1; elsereturn0; main() { intm; printf("Enterm: "); seanf("%d",&m); printf("\nTheresultis%d\n",fun(m));yzj(); getch(); } yzj() { FILE*IN,*OUT; intc; intt; into; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); }for(c=1;c<=5;c++) { fscanf(IN,"%d",&t); o=fun(t); fprintf(OUT,"%d\n",o); } fclose(IN); fclose(OUT);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末 复习 试题 答案