C语言期末考试题8.docx
- 文档编号:3752353
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:18
- 大小:18.63KB
C语言期末考试题8.docx
《C语言期末考试题8.docx》由会员分享,可在线阅读,更多相关《C语言期末考试题8.docx(18页珍藏版)》请在冰豆网上搜索。
C语言期末考试题8
试卷编号:
11208
所属语言:
C语言
试卷方案:
C语言期末考试
试卷总分:
100分
共有题型:
4种
一、单项选择共30题(共计60分)
第1题(2.0分)
若有定义:
inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(A).
A:
2.500000
B:
2.750000
C:
3.500000
D:
0.000000
第2题(2.0分)
已有定义:
charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是(B).
A:
isupper(c)
B:
'A'<=c<='Z'
C:
'A'<=c&&c<='Z'
D:
c<=('z'–32)&&('a'–32)<=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分)
已知inti,a;,执行语句i=(a=2*3,a*5),a+6;后,变量i的值是(C).
A:
6
B:
12
C:
30
D:
36
第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
C:
-5
D:
0
第7题(2.0分)
要求计算s=1+1/2+1/3+…+1/10,程序为:
#include
voidmain()
{intn;
floats;
s=1.0;
for(n=10;n>1;n––)s=s+1/n;
printf("%6.4f\n",s);
}
程序运行后输出结果错误,导致错误结果的程序行是(C).
A:
s=1.0;
B:
for(n=10;n>1;n––)
C:
s=s+1/n;
D:
printf("%6.4f\n",s);
第8题(2.0分)
有以下程序:
#include
voidmain()
{inti,j,m=55;
for(i=1;i<=3;i++)
for(j=3;j<=i;j++)
m=m%j;
printf("%d\n",m);
}
程序的运行结果是(B)
A:
0
B:
1
C:
2
D:
3
第9题(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
C:
-5
D:
0
第10题(2.0分)
设变量已正确定义并赋值,以下正确的表达式是(C).
A:
x=y*5=x+z
B:
int(15.8%5)
C:
x=y+z+5,++y
D:
x=25%5.0
第11题(2.0分)
以下程序执行后,sum的值是(C).
#include
voidmain()
{inti,sum;
for(i=1;i<6;i++)sum+=i;
printf("%d\n",sum);
}
A:
15
B:
14
C:
不确定
D:
0
第12题(2.0分)
运行以下程序后,如果从键盘上输入china#〈回车〉,则输出结果是(D).
#include
voidmain()
{intv1=0,v2=0;
charch;
while((ch=getchar())!
='#')
switch(ch)
{case'a':
case'h':
case'o':
v2++;
default:
v1++;
}
printf("%d,%d\n",v1,v2);
}
A:
2,0
B:
5,0
C:
5,5
D:
5,2
第13题(2.0分)
有以下程序段:
intk=0;
while(k=1)k++;
while循环执行的次数是(A).
A:
无限次
B:
有语法错误,不能执行
C:
1次也不执行
D:
执行1次
第14题(2.0分)
执行以下程序后,输出的结果是D().
#include
voidmain()
{inty=10;
do{
y––;
}while(––y);
printf("%d\n",y––);
}
A:
-1
B:
1
C:
8
D:
0
第15题(2.0分)
以下能正确定义一维数组的选项是(B).
A:
intnum[];
B:
#defineN100intnum[N];
C:
intnum[0..100];
D:
intN=100;intnum[N];
第16题(2.0分)
以下程序的输出结果是(A).
#include
voidmain()
{inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)s+=a[i][j];
printf("%d\n",s);
}
A:
18
B:
19
C:
20
D:
21
第17题(2.0分)C
以下错误的定义语句是().
A:
intx[][3]={{0},{1},{1,2,3}};
B:
intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
C:
intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
D:
intx[][3]={1,2,3,4};
第18题(2.0分)
以下对一维数组a的正确定义是(D).
A:
inta(10)
B:
intn=10,a[n];
C:
intn;
scanf("%d",&n);
inta[n];
D:
#defineSIZE10
inta[SIZE]
第19题(2.0分)
有以下程序:
#include
voidmain()
{ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;
for(i=0;i<12;i++)c[s[i]]++;
for(i=1;i<5;i++)printf("%d",c[i]);
printf("\n");
}
程序的运行结果是(C).
A:
1234
B:
2344
C:
4332
D:
1123
第20题(2.0分)
有以下程序:
fun(intx,inty)
{
return(x+y);
}
main()
{
inta=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);
}
执行后的输出结果是B
A:
6
B:
7
C:
8
D:
9
第21题(2.0分)
有以下程序:
voidfun(inta,intb,intc)
{
a=456;b=567;c=678;
}
main()
{
intx=10,y=20,z=30;
fun(x,y,z);
printf("%d,%d,%d",x,y,z);
}
运行后输出结果是B
A:
30,20,10
B:
10,20,30
C:
456,567,678
D:
678,567,456
第22题(2.0分)
有以下程序:
#include
inta=1;
intf(intc)
{
staticinta=2;
c=c+1;
return(a++)+c;
}
main()
{
intk=0,i;
for(i=0;i<2;i++){inta=3;k+=f(a);}
k+=a;
printf("%d\n",k);
}
程序运行后的输出结果是A
A:
14
B:
15
C:
16
D:
17
第23题(2.0分)
有以下程序:
intfun(intx[],intn)
{staticintsum=0,i;
for(i=0;i returnsum; } main() {inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0; s=fun(a,5)+fun(b,4); printf("%d\n",s); } A: 45 B: 50 C: 60 D: 55 第24题(2.0分) 若有以下定义和语句: ints[4][5],(*ps)[5]; ps=s; 则对s数组元素的正确引用形式是(C). A: ps+1 B: *(ps+3) C: ps[0][2] D: *(ps+1)+3 第25题(2.0分) 有以下程序: #include voidss(char*s,chart) {while(*s) {if(*s==t)*s=t–'a'+'A'; s++; } } voidmain() {charstr1[100]="abcddfefdbd",c='d'; ss(str1,c); printf("%s\n",str1); } 程序运行后的输出结果是(B). A: ABCDDEFEDBD B: abcDDfefDbD C: abcAAfefAbA D: Abcddfefdbd 第26题(2.0分) 以下程序运行后,输出结果是(C). #include #include voidfun(char*w,intn) {chart,*s1,*s2; s1=w;s2=w+n–1; while(s1 {t=*s1++; *s1=*s2––; *s2=t; } } voidmain() {char*p; p="1234567"; fun(p,strlen(p)); puts(p); } A: 1234567 B: 7654321 C: 1711717 D: 7177171 第27题(2.0分) 语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是(C). A: a\bre\'hi\'y\\\bou B: a\bre\'hi\'y\bou C: re'hi'you D: abre'hi'y\bou 第28题(2.0分) 以下程序的输出结果是(C). #include"stdio.h" #defineM(x,y)x%y main() {inta,m=12,n=100; a=M(n,m); printf("%d\n",a––);} A: 2 B: 3 C: 4 D: 5 第29题(2.0分) 不合法的main()函数命令行参数表示形式是(C). A: main(inta,char*c[]) B: main(intarc,char**arv) C: main(intargc,char*argv) D: main(intargv,char*argc[]) 第30题(2.0分) 若有说明: inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是(B). A: i=*p; B: *p=*&j; C: i=&j; D: i=**p; 二、程序填空共1题(共计10分) 第1题(10.0分) /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 输入3个数a,b,c,按从小到大的顺序输出。 -------------------------------------------------------*/ main() { voidswap(int*p1,int*p2); intn1,n2,n3; int*pointer1,*pointer2,*pointer3; printf("pleaseinput3number: n1,n2,n3: "); scanf("%d,%d,%d",&n1,&n2,&n3); pointer1=&n1; pointer2=&n2; pointer3=&n3; /***********SPACE***********/ if(【? 】)swap(pointer1,pointer2); /***********SPACE***********/ if(【? 】)swap(pointer1,pointer3); /***********SPACE***********/ if(【? 】)swap(pointer2,pointer3); printf("thesortednumbersare: %d,%d,%d\n",n1,n2,n3); } /***********SPACE***********/ voidswap(【? 】) int*p1,*p2; { intp; p=*p1;*p1=*p2;*p2=p; } 三、程序改错共1题(共计10分) 第1题(10.0分) /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 求出两个非零正整数的最大公约数,并作为函数值返回。 例如: 若给num1和num2分别输入49和21,则输出的最大公约数为7。 ------------------------------------------------------*/ intfun(inta,intb) { intr,t; if(a { t=a; /**********FOUND**********/ b=a; /**********FOUND**********/ a=t; } r=a%b; while(r! =0) { a=b; b=r; /**********FOUND**********/ r=a/b; } /**********FOUND**********/ returna; } main() { intnum1,num2,a; scanf("%d%d",&num1,&num2); a=fun(num1,num2); printf("themaximumcommondivisoris%d\n\n",a); } 四、程序设计共1题(共计20分) 第1题(20.0分) /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 编写函数判断一个整数m的各位数字之和能否被7整除, 可以被7整除则返回1,否则返回0。 调用该函数找出 100~200之间满足条件的所有数。 ------------------------------------------------*/ #include"stdio.h" intsub(intm) { /**********Program**********/ /**********End**********/ } main() { inti; for(i=100;i<=200;i++) if(sub(i)==1) printf("%4d",i); yzj(); getch(); } yzj() { FILE*IN,*OUT; intn; inti[10]; into; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); } for(n=0;n<10;n++) { fscanf(IN,"%d",&i[n]); } for(n=0;n<10;n++) { o=sub(i[n]); fprintf(OUT,"%d\n",o); } fclose(IN); fclose(OUT); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末 考试题
![提示](https://static.bdocx.com/images/bang_tan.gif)